All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.capitalone.dashboard.request.DashboardRemoteRequest Maven / Gradle / Ivy
package com.capitalone.dashboard.request;
import com.capitalone.dashboard.misc.HygieiaException;
import com.capitalone.dashboard.model.Collector;
import com.capitalone.dashboard.model.CollectorItem;
import com.capitalone.dashboard.model.CollectorType;
import com.capitalone.dashboard.model.Owner;
import com.capitalone.dashboard.util.GitHubParsedUrl;
import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class DashboardRemoteRequest {
@Valid
private DashboardMetaData metaData;
@Valid
private List featureEntries = new ArrayList<>();
@Valid
private List codeRepoEntries = new ArrayList<>();
@Valid
private List buildEntries = new ArrayList<>();
@Valid
private List staticCodeEntries = new ArrayList<>();
@Valid
private List securityScanEntries = new ArrayList<>();
@Valid
private List deploymentEntries = new ArrayList<>();
@Valid
private List libraryScanEntries = new ArrayList<>();
@Valid
private List functionalTestEntries = new ArrayList<>();
@Valid
private List artifactEntries = new ArrayList<>();
@Valid
private List performanceTestEntries = new ArrayList<>();
/**
* Dashboard Metadata
*/
public static class DashboardMetaData {
@NotNull
private String template;
@NotNull
private String type;
@NotNull
@Size(min = 6, max = 50)
@Pattern(message = "Special character(s) found", regexp = "^[a-zA-Z0-9 ]*$")
private String title;
@NotNull
private String applicationName;
@NotNull
private String componentName;
Owner owner;
List owners;
private String businessService;
private String businessApplication;
public String getTemplate() {
return template;
}
public void setTemplate(String template) {
this.template = template;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getApplicationName() {
return applicationName;
}
public void setApplicationName(String applicationName) {
this.applicationName = applicationName;
}
public String getComponentName() {
return componentName;
}
public void setComponentName(String componentName) {
this.componentName = componentName;
}
public String getBusinessService() {
return businessService;
}
public void setBusinessService(String businessService) {
this.businessService = businessService;
}
public String getBusinessApplication() {
return businessApplication;
}
public void setBusinessApplication(String businessApplication) {
this.businessApplication = businessApplication;
}
public Owner getOwner() {
return owner;
}
public List getOwners() {
return owners;
}
public void setOwner(Owner owner) {
this.owner = owner;
}
public void setOwners(List owners) {
this.owners = owners;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
/**
* An abstract class to hold the entries: Jira project, github project, build job etc.
*/
public static abstract class Entry {
@NotNull
String toolName;
@NotNull
String description;
boolean pushed = false;
String niceName;
@NotEmpty
Map options = new HashMap<>();
public abstract CollectorType getType();
public String getToolName() {
return toolName;
}
public void setToolName(String toolName) {
this.toolName = toolName;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public boolean isPushed() {
return pushed;
}
public void setPushed(boolean pushed) {
this.pushed = pushed;
}
public String getNiceName() { return niceName; }
public void setNiceName(String niceName) { this.niceName = niceName; }
public CollectorItem toCollectorItem(Collector collector) throws HygieiaException{
if (options.keySet().containsAll(collector.getUniqueFields().keySet())) {
CollectorItem collectorItem = new CollectorItem();
collectorItem.setEnabled(true);
collectorItem.setPushed(isPushed());
collectorItem.setDescription(description);
collectorItem.setNiceName(niceName);
for (String key : options.keySet()) {
if (collector.getAllFields().keySet().contains(key)) {
collectorItem.getOptions().put(key, options.get(key));
} else {
throw new HygieiaException(toolName + " collector does not support field: " + key, HygieiaException.COLLECTOR_ITEM_CREATE_ERROR);
}
}
return collectorItem;
} else {
throw new HygieiaException("Missing required fields. " + toolName + " collector required fields are: " + String.join(", ", collector.getUniqueFields().keySet()), HygieiaException.COLLECTOR_ITEM_CREATE_ERROR);
}
}
public abstract String getWidgetId();
public abstract String getWidgetName();
public abstract Map toWidgetOptions();
public Map getOptions() {
return options;
}
public void setOptions(Map options) {
this.options = options;
}
}
/**
* Details for creating Feature widget
*/
public static class FeatureEntry extends Entry {
@Override
public CollectorType getType() {
return CollectorType.AgileTool;
}
@Override
public String getWidgetId() {
return "feature0";
}
@Override
public String getWidgetName() {
return "feature";
}
@Override
public Map toWidgetOptions() {
Map opts = new HashMap<>();
opts.put("id", getWidgetId());
options.keySet().forEach(key -> {
opts.put(key, options.get(key));
});
return opts;
}
}
/**
* Details for creating Code Repo widget
*/
public static class CodeRepoEntry extends Entry {
@Override
public CollectorType getType() {
return CollectorType.SCM;
}
@Override
public String getWidgetId() {
return "repo0";
}
@Override
public String getWidgetName() {
return "repo";
}
@Override
public Map toWidgetOptions() {
Map opts = new HashMap<>();
opts.put("name", "repo");
opts.put("id", "repo0");
options.keySet().forEach(key -> {
if ("url".equalsIgnoreCase(key)) {
GitHubParsedUrl gitHubParsed = new GitHubParsedUrl((String) options.get(key));
String repoUrl = gitHubParsed.getUrl();
opts.put(key, repoUrl);
} else {
opts.put(key, options.get(key));
}
});
Map scm = new HashMap<>();
scm.put("name", toolName);
scm.put("value", toolName);
opts.put("scm", scm);
return opts;
}
}
/**
* Details for creating Build widget
*/
public static class BuildEntry extends Entry {
@Override
public CollectorType getType() {
return CollectorType.Build;
}
@Override
public String getWidgetId() {
return "build0";
}
@Override
public String getWidgetName() {
return "build";
}
@Override
public Map toWidgetOptions() {
Map opts = new HashMap<>();
opts.put("id", getWidgetId());
opts.put("buildDurationThreshold", 3);
opts.put("consecutiveFailureThreshold",5);
return opts;
}
}
/**
* Details for creating Static Code Analysis in Code Quality Widget
*/
public static class StaticCodeEntry extends Entry {
@Override
public CollectorType getType() {
return CollectorType.CodeQuality;
}
@Override
public String getWidgetId() {
return "codeanalysis0";
}
@Override
public String getWidgetName() {
return "codeanalysis";
}
@Override
public Map toWidgetOptions() {
Map opts = new HashMap<>();
opts.put("id", getWidgetId());
return opts;
}
}
/**
* Entry to create Library Scan in Code Quality Widget
*
*/
public static class LibraryScanEntry extends Entry {
@Override
public CollectorType getType() {
return CollectorType.LibraryPolicy;
}
@Override
public String getWidgetId() {
return "codeanalysis0";
}
@Override
public String getWidgetName() {
return "codeanalysis";
}
@Override
public Map toWidgetOptions() {
Map opts = new HashMap<>();
opts.put("id", getWidgetId());
return opts;
}
}
/**
* Entry to create Security Scan in Code Quality Widget
*/
public static class SecurityScanEntry extends Entry {
@Override
public CollectorType getType() {
return CollectorType.StaticSecurityScan;
}
@Override
public String getWidgetId() {
return "codeanalysis0";
}
@Override
public String getWidgetName() {
return "codeanalysis";
}
@Override
public Map toWidgetOptions() {
Map opts = new HashMap<>();
opts.put("id", getWidgetId());
return opts;
}
}
/**
* Entry to create Functional Test in Code Quality Widget
*/
public static class FunctionalTestEntry extends Entry {
@Override
public CollectorType getType() {
return CollectorType.Test;
}
@Override
public String getWidgetId() {
return "codeanalysis0";
}
@Override
public String getWidgetName() {
return "codeanalysis";
}
@Override
public Map toWidgetOptions() {
Map opts = new HashMap<>();
opts.put("id", getWidgetId());
return opts;
}
}
/**
* Entry to create Functional Test in Code Quality Widget
*/
public static class PerformanceTestEntry extends Entry {
@Override
public CollectorType getType() {
return CollectorType.Test;
}
@Override
public String getWidgetId() {
return "codeanalysis0";
}
@Override
public String getWidgetName() {
return "codeanalysis";
}
@Override
public Map toWidgetOptions() {
Map opts = new HashMap<>();
opts.put("id", getWidgetId());
return opts;
}
}
/**
* Entry to create Functional Test in Code Quality Widget
*/
public static class ArtifactEntry extends Entry {
@Override
public CollectorType getType() {
return CollectorType.Artifact;
}
@Override
public String getWidgetId() {
return "build0";
}
@Override
public String getWidgetName() {
return "build";
}
@Override
public Map toWidgetOptions() {
Map opts = new HashMap<>();
opts.put("id", getWidgetId());
return opts;
}
}
/**
* Entry to create Deployment widget
*/
public static class DeploymentEntry extends Entry {
@Override
public CollectorType getType() {
return CollectorType.Deployment;
}
@Override
public String getWidgetId() {
return "deploy0";
}
@Override
public String getWidgetName() {
return "deploy";
}
@Override
public Map toWidgetOptions() {
Map opts = new HashMap<>();
opts.put("id", getWidgetId());
return opts;
}
}
// Getters and setters
public DashboardMetaData getMetaData() {
return metaData;
}
public void setMetaData(DashboardMetaData metaData) {
this.metaData = metaData;
}
public List getFeatureEntries() {
return featureEntries;
}
public void setFeatureEntries(List featureEntries) {
this.featureEntries = featureEntries;
}
public List getCodeRepoEntries() {
return codeRepoEntries;
}
public void setCodeRepoEntries(List codeRepoEntries) {
this.codeRepoEntries = codeRepoEntries;
}
public List getBuildEntries() {
return buildEntries;
}
public void setBuildEntries(List buildEntries) {
this.buildEntries = buildEntries;
}
public List getStaticCodeEntries() {
return staticCodeEntries;
}
public void setStaticCodeEntries(List staticCodeEntries) {
this.staticCodeEntries = staticCodeEntries;
}
public List getSecurityScanEntries() {
return securityScanEntries;
}
public void setSecurityScanEntries(List securityScanEntries) {
this.securityScanEntries = securityScanEntries;
}
public List getDeploymentEntries() {
return deploymentEntries;
}
public void setDeploymentEntries(List deploymentEntries) {
this.deploymentEntries = deploymentEntries;
}
public List getLibraryScanEntries() {
return libraryScanEntries;
}
public void setLibraryScanEntries(List libraryScanEntries) {
this.libraryScanEntries = libraryScanEntries;
}
public List getFunctionalTestEntries() {
return functionalTestEntries;
}
public void setFunctionalTestEntries(List functionalTestEntries) {
this.functionalTestEntries = functionalTestEntries;
}
public List getArtifactEntries() {
return artifactEntries;
}
public void setArtifactEntries(List artifactEntries) {
this.artifactEntries = artifactEntries;
}
public List getPerformanceTestEntries() {
return performanceTestEntries;
}
public void setPerformanceTestEntries(List performanceTestEntries) {
this.performanceTestEntries = performanceTestEntries;
}
public List getAllEntries() {
List all = new ArrayList<>();
all.addAll(buildEntries);
all.addAll(codeRepoEntries);
all.addAll(staticCodeEntries);
all.addAll(libraryScanEntries);
all.addAll(securityScanEntries);
all.addAll(functionalTestEntries);
all.addAll(deploymentEntries);
all.addAll(featureEntries);
all.addAll(artifactEntries);
all.addAll(performanceTestEntries);
return all;
}
}