11
11
import com .purbon .kafka .topology .api .mds .MDSApiClientBuilder ;
12
12
import com .purbon .kafka .topology .audit .Auditor ;
13
13
import com .purbon .kafka .topology .exceptions .ValidationException ;
14
+ import com .purbon .kafka .topology .model .Plan ;
14
15
import com .purbon .kafka .topology .model .Topology ;
15
16
import com .purbon .kafka .topology .schemas .SchemaRegistryManager ;
16
17
import com .purbon .kafka .topology .serviceAccounts .VoidPrincipalProvider ;
35
36
import org .apache .logging .log4j .LogManager ;
36
37
import org .apache .logging .log4j .Logger ;
37
38
39
+ /** JulieOps Main Controller class */
38
40
@ Getter
39
41
@ Setter
40
42
public class JulieOps implements AutoCloseable {
@@ -51,30 +53,15 @@ public class JulieOps implements AutoCloseable {
51
53
private final Configuration config ;
52
54
private final PrintStream outputStream ;
53
55
54
- private JulieOps (
55
- Map <String , Topology > topologies ,
56
- Configuration config ,
57
- TopicManager topicManager ,
58
- AccessControlManager accessControlManager ,
59
- PrincipalUpdateManager principalUpdateManager ,
60
- PrincipalDeleteManager principalDeleteManager ,
61
- KafkaConnectArtefactManager connectorManager ,
62
- KSqlArtefactManager kSqlArtefactManager ) {
63
- this .topologies = topologies ;
64
- this .config = config ;
65
- this .topicManager = topicManager ;
66
- this .accessControlManager = accessControlManager ;
67
- this .principalUpdateManager = principalUpdateManager ;
68
- this .principalDeleteManager = principalDeleteManager ;
69
- this .connectorManager = connectorManager ;
70
- this .kSqlArtefactManager = kSqlArtefactManager ;
71
- this .outputStream = System .out ;
72
- }
73
-
74
- public static JulieOps build (String topologyFile , Map <String , String > config ) throws Exception {
75
- return build (topologyFile , "default" , config );
76
- }
77
-
56
+ /**
57
+ * Builder method for the controller
58
+ *
59
+ * @param topologyFile A topology file or directory
60
+ * @param plansFile A file describing the plans to be used with the application
61
+ * @param config A set of configuration properties for the application
62
+ * @return JulieOps
63
+ * @throws Exception Any error detected during the building process
64
+ */
78
65
public static JulieOps build (String topologyFile , String plansFile , Map <String , String > config )
79
66
throws Exception {
80
67
@@ -98,7 +85,20 @@ public static JulieOps build(String topologyFile, String plansFile, Map<String,
98
85
principalProviderFactory .get ());
99
86
}
100
87
101
- public static JulieOps build (
88
+ /**
89
+ * Simplified builder method, only used for tests
90
+ *
91
+ * @param topologyFileOrDir A topology file with the desired state description, could be single
92
+ * file or a directory
93
+ * @param config A set of configuration properties for the application
94
+ * @param adminClient And instance of TopologyBuilderAdminClient to be used for admin ops by
95
+ * JulieOps
96
+ * @param accessControlProvider An instance of a valid provider for access control rules
97
+ * @param bindingsBuilderProvider An instance of a valid provider for building bindings maps
98
+ * @return JulieOps
99
+ * @throws Exception Any error detected during the building process
100
+ */
101
+ static JulieOps build (
102
102
String topologyFileOrDir ,
103
103
Configuration config ,
104
104
TopologyBuilderAdminClient adminClient ,
@@ -107,7 +107,7 @@ public static JulieOps build(
107
107
throws Exception {
108
108
return build (
109
109
topologyFileOrDir ,
110
- "default" ,
110
+ Plan . DEFAULT_VALUE ,
111
111
config ,
112
112
adminClient ,
113
113
accessControlProvider ,
@@ -127,7 +127,7 @@ public static JulieOps build(
127
127
throws Exception {
128
128
129
129
Map <String , Topology > topologies ;
130
- if (plansFile .equals ("default" )) {
130
+ if (plansFile .equals (Plan . DEFAULT_VALUE )) {
131
131
topologies = TopologyObjectBuilder .build (topologyFileOrDir , config );
132
132
} else {
133
133
topologies = TopologyObjectBuilder .build (topologyFileOrDir , plansFile , config );
@@ -190,6 +190,26 @@ public static JulieOps build(
190
190
kSqlArtefactManager );
191
191
}
192
192
193
+ private JulieOps (
194
+ Map <String , Topology > topologies ,
195
+ Configuration config ,
196
+ TopicManager topicManager ,
197
+ AccessControlManager accessControlManager ,
198
+ PrincipalUpdateManager principalUpdateManager ,
199
+ PrincipalDeleteManager principalDeleteManager ,
200
+ KafkaConnectArtefactManager connectorManager ,
201
+ KSqlArtefactManager kSqlArtefactManager ) {
202
+ this .topologies = topologies ;
203
+ this .config = config ;
204
+ this .topicManager = topicManager ;
205
+ this .accessControlManager = accessControlManager ;
206
+ this .principalUpdateManager = principalUpdateManager ;
207
+ this .principalDeleteManager = principalDeleteManager ;
208
+ this .connectorManager = connectorManager ;
209
+ this .kSqlArtefactManager = kSqlArtefactManager ;
210
+ this .outputStream = System .out ;
211
+ }
212
+
193
213
void run (BackendController backendController , PrintStream printStream , Auditor auditor )
194
214
throws IOException {
195
215
ExecutionPlan plan = ExecutionPlan .init (backendController , printStream , auditor );
0 commit comments