You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by da...@apache.org on 2007/03/07 21:20:15 UTC

svn commit: r515734 [10/11] - in /incubator/cxf/trunk/rt: ./ core/src/main/java/org/apache/cxf/endpoint/ databinding/aegis/ databinding/aegis/src/ databinding/aegis/src/main/ databinding/aegis/src/main/java/ databinding/aegis/src/main/java/org/ databin...

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/CollectionTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/CollectionTest.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/CollectionTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/ConfigurationTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/ConfigurationTest.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/ConfigurationTest.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/ConfigurationTest.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,100 @@
+package org.apache.cxf.aegis.type.java5;
+
+import javax.xml.namespace.QName;
+
+import org.apache.cxf.aegis.AbstractAegisTest;
+import org.apache.cxf.aegis.type.Configuration;
+import org.apache.cxf.aegis.type.CustomTypeMapping;
+import org.apache.cxf.aegis.type.DefaultTypeMappingRegistry;
+import org.apache.cxf.aegis.type.Type;
+import org.apache.cxf.aegis.type.XMLTypeCreator;
+import org.apache.cxf.aegis.type.basic.BeanType;
+import org.apache.cxf.aegis.type.basic.BeanTypeInfo;
+
+/**
+ * @author adam
+ * 
+ */
+public class ConfigurationTest
+    extends AbstractAegisTest
+{
+
+    CustomTypeMapping tm;
+
+    Configuration config = null;
+
+    public void setUp()
+        throws Exception
+    {
+        super.setUp();
+
+        DefaultTypeMappingRegistry reg = new DefaultTypeMappingRegistry();
+        config = reg.getConfiguration();
+        XMLTypeCreator creator = new XMLTypeCreator();
+        creator.setConfiguration(reg.getConfiguration());
+        Java5TypeCreator next = new Java5TypeCreator();
+        next.setConfiguration(reg.getConfiguration());
+        creator.setNextCreator(next);
+        reg.createDefaultMappings();
+        tm = (CustomTypeMapping) reg.getDefaultTypeMapping();
+        tm.setTypeCreator(creator);
+    }
+    
+    public void testNillableDefaultTrue() throws Exception
+    {
+        config.setDefaultNillable( true );
+
+        Type type = tm.getTypeCreator().createType(AnnotatedBean1.class);
+        BeanTypeInfo info = ((BeanType) type).getTypeInfo();
+
+        assertTrue(info.isNillable(new QName(info.getDefaultNamespace(), "bogusProperty")));
+    }
+    
+    public void testNillableDefaultFalse() throws Exception
+    {
+        config.setDefaultNillable( false );
+        Type type = tm.getTypeCreator().createType(AnnotatedBean1.class);
+        BeanTypeInfo info = ((BeanType) type).getTypeInfo();
+
+        assertFalse(info.isNillable(new QName(info.getDefaultNamespace(), "bogusProperty")));
+    }
+    
+    public void testMinOccursDefault0() throws Exception
+    {
+        config.setDefaultMinOccurs( 0 );
+        Type type = tm.getTypeCreator().createType(AnnotatedBean1.class);
+        BeanTypeInfo info = ((BeanType) type).getTypeInfo();
+
+        assertEquals(info.getMinOccurs(new QName(info.getDefaultNamespace(), "bogusProperty")), 0);
+    }
+    
+    public void testMinOccursDefault1() throws Exception
+    {
+        config.setDefaultMinOccurs( 1 );
+        Type type = tm.getTypeCreator().createType(AnnotatedBean1.class);
+        BeanTypeInfo info = ((BeanType) type).getTypeInfo();
+
+        assertEquals(info.getMinOccurs(new QName(info.getDefaultNamespace(), "bogusProperty")), 1);
+    }
+    
+    public void testExtensibleDefaultTrue() throws Exception
+    {
+        config.setDefaultExtensibleElements( true );
+        config.setDefaultExtensibleAttributes( true );
+        Type type = tm.getTypeCreator().createType(AnnotatedBean1.class);
+        BeanTypeInfo info = ((BeanType) type).getTypeInfo();
+        assertTrue(info.isExtensibleElements());
+        assertTrue(info.isExtensibleAttributes());
+    }
+    
+    public void testExtensibleDefaultFalse() throws Exception
+    {
+        config.setDefaultExtensibleElements( false );
+        config.setDefaultExtensibleAttributes( false );
+        Type type = tm.getTypeCreator().createType(AnnotatedBean1.class);
+        BeanTypeInfo info = ((BeanType) type).getTypeInfo();
+        assertFalse(info.isExtensibleElements());
+        assertFalse(info.isExtensibleAttributes());
+    }
+    
+}
\ No newline at end of file

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/ConfigurationTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/ConfigurationTest.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/ConfigurationTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/CurrencyService.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/CurrencyService.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/CurrencyService.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/CurrencyService.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,16 @@
+package org.apache.cxf.aegis.type.java5;
+
+public class CurrencyService
+{
+    public enum Currency
+    {
+        USD,
+        POUNDS,
+        EURO
+    }
+    
+    public int convert(int input, Currency inputCurrency, Currency outputCurrency)
+    {
+        return input;
+    }
+}

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/CurrencyService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/CurrencyService.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/CurrencyService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/CustomStringType.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/CustomStringType.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/CustomStringType.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/CustomStringType.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,8 @@
+package org.apache.cxf.aegis.type.java5;
+
+import org.apache.cxf.aegis.type.basic.StringType;
+
+public class CustomStringType extends StringType 
+{
+
+}

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/CustomStringType.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/CustomStringType.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/CustomStringType.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutService.aegis.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutService.aegis.xml?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutService.aegis.xml (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutService.aegis.xml Wed Mar  7 12:20:07 2007
@@ -0,0 +1,7 @@
+<mappings>
+  <mapping>
+    <method name="getValues">
+     <parameter index="0" componentType="java.lang.String"/>
+    </method>
+  </mapping>
+</mappings>
\ No newline at end of file

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutService.aegis.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutService.aegis.xml
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutService.aegis.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutService.aegis.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutService.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutService.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutService.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutService.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,26 @@
+package org.apache.cxf.aegis.type.java5;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+import javax.xml.ws.Holder;
+
+@WebService(serviceName="DualOutService")
+public class DualOutService
+{
+    @WebMethod
+    public String getValues(@WebParam(mode=WebParam.Mode.OUT) Holder<String> out2)
+    {
+        out2.value = "hi";
+        return "hi";
+    }
+    
+    @WebMethod
+    public Collection<String> getStrings()
+    {
+        return new ArrayList<String>();
+    }
+}

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutService.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutServiceTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutServiceTest.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutServiceTest.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutServiceTest.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,28 @@
+package org.apache.cxf.aegis.type.java5;
+
+import org.w3c.dom.Document;
+
+import org.apache.cxf.aegis.AbstractAegisTest;
+import org.apache.cxf.aegis.util.XmlConstants;
+import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
+
+public class DualOutServiceTest
+    extends AbstractAegisTest
+{
+    public void testWSDL() throws Exception
+    {
+        JaxWsServerFactoryBean sf = new JaxWsServerFactoryBean();
+        sf.setServiceClass(DualOutService.class);
+        sf.setAddress("DualOutService");
+        sf.setBus(getBus());
+        setupAegis(sf);
+        sf.create();
+        
+        Document wsdl = getWSDLDocument("DualOutService");
+        assertNotNull(wsdl);
+        
+        addNamespace("xsd", XmlConstants.XSD);
+        assertValid("//xsd:element[@name='getValuesResponse']//xsd:element[@name='return'][@type='xsd:string']", wsdl);
+        assertValid("//xsd:element[@name='getValuesResponse']//xsd:element[@name='out2'][@type='xsd:string']", wsdl);
+    }
+}

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutServiceTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutServiceTest.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/DualOutServiceTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/EnumTypeTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/EnumTypeTest.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/EnumTypeTest.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/EnumTypeTest.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,148 @@
+package org.apache.cxf.aegis.type.java5;
+
+import javax.mail.MessageContext;
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Document;
+
+import org.apache.cxf.aegis.AbstractAegisTest;
+import org.apache.cxf.aegis.Context;
+import org.apache.cxf.aegis.type.Configuration;
+import org.apache.cxf.aegis.type.CustomTypeMapping;
+import org.apache.cxf.aegis.type.Type;
+import org.apache.cxf.aegis.type.java5.CurrencyService.Currency;
+import org.apache.cxf.aegis.util.XmlConstants;
+import org.apache.cxf.aegis.xml.jdom.JDOMReader;
+import org.apache.cxf.aegis.xml.jdom.JDOMWriter;
+import org.apache.cxf.binding.soap.SoapConstants;
+import org.jdom.Element;
+import org.jdom.output.DOMOutputter;
+
+public class EnumTypeTest
+    extends AbstractAegisTest
+{
+    private CustomTypeMapping tm;
+    
+    private enum smallEnum { VALUE1, VALUE2 };
+    
+    public void setUp() throws Exception
+    {
+        super.setUp();
+        
+        tm = new CustomTypeMapping();
+        Java5TypeCreator creator = new Java5TypeCreator();
+        creator.setConfiguration(new Configuration());
+        tm.setTypeCreator(creator);
+    }
+
+    public void testType() throws Exception
+    {
+        EnumType type = new EnumType();
+        type.setTypeClass(smallEnum.class);
+        type.setSchemaType(new QName("urn:test", "test"));
+
+        tm.register(type);
+        
+        Element root = new Element("root");
+        JDOMWriter writer = new JDOMWriter(root);
+        
+        type.writeObject(smallEnum.VALUE1, writer, new Context());
+        
+        assertEquals("VALUE1", root.getValue());
+        
+        JDOMReader reader = new JDOMReader(root);
+        Object value = type.readObject(reader, new Context());
+        
+        assertEquals(smallEnum.VALUE1, value);
+    }
+
+    public void testAutoCreation() throws Exception
+    {
+        Type type = (Type) tm.getTypeCreator().createType(smallEnum.class);
+        
+        assertTrue( type instanceof EnumType );
+    }
+    
+    public void testTypeAttributeOnEnum() throws Exception
+    {
+        Type type = (Type) tm.getTypeCreator().createType(TestEnum.class);
+        
+        assertEquals("urn:xfire:foo", type.getSchemaType().getNamespaceURI());
+        
+        assertTrue( type instanceof EnumType );
+    }
+
+    public void testWSDL() throws Exception
+    {
+        EnumType type = new EnumType();
+        type.setTypeClass(smallEnum.class);
+        type.setSchemaType(new QName("urn:test", "test"));
+
+        Element root = new Element("root");
+        org.jdom.Document wsdl = new org.jdom.Document(root);
+        type.writeSchema(root);
+
+        Document doc = new DOMOutputter().output(wsdl);
+        addNamespace("xsd", XmlConstants.XSD);
+        assertValid("//xsd:simpleType[@name='test']/xsd:restriction[@base='xsd:string']", doc);
+        assertValid("//xsd:restriction[@base='xsd:string']/xsd:enumeration[@value='VALUE1']", doc);
+        assertValid("//xsd:restriction[@base='xsd:string']/xsd:enumeration[@value='VALUE2']", doc);
+    }
+    
+    public void testCurrencyService() throws Exception
+    {
+        createService(CurrencyService.class, null);
+        
+        Document wsdl = getWSDLDocument("CurrencyService");
+
+        assertValid("//xsd:element[@name='inputCurrency'][@nillable='true']", wsdl);
+        assertValid("//xsd:simpleType[@name='Currency']/xsd:restriction[@base='xsd:string']", wsdl);
+        assertValid("//xsd:restriction[@base='xsd:string']/xsd:enumeration[@value='USD']", wsdl);
+        assertValid("//xsd:restriction[@base='xsd:string']/xsd:enumeration[@value='EURO']", wsdl);
+        assertValid("//xsd:restriction[@base='xsd:string']/xsd:enumeration[@value='POUNDS']", wsdl);
+    }
+    
+    
+    public void testNillable() throws Exception
+    {
+        Type type = tm.getTypeCreator().createType(EnumBean.class);
+
+        tm.register(type);
+        
+        Element root = new Element("root");
+        JDOMWriter writer = new JDOMWriter(root);
+        
+        type.writeObject(new EnumBean(), writer, new Context());
+
+        JDOMReader reader = new JDOMReader(root);
+        Object value = type.readObject(reader, new Context());
+        
+        assertTrue(value instanceof EnumBean);
+        EnumBean bean = (EnumBean) value;
+        assertNull(bean.getCurrency());
+    }
+    
+    public static class EnumBean {
+        private Currency currency;
+
+        public Currency getCurrency()
+        {
+            return currency;
+        }
+
+        public void setCurrency(Currency currency)
+        {
+            this.currency = currency;
+        }
+        
+        public Currency[] getSomeCurrencies()
+        {
+            return new Currency[] { Currency.EURO, null };
+        }
+        
+        public void setSomeCurrencies(Currency[] currencies)
+        {
+            
+        }
+    }
+}

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/EnumTypeTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/EnumTypeTest.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/EnumTypeTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/MapTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/MapTest.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/MapTest.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/MapTest.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,164 @@
+package org.apache.cxf.aegis.type.java5;
+
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.Method;
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+
+import javax.xml.namespace.QName;
+
+import org.apache.cxf.aegis.AbstractAegisTest;
+import org.apache.cxf.aegis.type.Configuration;
+import org.apache.cxf.aegis.type.CustomTypeMapping;
+import org.apache.cxf.aegis.type.Type;
+import org.apache.cxf.aegis.type.collection.CollectionType;
+import org.apache.cxf.aegis.type.collection.MapType;
+import org.apache.cxf.aegis.type.java5.dto.MapDTO;
+import org.apache.cxf.aegis.type.java5.dto.MapDTOService;
+
+public class MapTest
+    extends AbstractAegisTest
+{
+    private CustomTypeMapping tm;
+    private Java5TypeCreator creator;
+
+    public void setUp() throws Exception
+    {
+        super.setUp();
+        
+        tm = new CustomTypeMapping();
+        creator = new Java5TypeCreator();
+        creator.setConfiguration(new Configuration());
+        tm.setTypeCreator(creator);
+    }
+
+    @SuppressWarnings("unchecked")
+    public void testType() throws Exception
+    {
+        Method m = MapService.class.getMethod("getMap", new Class[0]);
+        
+        Type type = creator.createType(m, -1);
+        tm.register(type);
+        assertTrue( type instanceof MapType );
+        
+        MapType mapType = (MapType) type;
+        QName keyName = mapType.getKeyName();
+        assertNotNull(keyName);
+        
+        type = mapType.getKeyType();
+        assertNotNull(type);
+        assertTrue(type.getTypeClass().isAssignableFrom(String.class));
+        
+        type = mapType.getValueType();
+        assertNotNull(type);
+        assertTrue(type.getTypeClass().isAssignableFrom(Integer.class));
+    }
+
+    public void testRecursiveType() throws Exception
+    {
+        Method m = MapService.class.getMethod("getMapOfCollections", new Class[0]);
+        
+        Type type = creator.createType(m, -1);
+        tm.register(type);
+        assertTrue( type instanceof MapType );
+        
+        MapType mapType = (MapType) type;
+        QName keyName = mapType.getKeyName();
+        assertNotNull(keyName);
+        
+        type = mapType.getKeyType();
+        assertNotNull(type);
+        assertTrue(type instanceof CollectionType);
+        assertEquals(String.class, ((CollectionType) type).getComponentType().getTypeClass());
+        
+        type = mapType.getValueType();
+        assertNotNull(type);
+        assertTrue(type instanceof CollectionType);
+        assertEquals(Double.class, ((CollectionType) type).getComponentType().getTypeClass());
+    }
+    
+    @SuppressWarnings("unchecked")
+    public void testPDType() throws Exception
+    {
+        PropertyDescriptor pd = 
+            Introspector.getBeanInfo(MapDTO.class, Object.class).getPropertyDescriptors()[0];
+        Type type = creator.createType(pd);
+        tm.register(type);
+        assertTrue( type instanceof MapType );
+        
+        MapType mapType = (MapType) type;
+        QName keyName = mapType.getKeyName();
+        assertNotNull(keyName);
+        
+        type = mapType.getKeyType();
+        assertNotNull(type);
+        assertTrue(type.getTypeClass().isAssignableFrom(String.class));
+        
+        type = mapType.getValueType();
+        assertNotNull(type);
+        assertTrue(type.getTypeClass().isAssignableFrom(Integer.class));
+    }
+
+    @SuppressWarnings("unchecked")
+    public void testMapDTO()
+    {
+        CustomTypeMapping tm = new CustomTypeMapping();
+        Java5TypeCreator creator = new Java5TypeCreator();
+        creator.setConfiguration(new Configuration());
+        tm.setTypeCreator(creator);
+        
+        Type dto = creator.createType(MapDTO.class);
+        Set deps = dto.getDependencies();
+        
+        Type type = (Type) deps.iterator().next();
+        assertTrue( type instanceof MapType );
+        
+        MapType mapType = (MapType) type;
+        
+        deps = dto.getDependencies();
+        assertEquals(1, deps.size());
+        
+        type = mapType.getKeyType();
+        assertNotNull(type);
+        assertTrue(type.getTypeClass().isAssignableFrom(String.class));
+        
+        type = mapType.getValueType();
+        assertNotNull(type);
+        assertTrue(type.getTypeClass().isAssignableFrom(Integer.class));
+    }
+    
+    public void testMapDTOService() throws Exception
+    {
+        createService(MapDTOService.class, null);
+        
+        invoke("MapDTOService", 
+               "/org/apache/cxf/aegis/type/java5/dto/GetDTO.xml");
+    }
+
+
+    public void testMapServiceWSDL() throws Exception
+    {
+        createService(MapDTOService.class, null);
+        
+        getWSDLDocument("MapDTOService");
+    }
+    
+    public class MapService
+    {
+        public Map<String,Integer> getMap()
+        {
+        	return null;
+        }
+        
+        public void setMap(Map<String,Integer> strings) {
+        	
+        }
+        
+        public Map<Collection<String>,Collection<Double>> getMapOfCollections()
+        {
+            return null;
+        }
+    }
+}

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/MapTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/MapTest.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/MapTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/OperationNSTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/OperationNSTest.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/OperationNSTest.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/OperationNSTest.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,74 @@
+package org.apache.cxf.aegis.type.java5;
+
+import java.util.List;
+
+import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebResult;
+import javax.jws.WebService;
+
+import org.w3c.dom.Document;
+
+import org.apache.cxf.aegis.AbstractAegisTest;
+import org.apache.cxf.aegis.databinding.AegisDatabinding;
+import org.apache.cxf.aegis.util.XmlConstants;
+import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
+import org.apache.cxf.service.Service;
+
+public class OperationNSTest extends AbstractAegisTest {
+
+    public void setUp() throws Exception {
+        super.setUp();
+
+        JaxWsServerFactoryBean sf = new JaxWsServerFactoryBean();
+        sf.setServiceClass(NotificationLogImpl.class);
+        sf.setAddress("NotificationLogImpl");
+        sf.getServiceFactory().setDataBinding(new AegisDatabinding());
+
+        sf.create();
+    }
+
+    public void testWSDL() throws Exception {
+        Document wsdl = getWSDLDocument("NotificationService");
+
+        addNamespace("xsd", XmlConstants.XSD);
+        assertValid("//xsd:element[@name='Notify']", wsdl);
+    }
+
+    @WebService(name = "NotificationLog", targetNamespace = "http://www.sics.se/NotificationLog")
+    public static interface NotificationLog {
+
+        @WebMethod(operationName = "Notify", action = "")
+        @Oneway
+        public void Notify(@WebParam(name = "Notify", targetNamespace = "http://docs.oasis-open.org/wsn/b-2")
+        Document Notify);
+
+        @WebMethod(operationName = "query", action = "")
+        @WebResult(name = "queryResponse", targetNamespace = "http://www.sics.se/NotificationLog")
+        public List<Document> query(
+                                    @WebParam(name = "xpath", targetNamespace = "http://www.sics.se/NotificationLog")
+                                    String xpath);
+
+        @WebMethod(operationName = "Notify2", action = "")
+        @Oneway
+        public void Notify2(
+                            @WebParam(name = "Notify", targetNamespace = "http://docs.oasis-open.org/wsn/2004/06/wsn-WS-BaseNotification-1.2-draft-01.xsd")
+                            Document Notify);
+    }
+
+    @WebService(endpointInterface = "org.apache.cxf.aegis.type.java5.OperationNSTest$NotificationLog",
+                serviceName="NotificationService")
+    public static class NotificationLogImpl implements NotificationLog {
+
+        public void Notify(Document Notify) {
+        }
+
+        public void Notify2(Document Notify) {
+        }
+
+        public List<Document> query(String xpath) {
+            return null;
+        }
+    }
+}

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/OperationNSTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/OperationNSTest.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/OperationNSTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/TestEnum.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/TestEnum.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/TestEnum.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/TestEnum.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,8 @@
+package org.apache.cxf.aegis.type.java5;
+
+@XmlType(namespace="urn:xfire:foo")
+public enum TestEnum
+{
+    VALUE1,
+    VALUE2
+}

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/TestEnum.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/TestEnum.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/TestEnum.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/XmlParamTypeTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/XmlParamTypeTest.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/XmlParamTypeTest.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/XmlParamTypeTest.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,67 @@
+package org.apache.cxf.aegis.type.java5;
+
+import java.lang.reflect.Method;
+
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Document;
+
+import org.apache.cxf.aegis.AbstractAegisTest;
+import org.apache.cxf.aegis.type.Configuration;
+import org.apache.cxf.aegis.type.CustomTypeMapping;
+import org.apache.cxf.aegis.type.DefaultTypeCreator;
+import org.apache.cxf.aegis.type.Type;
+
+public class XmlParamTypeTest
+    extends AbstractAegisTest
+{
+    private CustomTypeMapping tm;
+    private Java5TypeCreator creator;
+
+    public void setUp() throws Exception
+    {
+        super.setUp();
+        
+        tm = new CustomTypeMapping();
+        creator = new Java5TypeCreator();
+        creator.setNextCreator(new DefaultTypeCreator());
+        creator.setConfiguration(new Configuration());
+        tm.setTypeCreator(creator);
+    }
+
+    public void testType() throws Exception
+    {
+        Method m = CustomTypeService.class.getMethod("doFoo", new Class[] { String.class });
+        
+        Type type = creator.createType(m, 0);
+        tm.register(type);
+        assertTrue( type instanceof CustomStringType );
+        assertEquals( new QName("urn:xfire:foo", "custom"), type.getSchemaType());
+        
+        type = creator.createType(m, -1);
+        tm.register(type);
+        assertTrue( type instanceof CustomStringType );
+        assertEquals( new QName("urn:xfire:foo", "custom"), type.getSchemaType());
+    }
+    
+    public void testMapServiceWSDL() throws Exception
+    {
+        createService(CustomTypeService.class, null);
+        
+        Document wsdl = getWSDLDocument("CustomTypeService");
+        assertValid("//xsd:element[@name='s'][@type='ns0:custom']", wsdl);
+    }
+    
+    public class CustomTypeService
+    {
+        
+        @XmlReturnType(type=CustomStringType.class, 
+                       namespace="urn:xfire:foo",
+                       name="custom")
+        public String doFoo(@XmlParamType(type=CustomStringType.class, 
+                                        namespace="urn:xfire:foo",
+                                        name="custom") String s) {
+        	return null;
+        }
+    }
+}

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/XmlParamTypeTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/XmlParamTypeTest.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/XmlParamTypeTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/CollectionDTO.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/CollectionDTO.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/CollectionDTO.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/CollectionDTO.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,18 @@
+package org.apache.cxf.aegis.type.java5.dto;
+
+import java.util.List;
+
+public class CollectionDTO
+{
+    List<String> strings;
+
+    public List<String> getStrings()
+    {
+        return strings;
+    }
+
+    public void setStrings(List<String> strings)
+    {
+        this.strings = strings;
+    }
+}
\ No newline at end of file

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/CollectionDTO.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/CollectionDTO.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/CollectionDTO.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/DTOService.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/DTOService.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/DTOService.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/DTOService.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,17 @@
+package org.apache.cxf.aegis.type.java5.dto;
+
+import java.util.ArrayList;
+
+public class DTOService
+{
+    public CollectionDTO getDTO()
+    {
+        CollectionDTO dto = new CollectionDTO();
+        
+        ArrayList<String> strings = new ArrayList<String>();
+        strings.add("hi");
+        dto.setStrings(strings);
+        
+        return dto;
+    }
+}
\ No newline at end of file

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/DTOService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/DTOService.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/DTOService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/GetDTO.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/GetDTO.xml?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/GetDTO.xml (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/GetDTO.xml Wed Mar  7 12:20:07 2007
@@ -0,0 +1,6 @@
+<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
+ <env:Header/>
+ <env:Body>
+  <getDTO xmlns="http://dto.java5.type.aegis.cxf.apache.org"/>
+ </env:Body>
+</env:Envelope>
\ No newline at end of file

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/GetDTO.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/GetDTO.xml
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/GetDTO.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/GetDTO.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/MapDTO.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/MapDTO.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/MapDTO.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/MapDTO.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,18 @@
+package org.apache.cxf.aegis.type.java5.dto;
+
+import java.util.Map;
+
+public class MapDTO
+{
+    Map<String,Integer> strings;
+
+    public Map<String,Integer> getStrings()
+    {
+        return strings;
+    }
+
+    public void setStrings(Map<String,Integer> strings)
+    {
+        this.strings = strings;
+    }
+}
\ No newline at end of file

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/MapDTO.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/MapDTO.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/MapDTO.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/MapDTOService.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/MapDTOService.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/MapDTOService.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/MapDTOService.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,17 @@
+package org.apache.cxf.aegis.type.java5.dto;
+
+import java.util.HashMap;
+
+public class MapDTOService
+{
+    public MapDTO getDTO()
+    {
+    	MapDTO dto = new MapDTO();
+        
+        HashMap<String,Integer> strings = new HashMap<String,Integer>();
+        strings.put("hi", 4);
+        dto.setStrings(strings);
+        
+        return dto;
+    }
+}
\ No newline at end of file

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/MapDTOService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/MapDTOService.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/MapDTOService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/ObjectDTO.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/ObjectDTO.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/ObjectDTO.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/ObjectDTO.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,18 @@
+package org.apache.cxf.aegis.type.java5.dto;
+
+import java.util.List;
+
+public class ObjectDTO
+{
+    List<? extends Object> objects;
+
+    public List<? extends Object> getObjects()
+    {
+        return objects;
+    }
+
+    public void setObjects(List<? extends Object> objects)
+    {
+        this.objects = objects;
+    }
+}
\ No newline at end of file

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/ObjectDTO.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/ObjectDTO.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/dto/ObjectDTO.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/echo11.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/echo11.xml?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/echo11.xml (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/echo11.xml Wed Mar  7 12:20:07 2007
@@ -0,0 +1,8 @@
+<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
+ <env:Header/>
+ <env:Body>
+  <m:echo xmlns:m="urn:Echo">
+   <m:in0>Yo Yo</m:in0>
+  </m:echo>
+ </env:Body>
+</env:Envelope>
\ No newline at end of file

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/echo11.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/echo11.xml
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/echo11.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/type/java5/echo11.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/ReaderTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/ReaderTest.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/ReaderTest.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/ReaderTest.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,120 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.aegis.xml.stax;
+
+import javax.xml.stream.FactoryConfigurationError;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+
+import org.apache.cxf.aegis.util.STAXUtils;
+import org.apache.cxf.aegis.util.jdom.StaxBuilder;
+import org.apache.cxf.aegis.xml.MessageReader;
+import org.apache.cxf.aegis.xml.jdom.JDOMReader;
+import org.apache.cxf.aegis.xml.stax.ElementReader;
+import org.apache.cxf.binding.soap.Soap11;
+import org.apache.cxf.test.AbstractCXFTest;
+import org.jdom.Document;
+
+/**
+ * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
+ * @since Nov 4, 2004
+ */
+public class ReaderTest
+    extends AbstractCXFTest
+{
+    public void testLiteralReader()
+        throws Exception
+    {
+        ElementReader lr = getStreamReader("bean11.xml");
+        testReading(lr);
+        
+        lr = getStreamReader("read1.xml");
+        testReading2(lr);
+    }
+
+    private ElementReader getStreamReader(String resource)
+        throws FactoryConfigurationError, XMLStreamException
+    {
+        /*XMLInputFactory factory = XMLInputFactory.newInstance();
+        XMLStreamReader reader = factory.createXMLStreamReader( 
+                getResourceAsStream(resource));*/
+        XMLStreamReader reader = STAXUtils.createXMLStreamReader(getResourceAsStream(resource),null,null);
+        
+        while ( reader.getEventType() != XMLStreamReader.START_ELEMENT )
+            reader.next();
+        
+        return new ElementReader(reader);
+    }
+    
+    public void testJDOMReader()
+        throws Exception
+    {
+        StaxBuilder builder = new StaxBuilder();
+        Document doc = builder.build(getResourceAsReader("bean11.xml"));
+
+        testReading(new JDOMReader(doc.getRootElement()));
+    }
+    
+    public void testReading(MessageReader reader)
+    {
+        assertTrue(reader.getLocalName().equals("Envelope"));
+
+        // make sure we can repeat this
+        assertTrue(reader.hasMoreElementReaders());
+        assertTrue(reader.hasMoreElementReaders());
+        assertTrue(reader.hasMoreElementReaders());
+
+        MessageReader header = reader.getNextElementReader();
+        assertEquals("Header", header.getLocalName());
+        assertEquals(Soap11.getInstance().getNamespace(), header.getNamespace());
+        assertFalse(header.hasMoreElementReaders());
+
+        MessageReader body = reader.getNextElementReader();
+        assertEquals("Body", body.getLocalName());
+        assertFalse(body.hasMoreElementReaders());
+    }
+    
+    public void testReading2(MessageReader reader)
+        throws Exception
+    {
+        assertEquals("test", reader.getLocalName());
+        assertEquals("urn:test", reader.getNamespace());
+
+        // make sure we can repeat this
+        assertTrue(reader.hasMoreAttributeReaders());
+        assertTrue(reader.hasMoreAttributeReaders());
+        assertTrue(reader.hasMoreAttributeReaders());
+
+        MessageReader one = reader.getNextAttributeReader();
+        assertEquals("one", one.getValue());
+        
+        MessageReader two = reader.getNextAttributeReader();
+        assertEquals("two", two.getValue());
+
+        assertFalse(reader.hasMoreAttributeReaders());
+        
+        assertTrue(reader.hasMoreElementReaders());
+        assertTrue(reader.hasMoreElementReaders());
+        assertTrue(reader.hasMoreElementReaders());
+        
+        MessageReader child = reader.getNextElementReader();
+        assertEquals("child", child.getLocalName());
+        assertTrue(child.hasMoreElementReaders());
+    }
+}

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/ReaderTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/ReaderTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/WriterTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/WriterTest.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/WriterTest.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/WriterTest.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,131 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.aegis.xml.stax;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.StringReader;
+
+import org.apache.cxf.aegis.util.jdom.StaxBuilder;
+import org.apache.cxf.aegis.xml.MessageWriter;
+import org.apache.cxf.aegis.xml.jdom.JDOMWriter;
+import org.apache.cxf.aegis.xml.stax.ElementWriter;
+import org.apache.cxf.test.AbstractCXFTest;
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.output.DOMOutputter;
+
+/**
+ * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
+ * @since Nov 4, 2004
+ */
+public class WriterTest
+    extends AbstractCXFTest
+{
+    File output;
+    
+    public void setUp()
+        throws Exception
+    {
+        super.setUp();
+        
+        output = File.createTempFile("writetest", ".xml");
+    }
+
+    public void tearDown()
+    {
+        if (output.exists())
+            output.delete();
+        
+        super.tearDown();
+    }
+
+    public void testLiteral()
+        throws Exception
+    {
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        ElementWriter writer = new ElementWriter(bos, "root", "urn:test");
+
+        write(writer);
+
+        writer.flush();
+        bos.close();
+        
+        System.out.println(bos.toString());
+        StaxBuilder builder = new StaxBuilder();
+        Document doc = builder.build(new StringReader(bos.toString()));
+        
+        testWrite(doc);
+    }
+    
+    public void testJDOM()
+        throws Exception
+    {
+        Document doc = new Document(new Element("root", "urn:test"));
+        
+        write(new JDOMWriter(doc.getRootElement()));
+        
+        testWrite(doc);
+    }
+    
+    public void write(MessageWriter writer)
+    {
+        MessageWriter nons = writer.getElementWriter("nons");
+        nons.writeValue("nons");
+        nons.close();
+        
+        MessageWriter intval = writer.getElementWriter("int");
+        intval.writeValueAsInt(new Integer(10000));
+        intval.close();
+
+        MessageWriter child1 = writer.getElementWriter("child1", "urn:child1");
+        MessageWriter att1 = child1.getAttributeWriter("att1");
+        att1.writeValue("att1");
+        att1.close();
+        MessageWriter att2 = child1.getAttributeWriter("att2", "");
+        att2.writeValue("att2");
+        att2.close();
+        MessageWriter att3 = child1.getAttributeWriter("att3", "urn:att3");
+        att3.writeValue("att3");
+        att3.close();
+        MessageWriter att4 = child1.getAttributeWriter("att4", null);
+        att4.writeValue("att4");
+        att4.close();
+        
+        child1.close();
+        
+        writer.close();
+    }
+    
+    public void testWrite(Document jdoc) throws Exception
+    {
+        org.w3c.dom.Document doc = new DOMOutputter().output(jdoc);
+        addNamespace("t", "urn:test");
+        addNamespace("c", "urn:child1");
+        addNamespace("a", "urn:att3");
+        
+        assertValid("/t:root/t:nons[text()='nons']", doc);
+        assertValid("/t:root/t:int[text()='10000']", doc);
+        assertValid("/t:root/c:child1", doc);
+        assertValid("/t:root/c:child1[@c:att1]", doc);
+        assertValid("/t:root/c:child1[@att2]", doc);
+        assertValid("/t:root/c:child1[@a:att3]", doc);
+        assertValid("/t:root/c:child1[@att4]", doc);
+    }
+}

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/WriterTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/WriterTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/bean11.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/bean11.xml?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/bean11.xml (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/bean11.xml Wed Mar  7 12:20:07 2007
@@ -0,0 +1,4 @@
+<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
+ <env:Header/>
+ <env:Body/>
+</env:Envelope>
\ No newline at end of file

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/bean11.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/bean11.xml
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/bean11.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/bean11.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/read1.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/read1.xml?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/read1.xml (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/read1.xml Wed Mar  7 12:20:07 2007
@@ -0,0 +1,6 @@
+<test xmlns="urn:test" one="one" two="two">
+  <child>
+    <grandchild></grandchild>
+    <grandchild></grandchild>
+  </child>
+</test>
\ No newline at end of file

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/read1.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/read1.xml
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/read1.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/apache/cxf/aegis/xml/stax/read1.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/BaseUser.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/BaseUser.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/BaseUser.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/BaseUser.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,38 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/**
+ * 
+ */
+package org.codehaus.xfire.aegis.inheritance;
+
+// @XmlType(namespace="urn:xfire:inheritance")
+public abstract class BaseUser
+{
+    private String name;
+
+    public String getName()
+    {
+        return name;
+    }
+
+    public void setName(String name)
+    {
+        this.name = name;
+    }
+}
\ No newline at end of file

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/BaseUser.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/BaseUser.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/Employee.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/Employee.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/Employee.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/Employee.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,40 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/**
+ * 
+ */
+package org.codehaus.xfire.aegis.inheritance;
+
+// @XmlType(namespace="urn:xfire:inheritance")
+public class Employee
+    extends BaseUser
+{
+    private String division;
+
+    public String getDivision()
+    {
+        return division;
+    }
+
+    public void setDivision(String division)
+    {
+        this.division = division;
+    }
+
+}
\ No newline at end of file

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/Employee.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/Employee.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/ExceptionInheritanceTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/ExceptionInheritanceTest.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/ExceptionInheritanceTest.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/ExceptionInheritanceTest.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,64 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.codehaus.xfire.aegis.inheritance;
+
+import org.apache.cxf.aegis.AbstractAegisTest;
+
+public class ExceptionInheritanceTest extends AbstractAegisTest
+{
+//    private Service service;
+//
+//    public void setUp() throws Exception 
+//    {
+//        super.setUp();
+//
+//        HashMap props = new HashMap();
+//        props.put(AegisBindingProvider.WRITE_XSI_TYPE_KEY, Boolean.TRUE);
+//        ArrayList l = new ArrayList();
+//        l.add(SimpleBean.class.getName());
+//        l.add(WS1ExtendedException.class.getName());
+//
+//        props.put(AegisBindingProvider.OVERRIDE_TYPES_KEY, l);
+//        
+//        createService(WS1.class, null);
+//        
+//        service = getServiceFactory().create(WS1.class, props);
+//        service.setInvoker(new BeanInvoker(new WS1Impl()));
+//        getServiceRegistry().register(service);
+//    }
+//    
+//    public void testClient() throws Exception 
+//    {
+//        WS1 client = (WS1) new XFireProxyFactory(getXFire()).create(service, "xfire.local://WS1");
+//        
+//        try 
+//        {
+//            client.throwException(true);
+//        }
+//        catch (WS1ExtendedException ex)
+//        {
+//            Object sb = ex.getSimpleBean();
+//            assertTrue(sb instanceof SimpleBean);
+//        }
+//    }
+    
+    public void testNothing() {
+        
+    }
+}

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/ExceptionInheritanceTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/ExceptionInheritanceTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/GetEmployee.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/GetEmployee.xml?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/GetEmployee.xml (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/GetEmployee.xml Wed Mar  7 12:20:07 2007
@@ -0,0 +1,5 @@
+<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
+ <env:Body xmlns="urn:xfire:inheritance">
+	<getEmployee/>
+ </env:Body>
+</env:Envelope>

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/GetEmployee.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/GetEmployee.xml
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/GetEmployee.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/GetEmployee.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/InheritancePOJOTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/InheritancePOJOTest.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/InheritancePOJOTest.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/InheritancePOJOTest.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,110 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.codehaus.xfire.aegis.inheritance;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+
+import org.apache.cxf.aegis.AbstractAegisTest;
+import org.apache.cxf.aegis.Aegis;
+import org.apache.cxf.aegis.util.XmlConstants;
+import org.apache.cxf.frontend.ServerFactoryBean;
+import org.apache.cxf.transport.local.LocalTransportFactory;
+
+/**
+ * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
+ */
+public class InheritancePOJOTest
+    extends AbstractAegisTest
+{
+
+    public void setUp()
+        throws Exception
+    {
+        super.setUp();
+
+        ServerFactoryBean sf = createServiceFactory(InheritanceService.class,
+                                                    "InheritanceService", 
+                                                    new QName("urn:xfire:inheritance", 
+                                                              "InheritanceService"));
+        
+        Map<String, Object> props = new HashMap<String, Object>();
+        props.put(Aegis.WRITE_XSI_TYPE_KEY, "true");
+        
+        List<String> l = new ArrayList<String>();
+        l.add(Employee.class.getName());
+
+        props.put(Aegis.OVERRIDE_TYPES_KEY, l);
+        
+        sf.getServiceFactory().setProperties(props);
+        sf.create();
+    }
+
+    public void testGenerateWsdl()
+        throws Exception
+    {
+        Document d = getWSDLDocument("InheritanceService");
+
+        String types = "//wsdl:types/xsd:schema/";
+
+        // check for Employee as extension
+        String employeeType = types + "xsd:complexType[@name='Employee']";
+        assertValid(employeeType, d);
+        String extension = "/xsd:complexContent/xsd:extension[@base='ns1:BaseUser']";
+        assertValid(employeeType + extension, d);
+        assertValid(employeeType + extension + "/xsd:sequence/xsd:element[@name='division']", d);
+        //assertValid("count(" + employeeType + extension + "/xsd:sequence/*)=1", d);
+
+        // check for BaseUser as abstract
+        String baseUserType = types + "xsd:complexType[(@name='BaseUser') and (@abstract='true')]";
+        assertValid(baseUserType, d);
+        assertValid(baseUserType + "/xsd:sequence/xsd:element[@name='name']", d);
+        // assertValid("count(" + baseUserType + "/xsd:sequence/*)=1", d);
+    }
+
+    public void testLocalReceiveEmployee()
+        throws Exception
+    {
+        Node response = invoke("InheritanceService", 
+                                   LocalTransportFactory.TRANSPORT_ID,
+                                   "ReceiveEmployee.xml");
+        addNamespace("w", "urn:xfire:inheritance");
+        assertValid("//s:Body/w:receiveUserResponse", response);
+    }
+
+    public void testLocalGetEmployee()
+        throws Exception
+    {
+        Node response = invoke("InheritanceService", 
+                               LocalTransportFactory.TRANSPORT_ID,
+                               "GetEmployee.xml");
+        addNamespace("xsi", XmlConstants.XSI_NS);
+        addNamespace("w", "urn:xfire:inheritance");
+        addNamespace("p", "http://inheritance.aegis.xfire.codehaus.org");
+        assertValid("//s:Body/w:getEmployeeResponse/w:return/p:division", response);
+        assertValid("//s:Body/w:getEmployeeResponse/w:return[@xsi:type]", response);
+    }
+}

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/InheritancePOJOTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/InheritancePOJOTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/InheritanceService.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/InheritanceService.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/InheritanceService.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/InheritanceService.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,38 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+/**
+ * 
+ */
+package org.codehaus.xfire.aegis.inheritance;
+
+public class InheritanceService
+{
+    public BaseUser getEmployee()
+    {
+        Employee e = new Employee();
+        e.setDivision("foo");
+        e.setName("Dan D. Man");
+        return e;
+    }
+
+    public void receiveUser(BaseUser user)
+    {
+        InheritancePOJOTest.assertTrue(user instanceof Employee);
+    }
+}
\ No newline at end of file

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/InheritanceService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/InheritanceService.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/ReceiveEmployee.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/ReceiveEmployee.xml?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/ReceiveEmployee.xml (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/ReceiveEmployee.xml Wed Mar  7 12:20:07 2007
@@ -0,0 +1,12 @@
+<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
+ <env:Body xmlns:i="urn:xfire:inheritance"
+ 	xmlns:j="http://inheritance.aegis.xfire.codehaus.org"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<i:receiveUser>
+      <j:user xsi:type="j:Employee">
+        <j:division>foo</j:division>
+        <j:name>bar</j:name>
+      </j:user>
+    </i:receiveUser>
+ </env:Body>
+</env:Envelope>

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/ReceiveEmployee.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/ReceiveEmployee.xml
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/ReceiveEmployee.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/ReceiveEmployee.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/ChildImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/ChildImpl.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/ChildImpl.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/ChildImpl.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,31 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.codehaus.xfire.aegis.inheritance.intf;
+
+public class ChildImpl implements IChild {
+
+    public String getChildName() {
+        return "child";
+    }
+
+    public String getParentName() {
+        return "parent";
+    }
+
+}

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/ChildImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/ChildImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/GrandChildImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/GrandChildImpl.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/GrandChildImpl.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/GrandChildImpl.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,40 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.codehaus.xfire.aegis.inheritance.intf;
+
+public class GrandChildImpl
+    implements IGrandChild
+{
+
+    public String getChildName()
+    {
+        return "child";
+    }
+
+    public String getParentName()
+    {
+        return "parent";
+    }
+
+    public String getGrandChildName()
+    {
+        return "grandchild";
+    }
+
+}

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/GrandChildImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/GrandChildImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/IChild.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/IChild.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/IChild.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/IChild.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,23 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.codehaus.xfire.aegis.inheritance.intf;
+
+public interface IChild extends IParent {
+    String getChildName();
+}

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/IChild.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/IChild.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/IGrandChild.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/IGrandChild.java?view=auto&rev=515734
==============================================================================
--- incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/IGrandChild.java (added)
+++ incubator/cxf/trunk/rt/databinding/aegis/src/test/java/org/codehaus/xfire/aegis/inheritance/intf/IGrandChild.java Wed Mar  7 12:20:07 2007
@@ -0,0 +1,26 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.codehaus.xfire.aegis.inheritance.intf;
+
+public interface IGrandChild extends IChild {
+    String getGrandChildName();
+    
+    // make sure we don't get two getChildName props
+    String getChildName();
+}