You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2008/01/28 23:11:11 UTC

svn commit: r616082 - in /jackrabbit/trunk/jackrabbit-jcr-rmi/src: main/java/org/apache/jackrabbit/rmi/client/ main/java/org/apache/jackrabbit/rmi/xml/ test/java/org/apache/jackrabbit/rmi/

Author: jukka
Date: Mon Jan 28 14:11:10 2008
New Revision: 616082

URL: http://svn.apache.org/viewvc?rev=616082&view=rev
Log:
JCR-1343: Replace Xerces for serialization by JAXP
    - Use the new XML classes from jcr-commons

Removed:
    jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/xml/
    jackrabbit/trunk/jackrabbit-jcr-rmi/src/test/java/org/apache/jackrabbit/rmi/
Modified:
    jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientSession.java
    jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientWorkspace.java

Modified: jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientSession.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientSession.java?rev=616082&r1=616081&r2=616082&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientSession.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientSession.java Mon Jan 28 14:11:10 2008
@@ -41,8 +41,9 @@
 import javax.xml.transform.sax.SAXResult;
 import javax.xml.transform.stream.StreamSource;
 
+import org.apache.jackrabbit.commons.xml.DefaultContentHandler;
+import org.apache.jackrabbit.commons.xml.SerializingContentHandler;
 import org.apache.jackrabbit.rmi.remote.RemoteSession;
-import org.apache.jackrabbit.rmi.xml.SessionImportContentHandler;
 import org.apache.jackrabbit.rmi.value.SerialValueFactory;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
@@ -263,9 +264,25 @@
     }
 
     /** {@inheritDoc} */
-    public ContentHandler getImportContentHandler(String path, int mode)
-            throws RepositoryException {
-        return new SessionImportContentHandler(this, path, mode);
+    public ContentHandler getImportContentHandler(
+            final String path, final int mode) throws RepositoryException {
+        try {
+            final ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+            ContentHandler handler =
+                SerializingContentHandler.getSerializer(buffer);
+            return new DefaultContentHandler(handler) {
+                public void endDocument() throws SAXException {
+                    super.endDocument();
+                    try {
+                        remote.importXML(path, buffer.toByteArray(), mode);
+                    } catch (Exception e) {
+                        throw new SAXException("XML import failed", e);
+                    }
+                }
+            };
+        } catch (SAXException e) {
+            throw new RepositoryException("XML serialization failed", e);
+        }
     }
 
     /** {@inheritDoc} */

Modified: jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientWorkspace.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientWorkspace.java?rev=616082&r1=616081&r2=616082&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientWorkspace.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-rmi/src/main/java/org/apache/jackrabbit/rmi/client/ClientWorkspace.java Mon Jan 28 14:11:10 2008
@@ -31,12 +31,14 @@
 import javax.jcr.query.QueryManager;
 import javax.jcr.version.Version;
 
+import org.apache.jackrabbit.commons.xml.DefaultContentHandler;
+import org.apache.jackrabbit.commons.xml.SerializingContentHandler;
 import org.apache.jackrabbit.rmi.remote.RemoteNamespaceRegistry;
 import org.apache.jackrabbit.rmi.remote.RemoteNodeTypeManager;
 import org.apache.jackrabbit.rmi.remote.RemoteQueryManager;
 import org.apache.jackrabbit.rmi.remote.RemoteWorkspace;
-import org.apache.jackrabbit.rmi.xml.WorkspaceImportContentHandler;
 import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
 
 /**
  * Local adapter for the JCR-RMI {@link RemoteWorkspace RemoteWorkspace}
@@ -193,9 +195,23 @@
 
     /** {@inheritDoc} */
     public ContentHandler getImportContentHandler(
-            String path, int uuidBehaviour)
-            throws RepositoryException {
-        return new WorkspaceImportContentHandler(this, path, uuidBehaviour);
+            final String path, final int mode) throws RepositoryException {
+        try {
+            final ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+            return new DefaultContentHandler(
+                    SerializingContentHandler.getSerializer(buffer)) {
+                public void endDocument() throws SAXException {
+                    super.endDocument();
+                    try {
+                        remote.importXML(path, buffer.toByteArray(), mode);
+                    } catch (Exception e) {
+                        throw new SAXException("XML import failed", e);
+                    }
+                }
+            };
+        } catch (SAXException e) {
+            throw new RepositoryException("XML serialization failed", e);
+        }
     }
 
     /** {@inheritDoc} */