You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/02/25 18:54:36 UTC

svn commit: r747871 [2/3] - in /cxf/branches/2.1.x-fixes: api/src/main/java/org/apache/cxf/wsdl/ rt/databinding/aegis/ rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/ rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/databinding/ rt/data...

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanTypeInfo.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanTypeInfo.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanTypeInfo.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/BeanTypeInfo.java Wed Feb 25 17:54:34 2009
@@ -399,12 +399,12 @@
         return mappedName2pdName.get(name);
     }
 
-    public List<QName> getAttributes() {
-        return attributes;
+    public Iterator<QName> getAttributes() {
+        return attributes.iterator();
     }
 
-    public List<QName> getElements() {
-        return elements;
+    public Iterator<QName> getElements() {
+        return elements.iterator();
     }
 
     public boolean isExtensibleElements() {

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/ObjectType.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/ObjectType.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/ObjectType.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/ObjectType.java Wed Feb 25 17:54:34 2009
@@ -35,10 +35,8 @@
 import org.apache.cxf.aegis.xml.MessageWriter;
 import org.apache.cxf.common.util.Base64Utility;
 import org.apache.cxf.common.util.SOAPConstants;
-import org.apache.cxf.common.xmlschema.XmlSchemaConstants;
-import org.apache.ws.commons.schema.XmlSchema;
-import org.apache.ws.commons.schema.XmlSchemaSimpleType;
-import org.apache.ws.commons.schema.XmlSchemaSimpleTypeRestriction;
+import org.jdom.Attribute;
+import org.jdom.Element;
 
 /**
  * Type for runtime inspection of types. Looks as the class to be written, and
@@ -280,15 +278,16 @@
     }
 
     @Override
-    public void writeSchema(XmlSchema root) {
+    public void writeSchema(Element root) {
         if (serializedWhenUnknown) {
-            XmlSchemaSimpleType simple = new XmlSchemaSimpleType(root);
-            simple.setName("serializedJavaObject");
-            root.addType(simple);
-            root.getItems().add(simple);
-            XmlSchemaSimpleTypeRestriction restriction = new XmlSchemaSimpleTypeRestriction();    
-            simple.setContent(restriction);
-            restriction.setBaseTypeName(XmlSchemaConstants.BASE64BINARY_QNAME);
+            Element simple = new Element("simpleType", SOAPConstants.XSD_PREFIX, SOAPConstants.XSD);
+            simple.setAttribute(new Attribute("name", "serializedJavaObject"));
+            root.addContent(simple);
+
+            Element restriction = new Element("restriction", SOAPConstants.XSD_PREFIX, SOAPConstants.XSD);
+            restriction.setAttribute(new Attribute("base", SOAPConstants.XSD_PREFIX + ":base64Binary"));
+
+            simple.addContent(restriction);
         }
     }
 }

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/XMLBeanTypeInfo.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/XMLBeanTypeInfo.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/XMLBeanTypeInfo.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/basic/XMLBeanTypeInfo.java Wed Feb 25 17:54:34 2009
@@ -26,13 +26,11 @@
 
 import javax.xml.namespace.QName;
 
-import org.w3c.dom.Element;
-
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.cxf.aegis.DatabindingException;
 import org.apache.cxf.aegis.util.NamespaceHelper;
-import org.apache.cxf.helpers.DOMUtils;
+import org.jdom.Element;
 
 public class XMLBeanTypeInfo extends BeanTypeInfo {
     private static final Log LOG = LogFactory.getLog(XMLBeanTypeInfo.class);
@@ -52,7 +50,7 @@
     @Override
     protected boolean registerType(PropertyDescriptor desc) {
         Element e = getPropertyElement(desc.getName());
-        if (e != null && DOMUtils.getAttributeValueEmptyNull(e, "type") != null) {
+        if (e != null && e.getAttributeValue("type") != null) {
             return false;
         }
 
@@ -66,14 +64,14 @@
         QName mappedName = null;
 
         if (e != null) {
-            String ignore = DOMUtils.getAttributeValueEmptyNull(e, "ignore");
+            String ignore = e.getAttributeValue("ignore");
             if (ignore != null && ignore.equals("true")) {
                 return;
             }
 
             LOG.debug("Found mapping for property " + pd.getName());
 
-            style = DOMUtils.getAttributeValueEmptyNull(e, "style");
+            style = e.getAttributeValue("style");
         }
 
         if (style == null) {
@@ -93,7 +91,7 @@
         }
         
         if (e != null) {
-            mappedName = NamespaceHelper.createQName(e, DOMUtils.getAttributeValueEmptyNull(e, "mappedName"),
+            mappedName = NamespaceHelper.createQName(e, e.getAttributeValue("mappedName"),
                                                      namespace);
         }
 
@@ -102,19 +100,18 @@
         }
 
         if (e != null) {
-            QName mappedType = NamespaceHelper.createQName(e, 
-                                                           DOMUtils.getAttributeValueEmptyNull(e, "typeName"),
+            QName mappedType = NamespaceHelper.createQName(e, e.getAttributeValue("typeName"),
                                                            getDefaultNamespace());
             if (mappedType != null) {
                 mapTypeName(mappedName, mappedType);
             }
 
-            String nillableVal = DOMUtils.getAttributeValueEmptyNull(e, "nillable");
+            String nillableVal = e.getAttributeValue("nillable");
             if (nillableVal != null && nillableVal.length() > 0) {
                 ensurePropertyInfo(mappedName).setNillable(Boolean.valueOf(nillableVal).booleanValue());
             }
 
-            String minOccurs = DOMUtils.getAttributeValueEmptyNull(e, "minOccurs");
+            String minOccurs = e.getAttributeValue("minOccurs");
             if (minOccurs != null && minOccurs.length() > 0) {
                 ensurePropertyInfo(mappedName).setMinOccurs(Integer.parseInt(minOccurs));
             }
@@ -140,10 +137,10 @@
     private Element getPropertyElement(String name2) {
         for (Iterator itr = mappings.iterator(); itr.hasNext();) {
             Element mapping2 = (Element)itr.next();
-            List<Element> elements = DOMUtils.getChildrenWithName(mapping2, "", "property");
+            List elements = mapping2.getChildren("property");
             for (int i = 0; i < elements.size(); i++) {
                 Element e = (Element)elements.get(i);
-                String name = DOMUtils.getAttributeValueEmptyNull(e, "name");
+                String name = e.getAttributeValue("name");
 
                 if (name != null && name.equals(name2)) {
                     return e;

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/collection/MapType.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/collection/MapType.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/collection/MapType.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/collection/MapType.java Wed Feb 25 17:54:34 2009
@@ -31,12 +31,12 @@
 import org.apache.cxf.aegis.DatabindingException;
 import org.apache.cxf.aegis.type.Type;
 import org.apache.cxf.aegis.type.TypeUtil;
+import org.apache.cxf.aegis.util.NamespaceHelper;
 import org.apache.cxf.aegis.xml.MessageReader;
 import org.apache.cxf.aegis.xml.MessageWriter;
-import org.apache.ws.commons.schema.XmlSchema;
-import org.apache.ws.commons.schema.XmlSchemaComplexType;
-import org.apache.ws.commons.schema.XmlSchemaElement;
-import org.apache.ws.commons.schema.XmlSchemaSequence;
+import org.apache.cxf.common.util.SOAPConstants;
+import org.jdom.Attribute;
+import org.jdom.Element;
 
 public class MapType extends Type {
     private Type keyType;
@@ -176,43 +176,49 @@
     }
 
     @Override
-    public void writeSchema(XmlSchema root) {
-        XmlSchemaComplexType complex = new XmlSchemaComplexType(root);
-        complex.setName(getSchemaType().getLocalPart());
-        root.addType(complex);
-        root.getItems().add(complex);
-        XmlSchemaSequence sequence = new XmlSchemaSequence();
-        complex.setParticle(sequence);
+    public void writeSchema(Element root) {
+        Element complex = new Element("complexType", SOAPConstants.XSD_PREFIX, SOAPConstants.XSD);
+        complex.setAttribute(new Attribute("name", getSchemaType().getLocalPart()));
+        root.addContent(complex);
+
+        Element seq = new Element("sequence", SOAPConstants.XSD_PREFIX, SOAPConstants.XSD);
+        complex.addContent(seq);
 
         Type kType = getKeyType();
         Type vType = getValueType();
-        
-        XmlSchemaElement element = new XmlSchemaElement();
-        sequence.getItems().add(element);
-        element.setName(getEntryName().getLocalPart());
-        element.setMinOccurs(0);
-        element.setMaxOccurs(Long.MAX_VALUE);
-        
-        XmlSchemaComplexType evType = new XmlSchemaComplexType(root);
-        element.setType(evType);
-        
-        XmlSchemaSequence evSequence = new XmlSchemaSequence();
-        evType.setParticle(evSequence);
 
-        createElement(evSequence, getKeyName(), kType);
-        createElement(evSequence, getValueName(), vType);
+        Element element = new Element("element", SOAPConstants.XSD_PREFIX, SOAPConstants.XSD);
+        seq.addContent(element);
+
+        element.setAttribute(new Attribute("name", getEntryName().getLocalPart()));
+        element.setAttribute(new Attribute("minOccurs", "0"));
+        element.setAttribute(new Attribute("maxOccurs", "unbounded"));
+
+        Element evComplex = new Element("complexType", SOAPConstants.XSD_PREFIX, SOAPConstants.XSD);
+        element.addContent(evComplex);
+
+        Element evseq = new Element("sequence", SOAPConstants.XSD_PREFIX, SOAPConstants.XSD);
+        evComplex.addContent(evseq);
+
+        createElement(root, evseq, getKeyName(), kType);
+        createElement(root, evseq, getValueName(), vType);
     }
 
     /**
      * Creates a element in a sequence for the key type and the value type.
      */
-    private void createElement(XmlSchemaSequence seq, QName name, Type type) {
-        XmlSchemaElement element = new XmlSchemaElement();
-        seq.getItems().add(element);
-        element.setName(name.getLocalPart());
-        element.setSchemaTypeName(type.getSchemaType());
-        element.setMinOccurs(0);
-        element.setMaxOccurs(1);
+    private void createElement(Element root, Element seq, QName name, Type type) {
+        Element element = new Element("element", SOAPConstants.XSD_PREFIX, SOAPConstants.XSD);
+        seq.addContent(element);
+
+        String prefix = NamespaceHelper.getUniquePrefix((Element)root, type.getSchemaType()
+            .getNamespaceURI());
+
+        element.setAttribute(new Attribute("name", name.getLocalPart()));
+        element.setAttribute(TypeUtil.createTypeAttribute(prefix, type, root));
+
+        element.setAttribute(new Attribute("minOccurs", "0"));
+        element.setAttribute(new Attribute("maxOccurs", "1"));
     }
 
     @Override

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/encoded/ArrayTypeInfo.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/encoded/ArrayTypeInfo.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/encoded/ArrayTypeInfo.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/encoded/ArrayTypeInfo.java Wed Feb 25 17:54:34 2009
@@ -24,8 +24,6 @@
 import java.util.Collections;
 import java.util.List;
 import java.util.StringTokenizer;
-
-import javax.xml.namespace.NamespaceContext;
 import javax.xml.namespace.QName;
 
 import org.apache.cxf.aegis.DatabindingException;
@@ -58,8 +56,7 @@
     }
 
     public ArrayTypeInfo(MessageReader reader, TypeMapping tm) {
-        this(reader.getXMLStreamReader().getNamespaceContext(),
-             readAttributeValue(reader, SOAP_ARRAY_TYPE), readAttributeValue(reader, SOAP_ARRAY_OFFSET));
+        this(readAttributeValue(reader, SOAP_ARRAY_TYPE), readAttributeValue(reader, SOAP_ARRAY_OFFSET));
 
         // if type is xsd:ur-type replace it with xsd:anyType
         String namespace = reader.getNamespaceForPrefix(typeName.getPrefix());
@@ -88,11 +85,11 @@
         }
     }
 
-    public ArrayTypeInfo(NamespaceContext namespaceContext, String arrayTypeValue) {
-        this(namespaceContext, arrayTypeValue, null);
+    public ArrayTypeInfo(String arrayTypeValue) {
+        this(arrayTypeValue, null);
     }
 
-    public ArrayTypeInfo(NamespaceContext namespaceContext, String arrayTypeValue, String offsetString) {
+    public ArrayTypeInfo(String arrayTypeValue, String offsetString) {
         if (arrayTypeValue == null) {
             throw new NullPointerException("arrayTypeValue is null");
         }
@@ -113,8 +110,7 @@
             throw new DatabindingException("Invalid ArrayType value " + arrayTypeValue);
         }
         if (tokens.get(1).equals(":")) {
-            typeName = 
-                new QName(namespaceContext.getNamespaceURI(tokens.get(0)), tokens.get(2), tokens.get(0));
+            typeName = new QName("", tokens.get(2), tokens.get(0));
             tokens = tokens.subList(3, tokens.size());
         } else {
             typeName = new QName("", tokens.get(0));
@@ -222,11 +218,6 @@
 
     public String toString() {
         StringBuilder string = new StringBuilder();
-        
-        // no prefix handed to us by someone else ...
-        if ("".equals(typeName.getPrefix()) && !"".equals(typeName.getNamespaceURI())) {
-            throw new RuntimeException("No prefix provided in QName for " + typeName.getNamespaceURI());
-        }
 
         // typeName: foo:bar
         if (typeName.getPrefix() != null && typeName.getPrefix().length() > 0) {

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/encoded/SoapArrayType.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/encoded/SoapArrayType.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/encoded/SoapArrayType.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/encoded/SoapArrayType.java Wed Feb 25 17:54:34 2009
@@ -25,7 +25,6 @@
 import java.util.List;
 import java.util.Set;
 import java.util.StringTokenizer;
-
 import javax.xml.namespace.QName;
 
 import org.apache.commons.logging.Log;
@@ -40,7 +39,7 @@
 import org.apache.cxf.aegis.xml.MessageWriter;
 import org.apache.cxf.binding.soap.Soap11;
 import org.apache.cxf.helpers.CastUtils;
-import org.apache.ws.commons.schema.XmlSchema;
+import org.jdom.Element;
 
 import static org.apache.cxf.aegis.type.encoded.SoapEncodingUtil.readAttributeValue;
 
@@ -136,7 +135,7 @@
                 sparse = position != null;
             }
 
-            // nested element names can specify a type
+            // nested element names can specifiy a type
             Type compType = getTypeMapping().getType(creader.getName());
             if (compType == null) {
                 // use the type declared in the arrayType attribute
@@ -291,9 +290,6 @@
         // Root component's schema type
         QName rootType = getRootType();
         String prefix = writer.getPrefixForNamespace(rootType.getNamespaceURI(), rootType.getPrefix());
-        if (prefix == null) {
-            prefix = "";
-        }
         rootType = new QName(rootType.getNamespaceURI(), rootType.getLocalPart(), prefix);
 
 
@@ -301,9 +297,6 @@
         ArrayTypeInfo arrayTypeInfo = new ArrayTypeInfo(rootType,
                 getDimensions() - 1,
                 Array.getLength(values));
-        // ensure that the writer writes out this prefix...
-        writer.getPrefixForNamespace(arrayTypeInfo.getTypeName().getNamespaceURI(), 
-                                     arrayTypeInfo.getTypeName().getPrefix());
         arrayTypeInfo.writeAttribute(writer);
 
         // write each element
@@ -340,7 +333,7 @@
      * Throws UnsupportedOperationException
      */
     @Override
-    public void writeSchema(XmlSchema root) {
+    public void writeSchema(Element root) {
         throw new UnsupportedOperationException();
     }
 

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/encoded/SoapRefType.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/encoded/SoapRefType.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/encoded/SoapRefType.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/encoded/SoapRefType.java Wed Feb 25 17:54:34 2009
@@ -19,7 +19,6 @@
 package org.apache.cxf.aegis.type.encoded;
 
 import java.util.Set;
-
 import javax.xml.namespace.QName;
 
 import org.apache.cxf.aegis.Context;
@@ -28,7 +27,7 @@
 import org.apache.cxf.aegis.type.TypeMapping;
 import org.apache.cxf.aegis.xml.MessageReader;
 import org.apache.cxf.aegis.xml.MessageWriter;
-import org.apache.ws.commons.schema.XmlSchema;
+import org.jdom.Element;
 
 /**
  * SoapRefType reads and writes SoapRef objects.
@@ -78,9 +77,8 @@
         SoapEncodingUtil.writeRef(writer, refId);
     }
 
-    @Override
-    public void writeSchema(XmlSchema schema) {
-        baseType.writeSchema(schema);
+    public void writeSchema(Element root) {
+        baseType.writeSchema(root);
     }
 
     public TypeMapping getTypeMapping() {

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/EnumType.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/EnumType.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/EnumType.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/java5/EnumType.java Wed Feb 25 17:54:34 2009
@@ -23,12 +23,10 @@
 import org.apache.cxf.aegis.type.Type;
 import org.apache.cxf.aegis.xml.MessageReader;
 import org.apache.cxf.aegis.xml.MessageWriter;
-import org.apache.cxf.common.xmlschema.XmlSchemaConstants;
-import org.apache.ws.commons.schema.XmlSchema;
-import org.apache.ws.commons.schema.XmlSchemaEnumerationFacet;
-import org.apache.ws.commons.schema.XmlSchemaObjectCollection;
-import org.apache.ws.commons.schema.XmlSchemaSimpleType;
-import org.apache.ws.commons.schema.XmlSchemaSimpleTypeRestriction;
+import org.apache.cxf.common.util.SOAPConstants;
+import org.jdom.Attribute;
+import org.jdom.Element;
+import org.jdom.Namespace;
 
 public class EnumType extends Type {
     @SuppressWarnings("unchecked")
@@ -55,23 +53,23 @@
     }
 
     @Override
-    public void writeSchema(XmlSchema root) {
-        
-        XmlSchemaSimpleType simple = new XmlSchemaSimpleType(root);
-        simple.setName(getSchemaType().getLocalPart());
-        root.addType(simple);
-        root.getItems().add(simple);
-        XmlSchemaSimpleTypeRestriction restriction = new XmlSchemaSimpleTypeRestriction();
-        restriction.setBaseTypeName(XmlSchemaConstants.STRING_QNAME);
-        simple.setContent(restriction);
+    public void writeSchema(Element root) {
+        Namespace xsd = Namespace.getNamespace(SOAPConstants.XSD_PREFIX, SOAPConstants.XSD);
+
+        Element simple = new Element("simpleType", xsd);
+        simple.setAttribute(new Attribute("name", getSchemaType().getLocalPart()));
+        root.addContent(simple);
+
+        Element restriction = new Element("restriction", xsd);
+        restriction.setAttribute(new Attribute("base", SOAPConstants.XSD_PREFIX + ":string"));
+        simple.addContent(restriction);
 
         Object[] constants = getTypeClass().getEnumConstants();
 
-        XmlSchemaObjectCollection facets = restriction.getFacets();
         for (Object constant : constants) {
-            XmlSchemaEnumerationFacet f = new XmlSchemaEnumerationFacet();
-            f.setValue(((Enum)constant).name());
-            facets.add(f);
+            Element enumeration = new Element("enumeration", xsd);
+            enumeration.setAttribute(new Attribute("value", ((Enum)constant).name()));
+            restriction.addContent(enumeration);
         }
     }
 

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/mtom/AbstractXOPType.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/mtom/AbstractXOPType.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/mtom/AbstractXOPType.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/mtom/AbstractXOPType.java Wed Feb 25 17:54:34 2009
@@ -21,25 +21,23 @@
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamReader;
 
-import org.w3c.dom.Attr;
-import org.w3c.dom.Node;
-
 import org.apache.cxf.aegis.Context;
 import org.apache.cxf.aegis.DatabindingException;
 import org.apache.cxf.aegis.type.Type;
 import org.apache.cxf.aegis.type.basic.Base64Type;
 import org.apache.cxf.aegis.xml.MessageReader;
 import org.apache.cxf.aegis.xml.MessageWriter;
-import org.apache.cxf.helpers.DOMUtils;
+import org.apache.cxf.common.util.SOAPConstants;
 import org.apache.cxf.message.Attachment;
-import org.apache.ws.commons.schema.XmlSchemaElement;
-import org.apache.ws.commons.schema.constants.Constants;
+import org.jaxen.JaxenException;
+import org.jaxen.jdom.JDOMXPath;
+import org.jdom.Attribute;
+import org.jdom.Element;
+import org.jdom.Namespace;
 
 /**
  * Base class for MtoM types.
@@ -53,6 +51,18 @@
     public static final QName XML_MIME_CONTENT_TYPE = new QName(XML_MIME_NS, "contentType");
     public static final QName XOP_HREF = new QName("href");
     public static final QName XML_MIME_BASE64 = new QName(XML_MIME_NS, "base64Binary", "xmime");
+    private static JDOMXPath importXmimeXpath;
+    
+    static {
+        try {
+            importXmimeXpath = new JDOMXPath("xsd:import[@namespace='"
+                                             + XML_MIME_NS
+                                             + "']");
+            importXmimeXpath.addNamespace(SOAPConstants.XSD_PREFIX, SOAPConstants.XSD);
+        } catch (JaxenException e) {
+            throw new RuntimeException(e);
+        }
+    }
     
     private String expectedContentTypes;
     // the base64 type knows how to deal with just plain base64 here, which is essentially always 
@@ -77,6 +87,10 @@
         }
     }
     
+    public static JDOMXPath getXmimeXpathImport() {
+        return importXmimeXpath;
+    }
+
     /**
      * This is called from base64Type when it recognizes an XOP attachment.
      * @param reader
@@ -194,13 +208,13 @@
     protected abstract byte[] getBytes(Object object);
 
     @Override
-    public void addToSchemaElement(XmlSchemaElement schemaElement) {
+    public void addToSchemaElement(Element schemaElement) {
         if (expectedContentTypes != null) {
-            Map<String, Node> extAttrMap = new HashMap<String, Node>();
-            Attr theAttr = DOMUtils.createDocument().createAttributeNS(XML_MIME_NS, "xmime");
-            theAttr.setNodeValue(expectedContentTypes);
-            extAttrMap.put("xmime", theAttr);
-            schemaElement.addMetaInfo(Constants.MetaDataConstants.EXTERNAL_ATTRIBUTES, extAttrMap);
+            Namespace ns = Namespace.getNamespace("xmime", XML_MIME_NS);
+            Attribute expectedContentTypeAttribute = new Attribute(XML_MIME_ATTR_LOCAL_NAME, 
+                                                                   expectedContentTypes,
+                                                                   ns);
+            schemaElement.setAttribute(expectedContentTypeAttribute);
         }
     }
     

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/util/NamespaceHelper.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/util/NamespaceHelper.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/util/NamespaceHelper.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/util/NamespaceHelper.java Wed Feb 25 17:54:34 2009
@@ -20,6 +20,7 @@
 
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.Iterator;
 import java.util.List;
 import java.util.StringTokenizer;
 
@@ -29,11 +30,10 @@
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.stream.XMLStreamWriter;
 
-import org.w3c.dom.Element;
-
 import org.apache.cxf.aegis.DatabindingException;
-import org.apache.cxf.helpers.DOMUtils;
 import org.apache.cxf.helpers.JavaUtils;
+import org.jdom.Element;
+import org.jdom.Namespace;
 
 /**
  * Namespace utilities.
@@ -62,26 +62,60 @@
                 return "";
             }
             prefix = getUniquePrefix(element);
-            DOMUtils.addNamespacePrefix(element, namespaceURI, prefix);
+            element.addNamespaceDeclaration(Namespace.getNamespace(prefix, namespaceURI));
         }
         return prefix;
     }
 
     public static String getPrefix(Element element, String namespaceURI) {
-        return DOMUtils.getPrefixRecursive(element, namespaceURI);
+        if (element.getNamespaceURI().equals(namespaceURI)) {
+            return element.getNamespacePrefix();
+        }
+
+        List namespaces = element.getAdditionalNamespaces();
+
+        for (Iterator itr = namespaces.iterator(); itr.hasNext();) {
+            Namespace ns = (Namespace)itr.next();
+
+            if (ns.getURI().equals(namespaceURI)) {
+                return ns.getPrefix();
+            }
+        }
+
+        if (element.getParentElement() != null) {
+            return getPrefix(element.getParentElement(), namespaceURI);
+        } else {
+            return null;
+        }
     }
 
     public static void getPrefixes(Element element, String namespaceURI, List<String> prefixes) {
-        DOMUtils.getPrefixesRecursive(element, namespaceURI, prefixes);
+        if (element.getNamespaceURI().equals(namespaceURI)) {
+            prefixes.add(element.getNamespacePrefix());
+        }
+
+        List namespaces = element.getAdditionalNamespaces();
+
+        for (Iterator itr = namespaces.iterator(); itr.hasNext();) {
+            Namespace ns = (Namespace)itr.next();
+
+            if (ns.getURI().equals(namespaceURI)) {
+                prefixes.add(ns.getPrefix());
+            }
+        }
+
+        if (element.getParentElement() != null) {
+            getPrefixes(element.getParentElement(), namespaceURI, prefixes);
+        }
     }
 
-    public static String getUniquePrefix(Element el) {
+    private static String getUniquePrefix(Element el) {
         int n = 1;
 
         while (true) {
             String nsPrefix = "ns" + n;
 
-            if (DOMUtils.getNamespace(el, nsPrefix) == null) {
+            if (el.getNamespace(nsPrefix) == null) {
                 return nsPrefix;
             }
 
@@ -339,15 +373,17 @@
 
         String prefix = value.substring(0, index);
         String localName = value.substring(index + 1);
-        String jNS = DOMUtils.getNamespace(e, prefix);
+        Namespace jNS = e.getNamespace(prefix);
         if (jNS == null) {
             throw new DatabindingException("No namespace was found for prefix: " + prefix);
         }
         
-        if (jNS == null || localName == null) {
+        String ns = jNS.getURI();
+
+        if (ns == null || localName == null) {
             throw new DatabindingException("Invalid QName in mapping: " + value);
         }
 
-        return new QName(jNS, localName, prefix);
+        return new QName(ns, localName, prefix);
     }
 }

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/util/stax/JDOMNamespaceContext.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/util/stax/JDOMNamespaceContext.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/util/stax/JDOMNamespaceContext.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/util/stax/JDOMNamespaceContext.java Wed Feb 25 17:54:34 2009
@@ -24,6 +24,7 @@
 
 import javax.xml.namespace.NamespaceContext;
 
+import org.apache.cxf.aegis.util.NamespaceHelper;
 import org.jdom.Element;
 import org.jdom.Namespace;
 
@@ -40,12 +41,12 @@
     }
 
     public String getPrefix(String uri) {
-        return rawGetPrefix(element, uri);
+        return NamespaceHelper.getPrefix(element, uri);
     }
 
     public Iterator<String> getPrefixes(String uri) {
         List<String> prefixes = new ArrayList<String>();
-        rawGetPrefixes(element, uri, prefixes);
+        NamespaceHelper.getPrefixes(element, uri, prefixes);
         return prefixes.iterator();
     }
 
@@ -56,46 +57,4 @@
     public void setElement(Element element) {
         this.element = element;
     }
-    
-    public static String rawGetPrefix(Element element, String namespaceURI) {
-        if (element.getNamespaceURI().equals(namespaceURI)) {
-            return element.getNamespacePrefix();
-        }
-
-        List namespaces = element.getAdditionalNamespaces();
-
-        for (Iterator itr = namespaces.iterator(); itr.hasNext();) {
-            Namespace ns = (Namespace)itr.next();
-
-            if (ns.getURI().equals(namespaceURI)) {
-                return ns.getPrefix();
-            }
-        }
-
-        if (element.getParentElement() != null) {
-            return rawGetPrefix(element.getParentElement(), namespaceURI);
-        } else {
-            return null;
-        }
-    }
-    
-    static void rawGetPrefixes(Element element, String namespaceURI, List<String> prefixes) {
-        if (element.getNamespaceURI().equals(namespaceURI)) {
-            prefixes.add(element.getNamespacePrefix());
-        }
-
-        List namespaces = element.getAdditionalNamespaces();
-
-        for (Iterator itr = namespaces.iterator(); itr.hasNext();) {
-            Namespace ns = (Namespace)itr.next();
-
-            if (ns.getURI().equals(namespaceURI)) {
-                prefixes.add(ns.getPrefix());
-            }
-        }
-
-        if (element.getParentElement() != null) {
-            rawGetPrefixes(element.getParentElement(), namespaceURI, prefixes);
-        }
-    }
 }

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/util/stax/JDOMStreamWriter.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/util/stax/JDOMStreamWriter.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/util/stax/JDOMStreamWriter.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/util/stax/JDOMStreamWriter.java Wed Feb 25 17:54:34 2009
@@ -26,6 +26,7 @@
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
+import org.apache.cxf.aegis.util.NamespaceHelper;
 import org.jdom.Attribute;
 import org.jdom.CDATA;
 import org.jdom.Comment;
@@ -183,7 +184,7 @@
     }
 
     public String getPrefix(String uri) throws XMLStreamException {
-        return JDOMNamespaceContext.rawGetPrefix(currentNode, uri);
+        return NamespaceHelper.getPrefix(currentNode, uri);
     }
 
     public void setPrefix(String arg0, String arg1) throws XMLStreamException {

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/xml/jdom/JDOMWriter.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/xml/jdom/JDOMWriter.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/xml/jdom/JDOMWriter.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/xml/jdom/JDOMWriter.java Wed Feb 25 17:54:34 2009
@@ -21,7 +21,7 @@
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamWriter;
 
-import org.apache.cxf.aegis.util.stax.JDOMNamespaceContext;
+import org.apache.cxf.aegis.util.NamespaceHelper;
 import org.apache.cxf.aegis.xml.AbstractMessageWriter;
 import org.apache.cxf.aegis.xml.MessageWriter;
 import org.jdom.Attribute;
@@ -44,7 +44,7 @@
     }
 
     public void writeValue(Object value, String ns, String attr) {
-        String prefix = getUniquePrefix(element, ns);
+        String prefix = NamespaceHelper.getUniquePrefix(element, ns);
 
         element.setAttribute(new Attribute(attr, value.toString(), Namespace.getNamespace(prefix, ns)));
     }
@@ -54,7 +54,7 @@
     }
 
     public MessageWriter getElementWriter(String name, String namespace) {
-        String prefix = getUniquePrefix(element, namespace);
+        String prefix = NamespaceHelper.getUniquePrefix(element, namespace);
 
         Element child = new Element(name, Namespace.getNamespace(prefix, namespace));
         element.addContent(child);
@@ -67,17 +67,17 @@
     }
 
     public String getPrefixForNamespace(String namespace) {
-        return getUniquePrefix(element, namespace);
+        return NamespaceHelper.getUniquePrefix(element, namespace);
     }
 
     public XMLStreamWriter getXMLStreamWriter() {
-        throw new UnsupportedOperationException("Stream writing not supported from a W3CDOMWriter.");
+        throw new UnsupportedOperationException("Stream writing not supported from a JDOMWriter.");
     }
 
     public String getPrefixForNamespace(String namespace, String hint) {
         // todo: this goes for the option of ignoring the hint - we should
         // probably at least attempt to honour it
-        return getUniquePrefix(element, namespace);
+        return NamespaceHelper.getUniquePrefix(element, namespace);
     }
 
     public MessageWriter getAttributeWriter(String name) {
@@ -89,7 +89,7 @@
     public MessageWriter getAttributeWriter(String name, String namespace) {
         Attribute att;
         if (namespace != null && namespace.length() > 0) {
-            String prefix = getUniquePrefix(element, namespace);
+            String prefix = NamespaceHelper.getUniquePrefix(element, namespace);
             att = new Attribute(name, "", Namespace.getNamespace(prefix, namespace));
         } else {
             att = new Attribute(name, "");
@@ -105,32 +105,4 @@
 
     public void close() {
     }
-    
-    private static String getUniquePrefix(Element el) {
-        int n = 1;
-
-        while (true) {
-            String nsPrefix = "ns" + n;
-
-            if (el.getNamespace(nsPrefix) == null) {
-                return nsPrefix;
-            }
-
-            n++;
-        }
-    }
-    
-    private static String getUniquePrefix(Element element, String namespaceURI) {
-        String prefix = JDOMNamespaceContext.rawGetPrefix(element, namespaceURI);
-
-        // it is OK to have both namespace URI and prefix be empty. 
-        if (prefix == null) {
-            if ("".equals(namespaceURI)) {
-                return "";
-            }
-            prefix = getUniquePrefix(element);
-            element.addNamespaceDeclaration(Namespace.getNamespace(prefix, namespaceURI));
-        }
-        return prefix;
-    }
 }

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/xml/stax/ElementWriter.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/xml/stax/ElementWriter.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/xml/stax/ElementWriter.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/xml/stax/ElementWriter.java Wed Feb 25 17:54:34 2009
@@ -162,7 +162,6 @@
     public void close() {
         try {
             writer.writeEndElement();
-            writer.flush();
         } catch (XMLStreamException e) {
             throw new DatabindingException("Error writing document.", e);
         }
@@ -208,18 +207,13 @@
     public String getPrefixForNamespace(String ns, String hint) {
         try {
             String pfx = writer.getPrefix(ns);
-            String contextPfx = writer.getNamespaceContext().getPrefix(ns);
 
             if (pfx == null) {
                 String ns2 = writer.getNamespaceContext().getNamespaceURI(hint);
-                // if the hint is "" (the default) and the context does 
-                if (ns2 == null && !"".equals(hint)) { 
+                if (ns2 == null) {
                     pfx = hint;
-                } else if (ns.equals(ns2)) {
-                    // just because it's in the context, doesn't mean it has been written.
-                    pfx = hint;
-                } else if (contextPfx != null) {
-                    pfx = contextPfx;
+                } else if (ns2.equals(ns)) {
+                    return pfx;
                 } else {
                     pfx = NamespaceHelper.getUniquePrefix(writer);
                 }

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/AbstractAegisTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/AbstractAegisTest.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/AbstractAegisTest.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/AbstractAegisTest.java Wed Feb 25 17:54:34 2009
@@ -26,40 +26,27 @@
 import javax.wsdl.WSDLException;
 import javax.wsdl.factory.WSDLFactory;
 import javax.wsdl.xml.WSDLWriter;
-import javax.xml.namespace.NamespaceContext;
 import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-import javax.xml.transform.dom.DOMResult;
 
 import org.w3c.dom.Document;
-import org.w3c.dom.Element;
 import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
 
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusException;
 import org.apache.cxf.BusFactory;
 import org.apache.cxf.aegis.databinding.AegisDatabinding;
-import org.apache.cxf.aegis.type.Type;
-import org.apache.cxf.aegis.xml.stax.ElementWriter;
 import org.apache.cxf.binding.BindingFactoryManager;
 import org.apache.cxf.binding.soap.SoapBindingConstants;
 import org.apache.cxf.binding.soap.SoapBindingFactory;
 import org.apache.cxf.binding.soap.SoapTransportFactory;
 import org.apache.cxf.bus.extension.ExtensionManagerBus;
-import org.apache.cxf.common.WSDLConstants;
 import org.apache.cxf.common.util.SOAPConstants;
-import org.apache.cxf.common.xmlschema.XmlSchemaConstants;
 import org.apache.cxf.endpoint.Server;
 import org.apache.cxf.endpoint.ServerRegistry;
 import org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory;
 import org.apache.cxf.frontend.ServerFactoryBean;
-import org.apache.cxf.helpers.DOMUtils;
-import org.apache.cxf.helpers.MapNamespaceContext;
-import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
-import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
 import org.apache.cxf.service.Service;
-import org.apache.cxf.staxutils.StaxUtils;
 import org.apache.cxf.test.AbstractCXFTest;
 import org.apache.cxf.transport.ConduitInitiatorManager;
 import org.apache.cxf.transport.DestinationFactoryManager;
@@ -68,13 +55,13 @@
 import org.apache.cxf.wsdl11.ServiceWSDLBuilder;
 import org.apache.cxf.wsdl11.WSDLDefinitionBuilder;
 import org.apache.cxf.wsdl11.WSDLManagerImpl;
-import org.apache.ws.commons.schema.XmlSchema;
-import org.apache.ws.commons.schema.utils.NamespaceMap;
+import org.jdom.Element;
+import org.jdom.output.DOMOutputter;
 import org.junit.Before;
 
 public abstract class AbstractAegisTest extends AbstractCXFTest {
     protected LocalTransportFactory localTransport;
-    private boolean enableJDOM;
+
 
     @Before
     public void setUp() throws Exception {
@@ -93,7 +80,7 @@
         dfm.registerDestinationFactory("http://schemas.xmlsoap.org/wsdl/soap/", soapDF);
         dfm.registerDestinationFactory(SoapBindingConstants.SOAP11_BINDING_ID, soapDF);
         dfm.registerDestinationFactory("http://cxf.apache.org/transports/local", soapDF);
-
+        
         localTransport = new LocalTransportFactory();
         dfm.registerDestinationFactory("http://schemas.xmlsoap.org/soap/http", localTransport);
         dfm.registerDestinationFactory("http://schemas.xmlsoap.org/wsdl/soap/http", localTransport);
@@ -105,13 +92,15 @@
         extension.registerConduitInitiator("http://schemas.xmlsoap.org/wsdl/soap/", localTransport);
         extension.registerConduitInitiator("http://schemas.xmlsoap.org/soap/http", localTransport);
         extension.registerConduitInitiator(SoapBindingConstants.SOAP11_BINDING_ID, localTransport);
-
+        
         bus.setExtension(new WSDLManagerImpl(), WSDLManager.class);
+        
 
         addNamespace("wsdl", SOAPConstants.WSDL11_NS);
         addNamespace("wsdlsoap", SOAPConstants.WSDL11_SOAP_NS);
         addNamespace("xsd", SOAPConstants.XSD);
 
+
     }
 
     @Override
@@ -120,108 +109,87 @@
         BusFactory.setDefaultBus(bus);
         return bus;
     }
-
+    
     protected Node invoke(String service, String message) throws Exception {
         return invoke("local://" + service, LocalTransportFactory.TRANSPORT_ID, message);
     }
-
+    
     public Server createService(Class serviceClass, QName name) {
         return createService(serviceClass, null, name);
     }
-
+    
     public Server createService(Class serviceClass, Object serviceBean, QName name) {
         return createService(serviceClass, serviceBean, serviceClass.getSimpleName(), name);
     }
-
+    
     protected Server createService(Class serviceClass, QName name, AegisDatabinding binding) {
         return createService(serviceClass, serviceClass.getSimpleName(), name, binding);
     }
 
-    protected Server createService(Class serviceClass, String address, QName name, AegisDatabinding binding) {
+    protected Server createService(Class serviceClass, 
+                                   String address, QName name, 
+                                    AegisDatabinding binding) {
         ServerFactoryBean sf = createServiceFactory(serviceClass, null, address, name, binding);
         return sf.create();
     }
-
+    
     protected Server createService(Class serviceClass, String address) {
         ServerFactoryBean sf = createServiceFactory(serviceClass, null, address, null, null);
         return sf.create();
     }
-
+    
     protected Server createService(Class serviceClass) {
-        ServerFactoryBean sf = createServiceFactory(serviceClass, null, serviceClass.getSimpleName(), null,
-                                                    null);
+        ServerFactoryBean sf = createServiceFactory(serviceClass, null, 
+                                                    serviceClass.getSimpleName(), null, null);
         return sf.create();
     }
-
-    protected Server createJaxwsService(Class serviceClass, Object serviceBean, String address, QName name) {
-        if (address == null) {
-            address = serviceClass.getSimpleName();
-        }
-        JaxWsServiceFactoryBean sf = new JaxWsServiceFactoryBean();
-        sf.setDataBinding(new AegisDatabinding());
-        JaxWsServerFactoryBean serverFactoryBean = new JaxWsServerFactoryBean();
-        serverFactoryBean.setServiceClass(serviceClass);
-        
-        if (serviceBean != null) {
-            serverFactoryBean.setServiceBean(serviceBean);
-        }
-
-        serverFactoryBean.setAddress("local://" + address);
-            
-        serverFactoryBean.setServiceFactory(sf);
-        if (name != null) {
-            serverFactoryBean.setEndpointName(name);
-        }
-        return serverFactoryBean.create();
-    }
-
-    public Server createService(Class serviceClass, Object serviceBean, String address, QName name) {
+    
+    public Server createService(Class serviceClass,
+                                Object serviceBean, 
+                                String address,
+                                QName name) {
         ServerFactoryBean sf = createServiceFactory(serviceClass, serviceBean, address, name, null);
         return sf.create();
     }
-
-    public Server createService(Class serviceClass, Object serviceBean, String address,
+    
+    public Server createService(Class serviceClass,
+                                Object serviceBean, 
+                                String address,
                                 AegisDatabinding binding) {
         ServerFactoryBean sf = createServiceFactory(serviceClass, serviceBean, address, null, binding);
         return sf.create();
     }
 
-    protected ServerFactoryBean createServiceFactory(Class serviceClass, Object serviceBean, String address,
-                                                     QName name, AegisDatabinding binding) {
+    protected ServerFactoryBean createServiceFactory(Class serviceClass, 
+                                                     Object serviceBean, 
+                                                     String address, 
+                                                     QName name,
+                                                     AegisDatabinding binding) {
         ServerFactoryBean sf = new ServerFactoryBean();
         sf.setServiceClass(serviceClass);
         if (serviceBean != null) {
             sf.setServiceBean(serviceBean);
-        }
+        }    
         sf.getServiceFactory().setServiceName(name);
         sf.setAddress("local://" + address);
         setupAegis(sf, binding);
         return sf;
     }
-
-    protected void setupAegis(AbstractWSDLBasedEndpointFactory sf) {
+    protected void setupAegis(AbstractWSDLBasedEndpointFactory sf) { 
         setupAegis(sf, null);
     }
-
     @SuppressWarnings("deprecation")
     protected void setupAegis(AbstractWSDLBasedEndpointFactory sf, AegisDatabinding binding) {
         if (binding == null) {
-            AegisContext context = new AegisContext();
-            if (enableJDOM) {
-                context.setEnableJDOMMappings(true);
-            }
             binding = new AegisDatabinding();
-            if (enableJDOM) { // this preserves pre-2.1 behavior.
-                binding.setAegisContext(context);
-            }
         }
-        sf.getServiceFactory().getServiceConfigurations()
-            .add(0, new org.apache.cxf.aegis.databinding.AegisServiceConfiguration());
+        sf.getServiceFactory().getServiceConfigurations().add(0, 
+            new org.apache.cxf.aegis.databinding.AegisServiceConfiguration());
         sf.getServiceFactory().setDataBinding(binding);
     }
 
     protected Collection<Document> getWSDLDocuments(String string) throws WSDLException {
-        WSDLWriter writer = WSDLFactory.newInstance().newWSDLWriter();
+        WSDLWriter writer = WSDLFactory.newInstance().newWSDLWriter();        
 
         Collection<Document> docs = new ArrayList<Document>();
         Definition definition = getWSDLDefinition(string);
@@ -229,7 +197,7 @@
             return null;
         }
         docs.add(writer.getDocument(definition));
-
+        
         for (Import wsdlImport : WSDLDefinitionBuilder.getImports(definition)) {
             docs.add(writer.getDocument(wsdlImport.getDefinition()));
         }
@@ -246,9 +214,26 @@
             }
         }
         return null;
-
+        
+    }
+    
+    protected void assertXPathEquals(String xpath, String value, Element element) throws Exception {
+        org.w3c.dom.Document doc = new DOMOutputter().output(element.getDocument());
+        assertXPathEquals(xpath, value, doc);
+    }
+    
+    protected NodeList assertValid(String xpath, Element element) throws Exception {
+        org.w3c.dom.Document doc = new DOMOutputter().output(element.getDocument());
+        
+        return assertValid(xpath, doc);
     }
 
+    protected void assertInvalid(String xpath, Element element) throws Exception {
+        org.w3c.dom.Document doc = new DOMOutputter().output(element.getDocument());
+        
+        assertInvalid(xpath, doc);
+    }
+    
     protected Document getWSDLDocument(String string) throws WSDLException {
         Definition definition = getWSDLDefinition(string);
         if (definition == null) {
@@ -257,76 +242,10 @@
         WSDLWriter writer = WSDLFactory.newInstance().newWSDLWriter();
         return writer.getDocument(definition);
     }
-
+    
     protected Context getContext() {
         AegisContext globalContext = new AegisContext();
         globalContext.initialize();
         return new Context(globalContext);
     }
-    
-    protected XmlSchema newXmlSchema(String targetNamespace) {
-        XmlSchema s = new XmlSchema();
-        s.setTargetNamespace(targetNamespace);
-        NamespaceMap xmlsNamespaceMap = new NamespaceMap();
-        s.setNamespaceContext(xmlsNamespaceMap);
-
-        // tns: is conventional, and besides we have unit tests that are hardcoded to it.
-        xmlsNamespaceMap.add(WSDLConstants.CONVENTIONAL_TNS_PREFIX, targetNamespace);
-        
-        // ditto for xsd: instead of just namespace= for the schema schema.
-        xmlsNamespaceMap.add("xsd", XmlSchemaConstants.XSD_NAMESPACE_URI);
-        return s;
-    }
-    
-    protected Element createElement(String namespace, String name) {
-        return createElement(namespace, name, null);
-    }
-
-    protected Element createElement(String namespace, String name, String namespacePrefix) {
-        Document doc = DOMUtils.createDocument();
-
-        Element element = doc.createElementNS(namespace, name);
-        if (namespacePrefix != null) {
-            element.setPrefix(namespacePrefix);
-            DOMUtils.addNamespacePrefix(element, namespace, namespacePrefix);
-        }
-
-        doc.appendChild(element);
-        return element;
-    }
-    
-    protected ElementWriter getElementWriter(Element element) {
-        return getElementWriter(element, new MapNamespaceContext());
-    }
-
-    protected ElementWriter getElementWriter(Element element, NamespaceContext namespaceContext) {
-        XMLStreamWriter writer = StaxUtils.createXMLStreamWriter(new DOMResult(element));
-        try {
-            writer.setNamespaceContext(namespaceContext);
-        } catch (XMLStreamException e) {
-            throw new RuntimeException(e);
-        }
-        return new ElementWriter(writer);
-    }
-
-    protected Element writeObjectToElement(Type type, Object bean) {
-        return writeObjectToElement(type, bean, getContext());
-    }
-
-    protected Element writeObjectToElement(Type type, Object bean, Context context) {
-        Element element = createElement("urn:Bean", "root", "b");
-        ElementWriter writer = getElementWriter(element, new MapNamespaceContext());
-        type.writeObject(bean, writer, getContext());
-        writer.close();
-        return element;
-    }
-
-    protected boolean isEnableJDOM() {
-        return enableJDOM;
-    }
-
-    protected void setEnableJDOM(boolean enableJDOM) {
-        this.enableJDOM = enableJDOM;
-    }
-    
 }

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/custom/CustomMappingTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/custom/CustomMappingTest.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/custom/CustomMappingTest.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/custom/CustomMappingTest.java Wed Feb 25 17:54:34 2009
@@ -27,8 +27,7 @@
 import org.apache.cxf.aegis.type.TypeMapping;
 import org.apache.cxf.aegis.type.basic.BeanType;
 import org.apache.cxf.aegis.type.basic.BeanTypeInfo;
-import org.apache.ws.commons.schema.XmlSchema;
-
+import org.jdom.Element;
 import org.junit.Test;
 
 /**
@@ -45,9 +44,8 @@
         TypeMapping mapping = context.getTypeMapping();
         // we are replacing the default mapping.
         mapping.register(beanType);
-        XmlSchema schema = newXmlSchema("http://util.java");
-        beanType.writeSchema(schema);
-        // well, test?
+        Element root = new Element("dummySchema");
+        beanType.writeSchema(root);
     }
 
 }

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/ParameterMappingTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/ParameterMappingTest.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/ParameterMappingTest.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/ParameterMappingTest.java Wed Feb 25 17:54:34 2009
@@ -40,7 +40,6 @@
     @Before 
     public void setUp() throws Exception {
         super.setUp();
-        setEnableJDOM(true); // there are JDOM types in here.
         createService(AddNumbers.class, "AddNumbers", null);
         createService(ArrayService.class, "ArrayService", null);
     }
@@ -71,7 +70,7 @@
         WSDLFactory.newInstance().newWSDLWriter().writeWSDL(def, sink);
         assertXPathEquals("/wsdl:definitions/wsdl:types/"
                     + "xsd:schema[@targetNamespace= 'http://services.aegis.cxf.apache.org']"
-                    + "/xsd:complexType[@name='ArrayOfString-2-50']" 
+                    + "/xsd:complexType[@name='ArrayOfString-50-2']" 
                     + "/xsd:sequence" 
                     + "/xsd:element[@name='string']/@minOccurs", "2", doc);
     }

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/WrappedTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/WrappedTest.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/WrappedTest.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/integration/WrappedTest.java Wed Feb 25 17:54:34 2009
@@ -20,9 +20,7 @@
 
 import javax.xml.namespace.QName;
 
-import org.w3c.dom.Document;
 import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
 
 import org.apache.cxf.aegis.AbstractAegisTest;
 import org.apache.cxf.aegis.services.ArrayService;
@@ -41,12 +39,11 @@
     @Before 
     public void setUp() throws Exception {
         super.setUp();
-        setEnableJDOM(true);
         arrayService = new ArrayService();
         createService(BeanService.class, "BeanService");
         createService(ArrayService.class, arrayService, "Array", new QName("urn:Array", "Array"));
     }
-    
+
     @Test
     public void testBeanService() throws Exception {
         Node response = invoke("BeanService", "bean11.xml");
@@ -58,13 +55,6 @@
         assertValid("//sb:getSimpleBeanResponse/sb:return/beanz:howdy[text()=\"howdy\"]", response);
         assertValid("//sb:getSimpleBeanResponse/sb:return/beanz:bleh[text()=\"bleh\"]", response);
     }
-    
-    @Test
-    public void testArrayWsdl() throws Exception {
-        Document doc = getWSDLDocument("Array");
-        NodeList stuff = assertValid("//xsd:complexType[@name='ArrayOfString-2-50']", doc);
-        assertEquals(1, stuff.getLength());
-    }
 
     @Test
     public void testBeanServiceWSDL() throws Exception {
@@ -107,8 +97,7 @@
                         + "[@type=\"xsd:string\"]",
                     doc);
     }
-
-    @org.junit.Ignore // uses Jaxen.
+    
     @Test 
     public void testSubmitJDOMArray() throws Exception {
         
@@ -144,4 +133,66 @@
         assertEquals("after items", arrayService.getAfterValue());
     }
 
+    // public void testGetArray()
+    // throws Exception
+    // {
+    // Document response = invokeService("Array",
+    // "/org/codehaus/xfire/message/wrapped/GetStringArray11.xml");
+    //
+    // addNamespace("a", "urn:Array");
+    // addNamespace("sb", "http://test.java.xfire.codehaus.org");
+    // assertValid("//a:getStringArrayResponse", response);
+    // assertValid("//a:getStringArrayResponse/a:out/a:string", response);
+    // }
+    //    
+    // public void testArrayService()
+    // throws Exception
+    // {
+    // Document response = invokeService("Array",
+    // "/org/codehaus/xfire/message/wrapped/SubmitStringArray11.xml");
+    //
+    // addNamespace("a", "urn:Array");
+    // addNamespace("sb", "http://test.java.xfire.codehaus.org");
+    // assertValid("//a:SubmitStringArrayResponse", response);
+    // assertValid("//a:SubmitStringArrayResponse/a:out[text()='true']",
+    // response);
+    // }
+    //
+    // public void testArrayServiceNoWhitespace()
+    // throws Exception
+    // {
+    // Document response = invokeService("Array",
+    // "/org/codehaus/xfire/message/wrapped/SubmitStringArray11NoWS.xml");
+    //
+    // addNamespace("a", "urn:Array");
+    // addNamespace("sb", "http://test.java.xfire.codehaus.org");
+    // assertValid("//a:SubmitStringArrayResponse", response);
+    // assertValid("//a:SubmitStringArrayResponse/a:out[text()='true']",
+    // response);
+    // }
+    //
+    // public void testArrayServiceWSDL()
+    // throws Exception
+    // {
+    // Document doc = getWSDLDocument("Array");
+    //
+    // addNamespace("wsdl", WSDLWriter.WSDL11_NS);
+    // addNamespace("wsdlsoap", WSDLWriter.WSDL11_SOAP_NS);
+    // addNamespace("xsd", SoapConstants.XSD);
+    //
+    // assertValid("/wsdl:definitions/wsdl:types", doc);
+    // assertValid("/wsdl:definitions/wsdl:types/xsd:schema", doc);
+    // assertValid("/wsdl:definitions/wsdl:types/xsd:schema[@targetNamespace='urn:Array']",
+    // doc);
+    // assertValid("//xsd:schema[@targetNamespace='urn:Array']/xsd:element[@name='SubmitBeanArray']",
+    // doc);
+    // assertValid(
+    // "//xsd:element[@name='SubmitStringArray']/xsd:complexType/xsd:sequence/xsd:element"
+    //    + "[@name='array'][@type='tns:ArrayOfString']",
+    // doc);
+    // assertValid(
+    // "//xsd:element[@name='SubmitBeanArray']/xsd:complexType/xsd:sequence/xsd:element"
+    //  + "[@name='array'][@type='ns1:ArrayOfSimpleBean']",
+    // doc);
+    // }
 }

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/services/ArrayService.aegis.xml
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/services/ArrayService.aegis.xml?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/services/ArrayService.aegis.xml (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/services/ArrayService.aegis.xml Wed Feb 25 17:54:34 2009
@@ -20,7 +20,7 @@
 <mappings>
     <mapping name="ArrayService">
         <method name="submitStringArray">
-            <parameter index="0" minOccurs='2' maxOccurs='50' nillable='false' />
+            <parameter index="0" minOccurs='2' maxOccurs='50' />
         </method>
     </mapping>
 </mappings>

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/basic/BeanTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/basic/BeanTest.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/basic/BeanTest.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/basic/BeanTest.java Wed Feb 25 17:54:34 2009
@@ -24,10 +24,9 @@
 import java.util.Date;
 
 import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamReader;
 
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
+import org.w3c.dom.Attr;
+import org.w3c.dom.NodeList;
 
 import org.apache.cxf.aegis.AbstractAegisTest;
 import org.apache.cxf.aegis.AegisContext;
@@ -36,18 +35,14 @@
 import org.apache.cxf.aegis.type.Type;
 import org.apache.cxf.aegis.type.TypeCreationOptions;
 import org.apache.cxf.aegis.type.TypeMapping;
+import org.apache.cxf.aegis.util.jdom.StaxBuilder;
+import org.apache.cxf.aegis.xml.jdom.JDOMReader;
+import org.apache.cxf.aegis.xml.jdom.JDOMWriter;
 import org.apache.cxf.aegis.xml.stax.ElementReader;
 import org.apache.cxf.aegis.xml.stax.ElementWriter;
 import org.apache.cxf.common.util.SOAPConstants;
-import org.apache.cxf.common.xmlschema.XmlSchemaConstants;
-import org.apache.cxf.helpers.DOMUtils;
-import org.apache.cxf.staxutils.StaxUtils;
-import org.apache.ws.commons.schema.XmlSchema;
-import org.apache.ws.commons.schema.XmlSchemaAttribute;
-import org.apache.ws.commons.schema.XmlSchemaComplexType;
-import org.apache.ws.commons.schema.XmlSchemaElement;
-import org.apache.ws.commons.schema.XmlSchemaObject;
-import org.apache.ws.commons.schema.XmlSchemaSequence;
+import org.jdom.Document;
+import org.jdom.Element;
 import org.junit.Test;
 
 public class BeanTest extends AbstractAegisTest {
@@ -100,12 +95,14 @@
         bean.setBleh("bleh");
 
         // Test writing
-        Element element = writeObjectToElement(type, bean, getContext());
+        Element element = new Element("root", "b", "urn:Bean");
+        new Document(element);
+        type.writeObject(bean, new JDOMWriter(element), getContext());
 
         assertValid("/b:root/b:bleh[text()='bleh']", element);
         assertValid("/b:root/b:howdy[text()='howdy']", element);
     }
-
+    
     @Test
     public void testBeanWithXsiType() throws Exception {
         BeanType type = new BeanType();
@@ -124,7 +121,10 @@
 
         reader.getXMLStreamReader().close();
 
-        Element element = writeObjectToElement(type, bean, getContext());
+        // Test writing
+        Element element = new Element("root", "b", "urn:Bean");
+        new Document(element);
+        type.writeObject(bean, new JDOMWriter(element), getContext());
 
         assertValid("/b:root/b:bleh[text()='bleh']", element);
         assertValid("/b:root/b:howdy[text()='howdy']", element);
@@ -154,12 +154,15 @@
 
         reader.getXMLStreamReader().close();
 
-        Element element = writeObjectToElement(type, bean, getContext());
+        // Test writing
+        Element element = new Element("root", "b", "urn:Bean");
+        new Document(element);
+        type.writeObject(bean, new JDOMWriter(element), getContext());
 
         assertInvalid("/b:root/b:bleh", element);
         assertValid("/b:root/b:howdycustom[text()='howdy']", element);
     }
-    
+
     @Test
     public void testAttributeMap() throws Exception {
         BeanTypeInfo info = new BeanTypeInfo(SimpleBean.class, "urn:Bean");
@@ -181,30 +184,23 @@
         reader.getXMLStreamReader().close();
 
         // Test writing
-        Element element = writeObjectToElement(type, bean, getContext());
+        Element element = new Element("root", "b", "urn:Bean");
+        new Document(element);
+        type.writeObject(bean, new JDOMWriter(element), getContext());
+
         assertValid("/b:root[@b:bleh='bleh']", element);
         assertValid("/b:root[@b:howdy='howdy']", element);
-        
-        XmlSchema schema = newXmlSchema("urn:Bean");
+
+        Element types = new Element("types", "xsd", SOAPConstants.XSD);
+        Element schema = new Element("schema", "xsd", SOAPConstants.XSD);
+        types.addContent(schema);
+
+        new Document(types);
+
         type.writeSchema(schema);
-        
-        XmlSchemaComplexType stype = (XmlSchemaComplexType)schema.getTypeByName("bean");
-        boolean howdy = false;
-        boolean bleh = false;
-        for (int x = 0; x < stype.getAttributes().getCount(); x++) {
-            XmlSchemaObject o = stype.getAttributes().getItem(x);
-            if (o instanceof XmlSchemaAttribute) {
-                XmlSchemaAttribute a = (XmlSchemaAttribute)o;
-                if ("howdy".equals(a.getName())) {
-                    howdy = true;
-                }
-                if ("bleh".equals(a.getName())) {
-                    bleh = true;
-                }
-            }
-        }
-        assertTrue(howdy);
-        assertTrue(bleh);
+
+        assertValid("//xsd:complexType[@name='bean']/xsd:attribute[@name='howdy']", schema);
+        assertValid("//xsd:complexType[@name='bean']/xsd:attribute[@name='bleh']", schema);
     }
 
     @Test
@@ -237,8 +233,9 @@
 
         bos.close();
         
-        Document doc = DOMUtils.readXml(new ByteArrayInputStream(bos.toByteArray()));
-        Element element = doc.getDocumentElement();
+        StaxBuilder builder = new StaxBuilder();
+        Document doc = builder.build(new ByteArrayInputStream(bos.toByteArray()));
+        Element element = doc.getRootElement();
 
         addNamespace("b2", "urn:Bean2");
         assertValid("/b:root[@b2:bleh='bleh']", element);
@@ -260,42 +257,23 @@
         SimpleBean bean = new SimpleBean();
 
         // Test writing
-        
-        Element element = writeObjectToElement(type, bean, getContext());
+        Element element = new Element("root", "b", "urn:Bean");
+        new Document(element);
+        type.writeObject(bean, new JDOMWriter(element), getContext());
 
         assertInvalid("/b:root[@b:howdy]", element);
         assertValid("/b:root/b:bleh[@xsi:nil='true']", element);
 
-        XmlSchema schema = newXmlSchema("urn:Bean");
+        Element types = new Element("types", "xsd", SOAPConstants.XSD);
+        Element schema = new Element("schema", "xsd", SOAPConstants.XSD);
+        types.addContent(schema);
+
+        new Document(types);
+
         type.writeSchema(schema);
-        
-        XmlSchemaComplexType stype = (XmlSchemaComplexType)schema.getTypeByName("bean");
-        XmlSchemaSequence seq = (XmlSchemaSequence) stype.getParticle();
-        boolean howdy = false;
-        boolean bleh = false;
-
-        for (int x = 0; x < seq.getItems().getCount(); x++) {
-            XmlSchemaObject o = seq.getItems().getItem(x);
-            if (o instanceof XmlSchemaElement) {
-                XmlSchemaElement a = (XmlSchemaElement)o;
-                if ("bleh".equals(a.getName())) {
-                    bleh = true;
-                }
-            }
-        }
-
-        for (int x = 0; x < stype.getAttributes().getCount(); x++) {
-            XmlSchemaObject o = stype.getAttributes().getItem(x);
-            if (o instanceof XmlSchemaAttribute) {
-                XmlSchemaAttribute a = (XmlSchemaAttribute)o;
-                if ("howdy".equals(a.getName())) {
-                    howdy = true;
-                }
-            }
-        }
 
-        assertTrue(howdy);
-        assertTrue(bleh);
+        assertValid("//xsd:complexType[@name='bean']/xsd:attribute[@name='howdy']", schema);
+        assertValid("//xsd:complexType[@name='bean']/xsd:sequence/xsd:element[@name='bleh']", schema);
     }
     
     @Test
@@ -308,30 +286,22 @@
         type.setTypeMapping(mapping);
         type.setSchemaType(new QName("urn:Bean", "bean"));
 
-        XmlSchema schema = newXmlSchema("urn:Bean");
+        Element types = new Element("types", "xsd", SOAPConstants.XSD);
+        Element schema = new Element("schema", "xsd", SOAPConstants.XSD);
+        types.addContent(schema);
+
+        new Document(types);
+
         type.writeSchema(schema);
-        
-        XmlSchemaComplexType btype = (XmlSchemaComplexType)schema.getTypeByName("bean");
-        XmlSchemaSequence seq = (XmlSchemaSequence)btype.getParticle();
-        boolean int1ok = false;
-        boolean int2ok = false;
-        for (int x = 0; x < seq.getItems().getCount(); x++) {
-            XmlSchemaObject o = seq.getItems().getItem(x);
-            if (o instanceof XmlSchemaElement) {
-                XmlSchemaElement oe = (XmlSchemaElement) o;
-                if ("int1".equals(oe.getName())) {
-                    int1ok = true;
-                    assertTrue(oe.isNillable());
-                    assertEquals(0, oe.getMinOccurs());
-                } else if ("int2".equals(oe.getName())) {
-                    int2ok = true;
-                    assertEquals(0, oe.getMinOccurs());
-                    assertFalse(oe.isNillable());
-                }
-            }
-        }
-        assertTrue(int1ok);
-        assertTrue(int2ok);
+
+        assertValid("//xsd:complexType[@name='bean']/xsd:sequence/xsd:element[@name='int1']"
+                    + "[@nillable='true'][@minOccurs='0']",
+                    schema);
+        assertValid("//xsd:complexType[@name='bean']/xsd:sequence/xsd:element[@name='int2'][@minOccurs='0']",
+                    schema);
+        assertInvalid("//xsd:complexType[@name='bean']/xsd:sequence"
+                        + "/xsd:element[@name='int2'][@nillable='true']",
+                      schema);
     }
     @Test
     public void testNillableIntMinOccurs1() throws Exception {
@@ -348,24 +318,20 @@
         type.setTypeClass(IntBean.class);
         type.setTypeMapping(mapping);
 
-        XmlSchema schema = newXmlSchema("urn:Bean");
+        Element types = new Element("types", "xsd", SOAPConstants.XSD);
+        Element schema = new Element("schema", "xsd", SOAPConstants.XSD);
+        types.addContent(schema);
+
+        new Document(types);
+
         type.writeSchema(schema);
-        
-        XmlSchemaComplexType btype = (XmlSchemaComplexType)schema.getTypeByName("IntBean");
-        XmlSchemaSequence seq = (XmlSchemaSequence)btype.getParticle();
-        boolean int1ok = false;
-        for (int x = 0; x < seq.getItems().getCount(); x++) {
-            XmlSchemaObject o = seq.getItems().getItem(x);
-            if (o instanceof XmlSchemaElement) {
-                XmlSchemaElement oe = (XmlSchemaElement) o;
-                if ("int1".equals(oe.getName())) {
-                    int1ok = true;
-                    assertFalse(oe.isNillable());
-                    assertEquals(1, oe.getMinOccurs());
-                } 
-            }
-        }
-        assertTrue(int1ok);
+
+        assertValid("//xsd:complexType[@name='IntBean']/xsd:sequence/xsd:element[@name='int1']", schema);
+        assertInvalid(
+                      "//xsd:complexType[@name='IntBean']/xsd:sequence/xsd:element[@name='int1'][@minOccurs]",
+                      schema);
+        assertInvalid("//xsd:complexType[@name='IntBean']/xsd:sequence/xsd:element[@name='int1'][@nillable]",
+                      schema);
     }
     
     @Test
@@ -377,28 +343,25 @@
         BeanType type = (BeanType)mapping.getTypeCreator().createType(SimpleBean.class);
         type.setTypeClass(SimpleBean.class);
         type.setTypeMapping(mapping);
-        
-        XmlSchema schema = newXmlSchema("urn:Bean");
+
+        Element types = new Element("types", "xsd", SOAPConstants.XSD);
+        Element schema = new Element("schema", "xsd", SOAPConstants.XSD);
+        types.addContent(schema);
+
+        new Document(types);
+
         type.writeSchema(schema);
-        
-        XmlSchemaComplexType btype = (XmlSchemaComplexType)schema.getTypeByName("SimpleBean");
-        XmlSchemaSequence seq = (XmlSchemaSequence)btype.getParticle();
-        boolean charok = false;
-
-        for (int x = 0; x < seq.getItems().getCount(); x++) {
-            XmlSchemaObject o = seq.getItems().getItem(x);
-            if (o instanceof XmlSchemaElement) {
-                XmlSchemaElement oe = (XmlSchemaElement) o;
-                if ("character".equals(oe.getName())) {
-                    charok = true;
-                    assertNotNull(oe.getSchemaTypeName());
-                    assertTrue(oe.isNillable());
-                    assertEquals(CharacterAsStringType.CHARACTER_AS_STRING_TYPE_QNAME, 
-                                 oe.getSchemaTypeName());
-                }
-            }
-        }
-        assertTrue(charok);
+
+        NodeList typeAttrNode = 
+            assertValid("//xsd:complexType[@name='SimpleBean']/xsd:sequence/xsd:element[@name='character']"
+                       + "/@type", 
+                       schema); 
+        assertEquals(1, typeAttrNode.getLength());
+        Attr typeAttr = (Attr)typeAttrNode.item(0);
+        String typeQnameString = typeAttr.getValue();
+        String[] pieces = typeQnameString.split(":");
+        assertEquals(CharacterAsStringType.CHARACTER_AS_STRING_TYPE_QNAME.getLocalPart(),
+                     pieces[1]);
     }
     
     @Test
@@ -411,36 +374,42 @@
         type.setTypeClass(SimpleBean.class);
         type.setTypeMapping(mapping);
 
-        XmlSchema schema = newXmlSchema("urn:Bean");
+        Element types = new Element("types", "xsd", SOAPConstants.XSD);
+        Element schema = new Element("schema", "xsd", SOAPConstants.XSD);
+        types.addContent(schema);
+
+        new Document(types);
+
         type.writeSchema(schema);
+
+        NodeList typeAttrNode = 
+            assertValid("//xsd:complexType[@name='SimpleBean']/xsd:sequence/xsd:element[@name='littleByte']"
+                       + "/@type", 
+                       schema); 
+        assertEquals(1, typeAttrNode.getLength());
+        Attr typeAttr = (Attr)typeAttrNode.item(0);
+        String typeQnameString = typeAttr.getValue();
+        String[] pieces = typeQnameString.split(":");
+        assertEquals("xsd", pieces[0]);
+        assertEquals("byte", pieces[1]);
+        
+        typeAttrNode = 
+            assertValid("//xsd:complexType[@name='SimpleBean']/xsd:sequence/xsd:element[@name='bigByte']"
+                       + "/@type", 
+                       schema); 
+        assertEquals(1, typeAttrNode.getLength());
+        typeAttr = (Attr)typeAttrNode.item(0);
+        typeQnameString = typeAttr.getValue();
+        pieces = typeQnameString.split(":");
+        assertEquals("xsd", pieces[0]);
+        assertEquals("byte", pieces[1]);
         
-        XmlSchemaComplexType btype = (XmlSchemaComplexType)schema.getTypeByName("SimpleBean");
-        XmlSchemaSequence seq = (XmlSchemaSequence)btype.getParticle();
-        boolean littleByteOk = false;
-        boolean bigByteOk = false;
-
-        for (int x = 0; x < seq.getItems().getCount(); x++) {
-            XmlSchemaObject o = seq.getItems().getItem(x);
-            if (o instanceof XmlSchemaElement) {
-                XmlSchemaElement oe = (XmlSchemaElement) o;
-                if ("littleByte".equals(oe.getName())) {
-                    littleByteOk = true;
-                    assertNotNull(oe.getSchemaTypeName());
-                    assertEquals(XmlSchemaConstants.BYTE_QNAME, oe.getSchemaTypeName());
-                } else if ("bigByte".equals(oe.getName())) {
-                    bigByteOk = true;
-                    assertNotNull(oe.getSchemaTypeName());
-                    assertEquals(XmlSchemaConstants.BYTE_QNAME, oe.getSchemaTypeName());
-                }
-            }
-        }
-        assertTrue(littleByteOk);
-        assertTrue(bigByteOk);
-        
+        Element element = new Element("root", "b", "urn:Bean");
+        new Document(element);
         SimpleBean bean = new SimpleBean();
         bean.setBigByte(new Byte((byte)0xfe));
         bean.setLittleByte((byte)0xfd);
-        Element element = writeObjectToElement(type, bean, getContext());
+        type.writeObject(bean, new JDOMWriter(element), getContext());
         Byte bb = new Byte((byte)0xfe);
         String bbs = bb.toString();
         assertValid("/b:root/bz:bigByte[text()='" + bbs + "']", element);
@@ -468,7 +437,9 @@
         DateBean bean = new DateBean();
 
         // Test writing
-        Element element = writeObjectToElement(type, bean, getContext());
+        Element element = new Element("root", "b", "urn:Bean");
+        new Document(element);
+        type.writeObject(bean, new JDOMWriter(element), getContext());
 
         // Make sure the date doesn't have an element. Its non nillable so it
         // just
@@ -492,7 +463,10 @@
         ExtendedBean bean = new ExtendedBean();
         bean.setHowdy("howdy");
 
-        Element element = writeObjectToElement(type, bean, getContext());
+        Element element = new Element("root", "b", "urn:Bean");
+        new Document(element);
+        type.writeObject(bean, new JDOMWriter(element), getContext());
+
         assertValid("/b:root/b:howdy[text()='howdy']", element);
     }
     @Test
@@ -514,7 +488,9 @@
         ByteBean bean = new ByteBean();
 
         // Test writing
-        Element element = writeObjectToElement(type, bean, getContext());
+        Element element = new Element("root", "b", "urn:Bean");
+        new Document(element);
+        type.writeObject(bean, new JDOMWriter(element), getContext());
 
         // Make sure the date doesn't have an element. Its non nillable so it
         // just
@@ -523,8 +499,7 @@
         addNamespace("xsi", SOAPConstants.XSI_NS);
         assertValid("/b:root/b:data[@xsi:nil='true']", element);
 
-        XMLStreamReader sreader = StaxUtils.createXMLStreamReader(element);
-        bean = (ByteBean)type.readObject(new ElementReader(sreader), getContext());
+        bean = (ByteBean)type.readObject(new JDOMReader(element), getContext());
         assertNotNull(bean);
         assertNull(bean.getData());
     }
@@ -535,21 +510,21 @@
         type.setTypeMapping(mapping);
         type.setSchemaType(new QName("urn:foo", "BadBean"));
 
-        assertTrue(type.getTypeInfo().getElements().iterator().hasNext());
+        assertTrue(type.getTypeInfo().getElements().hasNext());
 
         type = new BeanType();
         type.setTypeClass(BadBean.class);
         type.setTypeMapping(mapping);
         type.setSchemaType(new QName("urn:foo", "BadBean"));
 
-        assertFalse(type.getTypeInfo().getElements().iterator().hasNext());
+        assertFalse(type.getTypeInfo().getElements().hasNext());
 
         type = new BeanType();
         type.setTypeClass(BadBean2.class);
         type.setTypeMapping(mapping);
         type.setSchemaType(new QName("urn:foo", "BadBean2"));
 
-        assertFalse(type.getTypeInfo().getElements().iterator().hasNext());
+        assertFalse(type.getTypeInfo().getElements().hasNext());
     }
 
     public static class DateBean {

Modified: cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/basic/QualificationTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/basic/QualificationTest.java?rev=747871&r1=747870&r2=747871&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/basic/QualificationTest.java (original)
+++ cxf/branches/2.1.x-fixes/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/basic/QualificationTest.java Wed Feb 25 17:54:34 2009
@@ -20,8 +20,6 @@
 
 import javax.xml.namespace.QName;
 
-import org.w3c.dom.Element;
-
 import org.apache.cxf.aegis.AbstractAegisTest;
 import org.apache.cxf.aegis.AegisContext;
 import org.apache.cxf.aegis.Context;
@@ -30,8 +28,10 @@
 import org.apache.cxf.aegis.type.Type;
 import org.apache.cxf.aegis.type.TypeCreationOptions;
 import org.apache.cxf.aegis.type.TypeMapping;
+import org.apache.cxf.aegis.xml.jdom.JDOMWriter;
 import org.apache.cxf.common.util.SOAPConstants;
-
+import org.jdom.Document;
+import org.jdom.Element;
 import org.junit.Test;
 
 public class QualificationTest extends AbstractAegisTest {
@@ -55,8 +55,10 @@
         type.setSchemaType(new QName("urn:Bean", "bean"));
 
         Context messageContext = new Context(context);
+        Element element = new Element("root", "b", "urn:Bean");
+        new Document(element);
         AttributeBean bean = new AttributeBean();
-        Element element = writeObjectToElement(type, bean, messageContext);
+        type.writeObject(bean, new JDOMWriter(element), messageContext);
         assertValid("/b:root[@xyzzy:attrExplicitString]", element);
         assertXPathEquals("/b:root/@xyzzy:attrExplicitString", "attrExplicit", element);
         assertValid("/b:root[@attrPlainString]", element);
@@ -77,8 +79,10 @@
         type.setSchemaType(new QName("urn:Bean", "bean"));
 
         Context messageContext = new Context(context);
+        Element element = new Element("root", "b", "urn:Bean");
+        new Document(element);
         AttributeBean bean = new AttributeBean();
-        Element element = writeObjectToElement(type, bean, messageContext);
+        type.writeObject(bean, new JDOMWriter(element), messageContext);
         assertValid("/b:root[@xyzzy:attrExplicitString]", element);
         assertXPathEquals("/b:root/@xyzzy:attrExplicitString", "attrExplicit", element);
         assertValid("/b:root[@pkg:attrPlainString]", element);
@@ -94,9 +98,10 @@
         type.setSchemaType(new QName("urn:Bean", "bean"));
 
         Context messageContext = new Context(context);
+        Element element = new Element("root", "b", "urn:Bean");
+        new Document(element);
         XmlMappedAttributeBean bean = new XmlMappedAttributeBean();
-        
-        Element element = writeObjectToElement(type, bean, messageContext);
+        type.writeObject(bean, new JDOMWriter(element), messageContext);
         assertValid("/b:root[@attrXmlString]", element);
         assertXPathEquals("/b:root/@attrXmlString", "attrXml", element);
     }
@@ -115,9 +120,10 @@
         type.setSchemaType(new QName("urn:Bean", "bean"));
 
         Context messageContext = new Context(context);
+        Element element = new Element("root", "b", "urn:Bean");
+        new Document(element);
         XmlMappedAttributeBean bean = new XmlMappedAttributeBean();
-
-        Element element = writeObjectToElement(type, bean, messageContext);
+        type.writeObject(bean, new JDOMWriter(element), messageContext);
         assertValid("/b:root[@pkg:attrXmlString]", element);
         assertXPathEquals("/b:root/@pkg:attrXmlString", "attrXml", element);
     }