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.