You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juneau.apache.org by ja...@apache.org on 2017/06/21 00:51:07 UTC
incubator-juneau git commit: Add @RestResource.flags() and
@RestMethod.flags().
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 <ja...@apache.org>
Authored: Tue Jun 20 20:51:01 2017 -0400
Committer: JamesBognar <ja...@apache.org>
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.