Skip to content

Commit e7577ca

Browse files
committed
Merge remote-tracking branch 'origin/prism2' into prism
2 parents b932fd8 + 2ee8553 commit e7577ca

File tree

21 files changed

+193
-165
lines changed

21 files changed

+193
-165
lines changed

inject-generator/pom.xml

Lines changed: 8 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,17 @@
1818
<dependency>
1919
<groupId>io.avaje</groupId>
2020
<artifactId>avaje-inject</artifactId>
21-
<version>8.12-RC4</version>
21+
<version>${project.version}</version>
2222
<scope>provided</scope>
2323
</dependency>
2424

25-
<dependency>
26-
<groupId>com.jolira</groupId>
27-
<artifactId>hickory</artifactId>
28-
<version>1.0.0</version>
29-
<optional>true</optional>
30-
<scope>provided</scope>
31-
</dependency>
25+
<dependency>
26+
<groupId>io.avaje</groupId>
27+
<artifactId>avaje-inject-prism</artifactId>
28+
<version>${project.version}</version>
29+
</dependency>
30+
31+
3232
<!-- test dependencies -->
3333
<dependency>
3434
<groupId>io.avaje</groupId>
@@ -63,54 +63,6 @@
6363
</argLine>
6464
</configuration>
6565
</plugin>
66-
67-
68-
<plugin>
69-
<groupId>org.bsc.maven</groupId>
70-
<artifactId>maven-processor-plugin</artifactId>
71-
<version>4.0-rc1</version>
72-
<configuration>
73-
<defaultOutputDirectory>${prism.directory}</defaultOutputDirectory>
74-
<processors>
75-
<processor>net.java.dev.hickory.prism.internal.PrismGenerator</processor>
76-
</processors>
77-
</configuration>
78-
<executions>
79-
<execution>
80-
<id>process</id>
81-
<phase>generate-sources</phase>
82-
<goals>
83-
<goal>process</goal>
84-
</goals>
85-
</execution>
86-
</executions>
87-
<dependencies>
88-
<dependency>
89-
<groupId>com.jolira</groupId>
90-
<artifactId>hickory</artifactId>
91-
<version>1.0.0</version>
92-
</dependency>
93-
</dependencies>
94-
</plugin>
95-
<plugin>
96-
<groupId>org.codehaus.mojo</groupId>
97-
<artifactId>build-helper-maven-plugin</artifactId>
98-
<version>3.3.0</version>
99-
<executions>
100-
<execution>
101-
<id>add-source</id>
102-
<phase>generate-sources</phase>
103-
<goals>
104-
<goal>add-source</goal>
105-
</goals>
106-
<configuration>
107-
<sources>
108-
<source>${prism.directory}</source>
109-
</sources>
110-
</configuration>
111-
</execution>
112-
</executions>
113-
</plugin>
11466
</plugins>
11567
</build>
11668

inject-generator/src/main/java/io/avaje/inject/generator/AllScopes.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package io.avaje.inject.generator;
22

3-
import java.util.HashMap;
4-
import java.util.List;
5-
import java.util.Map;
3+
import io.avaje.inject.prism.InjectModulePrism;
64

75
import javax.annotation.processing.RoundEnvironment;
86
import javax.lang.model.element.Element;
@@ -58,7 +56,7 @@ void readModules(List<String> customScopeModules) {
5856
for (String customScopeModule : customScopeModules) {
5957
final TypeElement module = context.element(customScopeModule);
6058
if (module != null) {
61-
final var injectModule = InjectModulePrism.getInstanceOn(module);
59+
InjectModulePrism injectModule = InjectModulePrism.getInstanceOn(module);
6260
if (injectModule != null) {
6361
final String customScopeType = injectModule.customScopeType();
6462
final TypeElement scopeType = context.element(customScopeType);

inject-generator/src/main/java/io/avaje/inject/generator/AspectAnnotationReader.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33

44
import javax.lang.model.element.*;
5+
6+
import io.avaje.inject.prism.AspectPrism;
7+
58
import java.util.ArrayList;
69
import java.util.List;
710
import java.util.Map;
@@ -26,7 +29,7 @@ List<AspectPair> read() {
2629
List<AspectPair> aspects = new ArrayList<>();
2730
for (AnnotationMirror annotationMirror : element.getAnnotationMirrors()) {
2831
Element anElement = annotationMirror.getAnnotationType().asElement();
29-
var aspect = AspectPrism.getInstanceOn(anElement);
32+
AspectPrism aspect = AspectPrism.getInstanceOn(anElement);
3033
if (aspect != null) {
3134
Meta meta = readTarget(anElement);
3235
if (meta != null) {

inject-generator/src/main/java/io/avaje/inject/generator/BeanReader.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,18 @@
11
package io.avaje.inject.generator;
22

3+
import java.util.ArrayList;
4+
import java.util.Collections;
5+
import java.util.LinkedHashSet;
6+
import java.util.List;
7+
import java.util.Set;
8+
39
import javax.lang.model.element.Element;
410
import javax.lang.model.element.TypeElement;
5-
import java.util.*;
11+
12+
import io.avaje.inject.prism.PrimaryPrism;
13+
import io.avaje.inject.prism.PrototypePrism;
14+
import io.avaje.inject.prism.ProxyPrism;
15+
import io.avaje.inject.prism.SecondaryPrism;
616

717
final class BeanReader {
818

inject-generator/src/main/java/io/avaje/inject/generator/MetaData.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import java.util.Set;
77
import java.util.stream.Collectors;
88

9+
import io.avaje.inject.prism.DependencyMetaPrism;
10+
911
/**
1012
* Holds the data as per <code>@DependencyMeta</code>
1113
*/

inject-generator/src/main/java/io/avaje/inject/generator/MethodReader.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@
1111
import javax.lang.model.element.VariableElement;
1212
import javax.lang.model.type.TypeMirror;
1313

14+
import io.avaje.inject.prism.BeanPrism;
15+
import io.avaje.inject.prism.PrimaryPrism;
16+
import io.avaje.inject.prism.PrototypePrism;
17+
import io.avaje.inject.prism.SecondaryPrism;
18+
1419
final class MethodReader {
1520

1621
private static final String CODE_COMMENT_BUILD_FACTORYBEAN = " /**\n * Create and register %s via factory bean method %s#%s().\n */";
@@ -42,9 +47,9 @@ final class MethodReader {
4247
this.isFactory = bean != null;
4348
this.element = element;
4449
if (isFactory) {
45-
this.prototype = (PrototypePrism.getInstanceOn(beanType) != null);
46-
this.primary = (PrimaryPrism.getInstanceOn(beanType) != null);
47-
this.secondary = !primary && (SecondaryPrism.getInstanceOn(beanType) != null);
50+
prototype = PrototypePrism.getInstanceOn(element) != null;
51+
primary = PrimaryPrism.getInstanceOn(element) != null;
52+
secondary = SecondaryPrism.getInstanceOn(element) != null;
4853
} else {
4954
prototype = false;
5055
primary = false;

inject-generator/src/main/java/io/avaje/inject/generator/Processor.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
import javax.lang.model.element.TypeElement;
2323
import javax.lang.model.util.Elements;
2424
import javax.tools.StandardLocation;
25+
import io.avaje.inject.prism.InjectModulePrism;
26+
import io.avaje.inject.prism.ScopePrism;
27+
2528

2629
@SupportedAnnotationTypes({
2730
Constants.INJECTMODULE,
@@ -184,8 +187,7 @@ private void readModule(RoundEnvironment roundEnv) {
184187
/** Read InjectModule for things like package-info etc (not for custom scopes) */
185188
private void readInjectModule(RoundEnvironment roundEnv) {
186189
// read other that are annotated with InjectModule
187-
for (final Element element :
188-
roundEnv.getElementsAnnotatedWith(context.element(Constants.INJECTMODULE))) {
190+
for (final Element element : roundEnv.getElementsAnnotatedWith(context.element(Constants.INJECTMODULE))) {
189191

190192
final var scope = ScopePrism.getInstanceOn(element);
191193
if (scope == null) {

inject-generator/src/main/java/io/avaje/inject/generator/ScopeInfo.java

Lines changed: 14 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,16 @@
11
package io.avaje.inject.generator;
22

3-
import java.io.IOException;
4-
import java.util.ArrayList;
5-
import java.util.Collection;
6-
import java.util.HashSet;
7-
import java.util.LinkedHashMap;
8-
import java.util.LinkedHashSet;
9-
import java.util.List;
10-
import java.util.Map;
11-
import java.util.Set;
3+
import io.avaje.inject.prism.DependencyMetaPrism;
4+
import io.avaje.inject.prism.InjectModulePrism;
125

136
import javax.annotation.processing.FilerException;
147
import javax.lang.model.element.Element;
158
import javax.lang.model.element.ElementKind;
9+
import javax.lang.model.element.Name;
1610
import javax.lang.model.element.TypeElement;
1711
import javax.tools.JavaFileObject;
18-
12+
import java.io.IOException;
13+
import java.util.*;
1914

2015
final class ScopeInfo {
2116

@@ -115,20 +110,13 @@ void details(String name, Element contextElement) {
115110
}
116111

117112
private void read(Element element) {
118-
final var injectModule = InjectModulePrism.getInstanceOn(element);
119-
if (injectModule == null) {
120-
return;
113+
ignoreSingleton = ScopeUtil.readIgnoreSingleton(element);
114+
requires(ScopeUtil.readRequires(element));
115+
provides(ScopeUtil.readProvides(element));
116+
for (String require : ScopeUtil.readRequiresPackages(element)) {
117+
requiresPackages.add(require);
118+
requirePkg.add(Util.packageOf(require) + ".");
121119
}
122-
ignoreSingleton = injectModule.ignoreSingleton();
123-
injectModule.requires().stream().map(Object::toString).forEach(requires::add);
124-
injectModule.provides().stream().map(Object::toString).forEach(provides::add);
125-
injectModule.requiresPackages().stream()
126-
.map(Object::toString)
127-
.forEach(
128-
require -> {
129-
requiresPackages.add(require);
130-
requirePkg.add(Util.packageOf(require) + ".");
131-
});
132120
}
133121

134122
private String initName(String topPackage) {
@@ -313,10 +301,10 @@ private void readBeanMeta(TypeElement typeElement, boolean factory) {
313301
}
314302

315303
void readBuildMethodDependencyMeta(Element element) {
316-
var simpleName = element.getSimpleName();
304+
Name simpleName = element.getSimpleName();
317305
if (simpleName.toString().startsWith("build_")) {
318306
// read a build method - DependencyMeta
319-
final var meta = DependencyMetaPrism.getInstanceOn(element);
307+
DependencyMetaPrism meta = DependencyMetaPrism.getInstanceOn(element);
320308
if (meta == null) {
321309
context.logError("Missing @DependencyMeta on method " + simpleName);
322310
} else {
@@ -434,7 +422,7 @@ void buildAutoRequiresAspects(Append writer, Set<String> autoRequires) {
434422
}
435423

436424
void readModuleMetaData(TypeElement moduleType) {
437-
final var module = InjectModulePrism.getInstanceOn(moduleType);
425+
InjectModulePrism module = InjectModulePrism.getInstanceOn(moduleType);
438426
details(module.name(), moduleType);
439427
readFactoryMetaData(moduleType);
440428
}

inject-generator/src/main/java/io/avaje/inject/generator/TypeAnnotationReader.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package io.avaje.inject.generator;
22

3-
import java.util.ArrayList;
4-
import java.util.List;
53

64
import javax.lang.model.element.AnnotationMirror;
75
import javax.lang.model.element.TypeElement;
86
import javax.lang.model.type.DeclaredType;
97

8+
import io.avaje.inject.prism.QualifierPrism;
9+
10+
import java.util.ArrayList;
11+
import java.util.List;
12+
1013
/**
1114
* Read the annotations on the type.
1215
*/
@@ -35,10 +38,10 @@ String qualifierName() {
3538
}
3639

3740
void process() {
38-
for (final AnnotationMirror annotationMirror : beanType.getAnnotationMirrors()) {
39-
final var annotationType = annotationMirror.getAnnotationType();
40-
final var qualifier = QualifierPrism.getInstance(annotationMirror);
41-
final var annType = annotationType.toString();
41+
for (AnnotationMirror annotationMirror : beanType.getAnnotationMirrors()) {
42+
DeclaredType annotationType = annotationMirror.getAnnotationType();
43+
QualifierPrism qualifier = QualifierPrism.getInstanceOn(annotationType.asElement());
44+
String annType = annotationType.toString();
4245
if (qualifier != null) {
4346
qualifierName = Util.shortName(annType).toLowerCase();
4447
} else if (annType.indexOf('.') == -1) {

inject-generator/src/main/java/io/avaje/inject/generator/TypeExtendsInjection.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package io.avaje.inject.generator;
22

3+
import io.avaje.inject.prism.BeanPrism;
4+
import io.avaje.inject.prism.InjectPrism;
5+
36
import javax.lang.model.element.Element;
47
import javax.lang.model.element.ExecutableElement;
58
import javax.lang.model.element.Modifier;
@@ -56,7 +59,7 @@ void read(TypeElement type) {
5659
}
5760

5861
private void readField(Element element) {
59-
var inject = InjectPrism.getInstanceOn(element);
62+
InjectPrism inject = InjectPrism.getInstanceOn(element);
6063
if (inject != null) {
6164
injectFields.add(new FieldReader(element));
6265
}
@@ -70,7 +73,7 @@ private void readConstructor(Element element, TypeElement type) {
7073

7174
ExecutableElement ex = (ExecutableElement) element;
7275
MethodReader methodReader = new MethodReader(context, ex, baseType, importTypes).read();
73-
var inject = InjectPrism.getInstanceOn(element);
76+
InjectPrism inject = InjectPrism.getInstanceOn(element);
7477
if (inject != null) {
7578
injectConstructor = methodReader;
7679
} else {
@@ -84,13 +87,13 @@ private void readMethod(Element element, TypeElement type) {
8487
boolean checkAspect = true;
8588
ExecutableElement methodElement = (ExecutableElement) element;
8689
if (factory) {
87-
var bean = BeanPrism.getInstanceOn(element);
90+
BeanPrism bean = BeanPrism.getInstanceOn(element);
8891
if (bean != null) {
8992
addFactoryMethod(methodElement, bean);
9093
checkAspect = false;
9194
}
9295
}
93-
var inject = InjectPrism.getInstanceOn(element);
96+
InjectPrism inject = InjectPrism.getInstanceOn(element);
9497
final String methodKey = methodElement.getSimpleName().toString();
9598
if (inject != null && !notInjectMethods.contains(methodKey)) {
9699
if (!injectMethods.containsKey(methodKey)) {

0 commit comments

Comments
 (0)