Repository: incubator-juneau Updated Branches: refs/heads/master e7ab5a47b -> 5b8990ed5
http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ceeb6738/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java index ea6378a..7eaa10f 100644 --- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java +++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/UrlEncodingSerializerSession.java @@ -76,7 +76,7 @@ public class UrlEncodingSerializerSession extends UonSerializerSession { public final boolean shouldUseExpandedParams(Object value) { if (value == null || ! expandedParams) return false; - ClassMeta<?> cm = getBeanContext().getClassMetaForObject(value).getTransformedClassMeta(); + ClassMeta<?> cm = getBeanContext().getClassMetaForObject(value).getSerializedClassMeta(); if (cm.isArray() || cm.isCollection()) { if (expandedParams) return true; http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ceeb6738/juneau-core/src/main/java/org/apache/juneau/urlencoding/package.html ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/urlencoding/package.html b/juneau-core/src/main/java/org/apache/juneau/urlencoding/package.html index f67d1ed..269c7c1 100644 --- a/juneau-core/src/main/java/org/apache/juneau/urlencoding/package.html +++ b/juneau-core/src/main/java/org/apache/juneau/urlencoding/package.html @@ -206,7 +206,7 @@ <p> Refer to the <a href='doc-files/rfc_uon.txt'>UON specification</a> for a complete set of syntax rules. <p> - Transforms can be used to convert non-serializable POJOs into serializable forms, such as converting + <code>PojoSwaps</code> can be used to convert non-serializable POJOs into serializable forms, such as converting <code>Calendar</code> object to ISO8601 strings, or <code><jk>byte</jk>[]</code> arrays to Base-64 encoded strings.<br> These transforms can be associated at various levels: </p> http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ceeb6738/juneau-core/src/main/java/org/apache/juneau/xml/XmlParser.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlParser.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlParser.java index 53c8ac4..0efb85f 100644 --- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlParser.java +++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlParser.java @@ -68,7 +68,7 @@ public class XmlParser extends ReaderParser { if (nt == null) nt = (ClassMeta<T>)object(); PojoSwap<T,Object> transform = (PojoSwap<T,Object>)nt.getPojoSwap(); - ClassMeta<?> ft = nt.getTransformedClassMeta(); + ClassMeta<?> ft = nt.getSerializedClassMeta(); session.setCurrentClass(ft); String wrapperAttr = (isRoot && session.isPreserveRootElement()) ? r.getName().getLocalPart() : null; http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ceeb6738/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializer.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializer.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializer.java index dc74bba..fcd644d 100644 --- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializer.java +++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSchemaSerializer.java @@ -292,7 +292,7 @@ public class XmlSchemaSerializer extends XmlSerializer { return false; processedElements.add(name); - ClassMeta<?> ft = cm.getTransformedClassMeta(); + ClassMeta<?> ft = cm.getSerializedClassMeta(); int i = session.getIndent() + 1; if (name == null) name = getElementName(ft); @@ -332,7 +332,7 @@ public class XmlSchemaSerializer extends XmlSerializer { int i = session.getIndent() + 1; - cm = cm.getTransformedClassMeta(); + cm = cm.getSerializedClassMeta(); w.oTag(i, "complexType") .attr("name", name); @@ -520,7 +520,7 @@ public class XmlSchemaSerializer extends XmlSerializer { } private String getElementName(ClassMeta<?> cm) { - cm = cm.getTransformedClassMeta(); + cm = cm.getSerializedClassMeta(); String name = cm.getExtendedMeta(XmlClassMeta.class).getElementName(); if (name == null) { @@ -550,7 +550,7 @@ public class XmlSchemaSerializer extends XmlSerializer { private String getXmlType(Namespace currentNs, ClassMeta<?> cm) { String name = null; - cm = cm.getTransformedClassMeta(); + cm = cm.getSerializedClassMeta(); if (currentNs == targetNs && ! session.isAddJsonTypeAttrs()) { if (cm.isBoolean()) name = "boolean"; http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ceeb6738/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java index ff06da1..a30d902 100644 --- a/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java +++ b/juneau-core/src/main/java/org/apache/juneau/xml/XmlSerializer.java @@ -324,20 +324,20 @@ public class XmlSerializer extends WriterSerializer { aType = ((Delegate)o).getClassMeta(); } - gType = aType.getTransformedClassMeta(); + gType = aType.getSerializedClassMeta(); - // Transform if necessary - PojoSwap transform = aType.getPojoSwap(); - if (transform != null) { - o = transform.swap(o, bc); + // Swap if necessary + PojoSwap swap = aType.getPojoSwap(); + if (swap != null) { + o = swap.swap(o, bc); - // If the transform's getTransformedClass() method returns Object, we need to figure out + // If the getSwapClass() method returns Object, we need to figure out // the actual type now. if (gType.isObject()) gType = bc.getClassMetaForObject(o); } } else { - gType = eType.getTransformedClassMeta(); + gType = eType.getSerializedClassMeta(); } String classAttr = null; http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ceeb6738/juneau-core/src/main/java/overview.html ---------------------------------------------------------------------- diff --git a/juneau-core/src/main/java/overview.html b/juneau-core/src/main/java/overview.html index c8163c6..568fe9b 100644 --- a/juneau-core/src/main/java/overview.html +++ b/juneau-core/src/main/java/overview.html @@ -421,10 +421,10 @@ <tr class='dark bb' style='background-color:lightyellow'> <td style='text-align:center'>4</td> <td> - <b>Transformed objects</b><br> + <b>Swapped objects</b><br> These are objects that are not directly serializable, but have {@link org.apache.juneau.transform.PojoSwap PojoSwaps} associated with them. - The purpose of an object transform is to convert an object to another object that is easier to serialize and parse. - For example, the {@link org.apache.juneau.transforms.DateSwap.ISO8601DT} transform can be used to serialize {@link java.util.Date} objects + The purpose of a POJO swap is to convert an object to another object that is easier to serialize and parse. + For example, the {@link org.apache.juneau.transforms.DateSwap.ISO8601DT} class can be used to serialize {@link java.util.Date} objects to ISO8601 strings, and parse them back into {@link java.util.Date} objects. </td> <td> </td> @@ -434,8 +434,8 @@ <tr class='light bb'> <td style='text-align:center'>4a</td> <td> - <b>2-way transformed to group [1, 2a, 3a] objects</b><br> - For example, a transform that converts a {@code Date} to a {@code String}. + <b>2-way swapped to group [1, 2a, 3a] objects</b><br> + For example, a swap that converts a {@code Date} to a {@code String}. </td> <td> </td> <td style='background-color:lightgreen;text-align:center'><b>yes</b></td> @@ -444,8 +444,8 @@ <tr class='light bb'> <td style='text-align:center'>4b</td> <td> - <b>1-way transformed to group [1, 2, 3] objects</b><br> - For example, a transform that converts an {@code Iterator} to a {@code List}. + <b>1-way swapped to group [1, 2, 3] objects</b><br> + For example, a swap that converts an {@code Iterator} to a {@code List}. This would be one way, since you cannot reconstruct an {@code Iterator}. </td> <td> </td> @@ -496,7 +496,7 @@ </p> <p> Default serialization support is provided for Java primitives, <l>Maps</l>, <l>Collections</l>, beans, and arrays. <br> - Extensible support for other data types such as <l>Calendars</l>, <l>Dates</l>, <l>Iterators</l> is available through the use of transforms. + Extensible support for other data types such as <l>Calendars</l>, <l>Dates</l>, <l>Iterators</l> is available through the use of POJO swaps. </p> <p> In most cases, you can serialize objects in one line of code by using one of the default serializers: @@ -808,11 +808,11 @@ <h6 class='topic'>Additional Information</h6> <ul class='javahierarchy'> + <li class='n'>{@link org.apache.juneau.annotation.Pojo @Pojo} - Used to tailor how non-bean POJOs get interpreted by the framework. <li class='n'>{@link org.apache.juneau.annotation.Bean @Bean} - Used to tailor how beans get interpreted by the framework. <li class='n'>{@link org.apache.juneau.annotation.BeanConstructor @BeanConstructor} - Maps constructor arguments to property names on beans with read-only properties. <li class='n'>{@link org.apache.juneau.annotation.BeanIgnore @BeanIgnore} - Ignore classes, fields, and methods from being interpreted as bean or bean components. <li class='n'>{@link org.apache.juneau.annotation.BeanProperty @BeanProperty} - Used to tailor how bean properties get interpreted by the framework. - <li class='n'>{@link org.apache.juneau.annotation.Transform @Transform} - Annotation that can be applied to a class to associate a transform with it. <li class='n'>{@link org.apache.juneau.annotation.NameProperty @NameProperty} - Identifies a setter as a method for setting the name of a POJO as it's known by its parent object. <li class='n'>{@link org.apache.juneau.annotation.ParentProperty @ParentProperty} - Identifies a setter as a method for adding a parent reference to a child object. <li class='n'>{@link org.apache.juneau.annotation.URI @URI} - Used to identify a class or bean property as a URI. @@ -831,14 +831,14 @@ The following example is equivalent to specifying the <l>@Bean</l> annotation in the previous example using a bean filter: </p> <p class='bcode'> - <jc>// Define transform that returns properties in the following order: "street", "city", "state"</jc> + <jc>// Define bean filter that returns properties in the following order: "street", "city", "state"</jc> <jk>public class</jk> AddressFilter <jk>extends</jk> BeanFilter<Address> { <jk>public</jk> AddressFilter() { setProperties(<js>"street"</js>,<js>"city"</js>,<js>"state"</js>); } } - WriterSerializer s = <jk>new</jk> JsonSerializer().addTransforms(AddressFilter.<jk>class</jk>); + WriterSerializer s = <jk>new</jk> JsonSerializer().addBeanFilters(AddressFilter.<jk>class</jk>); Address a = getAddress(); String json = s.serialize(a); <jc>// Prints "{street:'...',city:'...',state;'...'}"</jc> </p> @@ -853,7 +853,7 @@ The following POJO swap can be used to represent dates in ISO8601 format: </p> <p class='bcode'> - <jc>// Sample transform for converting Dates to ISO8601 strings.</jc> + <jc>// Sample swap for converting Dates to ISO8601 strings.</jc> <jk>public class</jk> MyDateSwap <jk>extends</jk> PojoSwap<Date,String> { <jc>// ISO8601 formatter.</jc> @@ -867,7 +867,7 @@ <jd>/** Converts an ISO8601 string to a Date object. */</jd> <ja>@Override</ja> - <jk>public</jk> Date unswap(String o, ClassMeta<?> hint) <jk>throws</jk> ParseException { + <jk>public</jk> Date unswap(String o) <jk>throws</jk> ParseException { <jk>try</jk> { <jk>return</jk> <jf>format</jf>.parse(o); } <jk>catch</jk> (java.text.ParseException e) { @@ -877,7 +877,7 @@ } </p> <p> - The transform above can then be associated with serializers and parsers as the following example shows: + The swap above can then be associated with serializers and parsers as the following example shows: </p> <p class='bcode'> <jc>// Sample bean with a Date field.</jc> @@ -885,12 +885,12 @@ <jk>public</jk> Date <jf>date</jf> = <jk>new</jk> Date(112, 2, 3, 4, 5, 6); } - <jc>// Create a new JSON serializer, associate our date transform with it, and serialize a sample bean.</jc> - Serializer serializer = <jk>new</jk> JsonSerializer().addTransforms(MyDateSwap.<jk>class</jk>); + <jc>// Create a new JSON serializer, associate our date swap with it, and serialize a sample bean.</jc> + Serializer serializer = <jk>new</jk> JsonSerializer().addPojoSwaps(MyDateSwap.<jk>class</jk>); String json = serializer.serialize(<jk>new</jk> MyBean()); <jc>// == "{date:'2012-03-03T04:05:06-0500'}"</jc> - <jc>// Create a JSON parser, associate our date transform with it, and reconstruct our bean (including the date).</jc> - ReaderParser parser = <jk>new</jk> JsonParser().addTransforms(MyDateSwap.<jk>class</jk>); + <jc>// Create a JSON parser, associate our date swap with it, and reconstruct our bean (including the date).</jc> + ReaderParser parser = <jk>new</jk> JsonParser().addPojoSwaps(MyDateSwap.<jk>class</jk>); MyBean bean = parser.parse(json, MyBean.<jk>class</jk>); <jk>int</jk> day = bean.<jf>date</jf>.getDay(); <jc>// == 3</jc> </p> @@ -903,7 +903,7 @@ </div> <!-- ======================================================================================================== --> - <a id="Core.Transforms"></a> + <a id="Core.SVL"></a> <h4 class='topic' onclick='toggle(this)'>2.8 - Simple Variable Language</h4> <div class='topic'> <p> @@ -1245,7 +1245,7 @@ <jk>public</jk> URI <jf>addressBookUri</jf>; <jk>public int</jk> <jf>id</jf>; <jk>public</jk> String <jf>name</jf>; - <ja>@BeanProperty</ja>(transform=CalendarSwap.Medium.<jk>class</jk>) <jk>public</jk> Calendar <jf>birthDate</jf>; + <ja>@BeanProperty</ja>(pojoSwaps=CalendarSwap.Medium.<jk>class</jk>) <jk>public</jk> Calendar <jf>birthDate</jf>; <jk>public</jk> LinkedList<Address> <jf>addresses</jf>; } @@ -2088,7 +2088,7 @@ <jk>public static class</jk> FormInputBean { <jk>public</jk> String aString; <jk>public int</jk> aNumber; - <ja>@BeanProperty</ja>(transform=CalendarSwap.<jsf>ISO8601DT</jsf>.<jk>class</jk>) + <ja>@BeanProperty</ja>(pojoSwaps=CalendarSwap.<jsf>ISO8601DT</jsf>.<jk>class</jk>) <jk>public</jk> Calendar aDate; } } @@ -2195,8 +2195,8 @@ <ul class='spaced-list'> <li>Using the {@link org.apache.juneau.server.annotation.RestResource#properties() @RestResource.properties()} annotation to set serializer properties. - <li>Using the {@link org.apache.juneau.server.annotation.RestResource#transforms() @RestResource.transforms()} - annotation to set serializer transforms. + <li>Using the {@link org.apache.juneau.server.annotation.RestResource#beanFilters() @RestResource.beanFilters()} and {@link org.apache.juneau.server.annotation.RestResource#pojoSwaps() @RestResource.pojoSwaps()} + annotations to set serializer transforms. <li>Using the {@link org.apache.juneau.server.annotation.Properties @Properties} annotation to set serializers properties programmatically on a request. </ul> @@ -2216,10 +2216,12 @@ <ja>@Property</ja>(name=<jsf>SERIALIZER_detectRecursions</jsf>, value=<js>"true"</js>), <ja>@Property</ja>(name=<jsf>HTMLDOC_links</jsf>, value=<js>"{up:'$R{requestParentURI}',options:'?method=OPTIONS',source:'$R{servletParentURI}/source?classes=(org.apache.juneau.server.samples.RequestEchoResource)'}"</js>) }, - transforms={ + beanFilters={ <jc>// Interpret these as their parent classes, not subclasses</jc> HttpServletRequest.<jk>class</jk>, HttpSession.<jk>class</jk>, ServletContext.<jk>class</jk>, - <jc>// Add a special transform for Enumerations</jc> + }, + pojoSwaps={ + <jc>// Add a special POJO swap for Enumerations</jc> EnumerationSwap.<jk>class</jk> } ) @@ -2246,8 +2248,9 @@ not implementation-specific (i.e. WAS or Jetty) fields which can get messy. </p> <p> - The {@link org.apache.juneau.server.annotation.RestResource#properties() @RestResource.properties()} and - {@link org.apache.juneau.server.annotation.RestResource#transforms() @RestResopurce.transforms()} annotations are used + The {@link org.apache.juneau.server.annotation.RestResource#properties() @RestResource.properties()}, + {@link org.apache.juneau.server.annotation.RestResource#beanFilters() @RestResopurce.beanFilters()}, and + {@link org.apache.juneau.server.annotation.RestResource#pojoSwaps() @RestResopurce.pojoSwaps()} annotations are used to set behavior properties on the resource's underlying bean context, serializers, and parsers. You're using them here to modify the behavior of serialization for all content types. The annotations are functionally equivalent to overriding the {@link org.apache.juneau.server.RestServlet#createSerializers(ObjectMap,Class[])} method, as follows: @@ -2263,12 +2266,12 @@ <jc>// Add bean filters for the HttpServletRequest, HttpSession, and ServletContext objects // so that you don't show vendor-specific properties on subclasses. - // Add Enumeration transform to be able to render the contents of Enumeration properties. + // Add Enumeration POJO swap to be able to render the contents of Enumeration properties. // The max depth and detect recursion options prevent any possible runaway serializations. // This shouldn't happen, but future JEE APIs may introduce deep hierarchies or loops.</jc> serializerGroup - .addTransforms(HttpServletRequest.<jk>class</jk>, HttpSession.<jk>class</jk>, ServletContext.<jk>class</jk>) - .addTransforms(EnumerationSwap.<jk>class</jk>) + .addBeanFilters(HttpServletRequest.<jk>class</jk>, HttpSession.<jk>class</jk>, ServletContext.<jk>class</jk>) + .addPojoSwaps(EnumerationSwap.<jk>class</jk>) .setProperty(<jsf>SERIALIZER_maxDepth</jsf>, 10) .setProperty(<jsf>SERIALIZER_detectRecursions</jsf>, <jk>true</jk>); .setProperty(<jsf>HTMLDOC_links</jsf>, <js>"{...}"</js>); @@ -2522,7 +2525,7 @@ <jk>public</jk> URI <jf>addressBookUri</jf>; <jk>public</jk> String <jf>id</jf>; <jk>public</jk> String <jf>name</jf>; - <ja>@BeanProperty</ja>(transform=CalendarSwap.Medium.<jk>class</jk>) <jk>public</jk> Calendar <jf>birthDate</jf>; + <ja>@BeanProperty</ja>(pojoSwap=CalendarSwap.Medium.<jk>class</jk>) <jk>public</jk> Calendar <jf>birthDate</jf>; <jk>public</jk> LinkedList<Address> <jf>addresses</jf> = new LinkedList<Address>(); <jd>/** Bean constructor - Needed for instantiating on server side */</jd> @@ -2566,7 +2569,7 @@ resource. This property has special meaning for the XML and RDF serializizers. The XML serializer serializes this as a <l>uri</l> attribute instead of an <l><uri></l> element, and the RDF serializer uses this property for the value of the <l>rdf:resource</l> attribute. - <li>The <code><ja>@BeanProperty</ja>(transform=CalendarSwap.Medium.<jk>class</jk>)</code> annotation causes the date field to + <li>The <code><ja>@BeanProperty</ja>(pojoSwap=CalendarSwap.Medium.<jk>class</jk>)</code> annotation causes the date field to be serialized in the format <l>"MM dd, yyyy"</l>. This could have also been specified globally on the resource level through the {@link org.apache.juneau.server.annotation.RestResource#properties} annotation. </ul> @@ -2625,7 +2628,7 @@ <jc>// Bean properties</jc> <jk>public</jk> String <jf>name</jf>; - <ja>@BeanProperty(</ja>transform=CalendarSwap.Medium.<jk>class</jk>) <jk>public</jk> Calendar <jf>birthDate</jf>; + <ja>@BeanProperty(</ja>pojoSwap=CalendarSwap.Medium.<jk>class</jk>) <jk>public</jk> Calendar <jf>birthDate</jf>; <jk>public</jk> LinkedList<CreateAddress> <jf>addresses</jf>; <jd>/** Bean constructor - Needed for instantiating on server side */</jd> @@ -2899,7 +2902,7 @@ <jk>new</jk> Column(<js>"name"</js>, <js>"xs:String"</js>, 255), <jk>new</jk> Column(<js>"age"</js>, <js>"xs:int"</js>), <jk>new</jk> Column(<js>"numAddresses"</js>, <js>"xs:int"</js>) - .addTransform( + .addPojoSwap( <jk>new</jk> PojoSwap<Person,Integer>() { <ja>@Override</ja> /* PojoSwap */ <jk>public</jk> Integer swap(Person p) { @@ -4451,11 +4454,11 @@ <h3 class='topic' onclick='toggle(this)'>8.2 - Server API</h3> <div class='topic'> <!-- ======================================================================================================== --> - <a id="Cookbook.Server.applyDoubletransform"></a> + <a id="Cookbook.Server.applyDoubleTransform"></a> <h3 class='topic' onclick='toggle(this)'>8.2.1 - Apply a transform that changes the format of doubles</h3> <div class='topic'> <p> - The {@link org.apache.juneau.server.annotation.RestResource#transforms()} annotation can be used to add + The {@link org.apache.juneau.server.annotation.RestResource#pojoSwaps()} annotation can be used to add POJO swaps to all the serializers and parsers registered with a servlet. </p> <p> @@ -4464,7 +4467,7 @@ </p> <p class='bcode'> <ja>@RestResource</ja>( - transforms={ + pojoSwaps={ MyRestService.DoubleSwap.<jk>class</jk> } ) @@ -4486,20 +4489,20 @@ <h3 class='topic' onclick='toggle(this)'>8.2.2 - Apply transforms to a subset of serializers or parsers</h3> <div class='topic'> <p> - The {@link org.apache.juneau.server.RestServlet#createSerializers(ObjectMap,Class[])} and {@link org.apache.juneau.server.RestServlet#createParsers(ObjectMap,Class[])} + The {@link org.apache.juneau.server.RestServlet#createSerializers(ObjectMap,Class[],Class[])} and {@link org.apache.juneau.server.RestServlet#createParsers(ObjectMap,Class[],Class[])} methods are the servlet methods that get called during servlet initialization to create the serializer and parser groups. These methods can be overridden to customize individual serializers and parsers in a way that can't be done using annotations. </p> <p> - In this example, you want to apply the transform from the previous example to change the rendered format for doubles. - However, in this case, you apply the transform to only the HTML serializer. + In this example, you want to apply the swap from the previous example to change the rendered format for doubles. + However, in this case, you apply the swao to only the HTML serializer. </p> <p class='bcode'> <ja>@Override</ja> - <jk>protected</jk> SerializerGroup createSerializers(ObjectMap properties, Class[] transforms) <jk>throws</jk> Exception { - SerializerGroup g = <jk>super</jk>.createSerializers(properties, transforms); - g.getSerializer(<js>"text/html"</js>).addTransforms(DoubleSwap.<jk>class</jk>); + <jk>protected</jk> SerializerGroup createSerializers(ObjectMap properties, Class[] beanFilters, Class[] pojoSwaps) <jk>throws</jk> Exception { + SerializerGroup g = <jk>super</jk>.createSerializers(properties, beanFilters, pojoSwaps); + g.getSerializer(<js>"text/html"</js>).addPojoSwaps(DoubleSwap.<jk>class</jk>); <jk>return</jk> g; } </p> http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ceeb6738/juneau-core/src/test/java/org/apache/juneau/BeanFilterTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/BeanFilterTest.java b/juneau-core/src/test/java/org/apache/juneau/BeanFilterTest.java index 5c92efc..78fe620 100755 --- a/juneau-core/src/test/java/org/apache/juneau/BeanFilterTest.java +++ b/juneau-core/src/test/java/org/apache/juneau/BeanFilterTest.java @@ -93,10 +93,10 @@ public class BeanFilterTest { } //==================================================================================================== - // Test parent class used as transform + // Test parent class used as filter //==================================================================================================== @Test - public void testParentClassTransform() throws Exception { + public void testParentClassFilter() throws Exception { JsonSerializer s = new JsonSerializer.Simple().addBeanFilters(C1.class); C1 c1 = new C2(); @@ -118,10 +118,10 @@ public class BeanFilterTest { } //==================================================================================================== - // Test non-static parent class used as transform + // Test non-static parent class used as filter //==================================================================================================== @Test - public void testParentClassTransform2() throws Exception { + public void testParentClassFilter2() throws Exception { JsonSerializer s = new JsonSerializer.Simple().addBeanFilters(D1.class); D1 d1 = new D2(); http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ceeb6738/juneau-core/src/test/java/org/apache/juneau/BeanMapTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/BeanMapTest.java b/juneau-core/src/test/java/org/apache/juneau/BeanMapTest.java index 5f7be6f..e6f6f28 100755 --- a/juneau-core/src/test/java/org/apache/juneau/BeanMapTest.java +++ b/juneau-core/src/test/java/org/apache/juneau/BeanMapTest.java @@ -1481,10 +1481,10 @@ public class BeanMapTest { } //==================================================================================================== - // testCastToLinkedListUsingTransform - cast() to LinkedList<Calendar> using CalendarSwap + // testCastToLinkedListUsingSwap - cast() to LinkedList<Calendar> using CalendarSwap //==================================================================================================== @Test - public void testCastToLinkedListUsingTransform() throws Exception { + public void testCastToLinkedListUsingSwap() throws Exception { BeanContext bc = ContextFactory.create().addPojoSwaps(CalendarSwap.ISO8601DTZ.class).getBeanContext(); // With _class http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ceeb6738/juneau-core/src/test/java/org/apache/juneau/ClassMetaTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/ClassMetaTest.java b/juneau-core/src/test/java/org/apache/juneau/ClassMetaTest.java index 97fab32..d884564 100755 --- a/juneau-core/src/test/java/org/apache/juneau/ClassMetaTest.java +++ b/juneau-core/src/test/java/org/apache/juneau/ClassMetaTest.java @@ -107,11 +107,11 @@ public class ClassMetaTest { } //==================================================================================================== - // testTransforms - // Ensure filters on parent and child classes are properly detected. + // testSwaps + // Ensure swaps on parent and child classes are properly detected. //==================================================================================================== @Test - public void testTransforms() throws Exception { + public void testSwaps() throws Exception { BeanContext bc; ClassMeta<?> ooo, hi1, hc1, hi2, hc2; @@ -131,11 +131,11 @@ public class ClassMetaTest { assertNull(hc1.getPojoSwap()); assertNull(hi2.getPojoSwap()); assertNull(hc2.getPojoSwap()); - assertEquals(ooo.getTransformedClassMeta().getInnerClass(), Object.class); - assertEquals(hi1.getTransformedClassMeta().getInnerClass(), HI1.class); - assertEquals(hc1.getTransformedClassMeta().getInnerClass(), HC1.class); - assertEquals(hi2.getTransformedClassMeta().getInnerClass(), HI2.class); - assertEquals(hc2.getTransformedClassMeta().getInnerClass(), HC2.class); + assertEquals(ooo.getSerializedClassMeta().getInnerClass(), Object.class); + assertEquals(hi1.getSerializedClassMeta().getInnerClass(), HI1.class); + assertEquals(hc1.getSerializedClassMeta().getInnerClass(), HC1.class); + assertEquals(hi2.getSerializedClassMeta().getInnerClass(), HI2.class); + assertEquals(hc2.getSerializedClassMeta().getInnerClass(), HC2.class); bc = ContextFactory.create().addPojoSwaps(HI1Swap.class).getBeanContext(); ooo = bc.getClassMeta(Object.class); @@ -153,11 +153,11 @@ public class ClassMetaTest { assertEquals(hc1.getPojoSwap().getClass(), HI1Swap.class); assertEquals(hi2.getPojoSwap().getClass(), HI1Swap.class); assertEquals(hc2.getPojoSwap().getClass(), HI1Swap.class); - assertEquals(ooo.getTransformedClassMeta().getInnerClass(), Object.class); - assertEquals(hi1.getTransformedClassMeta().getInnerClass(), Map.class); - assertEquals(hc1.getTransformedClassMeta().getInnerClass(), Map.class); - assertEquals(hi2.getTransformedClassMeta().getInnerClass(), Map.class); - assertEquals(hc2.getTransformedClassMeta().getInnerClass(), Map.class); + assertEquals(ooo.getSerializedClassMeta().getInnerClass(), Object.class); + assertEquals(hi1.getSerializedClassMeta().getInnerClass(), Map.class); + assertEquals(hc1.getSerializedClassMeta().getInnerClass(), Map.class); + assertEquals(hi2.getSerializedClassMeta().getInnerClass(), Map.class); + assertEquals(hc2.getSerializedClassMeta().getInnerClass(), Map.class); bc = ContextFactory.create().addPojoSwaps(HC1Swap.class).getBeanContext(); ooo = bc.getClassMeta(Object.class); @@ -175,11 +175,11 @@ public class ClassMetaTest { assertEquals(hc1.getPojoSwap().getClass(), HC1Swap.class); assertNull(hi2.getPojoSwap()); assertEquals(hc2.getPojoSwap().getClass(), HC1Swap.class); - assertEquals(ooo.getTransformedClassMeta().getInnerClass(), Object.class); - assertEquals(hi1.getTransformedClassMeta().getInnerClass(), HI1.class); - assertEquals(hc1.getTransformedClassMeta().getInnerClass(), Map.class); - assertEquals(hi2.getTransformedClassMeta().getInnerClass(), HI2.class); - assertEquals(hc2.getTransformedClassMeta().getInnerClass(), Map.class); + assertEquals(ooo.getSerializedClassMeta().getInnerClass(), Object.class); + assertEquals(hi1.getSerializedClassMeta().getInnerClass(), HI1.class); + assertEquals(hc1.getSerializedClassMeta().getInnerClass(), Map.class); + assertEquals(hi2.getSerializedClassMeta().getInnerClass(), HI2.class); + assertEquals(hc2.getSerializedClassMeta().getInnerClass(), Map.class); bc = ContextFactory.create().addPojoSwaps(HI2Swap.class).getBeanContext(); ooo = bc.getClassMeta(Object.class); @@ -197,11 +197,11 @@ public class ClassMetaTest { assertNull(hc1.getPojoSwap()); assertEquals(hi2.getPojoSwap().getClass(), HI2Swap.class); assertEquals(hc2.getPojoSwap().getClass(), HI2Swap.class); - assertEquals(ooo.getTransformedClassMeta().getInnerClass(), Object.class); - assertEquals(hi1.getTransformedClassMeta().getInnerClass(), HI1.class); - assertEquals(hc1.getTransformedClassMeta().getInnerClass(), HC1.class); - assertEquals(hi2.getTransformedClassMeta().getInnerClass(), Map.class); - assertEquals(hc2.getTransformedClassMeta().getInnerClass(), Map.class); + assertEquals(ooo.getSerializedClassMeta().getInnerClass(), Object.class); + assertEquals(hi1.getSerializedClassMeta().getInnerClass(), HI1.class); + assertEquals(hc1.getSerializedClassMeta().getInnerClass(), HC1.class); + assertEquals(hi2.getSerializedClassMeta().getInnerClass(), Map.class); + assertEquals(hc2.getSerializedClassMeta().getInnerClass(), Map.class); bc = ContextFactory.create().addPojoSwaps(HC2Swap.class).getBeanContext(); ooo = bc.getClassMeta(Object.class); @@ -219,11 +219,11 @@ public class ClassMetaTest { assertNull(hc1.getPojoSwap()); assertNull(hi2.getPojoSwap()); assertEquals(hc2.getPojoSwap().getClass(), HC2Swap.class); - assertEquals(ooo.getTransformedClassMeta().getInnerClass(), Object.class); - assertEquals(hi1.getTransformedClassMeta().getInnerClass(), HI1.class); - assertEquals(hc1.getTransformedClassMeta().getInnerClass(), HC1.class); - assertEquals(hi2.getTransformedClassMeta().getInnerClass(), HI2.class); - assertEquals(hc2.getTransformedClassMeta().getInnerClass(), Map.class); + assertEquals(ooo.getSerializedClassMeta().getInnerClass(), Object.class); + assertEquals(hi1.getSerializedClassMeta().getInnerClass(), HI1.class); + assertEquals(hc1.getSerializedClassMeta().getInnerClass(), HC1.class); + assertEquals(hi2.getSerializedClassMeta().getInnerClass(), HI2.class); + assertEquals(hc2.getSerializedClassMeta().getInnerClass(), Map.class); bc = ContextFactory.create().addPojoSwaps(HI1Swap.class,HC1Swap.class,HI2Swap.class,HC2Swap.class).getBeanContext(); ooo = bc.getClassMeta(Object.class); @@ -241,11 +241,11 @@ public class ClassMetaTest { assertEquals(hc1.getPojoSwap().getClass(), HI1Swap.class); assertEquals(hi2.getPojoSwap().getClass(), HI1Swap.class); assertEquals(hc2.getPojoSwap().getClass(), HI1Swap.class); - assertEquals(ooo.getTransformedClassMeta().getInnerClass(), Object.class); - assertEquals(hi1.getTransformedClassMeta().getInnerClass(), Map.class); - assertEquals(hc1.getTransformedClassMeta().getInnerClass(), Map.class); - assertEquals(hi2.getTransformedClassMeta().getInnerClass(), Map.class); - assertEquals(hc2.getTransformedClassMeta().getInnerClass(), Map.class); + assertEquals(ooo.getSerializedClassMeta().getInnerClass(), Object.class); + assertEquals(hi1.getSerializedClassMeta().getInnerClass(), Map.class); + assertEquals(hc1.getSerializedClassMeta().getInnerClass(), Map.class); + assertEquals(hi2.getSerializedClassMeta().getInnerClass(), Map.class); + assertEquals(hc2.getSerializedClassMeta().getInnerClass(), Map.class); bc = ContextFactory.create().addPojoSwaps(HC2Swap.class,HI2Swap.class,HC1Swap.class,HI1Swap.class).getBeanContext(); ooo = bc.getClassMeta(Object.class); @@ -263,11 +263,11 @@ public class ClassMetaTest { assertEquals(hc1.getPojoSwap().getClass(), HC1Swap.class); assertEquals(hi2.getPojoSwap().getClass(), HI2Swap.class); assertEquals(hc2.getPojoSwap().getClass(), HC2Swap.class); - assertEquals(ooo.getTransformedClassMeta().getInnerClass(), Object.class); - assertEquals(hi1.getTransformedClassMeta().getInnerClass(), Map.class); - assertEquals(hc1.getTransformedClassMeta().getInnerClass(), Map.class); - assertEquals(hi2.getTransformedClassMeta().getInnerClass(), Map.class); - assertEquals(hc2.getTransformedClassMeta().getInnerClass(), Map.class); + assertEquals(ooo.getSerializedClassMeta().getInnerClass(), Object.class); + assertEquals(hi1.getSerializedClassMeta().getInnerClass(), Map.class); + assertEquals(hc1.getSerializedClassMeta().getInnerClass(), Map.class); + assertEquals(hi2.getSerializedClassMeta().getInnerClass(), Map.class); + assertEquals(hc2.getSerializedClassMeta().getInnerClass(), Map.class); } public interface HI1 {} http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ceeb6738/juneau-core/src/test/java/org/apache/juneau/DataConversionTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/DataConversionTest.java b/juneau-core/src/test/java/org/apache/juneau/DataConversionTest.java index e217850..9137bf9 100755 --- a/juneau-core/src/test/java/org/apache/juneau/DataConversionTest.java +++ b/juneau-core/src/test/java/org/apache/juneau/DataConversionTest.java @@ -129,10 +129,10 @@ public class DataConversionTest { } //==================================================================================================== - // Data conversions with object transforms. + // Data conversions with swaps. //==================================================================================================== @Test - public void testObjectTransforms() throws Exception { + public void testObjectSwaps() throws Exception { String s = "Jan 12, 2001"; BeanContext bc = ContextFactory.create().addPojoSwaps(CalendarSwap.Medium.class).getBeanContext(); Calendar c = bc.convertToType(s, GregorianCalendar.class); http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ceeb6738/juneau-core/src/test/java/org/apache/juneau/JacocoDummyTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/JacocoDummyTest.java b/juneau-core/src/test/java/org/apache/juneau/JacocoDummyTest.java index 3e6ca8d..85ede56 100755 --- a/juneau-core/src/test/java/org/apache/juneau/JacocoDummyTest.java +++ b/juneau-core/src/test/java/org/apache/juneau/JacocoDummyTest.java @@ -17,7 +17,6 @@ import java.lang.reflect.*; import org.apache.juneau.ini.*; import org.apache.juneau.internal.*; import org.apache.juneau.jena.*; -import org.apache.juneau.transform.*; import org.apache.juneau.xml.annotation.*; import org.junit.*; @@ -41,7 +40,6 @@ public class JacocoDummyTest { } ConfigFileFormat.valueOf(ConfigFileFormat.INI.toString()); - Transform.TransformType.valueOf(Transform.TransformType.POJO.toString()); RdfCollectionFormat.valueOf(RdfCollectionFormat.DEFAULT.toString()); XmlFormat.valueOf(XmlFormat.NORMAL.toString()); Visibility.valueOf(Visibility.DEFAULT.toString()); http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ceeb6738/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java b/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java index 18e5386..972054f 100755 --- a/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java +++ b/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripBeanMapsTest.java @@ -495,7 +495,7 @@ public class RoundTripBeanMapsTest extends RoundTripTest { // Test @Bean(properties=xxx) using BeanFilter //==================================================================================================== @Test - public void testPropertiesUsingTransform() throws Exception { + public void testPropertiesUsingBeanFilter() throws Exception { JsonSerializer js = JsonSerializer.DEFAULT_LAX.clone().addBeanFilters(D2Filter.class); // Skip validation-only tests @@ -560,7 +560,7 @@ public class RoundTripBeanMapsTest extends RoundTripTest { // Test @Bean(excludeProperties=xxx) using BeanFilter //==================================================================================================== @Test - public void testExcludePropertiesUsingTransform() throws Exception { + public void testExcludePropertiesUsingBeanFilter() throws Exception { // Skip validation-only tests if (isValidationOnly()) return; @@ -625,7 +625,7 @@ public class RoundTripBeanMapsTest extends RoundTripTest { // Test @Bean(interfaceClass=xxx) using BeanFilter //==================================================================================================== @Test - public void testInterfaceClassUsingTransform() throws Exception { + public void testInterfaceClassUsingBeanFilter() throws Exception { Serializer s; Parser p; FB2 t; @@ -635,7 +635,7 @@ public class RoundTripBeanMapsTest extends RoundTripTest { if (isValidationOnly()) return; - // --- Transform defined on parent class --- + // --- BeanFilter defined on parent class --- s = getSerializer().clone().addBeanFilters(FB1Filter.class); p = getParser().clone().addBeanFilters(FB1Filter.class); @@ -644,7 +644,7 @@ public class RoundTripBeanMapsTest extends RoundTripTest { t = p.parse(r, FB2.class); assertObjectEquals("{f1:'f1'}", t); - // --- Transform defined on child class class --- + // --- BeanFilter defined on child class class --- s = getSerializer().clone().addBeanFilters(FB2Filter.class); p = getParser().clone().addBeanFilters(FB2Filter.class); @@ -653,7 +653,7 @@ public class RoundTripBeanMapsTest extends RoundTripTest { t = p.parse(r, FB2.class); assertObjectEquals("{f1:'f1'}", t); - // --- Transform defined as plain class --- + // --- BeanFilter defined as plain class --- s = getSerializer().clone().addBeanFilters(FB1.class); p = getParser().clone().addBeanFilters(FB1.class); http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ceeb6738/juneau-core/src/test/java/org/apache/juneau/a/rttests/RoundTripTransformBeansTest.java ---------------------------------------------------------------------- diff --git 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 index eb03b41..14414e8 100755 --- 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 @@ -217,10 +217,10 @@ public class RoundTripTransformBeansTest extends RoundTripTest { } //==================================================================================================== - // testTransform - Bean.transform annotation + // testSwaps - Bean.pojoSwaps annotation //==================================================================================================== @Test - public void testTransform() throws Exception { + public void testSwaps() throws Exception { B t = new B(); t.f1 = "bar"; t = roundTrip(t, B.class); @@ -336,7 +336,7 @@ public class RoundTripTransformBeansTest extends RoundTripTest { // Surrogate transforms //==================================================================================================== @Test - public void testSurrogateTransform() throws Exception { + public void testSurrogates() throws Exception { addPojoSwaps(D2.class); JsonSerializer s = new JsonSerializer.Simple().addPojoSwaps(D2.class); http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ceeb6738/juneau-core/src/test/java/org/apache/juneau/transforms/BeanFilterTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/transforms/BeanFilterTest.java b/juneau-core/src/test/java/org/apache/juneau/transforms/BeanFilterTest.java index 18f6a0f..23b196d 100755 --- a/juneau-core/src/test/java/org/apache/juneau/transforms/BeanFilterTest.java +++ b/juneau-core/src/test/java/org/apache/juneau/transforms/BeanFilterTest.java @@ -23,10 +23,10 @@ import org.junit.*; public class BeanFilterTest { //==================================================================================================== - // Transformed interfaces + // Interface bean filters //==================================================================================================== @Test - public void testTransformedInterfaces() throws Exception { + public void testInterfaceBeanFilters() throws Exception { BeanContext bc; BeanMap<A3> bm; @@ -66,10 +66,10 @@ public class BeanFilterTest { } //==================================================================================================== - // Transformed abstract classes + // Abstract class bean filters //==================================================================================================== @Test - public void testTransformedAbstractClasses() throws Exception { + public void testAbstractClassBeanFilters() throws Exception { BeanContext bc; BeanMap<Test2> bm; @@ -111,10 +111,10 @@ public class BeanFilterTest { } //==================================================================================================== - // Transformed with stop classes + // Filtered with stop classes //==================================================================================================== @Test - public void testTransformedWithStopClass() throws Exception { + public void testFilteredWithStopClass() throws Exception { C3 c3 = new C3(); assertObjectEquals("{f3:3,p3:3}", c3); } @@ -136,7 +136,7 @@ public class BeanFilterTest { } @Test - public void testTransformedWithStopClassOnParentClass() throws Exception { + public void testFilterWithStopClassOnParentClass() throws Exception { D3 d3 = new D3(); assertObjectEquals("{f3:3,p3:3}", d3); } @@ -158,7 +158,7 @@ public class BeanFilterTest { } @Test - public void testTransformedWithStopClassOnParentClassWithOverriddenAnnotation() throws Exception { + public void testFilteredWithStopClassOnParentClassWithOverriddenAnnotation() throws Exception { E3 e3 = new E3(); assertObjectEquals("{f3:3,p3:3}", e3); } @@ -181,7 +181,7 @@ public class BeanFilterTest { } @Test - public void testTransformedWithStopClassesAtMulitpleLevels() throws Exception { + public void testFilteredWithStopClassesAtMulitpleLevels() throws Exception { F3 e3 = new F3(); assertObjectEquals("{f3:3,p3:3}", e3); } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ceeb6738/juneau-core/src/test/java/org/apache/juneau/transforms/DateFilterTest.java ---------------------------------------------------------------------- diff --git a/juneau-core/src/test/java/org/apache/juneau/transforms/DateFilterTest.java b/juneau-core/src/test/java/org/apache/juneau/transforms/DateFilterTest.java index 2d93b12..38f5334 100755 --- a/juneau-core/src/test/java/org/apache/juneau/transforms/DateFilterTest.java +++ b/juneau-core/src/test/java/org/apache/juneau/transforms/DateFilterTest.java @@ -154,7 +154,7 @@ public class DateFilterTest { final DateSwap.ISO8601DT dateSwap = new DateSwap.ISO8601DT(); // this works final String sValue = data.getString("birthday"); //$NON-NLS-1$ - dateSwap.unswap(sValue, data.getBeanContext().getClassMeta(Date.class)); + dateSwap.unswap(sValue, data.getBeanContext().getClassMeta(Date.class), null); // this does not work data.get(dateSwap, "birthday"); //$NON-NLS-1$ } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ceeb6738/juneau-samples/src/main/java/org/apache/juneau/server/samples/addressbook/AddressBookResource.java ---------------------------------------------------------------------- diff --git a/juneau-samples/src/main/java/org/apache/juneau/server/samples/addressbook/AddressBookResource.java b/juneau-samples/src/main/java/org/apache/juneau/server/samples/addressbook/AddressBookResource.java index 3593680..cd1777e 100755 --- a/juneau-samples/src/main/java/org/apache/juneau/server/samples/addressbook/AddressBookResource.java +++ b/juneau-samples/src/main/java/org/apache/juneau/server/samples/addressbook/AddressBookResource.java @@ -273,7 +273,7 @@ public class AddressBookResource extends ResourceJena { new Column("name", "xs:String", 255), new Column("age", "xs:int"), new Column("numAddresses", "xs:int") - .addTransform( + .addPojoSwap( new PojoSwap<Person,Integer>() { @Override /* PojoSwap */ public Integer swap(Person p) { http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ceeb6738/juneau-server/src/main/java/org/apache/juneau/server/RestServlet.java ---------------------------------------------------------------------- diff --git a/juneau-server/src/main/java/org/apache/juneau/server/RestServlet.java b/juneau-server/src/main/java/org/apache/juneau/server/RestServlet.java index 1eb84df..be5e604 100755 --- a/juneau-server/src/main/java/org/apache/juneau/server/RestServlet.java +++ b/juneau-server/src/main/java/org/apache/juneau/server/RestServlet.java @@ -436,7 +436,7 @@ public abstract class RestServlet extends HttpServlet { protected Class<?>[] createPojoSwaps() { List<Class<?>> l = new LinkedList<Class<?>>(); - // Transforms are loaded in parent-to-child order to allow overrides. + // Swaps are loaded in parent-to-child order to allow overrides. for (RestResource r : restResourceAnnotationsChildFirst.values()) for (Class c : r.pojoSwaps()) l.add(c); http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ceeb6738/juneau-server/src/main/java/org/apache/juneau/server/labels/BeanDescription.java ---------------------------------------------------------------------- diff --git a/juneau-server/src/main/java/org/apache/juneau/server/labels/BeanDescription.java b/juneau-server/src/main/java/org/apache/juneau/server/labels/BeanDescription.java index 31621df..a57342d 100755 --- a/juneau-server/src/main/java/org/apache/juneau/server/labels/BeanDescription.java +++ b/juneau-server/src/main/java/org/apache/juneau/server/labels/BeanDescription.java @@ -66,7 +66,7 @@ public final class BeanDescription { */ public BeanPropertyDescription(String name, ClassMeta<?> type) { this.name = name; - this.type = type.getTransformedClassMeta().toString(); + this.type = type.getSerializedClassMeta().toString(); } } } http://git-wip-us.apache.org/repos/asf/incubator-juneau/blob/ceeb6738/juneau-server/src/main/java/org/apache/juneau/server/package.html ---------------------------------------------------------------------- diff --git a/juneau-server/src/main/java/org/apache/juneau/server/package.html b/juneau-server/src/main/java/org/apache/juneau/server/package.html index 62a7897..43f8fab 100755 --- a/juneau-server/src/main/java/org/apache/juneau/server/package.html +++ b/juneau-server/src/main/java/org/apache/juneau/server/package.html @@ -893,7 +893,7 @@ <jk>public static class</jk> FormInputBean { <jk>public</jk> String <jf>aString</jf>; <jk>public int</jk> <jf>aNumber</jf>; - <ja>@BeanProperty</ja>(transform=CalendarSwap.<jsf>ISO8601DT</jsf>.<jk>class</jk>) + <ja>@BeanProperty</ja>(pojoSwaps=CalendarSwap.<jsf>ISO8601DT</jsf>.<jk>class</jk>) <jk>public</jk> Calendar <jf>aDate</jf>; } } @@ -1538,20 +1538,22 @@ (See <a class='doclink' href='../../../../overview-summary.html#Core.Transforms'>Transforms</a>) </p> <p> - The {@link org.apache.juneau.server.annotation.RestResource#transforms() @RestResource.transforms()} annotation - can be used as a convenient way to add POJO swaps to the serializers and parsers + The {@link org.apache.juneau.server.annotation.RestResource#beanFilters() @RestResource.beanFilters()} + and {@link org.apache.juneau.server.annotation.RestResource#pojoSwaps() @RestResource.pojoSwaps()} annotations + can be used as a convenient way to add bean filters and POJO swaps to the serializers and parsers registered with the servlet. </p> <p class='bcode'> <jc>// Servlet with transforms applied</jc> <ja>@RestResource</ja>( - transforms={ + pojoSwaps={ <jc>// Calendars should be serialized/parsed as ISO8601 date-time strings</jc> CalendarSwap.<jsf>DEFAULT_ISO8601DT</jsf>.<jk>class</jk>, <jc>// Byte arrays should be serialized/parsed as BASE64-encoded strings</jc> ByteArrayBase64Swap.<jk>class</jk>, - + }, + beanFilters={ <jc>// Subclasses of MyInterface will be treated as MyInterface objects.</jc> <jc>// Bean properties not defined on that interface will be ignored.</jc> MyInterface.<jk>class</jk> @@ -1569,9 +1571,9 @@ Transforms can also be defined programmatically through the following: </p> <ul class='spaced-list'> - <li>By overriding the {@link org.apache.juneau.server.RestServlet#createTransforms()} method. - <li>By overriding the {@link org.apache.juneau.server.RestServlet#createSerializers(ObjectMap,Class[])} and - {@link org.apache.juneau.server.RestServlet#createParsers(ObjectMap,Class[])} methods and setting transforms on the + <li>By overriding the {@link org.apache.juneau.server.RestServlet#createBeanFilters()} and {@link org.apache.juneau.server.RestServlet#createPojoSwaps()} methods. + <li>By overriding the {@link org.apache.juneau.server.RestServlet#createSerializers(ObjectMap,Class[],Class[])} and + {@link org.apache.juneau.server.RestServlet#createParsers(ObjectMap,Class[],Class[])} methods and setting transforms on the serializers and parsers directly. </ul> @@ -2217,7 +2219,7 @@ <jk>public static class</jk> FormInputBean { <jk>public</jk> String <jf>aString</jf>; <jk>public int</jk> <jf>aNumber</jf>; - <ja>@BeanProperty</ja>(transform=CalendarSwap.<jsf>ISO8601DT</jsf>.<jk>class</jk>) + <ja>@BeanProperty</ja>(pojoSwaps=CalendarSwap.<jsf>ISO8601DT</jsf>.<jk>class</jk>) <jk>public</jk> Calendar <jf>aDate</jf>; } } @@ -2671,9 +2673,15 @@ </td> </tr> <tr> - <td>{@link org.apache.juneau.server.annotation.RestResource#transforms() transforms()}</td> + <td>{@link org.apache.juneau.server.annotation.RestResource#beanFilters() beanFilters()}</td> + <td> + Bean filters on child are combined with those on parent class. + </td> + </tr> + <tr> + <td>{@link org.apache.juneau.server.annotation.RestResource#pojoSwaps() pojoSwaps()}</td> <td> - Transforms on child are combined with those on parent class. + POJO swaps on child are combined with those on parent class. </td> </tr> <tr> @@ -3207,7 +3215,7 @@ <li><code><jk>public</jk> T(String in);</code> </ul> <li>Has a {@link org.apache.juneau.transform.PojoSwap} associated with the servlet - with a transformed type of <l>String</l>. + with a swapped type of <l>String</l>. </ul> </div>
