diff --git a/docs/src/main/asciidoc/install.adoc b/docs/src/main/asciidoc/install.adoc index 856f207..5a9f3b3 100644 --- a/docs/src/main/asciidoc/install.adoc +++ b/docs/src/main/asciidoc/install.adoc @@ -1,23 +1,23 @@ To install, make sure you have https://github.com/spring-projects/spring-boot[Spring Boot CLI] -(1.5.2 or better): +(2.0.0 or better): $ spring version - Spring CLI v1.5.8.RELEASE + Spring CLI v2.0.0.M6 E.g. for SDKMan users ``` -$ sdk install springboot 1.5.8.RELEASE -$ sdk use springboot 1.5.8.RELEASE +$ sdk install springboot 2.0.0.M6 +$ sdk use springboot 2.0.0.M6 ``` and install the Spring Cloud plugin ``` $ mvn install -$ spring install org.springframework.cloud:spring-cloud-cli:1.4.1.BUILD-SNAPSHOT +$ spring install org.springframework.cloud:spring-cloud-cli:2.0.0.BUILD-SNAPSHOT ``` IMPORTANT: **Prerequisites:** to use the encryption and decryption features diff --git a/pom.xml b/pom.xml index cd1ffb8..b630aca 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ cli spring-cloud-cli ${basedir}/.. - 2.0.0.M6 + 2.0.0.BUILD-SNAPSHOT Finchley.BUILD-SNAPSHOT diff --git a/spring-cloud-cli-integration-tests/src/test/java/org/springframework/cloud/cli/CliTester.java b/spring-cloud-cli-integration-tests/src/test/java/org/springframework/cloud/cli/CliTester.java index 9fae672..425b053 100644 --- a/spring-cloud-cli-integration-tests/src/test/java/org/springframework/cloud/cli/CliTester.java +++ b/spring-cloud-cli-integration-tests/src/test/java/org/springframework/cloud/cli/CliTester.java @@ -39,7 +39,6 @@ import org.springframework.boot.cli.command.OptionParsingCommand; import org.springframework.boot.cli.command.archive.JarCommand; import org.springframework.boot.cli.command.grab.GrabCommand; import org.springframework.boot.cli.command.run.RunCommand; -import org.springframework.boot.cli.command.test.TestCommand; import org.springframework.util.SocketUtils; /** @@ -75,17 +74,6 @@ public class CliTester implements TestRule { return getOutput(); } - public String test(String... args) throws Exception { - Future future = submitCommand(new TestCommand(), args); - try { - this.commands.add(future.get(this.timeout, TimeUnit.MILLISECONDS)); - return getOutput(); - } - catch (Exception ex) { - return getOutput(); - } - } - public String grab(String... args) throws Exception { Future future = submitCommand(new GrabCommand(), args); this.commands.add(future.get(this.timeout, TimeUnit.MILLISECONDS)); diff --git a/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/EurekaClientCompilerAutoConfiguration.java b/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/EurekaClientCompilerAutoConfiguration.java index 70216dc..2ba1a30 100644 --- a/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/EurekaClientCompilerAutoConfiguration.java +++ b/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/EurekaClientCompilerAutoConfiguration.java @@ -37,7 +37,7 @@ public class EurekaClientCompilerAutoConfiguration extends CompilerAutoConfigura public void applyDependencies(DependencyCustomizer dependencies) { dependencies.ifAnyMissingClasses( "org.springframework.cloud.client.discovery.EnableDiscoveryClient").add( - "spring-cloud-starter-eureka"); + "spring-cloud-starter-netflix-eureka-client"); } @Override diff --git a/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/EurekaServerCompilerAutoConfiguration.java b/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/EurekaServerCompilerAutoConfiguration.java index 56a32c0..cf976b5 100644 --- a/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/EurekaServerCompilerAutoConfiguration.java +++ b/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/EurekaServerCompilerAutoConfiguration.java @@ -37,7 +37,7 @@ public class EurekaServerCompilerAutoConfiguration extends CompilerAutoConfigura public void applyDependencies(DependencyCustomizer dependencies) { dependencies.ifAnyMissingClasses( "org.springframework.cloud.netflix.eureka.server.EnableEurekaServer") - .add("spring-cloud-starter-eureka-server"); + .add("spring-cloud-starter-netflix-eureka-server"); } @Override diff --git a/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/HystrixCompilerAutoConfiguration.java b/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/HystrixCompilerAutoConfiguration.java index fb4c458..b3701e1 100644 --- a/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/HystrixCompilerAutoConfiguration.java +++ b/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/HystrixCompilerAutoConfiguration.java @@ -37,7 +37,7 @@ public class HystrixCompilerAutoConfiguration extends CompilerAutoConfiguration public void applyDependencies(DependencyCustomizer dependencies) { dependencies.ifAnyMissingClasses( "org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker") - .add("spring-cloud-starter-hystrix"); + .add("spring-cloud-starter-netflix-hystrix"); } @Override diff --git a/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/HystrixDashboardCompilerAutoConfiguration.java b/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/HystrixDashboardCompilerAutoConfiguration.java index eed521d..341d988 100644 --- a/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/HystrixDashboardCompilerAutoConfiguration.java +++ b/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/HystrixDashboardCompilerAutoConfiguration.java @@ -37,7 +37,7 @@ public class HystrixDashboardCompilerAutoConfiguration extends CompilerAutoConfi public void applyDependencies(DependencyCustomizer dependencies) { dependencies.ifAnyMissingClasses( "org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard") - .add("spring-cloud-starter-hystrix-dashboard"); + .add("spring-cloud-starter-netflix-hystrix-dashboard"); } @Override diff --git a/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/ZuulCompilerAutoConfiguration.java b/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/ZuulCompilerAutoConfiguration.java index 2f36dc2..b039ff6 100644 --- a/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/ZuulCompilerAutoConfiguration.java +++ b/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/ZuulCompilerAutoConfiguration.java @@ -37,7 +37,7 @@ public class ZuulCompilerAutoConfiguration extends CompilerAutoConfiguration { public void applyDependencies(DependencyCustomizer dependencies) { dependencies .ifAnyMissingClasses("org.springframework.cloud.netflix.zuul.EnableZuulProxy") - .add("spring-cloud-starter-zuul"); + .add("spring-cloud-starter-netflix-zuul"); } @Override diff --git a/spring-cloud-launcher/spring-cloud-launcher-configserver/pom.xml b/spring-cloud-launcher/spring-cloud-launcher-configserver/pom.xml index ddaa10b..2854760 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-configserver/pom.xml +++ b/spring-cloud-launcher/spring-cloud-launcher-configserver/pom.xml @@ -23,7 +23,7 @@ org.springframework.cloud - spring-cloud-starter-eureka + spring-cloud-starter-netflix-eureka-client org.springframework.cloud diff --git a/spring-cloud-launcher/spring-cloud-launcher-dataflow/pom.xml b/spring-cloud-launcher/spring-cloud-launcher-dataflow/pom.xml index b0147fe..09bf2ea 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-dataflow/pom.xml +++ b/spring-cloud-launcher/spring-cloud-launcher-dataflow/pom.xml @@ -43,7 +43,7 @@ org.springframework.cloud - spring-cloud-starter-eureka + spring-cloud-starter-netflix-eureka-client org.springframework.cloud diff --git a/spring-cloud-launcher/spring-cloud-launcher-h2/pom.xml b/spring-cloud-launcher/spring-cloud-launcher-h2/pom.xml index ffde0ef..745cbc9 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-h2/pom.xml +++ b/spring-cloud-launcher/spring-cloud-launcher-h2/pom.xml @@ -39,7 +39,7 @@ org.springframework.cloud - spring-cloud-starter-eureka + spring-cloud-starter-netflix-eureka-client org.springframework.boot diff --git a/spring-cloud-launcher/spring-cloud-launcher-hystrixdashboard/pom.xml b/spring-cloud-launcher/spring-cloud-launcher-hystrixdashboard/pom.xml index f3fee89..4e7de3b 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-hystrixdashboard/pom.xml +++ b/spring-cloud-launcher/spring-cloud-launcher-hystrixdashboard/pom.xml @@ -27,7 +27,7 @@ org.springframework.cloud - spring-cloud-starter-eureka + spring-cloud-starter-netflix-eureka-client org.springframework.cloud @@ -35,7 +35,7 @@ org.springframework.cloud - spring-cloud-starter-hystrix-dashboard + spring-cloud-starter-netflix-hystrix-dashboard org.springframework.boot diff --git a/spring-cloud-launcher/spring-cloud-launcher-kafka/src/main/java/org/springframework/cloud/launcher/kafka/KafkaApplication.java b/spring-cloud-launcher/spring-cloud-launcher-kafka/src/main/java/org/springframework/cloud/launcher/kafka/KafkaApplication.java index 348d2c0..3756e4c 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-kafka/src/main/java/org/springframework/cloud/launcher/kafka/KafkaApplication.java +++ b/spring-cloud-launcher/spring-cloud-launcher-kafka/src/main/java/org/springframework/cloud/launcher/kafka/KafkaApplication.java @@ -25,7 +25,7 @@ import org.I0Itec.zkclient.ZkClient; import org.I0Itec.zkclient.exception.ZkInterruptedException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.kafka.common.protocol.SecurityProtocol; +import org.apache.kafka.common.utils.Time; import org.apache.kafka.common.utils.Utils; import org.apache.zookeeper.server.NIOServerCnxnFactory; import org.apache.zookeeper.server.ZooKeeperServer; @@ -41,12 +41,13 @@ import kafka.server.KafkaConfig; import kafka.server.KafkaServer; import kafka.server.NotRunning; import kafka.utils.CoreUtils; -import kafka.utils.SystemTime$; import kafka.utils.TestUtils; import kafka.utils.ZKStringSerializer$; /** * @author Spencer Gibb + * + * see https://github.com/spring-projects/spring-kafka/blob/2.0.x/spring-kafka-test/src/main/java/org/springframework/kafka/test/rule/KafkaEmbedded.java */ @SpringBootApplication public class KafkaApplication { @@ -108,10 +109,10 @@ public class KafkaApplication { boolean enableControlledShutdown = true; Properties brokerConfigProperties = TestUtils.createBrokerConfig( nodeId, zkConnectString, enableControlledShutdown, true, - port, scala.Option.apply(null), - scala.Option.apply(null), - scala.Option.apply(null), true, false, 0, - false, 0, false, 0, scala.Option.apply(null)); + port, scala.Option.apply(null), + scala.Option.apply(null), + scala.Option.apply(null), true, false, 0, + false, 0, false, 0, scala.Option.apply(null), 1); brokerConfigProperties.setProperty("replica.socket.timeout.ms", "1000"); brokerConfigProperties.setProperty("controller.socket.timeout.ms", @@ -121,7 +122,7 @@ public class KafkaApplication { brokerConfigProperties.put("zookeeper.connect", zkConnectString); kafkaServer = TestUtils.createServer( new KafkaConfig(brokerConfigProperties), - SystemTime$.MODULE$); + Time.SYSTEM); log.info("Created Kafka server at " + kafkaServer.config().hostName() + ":" + kafkaServer.config().port()); diff --git a/spring-cloud-launcher/spring-cloud-launcher-stubrunner/pom.xml b/spring-cloud-launcher/spring-cloud-launcher-stubrunner/pom.xml index dbf6179..5f19035 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-stubrunner/pom.xml +++ b/spring-cloud-launcher/spring-cloud-launcher-stubrunner/pom.xml @@ -13,7 +13,7 @@ org.springframework.cloud spring-cloud-launcher - 1.4.1.BUILD-SNAPSHOT + 2.0.0.BUILD-SNAPSHOT diff --git a/spring-cloud-launcher/spring-cloud-launcher-zipkin/pom.xml b/spring-cloud-launcher/spring-cloud-launcher-zipkin/pom.xml index 2038346..925fc10 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-zipkin/pom.xml +++ b/spring-cloud-launcher/spring-cloud-launcher-zipkin/pom.xml @@ -27,7 +27,7 @@ org.springframework.cloud - spring-cloud-starter-eureka + spring-cloud-starter-netflix-eureka-client io.zipkin.java diff --git a/spring-cloud-launcher/spring-cloud-launcher-zipkin/src/main/java/org/springframework/cloud/launcher/zipkin/ZipkinServerApplication.java b/spring-cloud-launcher/spring-cloud-launcher-zipkin/src/main/java/org/springframework/cloud/launcher/zipkin/ZipkinServerApplication.java index e7ff302..5695265 100644 --- a/spring-cloud-launcher/spring-cloud-launcher-zipkin/src/main/java/org/springframework/cloud/launcher/zipkin/ZipkinServerApplication.java +++ b/spring-cloud-launcher/spring-cloud-launcher-zipkin/src/main/java/org/springframework/cloud/launcher/zipkin/ZipkinServerApplication.java @@ -16,20 +16,81 @@ package org.springframework.cloud.launcher.zipkin; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; - -import zipkin.server.EnableZipkinServer; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Condition; +import org.springframework.context.annotation.ConditionContext; +import org.springframework.context.annotation.Conditional; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import org.springframework.core.type.AnnotatedTypeMetadata; +import zipkin.collector.CollectorMetrics; +import zipkin.collector.CollectorSampler; +import zipkin.internal.V2StorageComponent; +import zipkin.server.ZipkinHttpCollector; +import zipkin.server.ZipkinQueryApiV1; +import zipkin.server.brave.BraveConfiguration; +import zipkin.storage.StorageComponent; +import zipkin2.storage.InMemoryStorage; /** * @author Spencer Gibb */ -@EnableZipkinServer +// @EnableZipkinServer +@Import({/*ZipkinServerConfiguration.class,*/ BraveConfiguration.class, ZipkinQueryApiV1.class, ZipkinHttpCollector.class}) @EnableDiscoveryClient @SpringBootApplication public class ZipkinServerApplication { + + @Bean + @ConditionalOnMissingBean({CollectorSampler.class}) + CollectorSampler traceIdSampler(@Value("${zipkin.collector.sample-rate:1.0}") float rate) { + return CollectorSampler.create(rate); + } + + @Bean + CollectorMetrics metrics() { + return CollectorMetrics.NOOP_METRICS; + } + + static final class StorageTypeMemAbsentOrEmpty implements Condition { + StorageTypeMemAbsentOrEmpty() { + } + + public boolean matches(ConditionContext condition, AnnotatedTypeMetadata ignored) { + String storageType = condition.getEnvironment().getProperty("zipkin.storage.type"); + if (storageType == null) { + return true; + } else { + storageType = storageType.trim(); + return storageType.isEmpty() ? true : storageType.equals("mem"); + } + } + } + + @Configuration + @Conditional({ZipkinServerApplication.StorageTypeMemAbsentOrEmpty.class}) + @ConditionalOnMissingBean({StorageComponent.class}) + static class InMemoryConfiguration { + InMemoryConfiguration() { + } + + @Bean + StorageComponent storage(@Value("${zipkin.storage.strict-trace-id:true}") boolean strictTraceId, @Value("${zipkin.storage.mem.max-spans:500000}") int maxSpans) { + return V2StorageComponent.create(InMemoryStorage.newBuilder().strictTraceId(strictTraceId).maxSpanCount(maxSpans).build()); + } + + @Bean + InMemoryStorage v2Storage(V2StorageComponent component) { + return (InMemoryStorage)component.delegate(); + } + } + public static void main(String[] args) { SpringApplication.run(ZipkinServerApplication.class, args); }