diff --git a/build.gradle b/build.gradle index 655d196..ed82c0a 100644 --- a/build.gradle +++ b/build.gradle @@ -158,6 +158,14 @@ configure(allprojects) { } } + pmd { + ruleSetFiles = files("${project.rootDir}/ci/config/pmdRuleSet.xml") + } + + pmdTest { + ruleSetFiles = files("${project.rootDir}/ci/config/pmdTestRuleSet.xml") + } + artifactory { contextUrl = 'https://repo.spring.io' publish { @@ -306,14 +314,6 @@ configure(rootProject) { } } -pmd { - ruleSetFiles = files("${project.rootDir}/ci/config/pmdRuleSet.xml") -} - -pmdTest { - ruleSetFiles = files("${project.rootDir}/ci/config/pmdTestRuleSet.xml") -} - task codeCoverageReport(type: JacocoReport) { executionData fileTree(project.rootDir.absolutePath).include("**/build/jacoco/*.exec") diff --git a/ci/config/pmdRuleSet.xml b/ci/config/pmdRuleSet.xml index 937f9f0..3cea15d 100644 --- a/ci/config/pmdRuleSet.xml +++ b/ci/config/pmdRuleSet.xml @@ -6,11 +6,23 @@ - - + + + + + + + + + + + + + + @@ -19,7 +31,10 @@ - + + + + diff --git a/ci/config/pmdTestRuleSet.xml b/ci/config/pmdTestRuleSet.xml index 083b68c..8efa08c 100644 --- a/ci/config/pmdTestRuleSet.xml +++ b/ci/config/pmdTestRuleSet.xml @@ -49,6 +49,7 @@ + @@ -56,6 +57,7 @@ + diff --git a/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/BrokerProperties.java b/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/BrokerProperties.java index f8148c0..89d326a 100644 --- a/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/BrokerProperties.java +++ b/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/BrokerProperties.java @@ -18,9 +18,9 @@ package org.springframework.cloud.appbroker.acceptance; class BrokerProperties { - private String[] properties; + private final String[] properties; - BrokerProperties(String[] properties) { + BrokerProperties(String... properties) { this.properties = properties; } diff --git a/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/CloudFoundryAcceptanceTest.java b/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/CloudFoundryAcceptanceTest.java index ec4e2fb..94dc896 100644 --- a/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/CloudFoundryAcceptanceTest.java +++ b/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/CloudFoundryAcceptanceTest.java @@ -45,11 +45,6 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; @EnableConfigurationProperties(AcceptanceTestProperties.class) class CloudFoundryAcceptanceTest { - @BeforeEach - void setUp(BrokerProperties brokerProperties) { - initializeBroker(brokerProperties.getProperties()); - } - private static final String SAMPLE_BROKER_APP_NAME = "sample-broker"; private static final String SERVICE_BROKER_NAME = "sample-broker-name"; private static final String SERVICE_NAME = "example"; @@ -62,12 +57,17 @@ class CloudFoundryAcceptanceTest { @Autowired private AcceptanceTestProperties acceptanceTestProperties; + @BeforeEach + void setUp(BrokerProperties brokerProperties) { + initializeBroker(brokerProperties.getProperties()); + } + @AfterEach void tearDown() { blockingSubscribe(cleanup()); } - void initializeBroker(String[] backingAppProperties) { + private void initializeBroker(String... backingAppProperties) { blockingSubscribe(cloudFoundryService .getOrCreateDefaultOrganization() diff --git a/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/fixtures/cf/CloudFoundryService.java b/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/fixtures/cf/CloudFoundryService.java index 047d64a..cacf860 100644 --- a/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/fixtures/cf/CloudFoundryService.java +++ b/spring-cloud-app-broker-acceptance-tests/src/test/java/org.springframework.cloud.appbroker.acceptance/fixtures/cf/CloudFoundryService.java @@ -60,9 +60,9 @@ public class CloudFoundryService { private static final Logger LOGGER = LoggerFactory.getLogger(CloudFoundryService.class); - private CloudFoundryOperations cloudFoundryOperations; - private CloudFoundryProperties cloudFoundryProperties; - private CloudFoundryClient cloudFoundryClient; + private final CloudFoundryOperations cloudFoundryOperations; + private final CloudFoundryProperties cloudFoundryProperties; + private final CloudFoundryClient cloudFoundryClient; @Autowired public CloudFoundryService(CloudFoundryOperations cloudFoundryOperations, @@ -94,7 +94,7 @@ public class CloudFoundryService { .build()))); } - public Mono getApplicationRoute(String appName) { + private Mono getApplicationRoute(String appName) { return loggingMono( cloudFoundryOperations .applications() @@ -105,7 +105,7 @@ public class CloudFoundryService { .map(url -> "https://" + url)); } - public Mono pushAppBroker(String appName, Path appPath, String[] backingAppProperties) { + public Mono pushAppBroker(String appName, Path appPath, String... backingAppProperties) { return loggingMono( cloudFoundryOperations .applications() @@ -282,13 +282,15 @@ public class CloudFoundryService { return catalogVariables; } - private Map backingAppEnvironmentVariables(String[] backingAppProperties) { + private Map backingAppEnvironmentVariables(String... backingAppProperties) { Map backingAppVariables = new HashMap<>(); for (String appProperty : backingAppProperties) { final String[] appPropertyKeyValue = appProperty.split("="); - if (appPropertyKeyValue.length != 2) { - throw new RuntimeException(format("Backing app property '%s' is incorrectly formatted", Arrays.toString(appPropertyKeyValue))); - } else backingAppVariables.put(appPropertyKeyValue[0], appPropertyKeyValue[1]); + if (appPropertyKeyValue.length == 2) { + backingAppVariables.put(appPropertyKeyValue[0], appPropertyKeyValue[1]); + } else { + throw new IllegalArgumentException(format("Backing app property '%s' is incorrectly formatted", Arrays.toString(appPropertyKeyValue))); + } } return backingAppVariables; } @@ -296,7 +298,9 @@ public class CloudFoundryService { private Mono loggingMono(Mono publisher) { if (LOGGER.isDebugEnabled()) { return publisher.log(); - } else return publisher; + } else { + return publisher; + } } } diff --git a/spring-cloud-app-broker-autoconfigure/src/main/java/org/springframework/cloud/appbroker/autoconfigure/AppBrokerAutoConfiguration.java b/spring-cloud-app-broker-autoconfigure/src/main/java/org/springframework/cloud/appbroker/autoconfigure/AppBrokerAutoConfiguration.java index 2631098..bf96fd6 100644 --- a/spring-cloud-app-broker-autoconfigure/src/main/java/org/springframework/cloud/appbroker/autoconfigure/AppBrokerAutoConfiguration.java +++ b/spring-cloud-app-broker-autoconfigure/src/main/java/org/springframework/cloud/appbroker/autoconfigure/AppBrokerAutoConfiguration.java @@ -67,7 +67,7 @@ public class AppBrokerAutoConfiguration { @Bean @ConfigurationProperties(PROPERTY_PREFIX + ".services") public BrokeredServices brokeredServices() { - return new BrokeredServices(); + return BrokeredServices.builder().build(); } @Bean diff --git a/spring-cloud-app-broker-autoconfigure/src/main/java/org/springframework/cloud/appbroker/autoconfigure/CloudFoundryProperties.java b/spring-cloud-app-broker-autoconfigure/src/main/java/org/springframework/cloud/appbroker/autoconfigure/CloudFoundryProperties.java index 7c866d8..1ba5a56 100644 --- a/spring-cloud-app-broker-autoconfigure/src/main/java/org/springframework/cloud/appbroker/autoconfigure/CloudFoundryProperties.java +++ b/spring-cloud-app-broker-autoconfigure/src/main/java/org/springframework/cloud/appbroker/autoconfigure/CloudFoundryProperties.java @@ -22,9 +22,7 @@ import org.cloudfoundry.reactor.ProxyConfiguration; import org.springframework.boot.context.properties.ConfigurationProperties; -import static org.springframework.cloud.appbroker.autoconfigure.CloudFoundryProperties.PROPERTY_PREFIX; - -@ConfigurationProperties(PROPERTY_PREFIX) +@ConfigurationProperties(CloudFoundryProperties.PROPERTY_PREFIX) public class CloudFoundryProperties { static final String PROPERTY_PREFIX = "spring.cloud.appbroker.deployer.cloudfoundry"; diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BackingApplication.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BackingApplication.java index 8453cc4..fcad010 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BackingApplication.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BackingApplication.java @@ -38,30 +38,30 @@ public class BackingApplication { public BackingApplication(BackingApplication backingApplicationToCopy) { this.name = backingApplicationToCopy.name; this.path = backingApplicationToCopy.path; - this.properties = backingApplicationToCopy.properties != null - ? new HashMap<>(backingApplicationToCopy.properties) - : new HashMap<>(); - this.environment = backingApplicationToCopy.environment != null - ? new HashMap<>(backingApplicationToCopy.environment) - : new HashMap<>(); - this.services = backingApplicationToCopy.services != null - ? new ArrayList<>(backingApplicationToCopy.services) - : new ArrayList<>(); - this.parametersTransformers = backingApplicationToCopy.parametersTransformers != null - ? new ArrayList<>(backingApplicationToCopy.parametersTransformers) - : new ArrayList<>(); - this.credentialProviders = backingApplicationToCopy.credentialProviders != null - ? new ArrayList<>(backingApplicationToCopy.credentialProviders) - : new ArrayList<>(); + this.properties = backingApplicationToCopy.properties == null + ? new HashMap<>() + : new HashMap<>(backingApplicationToCopy.properties); + this.environment = backingApplicationToCopy.environment == null + ? new HashMap<>() + : new HashMap<>(backingApplicationToCopy.environment); + this.services = backingApplicationToCopy.services == null + ? new ArrayList<>() + : new ArrayList<>(backingApplicationToCopy.services); + this.parametersTransformers = backingApplicationToCopy.parametersTransformers == null + ? new ArrayList<>() + : new ArrayList<>(backingApplicationToCopy.parametersTransformers); + this.credentialProviders = backingApplicationToCopy.credentialProviders == null + ? new ArrayList<>() + : new ArrayList<>(backingApplicationToCopy.credentialProviders); } private BackingApplication() { } - private BackingApplication(String name, String path, Map properties, - Map environment, List services, - List parametersTransformers, - List credentialProviders) { + BackingApplication(String name, String path, Map properties, + Map environment, List services, + List parametersTransformers, + List credentialProviders) { this.name = name; this.path = path; this.properties = properties; @@ -141,8 +141,12 @@ public class BackingApplication { @Override public final boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof BackingApplication)) return false; + if (this == o) { + return true; + } + if (!(o instanceof BackingApplication)) { + return false; + } BackingApplication that = (BackingApplication) o; return Objects.equals(name, that.name) && Objects.equals(path, that.path) && @@ -187,11 +191,11 @@ public class BackingApplication { private String name; private String path; - private Map properties = new HashMap<>(); - private Map environment = new HashMap<>(); - private List services = new ArrayList<>(); - private List parameterTransformers = new ArrayList<>(); - private List credentialProviders = new ArrayList<>(); + private final Map properties = new HashMap<>(); + private final Map environment = new HashMap<>(); + private final List services = new ArrayList<>(); + private final List parameterTransformers = new ArrayList<>(); + private final List credentialProviders = new ArrayList<>(); BackingApplicationBuilder() { } diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BackingApplications.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BackingApplications.java index 4d9031a..fd033a6 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BackingApplications.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BackingApplications.java @@ -22,7 +22,11 @@ import java.util.List; public class BackingApplications extends ArrayList { private static final long serialVersionUID = 159473836238657105L; - public BackingApplications() { + private BackingApplications() { + } + + BackingApplications(List backingApplications) { + super.addAll(backingApplications); } public BackingApplications(BackingApplications backingApplicationsToCopy) { @@ -30,16 +34,12 @@ public class BackingApplications extends ArrayList { this.add(new BackingApplication(backingApplicationToCopy))); } - private BackingApplications(List backingApplications) { - super.addAll(backingApplications); - } - public static BackingApplicationsBuilder builder() { return new BackingApplicationsBuilder(); } public static class BackingApplicationsBuilder { - private List backingApplications = new ArrayList<>(); + private final List backingApplications = new ArrayList<>(); public BackingApplicationsBuilder backingApplication(BackingApplication backingApplication) { this.backingApplications.add(backingApplication); diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BrokeredService.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BrokeredService.java index 21deef3..0d1d671 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BrokeredService.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BrokeredService.java @@ -26,7 +26,7 @@ public class BrokeredService { private BrokeredService() { } - private BrokeredService(String serviceName, String planName, BackingApplications apps) { + BrokeredService(String serviceName, String planName, BackingApplications apps) { this.serviceName = serviceName; this.planName = planName; this.apps = apps; @@ -62,8 +62,12 @@ public class BrokeredService { @Override public final boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof BrokeredService)) return false; + if (this == o) { + return true; + } + if (!(o instanceof BrokeredService)) { + return false; + } BrokeredService that = (BrokeredService) o; return Objects.equals(serviceName, that.serviceName) && Objects.equals(planName, that.planName) && diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BrokeredServices.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BrokeredServices.java index 7a8e743..407b9bb 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BrokeredServices.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/BrokeredServices.java @@ -22,10 +22,10 @@ import java.util.List; public class BrokeredServices extends ArrayList { private static final long serialVersionUID = 6303127383252611352L; - public BrokeredServices() { + private BrokeredServices() { } - private BrokeredServices(List brokeredServices) { + BrokeredServices(List brokeredServices) { super.addAll(brokeredServices); } @@ -34,7 +34,7 @@ public class BrokeredServices extends ArrayList { } public static class BrokeredServicesBuilder { - private List brokeredServices = new ArrayList<>(); + private final List brokeredServices = new ArrayList<>(); public BrokeredServicesBuilder service(BrokeredService brokeredService) { this.brokeredServices.add(brokeredService); diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/CredentialProviderSpec.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/CredentialProviderSpec.java index 18682a5..84b7d4a 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/CredentialProviderSpec.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/CredentialProviderSpec.java @@ -26,7 +26,7 @@ public class CredentialProviderSpec { private CredentialProviderSpec() { } - private CredentialProviderSpec(String name, Map args) { + CredentialProviderSpec(String name, Map args) { this.name = name; this.args = args; } @@ -53,9 +53,9 @@ public class CredentialProviderSpec { public static class CredentialProviderSpecBuilder { private String name; - private Map args = new LinkedHashMap<>(); + private final Map args = new LinkedHashMap<>(); - private CredentialProviderSpecBuilder() { + CredentialProviderSpecBuilder() { } public CredentialProviderSpecBuilder name(String name) { diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/DeployerClient.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/DeployerClient.java index 585302c..00a30f5 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/DeployerClient.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/DeployerClient.java @@ -24,7 +24,7 @@ public class DeployerClient { private final Logger log = Loggers.getLogger(DeployerClient.class); - private AppDeployer appDeployer; + private final AppDeployer appDeployer; public DeployerClient(AppDeployer appDeployer) { this.appDeployer = appDeployer; diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/ParametersTransformerSpec.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/ParametersTransformerSpec.java index e50cd25..4b6ba95 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/ParametersTransformerSpec.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/deployer/ParametersTransformerSpec.java @@ -26,7 +26,7 @@ public class ParametersTransformerSpec { private ParametersTransformerSpec() { } - private ParametersTransformerSpec(String name, Map args) { + ParametersTransformerSpec(String name, Map args) { this.name = name; this.args = args; } @@ -53,9 +53,9 @@ public class ParametersTransformerSpec { public static class ParametersTransformerSpecBuilder { private String name; - private Map args = new LinkedHashMap<>(); + private final Map args = new LinkedHashMap<>(); - private ParametersTransformerSpecBuilder() { + ParametersTransformerSpecBuilder() { } public ParametersTransformerSpecBuilder name(String name) { diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/ExtensionLocator.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/ExtensionLocator.java index c2325c4..f9c3475 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/ExtensionLocator.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/ExtensionLocator.java @@ -23,7 +23,7 @@ import java.util.List; import java.util.Map; public class ExtensionLocator { - private final HashMap> factoriesByName = new HashMap<>(); + private final Map> factoriesByName = new HashMap<>(); public ExtensionLocator(List> factories) { factories.forEach(parametersTransformer -> diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/credentials/SimpleCredentialGenerator.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/credentials/SimpleCredentialGenerator.java index a05e3f7..06ba8e9 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/credentials/SimpleCredentialGenerator.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/credentials/SimpleCredentialGenerator.java @@ -63,7 +63,7 @@ public class SimpleCredentialGenerator implements CredentialGenerator { builder.append(SPECIAL_CHARACTERS); } - if (builder.toString().length() == 0) { + if (builder.length() == 0) { builder.append(UPPERCASE_ALPHA) .append(LOWERCASE_ALPHA) .append(DIGITS) diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/credentials/SpringSecurityBasicAuthCredentialProviderFactory.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/credentials/SpringSecurityBasicAuthCredentialProviderFactory.java index 6ce837f..9151731 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/credentials/SpringSecurityBasicAuthCredentialProviderFactory.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/credentials/SpringSecurityBasicAuthCredentialProviderFactory.java @@ -26,7 +26,7 @@ public class SpringSecurityBasicAuthCredentialProviderFactory extends static final String SPRING_SECURITY_USER_NAME = "security.user.name"; static final String SPRING_SECURITY_USER_PASSWORD = "security.user.password"; - private CredentialGenerator credentialGenerator; + private final CredentialGenerator credentialGenerator; public SpringSecurityBasicAuthCredentialProviderFactory(CredentialGenerator credentialGenerator) { super(Config.class); diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/support/ConfigurationBeanUtils.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/support/ConfigurationBeanUtils.java index 2c8788a..4d840cd 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/support/ConfigurationBeanUtils.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/support/ConfigurationBeanUtils.java @@ -25,7 +25,10 @@ import org.springframework.aop.support.AopUtils; import java.lang.reflect.InvocationTargetException; import java.util.Map; -public abstract class ConfigurationBeanUtils { +public final class ConfigurationBeanUtils { + + private ConfigurationBeanUtils() { + } public static T instantiate(Class cls) { return org.springframework.beans.BeanUtils.instantiateClass(cls); @@ -50,10 +53,10 @@ public abstract class ConfigurationBeanUtils { } } - @SuppressWarnings("unchecked") + @SuppressWarnings({"unchecked","PMD.AvoidCatchingGenericException"}) private static T getTargetObject(Object candidate) { try { - if (AopUtils.isAopProxy(candidate) && (candidate instanceof Advised)) { + if (AopUtils.isAopProxy(candidate) && candidate instanceof Advised) { return (T) ((Advised) candidate).getTargetSource().getTarget(); } } diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/support/KebabCasePropertyBeanIntrospector.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/support/KebabCasePropertyBeanIntrospector.java index ac9e4ac..35e5664 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/support/KebabCasePropertyBeanIntrospector.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/extensions/support/KebabCasePropertyBeanIntrospector.java @@ -84,7 +84,7 @@ public class KebabCasePropertyBeanIntrospector implements BeanIntrospector { */ private String camelCasePropertyName(final Method m) { final String methodName = m.getName().substring(WRITE_METHOD_PREFIX.length()); - return (methodName.length() > 1) ? + return methodName.length() > 1 ? Introspector.decapitalize(methodName) : methodName.toLowerCase(Locale.ENGLISH); } @@ -101,7 +101,7 @@ public class KebabCasePropertyBeanIntrospector implements BeanIntrospector { StringBuilder builder = new StringBuilder(); for (char c : methodName.toCharArray()) { if (Character.isUpperCase(c)) { - builder.append("-").append(Character.toLowerCase(c)); + builder.append('-').append(Character.toLowerCase(c)); } else { builder.append(c); } diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/service/WorkflowServiceInstanceService.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/service/WorkflowServiceInstanceService.java index fbfba44..635ce99 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/service/WorkflowServiceInstanceService.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/service/WorkflowServiceInstanceService.java @@ -52,13 +52,13 @@ import java.util.concurrent.atomic.AtomicReference; public class WorkflowServiceInstanceService implements ServiceInstanceService { private final Logger log = Loggers.getLogger(WorkflowServiceInstanceService.class); - private List createServiceInstanceWorkflows; + private final List createServiceInstanceWorkflows; - private List deleteServiceInstanceWorkflows; + private final List deleteServiceInstanceWorkflows; - private List updateServiceInstanceWorkflows; + private final List updateServiceInstanceWorkflows; - private ServiceInstanceStateRepository stateRepository; + private final ServiceInstanceStateRepository stateRepository; public WorkflowServiceInstanceService(ServiceInstanceStateRepository serviceInstanceStateRepository, List createServiceInstanceWorkflows, diff --git a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/state/ServiceInstanceState.java b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/state/ServiceInstanceState.java index 4588d1b..bce1809 100644 --- a/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/state/ServiceInstanceState.java +++ b/spring-cloud-app-broker-core/src/main/java/org/springframework/cloud/appbroker/state/ServiceInstanceState.java @@ -25,9 +25,9 @@ import org.springframework.cloud.servicebroker.model.instance.OperationState; */ public class ServiceInstanceState { - private OperationState operationState; + private final OperationState operationState; - private String description; + private final String description; //TODO: consider a time stamp property diff --git a/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/extensions/ConfigurationBeanUtilsTest.java b/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/extensions/ConfigurationBeanUtilsTest.java index a36a671..09871c3 100644 --- a/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/extensions/ConfigurationBeanUtilsTest.java +++ b/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/extensions/ConfigurationBeanUtilsTest.java @@ -26,8 +26,8 @@ import static org.assertj.core.api.Assertions.assertThat; class ConfigurationBeanUtilsTest { - private TestProperties targetObject = new TestProperties(); - private Map properties = new HashMap<>(); + private final TestProperties targetObject = new TestProperties(); + private final Map properties = new HashMap<>(); @Test void populateWithCamelCaseProperties() { @@ -68,13 +68,13 @@ class ConfigurationBeanUtilsTest { private void assertValuesPopulated(TestProperties targetObject) { assertThat(targetObject.getStringValue()).isEqualTo("value"); assertThat(targetObject.getIntValue()).isEqualTo(41); - assertThat(targetObject.getBooleanValue()).isEqualTo(true); + assertThat(targetObject.isBooleanValue()).isEqualTo(true); } private void assertValuesNotPopulated(TestProperties targetObject) { assertThat(targetObject.getStringValue()).isNull(); assertThat(targetObject.getIntValue()).isEqualTo(0); - assertThat(targetObject.getBooleanValue()).isEqualTo(false); + assertThat(targetObject.isBooleanValue()).isEqualTo(false); } @SuppressWarnings("unused") @@ -99,7 +99,7 @@ class ConfigurationBeanUtilsTest { this.intValue = intValue; } - boolean getBooleanValue() { + boolean isBooleanValue() { return booleanValue; } diff --git a/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/extensions/credentials/CredentialProviderServiceTest.java b/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/extensions/credentials/CredentialProviderServiceTest.java index dbb1b9f..f33f21a 100644 --- a/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/extensions/credentials/CredentialProviderServiceTest.java +++ b/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/extensions/credentials/CredentialProviderServiceTest.java @@ -116,7 +116,7 @@ class CredentialProviderServiceTest { } public class TestFactory extends CredentialProviderFactory { - private String name; + private final String name; TestFactory(String name) { this.name = name; @@ -132,13 +132,13 @@ class CredentialProviderServiceTest { return new CredentialProvider() { @Override public Mono addCredentials(BackingApplication backingApplication, String serviceInstanceGuid) { - backingApplication.addEnvironment(name + "-added", "done"); + backingApplication.addEnvironment(getName() + "-added", "done"); return Mono.just(backingApplication); } @Override public Mono deleteCredentials(BackingApplication backingApplication, String serviceInstanceGuid) { - backingApplication.addEnvironment(name + "-deleted", "done"); + backingApplication.addEnvironment(getName() + "-deleted", "done"); return Mono.just(backingApplication); } }; diff --git a/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/extensions/parameters/ParametersTransformationServiceTest.java b/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/extensions/parameters/ParametersTransformationServiceTest.java index 06f894a..052d63c 100644 --- a/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/extensions/parameters/ParametersTransformationServiceTest.java +++ b/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/extensions/parameters/ParametersTransformationServiceTest.java @@ -146,7 +146,7 @@ class ParametersTransformationServiceTest { } public static class TestFactory extends ParametersTransformerFactory { - private String name; + private final String name; private Map actualParameters; private Config actualConfig; @@ -188,7 +188,7 @@ class ParametersTransformationServiceTest { private String arg1; private Integer arg2; - Config() { + private Config() { } Config(String arg1, Integer arg2) { @@ -214,8 +214,12 @@ class ParametersTransformationServiceTest { @Override public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof Config)) return false; + if (this == o) { + return true; + } + if (!(o instanceof Config)) { + return false; + } Config config = (Config) o; return Objects.equals(arg2, config.arg2) && Objects.equals(arg1, config.arg1); diff --git a/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentCreateServiceInstanceWorkflowTest.java b/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentCreateServiceInstanceWorkflowTest.java index 6dec57e..9e1c080 100644 --- a/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentCreateServiceInstanceWorkflowTest.java +++ b/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentCreateServiceInstanceWorkflowTest.java @@ -166,7 +166,7 @@ class AppDeploymentCreateServiceInstanceWorkflowTest { .name(planName) .build()) .build()) - .parameters(parameters != null ? parameters : new HashMap<>()) + .parameters(parameters == null ? new HashMap<>() : parameters) .build(); } } \ No newline at end of file diff --git a/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentUpdateServiceInstanceWorkflowTest.java b/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentUpdateServiceInstanceWorkflowTest.java index 350e552..1916f18 100644 --- a/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentUpdateServiceInstanceWorkflowTest.java +++ b/spring-cloud-app-broker-core/src/test/java/org/springframework/cloud/appbroker/workflow/instance/AppDeploymentUpdateServiceInstanceWorkflowTest.java @@ -150,7 +150,7 @@ class AppDeploymentUpdateServiceInstanceWorkflowTest { .name(planName) .build()) .build()) - .parameters(parameters != null ? parameters : new HashMap<>()) + .parameters(parameters == null ? new HashMap<>() : parameters) .build(); } } \ No newline at end of file diff --git a/spring-cloud-app-broker-deployer-cloudfoundry/src/main/java/org/springframework/cloud/appbroker/deployer/cloudfoundry/CloudFoundryAppDeployer.java b/spring-cloud-app-broker-deployer-cloudfoundry/src/main/java/org/springframework/cloud/appbroker/deployer/cloudfoundry/CloudFoundryAppDeployer.java index 975ff7b..0085a87 100644 --- a/spring-cloud-app-broker-deployer-cloudfoundry/src/main/java/org/springframework/cloud/appbroker/deployer/cloudfoundry/CloudFoundryAppDeployer.java +++ b/spring-cloud-app-broker-deployer-cloudfoundry/src/main/java/org/springframework/cloud/appbroker/deployer/cloudfoundry/CloudFoundryAppDeployer.java @@ -44,6 +44,7 @@ import org.cloudfoundry.operations.applications.PushApplicationManifestRequest; import org.cloudfoundry.operations.applications.Route; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.cloud.appbroker.deployer.DeploymentProperties; import org.springframework.cloud.appbroker.deployer.util.ByteSizeUtils; import org.springframework.http.HttpStatus; import reactor.core.Exceptions; @@ -59,26 +60,10 @@ import org.springframework.core.io.Resource; import org.springframework.core.io.ResourceLoader; import org.springframework.util.StringUtils; -import static org.springframework.cloud.appbroker.deployer.DeploymentProperties.COUNT_PROPERTY_KEY; -import static org.springframework.cloud.appbroker.deployer.DeploymentProperties.DISK_PROPERTY_KEY; -import static org.springframework.cloud.appbroker.deployer.DeploymentProperties.GROUP_PROPERTY_KEY; -import static org.springframework.cloud.appbroker.deployer.DeploymentProperties.MEMORY_PROPERTY_KEY; -import static org.springframework.cloud.appbroker.deployer.cloudfoundry.CloudFoundryDeploymentProperties.BUILDPACK_PROPERTY_KEY; -import static org.springframework.cloud.appbroker.deployer.cloudfoundry.CloudFoundryDeploymentProperties.DOMAIN_PROPERTY; -import static org.springframework.cloud.appbroker.deployer.cloudfoundry.CloudFoundryDeploymentProperties.HEALTHCHECK_HTTP_ENDPOINT_PROPERTY_KEY; -import static org.springframework.cloud.appbroker.deployer.cloudfoundry.CloudFoundryDeploymentProperties.HEALTHCHECK_PROPERTY_KEY; -import static org.springframework.cloud.appbroker.deployer.cloudfoundry.CloudFoundryDeploymentProperties.HEALTHCHECK_TIMEOUT_PROPERTY_KEY; -import static org.springframework.cloud.appbroker.deployer.cloudfoundry.CloudFoundryDeploymentProperties.HOST_PROPERTY; -import static org.springframework.cloud.appbroker.deployer.cloudfoundry.CloudFoundryDeploymentProperties.JAVA_OPTS_PROPERTY_KEY; -import static org.springframework.cloud.appbroker.deployer.cloudfoundry.CloudFoundryDeploymentProperties.NO_ROUTE_PROPERTY; -import static org.springframework.cloud.appbroker.deployer.cloudfoundry.CloudFoundryDeploymentProperties.ROUTES_PROPERTY; -import static org.springframework.cloud.appbroker.deployer.cloudfoundry.CloudFoundryDeploymentProperties.ROUTE_PATH_PROPERTY; -import static org.springframework.cloud.appbroker.deployer.cloudfoundry.CloudFoundryDeploymentProperties.ROUTE_PROPERTY; -import static org.springframework.cloud.appbroker.deployer.cloudfoundry.CloudFoundryDeploymentProperties.USE_SPRING_APPLICATION_JSON_KEY; - +@SuppressWarnings("PMD.GodClass") public class CloudFoundryAppDeployer implements AppDeployer, ResourceLoaderAware { - private static final Logger logger = LoggerFactory.getLogger(CloudFoundryAppDeployer.class); + private final Logger logger = LoggerFactory.getLogger(CloudFoundryAppDeployer.class); private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); @@ -175,10 +160,10 @@ public class CloudFoundryAppDeployer implements AppDeployer, ResourceLoaderAware manifest.routes(routes); } - if (getDockerImage(appResource) != null) { - manifest.docker(Docker.builder().image(getDockerImage(appResource)).build()); - } else { + if (getDockerImage(appResource) == null) { manifest.buildpack(buildpack(deploymentProperties)); + } else { + manifest.docker(Docker.builder().image(getDockerImage(appResource)).build()); } return manifest.build(); } @@ -228,7 +213,7 @@ public class CloudFoundryAppDeployer implements AppDeployer, ResourceLoaderAware envVariables.put("JAVA_OPTS", javaOpts(environment)); } - String group = environment.get(GROUP_PROPERTY_KEY); + String group = environment.get(DeploymentProperties.GROUP_PROPERTY_KEY); if (StringUtils.hasText(group)) { envVariables.put("SPRING_CLOUD_APPLICATION_GROUP", group); } @@ -240,16 +225,17 @@ public class CloudFoundryAppDeployer implements AppDeployer, ResourceLoaderAware } private Map getApplicationEnvironment(Map environment) { - Map applicationProperties = getSanitizedApplicationEnvironment(environment); + Map applicationEnvironment = getSanitizedApplicationEnvironment(environment); if (!useSpringApplicationJson(environment)) { - return applicationProperties; + return applicationEnvironment; } try { - return Collections.singletonMap("SPRING_APPLICATION_JSON", OBJECT_MAPPER.writeValueAsString(applicationProperties)); + return Collections.singletonMap("SPRING_APPLICATION_JSON", + OBJECT_MAPPER.writeValueAsString(applicationEnvironment)); } catch (JsonProcessingException e) { - throw new RuntimeException(e); + throw new IllegalArgumentException("Error writing environment to SPRING_APPLICATION_JSON", e); } } @@ -266,18 +252,18 @@ public class CloudFoundryAppDeployer implements AppDeployer, ResourceLoaderAware } private boolean useSpringApplicationJson(Map environment) { - return Optional.ofNullable(environment.get(USE_SPRING_APPLICATION_JSON_KEY)) + return Optional.ofNullable(environment.get(CloudFoundryDeploymentProperties.USE_SPRING_APPLICATION_JSON_KEY)) .map(Boolean::valueOf) .orElse(this.defaultDeploymentProperties.isUseSpringApplicationJson()); } private String domain(Map properties) { - return Optional.ofNullable(properties.get(DOMAIN_PROPERTY)) + return Optional.ofNullable(properties.get(CloudFoundryDeploymentProperties.DOMAIN_PROPERTY)) .orElse(this.defaultDeploymentProperties.getDomain()); } private ApplicationHealthCheck healthCheck(Map properties) { - return Optional.ofNullable(properties.get(HEALTHCHECK_PROPERTY_KEY)) + return Optional.ofNullable(properties.get(CloudFoundryDeploymentProperties.HEALTHCHECK_PROPERTY_KEY)) .map(this::toApplicationHealthCheck) .orElse(this.defaultDeploymentProperties.getHealthCheck()); } @@ -292,30 +278,30 @@ public class CloudFoundryAppDeployer implements AppDeployer, ResourceLoaderAware } private String healthCheckEndpoint(Map properties) { - return Optional.ofNullable(properties.get(HEALTHCHECK_HTTP_ENDPOINT_PROPERTY_KEY)) + return Optional.ofNullable(properties.get(CloudFoundryDeploymentProperties.HEALTHCHECK_HTTP_ENDPOINT_PROPERTY_KEY)) .orElse(this.defaultDeploymentProperties.getHealthCheckHttpEndpoint()); } private Integer healthCheckTimeout(Map properties) { String timeoutString = properties - .getOrDefault(HEALTHCHECK_TIMEOUT_PROPERTY_KEY, this.defaultDeploymentProperties.getHealthCheckTimeout()); + .getOrDefault(CloudFoundryDeploymentProperties.HEALTHCHECK_TIMEOUT_PROPERTY_KEY, this.defaultDeploymentProperties.getHealthCheckTimeout()); return Integer.parseInt(timeoutString); } private int instances(Map properties) { - return Optional.ofNullable(properties.get(COUNT_PROPERTY_KEY)) + return Optional.ofNullable(properties.get(DeploymentProperties.COUNT_PROPERTY_KEY)) .map(Integer::parseInt) .orElse(this.defaultDeploymentProperties.getInstances()); } private String host(Map properties) { - return Optional.ofNullable(properties.get(HOST_PROPERTY)) + return Optional.ofNullable(properties.get(CloudFoundryDeploymentProperties.HOST_PROPERTY)) .orElse(this.defaultDeploymentProperties.getHost()); } private String routePath(Map properties) { - String routePath = properties.get(ROUTE_PATH_PROPERTY); - if (StringUtils.hasText(routePath) && !routePath.startsWith("/")) { + String routePath = properties.get(CloudFoundryDeploymentProperties.ROUTE_PATH_PROPERTY); + if (StringUtils.hasText(routePath) && routePath.charAt(0) != '/') { throw new IllegalArgumentException( "Cloud Foundry routes must start with \"/\". Route passed = [" + routePath + "]."); } @@ -323,41 +309,41 @@ public class CloudFoundryAppDeployer implements AppDeployer, ResourceLoaderAware } private String route(Map properties) { - return properties.get(ROUTE_PROPERTY); + return properties.get(CloudFoundryDeploymentProperties.ROUTE_PROPERTY); } private Set routes(Map properties) { Set routes = new HashSet<>(); routes.addAll(this.defaultDeploymentProperties.getRoutes()); - routes.addAll(StringUtils.commaDelimitedListToSet(properties.get(ROUTES_PROPERTY))); + routes.addAll(StringUtils.commaDelimitedListToSet(properties.get(CloudFoundryDeploymentProperties.ROUTES_PROPERTY))); return routes; } private Boolean toggleNoRoute(Map properties) { - return Optional.ofNullable(properties.get(NO_ROUTE_PROPERTY)) + return Optional.ofNullable(properties.get(CloudFoundryDeploymentProperties.NO_ROUTE_PROPERTY)) .map(Boolean::valueOf) .orElse(null); } private int memory(Map properties) { String withUnit = properties - .getOrDefault(MEMORY_PROPERTY_KEY, this.defaultDeploymentProperties.getMemory()); + .getOrDefault(DeploymentProperties.MEMORY_PROPERTY_KEY, this.defaultDeploymentProperties.getMemory()); return (int) ByteSizeUtils.parseToMebibytes(withUnit); } private int diskQuota(Map properties) { String withUnit = properties - .getOrDefault(DISK_PROPERTY_KEY, this.defaultDeploymentProperties.getDisk()); + .getOrDefault(DeploymentProperties.DISK_PROPERTY_KEY, this.defaultDeploymentProperties.getDisk()); return (int) ByteSizeUtils.parseToMebibytes(withUnit); } private String buildpack(Map properties) { - return Optional.ofNullable(properties.get(BUILDPACK_PROPERTY_KEY)) + return Optional.ofNullable(properties.get(CloudFoundryDeploymentProperties.BUILDPACK_PROPERTY_KEY)) .orElse(this.defaultDeploymentProperties.getBuildpack()); } private String javaOpts(Map properties) { - return Optional.ofNullable(properties.get(JAVA_OPTS_PROPERTY_KEY)) + return Optional.ofNullable(properties.get(CloudFoundryDeploymentProperties.JAVA_OPTS_PROPERTY_KEY)) .orElse(this.defaultDeploymentProperties.getJavaOpts()); } @@ -395,10 +381,10 @@ public class CloudFoundryAppDeployer implements AppDeployer, ResourceLoaderAware */ private Path getApplication(Resource resource) { try { - if (!resource.getURI().toString().startsWith("docker:")) { - return resource.getFile().toPath(); - } else { + if (resource.getURI().toString().startsWith("docker:")) { return null; + } else { + return resource.getFile().toPath(); } } catch (IOException e) { throw Exceptions.propagate(e); diff --git a/spring-cloud-app-broker-deployer-cloudfoundry/src/main/java/org/springframework/cloud/appbroker/deployer/cloudfoundry/CloudFoundryDeploymentProperties.java b/spring-cloud-app-broker-deployer-cloudfoundry/src/main/java/org/springframework/cloud/appbroker/deployer/cloudfoundry/CloudFoundryDeploymentProperties.java index cf34308..daef588 100644 --- a/spring-cloud-app-broker-deployer-cloudfoundry/src/main/java/org/springframework/cloud/appbroker/deployer/cloudfoundry/CloudFoundryDeploymentProperties.java +++ b/spring-cloud-app-broker-deployer-cloudfoundry/src/main/java/org/springframework/cloud/appbroker/deployer/cloudfoundry/CloudFoundryDeploymentProperties.java @@ -31,7 +31,7 @@ import java.util.Set; * @author Greg Turnquist * @author Ilayaperumal Gopinathan */ -@SuppressWarnings("unused") +@SuppressWarnings({"unused", "PMD.TooManyFields"}) public class CloudFoundryDeploymentProperties { static final String HEALTHCHECK_PROPERTY_KEY = "health-check"; @@ -60,7 +60,7 @@ public class CloudFoundryDeploymentProperties { /** * The host name to use as part of the route. Defaults to hostname derived by Cloud Foundry. */ - private String host = null; + private String host; /** * The domain to use when mapping routes for applications. diff --git a/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/DeployApplicationRequest.java b/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/DeployApplicationRequest.java index c0978b1..57059a3 100644 --- a/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/DeployApplicationRequest.java +++ b/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/DeployApplicationRequest.java @@ -23,18 +23,18 @@ import java.util.Map; public class DeployApplicationRequest { - private String name; + private final String name; - private String path; + private final String path; - private Map properties; + private final Map properties; - private Map environment; + private final Map environment; - private List services; + private final List services; - private DeployApplicationRequest(String name, String path, Map properties, - Map environment, List services) { + DeployApplicationRequest(String name, String path, Map properties, + Map environment, List services) { this.name = name; this.path = path; this.properties = properties; @@ -72,14 +72,13 @@ public class DeployApplicationRequest { private String path; - private Map properties = new HashMap<>(); + private final Map properties = new HashMap<>(); - private Map environment = new HashMap<>(); + private final Map environment = new HashMap<>(); - private List services = new ArrayList<>(); + private final List services = new ArrayList<>(); DeployApplicationRequestBuilder() { - } public DeployApplicationRequestBuilder name(String name) { diff --git a/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/DeployApplicationResponse.java b/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/DeployApplicationResponse.java index ca05aa0..f784df5 100644 --- a/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/DeployApplicationResponse.java +++ b/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/DeployApplicationResponse.java @@ -18,9 +18,9 @@ package org.springframework.cloud.appbroker.deployer; public class DeployApplicationResponse { - private String name; + private final String name; - private DeployApplicationResponse(String name) { + DeployApplicationResponse(String name) { this.name = name; } diff --git a/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/DeploymentProperties.java b/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/DeploymentProperties.java index 1369467..27f75a6 100644 --- a/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/DeploymentProperties.java +++ b/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/DeploymentProperties.java @@ -18,25 +18,25 @@ package org.springframework.cloud.appbroker.deployer; import org.springframework.cloud.appbroker.deployer.util.ByteSizeUtils; -public interface DeploymentProperties { +public class DeploymentProperties { /** * The deployment property for the count (number of app instances). * If not provided, a deployer should assume 1 instance. */ - String COUNT_PROPERTY_KEY = "count"; + public static final String COUNT_PROPERTY_KEY = "count"; /** * The deployment property for the group to which an app belongs. * If not provided, a deployer should assume no group. */ - String GROUP_PROPERTY_KEY = "group"; + public static final String GROUP_PROPERTY_KEY = "group"; /** * The deployment property that indicates if each app instance should have an index value * within a sequence from 0 to N-1, where N is the value of the {@value #COUNT_PROPERTY_KEY} * property. If not provided, a deployer should assume app instance indexing is not necessary. */ - String INDEXED_PROPERTY_KEY = "indexed"; + public static final String INDEXED_PROPERTY_KEY = "indexed"; /** * The property to be set at each instance level to specify the sequence number @@ -46,7 +46,7 @@ public interface DeploymentProperties { * * @see #INDEXED_PROPERTY_KEY */ - String INSTANCE_INDEX_PROPERTY_KEY = "INSTANCE_INDEX"; + public static final String INSTANCE_INDEX_PROPERTY_KEY = "INSTANCE_INDEX"; /** * The deployment property for the memory setting for the container that will run the app. @@ -60,7 +60,7 @@ public interface DeploymentProperties { * * @see ByteSizeUtils */ - String MEMORY_PROPERTY_KEY = "memory"; + public static final String MEMORY_PROPERTY_KEY = "memory"; /** * The deployment property for the disk setting for the container that will run the app. @@ -74,7 +74,7 @@ public interface DeploymentProperties { * * @see ByteSizeUtils */ - String DISK_PROPERTY_KEY = "disk"; + public static final String DISK_PROPERTY_KEY = "disk"; /** * The deployment property for the cpu setting for the container that will run the app. @@ -82,5 +82,5 @@ public interface DeploymentProperties { * support setting cpu and will ignore this setting. Other platforms may require whole numbers and might * round up. Exactly how this property affects the deployments will vary between implementations. */ - String CPU_PROPERTY_KEY = "cpu"; + public static final String CPU_PROPERTY_KEY = "cpu"; } diff --git a/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/UndeployApplicationRequest.java b/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/UndeployApplicationRequest.java index adae305..484204a 100644 --- a/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/UndeployApplicationRequest.java +++ b/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/UndeployApplicationRequest.java @@ -18,9 +18,9 @@ package org.springframework.cloud.appbroker.deployer; public class UndeployApplicationRequest { - private String name; + private final String name; - private UndeployApplicationRequest(String name) { + UndeployApplicationRequest(String name) { this.name = name; } diff --git a/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/UndeployApplicationResponse.java b/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/UndeployApplicationResponse.java index 743f47e..1d18c6c 100644 --- a/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/UndeployApplicationResponse.java +++ b/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/UndeployApplicationResponse.java @@ -18,9 +18,9 @@ package org.springframework.cloud.appbroker.deployer; public class UndeployApplicationResponse { - private String name; + private final String name; - private UndeployApplicationResponse(String name) { + UndeployApplicationResponse(String name) { this.name = name; } diff --git a/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/util/ByteSizeUtils.java b/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/util/ByteSizeUtils.java index 0448eb0..4612dc1 100644 --- a/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/util/ByteSizeUtils.java +++ b/spring-cloud-app-broker-deployer/src/main/java/org/springframework/cloud/appbroker/deployer/util/ByteSizeUtils.java @@ -24,19 +24,18 @@ import java.util.regex.Pattern; * * @author Eric Bottard */ -public class ByteSizeUtils { - - private ByteSizeUtils() { - - } +public final class ByteSizeUtils { private static final Pattern SIZE_PATTERN = Pattern.compile("(?\\d+)(?(m|g)?)", Pattern.CASE_INSENSITIVE); + private ByteSizeUtils() { + } + /** * Return the number of mebibytes (1024*1024) denoted by the given text, where an optional case-insensitive unit of * 'm' or 'g' can be used to mean mebi- or gebi- bytes, respectively. Lack of unit assumes mebibytes. */ - public static long parseToMebibytes(String text) { + public static long parseToMebibytes(String text) { Matcher matcher = SIZE_PATTERN.matcher(text); if (!matcher.matches()) { throw new IllegalArgumentException(String.format("Could not parse '%s' as a byte size." + diff --git a/spring-cloud-app-broker-sample/src/test/java/org.springframework.cloud.appbroker/sample/CreateInstanceWithCustomCreationParametersComponentTest.java b/spring-cloud-app-broker-sample/src/test/java/org.springframework.cloud.appbroker/sample/CreateInstanceWithCustomCreationParametersComponentTest.java index aed71bc..980103a 100644 --- a/spring-cloud-app-broker-sample/src/test/java/org.springframework.cloud.appbroker/sample/CreateInstanceWithCustomCreationParametersComponentTest.java +++ b/spring-cloud-app-broker-sample/src/test/java/org.springframework.cloud.appbroker/sample/CreateInstanceWithCustomCreationParametersComponentTest.java @@ -18,6 +18,8 @@ package org.springframework.cloud.appbroker.sample; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; + +import java.io.IOException; import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -122,7 +124,7 @@ class CreateInstanceWithCustomCreationParametersComponentTest extends WiremockCo objectMapper.readValue(parameters.get("firstKey").toString(), CustomInputParameters.class); customOutputEnvironmentParameters.put("otherKey", customInputParameters.getSecondKey()); customOutputEnvironmentParameters.put("otherLabel", customInputParameters.getLabel()); - } catch (Exception e) { + } catch (IOException e) { e.printStackTrace(); } return Collections.singletonMap("otherNestedKey", customOutputEnvironmentParameters.toString()); @@ -130,12 +132,12 @@ class CreateInstanceWithCustomCreationParametersComponentTest extends WiremockCo } static class CustomInputParameters { - private CustomInputParameters() { - } - private String secondKey; private String label; + private CustomInputParameters() { + } + String getSecondKey() { return secondKey; } diff --git a/spring-cloud-app-broker-sample/src/test/java/org.springframework.cloud.appbroker/sample/fixtures/CloudControllerStubFixture.java b/spring-cloud-app-broker-sample/src/test/java/org.springframework.cloud.appbroker/sample/fixtures/CloudControllerStubFixture.java index b680002..8c2d74f 100644 --- a/spring-cloud-app-broker-sample/src/test/java/org.springframework.cloud.appbroker/sample/fixtures/CloudControllerStubFixture.java +++ b/spring-cloud-app-broker-sample/src/test/java/org.springframework.cloud.appbroker/sample/fixtures/CloudControllerStubFixture.java @@ -146,7 +146,7 @@ public class CloudControllerStubFixture extends WiremockStubFixture { stubCheckAppState(appName); } - private void stubCreateAppMetadata(String appName, ContentPattern[] appMetadataPatterns) { + private void stubCreateAppMetadata(String appName, ContentPattern... appMetadataPatterns) { MappingBuilder mappingBuilder = post(urlEqualTo("/v2/apps")) .withRequestBody(matchingJsonPath("$.[?(@.name == '" + appName + "')]")); for (ContentPattern appMetadataPattern : appMetadataPatterns) { @@ -159,7 +159,7 @@ public class CloudControllerStubFixture extends WiremockStubFixture { replace("@guid", appGuid(appName)))))); } - private void stubUpdateAppMetadata(String appName, ContentPattern[] appMetadataPatterns) { + private void stubUpdateAppMetadata(String appName, ContentPattern... appMetadataPatterns) { MappingBuilder mappingBuilder = put(urlEqualTo("/v2/apps/" + appGuid(appName))) .withRequestBody(matchingJsonPath("$.[?(@.name == '" + appName + "')]")); for (ContentPattern appMetadataPattern : appMetadataPatterns) { diff --git a/spring-cloud-app-broker-sample/src/test/java/org.springframework.cloud.appbroker/sample/fixtures/WiremockServerFixture.java b/spring-cloud-app-broker-sample/src/test/java/org.springframework.cloud.appbroker/sample/fixtures/WiremockServerFixture.java index ae98061..1f8137d 100644 --- a/spring-cloud-app-broker-sample/src/test/java/org.springframework.cloud.appbroker/sample/fixtures/WiremockServerFixture.java +++ b/spring-cloud-app-broker-sample/src/test/java/org.springframework.cloud.appbroker/sample/fixtures/WiremockServerFixture.java @@ -41,9 +41,6 @@ public class WiremockServerFixture { @Value("${wiremock.cloudfoundry.api-url:}") private String cfApiUrl; - @Value("${wiremock.cloudfoundry.access-token:an.access.token}") - private String accessToken; - private WireMockServer wiremockServer; public void startWiremock() {