Example usage for org.apache.maven.artifact.versioning DefaultArtifactVersion getMajorVersion

List of usage examples for org.apache.maven.artifact.versioning DefaultArtifactVersion getMajorVersion

Introduction

In this page you can find the example usage for org.apache.maven.artifact.versioning DefaultArtifactVersion getMajorVersion.

Prototype

public int getMajorVersion() 

Source Link

Usage

From source file:com.cloudera.whirr.cm.server.impl.CmServerImpl.java

License:Apache License

private void provisionParcels(final CmServerCluster cluster) throws InterruptedException, IOException {

    apiResourceRootV3.getClouderaManagerResource().updateConfig(
            new ApiConfigList(Arrays.asList(new ApiConfig[] { new ApiConfig("PARCEL_UPDATE_FREQ", "1") })));

    final Set<String> repositoriesRequired = new HashSet<String>();
    for (CmServerServiceType type : cluster.getServiceTypes(versionApi, versionCdh)) {
        repositoriesRequired.add(type.getRepository().toString(CDH_REPO_PREFIX + versionCdh));
    }//from  w  w w .jav a  2  s  .c o  m
    final List<String> repositoriesRequiredOrdered = new ArrayList<String>();
    for (String repository : repositoriesRequired) {
        if (repository.equals(CDH_REPO_PREFIX)) {
            repositoriesRequiredOrdered.add(0, repository);
        } else {
            repositoriesRequiredOrdered.add(repository);
        }
    }

    execute("WaitForParcelsAvailability", new Callback() {
        @Override
        public boolean poll() {
            for (ApiParcel parcel : apiResourceRootV3.getClustersResource().getParcelsResource(getName(cluster))
                    .readParcels(DataView.FULL).getParcels()) {
                try {
                    repositoriesRequired.remove(parcel.getProduct());
                } catch (IllegalArgumentException e) {
                    // ignore
                }
            }
            return repositoriesRequired.isEmpty();
        }
    });

    apiResourceRootV3.getClouderaManagerResource().updateConfig(
            new ApiConfigList(Arrays.asList(new ApiConfig[] { new ApiConfig("PARCEL_UPDATE_FREQ", "60") })));

    for (String repository : repositoriesRequiredOrdered) {
        DefaultArtifactVersion parcelVersion = null;
        for (ApiParcel apiParcel : apiResourceRootV3.getClustersResource().getParcelsResource(getName(cluster))
                .readParcels(DataView.FULL).getParcels()) {
            DefaultArtifactVersion parcelVersionTmp = new DefaultArtifactVersion(apiParcel.getVersion());
            if (apiParcel.getProduct().equals(repository)) {
                if (!apiParcel.getProduct().equals(CDH_REPO_PREFIX)
                        || versionCdh == parcelVersionTmp.getMajorVersion()) {
                    if (parcelVersion == null || parcelVersion.compareTo(parcelVersionTmp) < 0) {
                        parcelVersion = new DefaultArtifactVersion(apiParcel.getVersion());
                    }
                }
            }
        }

        final ParcelResource apiParcelResource = apiResourceRootV3.getClustersResource()
                .getParcelsResource(getName(cluster)).getParcelResource(repository, parcelVersion.toString());
        execute(apiParcelResource.startDownloadCommand(), new Callback() {
            @Override
            public boolean poll() {
                return apiParcelResource.readParcel().getStage().equals(CM_PARCEL_STAGE_DOWNLOADED);
            }
        }, false);
        execute(apiParcelResource.startDistributionCommand(), new Callback() {
            @Override
            public boolean poll() {
                return apiParcelResource.readParcel().getStage().equals(CM_PARCEL_STAGE_DISTRIBUTED);
            }
        }, false);
        execute(apiParcelResource.activateCommand(), new Callback() {
            @Override
            public boolean poll() {
                return apiParcelResource.readParcel().getStage().equals(CM_PARCEL_STAGE_ACTIVATED);
            }
        }, false);
    }

}

From source file:com.liferay.ide.maven.core.MavenUtil.java

License:Open Source License

public static String getVersion(String version) {
    String retval = null;//  w w  w  .  j av  a  2  s.co  m

    final DefaultArtifactVersion v = new DefaultArtifactVersion(version);

    retval = v.getMajorVersion() + "." + v.getMinorVersion() + "." + v.getIncrementalVersion();

    if ("0.0.0".equals(retval)) {
        retval = v.getQualifier();
    }

    // try to parse as osgi version if it fails then return 0.0.0
    try {
        Version.parseVersion(retval);
    } catch (Exception e) {
        retval = "0.0.0";
    }

    return retval;
}

From source file:com.vmware.bdd.plugin.ambari.service.AmClusterValidator.java

License:Open Source License

private void validateSupportComputeOnly(ClusterBlueprint blueprint) {
    if (isComputeOnly(blueprint.getExternalNamenode(), blueprint.getExternalDatanodes())) {
        String hdpVersion = blueprint.getHadoopStack().getFullVersion();
        DefaultArtifactVersion hdpVersionInfo = new DefaultArtifactVersion(hdpVersion);
        if (!((hdpVersionInfo.getMajorVersion() >= 2 && hdpVersionInfo.getMinorVersion() >= 1)
                || hdpVersionInfo.getMajorVersion() > 2)) {
            warningMsgList.add("Compute only cluster does not support in HDP " + hdpVersion + " of Ambari yet");
        }/*from  w w  w.ja va2 s . c  om*/
    }
}

From source file:com.vmware.bdd.plugin.ambari.utils.Version.java

License:Open Source License

public static int compare(String srcVersion, String destVersion) {
    logger.info("The source version is " + srcVersion);
    logger.info("The destination version is " + destVersion);
    DefaultArtifactVersion srcArtifactVersion = new DefaultArtifactVersion(srcVersion);
    DefaultArtifactVersion destArtifactVersion = new DefaultArtifactVersion(destVersion);

    int[] srcVersionArray = { srcArtifactVersion.getMajorVersion(), srcArtifactVersion.getMinorVersion(),
            srcArtifactVersion.getIncrementalVersion() };
    int[] destVersionArray = { destArtifactVersion.getMajorVersion(), destArtifactVersion.getMinorVersion(),
            destArtifactVersion.getIncrementalVersion() };

    for (int i = 0; i < srcVersionArray.length; i++) {
        if (i >= destVersionArray.length) {
            return compare(destVersionArray, srcVersionArray, 1);
        }/*from  ww  w.ja v  a2 s .  c om*/
        if (srcVersionArray[i] > destVersionArray[i]) {
            return 1;
        } else if (srcVersionArray[i] < destVersionArray[i]) {
            return -1;
        }
    }
    if (destVersionArray.length > srcVersionArray.length) {
        return compare(srcVersionArray, destVersionArray, -1);
    }
    return 0;
}

From source file:com.vmware.bdd.plugin.clouderamgr.service.ClouderaManagerImpl.java

License:Open Source License

private void initApiResource(ApiRootResource apiRootResource) {
    String apiVersion = apiRootResource.getCurrentVersion();
    logger.info("api version: " + apiVersion);
    int apiVersionNum = apiVersion.charAt(1) - '0';
    assert (apiVersionNum >= 6);
    this.apiResourceRootV6 = apiRootResource.getRootV6();
    String cmVersion = getVersion();
    if (cmVersion.equals(UNKNOWN_VERSION)) {
        return;//from  w  w  w . j av  a  2 s.co  m
    }
    logger.info("cm version: " + cmVersion);
    DefaultArtifactVersion cmVersionInfo = new DefaultArtifactVersion(cmVersion);
    assert (cmVersionInfo.getMajorVersion() >= 5);

    if (apiVersionNum >= 7 && isCmSupported(7, cmVersionInfo)) {
        this.apiResourceRootV7 = apiRootResource.getRootV7();
    }
}

From source file:com.vmware.bdd.plugin.clouderamgr.service.ClouderaManagerImpl.java

License:Open Source License

private boolean isCmSupported(int apiVersion, DefaultArtifactVersion cmVersionInfo) {
    DefaultArtifactVersion sinceVersion = new DefaultArtifactVersion(
            Constants.API_VERSION_SINCE_OF_CM_VERSION.get(apiVersion));
    if (cmVersionInfo.getMajorVersion() > sinceVersion.getMajorVersion()
            || (cmVersionInfo.getMajorVersion() == sinceVersion.getMajorVersion()
                    && cmVersionInfo.getMinorVersion() >= sinceVersion.getMinorVersion())) {
        return true;
    }/*from w w  w.j a va  2s  .c o m*/
    return false;
}

From source file:com.vmware.bdd.plugin.clouderamgr.service.ClouderaManagerImpl.java

License:Open Source License

@Override
public boolean validateServerVersion() throws SoftwareManagerCollectorException {
    String cmVersion = getVersion();
    DefaultArtifactVersion cmVersionInfo = new DefaultArtifactVersion(cmVersion);
    DefaultArtifactVersion minSupportedVersionInfo = new DefaultArtifactVersion(MIN_SUPPORTED_VERSION);
    logger.info("Min supported version of " + getType() + " is: " + MIN_SUPPORTED_VERSION);
    logger.info("Version of new software manager is: " + cmVersion);
    if (cmVersion.equals(UNKNOWN_VERSION)
            || cmVersionInfo.getMajorVersion() < minSupportedVersionInfo.getMajorVersion()) {
        throw SoftwareManagerCollectorException.INVALID_VERSION(Constants.CDH_PLUGIN_NAME, cmVersion);
    }/*ww  w . jav a2 s . c om*/
    return true;
}

From source file:com.vmware.bdd.plugin.clouderamgr.service.ClouderaManagerImpl.java

License:Open Source License

@Override
public List<HadoopStack> getSupportedStacks() throws SoftwareManagementPluginException {
    String randomClusterName = UUID.randomUUID().toString();
    final ApiClusterList clusterList = new ApiClusterList();
    ApiCluster apiCluster = new ApiCluster();
    apiCluster.setName(randomClusterName);
    apiCluster.setVersion(ApiClusterVersion.CDH5);
    clusterList.add(apiCluster);/*from ww  w .  j av  a  2 s  .  c  o  m*/
    try {
        List<HadoopStack> hadoopStacks = new ArrayList<HadoopStack>();
        apiResourceRootV6.getClustersResource().createClusters(clusterList);
        for (ApiParcel apiParcel : apiResourceRootV6.getClustersResource().getParcelsResource(randomClusterName)
                .readParcels(DataView.SUMMARY).getParcels()) {
            if (apiParcel.getProduct().equals(Constants.CDH_REPO_PREFIX)) {
                DefaultArtifactVersion parcelVersion = new DefaultArtifactVersion(apiParcel.getVersion());
                HadoopStack stack = new HadoopStack();
                stack.setDistro(apiParcel.getProduct(), parcelVersion.getMajorVersion() + "."
                        + parcelVersion.getMinorVersion() + "." + parcelVersion.getIncrementalVersion());
                stack.setFullVersion(apiParcel.getVersion());
                stack.setVendor(Constants.CDH_DISTRO_VENDOR);
                List<String> roles = new ArrayList<String>();
                for (String role : AvailableServiceRoleContainer.allRoles(apiParcel.getVersion())) {
                    roles.add(role);
                }
                stack.setHveSupported(true);
                stack.setRoles(roles);
                hadoopStacks.add(stack);
            }
        }
        apiResourceRootV6.getClustersResource().deleteCluster(randomClusterName);
        return hadoopStacks;
    } catch (Exception e) {
        throw SoftwareManagementPluginException.RETRIEVE_SUPPORTED_STACKS_FAIL(e, Constants.CDH_PLUGIN_NAME);
    }
}

From source file:com.vmware.bdd.plugin.clouderamgr.service.ClouderaManagerImpl.java

License:Open Source License

/** provision parcels, Reentrant
 * A Parcel encapsulate a specific product and version. For example, (CDH 4.1).
 * A parcel is downloaded, distributed to all the machines of a cluster and then allowed to be activated.
 *
 * @param cluster//from  w  w w.j  a  v a  2 s  .co  m
 * @param reportQueue
 * @throws Exception
 */
private void provisionParcels(final CmClusterDef cluster, final List<String> addedNodes,
        final ClusterReportQueue reportQueue) throws Exception {

    if (isConfigured(cluster)) {
        return;
    }

    apiResourceRootV6.getClouderaManagerResource().updateConfig(
            new ApiConfigList(Arrays.asList(new ApiConfig[] { new ApiConfig("PARCEL_UPDATE_FREQ", "1") })));

    final Set<String> repositoriesRequired = new HashSet<String>();

    for (CmServiceDef serviceDef : cluster.getServices()) {
        repositoriesRequired.add(serviceDef.getType().getRepository().toString(cluster.getVersion()));
    }

    logger.info("parcel repo required: " + repositoriesRequired + " cluster: " + cluster.getName());

    final List<String> repositoriesRequiredOrdered = new ArrayList<String>();
    for (String repository : repositoriesRequired) {
        if (repository.equals(Constants.CDH_REPO_PREFIX)) {
            repositoriesRequiredOrdered.add(0, repository);
        } else {
            repositoriesRequiredOrdered.add(repository);
        }
    }

    // validate this cluster has access to all Parcels it requires
    executeAndReport("Validating parcels availability", addedNodes, null,
            ProgressSplit.VALIDATE_PARCELS_AVAILABILITY.getProgress(), cluster.getCurrentReport(), reportQueue,
            new StatusPoller() {
                @Override
                public boolean poll() {
                    for (ApiParcel parcel : apiResourceRootV6.getClustersResource()
                            .getParcelsResource(cluster.getName()).readParcels(DataView.FULL).getParcels()) {
                        try {
                            repositoriesRequired.remove(parcel.getProduct());
                        } catch (IllegalArgumentException e) {
                            // ignore
                        }
                    }
                    // TODO: if one required parcel is not available, will run forever, need timeout/validation
                    return repositoriesRequired.isEmpty();
                }
            }, false);

    apiResourceRootV6.getClouderaManagerResource().updateConfig(
            new ApiConfigList(Arrays.asList(new ApiConfig[] { new ApiConfig("PARCEL_UPDATE_FREQ", "60") })));

    DefaultArtifactVersion expectVersion = null;
    if (cluster.getFullVersion() != null) {
        expectVersion = new DefaultArtifactVersion(cluster.getFullVersion());
    }

    for (String repository : repositoriesRequiredOrdered) {
        DefaultArtifactVersion parcelVersion = null;
        for (ApiParcel apiParcel : apiResourceRootV6.getClustersResource().getParcelsResource(cluster.getName())
                .readParcels(DataView.FULL).getParcels()) {
            DefaultArtifactVersion parcelVersionTmp = new DefaultArtifactVersion(apiParcel.getVersion());
            if (apiParcel.getProduct().equals(repository)) {
                if (apiParcel.getProduct().equals(Constants.CDH_REPO_PREFIX)) {
                    /*
                     * Policy for "CDH" parcel:
                     * 1) If specify fullVersion, try to find that parcel, if cannot, select the latest parcel(with highest version).
                     * 2) If fullVersion not specified, select the latest parcel
                     */
                    if (parcelVersion == null || parcelVersion.compareTo(parcelVersionTmp) < 0) {
                        parcelVersion = new DefaultArtifactVersion(apiParcel.getVersion());
                    }
                    if (expectVersion != null
                            && parcelVersionTmp.getMajorVersion() == expectVersion.getMajorVersion()
                            && parcelVersionTmp.getMinorVersion() == expectVersion.getMinorVersion()
                            && parcelVersionTmp.getIncrementalVersion() == expectVersion
                                    .getIncrementalVersion()) {
                        parcelVersion = new DefaultArtifactVersion(apiParcel.getVersion());
                        break;
                    }
                }

                if (!apiParcel.getProduct().equals(Constants.CDH_REPO_PREFIX)) {
                    // For non-CDH parcel, just select the latest one
                    if (parcelVersion == null || parcelVersion.compareTo(parcelVersionTmp) < 0) {
                        parcelVersion = new DefaultArtifactVersion(apiParcel.getVersion());
                    }
                }
            }
        }

        final ParcelResource apiParcelResource = apiResourceRootV6.getClustersResource()
                .getParcelsResource(cluster.getName()).getParcelResource(repository, parcelVersion.toString());
        String refMsg = referCmfUrlMsg(domain + "/cmf/parcel/status");
        if (AvailableParcelStage.valueOf(apiParcelResource.readParcel().getStage())
                .ordinal() < AvailableParcelStage.DOWNLOADED.ordinal()) {
            String action = "Downloading parcel...";

            ParcelProvisionPoller poll = new ParcelProvisionPoller(apiParcelResource,
                    AvailableParcelStage.DOWNLOADED, cluster.getCurrentReport(), reportQueue,
                    ProgressSplit.DOWNLOAD_PARCEL.getProgress());

            if (apiParcelResource.readParcel().getStage().equals(AvailableParcelStage.DOWNLOADING.toString())) {
                // Another thread is downloading this parcel, just wait for its completion
                executeAndReport(action, null, ProgressSplit.DOWNLOAD_PARCEL.getProgress(),
                        cluster.getCurrentReport(), reportQueue, poll, false);
            } else {
                // the ApiCommand instance for parcel is inaccessible, so do not check the return value
                executeAndReport(action, apiParcelResource.startDownloadCommand(),
                        ProgressSplit.DOWNLOAD_PARCEL.getProgress(), cluster.getCurrentReport(), reportQueue,
                        poll, false);
            }
            if (AvailableParcelStage.valueOf(apiParcelResource.readParcel().getStage())
                    .ordinal() < AvailableParcelStage.DOWNLOADED.ordinal()) {
                throw ClouderaManagerException.DOWNLOAD_PARCEL_FAIL(apiParcelResource.readParcel().getProduct(),
                        apiParcelResource.readParcel().getVersion(), refMsg);
            }
        }

        if (AvailableParcelStage.valueOf(apiParcelResource.readParcel().getStage())
                .ordinal() < AvailableParcelStage.DISTRIBUTED.ordinal()) {
            String action = "Distributing parcel...";

            final StatusPoller poller = new ParcelProvisionPoller(apiParcelResource,
                    AvailableParcelStage.DISTRIBUTED, cluster.getCurrentReport(), reportQueue,
                    ProgressSplit.DISTRIBUTE_PARCEL.getProgress());

            executeAndReport(action, apiParcelResource.startDistributionCommand(),
                    ProgressSplit.DISTRIBUTE_PARCEL.getProgress(), cluster.getCurrentReport(), reportQueue,
                    poller, false);

            if (AvailableParcelStage.valueOf(apiParcelResource.readParcel().getStage())
                    .ordinal() < AvailableParcelStage.DISTRIBUTED.ordinal()) {
                throw ClouderaManagerException.DISTRIBUTE_PARCEL_FAIL(
                        apiParcelResource.readParcel().getProduct(),
                        apiParcelResource.readParcel().getVersion(), refMsg);
            }
        }
        if (AvailableParcelStage.valueOf(apiParcelResource.readParcel().getStage())
                .ordinal() < AvailableParcelStage.ACTIVATED.ordinal()) {
            String action = "Activating parcel...";

            executeAndReport(action, apiParcelResource.activateCommand(),
                    ProgressSplit.ACTIVATE_PARCEL.getProgress(), cluster.getCurrentReport(), reportQueue,
                    new StatusPoller() {
                        @Override
                        public boolean poll() {
                            // activate parcel is pretty fast, so suppose we are no need to do much error handling/progress monitoring
                            // TODO: set a timeout
                            return apiParcelResource.readParcel().getStage()
                                    .equals(AvailableParcelStage.ACTIVATED.toString());
                        }
                    }, false);

            if (AvailableParcelStage.valueOf(apiParcelResource.readParcel().getStage())
                    .ordinal() < AvailableParcelStage.ACTIVATED.ordinal()) {
                throw ClouderaManagerException.ACTIVATE_PARCEL_FAIL(apiParcelResource.readParcel().getProduct(),
                        apiParcelResource.readParcel().getVersion(), refMsg);
            }
        }
    }
}

From source file:com.vmware.bdd.utils.Version.java

License:Open Source License

public static int compare(String srcVersion, String destVersion) {
    DefaultArtifactVersion srcArtifactVersion = new DefaultArtifactVersion(srcVersion);
    DefaultArtifactVersion destArtifactVersion = new DefaultArtifactVersion(destVersion);

    int[] srcVersionArray = { srcArtifactVersion.getMajorVersion(), srcArtifactVersion.getMinorVersion(),
            srcArtifactVersion.getIncrementalVersion() };
    int[] destVersionArray = { destArtifactVersion.getMajorVersion(), destArtifactVersion.getMinorVersion(),
            destArtifactVersion.getIncrementalVersion() };

    for (int i = 0; i < srcVersionArray.length; i++) {
        if (i >= destVersionArray.length) {
            return compare(destVersionArray, srcVersionArray, 1);
        }/*from w  w  w.ja  v a  2  s .  c om*/
        if (srcVersionArray[i] > destVersionArray[i]) {
            return 1;
        } else if (srcVersionArray[i] < destVersionArray[i]) {
            return -1;
        }
    }
    if (destVersionArray.length > srcVersionArray.length) {
        return compare(srcVersionArray, destVersionArray, -1);
    }
    return 0;
}