Skip to content

Commit 6b653d8

Browse files
Conner WardConner Ward
authored andcommitted
REST service can now handle parameters that require any converter
1 parent b656329 commit 6b653d8

File tree

5 files changed

+22
-14
lines changed

5 files changed

+22
-14
lines changed

services/rest/pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -134,11 +134,6 @@
134134
<version>1.9.5</version>
135135
<scope>test</scope>
136136
</dependency>
137-
<dependency>
138-
<groupId>mil.nga.giat</groupId>
139-
<artifactId>geowave-adapter-vector</artifactId>
140-
<version>${project.version}</version>
141-
</dependency>
142137
</dependencies>
143138
<profiles>
144139
<profile>

services/rest/src/main/java/mil/nga/giat/geowave/service/rest/GeoWaveOperationServiceWrapper.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import java.io.File;
44
import java.io.IOException;
5+
import java.lang.reflect.Field;
56
import java.util.Arrays;
67
import java.util.List;
78
import java.util.UUID;
@@ -30,7 +31,10 @@
3031
import org.slf4j.Logger;
3132
import org.slf4j.LoggerFactory;
3233

34+
import com.beust.jcommander.IStringConverter;
35+
import com.beust.jcommander.Parameter;
3336
import com.beust.jcommander.ParameterException;
37+
import com.beust.jcommander.converters.NoConverter;
3438

3539
import mil.nga.giat.geowave.core.cli.api.OperationParams;
3640
import mil.nga.giat.geowave.core.cli.api.ServiceEnabledCommand;
@@ -40,14 +44,13 @@
4044
import mil.nga.giat.geowave.core.cli.operations.config.options.ConfigOptions;
4145
import mil.nga.giat.geowave.core.cli.parser.ManualOperationParams;
4246
import mil.nga.giat.geowave.service.rest.exceptions.MissingArgumentException;
47+
import mil.nga.giat.geowave.service.rest.field.ParameterRestFieldValue;
4348
import mil.nga.giat.geowave.service.rest.field.RequestParameters;
4449
import mil.nga.giat.geowave.service.rest.field.RequestParametersForm;
4550
import mil.nga.giat.geowave.service.rest.field.RequestParametersJson;
4651
import mil.nga.giat.geowave.service.rest.field.RestFieldFactory;
4752
import mil.nga.giat.geowave.service.rest.field.RestFieldValue;
4853
import mil.nga.giat.geowave.service.rest.operations.RestOperationStatusMessage;
49-
import mil.nga.giat.geowave.adapter.vector.ingest.CQLFilterOptionProvider;
50-
import mil.nga.giat.geowave.adapter.vector.ingest.CQLFilterOptionProvider.ConvertCQLStrToFilterConverter;
5154

5255
public class GeoWaveOperationServiceWrapper<T> extends
5356
ServerResource
@@ -231,8 +234,14 @@ else if (Enum.class.isAssignableFrom(type)) {
231234
(Class<Enum>) type,
232235
strValue.toUpperCase());
233236
}
234-
else if (CQLFilterOptionProvider.FilterParameter.class.isAssignableFrom(type)) {
235-
objValue = new ConvertCQLStrToFilterConverter().convert(strValue);
237+
else if (ParameterRestFieldValue.class.isAssignableFrom(f.getClass())) {
238+
Field field = ((ParameterRestFieldValue) f).getField();
239+
if (field.isAnnotationPresent(Parameter.class)){
240+
Class<? extends IStringConverter<?>> converter = field.getAnnotation(Parameter.class).converter();
241+
if (converter != NoConverter.class) {
242+
objValue = converter.newInstance().convert(strValue);
243+
}
244+
}
236245
}
237246
else {
238247
throw new RuntimeException(

services/rest/src/main/java/mil/nga/giat/geowave/service/rest/field/ParameterRestField.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,8 @@ public String getDescription() {
3636
public boolean isRequired() {
3737
return parameter.required();
3838
}
39+
40+
public Field getField() {
41+
return this.field;
42+
}
3943
}

services/rest/src/main/java/mil/nga/giat/geowave/service/rest/field/ParameterRestFieldValue.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,5 +33,9 @@ public void setValue(
3333
instance,
3434
value);
3535
}
36+
37+
public Field getField() {
38+
return super.getField();
39+
}
3640

3741
}

test/src/test/java/mil/nga/giat/geowave/test/services/IngestIT.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -262,11 +262,7 @@ public void listplugins() {
262262
}
263263

264264
/**
265-
* Currently no matter what the input, a 201 is returned from localToGW. The
266-
* only way to tell if failed or not based on input is through the
267-
* baseServiceClient.
268-
*
269-
* I also think that all ingest commands (except for listplugins()) should
265+
* I think that all ingest commands (except for listplugins()) should
270266
* return a 202 status instead of a 201, especially since all errors are
271267
* discovered by the baseServiceClient and not the ingestServiceClient.
272268
* Nothing is created directly from the ingestClient call as it simply kicks

0 commit comments

Comments
 (0)