Skip to content

Commit 8610d6f

Browse files
committed
wrap up rest endpoint implementations
1 parent df7a9a1 commit 8610d6f

File tree

3 files changed

+190
-6
lines changed

3 files changed

+190
-6
lines changed

src/main/java/org/sourcelab/kafka/connect/apiclient/ApiClient.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.sourcelab.kafka.connect.apiclient.request.delete.DeleteConnector;
99
import org.sourcelab.kafka.connect.apiclient.request.dto.ConnectorPlugin;
1010
import org.sourcelab.kafka.connect.apiclient.request.dto.ConnectorPluginConfigDefinition;
11+
import org.sourcelab.kafka.connect.apiclient.request.dto.ConnectorPluginConfigValidationResults;
1112
import org.sourcelab.kafka.connect.apiclient.request.dto.ConnectorStatus;
1213
import org.sourcelab.kafka.connect.apiclient.request.dto.NewConnectorDefinition;
1314
import org.sourcelab.kafka.connect.apiclient.request.dto.Task;
@@ -253,7 +254,7 @@ public Collection<ConnectorPlugin> getConnectorPlugins() {
253254
* @param configDefinition Defines the configuration to validate.
254255
* @return Results of the validation.
255256
*/
256-
public String validateConnectorPluginConfig(final ConnectorPluginConfigDefinition configDefinition) {
257+
public ConnectorPluginConfigValidationResults validateConnectorPluginConfig(final ConnectorPluginConfigDefinition configDefinition) {
257258
return submitRequest(
258259
new PutConnectorPluginConfigValidate(configDefinition.getName(), configDefinition.getConfig())
259260
);
Lines changed: 184 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,184 @@
1+
package org.sourcelab.kafka.connect.apiclient.request.dto;
2+
3+
import java.util.ArrayList;
4+
import java.util.Collection;
5+
6+
/**
7+
* Represents results from the Connector Plugin Config Validation API end point.
8+
*/
9+
public final class ConnectorPluginConfigValidationResults {
10+
private String name;
11+
private int errorCount;
12+
private Collection<String> groups = new ArrayList<>();
13+
private Collection<Config> configs = new ArrayList<>();
14+
15+
public String getName() {
16+
return name;
17+
}
18+
19+
public int getErrorCount() {
20+
return errorCount;
21+
}
22+
23+
public Collection<String> getGroups() {
24+
return groups;
25+
}
26+
27+
public Collection<Config> getConfigs() {
28+
return configs;
29+
}
30+
31+
@Override
32+
public String toString() {
33+
return "ConnectorPluginConfigValidationResults{"
34+
+ "name='" + name + '\''
35+
+ ", errorCount=" + errorCount
36+
+ ", groups=" + groups
37+
+ ", configs=" + configs
38+
+ '}';
39+
}
40+
41+
/**
42+
* Defines a config item.
43+
*/
44+
private final static class Config {
45+
private Definition definition;
46+
private Value value;
47+
48+
public Definition getDefinition() {
49+
return definition;
50+
}
51+
52+
public Value getValue() {
53+
return value;
54+
}
55+
56+
@Override
57+
public String toString() {
58+
return "Config{"
59+
+ "definition=" + definition
60+
+ ", value=" + value
61+
+ '}';
62+
}
63+
64+
/**
65+
* Represents the Definition of a config item.
66+
*/
67+
private final static class Definition {
68+
private String name;
69+
private String type;
70+
private boolean required = false;
71+
private String defaultValue;
72+
private String importance;
73+
private String documentation;
74+
private String group;
75+
private String width;
76+
private String displayName;
77+
private Collection<String> dependents = new ArrayList<>();
78+
private int order;
79+
80+
public String getName() {
81+
return name;
82+
}
83+
84+
public String getType() {
85+
return type;
86+
}
87+
88+
public boolean isRequired() {
89+
return required;
90+
}
91+
92+
public String getDefaultValue() {
93+
return defaultValue;
94+
}
95+
96+
public String getImportance() {
97+
return importance;
98+
}
99+
100+
public String getDocumentation() {
101+
return documentation;
102+
}
103+
104+
public String getGroup() {
105+
return group;
106+
}
107+
108+
public String getWidth() {
109+
return width;
110+
}
111+
112+
public String getDisplayName() {
113+
return displayName;
114+
}
115+
116+
public Collection<String> getDependents() {
117+
return dependents;
118+
}
119+
120+
public int getOrder() {
121+
return order;
122+
}
123+
124+
@Override
125+
public String toString() {
126+
return "Definition{"
127+
+ "name='" + name + '\''
128+
+ ", type='" + type + '\''
129+
+ ", required=" + required
130+
+ ", defaultValue='" + defaultValue + '\''
131+
+ ", importance='" + importance + '\''
132+
+ ", documentation='" + documentation + '\''
133+
+ ", group='" + group + '\''
134+
+ ", width='" + width + '\''
135+
+ ", displayName='" + displayName + '\''
136+
+ ", dependents=" + dependents
137+
+ ", order=" + order
138+
+ '}';
139+
}
140+
}
141+
142+
/**
143+
* Defines a config item value.
144+
*/
145+
private final static class Value {
146+
private String name;
147+
private String value;
148+
private Collection<String> recommendedValues = new ArrayList<>();
149+
private Collection<String> errors = new ArrayList<>();
150+
private boolean visible = true;
151+
152+
public String getName() {
153+
return name;
154+
}
155+
156+
public String getValue() {
157+
return value;
158+
}
159+
160+
public Collection<String> getRecommendedValues() {
161+
return recommendedValues;
162+
}
163+
164+
public Collection<String> getErrors() {
165+
return errors;
166+
}
167+
168+
public boolean isVisible() {
169+
return visible;
170+
}
171+
172+
@Override
173+
public String toString() {
174+
return "Value{"
175+
+ "name='" + name + '\''
176+
+ ", value='" + value + '\''
177+
+ ", recommendedValues=" + recommendedValues
178+
+ ", errors=" + errors
179+
+ ", visible=" + visible
180+
+ '}';
181+
}
182+
}
183+
}
184+
}

src/main/java/org/sourcelab/kafka/connect/apiclient/request/put/PutConnectorPluginConfigValidate.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33
import com.sun.xml.internal.rngom.util.Uri;
44
import org.sourcelab.kafka.connect.apiclient.request.JacksonFactory;
5-
import org.sourcelab.kafka.connect.apiclient.request.dto.ConnectorDefinition;
5+
import org.sourcelab.kafka.connect.apiclient.request.dto.ConnectorPluginConfigValidationResults;
66

77
import java.io.IOException;
88
import java.util.Collections;
99
import java.util.HashMap;
1010
import java.util.Map;
1111

12-
public class PutConnectorPluginConfigValidate implements PutRequest<String> {
12+
public class PutConnectorPluginConfigValidate implements PutRequest<ConnectorPluginConfigValidationResults> {
1313
private final String connectorPluginName;
1414
private final Map<String, String> config;
1515

@@ -35,8 +35,7 @@ public Object getRequestBody() {
3535
}
3636

3737
@Override
38-
public String parseResponse(final String responseStr) throws IOException {
39-
//return JacksonFactory.newInstance().readValue(responseStr, ConnectorDefinition.class);
40-
return responseStr;
38+
public ConnectorPluginConfigValidationResults parseResponse(final String responseStr) throws IOException {
39+
return JacksonFactory.newInstance().readValue(responseStr, ConnectorPluginConfigValidationResults.class);
4140
}
4241
}

0 commit comments

Comments
 (0)