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 new file mode 100644 index 0000000..e1631c3 --- /dev/null +++ b/spring-cloud-cli/src/main/java/org/springframework/cloud/cli/compiler/HystrixDashboardCompilerAutoConfiguration.java @@ -0,0 +1,49 @@ +/* + * Copyright 2013-2014 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.cli.compiler; + +import org.codehaus.groovy.ast.ClassNode; +import org.codehaus.groovy.control.CompilationFailedException; +import org.codehaus.groovy.control.customizers.ImportCustomizer; +import org.springframework.boot.cli.compiler.AstUtils; +import org.springframework.boot.cli.compiler.CompilerAutoConfiguration; +import org.springframework.boot.cli.compiler.DependencyCustomizer; + +/** + * @author Dave Syer + * + */ +public class HystrixDashboardCompilerAutoConfiguration extends CompilerAutoConfiguration { + + @Override + public boolean matches(ClassNode classNode) { + return AstUtils.hasAtLeastOneAnnotation(classNode, "EnableHystrixDashboard"); + } + + @Override + public void applyDependencies(DependencyCustomizer dependencies) { + dependencies.ifAnyMissingClasses( + "org.springframework.cloud.netflix.hystrix.annotations.EnableHystrixDashboard") + .add("spring-cloud-starter-hystrix-dashboard"); + } + + @Override + public void applyImports(ImportCustomizer imports) throws CompilationFailedException { + imports.addImports( + "org.springframework.cloud.netflix.hystrix.annotations.EnableHystrixDashboard"); + } + +} diff --git a/spring-cloud-cli/src/main/resources/META-INF/services/org.springframework.boot.cli.compiler.CompilerAutoConfiguration b/spring-cloud-cli/src/main/resources/META-INF/services/org.springframework.boot.cli.compiler.CompilerAutoConfiguration index 6d91940..e402f2d 100644 --- a/spring-cloud-cli/src/main/resources/META-INF/services/org.springframework.boot.cli.compiler.CompilerAutoConfiguration +++ b/spring-cloud-cli/src/main/resources/META-INF/services/org.springframework.boot.cli.compiler.CompilerAutoConfiguration @@ -4,4 +4,5 @@ org.springframework.cloud.cli.compiler.OAuth2ResourceCompilerAutoConfiguration org.springframework.cloud.cli.compiler.OAuth2SsoCompilerAutoConfiguration org.springframework.cloud.cli.compiler.EurekaClientCompilerAutoConfiguration org.springframework.cloud.cli.compiler.HystrixCompilerAutoConfiguration +org.springframework.cloud.cli.compiler.HystrixDashboardCompilerAutoConfiguration org.springframework.cloud.cli.compiler.ZuulCompilerAutoConfiguration diff --git a/spring-cloud-versions/pom.xml b/spring-cloud-versions/pom.xml index f3fa02d..7517692 100644 --- a/spring-cloud-versions/pom.xml +++ b/spring-cloud-versions/pom.xml @@ -1,5 +1,6 @@ - + 4.0.0 org.springframework.cloud @@ -19,38 +20,20 @@ ${basedir}/../.. - - - org.springframework.cloud - spring-cloud-starter - ${project.version} - - - org.springframework.cloud - spring-cloud-starter-cloudfoundry - ${project.version} - - - org.springframework.cloud - spring-cloud-starter-eureka - ${project.version} - - - org.springframework.cloud - spring-cloud-starter-hystrix - ${project.version} - - - org.springframework.cloud - spring-cloud-starter-zuul - ${project.version} - - - org.springframework.security.oauth - spring-security-oauth2 - 2.0.3.RELEASE - - + + + org.springframework.cloud + spring-cloud-starters + ${project.version} + pom + import + + + org.springframework.security.oauth + spring-security-oauth2 + 2.0.3.RELEASE + + @@ -91,7 +74,8 @@ ${project.build.directory}/effective-pom src/main/xslt/dependency-management-to-versions.xsl - + .properties