Author: jukka Date: Mon Feb 9 14:42:37 2009 New Revision: 742536 URL: http://svn.apache.org/viewvc?rev=742536&view=rev Log: xml: Added the SerializingContentHandler and DefaultContentHandler classes based on earlier code from the Cocoon and Jackrabbit projects
Added: commons/sandbox/xml/trunk/src/main/java/org/apache/commons/xml/DefaultContentHandler.java - copied, changed from r742519, jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/DefaultContentHandler.java commons/sandbox/xml/trunk/src/main/java/org/apache/commons/xml/SerializingContentHandler.java (contents, props changed) - copied, changed from r742516, jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/SerializingContentHandler.java commons/sandbox/xml/trunk/src/test/java/org/apache/commons/xml/SerializingContentHandlerTest.java (contents, props changed) - copied, changed from r742526, jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/commons/xml/SerializingContentHandlerTest.java Copied: commons/sandbox/xml/trunk/src/main/java/org/apache/commons/xml/DefaultContentHandler.java (from r742519, jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/DefaultContentHandler.java) URL: http://svn.apache.org/viewvc/commons/sandbox/xml/trunk/src/main/java/org/apache/commons/xml/DefaultContentHandler.java?p2=commons/sandbox/xml/trunk/src/main/java/org/apache/commons/xml/DefaultContentHandler.java&p1=jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/DefaultContentHandler.java&r1=742519&r2=742536&rev=742536&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/DefaultContentHandler.java (original) +++ commons/sandbox/xml/trunk/src/main/java/org/apache/commons/xml/DefaultContentHandler.java Mon Feb 9 14:42:37 2009 @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.jackrabbit.commons.xml; +package org.apache.commons.xml; import org.xml.sax.Attributes; import org.xml.sax.ContentHandler; @@ -23,10 +23,8 @@ import org.xml.sax.helpers.DefaultHandler; /** - * Adapter class for exposing a {...@link ContentHandler} instance as - * {...@link DefaultHandler} object. - * - * @since Jackrabbit JCR Commons 1.5 + * Adapter that makes a {...@link ContentHandler} instance look like a + * {...@link DefaultHandler}. */ public class DefaultContentHandler extends DefaultHandler { Copied: commons/sandbox/xml/trunk/src/main/java/org/apache/commons/xml/SerializingContentHandler.java (from r742516, jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/SerializingContentHandler.java) URL: http://svn.apache.org/viewvc/commons/sandbox/xml/trunk/src/main/java/org/apache/commons/xml/SerializingContentHandler.java?p2=commons/sandbox/xml/trunk/src/main/java/org/apache/commons/xml/SerializingContentHandler.java&p1=jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/SerializingContentHandler.java&r1=742516&r2=742536&rev=742536&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/SerializingContentHandler.java (original) +++ commons/sandbox/xml/trunk/src/main/java/org/apache/commons/xml/SerializingContentHandler.java Mon Feb 9 14:42:37 2009 @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.jackrabbit.commons.xml; +package org.apache.commons.xml; import java.io.OutputStream; import java.io.StringWriter; @@ -51,11 +51,12 @@ * JDK 1.4) to ignore namespaces if they were not present as xmlns attributes. * <p> * NOTE: The code in this class was originally written for Apache Cocoon and - * is included with some modifications here in Apache Jackrabbit. See the + * was then included with some modifications in Apache Jackrabbit. This + * version is based on the code from Jackrabbit. See the * org.apache.cocoon.serialization.AbstractTextSerializer class in the - * cocoon-pipeline-impl component for the original code. - * - * @since Jackrabbit JCR Commons 1.5 + * cocoon-pipeline-impl component for the original Cocoon code, and the + * org.apache.jackrabbit.commons.xml.SerializingContentHandler class in + * the jackrabbit-jcr-commons component for the Jackrabbit version. */ public class SerializingContentHandler extends DefaultContentHandler { Propchange: commons/sandbox/xml/trunk/src/main/java/org/apache/commons/xml/SerializingContentHandler.java ------------------------------------------------------------------------------ svn:eol-style = native Copied: commons/sandbox/xml/trunk/src/test/java/org/apache/commons/xml/SerializingContentHandlerTest.java (from r742526, jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/commons/xml/SerializingContentHandlerTest.java) URL: http://svn.apache.org/viewvc/commons/sandbox/xml/trunk/src/test/java/org/apache/commons/xml/SerializingContentHandlerTest.java?p2=commons/sandbox/xml/trunk/src/test/java/org/apache/commons/xml/SerializingContentHandlerTest.java&p1=jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/commons/xml/SerializingContentHandlerTest.java&r1=742526&r2=742536&rev=742536&view=diff ============================================================================== --- jackrabbit/trunk/jackrabbit-jcr-commons/src/test/java/org/apache/jackrabbit/commons/xml/SerializingContentHandlerTest.java (original) +++ commons/sandbox/xml/trunk/src/test/java/org/apache/commons/xml/SerializingContentHandlerTest.java Mon Feb 9 14:42:37 2009 @@ -1,108 +1,108 @@ -/* - * 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.jackrabbit.commons.xml; - -import java.io.StringWriter; - -import junit.framework.TestCase; - -import org.xml.sax.ContentHandler; -import org.xml.sax.helpers.AttributesImpl; - -public class SerializingContentHandlerTest extends TestCase { - - public void testSerializingContentHandler() throws Exception { - StringWriter writer = new StringWriter(); - - ContentHandler handler = - SerializingContentHandler.getSerializer(writer); - handler.startDocument(); - handler.startPrefixMapping("p", "uri"); - handler.startElement("uri", "a", "p:a", new AttributesImpl()); - AttributesImpl attributes = new AttributesImpl(); - attributes.addAttribute("uri", "foo", "p:foo", "CDATA", "bar"); - handler.startElement(null, "b", "b", attributes); - handler.characters("abc".toCharArray(), 0, 3); - handler.endElement(null, "b", "b"); - handler.startElement(null, "c", "c", new AttributesImpl()); - handler.endElement(null, "c", "c"); - handler.characters("xyz".toCharArray(), 0, 3); - handler.endElement("uri", "a", "p:a"); - handler.endPrefixMapping("p"); - handler.endDocument(); - - String xml = writer.toString(); - assertContains(xml, "<p:a"); - assertContains(xml, "xmlns:p"); - assertContains(xml, "="); - assertContains(xml, "uri"); - assertContains(xml, ">"); - assertContains(xml, "<b"); - assertContains(xml, "p:foo"); - assertContains(xml, "bar"); - assertContains(xml, "abc"); - assertContains(xml, "</b>"); - assertContains(xml, "<c/>"); - assertContains(xml, "xyz"); - assertContains(xml, "</p:a>"); - } - - /** - * Test case for JCR-1767. - * - * @see <a href="https://issues.apache.org/jira/browse/JCR-1767">JCR-1767</a> - */ - public void testNoPrefixMappingCalls() throws Exception { - StringWriter writer = new StringWriter(); - - ContentHandler handler = - SerializingContentHandler.getSerializer(writer); - handler.startDocument(); - handler.startElement("uri", "a", "p:a", new AttributesImpl()); - AttributesImpl attributes = new AttributesImpl(); - attributes.addAttribute("uri", "foo", "p:foo", "CDATA", "bar"); - handler.startElement(null, "b", "b", attributes); - handler.characters("abc".toCharArray(), 0, 3); - handler.endElement(null, "b", "b"); - handler.startElement(null, "c", "c", new AttributesImpl()); - handler.endElement(null, "c", "c"); - handler.characters("xyz".toCharArray(), 0, 3); - handler.endElement("uri", "a", "p:a"); - handler.endDocument(); - - String xml = writer.toString(); - assertContains(xml, "<p:a"); - assertContains(xml, "xmlns:p"); - assertContains(xml, "="); - assertContains(xml, "uri"); - assertContains(xml, ">"); - assertContains(xml, "<b"); - assertContains(xml, "p:foo"); - assertContains(xml, "bar"); - assertContains(xml, "abc"); - assertContains(xml, "</b>"); - assertContains(xml, "<c/>"); - assertContains(xml, "xyz"); - assertContains(xml, "</p:a>"); - } - - private void assertContains(String haystack, String needle) { - if (haystack.indexOf(needle) == -1) { - fail("'" + haystack + "' does not contain '" + needle+ "'"); - } - } -} +/* + * 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.commons.xml; + +import java.io.StringWriter; + +import junit.framework.TestCase; + +import org.xml.sax.ContentHandler; +import org.xml.sax.helpers.AttributesImpl; + +public class SerializingContentHandlerTest extends TestCase { + + public void testSerializingContentHandler() throws Exception { + StringWriter writer = new StringWriter(); + + ContentHandler handler = + SerializingContentHandler.getSerializer(writer); + handler.startDocument(); + handler.startPrefixMapping("p", "uri"); + handler.startElement("uri", "a", "p:a", new AttributesImpl()); + AttributesImpl attributes = new AttributesImpl(); + attributes.addAttribute("uri", "foo", "p:foo", "CDATA", "bar"); + handler.startElement(null, "b", "b", attributes); + handler.characters("abc".toCharArray(), 0, 3); + handler.endElement(null, "b", "b"); + handler.startElement(null, "c", "c", new AttributesImpl()); + handler.endElement(null, "c", "c"); + handler.characters("xyz".toCharArray(), 0, 3); + handler.endElement("uri", "a", "p:a"); + handler.endPrefixMapping("p"); + handler.endDocument(); + + String xml = writer.toString(); + assertContains(xml, "<p:a"); + assertContains(xml, "xmlns:p"); + assertContains(xml, "="); + assertContains(xml, "uri"); + assertContains(xml, ">"); + assertContains(xml, "<b"); + assertContains(xml, "p:foo"); + assertContains(xml, "bar"); + assertContains(xml, "abc"); + assertContains(xml, "</b>"); + assertContains(xml, "<c/>"); + assertContains(xml, "xyz"); + assertContains(xml, "</p:a>"); + } + + /** + * Test case for JCR-1767. + * + * @see <a href="https://issues.apache.org/jira/browse/JCR-1767">JCR-1767</a> + */ + public void testNoPrefixMappingCalls() throws Exception { + StringWriter writer = new StringWriter(); + + ContentHandler handler = + SerializingContentHandler.getSerializer(writer); + handler.startDocument(); + handler.startElement("uri", "a", "p:a", new AttributesImpl()); + AttributesImpl attributes = new AttributesImpl(); + attributes.addAttribute("uri", "foo", "p:foo", "CDATA", "bar"); + handler.startElement(null, "b", "b", attributes); + handler.characters("abc".toCharArray(), 0, 3); + handler.endElement(null, "b", "b"); + handler.startElement(null, "c", "c", new AttributesImpl()); + handler.endElement(null, "c", "c"); + handler.characters("xyz".toCharArray(), 0, 3); + handler.endElement("uri", "a", "p:a"); + handler.endDocument(); + + String xml = writer.toString(); + assertContains(xml, "<p:a"); + assertContains(xml, "xmlns:p"); + assertContains(xml, "="); + assertContains(xml, "uri"); + assertContains(xml, ">"); + assertContains(xml, "<b"); + assertContains(xml, "p:foo"); + assertContains(xml, "bar"); + assertContains(xml, "abc"); + assertContains(xml, "</b>"); + assertContains(xml, "<c/>"); + assertContains(xml, "xyz"); + assertContains(xml, "</p:a>"); + } + + private void assertContains(String haystack, String needle) { + if (haystack.indexOf(needle) == -1) { + fail("'" + haystack + "' does not contain '" + needle+ "'"); + } + } +} Propchange: commons/sandbox/xml/trunk/src/test/java/org/apache/commons/xml/SerializingContentHandlerTest.java ------------------------------------------------------------------------------ svn:eol-style = native