package org.jfrog.bamboo.context;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Sets;
import org.apache.commons.lang.StringUtils;
import org.jfrog.bamboo.bintray.PushToBintrayContext;
import java.util.Map;
import java.util.Set;
/**
* @author Tomer Cohen
*/
public class GenericContext {
public static final String PREFIX = "builder.artifactoryGenericBuilder.";
public static final String SERVER_ID_PARAM = AbstractBuildContext.SERVER_ID_PARAM;
public static final String REPO_KEY = "builder.artifactoryGenericBuilder.deployableRepo";
public static final String REPO_RESOLVE_KEY = "artifactory.generic.resolveRepo";
public static final String USERNAME = "artifactory.generic.username";
public static final String PASSWORD = "artifactory.generic.password";
public static final String DEPLOY_PATTERN = "artifactory.generic.deployPattern";
public static final String RESOLVE_PATTERN = "artifactory.generic.resolvePattern";
public static final String PUBLISH_BUILD_INFO = "artifactory.generic.publishBuildInfo";
public static final String INCLUDE_ENV_VARS = "artifactory.generic.includeEnvVars";
public static final String ARTIFACT_SPECS = "artifactory.generic.artifactSpecs";
public static final String ENV_VARS_INCLUDE_PATTERNS = "artifactory.generic.envVarsIncludePatterns";
public static final String ENV_VARS_EXCLUDE_PATTERNS = "artifactory.generic.envVarsExcludePatterns";
public static final String ENABLE_BINTRAY_CONFIGURATION = "bintrayConfiguration";
public static final String SIGN_METHOD_MAP_KEY = "signMethods";
public static final Map<String, String> SIGN_METHOD_MAP = ImmutableMap.of(
"false", "Don't Sign", "true", "Sign");
private final Map<String, String> env;
public GenericContext(Map<String, String> env) {
this.env = env;
}
public static Set<String> getFieldsToCopy() {
Set<String> fieldsToCopy = Sets.newHashSet(PREFIX + SERVER_ID_PARAM, REPO_KEY, REPO_RESOLVE_KEY, USERNAME, PASSWORD, DEPLOY_PATTERN, ARTIFACT_SPECS,
RESOLVE_PATTERN, PUBLISH_BUILD_INFO, INCLUDE_ENV_VARS, ENV_VARS_INCLUDE_PATTERNS, ENV_VARS_EXCLUDE_PATTERNS, ENABLE_BINTRAY_CONFIGURATION);
fieldsToCopy.addAll(PushToBintrayContext.bintrayFields);
return fieldsToCopy;
}
public long getSelectedServerId() {
String serverId = env.get(PREFIX + SERVER_ID_PARAM);
if (StringUtils.isBlank(serverId)) {
// In version 1.8.1 the key containing the Artifactory Server ID was changed
// in the Generic Resolve and Deploy configurations.
// The following line tries to get the server using the old key.
serverId = env.get("artifactory.generic.artifactoryServerId");
}
if (StringUtils.isBlank(serverId)) {
return -1;
}
return Long.parseLong(serverId);
}
public String getRepoKey() {
String key = env.get(REPO_KEY);
if (StringUtils.isBlank(key)) {
// Compatibility with 1.8.0
return env.get("artifactory.generic.deployableRepo");
}
return key;
}
public String getUsername() {
return env.get(USERNAME);
}
public String getPassword() {
return env.get(PASSWORD);
}
public String getDeployPattern() {
return env.get(DEPLOY_PATTERN);
}
public String getResolvePattern() {
return env.get(RESOLVE_PATTERN);
}
public boolean isPublishBuildInfo() {
return Boolean.parseBoolean(env.get(PUBLISH_BUILD_INFO));
}
public boolean isIncludeEnvVars() {
return Boolean.parseBoolean(env.get(INCLUDE_ENV_VARS));
}
public String getEnvVarsIncludePatterns() {
return env.get(ENV_VARS_INCLUDE_PATTERNS);
}
public String getEnvVarsExcludePatterns() {
return env.get(ENV_VARS_EXCLUDE_PATTERNS);
}
public String getArtifactSpecs() {
return env.get(ARTIFACT_SPECS);
}
}