Polish
This commit is contained in:
parent
aae38db9af
commit
c525689b0f
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2014-2015 the original author or authors.
|
||||
* 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.
|
||||
|
@ -39,15 +39,15 @@ import org.springframework.core.Ordered;
|
|||
|
||||
/**
|
||||
* A base class that lets plugin authors easily add additional BOMs to all apps. All the
|
||||
* dependencies in the bom (and it's transitives) will be added to the dependency
|
||||
* dependencies in the BOM (and it's transitives) will be added to the dependency
|
||||
* management lookup, so an app can use just the artifact id (e.g. "spring-jdbc") in a
|
||||
* <code>@Grab</code>. To install, implement the missing methods and list the class in
|
||||
* <code>META-INF/services/org.springframework.boot.cli.compiler.SpringBootAstTransformation</code>
|
||||
* {@code @Grab}. To install, implement the missing methods and list the class in
|
||||
* {@code META-INF/services/org.springframework.boot.cli.compiler.SpringBootAstTransformation}
|
||||
* . The {@link #getOrder()} value needs to be before
|
||||
* {@link DependencyManagementBomTransformation#ORDER}.
|
||||
*
|
||||
* @author Dave Syer
|
||||
*
|
||||
* @since 1.3.0
|
||||
*/
|
||||
@GroovyASTTransformation(phase = CompilePhase.CONVERSION)
|
||||
public abstract class GenericBomAstTransformation
|
||||
|
@ -67,11 +67,10 @@ public abstract class GenericBomAstTransformation
|
|||
/**
|
||||
* The bom to be added to dependency management in compact form:
|
||||
* <code>"<groupId>:<artifactId>:<version>"</code> (like in a
|
||||
* <code>@Grab</code>).
|
||||
*
|
||||
* @return the maven co-ordinates of the bom to add
|
||||
* {@code @Grab}).
|
||||
* @return the maven co-ordinates of the BOM to add
|
||||
*/
|
||||
abstract protected String getBomModule();
|
||||
protected abstract String getBomModule();
|
||||
|
||||
private void visitModule(ModuleNode node, String module) {
|
||||
addDependencyManagementBom(node, module);
|
||||
|
@ -89,30 +88,24 @@ public abstract class GenericBomAstTransformation
|
|||
}
|
||||
|
||||
private AnnotationNode getAnnotation(AnnotatedNode annotated) {
|
||||
AnnotationNode annotation;
|
||||
List<AnnotationNode> annotations = annotated.getAnnotations(BOM);
|
||||
if (annotations.isEmpty()) {
|
||||
annotation = new AnnotationNode(BOM);
|
||||
annotated.addAnnotation(annotation);
|
||||
}
|
||||
else {
|
||||
annotation = annotations.get(0);
|
||||
if (!annotations.isEmpty()) {
|
||||
return annotations.get(0);
|
||||
}
|
||||
AnnotationNode annotation = new AnnotationNode(BOM);
|
||||
annotated.addAnnotation(annotation);
|
||||
return annotation;
|
||||
}
|
||||
|
||||
private AnnotatedNode getAnnotatedNode(ModuleNode node) {
|
||||
PackageNode pkg = node.getPackage();
|
||||
if (pkg != null) {
|
||||
if (!pkg.getAnnotations(BOM).isEmpty()) {
|
||||
return pkg;
|
||||
}
|
||||
PackageNode packageNode = node.getPackage();
|
||||
if (packageNode != null && !packageNode.getAnnotations(BOM).isEmpty()) {
|
||||
return packageNode;
|
||||
}
|
||||
if (!node.getClasses().isEmpty()) {
|
||||
ClassNode cls = node.getClasses().get(0);
|
||||
return cls;
|
||||
return node.getClasses().get(0);
|
||||
}
|
||||
return pkg;
|
||||
return packageNode;
|
||||
}
|
||||
|
||||
private List<ConstantExpression> getConstantExpressions(Expression valueExpression) {
|
||||
|
|
|
@ -40,6 +40,7 @@ import static org.junit.Assert.assertEquals;
|
|||
* Tests for {@link ResolveDependencyCoordinatesTransformation}
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
* @author Dave Syer
|
||||
*/
|
||||
public final class GenericBomAstTransformationTests {
|
||||
|
||||
|
@ -59,6 +60,7 @@ public final class GenericBomAstTransformationTests {
|
|||
protected String getBomModule() {
|
||||
return "test:child:1.0.0";
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
@Test
|
||||
|
@ -106,16 +108,15 @@ public final class GenericBomAstTransformationTests {
|
|||
}
|
||||
|
||||
private AnnotationNode findAnnotation() {
|
||||
PackageNode pkg = this.moduleNode.getPackage();
|
||||
PackageNode packageNode = this.moduleNode.getPackage();
|
||||
ClassNode bom = ClassHelper.make(DependencyManagementBom.class);
|
||||
if (pkg != null) {
|
||||
if (!pkg.getAnnotations(bom).isEmpty()) {
|
||||
return pkg.getAnnotations(bom).get(0);
|
||||
if (packageNode != null) {
|
||||
if (!packageNode.getAnnotations(bom).isEmpty()) {
|
||||
return packageNode.getAnnotations(bom).get(0);
|
||||
}
|
||||
}
|
||||
if (!this.moduleNode.getClasses().isEmpty()) {
|
||||
ClassNode cls = this.moduleNode.getClasses().get(0);
|
||||
return cls.getAnnotations(bom).get(0);
|
||||
return this.moduleNode.getClasses().get(0).getAnnotations(bom).get(0);
|
||||
}
|
||||
throw new IllegalStateException("No package or class node found");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue