From 8ca1acde18470b4a558cab02e74f38746d00caea Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Thu, 27 Apr 2017 15:34:05 +0100 Subject: [PATCH] Update for 1.3.2 --- README.adoc | 8 +- docs/pom.xml | 2 +- docs/src/main/asciidoc/install.adoc | 8 +- pom.xml | 4 +- spring-cloud-cli-integration-tests/pom.xml | 2 +- spring-cloud-cli/pom.xml | 4 +- .../SpringCloudBomAstTransformation.java | 2 +- spring-cloud-launcher/pom.xml | 4 +- .../spring-cloud-launcher-cli/pom.xml | 2 +- .../cloud/launcher/cli/LauncherCommand.java | 2 +- .../pom.xml | 2 +- .../spring-cloud-launcher-dataflow/pom.xml | 2 +- .../spring-cloud-launcher-deployer/pom.xml | 6 +- .../cloud/launcher/deployer/Deployer.java | 12 ++ .../deployer/DeployerApplication.java | 2 +- .../resources/META-INF/thin-local.properties | 2 + .../src/main/resources/cloud.yml | 20 ++-- .../deployer/LauncherAppDeployerTests.java | 110 ++++++++++++++++++ .../spring-cloud-launcher-eureka/pom.xml | 2 +- .../spring-cloud-launcher-h2/pom.xml | 2 +- .../pom.xml | 2 +- .../spring-cloud-launcher-kafka/pom.xml | 2 +- .../spring-cloud-launcher-zipkin/pom.xml | 2 +- 23 files changed, 167 insertions(+), 37 deletions(-) create mode 100644 spring-cloud-launcher/spring-cloud-launcher-deployer/src/main/resources/META-INF/thin-local.properties create mode 100644 spring-cloud-launcher/spring-cloud-launcher-deployer/src/test/java/org/springframework/cloud/launcher/deployer/LauncherAppDeployerTests.java diff --git a/README.adoc b/README.adoc index f6a6cc2..e6c7359 100644 --- a/README.adoc +++ b/README.adoc @@ -21,20 +21,20 @@ https://github.com/spring-projects/spring-boot[Spring Boot CLI] (1.5.2 or better): $ spring version - Spring CLI v1.5.3.BUILD-SNAPSHOT + Spring CLI v1.5.3.RELEASE E.g. for SDKMan users ``` -$ sdk install springboot 1.5.3.BUILD-SNAPSHOT -$ sdk use springboot 1.5.3.BUILD-SNAPSHOT +$ sdk install springboot 1.5.3.RELEASE +$ sdk use springboot 1.5.3.RELEASE ``` and install the Spring Cloud plugin ``` $ mvn install -$ spring install org.springframework.cloud:spring-cloud-cli:1.3.1.BUILD-SNAPSHOT +$ spring install org.springframework.cloud:spring-cloud-cli:1.3.2.RELEASE ``` IMPORTANT: **Prerequisites:** to use the encryption and decryption features diff --git a/docs/pom.xml b/docs/pom.xml index d1069f7..298c4f9 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -6,7 +6,7 @@ org.springframework.cloud spring-cloud-cli-parent - 1.3.2.BUILD-SNAPSHOT + 1.3.2.RELEASE pom Spring Cloud Cli Docs diff --git a/docs/src/main/asciidoc/install.adoc b/docs/src/main/asciidoc/install.adoc index 3babc8e..5c15d0e 100644 --- a/docs/src/main/asciidoc/install.adoc +++ b/docs/src/main/asciidoc/install.adoc @@ -4,20 +4,20 @@ https://github.com/spring-projects/spring-boot[Spring Boot CLI] (1.5.2 or better): $ spring version - Spring CLI v1.5.3.BUILD-SNAPSHOT + Spring CLI v1.5.3.RELEASE E.g. for SDKMan users ``` -$ sdk install springboot 1.5.3.BUILD-SNAPSHOT -$ sdk use springboot 1.5.3.BUILD-SNAPSHOT +$ sdk install springboot 1.5.3.RELEASE +$ sdk use springboot 1.5.3.RELEASE ``` and install the Spring Cloud plugin ``` $ mvn install -$ spring install org.springframework.cloud:spring-cloud-cli:1.3.1.BUILD-SNAPSHOT +$ spring install org.springframework.cloud:spring-cloud-cli:1.3.2.RELEASE ``` IMPORTANT: **Prerequisites:** to use the encryption and decryption features diff --git a/pom.xml b/pom.xml index de91f58..86334a3 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.springframework.cloud spring-cloud-cli-parent - 1.3.2.BUILD-SNAPSHOT + 1.3.2.RELEASE org.springframework.cloud spring-cloud-build @@ -104,7 +104,7 @@ org.springframework.cloud spring-cloud-dependencies - Dalston.BUILD-SNAPSHOT + Dalston.RELEASE pom import diff --git a/spring-cloud-cli-integration-tests/pom.xml b/spring-cloud-cli-integration-tests/pom.xml index ffbf607..fd8e7b1 100644 --- a/spring-cloud-cli-integration-tests/pom.xml +++ b/spring-cloud-cli-integration-tests/pom.xml @@ -12,7 +12,7 @@ org.springframework.cloud spring-cloud-cli-parent - 1.3.2.BUILD-SNAPSHOT + 1.3.2.RELEASE diff --git a/spring-cloud-cli/pom.xml b/spring-cloud-cli/pom.xml index b66b778..20f4802 100644 --- a/spring-cloud-cli/pom.xml +++ b/spring-cloud-cli/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-cli - 1.3.2.BUILD-SNAPSHOT + 1.3.2.RELEASE jar spring-cloud-cli @@ -14,7 +14,7 @@ org.springframework.cloud spring-cloud-cli-parent - 1.3.2.BUILD-SNAPSHOT + 1.3.2.RELEASE diff --git a/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/SpringCloudBomAstTransformation.java b/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/SpringCloudBomAstTransformation.java index 4c470e5..df04d74 100644 --- a/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/SpringCloudBomAstTransformation.java +++ b/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/SpringCloudBomAstTransformation.java @@ -28,7 +28,7 @@ import org.springframework.boot.cli.compiler.GenericBomAstTransformation; @GroovyASTTransformation(phase = CompilePhase.CONVERSION) public class SpringCloudBomAstTransformation extends GenericBomAstTransformation { - private static final String SPRING_CLOUD_VERSION = "Dalston.BUILD-SNAPSHOT"; + private static final String SPRING_CLOUD_VERSION = "Dalston.RELEASE"; @Override protected String getBomModule() { diff --git a/spring-cloud-launcher/pom.xml b/spring-cloud-launcher/pom.xml index f8a3361..30fbdb0 100644 --- a/spring-cloud-launcher/pom.xml +++ b/spring-cloud-launcher/pom.xml @@ -5,7 +5,7 @@ org.springframework.cloud spring-cloud-launcher - 1.3.2.BUILD-SNAPSHOT + 1.3.2.RELEASE pom spring-cloud-launcher @@ -14,7 +14,7 @@ org.springframework.cloud spring-cloud-cli-parent - 1.3.2.BUILD-SNAPSHOT + 1.3.2.RELEASE diff --git a/spring-cloud-launcher/spring-cloud-launcher-cli/pom.xml b/spring-cloud-launcher/spring-cloud-launcher-cli/pom.xml index 650c686..caf294e 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-cli/pom.xml +++ b/spring-cloud-launcher/spring-cloud-launcher-cli/pom.xml @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-launcher - 1.3.2.BUILD-SNAPSHOT + 1.3.2.RELEASE diff --git a/spring-cloud-launcher/spring-cloud-launcher-cli/src/main/java/org/springframework/cloud/launcher/cli/LauncherCommand.java b/spring-cloud-launcher/spring-cloud-launcher-cli/src/main/java/org/springframework/cloud/launcher/cli/LauncherCommand.java index e381f03..d95b347 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-cli/src/main/java/org/springframework/cloud/launcher/cli/LauncherCommand.java +++ b/spring-cloud-launcher/spring-cloud-launcher-cli/src/main/java/org/springframework/cloud/launcher/cli/LauncherCommand.java @@ -51,7 +51,7 @@ public class LauncherCommand extends OptionParsingCommand { public static final Log log = LogFactory.getLog(LauncherCommand.class); - private static final String DEFAULT_VERSION = "1.3.1.BUILD-SNAPSHOT"; + private static final String DEFAULT_VERSION = "1.3.2.RELEASE"; private static final Collection EXAMPLES = new ArrayList<>(); diff --git a/spring-cloud-launcher/spring-cloud-launcher-configserver/pom.xml b/spring-cloud-launcher/spring-cloud-launcher-configserver/pom.xml index 02d0dc6..eb9d21f 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-configserver/pom.xml +++ b/spring-cloud-launcher/spring-cloud-launcher-configserver/pom.xml @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-launcher - 1.3.2.BUILD-SNAPSHOT + 1.3.2.RELEASE diff --git a/spring-cloud-launcher/spring-cloud-launcher-dataflow/pom.xml b/spring-cloud-launcher/spring-cloud-launcher-dataflow/pom.xml index 33ab6ee..7df656d 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-dataflow/pom.xml +++ b/spring-cloud-launcher/spring-cloud-launcher-dataflow/pom.xml @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-launcher - 1.3.2.BUILD-SNAPSHOT + 1.3.2.RELEASE diff --git a/spring-cloud-launcher/spring-cloud-launcher-deployer/pom.xml b/spring-cloud-launcher/spring-cloud-launcher-deployer/pom.xml index bafdb16..9a80b54 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-deployer/pom.xml +++ b/spring-cloud-launcher/spring-cloud-launcher-deployer/pom.xml @@ -13,12 +13,12 @@ org.springframework.cloud spring-cloud-launcher - 1.3.2.BUILD-SNAPSHOT + 1.3.2.RELEASE 1.1.4.RELEASE - 1.0.0.RELEASE + 1.0.1.RELEASE @@ -49,7 +49,7 @@ org.springframework.cloud - spring-cloud-deployer-local + spring-cloud-deployer-thin org.springframework.cloud diff --git a/spring-cloud-launcher/spring-cloud-launcher-deployer/src/main/java/org/springframework/cloud/launcher/deployer/Deployer.java b/spring-cloud-launcher/spring-cloud-launcher-deployer/src/main/java/org/springframework/cloud/launcher/deployer/Deployer.java index 10ca7a4..3dbce30 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-deployer/src/main/java/org/springframework/cloud/launcher/deployer/Deployer.java +++ b/spring-cloud-launcher/spring-cloud-launcher-deployer/src/main/java/org/springframework/cloud/launcher/deployer/Deployer.java @@ -179,6 +179,7 @@ public class Deployer { } } appDefProps.putAll(deployable.getApplicationProperties()); + appDefProps.putAll(getThinProperties(deployable.getProperties())); Map map = extractProperties("/" + deployable.getName() + ".yml"); for (String key : map.keySet()) { appDefProps.put(key, map.get(key)); @@ -222,6 +223,17 @@ public class Deployer { return id; } + private Map getThinProperties( + Map properties) { + Map map = new HashMap<>(); + for (String key : properties.keySet()) { + if (key.startsWith(AppDeployer.PREFIX + "thin.")) { + map.put(key, properties.get(key)); + } + } + return map ; + } + private boolean shouldDeploy(Deployable deployable, DeployerProperties properties) { return shouldDeploy(deployable.getName(), properties); } diff --git a/spring-cloud-launcher/spring-cloud-launcher-deployer/src/main/java/org/springframework/cloud/launcher/deployer/DeployerApplication.java b/spring-cloud-launcher/spring-cloud-launcher-deployer/src/main/java/org/springframework/cloud/launcher/deployer/DeployerApplication.java index e1d1d12..d8ad948 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-deployer/src/main/java/org/springframework/cloud/launcher/deployer/DeployerApplication.java +++ b/spring-cloud-launcher/spring-cloud-launcher-deployer/src/main/java/org/springframework/cloud/launcher/deployer/DeployerApplication.java @@ -41,7 +41,7 @@ public class DeployerApplication { private static final Logger logger = LoggerFactory .getLogger(DeployerApplication.class); - private static final String DEFAULT_VERSION = "1.3.2.BUILD-SNAPSHOT"; + private static final String DEFAULT_VERSION = "1.3.2.RELEASE"; private String[] args; diff --git a/spring-cloud-launcher/spring-cloud-launcher-deployer/src/main/resources/META-INF/thin-local.properties b/spring-cloud-launcher/spring-cloud-launcher-deployer/src/main/resources/META-INF/thin-local.properties new file mode 100644 index 0000000..b288e13 --- /dev/null +++ b/spring-cloud-launcher/spring-cloud-launcher-deployer/src/main/resources/META-INF/thin-local.properties @@ -0,0 +1,2 @@ +exclusions.spring-cloud-deployer-local: org.springframework.cloud:spring-cloud-deployer-thin +dependencies.spring-cloud-deplyer-thin: org.springframework.cloud:spring-cloud-deployer-local diff --git a/spring-cloud-launcher/spring-cloud-launcher-deployer/src/main/resources/cloud.yml b/spring-cloud-launcher/spring-cloud-launcher-deployer/src/main/resources/cloud.yml index 633342a..b649079 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-deployer/src/main/resources/cloud.yml +++ b/spring-cloud-launcher/spring-cloud-launcher-deployer/src/main/resources/cloud.yml @@ -97,26 +97,32 @@ spring: launcher: deployables: configserver: + properties: + spring.cloud.deployer.thin.profile: rabbit application-properties: - thin.profile: rabbit spring.cloud.bus.enabled: true eureka: + properties: + spring.cloud.deployer.thin.profile: rabbit application-properties: spring.cloud.bus.enabled: true - thin.profile: rabbit h2: + properties: + spring.cloud.deployer.thin.profile: rabbit application-properties: spring.cloud.bus.enabled: true - thin.profile: rabbit dataflow: + properties: + spring.cloud.deployer.thin.profile: rabbit application-properties: spring.cloud.bus.enabled: true - thin.profile: rabbit hystrixdashboard: + properties: + spring.cloud.deployer.thin.profile: rabbit application-properties: spring.cloud.bus.enabled: true - thin.profile: rabbit zipkin: + properties: + spring.cloud.deployer.thin.profile: rabbit application-properties: - spring.cloud.bus.enabled: true - thin.profile: rabbit + spring.cloud.bus.enabled: true \ No newline at end of file diff --git a/spring-cloud-launcher/spring-cloud-launcher-deployer/src/test/java/org/springframework/cloud/launcher/deployer/LauncherAppDeployerTests.java b/spring-cloud-launcher/spring-cloud-launcher-deployer/src/test/java/org/springframework/cloud/launcher/deployer/LauncherAppDeployerTests.java new file mode 100644 index 0000000..31cdeee --- /dev/null +++ b/spring-cloud-launcher/spring-cloud-launcher-deployer/src/test/java/org/springframework/cloud/launcher/deployer/LauncherAppDeployerTests.java @@ -0,0 +1,110 @@ +/* + * Copyright 2012-2015 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.launcher.deployer; + +import java.util.Arrays; +import java.util.Collections; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Properties; + +import org.junit.Assume; +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; + +import org.springframework.boot.loader.thin.ArchiveUtils; +import org.springframework.boot.loader.tools.LogbackInitializer; +import org.springframework.cloud.deployer.spi.app.DeploymentState; +import org.springframework.cloud.deployer.spi.core.AppDefinition; +import org.springframework.cloud.deployer.spi.core.AppDeploymentRequest; +import org.springframework.cloud.deployer.thin.ThinJarAppDeployer; +import org.springframework.core.io.FileSystemResource; +import org.springframework.core.io.Resource; +import org.springframework.util.StringUtils; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Dave Syer + */ +@RunWith(Parameterized.class) +public class LauncherAppDeployerTests { + + static { + LogbackInitializer.initialize(); + } + + private static ThinJarAppDeployer deployer = new ThinJarAppDeployer(); + private static String resource; + + @BeforeClass + public static void skip() { + try { + resource = "maven://org.springframework.cloud.launcher:spring-cloud-launcher-configserver:" + + new DeployerApplication().getVersion(); + ArchiveUtils.getArchiveRoot(ArchiveUtils.getArchive(resource)); + } + catch (Exception e) { + Assume.assumeNoException( + "Could not locate jar for tests. Please build spring-cloud-cli locally first.", + e); + } + } + + @Parameterized.Parameters + public static List data() { + // Repeat a couple of times to ensure it's consistent + return Arrays.asList(new Object[2][0]); + } + + @Test + public void rabbit() throws Exception { + String first = deploy(resource, "spring.cloud.deployer.thin.profile=rabbit", ""); + // Deployment is blocking so it either failed or succeeded. + assertThat(deployer.status(first).getState()).isEqualTo(DeploymentState.deployed); + deployer.undeploy(first); + } + + private String deploy(String jarName, String deployment, String application, String... args) + throws Exception { + Resource resource = new FileSystemResource( + ArchiveUtils.getArchiveRoot(ArchiveUtils.getArchive(jarName))); + AppDefinition definition = new AppDefinition(resource.getFilename(), + properties(application)); + AppDeploymentRequest request = new AppDeploymentRequest(definition, resource, + properties(deployment), Arrays.asList(args)); + String deployed = deployer.deploy(request); + return deployed; + } + + private Map properties(String properties) { + Map map = new LinkedHashMap<>(); + Properties props = StringUtils.splitArrayElementsIntoProperties( + StringUtils.commaDelimitedListToStringArray(properties), "="); + if (props != null) { + for (Object name : props.keySet()) { + String key = (String) name; + map.put(key, props.getProperty(key)); + } + } + return map; + } + +} diff --git a/spring-cloud-launcher/spring-cloud-launcher-eureka/pom.xml b/spring-cloud-launcher/spring-cloud-launcher-eureka/pom.xml index 6151ae2..1ce966d 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-eureka/pom.xml +++ b/spring-cloud-launcher/spring-cloud-launcher-eureka/pom.xml @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-launcher - 1.3.2.BUILD-SNAPSHOT + 1.3.2.RELEASE diff --git a/spring-cloud-launcher/spring-cloud-launcher-h2/pom.xml b/spring-cloud-launcher/spring-cloud-launcher-h2/pom.xml index 5b769d9..8d18ed3 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-h2/pom.xml +++ b/spring-cloud-launcher/spring-cloud-launcher-h2/pom.xml @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-launcher - 1.3.2.BUILD-SNAPSHOT + 1.3.2.RELEASE diff --git a/spring-cloud-launcher/spring-cloud-launcher-hystrixdashboard/pom.xml b/spring-cloud-launcher/spring-cloud-launcher-hystrixdashboard/pom.xml index 54eed49..dd17347 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-hystrixdashboard/pom.xml +++ b/spring-cloud-launcher/spring-cloud-launcher-hystrixdashboard/pom.xml @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-launcher - 1.3.2.BUILD-SNAPSHOT + 1.3.2.RELEASE diff --git a/spring-cloud-launcher/spring-cloud-launcher-kafka/pom.xml b/spring-cloud-launcher/spring-cloud-launcher-kafka/pom.xml index fe03f9f..5d5ad51 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-kafka/pom.xml +++ b/spring-cloud-launcher/spring-cloud-launcher-kafka/pom.xml @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-launcher - 1.3.2.BUILD-SNAPSHOT + 1.3.2.RELEASE diff --git a/spring-cloud-launcher/spring-cloud-launcher-zipkin/pom.xml b/spring-cloud-launcher/spring-cloud-launcher-zipkin/pom.xml index e6abcf0..5dee869 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-zipkin/pom.xml +++ b/spring-cloud-launcher/spring-cloud-launcher-zipkin/pom.xml @@ -17,7 +17,7 @@ org.springframework.cloud spring-cloud-launcher - 1.3.2.BUILD-SNAPSHOT + 1.3.2.RELEASE