Index: org/codehaus/xfire/aegis/inheritance/ws1/BeanC.java =================================================================== --- org/codehaus/xfire/aegis/inheritance/ws1/BeanC.java (revision 1761) +++ org/codehaus/xfire/aegis/inheritance/ws1/BeanC.java (working copy) @@ -9,6 +9,7 @@ extends BeanB { private String m_propC; + private BeanD[] m_tabC; public String getPropC() { @@ -20,6 +21,16 @@ m_propC = propC; } + public BeanD[] getTabC() + { + return m_tabC; + } + + public void setTabC(BeanD[] tabC) + { + this.m_tabC = tabC; + } + public String toString() { return super.toString() + " ; propC=" + m_propC; Index: org/codehaus/xfire/aegis/inheritance/ws1/BeanD.java =================================================================== --- org/codehaus/xfire/aegis/inheritance/ws1/BeanD.java (revision 0) +++ org/codehaus/xfire/aegis/inheritance/ws1/BeanD.java (revision 0) @@ -0,0 +1,22 @@ +package org.codehaus.xfire.aegis.inheritance.ws1; + +import java.io.Serializable; + +/** + * @author jdavias + */ +public class BeanD + implements Serializable +{ + private String m_propD; + + public String getM_propD() + { + return m_propD; + } + + public void setM_propD(String m_propD) + { + this.m_propD = m_propD; + } +} Index: org/codehaus/xfire/aegis/inheritance/xfire/XFireHelper.java =================================================================== --- org/codehaus/xfire/aegis/inheritance/xfire/XFireHelper.java (revision 1761) +++ org/codehaus/xfire/aegis/inheritance/xfire/XFireHelper.java (working copy) @@ -9,13 +9,7 @@ import org.codehaus.xfire.DefaultXFire; import org.codehaus.xfire.XFire; import org.codehaus.xfire.aegis.AegisBindingProvider; -import org.codehaus.xfire.aegis.inheritance.ws1.BeanA; -import org.codehaus.xfire.aegis.inheritance.ws1.BeanB; -import org.codehaus.xfire.aegis.inheritance.ws1.BeanC; -import org.codehaus.xfire.aegis.inheritance.ws1.RootBean; -import org.codehaus.xfire.aegis.inheritance.ws1.WS1; -import org.codehaus.xfire.aegis.inheritance.ws1.WS1Exception; -import org.codehaus.xfire.aegis.inheritance.ws1.WS1ExtendedException; +import org.codehaus.xfire.aegis.inheritance.ws1.*; import org.codehaus.xfire.aegis.inheritance.ws2.WS2; import org.codehaus.xfire.aegis.inheritance.ws2.common.ParentBean; import org.codehaus.xfire.aegis.inheritance.ws2.common.exception.AlreadyExistsException; @@ -46,7 +40,19 @@ public XFireHelper() { - m_xfire = new DefaultXFire(); + this(null); + } + + public XFireHelper(XFire xfire) + { + if (xfire == null) + { + m_xfire = new DefaultXFire(); + } + else + { + m_xfire = xfire; + } m_serviceRegistry = m_xfire.getServiceRegistry(); m_serviceFactory = new ObjectServiceFactory(m_xfire.getTransportManager(), new AegisBindingProvider()); @@ -83,6 +89,7 @@ overrides.add(BeanA.class.getName()); overrides.add(BeanB.class.getName()); overrides.add(BeanC.class.getName()); + overrides.add(BeanD.class.getName()); overrides.add(RootBean.class.getName()); overrides.add(WS1Exception.class.getName()); overrides.add(WS1ExtendedException.class.getName()); Index: org/codehaus/xfire/aegis/inheritance/xfire/XFireTestCase.java =================================================================== --- org/codehaus/xfire/aegis/inheritance/xfire/XFireTestCase.java (revision 1761) +++ org/codehaus/xfire/aegis/inheritance/xfire/XFireTestCase.java (working copy) @@ -2,8 +2,6 @@ import java.util.Arrays; -import junit.framework.TestCase; - import org.codehaus.xfire.aegis.inheritance.ws1.BeanB; import org.codehaus.xfire.aegis.inheritance.ws1.WS1; import org.codehaus.xfire.aegis.inheritance.ws1.impl.WS1Impl; @@ -13,6 +11,8 @@ import org.codehaus.xfire.aegis.inheritance.ws2.common.pack2.ContentBean2; import org.codehaus.xfire.aegis.inheritance.ws2.impl.WS2Impl; import org.codehaus.xfire.server.http.XFireHttpServer; +import org.codehaus.xfire.test.AbstractXFireTest; +import org.jdom.Document; /** *
@@ -20,8 +20,10 @@ * @author xfournet */ public class XFireTestCase - extends TestCase + extends AbstractXFireTest { + private XFireHelper m_helper; + private WS1 m_remoteWS1; private WS1 m_localWS1; @@ -30,11 +32,6 @@ private WS2 m_localWS2; - public XFireTestCase(String string) - { - super(string); - } - protected void setUp() throws Exception { @@ -59,6 +56,7 @@ throws Exception { xFireHttpServer.stop(); + super.tearDown(); } XFireHttpServer xFireHttpServer; @@ -67,12 +65,12 @@ throws Exception { // Create WS - XFireHelper xFireHelper = new XFireHelper(); - xFireHelper.registerService(xFireHelper.createServiceWS1(), new WS1Impl()); - xFireHelper.registerService(xFireHelper.createServiceWS2(), new WS2Impl()); + m_helper = new XFireHelper(getXFire()); + m_helper.registerService(m_helper.createServiceWS1(), new WS1Impl()); + m_helper.registerService(m_helper.createServiceWS2(), new WS2Impl()); // Start Jetty server - xFireHttpServer = new XFireHttpServer(xFireHelper.getXfire()); + xFireHttpServer = new XFireHttpServer(m_helper.getXfire()); xFireHttpServer.setPort(8080); xFireHttpServer.start(); } @@ -250,4 +248,11 @@ assertEquals(localThrowable, remoteThrowable); } + + public void testWSDLDocument() + throws Exception + { + Document wsdl = getWSDLDocument("ws1"); + assertValid("//wsdl:types/xsd:schema/xsd:complexType[@name='ArrayOfBeanD']", wsdl); + } } \ No newline at end of file