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);
     }
   }
 }
+

Reply via email to