You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by rm...@apache.org on 2016/11/13 18:51:17 UTC

svn commit: r1769537 - in /openwebbeans/meecrowave/trunk: ./ meecrowave-arquillian/src/main/java/org/apache/meecrowave/arquillian/ meecrowave-core/src/main/java/org/apache/meecrowave/ meecrowave-core/src/main/java/org/apache/meecrowave/cxf/ meecrowave-...

Author: rmannibucau
Date: Sun Nov 13 18:51:16 2016
New Revision: 1769537

URL: http://svn.apache.org/viewvc?rev=1769537&view=rev
Log:
adding jsonp/jsonb configuration when used as jaxrs provider by default

Removed:
    openwebbeans/meecrowave/trunk/meecrowave.iml
Modified:
    openwebbeans/meecrowave/trunk/meecrowave-arquillian/src/main/java/org/apache/meecrowave/arquillian/MeecrowaveConfiguration.java
    openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/Meecrowave.java
    openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/cxf/MeecrowaveBus.java
    openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveExtension.java
    openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveTask.java
    openwebbeans/meecrowave/trunk/meecrowave-maven-plugin/src/main/java/org/apache/meecrowave/maven/MeecrowaveRunMojo.java

Modified: openwebbeans/meecrowave/trunk/meecrowave-arquillian/src/main/java/org/apache/meecrowave/arquillian/MeecrowaveConfiguration.java
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-arquillian/src/main/java/org/apache/meecrowave/arquillian/MeecrowaveConfiguration.java?rev=1769537&r1=1769536&r2=1769537&view=diff
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-arquillian/src/main/java/org/apache/meecrowave/arquillian/MeecrowaveConfiguration.java (original)
+++ openwebbeans/meecrowave/trunk/meecrowave-arquillian/src/main/java/org/apache/meecrowave/arquillian/MeecrowaveConfiguration.java Sun Nov 13 18:51:16 2016
@@ -81,6 +81,19 @@ public class MeecrowaveConfiguration imp
     private String jaxrsDefaultProviders;
     private String sharedLibraries;
     private boolean useLog4j2JulLogManager = System.getProperty("java.util.logging.manager") == null;
+    private String jsonpBufferStrategy = "QUEUE";
+    private int jsonpMaxStringLen = 10 * 1024 * 1024;
+    private int jsonpMaxReadBufferLen = 64 * 1024;
+    private int jsonpMaxWriteBufferLen = 64 * 1024;
+    private boolean jsonpSupportsComment = false;
+    private boolean jsonpPrettify = false;
+    private String jsonbEncoding = "UTF-8";
+    private boolean jsonbNulls = false;
+    private boolean jsonbIJson = false;
+    private boolean jsonbPrettify = false;
+    private String jsonbBinaryStrategy;
+    private String jsonbNamingStrategy;
+    private String jsonbOrderStrategy;
 
     @Override
     public void validate() throws ConfigurationException {

Modified: openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/Meecrowave.java
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/Meecrowave.java?rev=1769537&r1=1769536&r2=1769537&view=diff
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/Meecrowave.java (original)
+++ openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/Meecrowave.java Sun Nov 13 18:51:16 2016
@@ -37,6 +37,7 @@ import org.apache.catalina.startup.Tomca
 import org.apache.commons.lang3.text.StrLookup;
 import org.apache.commons.lang3.text.StrSubstitutor;
 import org.apache.coyote.http2.Http2Protocol;
+import org.apache.johnzon.core.BufferStrategy;
 import org.apache.meecrowave.cxf.CxfCdiAutoSetup;
 import org.apache.meecrowave.io.IO;
 import org.apache.meecrowave.logging.jul.Log4j2Logger;
@@ -800,6 +801,45 @@ public class Meecrowave implements AutoC
         @CliOption(name = "jaxrs-log-provider", description = "Should JAX-RS providers be logged")
         private boolean jaxrsLogProviders = false;
 
+        @CliOption(name = "jsonp-buffer-strategy", description = "JSON-P JAX-RS provider buffer strategy (see johnzon)")
+        private String jsonpBufferStrategy = BufferStrategy.QUEUE.name();
+
+        @CliOption(name = "jsonp-max-string-length", description = "JSON-P JAX-RS provider max string limit size (see johnzon)")
+        private int jsonpMaxStringLen = 10 * 1024 * 1024;
+
+        @CliOption(name = "jsonp-read-buffer-length", description = "JSON-P JAX-RS provider read buffer limit size (see johnzon)")
+        private int jsonpMaxReadBufferLen = 64 * 1024;
+
+        @CliOption(name = "jsonp-write-buffer-length", description = "JSON-P JAX-RS provider write buffer limit size (see johnzon)")
+        private int jsonpMaxWriteBufferLen = 64 * 1024;
+
+        @CliOption(name = "jsonp-supports-comment", description = "Should JSON-P JAX-RS provider support comments (see johnzon)")
+        private boolean jsonpSupportsComment = false;
+
+        @CliOption(name = "jsonp-supports-comment", description = "Should JSON-P JAX-RS provider prettify the outputs (see johnzon)")
+        private boolean jsonpPrettify = false;
+
+        @CliOption(name = "jsonb-encoding", description = "Which encoding provider JSON-B should use")
+        private String jsonbEncoding = "UTF-8";
+
+        @CliOption(name = "jsonb-nulls", description = "Should JSON-B provider serialize nulls")
+        private boolean jsonbNulls = false;
+
+        @CliOption(name = "jsonb-ijson", description = "Should JSON-B provider comply to I-JSON")
+        private boolean jsonbIJson = false;
+
+        @CliOption(name = "jsonb-prettify", description = "Should JSON-B provider prettify the output")
+        private boolean jsonbPrettify = false;
+
+        @CliOption(name = "jsonb-binary-strategy", description = "Should JSON-B provider prettify the output")
+        private String jsonbBinaryStrategy;
+
+        @CliOption(name = "jsonb-naming-strategy", description = "Should JSON-B provider prettify the output")
+        private String jsonbNamingStrategy;
+
+        @CliOption(name = "jsonb-order-strategy", description = "Should JSON-B provider prettify the output")
+        private String jsonbOrderStrategy;
+
         @CliOption(name = "logging-global-setup", description = "Should logging be configured to use log4j2 (it is global)")
         private boolean loggingGlobalSetup = true;
 
@@ -835,6 +875,110 @@ public class Meecrowave implements AutoC
             loadFrom("meecrowave.properties");
         }
 
+        public String getJsonpBufferStrategy() {
+            return jsonpBufferStrategy;
+        }
+
+        public String getJsonbEncoding() {
+            return jsonbEncoding;
+        }
+
+        public void setJsonbEncoding(final String jsonbEncoding) {
+            this.jsonbEncoding = jsonbEncoding;
+        }
+
+        public boolean isJsonbNulls() {
+            return jsonbNulls;
+        }
+
+        public void setJsonbNulls(final boolean jsonbNulls) {
+            this.jsonbNulls = jsonbNulls;
+        }
+
+        public boolean isJsonbIJson() {
+            return jsonbIJson;
+        }
+
+        public void setJsonbIJson(final boolean jsonbIJson) {
+            this.jsonbIJson = jsonbIJson;
+        }
+
+        public boolean isJsonbPrettify() {
+            return jsonbPrettify;
+        }
+
+        public void setJsonbPrettify(final boolean jsonbPrettify) {
+            this.jsonbPrettify = jsonbPrettify;
+        }
+
+        public String getJsonbBinaryStrategy() {
+            return jsonbBinaryStrategy;
+        }
+
+        public void setJsonbBinaryStrategy(final String jsonbBinaryStrategy) {
+            this.jsonbBinaryStrategy = jsonbBinaryStrategy;
+        }
+
+        public String getJsonbNamingStrategy() {
+            return jsonbNamingStrategy;
+        }
+
+        public void setJsonbNamingStrategy(final String jsonbNamingStrategy) {
+            this.jsonbNamingStrategy = jsonbNamingStrategy;
+        }
+
+        public String getJsonbOrderStrategy() {
+            return jsonbOrderStrategy;
+        }
+
+        public void setJsonbOrderStrategy(final String jsonbOrderStrategy) {
+            this.jsonbOrderStrategy = jsonbOrderStrategy;
+        }
+
+        public void setJsonpBufferStrategy(final String jsonpBufferStrategy) {
+            this.jsonpBufferStrategy = jsonpBufferStrategy;
+        }
+
+        public int getJsonpMaxStringLen() {
+            return jsonpMaxStringLen;
+        }
+
+        public void setJsonpMaxStringLen(final int jsonpMaxStringLen) {
+            this.jsonpMaxStringLen = jsonpMaxStringLen;
+        }
+
+        public int getJsonpMaxReadBufferLen() {
+            return jsonpMaxReadBufferLen;
+        }
+
+        public void setJsonpMaxReadBufferLen(final int jsonpMaxReadBufferLen) {
+            this.jsonpMaxReadBufferLen = jsonpMaxReadBufferLen;
+        }
+
+        public int getJsonpMaxWriteBufferLen() {
+            return jsonpMaxWriteBufferLen;
+        }
+
+        public void setJsonpMaxWriteBufferLen(final int jsonpMaxWriteBufferLen) {
+            this.jsonpMaxWriteBufferLen = jsonpMaxWriteBufferLen;
+        }
+
+        public boolean isJsonpSupportsComment() {
+            return jsonpSupportsComment;
+        }
+
+        public void setJsonpSupportsComment(final boolean jsonpSupportsComment) {
+            this.jsonpSupportsComment = jsonpSupportsComment;
+        }
+
+        public boolean isJsonpPrettify() {
+            return jsonpPrettify;
+        }
+
+        public void setJsonpPrettify(final boolean jsonpPrettify) {
+            this.jsonpPrettify = jsonpPrettify;
+        }
+
         public String getSharedLibraries() {
             return sharedLibraries;
         }

Modified: openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/cxf/MeecrowaveBus.java
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/cxf/MeecrowaveBus.java?rev=1769537&r1=1769536&r2=1769537&view=diff
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/cxf/MeecrowaveBus.java (original)
+++ openwebbeans/meecrowave/trunk/meecrowave-core/src/main/java/org/apache/meecrowave/cxf/MeecrowaveBus.java Sun Nov 13 18:51:16 2016
@@ -6,21 +6,34 @@ import org.apache.cxf.common.util.ClassU
 import org.apache.cxf.feature.Feature;
 import org.apache.cxf.interceptor.Interceptor;
 import org.apache.cxf.message.Message;
-import org.apache.johnzon.jaxrs.JsrProvider;
+import org.apache.johnzon.core.AbstractJsonFactory;
+import org.apache.johnzon.core.JsonGeneratorFactoryImpl;
+import org.apache.johnzon.core.JsonParserFactoryImpl;
+import org.apache.johnzon.jaxrs.DelegateProvider;
+import org.apache.johnzon.jaxrs.JsrMessageBodyReader;
+import org.apache.johnzon.jaxrs.JsrMessageBodyWriter;
 import org.apache.johnzon.jaxrs.jsonb.jaxrs.JsonbJaxrsProvider;
 import org.apache.meecrowave.Meecrowave;
 
 import javax.enterprise.context.ApplicationScoped;
 import javax.inject.Inject;
 import javax.inject.Named;
+import javax.json.Json;
+import javax.json.JsonStructure;
+import javax.json.stream.JsonGenerator;
 import javax.servlet.ServletContext;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.Produces;
+import javax.ws.rs.ext.Provider;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import static java.util.Arrays.asList;
+import static java.util.Optional.of;
 import static java.util.Optional.ofNullable;
 
 @Named("cxf")
@@ -55,7 +68,16 @@ public class MeecrowaveBus implements Bu
                                         }
                                     })
                                     .collect(Collectors.<Object>toList()))
-                            .orElseGet(() -> asList(/*new JohnzonProvider<>(),*/ new JsonbJaxrsProvider(), new JsrProvider()));
+                            .orElseGet(() -> asList(
+                                    new ConfiguredJsonbJaxrsProvider(
+                                            builder.getJsonbEncoding(), builder.isJsonbNulls(),
+                                            builder.isJsonbIJson(), builder.isJsonbPrettify(),
+                                            builder.getJsonbBinaryStrategy(), builder.getJsonbNamingStrategy(),
+                                            builder.getJsonbOrderStrategy()),
+                                    new ConfiguredJsrProvider(
+                                            builder.getJsonpBufferStrategy(), builder.getJsonpMaxStringLen(),
+                                            builder.getJsonpMaxReadBufferLen(), builder.getJsonpMaxWriteBufferLen(),
+                                            builder.isJsonpSupportsComment(), builder.isJsonpPrettify())));
 
             // client
             if (getProperty("org.apache.cxf.jaxrs.bus.providers") == null) {
@@ -149,4 +171,61 @@ public class MeecrowaveBus implements Bu
     public List<Interceptor<? extends Message>> getOutFaultInterceptors() {
         return delegate.getOutFaultInterceptors();
     }
+
+    @Provider
+    @Produces({
+            "application/json", "*/json",
+            "*/*+json", "*/x-json",
+            "*/javascript", "*/x-javascript"
+    })
+    @Consumes({
+            "application/json", "*/json",
+            "*/*+json", "*/x-json",
+            "*/javascript", "*/x-javascript"
+    })
+    public static class ConfiguredJsonbJaxrsProvider<T> extends JsonbJaxrsProvider<T> {
+        private ConfiguredJsonbJaxrsProvider(final String encoding,
+                                             final boolean nulls,
+                                             final boolean iJson,
+                                             final boolean pretty,
+                                             final String binaryStrategy,
+                                             final String namingStrategy,
+                                             final String orderStrategy) {
+            ofNullable(encoding).ifPresent(this::setEncoding);
+            ofNullable(namingStrategy).ifPresent(this::setPropertyNamingStrategy);
+            ofNullable(orderStrategy).ifPresent(this::setPropertyOrderStrategy);
+            ofNullable(binaryStrategy).ifPresent(this::setBinaryDataStrategy);
+            setNullValues(nulls);
+            setIJson(iJson);
+            setPretty(pretty);
+        }
+    }
+
+    @Provider
+    @Produces({
+            "application/json", "*/json",
+            "*/*+json", "*/x-json",
+            "*/javascript", "*/x-javascript"
+    })
+    @Consumes({
+            "application/json", "*/json",
+            "*/*+json", "*/x-json",
+            "*/javascript", "*/x-javascript"
+    })
+    public static class ConfiguredJsrProvider extends DelegateProvider<JsonStructure> { // TODO: probably wire the encoding in johnzon
+        private ConfiguredJsrProvider(final String bufferStrategy, final int maxStringLen,
+                                      final int maxReadBufferLen, final int maxWriteBufferLen,
+                                      final boolean supportsComment, final boolean pretty) {
+            super(new JsrMessageBodyReader(Json.createReaderFactory(new HashMap<String, Object>() {{
+                put(JsonParserFactoryImpl.SUPPORTS_COMMENTS, supportsComment);
+                of(maxStringLen).filter(v -> v > 0).ifPresent(s -> put(JsonParserFactoryImpl.MAX_STRING_LENGTH, s));
+                of(maxReadBufferLen).filter(v -> v > 0).ifPresent(s -> put(JsonParserFactoryImpl.BUFFER_LENGTH, s));
+                ofNullable(bufferStrategy).ifPresent(s -> put(AbstractJsonFactory.BUFFER_STRATEGY, s));
+            }}), false), new JsrMessageBodyWriter(Json.createWriterFactory(new HashMap<String, Object>() {{
+                put(JsonGenerator.PRETTY_PRINTING, pretty);
+                of(maxWriteBufferLen).filter(v -> v > 0).ifPresent(v -> put(JsonGeneratorFactoryImpl.GENERATOR_BUFFER_LENGTH, v));
+                ofNullable(bufferStrategy).ifPresent(s -> put(AbstractJsonFactory.BUFFER_STRATEGY, s));
+            }}), false));
+        }
+    }
 }

Modified: openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveExtension.java
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveExtension.java?rev=1769537&r1=1769536&r2=1769537&view=diff
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveExtension.java (original)
+++ openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveExtension.java Sun Nov 13 18:51:16 2016
@@ -71,6 +71,123 @@ public class MeecrowaveExtension {
     private String jaxrsDefaultProviders;
     private String sharedLibraries;
     private boolean useLog4j2JulLogManager = true;
+    private String jsonpBufferStrategy = "QUEUE";
+    private int jsonpMaxStringLen = 10 * 1024 * 1024;
+    private int jsonpMaxReadBufferLen = 64 * 1024;
+    private int jsonpMaxWriteBufferLen = 64 * 1024;
+    private boolean jsonpSupportsComment = false;
+    private boolean jsonpPrettify = false;
+    private String jsonbEncoding = "UTF-8";
+    private boolean jsonbNulls = false;
+    private boolean jsonbIJson = false;
+    private boolean jsonbPrettify = false;
+    private String jsonbBinaryStrategy;
+    private String jsonbNamingStrategy;
+    private String jsonbOrderStrategy;
+
+    public String getJsonpBufferStrategy() {
+        return jsonpBufferStrategy;
+    }
+
+    public void setJsonpBufferStrategy(final String jsonpBufferStrategy) {
+        this.jsonpBufferStrategy = jsonpBufferStrategy;
+    }
+
+    public int getJsonpMaxStringLen() {
+        return jsonpMaxStringLen;
+    }
+
+    public void setJsonpMaxStringLen(final int jsonpMaxStringLen) {
+        this.jsonpMaxStringLen = jsonpMaxStringLen;
+    }
+
+    public int getJsonpMaxReadBufferLen() {
+        return jsonpMaxReadBufferLen;
+    }
+
+    public void setJsonpMaxReadBufferLen(final int jsonpMaxReadBufferLen) {
+        this.jsonpMaxReadBufferLen = jsonpMaxReadBufferLen;
+    }
+
+    public int getJsonpMaxWriteBufferLen() {
+        return jsonpMaxWriteBufferLen;
+    }
+
+    public void setJsonpMaxWriteBufferLen(final int jsonpMaxWriteBufferLen) {
+        this.jsonpMaxWriteBufferLen = jsonpMaxWriteBufferLen;
+    }
+
+    public boolean isJsonpSupportsComment() {
+        return jsonpSupportsComment;
+    }
+
+    public void setJsonpSupportsComment(final boolean jsonpSupportsComment) {
+        this.jsonpSupportsComment = jsonpSupportsComment;
+    }
+
+    public boolean isJsonpPrettify() {
+        return jsonpPrettify;
+    }
+
+    public void setJsonpPrettify(final boolean jsonpPrettify) {
+        this.jsonpPrettify = jsonpPrettify;
+    }
+
+    public String getJsonbEncoding() {
+        return jsonbEncoding;
+    }
+
+    public void setJsonbEncoding(final String jsonbEncoding) {
+        this.jsonbEncoding = jsonbEncoding;
+    }
+
+    public boolean isJsonbNulls() {
+        return jsonbNulls;
+    }
+
+    public void setJsonbNulls(final boolean jsonbNulls) {
+        this.jsonbNulls = jsonbNulls;
+    }
+
+    public boolean isJsonbIJson() {
+        return jsonbIJson;
+    }
+
+    public void setJsonbIJson(final boolean jsonbIJson) {
+        this.jsonbIJson = jsonbIJson;
+    }
+
+    public boolean isJsonbPrettify() {
+        return jsonbPrettify;
+    }
+
+    public void setJsonbPrettify(final boolean jsonbPrettify) {
+        this.jsonbPrettify = jsonbPrettify;
+    }
+
+    public String getJsonbBinaryStrategy() {
+        return jsonbBinaryStrategy;
+    }
+
+    public void setJsonbBinaryStrategy(final String jsonbBinaryStrategy) {
+        this.jsonbBinaryStrategy = jsonbBinaryStrategy;
+    }
+
+    public String getJsonbNamingStrategy() {
+        return jsonbNamingStrategy;
+    }
+
+    public void setJsonbNamingStrategy(final String jsonbNamingStrategy) {
+        this.jsonbNamingStrategy = jsonbNamingStrategy;
+    }
+
+    public String getJsonbOrderStrategy() {
+        return jsonbOrderStrategy;
+    }
+
+    public void setJsonbOrderStrategy(final String jsonbOrderStrategy) {
+        this.jsonbOrderStrategy = jsonbOrderStrategy;
+    }
 
     public boolean isUseLog4j2JulLogManager() {
         return useLog4j2JulLogManager;

Modified: openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveTask.java
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveTask.java?rev=1769537&r1=1769536&r2=1769537&view=diff
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveTask.java (original)
+++ openwebbeans/meecrowave/trunk/meecrowave-gradle-plugin/src/main/java/org/apache/meecrowave/gradle/MeecrowaveTask.java Sun Nov 13 18:51:16 2016
@@ -48,6 +48,7 @@ import static java.util.Arrays.asList;
 import static java.util.Optional.ofNullable;
 import static java.util.stream.Collectors.toList;
 
+// Note we can nest inputs objects, if you think it is better (jsonb, jsonp, jaxrs etc..) send a mail on the list ;)
 public class MeecrowaveTask extends DefaultTask {
     private Configuration classpath;
 
@@ -242,6 +243,58 @@ public class MeecrowaveTask extends Defa
     @Optional
     private File webapp;
 
+    @Input
+    @Optional
+    private String jsonpBufferStrategy = "QUEUE";
+
+    @Input
+    @Optional
+    private int jsonpMaxStringLen = 10 * 1024 * 1024;
+
+    @Input
+    @Optional
+    private int jsonpMaxReadBufferLen = 64 * 1024;
+
+    @Input
+    @Optional
+    private int jsonpMaxWriteBufferLen = 64 * 1024;
+
+    @Input
+    @Optional
+    private boolean jsonpSupportsComment = false;
+
+    @Input
+    @Optional
+    private boolean jsonpPrettify = false;
+
+    @Input
+    @Optional
+    private String jsonbEncoding = "UTF-8";
+
+    @Input
+    @Optional
+    private boolean jsonbNulls = false;
+
+    @Input
+    @Optional
+    private boolean jsonbIJson = false;
+
+    @Input
+    @Optional
+    private boolean jsonbPrettify = false;
+
+    @Input
+    @Optional
+    private String jsonbBinaryStrategy;
+
+    @Input
+    @Optional
+    private String jsonbNamingStrategy;
+
+    @Input
+    @Optional
+    private String jsonbOrderStrategy;
+
     @TaskAction
     public void bake() {
         fixConfig();

Modified: openwebbeans/meecrowave/trunk/meecrowave-maven-plugin/src/main/java/org/apache/meecrowave/maven/MeecrowaveRunMojo.java
URL: http://svn.apache.org/viewvc/openwebbeans/meecrowave/trunk/meecrowave-maven-plugin/src/main/java/org/apache/meecrowave/maven/MeecrowaveRunMojo.java?rev=1769537&r1=1769536&r2=1769537&view=diff
==============================================================================
--- openwebbeans/meecrowave/trunk/meecrowave-maven-plugin/src/main/java/org/apache/meecrowave/maven/MeecrowaveRunMojo.java (original)
+++ openwebbeans/meecrowave/trunk/meecrowave-maven-plugin/src/main/java/org/apache/meecrowave/maven/MeecrowaveRunMojo.java Sun Nov 13 18:51:16 2016
@@ -200,6 +200,45 @@ public class MeecrowaveRunMojo extends A
     @Parameter(property = "meecrowave.log4j2-jul-bridge", defaultValue = "true")
     private boolean useLog4j2JulLogManager;
 
+    @Parameter(property = "meecrowave.jsonp-buffer-strategy", defaultValue = "QUEUE")
+    private String jsonpBufferStrategy;
+
+    @Parameter(property = "meecrowave.jsonp-max-string-length", defaultValue = "10485760")
+    private int jsonpMaxStringLen;
+
+    @Parameter(property = "meecrowave.jsonp-max-read-buffer-size", defaultValue = "65536")
+    private int jsonpMaxReadBufferLen;
+
+    @Parameter(property = "meecrowave.jsonp-max-write-buffer-size", defaultValue = "65536")
+    private int jsonpMaxWriteBufferLen;
+
+    @Parameter(property = "meecrowave.jsonp-comments", defaultValue = "false")
+    private boolean jsonpSupportsComment;
+
+    @Parameter(property = "meecrowave.jsonp-prettify", defaultValue = "false")
+    private boolean jsonpPrettify;
+
+    @Parameter(property = "meecrowave.jsonb-encoding", defaultValue = "UTF-8")
+    private String jsonbEncoding;
+
+    @Parameter(property = "meecrowave.jsonb-nulls", defaultValue = "false")
+    private boolean jsonbNulls = false;
+
+    @Parameter(property = "meecrowave.jsonb-ijson", defaultValue = "false")
+    private boolean jsonbIJson;
+
+    @Parameter(property = "meecrowave.jsonb-prettify", defaultValue = "false")
+    private boolean jsonbPrettify;
+
+    @Parameter(property = "meecrowave.jsonb-binary-strategy")
+    private String jsonbBinaryStrategy;
+
+    @Parameter(property = "meecrowave.jsonb-naming-strategy")
+    private String jsonbNamingStrategy;
+
+    @Parameter(property = "meecrowave.jsonb-order-strategy")
+    private String jsonbOrderStrategy;
+
     @Override
     public void execute() throws MojoExecutionException, MojoFailureException {
         if (skip) {