[jboss-svn-commits] JBoss Common SVN: r2574 - in jbossxb/trunk/src: main/java/org/jboss/xb/builder/runtime and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Sep 24 12:59:42 EDT 2007
Author: alex.loubyansky at jboss.com
Date: 2007-09-24 12:59:42 -0400 (Mon, 24 Sep 2007)
New Revision: 2574
Modified:
jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/AllBinding.java
jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ChoiceBinding.java
jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/DefaultHandlers.java
jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ModelGroupBinding.java
jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SequenceBinding.java
jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SundayContentHandler.java
jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/WildcardBinding.java
jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/PropertyWildcardHandler.java
jbossxb/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerProxyBindingMetaData.java
jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/AbstractBuilderTest.java
jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementWildcardWithCollectionPropertyUnitTestCase.java
jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementWildcardWithCollectionProperty.xml
Log:
JBXB-109 the test passes but there is some more work to be done to fix it properly
Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/AllBinding.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/AllBinding.java 2007-09-21 16:26:07 UTC (rev 2573)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/AllBinding.java 2007-09-24 16:59:42 UTC (rev 2574)
@@ -121,6 +121,11 @@
return occurence;
}
+ public boolean isWildcardContent()
+ {
+ return false;
+ }
+
protected List startElement(QName qName, Attributes atts, Set passedGroups, List groupStack, boolean required)
{
ParticleBinding particle = (ParticleBinding)elements.get(qName);
Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ChoiceBinding.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ChoiceBinding.java 2007-09-21 16:26:07 UTC (rev 2573)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ChoiceBinding.java 2007-09-24 16:59:42 UTC (rev 2574)
@@ -79,6 +79,7 @@
private int pos = -1;
private ElementBinding element;
private int occurence;
+ private boolean wildcardContent;
public ParticleBinding getCurrentParticle()
{
@@ -127,6 +128,11 @@
return occurence;
}
+ public boolean isWildcardContent()
+ {
+ return wildcardContent;
+ }
+
protected List startElement(QName qName, Attributes atts, Set passedGroups, List groupStack, boolean required)
{
if(trace)
@@ -161,6 +167,7 @@
log.trace(sb.toString());
}
+ wildcardContent = false;
int i = pos;
if(pos >= 0)
{
@@ -257,6 +264,8 @@
++occurence;
}
groupStack = addItem(groupStack, this);
+ wildcardContent = true;
+ System.out.println(qName + " is wildcard content");
break;
}
}
Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/DefaultHandlers.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/DefaultHandlers.java 2007-09-21 16:26:07 UTC (rev 2573)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/DefaultHandlers.java 2007-09-24 16:59:42 UTC (rev 2574)
@@ -41,6 +41,8 @@
{
public static ParticleHandler ELEMENT_HANDLER = RtElementHandler.INSTANCE;
+ public static ParticleHandler MODEL_GROUP_HANDLER = RtElementHandler.INSTANCE;
+
public static ParticleHandler SIMPLE_HANDLER = new RtElementHandler()
{
public Object startParticle(Object parent, QName qName, ParticleBinding particle)
Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ModelGroupBinding.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ModelGroupBinding.java 2007-09-21 16:26:07 UTC (rev 2573)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ModelGroupBinding.java 2007-09-24 16:59:42 UTC (rev 2574)
@@ -48,7 +48,7 @@
protected QName qName;
protected boolean requiredParticle;
- protected ParticleHandler handler = DefaultHandlers.ELEMENT_HANDLER;
+ protected ParticleHandler handler = DefaultHandlers.MODEL_GROUP_HANDLER;
protected ModelGroupBinding(SchemaBinding schema)
{
@@ -194,6 +194,8 @@
public abstract int getOccurence();
+ public abstract boolean isWildcardContent();
+
// Protected
protected abstract List startElement(QName qName,
Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SequenceBinding.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SequenceBinding.java 2007-09-21 16:26:07 UTC (rev 2573)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SequenceBinding.java 2007-09-24 16:59:42 UTC (rev 2574)
@@ -88,6 +88,7 @@
private int pos = -1;
private ElementBinding element;
private int occurence;
+ private boolean wildcardContent;
public ParticleBinding getCurrentParticle()
{
@@ -136,6 +137,11 @@
return occurence;
}
+ public boolean isWildcardContent()
+ {
+ return wildcardContent;
+ }
+
protected List startElement(QName qName, Attributes atts, Set passedGroups, List groupStack, boolean required)
{
if(trace)
@@ -170,6 +176,7 @@
log.trace(sb.toString());
}
+ wildcardContent = false;
int i = pos;
if(pos >= 0)
{
@@ -310,6 +317,7 @@
++occurence;
}
groupStack = addItem(groupStack, this);
+ wildcardContent = true;
break;
}
Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SundayContentHandler.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SundayContentHandler.java 2007-09-21 16:26:07 UTC (rev 2573)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SundayContentHandler.java 2007-09-24 16:59:42 UTC (rev 2574)
@@ -562,7 +562,7 @@
throw new JBossXBRuntimeException("No type for element " + element);
}
- handler = type.getHandler();
+ handler = type.getHandler();
if(handler == null)
{
handler = defParticleHandler;
@@ -1135,7 +1135,10 @@
if (wildcard != null)
{
hasWildcard = true;
- wildcardHandler = wildcard.getWildcardHandler();
+ if(parentItem.cursor.isWildcardContent())
+ {
+ wildcardHandler = wildcard.getWildcardHandler();
+ }
}
}
Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/WildcardBinding.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/WildcardBinding.java 2007-09-21 16:26:07 UTC (rev 2573)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/WildcardBinding.java 2007-09-24 16:59:42 UTC (rev 2574)
@@ -231,14 +231,23 @@
}
// todo this stuff could be cached
- ParticleBinding particle = new ParticleBinding(this);
+ // the 'this' wildcard could be reused
+ // the reason it is overriden is to eliminate its wildcardHandler
+ // which is not initialized in the new one
+ WildcardBinding unresolvedWildcard = new WildcardBinding(schema);
+ unresolvedWildcard.pc = PC_LAX;
+ unresolvedWildcard.schemaResolver = schemaResolver;
+ unresolvedWildcard.unresolvedCharactersHandler = unresolvedCharactersHandler;
+ unresolvedWildcard.unresolvedElementHandler = unresolvedElementHandler;
+
+ ParticleBinding particle = new ParticleBinding(unresolvedWildcard);
SequenceBinding sequence = new SequenceBinding(schema);
sequence.addParticle(particle);
TypeBinding type = new TypeBinding();
type.setHandler(unresolvedElementHandler);
type.setSimpleType(unresolvedCharactersHandler);
- type.setParticle(new ParticleBinding(sequence));
+ type.setParticle(new ParticleBinding(sequence, 1, 0, true));
return new ElementBinding(schema, qName, type);
}
Modified: jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/PropertyWildcardHandler.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/PropertyWildcardHandler.java 2007-09-21 16:26:07 UTC (rev 2573)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/builder/runtime/PropertyWildcardHandler.java 2007-09-24 16:59:42 UTC (rev 2574)
@@ -66,6 +66,7 @@
wrapper.setParentParticle(parentParticle);
return;
}
+
BeanAdapter beanAdapter = (BeanAdapter) parent;
AbstractPropertyHandler propertyHandler = beanAdapter.getPropertyHandler(elementName);
if (propertyHandler != null)
Modified: jbossxb/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerProxyBindingMetaData.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerProxyBindingMetaData.java 2007-09-21 16:26:07 UTC (rev 2573)
+++ jbossxb/trunk/src/test/java/org/jboss/ejb/metadata/jboss/InvokerProxyBindingMetaData.java 2007-09-24 16:59:42 UTC (rev 2574)
@@ -26,6 +26,7 @@
import javax.xml.bind.annotation.XmlAnyElement;
import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlTransient;
import javax.xml.bind.annotation.XmlType;
/**
@@ -34,7 +35,7 @@
* @author <a href="adrian at jboss.com">Adrian Brock</a>
* @version $Revision: 1.1 $
*/
- at XmlType(name="invoker-proxy-bindingType")
+ at XmlType(name="invoker-proxy-bindingType", propOrder={"descriptions", "name", "invokerProxyBindingName", "invokerMBean", "proxyFactory", "wildcard"})
public class InvokerProxyBindingMetaData extends NamedMetaDataWithDescriptions
{
/** The serialVersionUID */
@@ -122,9 +123,24 @@
return proxyFactoryConfig;
}
- @XmlAnyElement(lax=true)
+ @XmlTransient
public void setProxyFactoryConfig(Element proxyFactoryConfig)
{
this.proxyFactoryConfig = proxyFactoryConfig;
}
+
+ public Element getWildcard()
+ {
+ return getProxyFactoryConfig();
+ }
+
+ /**
+ * This is a hack to make proxy-factory-config parsed as
+ * unresolved element of a wildcard
+ */
+ @XmlAnyElement(lax=true)
+ public void setWildcard(Element e)
+ {
+ setProxyFactoryConfig(e);
+ }
}
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/AbstractBuilderTest.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/AbstractBuilderTest.java 2007-09-21 16:26:07 UTC (rev 2573)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/AbstractBuilderTest.java 2007-09-24 16:59:42 UTC (rev 2574)
@@ -35,6 +35,7 @@
import org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding;
import org.jboss.xb.binding.sunday.unmarshalling.TermBinding;
import org.jboss.xb.builder.JBossXBBuilder;
+import org.jboss.xb.builder.runtime.BuilderParticleHandler;
/**
* AbstractBuilderTest.
@@ -51,6 +52,7 @@
// Uncomment this to make sure we aren't using the RtElementHandler anywhere
DefaultHandlers.ELEMENT_HANDLER = new DebugElementHandler();
DefaultHandlers.SIMPLE_HANDLER = DefaultHandlers.ELEMENT_HANDLER;
+ DefaultHandlers.MODEL_GROUP_HANDLER = BuilderParticleHandler.INSTANCE;
}
public AbstractBuilderTest(String name)
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementWildcardWithCollectionPropertyUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementWildcardWithCollectionPropertyUnitTestCase.java 2007-09-21 16:26:07 UTC (rev 2573)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementWildcardWithCollectionPropertyUnitTestCase.java 2007-09-24 16:59:42 UTC (rev 2574)
@@ -44,6 +44,7 @@
import org.jboss.xb.builder.runtime.DOMHandler;
import org.jboss.xb.builder.runtime.PropertyWildcardHandler;
import org.w3c.dom.Element;
+import org.w3c.dom.NodeList;
/**
* ElementWildcardUnitTestCase.
@@ -74,6 +75,11 @@
Element element = result.getWildcard();
assertNotNull(element);
assertEquals("test-element", element.getNodeName());
+ NodeList childNodes = element.getChildNodes();
+ assertNotNull(childNodes);
+ assertEquals(1, childNodes.getLength());
+ element = (Element) childNodes.item(0);
+ assertEquals("test-child-element", element.getNodeName());
}
// TODO Fix this
@@ -92,6 +98,7 @@
TermBinding term = particle.getTerm();
assertNotNull(term);
assertTrue(term instanceof SequenceBinding);
+ // i don't think the following assertion is wrong
term = assertSingleSequence(term);
assertTrue(term instanceof WildcardBinding);
WildcardBinding wildcardBinding = type.getWildcard();
Modified: jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementWildcardWithCollectionProperty.xml
===================================================================
--- jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementWildcardWithCollectionProperty.xml 2007-09-21 16:26:07 UTC (rev 2573)
+++ jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementWildcardWithCollectionProperty.xml 2007-09-24 16:59:42 UTC (rev 2574)
@@ -3,5 +3,7 @@
<element-wildcard-with-collection-property>
<property>1</property>
<property>2</property>
- <test-element/>
+ <test-element>
+ <test-child-element/>
+ </test-element>
</element-wildcard-with-collection-property>
\ No newline at end of file
More information about the jboss-svn-commits
mailing list