You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wink.apache.org by bl...@apache.org on 2009/09/18 22:17:24 UTC

svn commit: r816771 - in /incubator/wink/trunk: wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/xml/ wink-common/src/main/resources/META-INF/core/ wink-server/src/test/java/org/apache/wink/server/ wink-server/src/test/java/or...

Author: bluk
Date: Fri Sep 18 20:17:23 2009
New Revision: 816771

URL: http://svn.apache.org/viewvc?rev=816771&view=rev
Log:
XmlFormatting options should do nothing by default

See [WINK-202]

Added:
    incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/xml/XMLFormattingOptionsProvider.java   (with props)
Modified:
    incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/xml/AbstractJAXBProvider.java
    incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/xml/JAXBElementXmlProvider.java
    incubator/wink/trunk/wink-common/src/main/resources/META-INF/core/wink-providers
    incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/AbstractResourceBeanTest.java
    incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/AbstractResourceWithDuplicateWorkspaceTest.java
    incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/providers/entity/AssetProviderTest.java
    incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/providers/entity/JAXBElementProviderTest.java

Modified: incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/xml/AbstractJAXBProvider.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/xml/AbstractJAXBProvider.java?rev=816771&r1=816770&r2=816771&view=diff
==============================================================================
--- incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/xml/AbstractJAXBProvider.java (original)
+++ incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/xml/AbstractJAXBProvider.java Fri Sep 18 20:17:23 2009
@@ -87,9 +87,6 @@
         }
         if (formatingOptions != null) {
             JAXBUtils.setXmlFormattingOptions(marshaller, formatingOptions);
-        } else {
-            JAXBUtils.setXmlFormattingOptions(marshaller, XmlFormattingOptions
-                .getDefaultXmlFormattingOptions());
         }
         return marshaller;
     }

Modified: incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/xml/JAXBElementXmlProvider.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/xml/JAXBElementXmlProvider.java?rev=816771&r1=816770&r2=816771&view=diff
==============================================================================
--- incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/xml/JAXBElementXmlProvider.java (original)
+++ incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/xml/JAXBElementXmlProvider.java Fri Sep 18 20:17:23 2009
@@ -45,8 +45,6 @@
 
 import org.apache.wink.common.internal.i18n.Messages;
 import org.apache.wink.common.internal.model.ModelUtils;
-import org.apache.wink.common.internal.utils.JAXBUtils;
-import org.apache.wink.common.model.XmlFormattingOptions;
 import org.apache.wink.common.utils.ProviderUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -121,10 +119,8 @@
                         OutputStream entityStream) throws IOException, WebApplicationException {
         try {
             Marshaller marshaller = getMarshaller(t.getDeclaredType(), mediaType);
-            marshaller.setProperty(Marshaller.JAXB_ENCODING, ProviderUtils.getCharset(mediaType));
-            JAXBUtils.setXmlFormattingOptions(marshaller, XmlFormattingOptions
-                .getDefaultXmlFormattingOptions());
 
+            // Use an OutputStream directly instead of a Writer for performance.
             marshaller.marshal(t, entityStream);
         } catch (JAXBException e) {
             logger.error(Messages.getMessage("jaxbFailToMarshal"), t.getName());

Added: incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/xml/XMLFormattingOptionsProvider.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/xml/XMLFormattingOptionsProvider.java?rev=816771&view=auto
==============================================================================
--- incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/xml/XMLFormattingOptionsProvider.java (added)
+++ incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/xml/XMLFormattingOptionsProvider.java Fri Sep 18 20:17:23 2009
@@ -0,0 +1,53 @@
+/*
+ * 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.wink.common.internal.providers.entity.xml;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.ws.rs.ext.ContextResolver;
+import javax.ws.rs.ext.Provider;
+
+import org.apache.wink.common.model.XmlFormattingOptions;
+import org.apache.wink.common.model.app.AppCategories;
+import org.apache.wink.common.model.app.AppService;
+import org.apache.wink.common.model.atom.AtomEntry;
+import org.apache.wink.common.model.atom.AtomFeed;
+
+@Provider
+public class XMLFormattingOptionsProvider implements
+    ContextResolver<XmlFormattingOptions> {
+
+    private final Set<Class<?>> classesWithDefault = new HashSet<Class<?>>();
+
+    public XMLFormattingOptionsProvider() {
+        classesWithDefault.add(AtomFeed.class);
+        classesWithDefault.add(AtomEntry.class);
+        classesWithDefault.add(AppCategories.class);
+        classesWithDefault.add(AppService.class);
+    }
+
+    public XmlFormattingOptions getContext(Class<?> type) {
+        if (classesWithDefault.contains(type)) {
+            return XmlFormattingOptions.getDefaultXmlFormattingOptions();
+        }
+        return null;
+    }
+
+}

Propchange: incubator/wink/trunk/wink-common/src/main/java/org/apache/wink/common/internal/providers/entity/xml/XMLFormattingOptionsProvider.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/wink/trunk/wink-common/src/main/resources/META-INF/core/wink-providers
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-common/src/main/resources/META-INF/core/wink-providers?rev=816771&r1=816770&r2=816771&view=diff
==============================================================================
--- incubator/wink/trunk/wink-common/src/main/resources/META-INF/core/wink-providers (original)
+++ incubator/wink/trunk/wink-common/src/main/resources/META-INF/core/wink-providers Fri Sep 18 20:17:23 2009
@@ -42,6 +42,7 @@
 # JAXB Providers
 org.apache.wink.common.internal.providers.entity.xml.JAXBElementXmlProvider
 org.apache.wink.common.internal.providers.entity.xml.JAXBXmlProvider
+org.apache.wink.common.internal.providers.entity.xml.XMLFormattingOptionsProvider
 
 # Atom 
 org.apache.wink.common.internal.providers.entity.atom.AtomFeedSyndFeedProvider

Modified: incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/AbstractResourceBeanTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/AbstractResourceBeanTest.java?rev=816771&r1=816770&r2=816771&view=diff
==============================================================================
--- incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/AbstractResourceBeanTest.java (original)
+++ incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/AbstractResourceBeanTest.java Fri Sep 18 20:17:23 2009
@@ -35,7 +35,6 @@
 import org.apache.wink.server.internal.servlet.MockServletInvocationTest;
 import org.apache.wink.test.mock.MockRequestConstructor;
 import org.apache.wink.test.mock.TestUtils;
-import org.custommonkey.xmlunit.Diff;
 import org.springframework.mock.web.MockHttpServletRequest;
 import org.springframework.mock.web.MockHttpServletResponse;
 

Modified: incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/AbstractResourceWithDuplicateWorkspaceTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/AbstractResourceWithDuplicateWorkspaceTest.java?rev=816771&r1=816770&r2=816771&view=diff
==============================================================================
--- incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/AbstractResourceWithDuplicateWorkspaceTest.java (original)
+++ incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/AbstractResourceWithDuplicateWorkspaceTest.java Fri Sep 18 20:17:23 2009
@@ -34,7 +34,6 @@
 import org.apache.wink.server.internal.servlet.MockServletInvocationTest;
 import org.apache.wink.test.mock.MockRequestConstructor;
 import org.apache.wink.test.mock.TestUtils;
-import org.custommonkey.xmlunit.Diff;
 import org.springframework.mock.web.MockHttpServletRequest;
 import org.springframework.mock.web.MockHttpServletResponse;
 

Modified: incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/providers/entity/AssetProviderTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/providers/entity/AssetProviderTest.java?rev=816771&r1=816770&r2=816771&view=diff
==============================================================================
--- incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/providers/entity/AssetProviderTest.java (original)
+++ incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/providers/entity/AssetProviderTest.java Fri Sep 18 20:17:23 2009
@@ -53,10 +53,10 @@
 
     private static final String STRING = "hello message";
     private static final String XML    =
-                                           "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + "<entry>\r\n"
-                                               + "    <id>entry:id</id>\r\n"
-                                               + "    <title type=\"text\">entry title</title>\r\n"
-                                               + "</entry>\r\n";
+                                           "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<entry>"
+                                               + "<id>entry:id</id>"
+                                               + "<title type=\"text\">entry title</title>"
+                                               + "</entry>";
     private static final String JSON   =
                                            "{\"entry\": {\n" + "  \"id\": {\"$\": \"entry:id\"},\n"
                                                + "  \"title\": {\n"

Modified: incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/providers/entity/JAXBElementProviderTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/providers/entity/JAXBElementProviderTest.java?rev=816771&r1=816770&r2=816771&view=diff
==============================================================================
--- incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/providers/entity/JAXBElementProviderTest.java (original)
+++ incubator/wink/trunk/wink-server/src/test/java/org/apache/wink/server/internal/providers/entity/JAXBElementProviderTest.java Fri Sep 18 20:17:23 2009
@@ -61,18 +61,18 @@
                                                                 "<JAXBXmlRootElement><id>ID</id><name>NAME</name></JAXBXmlRootElement>";
     private static final byte[] JAXBXmlRootElement_BYTES    = JAXBXmlRootElement_REQUEST.getBytes();
     private static final String JAXBXmlRootElement_RESPONSE =
-                                                                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + "<JAXBXmlRootElement>\r\n"
-                                                                    + "    <id>ID</id>\r\n"
-                                                                    + "    <name>NAME</name>\r\n"
+                                                                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<JAXBXmlRootElement>"
+                                                                    + "<id>ID</id>"
+                                                                    + "<name>NAME</name>"
                                                                     + "</JAXBXmlRootElement>";
 
     private static final String JAXBXmlType_REQUEST         =
                                                                 "<JAXBXmlType><id>ID</id><name>NAME</name></JAXBXmlType>";
     private static final byte[] JAXBXmlType_REQUEST_BYTES   = JAXBXmlType_REQUEST.getBytes();
     private static final String JAXBXmlType_RESPONSE        =
-                                                                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + "<JAXBXmlType>\r\n"
-                                                                    + "    <id>ID</id>\r\n"
-                                                                    + "    <name>NAME</name>\r\n"
+                                                                "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<JAXBXmlType>"
+                                                                    + "<id>ID</id>"
+                                                                    + "<name>NAME</name>"
                                                                     + "</JAXBXmlType>";
 
     JAXBElement<AtomFeed>       atomfeed;