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 2016/08/27 15:58:39 UTC

[1/2] incubator-juneau git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-juneau.git

Repository: incubator-juneau
Updated Branches:
  refs/heads/master cb4a4f2a5 -> 0cf51a696


Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/incubator-juneau.git

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

Branch: refs/heads/master
Commit: a91a56f53b6b9444b3201e3f54e8de489af44f2a
Parents: 0ce0e66 ee27361
Author: jamesbognar <ja...@gmail.com>
Authored: Sat Aug 27 11:37:34 2016 -0400
Committer: jamesbognar <ja...@gmail.com>
Committed: Sat Aug 27 11:51:25 2016 -0400

----------------------------------------------------------------------
 .../main/java/org/apache/juneau/BeanMap.java    |   4 +-
 .../java/org/apache/juneau/BeanMapEntry.java    |   4 +-
 .../org/apache/juneau/BeanPropertyMeta.java     |  13 ++-
 .../main/java/org/apache/juneau/ClassMeta.java  |  13 ++-
 .../apache/juneau/annotation/BeanProperty.java  |   9 +-
 .../java/org/apache/juneau/annotation/Pojo.java | 101 +++++++++----------
 .../org/apache/juneau/dto/atom/CommonEntry.java |   2 +-
 .../java/org/apache/juneau/dto/atom/Entry.java  |   2 +-
 .../apache/juneau/dto/jsonschema/Schema.java    |   8 +-
 .../java/org/apache/juneau/internal/Null.java   |  21 ++++
 .../org/apache/juneau/transform/PojoSwap.java   |   3 -
 .../org/apache/juneau/transform/Transform.java  |   3 -
 .../a/rttests/RoundTripTransformBeansTest.java  |   4 +-
 .../java/org/apache/juneau/html/HtmlTest.java   |   4 +-
 .../org/apache/juneau/jena/RdfParserTest.java   |   4 +-
 .../juneau/transforms/CalendarSwapTest.java     |   6 +-
 .../resources/DirectoryResource.java            |   2 +-
 .../microservice/resources/LogsResource.java    |   2 +-
 .../samples/addressbook/CreatePerson.java       |   2 +-
 .../juneau/samples/addressbook/Person.java      |   2 +-
 .../server/samples/UrlEncodedFormResource.java  |   2 +-
 21 files changed, 115 insertions(+), 96 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-core/src/main/java/org/apache/juneau/BeanMap.java
----------------------------------------------------------------------
diff --cc juneau-core/src/main/java/org/apache/juneau/BeanMap.java
index d796367,d796367..cc8ab29
--- a/juneau-core/src/main/java/org/apache/juneau/BeanMap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanMap.java
@@@ -182,7 -182,7 +182,7 @@@ public class BeanMap<T> extends Abstrac
  	 * 	you must pass in a transformed value.
  	 * For example, if the bean property type class is a {@link Date} and the bean property has the
  	 * 	{@link org.apache.juneau.transforms.DateSwap.ISO8601DT} transform associated with it through the
--	 * 	{@link BeanProperty#transform() @BeanProperty.transform()} annotation, the value being passed in must be
++	 * 	{@link BeanProperty#swap() @BeanProperty.swap()} annotation, the value being passed in must be
  	 * 	a String containing an ISO8601 date-time string value.
  	 *
  	 * <dl>
@@@ -268,7 -268,7 +268,7 @@@
  	 * 	this method will return the transformed value.
  	 * For example, if the bean property type class is a {@link Date} and the bean property has the
  	 * 	{@link org.apache.juneau.transforms.DateSwap.ISO8601DT} transform associated with it through the
--	 * 	{@link BeanProperty#transform() @BeanProperty.transform()} annotation, this method will return a String
++	 * 	{@link BeanProperty#swap() @BeanProperty.swap()} annotation, this method will return a String
  	 * 	containing an ISO8601 date-time string value.
  	 *
  	 * <dl>

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-core/src/main/java/org/apache/juneau/BeanMapEntry.java
----------------------------------------------------------------------
diff --cc juneau-core/src/main/java/org/apache/juneau/BeanMapEntry.java
index 67b949f,67b949f..6eba4ef
--- a/juneau-core/src/main/java/org/apache/juneau/BeanMapEntry.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanMapEntry.java
@@@ -69,7 -69,7 +69,7 @@@ public class BeanMapEntry implements Ma
  	 * 	this method will return the transformed value.
  	 * For example, if the bean property type class is a {@link Date} and the bean property has the
  	 * 	{@link org.apache.juneau.transforms.DateSwap.ISO8601DT} transform associated with it through the
--	 * 	{@link BeanProperty#transform() @BeanProperty.transform()} annotation, this method will return a String
++	 * 	{@link BeanProperty#swap() @BeanProperty.swap()} annotation, this method will return a String
  	 * 	containing an ISO8601 date-time string value.
  	 */
  	@Override /* Map.Entry */
@@@ -88,7 -88,7 +88,7 @@@
  	 * 	you must pass in a transformed value.
  	 * For example, if the bean property type class is a {@link Date} and the bean property has the
  	 * 	{@link org.apache.juneau.transforms.DateSwap.ISO8601DT} transform associated with it through the
--	 * 	{@link BeanProperty#transform() @BeanProperty.transform()} annotation, the value being passed in must be
++	 * 	{@link BeanProperty#swap() @BeanProperty.swap()} annotation, the value being passed in must be
  	 * 	a String containing an ISO8601 date-time string value.
  	 *
  	 * @return  The set value after it's been converted.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-core/src/main/java/org/apache/juneau/BeanPropertyMeta.java
----------------------------------------------------------------------
diff --cc juneau-core/src/main/java/org/apache/juneau/BeanPropertyMeta.java
index e017939,e017939..52c7898
--- a/juneau-core/src/main/java/org/apache/juneau/BeanPropertyMeta.java
+++ b/juneau-core/src/main/java/org/apache/juneau/BeanPropertyMeta.java
@@@ -300,13 -300,13 +300,16 @@@ public class BeanPropertyMeta 
  	}
  
  	private PojoSwap getPropertyPojoSwap(BeanProperty p) throws Exception {
--		Class<? extends PojoSwap> c = p.transform();
--		if (c == PojoSwap.NULL.class)
++		Class<?> c = p.swap();
++		if (c == Null.class)
  			return null;
  		try {
--			PojoSwap f = c.newInstance();
--			f.setBeanContext(this.beanMeta.ctx);
--			return f;
++			if (ClassUtils.isParentClass(PojoSwap.class, c)) {
++				PojoSwap f = (PojoSwap)c.newInstance();
++				f.setBeanContext(this.beanMeta.ctx);
++				return f;
++			}
++			throw new RuntimeException("TODO - Surrogate swaps not yet supported.");
  		} catch (Exception e) {
  			throw new BeanRuntimeException(this.beanMeta.c, "Could not instantiate PojoSwap ''{0}'' for bean property ''{1}''", c.getName(), this.name).initCause(e);
  		}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
----------------------------------------------------------------------
diff --cc juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
index b4af534,b4af534..d234b84
--- a/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
+++ b/juneau-core/src/main/java/org/apache/juneau/ClassMeta.java
@@@ -433,11 -433,11 +433,14 @@@ public final class ClassMeta<T> impleme
  		try {
  			org.apache.juneau.annotation.Pojo b = innerClass.getAnnotation(org.apache.juneau.annotation.Pojo.class);
  			if (b != null) {
--				Class<? extends Transform> c = b.transform();
--				if (c != Transform.NULL.class) {
--					Transform f = c.newInstance();
--					f.setBeanContext(context);
--					return f;
++				Class<?> c = b.swap();
++				if (c != Null.class) {
++					if (ClassUtils.isParentClass(PojoSwap.class, c)) {
++						Transform f = (Transform)c.newInstance();
++						f.setBeanContext(context);
++						return f;
++					}
++					throw new RuntimeException("TODO - Surrogate classes not yet supported.");
  				}
  			}
  			if (context == null)

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-core/src/main/java/org/apache/juneau/annotation/BeanProperty.java
----------------------------------------------------------------------
diff --cc juneau-core/src/main/java/org/apache/juneau/annotation/BeanProperty.java
index 587da9c,587da9c..3b91992
--- a/juneau-core/src/main/java/org/apache/juneau/annotation/BeanProperty.java
+++ b/juneau-core/src/main/java/org/apache/juneau/annotation/BeanProperty.java
@@@ -19,6 -19,6 +19,7 @@@ import java.lang.annotation.*
  import java.util.*;
  
  import org.apache.juneau.*;
++import org.apache.juneau.internal.*;
  import org.apache.juneau.jena.*;
  import org.apache.juneau.transform.*;
  import org.apache.juneau.xml.*;
@@@ -110,10 -110,10 +111,10 @@@ public @interface BeanProperty 
  	Class<?>[] params() default {};
  
  	/**
--	 * Associates an object transform with this bean property that will convert it
--	 * to a different value during serialization and parsing.
++	 * Associates a {@link PojoSwap} or {@link SurrogateSwap} with this bean property that will swap the value object
++	 * 	with another object during serialization and parsing.
  	 * <p>
--	 * This annotation supersedes any transform associated with the bean property type
++	 * This annotation supersedes any swaps associated with the bean property type
  	 * 	class itself.
  	 * <p>
  	 * Typically used for rendering {@link Date Dates} and {@link Calendar Calendars}
@@@ -133,7 -133,7 +134,7 @@@
  	 * 	</dd>
  	 * </dl>
  	 */
--	Class<? extends PojoSwap<?,?>> transform() default PojoSwap.NULL.class;
++	Class<?> swap() default Null.class;
  
  	/**
  	 * Used to limit which child properties are rendered by the serializers.

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-core/src/main/java/org/apache/juneau/annotation/Pojo.java
----------------------------------------------------------------------
diff --cc juneau-core/src/main/java/org/apache/juneau/annotation/Pojo.java
index 2027c55,16ec115..3a4d98e
--- a/juneau-core/src/main/java/org/apache/juneau/annotation/Pojo.java
+++ b/juneau-core/src/main/java/org/apache/juneau/annotation/Pojo.java
@@@ -17,61 -17,61 +17,11 @@@ import static java.lang.annotation.Rete
  
  import java.lang.annotation.*;
  
--import org.apache.juneau.serializer.*;
++import org.apache.juneau.internal.*;
  import org.apache.juneau.transform.*;
  
  /**
   * Used to tailor how POJOs get interpreted by the framework.
-- * <p>
-- * 	Annotation that can be applied to POJOs to associate transforms with them.
-- * <p>
-- * 	Typically used to associate {@link PojoSwap PojoSwaps} with classes using annotations
-- * 		instead of programatically through a method such as {@link Serializer#addTransforms(Class...)}.
-- *
-- * <h6 class='topic'>Example</h6>
-- * <p>
-- * 	In this case, a transform is being applied to a bean that will force it to be serialized as a <code>String</code>
-- * <p class='bcode'>
-- * 	<jc>// Our bean class</jc>
-- * 	<ja>@Pojo</ja>(transform=BSwap.<jk>class</jk>)
-- * 	<jk>public class</jk> B {
-- * 		<jk>public</jk> String <jf>f1</jf>;
-- * 	}
-- *
-- * 	<jc>// Our transform to force the bean to be serialized as a String</jc>
-- * 	<jk>public class</jk> BSwap <jk>extends</jk> PojoSwap&lt;B,String&gt; {
-- * 		<jk>public</jk> String swap(B o) <jk>throws</jk> SerializeException {
-- * 			<jk>return</jk> o.f1;
-- * 		}
-- * 		<jk>public</jk> B unswap(String f, ClassMeta&lt;?&gt; hint) <jk>throws</jk> ParseException {
-- * 			B b1 = <jk>new</jk> B();
-- * 			b1.<jf>f1</jf> = f;
-- * 			<jk>return</jk> b1;
-- * 		}
-- * 	}
-- *
-- * 	<jk>public void</jk> testTransform() <jk>throws</jk> Exception {
-- * 		WriterSerializer s = JsonSerializer.<jsf>DEFAULT</jsf>;
-- * 		B b = <jk>new</jk> B();
-- * 		b.<jf>f1</jf> = <js>"bar"</js>;
-- * 		String json = s.serialize(b);
-- * 		<jsm>assertEquals</jsm>(<js>"'bar'"</js>, json);
-- *
-- * 		ReaderParser p = JsonParser.<jsf>DEFAULT</jsf>;
-- * 		b = p.parse(json, B.<jk>class</jk>);
-- * 		<jsm>assertEquals</jsm>(<js>"bar"</js>, t.<jf>f1</jf>);
-- * 	}
-- * </p>
-- * <p>
-- * 	Note that using this annotation is functionally equivalent to adding transforms to the serializers and parsers:
-- * <p class='bcode'>
-- * 	WriterSerializer s = <jk>new</jk> JsonSerializer.addTransforms(BSwap.<jk>class</jk>);
-- * 	ReaderParser p = <jk>new</jk> JsonParser.addTransforms(BSwap.<jk>class</jk>);
-- * </p>
-- * <p>
-- * 	It is technically possible to associate a {@link BeanFilter} with a bean class using this annotation.
-- * 	However in practice, it's almost always less code to simply use the {@link Bean @Bean} annotation.
-- * </p>
   *
   * @author James Bognar (james.bognar@salesforce.com)
   */
@@@ -82,7 -82,7 +32,54 @@@
  public @interface Pojo {
  
  	/**
 -	 * The transform class.
 +	 * Associate a {@link PojoSwap} or {@link SurrogateSwap} with this class type.
++	 * <p>
++	 * Supports the following class types:
++	 * <ul>
++	 * 	<li>Subclasses of {@link PojoSwap}.
++	 * 	<li>Any other class.  Will get interpreted as a {@link SurrogateSwap}.
++	 * </ul>
++	 *
++	 * <h6 class='topic'>Example</h6>
++	 * <p>
++	 * 	In this case, a swap is being applied to a bean that will force it to be serialized as a <code>String</code>
++	 * <p class='bcode'>
++	 * 	<jc>// Our bean class</jc>
++	 * 	<ja>@Pojo</ja>(swap=BSwap.<jk>class</jk>)
++	 * 	<jk>public class</jk> B {
++	 * 		<jk>public</jk> String <jf>f1</jf>;
++	 * 	}
++	 *
++	 * 	<jc>// Our transform to force the bean to be serialized as a String</jc>
++	 * 	<jk>public class</jk> BSwap <jk>extends</jk> PojoSwap&lt;B,String&gt; {
++	 * 		<jk>public</jk> String swap(B o) <jk>throws</jk> SerializeException {
++	 * 			<jk>return</jk> o.f1;
++	 * 		}
++	 * 		<jk>public</jk> B unswap(String f) <jk>throws</jk> ParseException {
++	 * 			B b1 = <jk>new</jk> B();
++	 * 			b1.<jf>f1</jf> = f;
++	 * 			<jk>return</jk> b1;
++	 * 		}
++	 * 	}
++	 *
++	 * 	<jk>public void</jk> test() <jk>throws</jk> Exception {
++	 * 		WriterSerializer s = JsonSerializer.<jsf>DEFAULT</jsf>;
++	 * 		B b = <jk>new</jk> B();
++	 * 		b.<jf>f1</jf> = <js>"bar"</js>;
++	 * 		String json = s.serialize(b);
++	 * 		<jsm>assertEquals</jsm>(<js>"'bar'"</js>, json);
++	 *
++	 * 		ReaderParser p = JsonParser.<jsf>DEFAULT</jsf>;
++	 * 		b = p.parse(json, B.<jk>class</jk>);
++	 * 		<jsm>assertEquals</jsm>(<js>"bar"</js>, t.<jf>f1</jf>);
++	 * 	}
++	 * </p>
++	 * <p>
++	 * 	Note that using this annotation is functionally equivalent to adding swaps to the serializers and parsers:
++	 * <p class='bcode'>
++	 * 	WriterSerializer s = <jk>new</jk> JsonSerializer.addTransforms(BSwap.<jk>class</jk>);
++	 * 	ReaderParser p = <jk>new</jk> JsonParser.addTransforms(BSwap.<jk>class</jk>);
++	 * </p>
  	 */
--	Class<? extends Transform> transform() default Transform.NULL.class;
++	Class<?> swap() default Null.class;
  }

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-core/src/main/java/org/apache/juneau/dto/atom/CommonEntry.java
----------------------------------------------------------------------
diff --cc juneau-core/src/main/java/org/apache/juneau/dto/atom/CommonEntry.java
index 821193a,821193a..6ef4fc6
--- a/juneau-core/src/main/java/org/apache/juneau/dto/atom/CommonEntry.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/atom/CommonEntry.java
@@@ -262,7 -262,7 +262,7 @@@ public class CommonEntry extends Commo
  	 *
  	 * @return The update timestamp of this object.
  	 */
--	@BeanProperty(transform=CalendarSwap.ISO8601DT.class)
++	@BeanProperty(swap=CalendarSwap.ISO8601DT.class)
  	public Calendar getUpdated() {
  		return updated;
  	}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-core/src/main/java/org/apache/juneau/dto/atom/Entry.java
----------------------------------------------------------------------
diff --cc juneau-core/src/main/java/org/apache/juneau/dto/atom/Entry.java
index 2475372,2475372..a8141b6
--- a/juneau-core/src/main/java/org/apache/juneau/dto/atom/Entry.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/atom/Entry.java
@@@ -100,7 -100,7 +100,7 @@@ public class Entry extends CommonEntry 
  	 *
  	 * @return The publish timestamp of this entry.
  	 */
-- 	@BeanProperty(transform=CalendarSwap.ISO8601DT.class)
++ 	@BeanProperty(swap=CalendarSwap.ISO8601DT.class)
  	public Calendar getPublished() {
   		return published;
   	}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-core/src/main/java/org/apache/juneau/dto/jsonschema/Schema.java
----------------------------------------------------------------------
diff --cc juneau-core/src/main/java/org/apache/juneau/dto/jsonschema/Schema.java
index 2fbba1d,2fbba1d..bcbee9d
--- a/juneau-core/src/main/java/org/apache/juneau/dto/jsonschema/Schema.java
+++ b/juneau-core/src/main/java/org/apache/juneau/dto/jsonschema/Schema.java
@@@ -218,7 -218,7 +218,7 @@@ public class Schema 
  	 * @return The value of the <property>type</property> property on this bean, or <jk>null</jk> if it is not set.
  	 * 	Can be either a {@link JsonType} or {@link JsonTypeArray} depending on what value was used to set it.
  	 */
--	@BeanProperty(transform=JsonTypeOrJsonTypeArraySwap.class)
++	@BeanProperty(swap=JsonTypeOrJsonTypeArraySwap.class)
  	public Object getType() {
  		if (typeJsonType != null)
  			return typeJsonType;
@@@ -514,7 -514,7 +514,7 @@@
  	 * @return The value of the <property>items</property> property on this bean, or <jk>null</jk> if it is not set.
  	 * 	Can be either a {@link Schema} or {@link SchemaArray} depending on what value was used to set it.
  	 */
--	@BeanProperty(transform=SchemaOrSchemaArraySwap.class)
++	@BeanProperty(swap=SchemaOrSchemaArraySwap.class)
  	public Object getItems() {
  		if (itemsSchema != null)
  			return itemsSchema;
@@@ -772,7 -772,7 +772,7 @@@
  	 * @return The value of the <property>additionalItems</property> property on this bean, or <jk>null</jk> if it is not set.
  	 * 	Can be either a {@link Boolean} or {@link SchemaArray} depending on what value was used to set it.
  	 */
--	@BeanProperty(transform=BooleanOrSchemaArraySwap.class)
++	@BeanProperty(swap=BooleanOrSchemaArraySwap.class)
  	public Object getAdditionalItems() {
  		if (additionalItemsBoolean != null)
  			return additionalItemsBoolean;
@@@ -1031,7 -1031,7 +1031,7 @@@
  	 * @return The value of the <property>additionalProperties</property> property on this bean, or <jk>null</jk> if it is not set.
  	 * 	Can be either a {@link Boolean} or {@link SchemaArray} depending on what value was used to set it.
  	 */
--	@BeanProperty(transform=BooleanOrSchemaSwap.class)
++	@BeanProperty(swap=BooleanOrSchemaSwap.class)
  	public Object getAdditionalProperties() {
  		if (additionalPropertiesBoolean != null)
  			return additionalItemsBoolean;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-core/src/main/java/org/apache/juneau/internal/Null.java
----------------------------------------------------------------------
diff --cc juneau-core/src/main/java/org/apache/juneau/internal/Null.java
index 0000000,0000000..1fc3888
new file mode 100644
--- /dev/null
+++ b/juneau-core/src/main/java/org/apache/juneau/internal/Null.java
@@@ -1,0 -1,0 +1,21 @@@
++/***************************************************************************************************************************
++ * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.  See the NOTICE file
++ * distributed with this work for additional information regarding copyright ownership.  The ASF licenses this file
++ * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
++ * with the License.  You may obtain a copy of the License at
++ *
++ *  http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an
++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the License for the
++ * specific language governing permissions and limitations under the License.
++ ***************************************************************************************************************************/
++
++package org.apache.juneau.internal;
++
++/**
++ * Represents a null entry in a class annotation.
++ *
++ * @author james.bognar
++ */
++public class Null {}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-core/src/main/java/org/apache/juneau/transform/PojoSwap.java
----------------------------------------------------------------------
diff --cc juneau-core/src/main/java/org/apache/juneau/transform/PojoSwap.java
index 3bde495,3bde495..1fefd2c
--- a/juneau-core/src/main/java/org/apache/juneau/transform/PojoSwap.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transform/PojoSwap.java
@@@ -91,9 -91,9 +91,6 @@@ import org.apache.juneau.serializer.*
   */
  public abstract class PojoSwap<T,S> extends Transform {
  
--	/** Represents no transform. */
--	public static class NULL extends PojoSwap<Object,Object> {}
--
  	Class<T> normalClass;
  	Class<S> transformedClass;
  	ClassMeta<S> transformedClassMeta;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-core/src/main/java/org/apache/juneau/transform/Transform.java
----------------------------------------------------------------------
diff --cc juneau-core/src/main/java/org/apache/juneau/transform/Transform.java
index 2c72c88,2c72c88..c6ea8a4
--- a/juneau-core/src/main/java/org/apache/juneau/transform/Transform.java
+++ b/juneau-core/src/main/java/org/apache/juneau/transform/Transform.java
@@@ -46,9 -46,9 +46,6 @@@ import org.apache.juneau.*
   */
  public class Transform {
  
--	/** Represents no transform. */
--	public static class NULL extends Transform {}
--
  	/** The transform subtype */
  	public static enum TransformType {
  		/** PojoSwap */

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java
----------------------------------------------------------------------
diff --cc juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java
index 3f3fc0d,3f3fc0d..9eeb56c
--- a/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java
@@@ -228,12 -228,12 +228,12 @@@ public class RoundTripTransformBeansTes
  		assertEquals("bar", t.f1);
  	}
  
--	@Pojo(transform=BTransform.class)
++	@Pojo(swap=BSwap.class)
  	public static class B {
  		public String f1;
  	}
  
--	public static class BTransform extends PojoSwap<B,String> {
++	public static class BSwap extends PojoSwap<B,String> {
  		@Override /* PojoSwap */
  		public String swap(B o) throws SerializeException {
  			return o.f1;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-core/src/test/java/org/apache/juneau/html/HtmlTest.java
----------------------------------------------------------------------
diff --cc juneau-core/src/test/java/org/apache/juneau/html/HtmlTest.java
index a988ea2,a988ea2..5916c7e
--- a/juneau-core/src/test/java/org/apache/juneau/html/HtmlTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/html/HtmlTest.java
@@@ -100,7 -100,7 +100,7 @@@ public class HtmlTest 
  		public String f2 = "f2";
  	}
  
--	@Pojo(transform=A4Swap.class)
++	@Pojo(swap=A4Swap.class)
  	public static class A4 {
  		public String f2 = "f2";
  	}
@@@ -112,7 -112,7 +112,7 @@@
  		}
  	}
  
--	@Pojo(transform=A5Swap.class)
++	@Pojo(swap=A5Swap.class)
  	public static class A5 {
  		public String f2 = "f2";
  	}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-core/src/test/java/org/apache/juneau/jena/RdfParserTest.java
----------------------------------------------------------------------
diff --cc juneau-core/src/test/java/org/apache/juneau/jena/RdfParserTest.java
index 24c9479,24c9479..21c4573
--- a/juneau-core/src/test/java/org/apache/juneau/jena/RdfParserTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/jena/RdfParserTest.java
@@@ -106,7 -106,7 +106,7 @@@ public class RdfParserTest 
  		public String f2;
  		@BeanProperty(beanUri=true) public URI f3;
  		public URI f4a, f4b;
--		@BeanProperty(transform=CalendarSwap.ISO8601DTZ.class) public Calendar f5;
++		@BeanProperty(swap=CalendarSwap.ISO8601DTZ.class) public Calendar f5;
  		public LinkedList<A1> f6 = new LinkedList<A1>();
  
  		public A init() throws Exception {
@@@ -131,7 -131,7 +131,7 @@@
  		public String f2;
  		@BeanProperty(beanUri=true) public URI f3;
  		public URI f4a, f4b;
--		@BeanProperty(transform=CalendarSwap.ISO8601DTZ.class) public Calendar f5;
++		@BeanProperty(swap=CalendarSwap.ISO8601DTZ.class) public Calendar f5;
  
  		public A1 init() throws Exception {
  			f1 = 1;

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-core/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java
----------------------------------------------------------------------
diff --cc juneau-core/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java
index 4ed72cc,4ed72cc..72cf3eb
--- a/juneau-core/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java
+++ b/juneau-core/src/test/java/org/apache/juneau/transforms/CalendarSwapTest.java
@@@ -648,7 -648,7 +648,7 @@@ public class CalendarSwapTest 
  
  	@Bean(sort=true)
  	public static class A {
--		@BeanProperty(transform=CalendarSwap.ISO8601DTZ.class)
++		@BeanProperty(swap=CalendarSwap.ISO8601DTZ.class)
  		public Calendar d1;
  		private Calendar d2, d3;
  		public A(Calendar date) {
@@@ -657,7 -657,7 +657,7 @@@
  
  		public A() {}
  
--		@BeanProperty(transform=CalendarSwap.RFC2822DTZ.class)
++		@BeanProperty(swap=CalendarSwap.RFC2822DTZ.class)
  		public Calendar getD2() {
  			return d2;
  		}
@@@ -668,7 -668,7 +668,7 @@@
  		public Calendar getD3() {
  			return d3;
  		}
--		@BeanProperty(transform=CalendarLongSwap.class)
++		@BeanProperty(swap=CalendarLongSwap.class)
  		public void setD3(Calendar d3) {
  			this.d3 = d3;
  		}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
----------------------------------------------------------------------
diff --cc juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
index 41bdb87,41bdb87..6b0f7ac
--- a/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
+++ b/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java
@@@ -307,7 -307,7 +307,7 @@@ public class DirectoryResource extends 
  		/**
  		 * @return The file last modified timestamp.
  		 */
--		@BeanProperty(transform=DateSwap.ISO8601DTP.class)
++		@BeanProperty(swap=DateSwap.ISO8601DTP.class)
  		public Date getLastModified() {
  			return new Date(f.lastModified());
  		}

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
----------------------------------------------------------------------
diff --cc juneau-microservice/src/main/java/org/apache/juneau/microservice/resources/LogsResource.java
index f08a5a2,f08a5a2..dd64a0d
--- 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
@@@ -262,7 -262,7 +262,7 @@@ public class LogsResource extends Resou
  		public String type;
  		public Object name;
  		public Long size;
--		@BeanProperty(transform=DateSwap.Medium.class) public Date lastModified;
++		@BeanProperty(swap=DateSwap.Medium.class) public Date lastModified;
  		public URL view, highlighted, parsed, download, delete;
  
  		public FileResource(File f, URL url) throws IOException {

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-samples/src/main/java/org/apache/juneau/samples/addressbook/CreatePerson.java
----------------------------------------------------------------------
diff --cc juneau-samples/src/main/java/org/apache/juneau/samples/addressbook/CreatePerson.java
index 666f5e0,666f5e0..4321c17
--- a/juneau-samples/src/main/java/org/apache/juneau/samples/addressbook/CreatePerson.java
+++ b/juneau-samples/src/main/java/org/apache/juneau/samples/addressbook/CreatePerson.java
@@@ -28,7 -28,7 +28,7 @@@ public class CreatePerson 
  
  	// Bean properties
  	public String name;
--	@BeanProperty(transform=CalendarSwap.Medium.class) public Calendar birthDate;
++	@BeanProperty(swap=CalendarSwap.Medium.class) public Calendar birthDate;
  	public LinkedList<CreateAddress> addresses = new LinkedList<CreateAddress>();
  
  	/** Bean constructor - Needed for instantiating on server side */

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-samples/src/main/java/org/apache/juneau/samples/addressbook/Person.java
----------------------------------------------------------------------
diff --cc juneau-samples/src/main/java/org/apache/juneau/samples/addressbook/Person.java
index 0e1131d,0e1131d..f27b943
--- a/juneau-samples/src/main/java/org/apache/juneau/samples/addressbook/Person.java
+++ b/juneau-samples/src/main/java/org/apache/juneau/samples/addressbook/Person.java
@@@ -34,7 -34,7 +34,7 @@@ public class Person 
  	public URI addressBookUri;
  	public int id;
  	public String name;
--	@BeanProperty(transform=CalendarSwap.Medium.class) public Calendar birthDate;
++	@BeanProperty(swap=CalendarSwap.Medium.class) public Calendar birthDate;
  	public LinkedList<Address> addresses = new LinkedList<Address>();
  
  	/** Bean constructor - Needed for instantiating on server side */

http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/a91a56f5/juneau-samples/src/main/java/org/apache/juneau/server/samples/UrlEncodedFormResource.java
----------------------------------------------------------------------
diff --cc juneau-samples/src/main/java/org/apache/juneau/server/samples/UrlEncodedFormResource.java
index 66c8085,66c8085..8a87cd5
--- a/juneau-samples/src/main/java/org/apache/juneau/server/samples/UrlEncodedFormResource.java
+++ b/juneau-samples/src/main/java/org/apache/juneau/server/samples/UrlEncodedFormResource.java
@@@ -47,7 -47,7 +47,7 @@@ public class UrlEncodedFormResource ext
  	public static class FormInputBean {
  		public String aString;
  		public int aNumber;
--		@BeanProperty(transform=CalendarSwap.ISO8601DT.class)
++		@BeanProperty(swap=CalendarSwap.ISO8601DT.class)
  		public Calendar aDate;
  	}
  }


[2/2] incubator-juneau git commit: Merge remote-tracking branch 'origin/master'

Posted by ja...@apache.org.
Merge remote-tracking branch 'origin/master'

Conflicts:
	juneau-core/src/main/java/org/apache/juneau/annotation/Pojo.java


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

Branch: refs/heads/master
Commit: 0cf51a696ccaad667f83d93175cad31faf17fffd
Parents: a91a56f cb4a4f2
Author: jamesbognar <ja...@gmail.com>
Authored: Sat Aug 27 11:58:25 2016 -0400
Committer: jamesbognar <ja...@gmail.com>
Committed: Sat Aug 27 11:58:25 2016 -0400

----------------------------------------------------------------------
 juneau-core/src/main/java/org/apache/juneau/annotation/Pojo.java | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/0cf51a69/juneau-core/src/main/java/org/apache/juneau/annotation/Pojo.java
----------------------------------------------------------------------
diff --cc juneau-core/src/main/java/org/apache/juneau/annotation/Pojo.java
index 3a4d98e,c417341..cd56ab9
--- a/juneau-core/src/main/java/org/apache/juneau/annotation/Pojo.java
+++ b/juneau-core/src/main/java/org/apache/juneau/annotation/Pojo.java
@@@ -32,54 -82,7 +32,58 @@@ import org.apache.juneau.transform.*
  public @interface Pojo {
  
  	/**
++<<<<<<< HEAD
 +	 * Associate a {@link PojoSwap} or {@link SurrogateSwap} with this class type.
 +	 * <p>
 +	 * Supports the following class types:
 +	 * <ul>
 +	 * 	<li>Subclasses of {@link PojoSwap}.
 +	 * 	<li>Any other class.  Will get interpreted as a {@link SurrogateSwap}.
 +	 * </ul>
 +	 *
 +	 * <h6 class='topic'>Example</h6>
 +	 * <p>
 +	 * 	In this case, a swap is being applied to a bean that will force it to be serialized as a <code>String</code>
 +	 * <p class='bcode'>
 +	 * 	<jc>// Our bean class</jc>
 +	 * 	<ja>@Pojo</ja>(swap=BSwap.<jk>class</jk>)
 +	 * 	<jk>public class</jk> B {
 +	 * 		<jk>public</jk> String <jf>f1</jf>;
 +	 * 	}
 +	 *
 +	 * 	<jc>// Our transform to force the bean to be serialized as a String</jc>
 +	 * 	<jk>public class</jk> BSwap <jk>extends</jk> PojoSwap&lt;B,String&gt; {
 +	 * 		<jk>public</jk> String swap(B o) <jk>throws</jk> SerializeException {
 +	 * 			<jk>return</jk> o.f1;
 +	 * 		}
 +	 * 		<jk>public</jk> B unswap(String f) <jk>throws</jk> ParseException {
 +	 * 			B b1 = <jk>new</jk> B();
 +	 * 			b1.<jf>f1</jf> = f;
 +	 * 			<jk>return</jk> b1;
 +	 * 		}
 +	 * 	}
 +	 *
 +	 * 	<jk>public void</jk> test() <jk>throws</jk> Exception {
 +	 * 		WriterSerializer s = JsonSerializer.<jsf>DEFAULT</jsf>;
 +	 * 		B b = <jk>new</jk> B();
 +	 * 		b.<jf>f1</jf> = <js>"bar"</js>;
 +	 * 		String json = s.serialize(b);
 +	 * 		<jsm>assertEquals</jsm>(<js>"'bar'"</js>, json);
 +	 *
 +	 * 		ReaderParser p = JsonParser.<jsf>DEFAULT</jsf>;
 +	 * 		b = p.parse(json, B.<jk>class</jk>);
 +	 * 		<jsm>assertEquals</jsm>(<js>"bar"</js>, t.<jf>f1</jf>);
 +	 * 	}
 +	 * </p>
 +	 * <p>
 +	 * 	Note that using this annotation is functionally equivalent to adding swaps to the serializers and parsers:
 +	 * <p class='bcode'>
 +	 * 	WriterSerializer s = <jk>new</jk> JsonSerializer.addTransforms(BSwap.<jk>class</jk>);
 +	 * 	ReaderParser p = <jk>new</jk> JsonParser.addTransforms(BSwap.<jk>class</jk>);
 +	 * </p>
++=======
+ 	 * Associate a {@link PojoSwap} or {@link SurrogateSwap} with this class type. 
++>>>>>>> refs/remotes/origin/master
  	 */
 -	Class<? extends Transform> transform() default Transform.NULL.class;
 +	Class<?> swap() default Null.class;
  }