Skip to content

Commit 8a03936

Browse files
author
Soroosh Sarabadani
committed
Use the new writer
1 parent 8907eae commit 8a03936

File tree

1 file changed

+12
-22
lines changed

1 file changed

+12
-22
lines changed

operator-framework/src/main/java/io/javaoperatorsdk/operator/processing/ControllerAnnotationProcessor.java renamed to operator-framework/src/main/java/io/javaoperatorsdk/operator/processing/annotation/ControllerAnnotationProcessor.java

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,19 @@
1-
package io.javaoperatorsdk.operator.processing;
1+
package io.javaoperatorsdk.operator.processing.annotation;
22

33
import com.google.auto.service.AutoService;
44
import com.squareup.javapoet.*;
55
import io.fabric8.kubernetes.api.builder.Function;
66
import io.fabric8.kubernetes.client.CustomResourceDoneable;
77
import io.javaoperatorsdk.operator.api.ResourceController;
8+
89
import javax.annotation.processing.*;
910
import javax.lang.model.SourceVersion;
1011
import javax.lang.model.element.*;
1112
import javax.lang.model.type.DeclaredType;
1213
import javax.lang.model.type.TypeKind;
1314
import javax.lang.model.type.TypeMirror;
1415
import javax.tools.Diagnostic;
15-
import javax.tools.FileObject;
1616
import javax.tools.JavaFileObject;
17-
import javax.tools.StandardLocation;
18-
import java.io.IOException;
1917
import java.io.PrintWriter;
2018
import java.util.ArrayList;
2119
import java.util.HashSet;
@@ -30,23 +28,14 @@
3028
@SupportedSourceVersion(SourceVersion.RELEASE_8)
3129
@AutoService(Processor.class)
3230
public class ControllerAnnotationProcessor extends AbstractProcessor {
33-
private FileObject resource;
34-
PrintWriter printWriter = null;
31+
private ControllersResourceWriter controllersResourceWriter;
3532
private Set<String> generatedDoneableClassFiles = new HashSet<>();
3633

3734
@Override
3835
public synchronized void init(ProcessingEnvironment processingEnv) {
3936
super.init(processingEnv);
40-
try {
41-
resource = processingEnv.getFiler().createResource(StandardLocation.CLASS_OUTPUT, "", CONTROLLERS_RESOURCE_PATH);
42-
} catch (IOException e) {
43-
throw new RuntimeException(e);
44-
}
45-
try {
46-
printWriter = new PrintWriter(resource.openOutputStream());
47-
} catch (IOException e) {
48-
throw new RuntimeException(e);
49-
}
37+
controllersResourceWriter = new ControllersResourceWriter(processingEnv);
38+
controllersResourceWriter.loadExistingMappings();
5039
}
5140

5241
@Override
@@ -57,15 +46,17 @@ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment
5746
= roundEnv.getElementsAnnotatedWith(annotation);
5847
annotatedElements.stream().filter(element -> element.getKind().equals(ElementKind.CLASS))
5948
.map(e -> (TypeElement) e)
60-
.forEach(e -> this.generateDoneableClass(e, printWriter));
49+
.forEach(e -> this.generateDoneableClass(e));
6150
}
6251
} finally {
63-
printWriter.close();
52+
if (roundEnv.processingOver()) {
53+
controllersResourceWriter.flush();
54+
}
6455
}
6556
return true;
6657
}
6758

68-
private void generateDoneableClass(TypeElement controllerClassSymbol, PrintWriter printWriter) {
59+
private void generateDoneableClass(TypeElement controllerClassSymbol) {
6960
try {
7061
final TypeMirror resourceType = findResourceType(controllerClassSymbol);
7162

@@ -84,14 +75,14 @@ private void generateDoneableClass(TypeElement controllerClassSymbol, PrintWrite
8475
destinationClassFileName,
8576
CONTROLLERS_RESOURCE_PATH)
8677
);
87-
printWriter.println(controllerClassSymbol.getQualifiedName() + "," + customResourceType.toString());
78+
controllersResourceWriter.add(controllerClassSymbol.getQualifiedName().toString(), customResourceType.toString());
8879
return;
8980
}
9081
JavaFileObject builderFile = processingEnv.getFiler()
9182
.createSourceFile(destinationClassFileName);
9283

9384
try (PrintWriter out = new PrintWriter(builderFile.openWriter())) {
94-
printWriter.println(controllerClassSymbol.getQualifiedName() + "," + customResourceType.toString());
85+
controllersResourceWriter.add(controllerClassSymbol.getQualifiedName().toString(), customResourceType.toString());
9586
final MethodSpec constructor = MethodSpec.constructorBuilder()
9687
.addModifiers(Modifier.PUBLIC)
9788
.addParameter(customResourceType, "resource")
@@ -125,7 +116,6 @@ private TypeMirror findResourceType(TypeElement controllerClassSymbol) throws Ex
125116
)
126117
.findFirst()
127118
.orElseThrow(() -> new Exception("ResourceController is not implemented by " + controllerClassSymbol.toString()));
128-
129119
return controllerType.getTypeArguments().get(0);
130120
} catch (Exception e) {
131121
e.printStackTrace();

0 commit comments

Comments
 (0)