This is an automated email from the ASF dual-hosted git repository.
cgivre pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/drill.git
The following commit(s) were added to refs/heads/master by this push:
new b2e2653196 DRILL-8243: Move JSON Config Options Out of HTTP Plugin
(#2570)
b2e2653196 is described below
commit b2e2653196adf52b7bd48c2a087d141452aa0a3c
Author: Charles S. Givre <[email protected]>
AuthorDate: Tue Jun 7 09:53:09 2022 -0400
DRILL-8243: Move JSON Config Options Out of HTTP Plugin (#2570)
---
.../drill/exec/store/http/HttpJsonOptions.java | 126 +++------------------
.../store/easy/json/config/JsonConfigOptions.java | 94 ++++++++-------
2 files changed, 62 insertions(+), 158 deletions(-)
diff --git
a/contrib/storage-http/src/main/java/org/apache/drill/exec/store/http/HttpJsonOptions.java
b/contrib/storage-http/src/main/java/org/apache/drill/exec/store/http/HttpJsonOptions.java
index c8274e1921..849ee91119 100644
---
a/contrib/storage-http/src/main/java/org/apache/drill/exec/store/http/HttpJsonOptions.java
+++
b/contrib/storage-http/src/main/java/org/apache/drill/exec/store/http/HttpJsonOptions.java
@@ -18,50 +18,24 @@
package org.apache.drill.exec.store.http;
-import com.fasterxml.jackson.annotation.JsonIgnore;
+
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
import org.apache.drill.common.PlanStringBuilder;
import org.apache.drill.exec.record.metadata.TupleMetadata;
-import org.apache.drill.exec.server.options.OptionSet;
-import org.apache.drill.exec.store.easy.json.loader.JsonLoaderOptions;
-
+import org.apache.drill.exec.store.easy.json.config.JsonConfigOptions;
import java.util.Objects;
@JsonInclude(JsonInclude.Include.NON_DEFAULT)
@JsonDeserialize(builder = HttpJsonOptions.HttpJsonOptionsBuilder.class)
-public class HttpJsonOptions {
-
- @JsonProperty
- private final Boolean allowNanInf;
-
- @JsonProperty
- private final Boolean allTextMode;
-
- @JsonProperty
- private final Boolean readNumbersAsDouble;
-
- @JsonProperty
- private final Boolean enableEscapeAnyChar;
-
- @JsonProperty
- private final Boolean skipMalformedRecords;
-
- @JsonProperty
- private final Boolean skipMalformedDocument;
-
+public class HttpJsonOptions extends JsonConfigOptions {
@JsonProperty
private final TupleMetadata schema;
HttpJsonOptions(HttpJsonOptionsBuilder builder) {
- this.allowNanInf = builder.allowNanInf;
- this.allTextMode = builder.allTextMode;
- this.readNumbersAsDouble = builder.readNumbersAsDouble;
- this.enableEscapeAnyChar = builder.enableEscapeAnyChar;
- this.skipMalformedRecords = builder.skipMalformedRecords;
- this.skipMalformedDocument = builder.skipMalformedDocument;
+ super(builder.allowNanInf, builder.allTextMode,
builder.readNumbersAsDouble, builder.enableEscapeAnyChar,
builder.skipMalformedDocument, builder.skipMalformedRecords);
this.schema = builder.schema;
}
@@ -69,60 +43,6 @@ public class HttpJsonOptions {
return new HttpJsonOptionsBuilder();
}
- @JsonIgnore
- public JsonLoaderOptions getJsonOptions(OptionSet optionSet) {
- JsonLoaderOptions options = new JsonLoaderOptions(optionSet);
- if (allowNanInf != null) {
- options.allowNanInf = allowNanInf;
- }
- if (allTextMode != null) {
- options.allTextMode = allTextMode;
- }
- if (readNumbersAsDouble != null) {
- options.readNumbersAsDouble = readNumbersAsDouble;
- }
- if (enableEscapeAnyChar != null) {
- options.enableEscapeAnyChar = enableEscapeAnyChar;
- }
- if (skipMalformedRecords != null) {
- options.skipMalformedRecords = skipMalformedRecords;
- }
- if (skipMalformedDocument != null) {
- options.skipMalformedDocument = skipMalformedDocument;
- }
-
- return options;
- }
-
- @JsonProperty("allowNanInf")
- public Boolean allowNanInf() {
- return this.allowNanInf;
- }
-
- @JsonProperty("allTextMode")
- public Boolean allTextMode() {
- return this.allTextMode;
- }
-
- @JsonProperty("readNumbersAsDouble")
- public Boolean readNumbersAsDouble() {
- return this.readNumbersAsDouble;
- }
-
- @JsonProperty("enableEscapeAnyChar")
- public Boolean enableEscapeAnyChar() {
- return this.enableEscapeAnyChar;
- }
-
- @JsonProperty("skipMalformedRecords")
- public Boolean skipMalformedRecords() {
- return this.skipMalformedRecords;
- }
-
- @JsonProperty("skipMalformedDocument")
- public Boolean skipMalformedDocument() {
- return this.skipMalformedDocument;
- }
@JsonProperty("schema")
public TupleMetadata schema() {
@@ -166,53 +86,41 @@ public class HttpJsonOptions {
}
@JsonPOJOBuilder(withPrefix = "")
- public static class HttpJsonOptionsBuilder {
- private Boolean allowNanInf;
-
- private Boolean allTextMode;
-
- private Boolean readNumbersAsDouble;
-
- private Boolean enableEscapeAnyChar;
-
- private Boolean skipMalformedRecords;
-
- private Boolean skipMalformedDocument;
-
+ public static class HttpJsonOptionsBuilder extends JsonConfigOptionsBuilder {
private TupleMetadata schema;
- public HttpJsonOptionsBuilder allowNanInf(Boolean allowNanInf) {
- this.allowNanInf = allowNanInf;
+ public HttpJsonOptionsBuilder schema(TupleMetadata schema) {
+ this.schema = schema;
return this;
}
public HttpJsonOptionsBuilder allTextMode(Boolean allTextMode) {
- this.allTextMode = allTextMode;
+ super.allTextMode(allTextMode);
return this;
}
- public HttpJsonOptionsBuilder readNumbersAsDouble(Boolean
readNumbersAsDouble) {
- this.readNumbersAsDouble = readNumbersAsDouble;
+ public HttpJsonOptionsBuilder allowNanInf(Boolean allowNanInf) {
+ super.allowNanInf(allowNanInf);
return this;
}
public HttpJsonOptionsBuilder enableEscapeAnyChar(Boolean
enableEscapeAnyChar) {
- this.enableEscapeAnyChar = enableEscapeAnyChar;
+ super.enableEscapeAnyChar(enableEscapeAnyChar);
return this;
}
- public HttpJsonOptionsBuilder skipMalformedRecords(Boolean
skipMalformedRecords) {
- this.skipMalformedRecords = skipMalformedRecords;
+ public HttpJsonOptionsBuilder readNumbersAsDouble(Boolean
readNumbersAsDouble) {
+ super.readNumbersAsDouble(readNumbersAsDouble);
return this;
}
- public HttpJsonOptionsBuilder skipMalformedDocument(Boolean
skipMalformedDocument) {
- this.skipMalformedDocument = skipMalformedDocument;
+ public HttpJsonOptionsBuilder skipMalformedRecords(Boolean
skipMalformedRecords) {
+ super.skipMalformedRecords(skipMalformedRecords);
return this;
}
- public HttpJsonOptionsBuilder schema(TupleMetadata schema) {
- this.schema = schema;
+ public HttpJsonOptionsBuilder skipMalformedDocument(Boolean
skipMalformedDocument) {
+ super.skipMalformedDocument(skipMalformedDocument);
return this;
}
diff --git
a/contrib/storage-http/src/main/java/org/apache/drill/exec/store/http/HttpJsonOptions.java
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/json/config/JsonConfigOptions.java
similarity index 69%
copy from
contrib/storage-http/src/main/java/org/apache/drill/exec/store/http/HttpJsonOptions.java
copy to
exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/json/config/JsonConfigOptions.java
index c8274e1921..14b8eea9b9 100644
---
a/contrib/storage-http/src/main/java/org/apache/drill/exec/store/http/HttpJsonOptions.java
+++
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/json/config/JsonConfigOptions.java
@@ -16,7 +16,7 @@
* limitations under the License.
*/
-package org.apache.drill.exec.store.http;
+package org.apache.drill.exec.store.easy.json.config;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
@@ -24,49 +24,58 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
import org.apache.drill.common.PlanStringBuilder;
-import org.apache.drill.exec.record.metadata.TupleMetadata;
import org.apache.drill.exec.server.options.OptionSet;
import org.apache.drill.exec.store.easy.json.loader.JsonLoaderOptions;
import java.util.Objects;
@JsonInclude(JsonInclude.Include.NON_DEFAULT)
-@JsonDeserialize(builder = HttpJsonOptions.HttpJsonOptionsBuilder.class)
-public class HttpJsonOptions {
+@JsonDeserialize(builder = JsonConfigOptions.JsonConfigOptionsBuilder.class)
+public class JsonConfigOptions {
@JsonProperty
- private final Boolean allowNanInf;
+ protected final Boolean allowNanInf;
@JsonProperty
- private final Boolean allTextMode;
+ protected final Boolean allTextMode;
@JsonProperty
- private final Boolean readNumbersAsDouble;
+ protected final Boolean readNumbersAsDouble;
@JsonProperty
- private final Boolean enableEscapeAnyChar;
+ protected final Boolean enableEscapeAnyChar;
@JsonProperty
- private final Boolean skipMalformedRecords;
+ protected final Boolean skipMalformedRecords;
@JsonProperty
- private final Boolean skipMalformedDocument;
-
- @JsonProperty
- private final TupleMetadata schema;
+ protected final Boolean skipMalformedDocument;
+
+ public JsonConfigOptions(Boolean allowNanInf,
+ Boolean allTextMode,
+ Boolean readNumbersAsDouble,
+ Boolean enableEscapeAnyChar,
+ Boolean skipMalformedDocument,
+ Boolean skipMalformedRecords) {
+ this.allowNanInf = allowNanInf;
+ this.allTextMode = allTextMode;
+ this.readNumbersAsDouble = readNumbersAsDouble;
+ this.enableEscapeAnyChar = enableEscapeAnyChar;
+ this.skipMalformedDocument = skipMalformedDocument;
+ this.skipMalformedRecords = skipMalformedRecords;
+ }
- HttpJsonOptions(HttpJsonOptionsBuilder builder) {
+ JsonConfigOptions(JsonConfigOptionsBuilder builder) {
this.allowNanInf = builder.allowNanInf;
this.allTextMode = builder.allTextMode;
this.readNumbersAsDouble = builder.readNumbersAsDouble;
this.enableEscapeAnyChar = builder.enableEscapeAnyChar;
this.skipMalformedRecords = builder.skipMalformedRecords;
this.skipMalformedDocument = builder.skipMalformedDocument;
- this.schema = builder.schema;
}
- public static HttpJsonOptionsBuilder builder() {
- return new HttpJsonOptionsBuilder();
+ public static JsonConfigOptionsBuilder builder() {
+ return new JsonConfigOptionsBuilder();
}
@JsonIgnore
@@ -124,11 +133,6 @@ public class HttpJsonOptions {
return this.skipMalformedDocument;
}
- @JsonProperty("schema")
- public TupleMetadata schema() {
- return this.schema;
- }
-
@Override
public boolean equals(Object o) {
if (this == o) {
@@ -137,19 +141,18 @@ public class HttpJsonOptions {
if (o == null || getClass() != o.getClass()) {
return false;
}
- HttpJsonOptions that = (HttpJsonOptions) o;
+ JsonConfigOptions that = (JsonConfigOptions) o;
return Objects.equals(allowNanInf, that.allowNanInf)
&& Objects.equals(allTextMode, that.allTextMode)
&& Objects.equals(readNumbersAsDouble, that.readNumbersAsDouble)
&& Objects.equals(enableEscapeAnyChar, that.enableEscapeAnyChar)
&& Objects.equals(skipMalformedDocument, that.skipMalformedDocument)
- && Objects.equals(skipMalformedRecords, that.skipMalformedRecords)
- && Objects.equals(schema, that.schema);
+ && Objects.equals(skipMalformedRecords, that.skipMalformedRecords);
}
@Override
public int hashCode() {
- return Objects.hash(allowNanInf, allTextMode, readNumbersAsDouble,
enableEscapeAnyChar, skipMalformedDocument, skipMalformedRecords, schema);
+ return Objects.hash(allowNanInf, allTextMode, readNumbersAsDouble,
enableEscapeAnyChar, skipMalformedDocument, skipMalformedRecords);
}
@Override
@@ -161,63 +164,56 @@ public class HttpJsonOptions {
.field("enableEscapeAnyChar", enableEscapeAnyChar)
.field("skipMalformedRecords", skipMalformedRecords)
.field("skipMalformedDocument", skipMalformedDocument)
- .field("schema", schema)
.toString();
}
@JsonPOJOBuilder(withPrefix = "")
- public static class HttpJsonOptionsBuilder {
- private Boolean allowNanInf;
+ public static class JsonConfigOptionsBuilder {
+ public Boolean allowNanInf;
- private Boolean allTextMode;
+ public Boolean allTextMode;
- private Boolean readNumbersAsDouble;
+ public Boolean readNumbersAsDouble;
- private Boolean enableEscapeAnyChar;
+ public Boolean enableEscapeAnyChar;
- private Boolean skipMalformedRecords;
+ public Boolean skipMalformedRecords;
- private Boolean skipMalformedDocument;
+ public Boolean skipMalformedDocument;
- private TupleMetadata schema;
-
- public HttpJsonOptionsBuilder allowNanInf(Boolean allowNanInf) {
+ public JsonConfigOptionsBuilder allowNanInf(Boolean allowNanInf) {
this.allowNanInf = allowNanInf;
return this;
}
- public HttpJsonOptionsBuilder allTextMode(Boolean allTextMode) {
+ public JsonConfigOptionsBuilder allTextMode(Boolean allTextMode) {
this.allTextMode = allTextMode;
return this;
}
- public HttpJsonOptionsBuilder readNumbersAsDouble(Boolean
readNumbersAsDouble) {
+ public JsonConfigOptionsBuilder readNumbersAsDouble(Boolean
readNumbersAsDouble) {
this.readNumbersAsDouble = readNumbersAsDouble;
return this;
}
- public HttpJsonOptionsBuilder enableEscapeAnyChar(Boolean
enableEscapeAnyChar) {
+ public JsonConfigOptionsBuilder enableEscapeAnyChar(Boolean
enableEscapeAnyChar) {
this.enableEscapeAnyChar = enableEscapeAnyChar;
return this;
}
- public HttpJsonOptionsBuilder skipMalformedRecords(Boolean
skipMalformedRecords) {
+ public JsonConfigOptionsBuilder skipMalformedRecords(Boolean
skipMalformedRecords) {
this.skipMalformedRecords = skipMalformedRecords;
return this;
}
- public HttpJsonOptionsBuilder skipMalformedDocument(Boolean
skipMalformedDocument) {
+ public JsonConfigOptionsBuilder skipMalformedDocument(Boolean
skipMalformedDocument) {
this.skipMalformedDocument = skipMalformedDocument;
return this;
}
- public HttpJsonOptionsBuilder schema(TupleMetadata schema) {
- this.schema = schema;
- return this;
- }
-
- public HttpJsonOptions build() {
- return new HttpJsonOptions(this);
+ public JsonConfigOptions build() {
+ return new JsonConfigOptions(this);
}
}
}
+