Repository: incubator-juneau
Updated Branches:
  refs/heads/master 03b8a40c8 -> e05e2a996


Add @RestResource.flags() and @RestMethod.flags().

Project: http://git-wip-us.apache.org/repos/asf/incubator-juneau/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-juneau/commit/e05e2a99
Tree: http://git-wip-us.apache.org/repos/asf/incubator-juneau/tree/e05e2a99
Diff: http://git-wip-us.apache.org/repos/asf/incubator-juneau/diff/e05e2a99

Branch: refs/heads/master
Commit: e05e2a996ba58aa36c18ed8b9f8eb7f6d8825d6d
Parents: 03b8a40
Author: JamesBognar <[email protected]>
Authored: Tue Jun 20 20:51:01 2017 -0400
Committer: JamesBognar <[email protected]>
Committed: Tue Jun 20 20:51:01 2017 -0400

----------------------------------------------------------------------
 juneau-core/src/main/javadoc/overview.html           |  6 +++++-
 .../juneau/microservice/resources/LogsResource.java  |  2 +-
 .../org/apache/juneau/rest/jaxrs/BaseProvider.java   |  4 ++++
 .../org/apache/juneau/rest/jaxrs/JuneauProvider.java |  7 +++++++
 .../main/java/org/apache/juneau/rest/CallMethod.java | 15 +++++++++++----
 .../main/java/org/apache/juneau/rest/RestConfig.java |  2 ++
 .../apache/juneau/rest/annotation/RestMethod.java    |  9 ++++++++-
 .../apache/juneau/rest/annotation/RestResource.java  |  7 +++++++
 8 files changed, 45 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e05e2a99/juneau-core/src/main/javadoc/overview.html
----------------------------------------------------------------------
diff --git a/juneau-core/src/main/javadoc/overview.html 
b/juneau-core/src/main/javadoc/overview.html
index 31cf85f..3f17bc7 100644
--- a/juneau-core/src/main/javadoc/overview.html
+++ b/juneau-core/src/main/javadoc/overview.html
@@ -6175,7 +6175,6 @@
        <h3 class='topic' onclick='toggle(this)'>6.3.1 (TBD)</h3>
        <div class='topic'>
                <p>
-                       Juneau 6.3.1 is a major update.
                </p>
 
                <h6 class='topic'>org.apache.juneau</h6>
@@ -6196,6 +6195,11 @@
                                        <li>{@link 
org.apache.juneau.rest.RestRequest#attr(String,Object) attr(String,Object)}
                                        <li>{@link 
org.apache.juneau.rest.RestRequest#prop(String,Object) prop(String,Object)}
                                </ul>
+                       <li>Annotations added:
+                               <ul>
+                                       <li>{@link 
org.apache.juneau.rest.annotation.RestResource#flags()}
+                                       <li>{@link 
org.apache.juneau.rest.annotation.RestMethod#flags()}
+                               </ul>
                </ul>
        </div>
        

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e05e2a99/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
----------------------------------------------------------------------
diff --git 
a/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
 
b/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
index 7791801..b2353b0 100755
--- 
a/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
+++ 
b/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
@@ -43,8 +43,8 @@ import org.apache.juneau.utils.*;
        description="Log files from this service",
        properties={
                @Property(name=HTML_uriAnchorText, value=PROPERTY_NAME),
-               @Property(name=REST_allowMethodParam, value="true")
        },
+       flags={REST_allowMethodParam},
        pojoSwaps={
                IteratorSwap.class,       // Allows Iterators and Iterables to 
be serialized.
                DateSwap.ISO8601DT.class  // Serialize Date objects as ISO8601 
strings.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e05e2a99/juneau-rest-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
----------------------------------------------------------------------
diff --git 
a/juneau-rest-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
 
b/juneau-rest-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
index 272c335..6e0e008 100644
--- 
a/juneau-rest-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
+++ 
b/juneau-rest-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/BaseProvider.java
@@ -50,6 +50,8 @@ public class BaseProvider implements 
MessageBodyReader<Object>, MessageBodyWrite
                        
                        for (Property p : jp.properties())
                                properties.put(p.name(), p.value());
+                       for (String p : jp.flags())
+                               properties.put(p, true);
 
                        serializers = new SerializerGroupBuilder()
                                .append(jp.serializers())
@@ -84,6 +86,8 @@ public class BaseProvider implements 
MessageBodyReader<Object>, MessageBodyWrite
                        if (aa instanceof RestMethod) {
                                for (Property p : ((RestMethod)aa).properties())
                                        m.put(p.name(), p.value());
+                               for (String p : ((RestMethod)aa).flags())
+                                       m.put(p, true);
                        }
                }
                return m;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e05e2a99/juneau-rest-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/JuneauProvider.java
----------------------------------------------------------------------
diff --git 
a/juneau-rest-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/JuneauProvider.java
 
b/juneau-rest-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/JuneauProvider.java
index e2a6571..6390073 100644
--- 
a/juneau-rest-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/JuneauProvider.java
+++ 
b/juneau-rest-jaxrs/src/main/java/org/apache/juneau/rest/jaxrs/JuneauProvider.java
@@ -81,6 +81,13 @@ public @interface JuneauProvider {
        Property[] properties() default {};
 
        /**
+        * Shortcut for setting {@link #properties()} of boolean types.
+        * <p>
+        * Setting a flag is the equivalent to setting the same property to 
<js>"true"</js>.
+        */
+       String[] flags() default {};
+
+       /**
         * Specifies a list of {@link Serializer} classes to add to the list of 
serializers available for this provider.
         * <p>
         * This annotation can only be used on {@link Serializer} classes that 
have no-arg constructors.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e05e2a99/juneau-rest/src/main/java/org/apache/juneau/rest/CallMethod.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/CallMethod.java 
b/juneau-rest/src/main/java/org/apache/juneau/rest/CallMethod.java
index 9376f0f..f645bc4 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/CallMethod.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/CallMethod.java
@@ -201,7 +201,7 @@ class CallMethod implements Comparable<CallMethod>  {
                                ParserGroupBuilder pgb = null;
                                UrlEncodingParserBuilder uepb = null;
 
-                               if (m.serializers().length > 0 || 
m.parsers().length > 0 || m.properties().length > 0 || m.beanFilters().length > 
0 || m.pojoSwaps().length > 0 || m.bpIncludes().length() > 0 || 
m.bpExcludes().length() > 0) {
+                               if (m.serializers().length > 0 || 
m.parsers().length > 0 || m.properties().length > 0 || m.flags().length > 0 || 
m.beanFilters().length > 0 || m.pojoSwaps().length > 0 || 
m.bpIncludes().length() > 0 || m.bpExcludes().length() > 0) {
                                        sgb = new SerializerGroupBuilder();
                                        pgb = new ParserGroupBuilder();
                                        uepb = new 
UrlEncodingParserBuilder(urlEncodingParser.createPropertyStore());
@@ -261,6 +261,8 @@ class CallMethod implements Comparable<CallMethod>  {
                                                sgb.properties(properties);
                                        for (Property p1 : m.properties())
                                                sgb.property(p1.name(), 
p1.value());
+                                       for (String p1 : m.flags())
+                                               sgb.property(p1, true);
                                        if (! m.bpIncludes().isEmpty())
                                                try {
                                                        
sgb.includeProperties((Map)JsonParser.DEFAULT.parse(m.bpIncludes(), Map.class, 
String.class, String.class));
@@ -285,6 +287,8 @@ class CallMethod implements Comparable<CallMethod>  {
                                                pgb.properties(properties);
                                        for (Property p1 : m.properties())
                                                pgb.property(p1.name(), 
p1.value());
+                                       for (String p1 : m.flags())
+                                               pgb.property(p1, true);
                                        pgb.beanFilters(m.beanFilters());
                                        pgb.pojoSwaps(m.pojoSwaps());
                                }
@@ -292,15 +296,18 @@ class CallMethod implements Comparable<CallMethod>  {
                                if (uepb != null) {
                                        for (Property p1 : m.properties())
                                                uepb.property(p1.name(), 
p1.value());
+                                       for (String p1 : m.flags())
+                                               uepb.property(p1, true);
                                        uepb.beanFilters(m.beanFilters());
                                        uepb.pojoSwaps(m.pojoSwaps());
                                }
 
-                               if (m.properties().length > 0) {
+                               if (m.properties().length > 0 || 
m.flags().length > 0) {
                                        properties = new 
ObjectMap().setInner(properties);
-                                       for (Property p1 : m.properties()) {
+                                       for (Property p1 : m.properties())
                                                properties.put(p1.name(), 
p1.value());
-                                       }
+                                       for (String p1 : m.flags())
+                                               properties.put(p1, true);
                                }
 
                                if (m.encoders().length > 0 || ! 
m.inheritEncoders()) {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e05e2a99/juneau-rest/src/main/java/org/apache/juneau/rest/RestConfig.java
----------------------------------------------------------------------
diff --git a/juneau-rest/src/main/java/org/apache/juneau/rest/RestConfig.java 
b/juneau-rest/src/main/java/org/apache/juneau/rest/RestConfig.java
index 3845e2c..1423819 100644
--- a/juneau-rest/src/main/java/org/apache/juneau/rest/RestConfig.java
+++ b/juneau-rest/src/main/java/org/apache/juneau/rest/RestConfig.java
@@ -179,6 +179,8 @@ public class RestConfig implements ServletConfig {
                                RestResource r = e.getValue();
                                for (Property p : r.properties())
                                        properties.append(vr.resolve(p.name()), 
vr.resolve(p.value()));
+                               for (String p : r.flags())
+                                       properties.append(p, true);
                                addSerializers(r.serializers());
                                addParsers(r.parsers());
                                addEncoders(r.encoders());

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e05e2a99/juneau-rest/src/main/java/org/apache/juneau/rest/annotation/RestMethod.java
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/annotation/RestMethod.java 
b/juneau-rest/src/main/java/org/apache/juneau/rest/annotation/RestMethod.java
index 3a9d1bf..4ebab09 100644
--- 
a/juneau-rest/src/main/java/org/apache/juneau/rest/annotation/RestMethod.java
+++ 
b/juneau-rest/src/main/java/org/apache/juneau/rest/annotation/RestMethod.java
@@ -260,6 +260,13 @@ public @interface RestMethod {
        Property[] properties() default {};
 
        /**
+        * Shortcut for setting {@link #properties()} of simple boolean types.
+        * <p>
+        * Setting a flag is equivalent to setting the same property to 
<js>"true"</js>.
+        */
+       String[] flags() default {};
+
+       /**
         * Appends the specified bean filters to all serializers and parsers 
used by this method.
         */
        Class<?>[] beanFilters() default {};
@@ -280,7 +287,7 @@ public @interface RestMethod {
         * <p class='bcode'>
         *      <jc>// Our bean</jc>
         *      <jk>public class</jk> MyBean {
-        * 
+        *
         *              <jc>// Summary properties</jc>
         *              <ja>@Html</ja>(link=<js>"servlet:/mybeans/{id}"</js>)
         *              <jk>public</jk> String <jf>id</jf>;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/e05e2a99/juneau-rest/src/main/java/org/apache/juneau/rest/annotation/RestResource.java
----------------------------------------------------------------------
diff --git 
a/juneau-rest/src/main/java/org/apache/juneau/rest/annotation/RestResource.java 
b/juneau-rest/src/main/java/org/apache/juneau/rest/annotation/RestResource.java
index 321b11d..ac82330 100644
--- 
a/juneau-rest/src/main/java/org/apache/juneau/rest/annotation/RestResource.java
+++ 
b/juneau-rest/src/main/java/org/apache/juneau/rest/annotation/RestResource.java
@@ -193,6 +193,13 @@ public @interface RestResource {
        Property[] properties() default {};
 
        /**
+        * Shortcut for setting {@link #properties()} of simple boolean types.
+        * <p>
+        * Setting a flag is equivalent to setting the same property to 
<js>"true"</js>.
+        */
+       String[] flags() default {};
+
+       /**
         * Specifies a list of {@link Serializer} classes to add to the list of 
serializers available for this servlet.
         * <p>
         * This annotation can only be used on {@link Serializer} classes that 
have no-arg constructors.

Reply via email to