From 6e52d7dd39ea4adb004881609b6d598da5be79da Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Wed, 22 May 2013 11:36:54 +0100 Subject: [PATCH] [bs-134] CLI app cannot resolve snapshot jars Moved the Grab.addResolver() call to before any other compiler customizations. That got it working locally (removed ~/.m2 and ~/.groovy/grapes) but still not working on cloudfoundry for some reason. We need more help from buildpacks there (to get a cache going for the grapes), but there seems to be more than just that stopping it (maybe just timeouts?). [#50351963] --- .../cli/compiler/GroovyCompiler.java | 18 ++++++++++++++++ .../SpringBatchCompilerAutoConfiguration.java | 4 ++-- ...ingBootstrapCompilerAutoConfiguration.java | 21 +++---------------- .../SpringMvcCompilerAutoConfiguration.java | 2 +- 4 files changed, 24 insertions(+), 21 deletions(-) diff --git a/spring-bootstrap-cli/src/main/java/org/springframework/bootstrap/cli/compiler/GroovyCompiler.java b/spring-bootstrap-cli/src/main/java/org/springframework/bootstrap/cli/compiler/GroovyCompiler.java index e04da2a77a4..60182b350f9 100644 --- a/spring-bootstrap-cli/src/main/java/org/springframework/bootstrap/cli/compiler/GroovyCompiler.java +++ b/spring-bootstrap-cli/src/main/java/org/springframework/bootstrap/cli/compiler/GroovyCompiler.java @@ -16,6 +16,7 @@ package org.springframework.bootstrap.cli.compiler; +import groovy.grape.Grape; import groovy.lang.GroovyClassLoader; import groovy.lang.GroovyClassLoader.ClassCollector; @@ -23,7 +24,9 @@ import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.ServiceLoader; import org.codehaus.groovy.ast.ClassNode; @@ -69,6 +72,10 @@ public class GroovyCompiler { CompilerConfiguration compilerConfiguration = new CompilerConfiguration(); this.loader = new ExtendedGroovyClassLoader(getClass().getClassLoader(), compilerConfiguration); + + // FIXME: allow the extra resolvers to be switched on (off by default) + addExtraResolvers(); + compilerConfiguration .addCompilationCustomizers(new CompilerAutoConfigureCustomizer()); } @@ -135,6 +142,7 @@ public class GroovyCompiler { @Override public void call(SourceUnit source, GeneratorContext context, ClassNode classNode) throws CompilationFailedException { + ImportCustomizer importCustomizer = new ImportCustomizer(); ServiceLoader customizers = ServiceLoader.load( @@ -177,4 +185,14 @@ public class GroovyCompiler { } + private void addExtraResolvers() { + Map resolver = new HashMap(); + resolver.put("name", "spring-milestone"); + resolver.put("root", "http://repo.springsource.org/milestone"); + Grape.addResolver(resolver); + resolver.put("name", "spring-snapshot"); + resolver.put("root", "http://repo.springsource.org/snapshot"); + Grape.addResolver(resolver); + } + } diff --git a/spring-bootstrap-cli/src/main/java/org/springframework/bootstrap/cli/compiler/autoconfigure/SpringBatchCompilerAutoConfiguration.java b/spring-bootstrap-cli/src/main/java/org/springframework/bootstrap/cli/compiler/autoconfigure/SpringBatchCompilerAutoConfiguration.java index 1dd8d43d9ea..6a2f1daeadb 100644 --- a/spring-bootstrap-cli/src/main/java/org/springframework/bootstrap/cli/compiler/autoconfigure/SpringBatchCompilerAutoConfiguration.java +++ b/spring-bootstrap-cli/src/main/java/org/springframework/bootstrap/cli/compiler/autoconfigure/SpringBatchCompilerAutoConfiguration.java @@ -38,9 +38,9 @@ public class SpringBatchCompilerAutoConfiguration extends CompilerAutoConfigurat @Override public void applyDependencies(DependencyCustomizer dependencies) { dependencies.ifAnyMissingClasses("org.springframework.batch.core.Job").add( - "org.springframework.batch", "spring-batch-core", "2.2.0.RC1"); + "org.springframework.batch", "spring-batch-core", "2.2.0.RC2"); dependencies.ifAnyMissingClasses("org.springframework.jdbc.core.JdbcTemplate") - .add("org.springframework", "spring-jdbc", "4.0.0.BOOTSTRAP-SNAPSHOT"); + .add("org.springframework", "spring-jdbc", "4.0.0.BUILD-SNAPSHOT"); } @Override diff --git a/spring-bootstrap-cli/src/main/java/org/springframework/bootstrap/cli/compiler/autoconfigure/SpringBootstrapCompilerAutoConfiguration.java b/spring-bootstrap-cli/src/main/java/org/springframework/bootstrap/cli/compiler/autoconfigure/SpringBootstrapCompilerAutoConfiguration.java index 82201754974..689ce2e3417 100644 --- a/spring-bootstrap-cli/src/main/java/org/springframework/bootstrap/cli/compiler/autoconfigure/SpringBootstrapCompilerAutoConfiguration.java +++ b/spring-bootstrap-cli/src/main/java/org/springframework/bootstrap/cli/compiler/autoconfigure/SpringBootstrapCompilerAutoConfiguration.java @@ -16,12 +16,8 @@ package org.springframework.bootstrap.cli.compiler.autoconfigure; -import groovy.grape.Grape; import groovy.lang.GroovyClassLoader; -import java.util.HashMap; -import java.util.Map; - import org.codehaus.groovy.ast.AnnotationNode; import org.codehaus.groovy.ast.ClassNode; import org.codehaus.groovy.classgen.GeneratorContext; @@ -34,7 +30,7 @@ import org.springframework.bootstrap.cli.compiler.GroovyCompilerConfiguration; /** * {@link CompilerAutoConfiguration} for Spring Bootstrap. - * + * * @author Dave Syer * @author Phillip Webb */ @@ -44,7 +40,8 @@ public class SpringBootstrapCompilerAutoConfiguration extends CompilerAutoConfig public void applyDependencies(DependencyCustomizer dependencies) { dependencies.ifAnyMissingClasses( "org.springframework.bootstrap.SpringApplication").add( - "org.springframework.bootstrap", "spring-bootstrap", "0.5.0.BUILD-SNAPSHOT"); + "org.springframework.bootstrap", "spring-bootstrap", + "0.5.0.BUILD-SNAPSHOT"); dependencies.ifAnyResourcesPresent("logback.xml").add("ch.qos.logback", "logback-classic", "1.0.7"); dependencies.ifNotAdded("cg.qos.logback", "logback-classic") @@ -90,18 +87,6 @@ public class SpringBootstrapCompilerAutoConfiguration extends CompilerAutoConfig if (true) { // FIXME: add switch for auto config addEnableAutoConfigurationAnnotation(source, classNode); } - // FIXME: allow the extra resolvers to be switched on (off by default) - addExtraResolvers(); - } - - private void addExtraResolvers() { - Map resolver = new HashMap(); - resolver.put("name", "spring-milestone"); - resolver.put("root", "http://repo.springframework.org/milestone"); - Grape.addResolver(resolver); - resolver.put("name", "spring-snapshot"); - resolver.put("root", "http://repo.springframework.org/snapshot"); - Grape.addResolver(resolver); } private void addEnableAutoConfigurationAnnotation(SourceUnit source, diff --git a/spring-bootstrap-cli/src/main/java/org/springframework/bootstrap/cli/compiler/autoconfigure/SpringMvcCompilerAutoConfiguration.java b/spring-bootstrap-cli/src/main/java/org/springframework/bootstrap/cli/compiler/autoconfigure/SpringMvcCompilerAutoConfiguration.java index baca569a946..e57f966484c 100644 --- a/spring-bootstrap-cli/src/main/java/org/springframework/bootstrap/cli/compiler/autoconfigure/SpringMvcCompilerAutoConfiguration.java +++ b/spring-bootstrap-cli/src/main/java/org/springframework/bootstrap/cli/compiler/autoconfigure/SpringMvcCompilerAutoConfiguration.java @@ -34,7 +34,7 @@ public class SpringMvcCompilerAutoConfiguration extends CompilerAutoConfiguratio public void applyDependencies(DependencyCustomizer dependencies) { dependencies .ifAnyMissingClasses("org.springframework.web.servlet.mvc.Controller") - .add("org.springframework", "spring-webmvc", "4.0.0.BOOTSTRAP-SNAPSHOT"); + .add("org.springframework", "spring-webmvc", "4.0.0.BUILD-SNAPSHOT"); dependencies.ifAnyMissingClasses("org.apache.catalina.startup.Tomcat", "org.eclipse.jetty.server.Server").add("org.eclipse.jetty",