[jboss-svn-commits] JBoss Common SVN: r2433 - in jbossxb/trunk/src: test/java/org/jboss/test/xml and 1 other directory.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jun 26 10:28:36 EDT 2007
Author: alex.loubyansky at jboss.com
Date: 2007-06-26 10:28:36 -0400 (Tue, 26 Jun 2007)
New Revision: 2433
Modified:
jbossxb/trunk/src/main/java/org/jboss/xb/binding/Content.java
jbossxb/trunk/src/test/java/org/jboss/test/xml/IgnorableWhitespaceUnitTestCase.java
Log:
JBXB-103 marshalling part
Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/Content.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/Content.java 2007-06-25 20:24:45 UTC (rev 2432)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/Content.java 2007-06-26 14:28:36 UTC (rev 2433)
@@ -214,16 +214,16 @@
public void characters(char[] ch, int start, int length)
{
Characters characters = new Characters(ch, start, length);
- // ignore whitespace-only characters
- if(characters.toString().trim().length() > 0)
- {
+ // DON'T ignore whitespace-only characters
+ //if(characters.toString().trim().length() > 0)
+ //{
content.add(characters);
if(trace)
{
log.trace("characters> " + characters);
}
- }
+ //}
}
// Methods that navigate through the content
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xml/IgnorableWhitespaceUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xml/IgnorableWhitespaceUnitTestCase.java 2007-06-25 20:24:45 UTC (rev 2432)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xml/IgnorableWhitespaceUnitTestCase.java 2007-06-26 14:28:36 UTC (rev 2433)
@@ -22,6 +22,7 @@
package org.jboss.test.xml;
import java.io.StringReader;
+import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
@@ -34,6 +35,7 @@
import org.jboss.xb.binding.UnmarshallerFactory;
import org.jboss.xb.binding.UnmarshallingContext;
import org.jboss.xb.binding.metadata.ClassMetaData;
+import org.jboss.xb.binding.sunday.marshalling.MarshallerImpl;
import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
import org.jboss.xb.binding.sunday.unmarshalling.XsdBinder;
@@ -84,7 +86,7 @@
super(name);
}
- public void testCollectionOverrideProperty() throws Exception
+ public void testWhitespaceUnmarshalling() throws Exception
{
SchemaBinding schema = XsdBinder.bind(new StringReader(XSD), null);
@@ -104,6 +106,37 @@
assertEquals("\n newline, 6 spaces, newline, 3 spaces\n ", top.string.get(1));
}
+ public void testWhitespaceMarshalling() throws Exception
+ {
+ SchemaBinding schema = XsdBinder.bind(new StringReader(XSD), null);
+
+ schema.setIgnoreUnresolvedFieldOrClass(false);
+ schema.setIgnoreWhitespacesInMixedContent(false);
+
+ ClassMetaData classMetaData = new ClassMetaData();
+ classMetaData.setImpl(Top.class.getName());
+ ElementBinding element = schema.getElement(new QName(NS, "top"));
+ assertNotNull(element);
+ element.setClassMetaData(classMetaData);
+
+ Top top = new Top();
+ top.string = new ArrayList();
+ top.string.add(" ");
+ top.string.add("\n newline, 6 spaces, newline, 3 spaces\n ");
+ MarshallerImpl marshaller = new MarshallerImpl();
+ StringWriter writer = new StringWriter();
+ marshaller.marshal(schema, null, top, writer);
+
+ // TODO: the xml diff trims whitespaces...
+ //assertXmlFileContent("IgnorableWhitespaceContent.xml", writer.getBuffer().toString());
+ //System.out.println(writer.getBuffer().toString());
+
+ Unmarshaller unmarshaller = UnmarshallerFactory.newInstance().newUnmarshaller();
+ Object o = unmarshaller.unmarshal(new StringReader(writer.getBuffer().toString()), schema);
+
+ assertEquals(top, o);
+ }
+
public void testObjectModelFactory() throws Exception
{
String url = findXML("IgnorableWhitespaceContent.xml");
@@ -151,5 +184,37 @@
public static class Top
{
public List string;
+
+ public int hashCode()
+ {
+ final int PRIME = 31;
+ int result = 1;
+ result = PRIME * result + ((string == null) ? 0 : string.hashCode());
+ return result;
+ }
+
+ public boolean equals(Object obj)
+ {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ final Top other = (Top) obj;
+ if (string == null)
+ {
+ if (other.string != null)
+ return false;
+ }
+ else if (!string.equals(other.string))
+ return false;
+ return true;
+ }
+
+ public String toString()
+ {
+ return "[top: string=" + string + "]";
+ }
}
}
More information about the jboss-svn-commits
mailing list