package org.jfrog.build.extractor.maven.resolver; import org.apache.commons.lang.StringUtils; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; import org.codehaus.plexus.logging.Logger; import org.jfrog.build.extractor.clientConfiguration.ArtifactoryClientConfiguration; import org.jfrog.build.extractor.BuildInfoExtractorUtils; import org.jfrog.build.extractor.maven.Maven3BuildInfoLogger; import java.util.Properties; /** * Created by liorh on 4/24/14. */ @Component(role = ResolutionHelper.class) public class ResolutionHelper { @Requirement private Logger logger; private ArtifactoryClientConfiguration internalConfiguration; private boolean initialized = false; public void init(Properties allMavenProps) { if (internalConfiguration != null) { return; } Maven3BuildInfoLogger log = new Maven3BuildInfoLogger(logger); Properties allProps = BuildInfoExtractorUtils.mergePropertiesWithSystemAndPropertyFile(allMavenProps, log); internalConfiguration = new ArtifactoryClientConfiguration(log); internalConfiguration.fillFromProperties(allProps); initialized = true; } public boolean isInitialized() { return initialized; } /** * Determines a deployed artifact's scope (either "project" or "build") according to the maven's request context sent as an argument. * @param requestContext The deployed artifact's request context. * @return Scope value for the request context. */ public String getScopeByRequestContext(String requestContext) { if (requestContext == null) { return "project"; } if ("plugin".equals(requestContext)) { return "build"; } return "project"; } public String getRepoReleaseUrl() { return internalConfiguration.resolver.getUrl(internalConfiguration.resolver.getRepoKey()); } public String getRepoSnapshotUrl() { return internalConfiguration.resolver.getUrl(internalConfiguration.resolver.getDownloadSnapshotRepoKey()); } /** * Checks whether Artifactory resolution repositories have been configured. * @return true if at least one Artifactory resolution repository has been configured. */ public boolean resolutionRepositoriesConfigured() { return StringUtils.isNotBlank(getRepoReleaseUrl()) || StringUtils.isNotBlank(getRepoSnapshotUrl()); } public String getRepoUsername() { return internalConfiguration.resolver.getUsername(); } public String getRepoPassword() { return internalConfiguration.resolver.getPassword(); } public String getProxyHost() { return internalConfiguration.proxy.getHost(); } public Integer getProxyPort() { return internalConfiguration.proxy.getPort(); } public String getProxyUsername() { return internalConfiguration.proxy.getUsername(); } public String getProxyPassword() { return internalConfiguration.proxy.getPassword(); } }