You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by cs...@apache.org on 2006/02/09 21:44:31 UTC

svn commit: r376434 [1/3] - in /beehive/trunk: system-controls/ system-controls/src/webservice/ system-controls/src/webservice/control/ system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/generator/ system-controls/src/...

Author: cschoett
Date: Thu Feb  9 12:44:19 2006
New Revision: 376434

URL: http://svn.apache.org/viewcvs?rev=376434&view=rev
Log:
Lot's of changes in this commit:

*) created new webservice-utils module in wsm for classes which are shared between wsm and the wsc
*) completed work on attachment support in the wsc
*) refactored how wsc registers types in axis
*) added geronimo 1.0 version of the javamail and activation apis


Added:
    beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/wsdl/ComplexType.java   (with props)
    beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/wsdl/WsdlComplexTypes.java   (with props)
    beehive/trunk/system-controls/test/webservice/external/geronimo-activation_1.0.2_spec-1.0.jar   (with props)
    beehive/trunk/system-controls/test/webservice/external/geronimo-javamail_1.3.1_spec-1.0.jar   (with props)
    beehive/trunk/system-controls/test/webservice/webapp/src/attachments/mimemultipart/MimeMultipartRpcEnc.java   (with props)
    beehive/trunk/system-controls/test/webservice/webapp/src/attachments/mimemultipart/MimeMultipartRpcLit.java   (with props)
    beehive/trunk/system-controls/test/webservice/webapp/src/attachments/xml/
    beehive/trunk/system-controls/test/webservice/webapp/src/attachments/xml/XmlSourceDocLitWrapped.java   (with props)
    beehive/trunk/system-controls/test/webservice/webapp/src/attachments/xml/XmlSourceRpcEnc.java   (with props)
    beehive/trunk/system-controls/test/webservice/webapp/src/attachments/xml/XmlSourceRpcLit.java   (with props)
    beehive/trunk/system-controls/test/webservice/webapp/src/org/apache/beehive/attachments/XmlSourceAttachments.java   (with props)
    beehive/trunk/system-controls/test/webservice/webapp/tests/org/apache/beehive/controls/system/webservice/units/doclitwrapped/schematypes/XmlSourceDocLitWrappedTest.java   (with props)
    beehive/trunk/system-controls/test/webservice/webapp/tests/org/apache/beehive/controls/system/webservice/units/rpcenc/schematypes/MimeMultipartRpcEncTest.java   (with props)
    beehive/trunk/system-controls/test/webservice/webapp/tests/org/apache/beehive/controls/system/webservice/units/rpcenc/schematypes/XmlSourceRpcEncTest.java   (with props)
    beehive/trunk/system-controls/test/webservice/webapp/tests/org/apache/beehive/controls/system/webservice/units/rpclit/schematypes/MimeMultipartRpcLitTest.java   (with props)
    beehive/trunk/system-controls/test/webservice/webapp/tests/org/apache/beehive/controls/system/webservice/units/rpclit/schematypes/XmlSourceRpcLitTest.java   (with props)
    beehive/trunk/system-controls/test/webservice/webapp/wsdl/schematypes/MimeMultipartRpcEnc.wsdl
    beehive/trunk/system-controls/test/webservice/webapp/wsdl/schematypes/MimeMultipartRpcLit.wsdl
    beehive/trunk/system-controls/test/webservice/webapp/wsdl/schematypes/XmlSourceDocLitWrapped.wsdl
    beehive/trunk/system-controls/test/webservice/webapp/wsdl/schematypes/XmlSourceRpcEnc.wsdl
    beehive/trunk/system-controls/test/webservice/webapp/wsdl/schematypes/XmlSourceRpcLit.wsdl
    beehive/trunk/wsm/src/axis/META-INF/services/org.apache.beehive.webservice.utils.databinding.BindingLookupFactory
      - copied, changed from r372277, beehive/trunk/wsm/src/axis/META-INF/services/org.apache.beehive.wsm.databinding.BindingLookupFactory
    beehive/trunk/wsm/src/webservice-utils/
    beehive/trunk/wsm/src/webservice-utils/axis/
    beehive/trunk/wsm/src/webservice-utils/axis/org/
    beehive/trunk/wsm/src/webservice-utils/axis/org/apache/
    beehive/trunk/wsm/src/webservice-utils/axis/org/apache/beehive/
    beehive/trunk/wsm/src/webservice-utils/axis/org/apache/beehive/webservice/
    beehive/trunk/wsm/src/webservice-utils/axis/org/apache/beehive/webservice/utils/
    beehive/trunk/wsm/src/webservice-utils/axis/org/apache/beehive/webservice/utils/databinding/
    beehive/trunk/wsm/src/webservice-utils/axis/org/apache/beehive/webservice/utils/databinding/AxisBindingLookupFactory.java   (contents, props changed)
      - copied, changed from r372277, beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/databinding/AxisBindingLookupFactory.java
    beehive/trunk/wsm/src/webservice-utils/axis/org/apache/beehive/webservice/utils/databinding/AxisLookupStrategy.java   (contents, props changed)
      - copied, changed from r372277, beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/databinding/AxisLookupStrategy.java
    beehive/trunk/wsm/src/webservice-utils/axis/org/apache/beehive/webservice/utils/databinding/AxisTypeMappingMetaData.java   (contents, props changed)
      - copied, changed from r372277, beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/registration/AxisTypeMappingMetaData.java
    beehive/trunk/wsm/src/webservice-utils/core/
    beehive/trunk/wsm/src/webservice-utils/core/org/
    beehive/trunk/wsm/src/webservice-utils/core/org/apache/
    beehive/trunk/wsm/src/webservice-utils/core/org/apache/beehive/
    beehive/trunk/wsm/src/webservice-utils/core/org/apache/beehive/webservice/
    beehive/trunk/wsm/src/webservice-utils/core/org/apache/beehive/webservice/utils/
    beehive/trunk/wsm/src/webservice-utils/core/org/apache/beehive/webservice/utils/JavaClassUtils.java   (contents, props changed)
      - copied, changed from r372277, beehive/trunk/wsm/src/core/org/apache/beehive/wsm/util/JavaClassUtils.java
    beehive/trunk/wsm/src/webservice-utils/core/org/apache/beehive/webservice/utils/databinding/
    beehive/trunk/wsm/src/webservice-utils/core/org/apache/beehive/webservice/utils/databinding/BindingLookupChain.java   (contents, props changed)
      - copied, changed from r371603, beehive/trunk/wsm/src/core/org/apache/beehive/wsm/databinding/BindingLookupChain.java
    beehive/trunk/wsm/src/webservice-utils/core/org/apache/beehive/webservice/utils/databinding/BindingLookupFactory.java   (contents, props changed)
      - copied, changed from r371603, beehive/trunk/wsm/src/core/org/apache/beehive/wsm/databinding/BindingLookupFactory.java
    beehive/trunk/wsm/src/webservice-utils/core/org/apache/beehive/webservice/utils/databinding/BindingLookupStrategy.java   (contents, props changed)
      - copied, changed from r371603, beehive/trunk/wsm/src/core/org/apache/beehive/wsm/databinding/BindingLookupStrategy.java
    beehive/trunk/wsm/src/webservice-utils/core/org/apache/beehive/webservice/utils/databinding/SchemaTypesLookupStrategy.java   (with props)
    beehive/trunk/wsm/src/webservice-utils/core/org/apache/beehive/webservice/utils/databinding/TypeMappingConstants.java   (with props)
    beehive/trunk/wsm/src/webservice-utils/core/org/apache/beehive/webservice/utils/exception/
    beehive/trunk/wsm/src/webservice-utils/core/org/apache/beehive/webservice/utils/exception/BindingConfigurationException.java   (contents, props changed)
      - copied, changed from r371603, beehive/trunk/wsm/src/core/org/apache/beehive/wsm/exception/BindingConfigurationException.java
    beehive/trunk/wsm/src/webservice-utils/xmlbeans/
    beehive/trunk/wsm/src/webservice-utils/xmlbeans/org/
    beehive/trunk/wsm/src/webservice-utils/xmlbeans/org/apache/
    beehive/trunk/wsm/src/webservice-utils/xmlbeans/org/apache/beehive/
    beehive/trunk/wsm/src/webservice-utils/xmlbeans/org/apache/beehive/webservice/
    beehive/trunk/wsm/src/webservice-utils/xmlbeans/org/apache/beehive/webservice/utils/
    beehive/trunk/wsm/src/webservice-utils/xmlbeans/org/apache/beehive/webservice/utils/databinding/
    beehive/trunk/wsm/src/webservice-utils/xmlbeans/org/apache/beehive/webservice/utils/databinding/XmlBeanLookupStrategy.java   (with props)
    beehive/trunk/wsm/src/webservice-utils/xmlbeans/org/apache/beehive/webservice/utils/encoding/
    beehive/trunk/wsm/src/webservice-utils/xmlbeans/org/apache/beehive/webservice/utils/encoding/XmlBeanDeserializer.java   (contents, props changed)
      - copied, changed from r372277, beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/util/encoding/XmlBeanDeserializer.java
    beehive/trunk/wsm/src/webservice-utils/xmlbeans/org/apache/beehive/webservice/utils/encoding/XmlBeanDeserializerFactory.java   (contents, props changed)
      - copied, changed from r372277, beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/util/encoding/XmlBeanDeserializerFactory.java
    beehive/trunk/wsm/src/webservice-utils/xmlbeans/org/apache/beehive/webservice/utils/encoding/XmlBeanSerializer.java   (contents, props changed)
      - copied, changed from r372277, beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/util/encoding/XmlBeanSerializer.java
    beehive/trunk/wsm/src/webservice-utils/xmlbeans/org/apache/beehive/webservice/utils/encoding/XmlBeanSerializerFactory.java   (contents, props changed)
      - copied, changed from r372277, beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/util/encoding/XmlBeanSerializerFactory.java
Removed:
    beehive/trunk/system-controls/test/webservice/external/geronimo-spec-activation-1.0.2-rc4.jar
    beehive/trunk/system-controls/test/webservice/external/geronimo-spec-javamail-1.3.1-rc6.jar
    beehive/trunk/wsm/src/axis/META-INF/services/org.apache.beehive.wsm.databinding.BindingLookupFactory
    beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/databinding/
    beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/registration/
    beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/util/
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/databinding/
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/exception/BindingConfigurationException.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/util/JavaClassUtils.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/util/SchemaTypesLookupStrategy.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/util/TypeMappingConstants.java
Modified:
    beehive/trunk/system-controls/src/webservice/build.xml
    beehive/trunk/system-controls/src/webservice/control/build.xml
    beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/generator/WebServiceControlGenerator.java
    beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/jaxrpc/CallFactory.java
    beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/jaxrpc/GenericCall.java
    beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/jaxrpc/ServiceControlImpl.java
    beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/utils/TypeRegistrar.java
    beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/wsdl/Wsdl.java
    beehive/trunk/system-controls/src/webservice/jaxrpc-clients/axis/build.xml
    beehive/trunk/system-controls/src/webservice/jaxrpc-clients/axis/org/apache/beehive/controls/system/jaxrpc/AxisCall.java
    beehive/trunk/system-controls/src/webservice/jaxrpc-clients/axis/org/apache/beehive/controls/system/jaxrpc/AxisTypeRegistrar.java
    beehive/trunk/system-controls/systemcontrols-imports.xml
    beehive/trunk/system-controls/test/webservice/build.properties
    beehive/trunk/system-controls/test/webservice/build.xml
    beehive/trunk/system-controls/test/webservice/webapp/build.xml
    beehive/trunk/system-controls/test/webservice/webapp/src/attachments/mimemultipart/MimeMultipartDocLitWrapped.java
    beehive/trunk/system-controls/test/webservice/webapp/src/org/apache/beehive/attachments/MimeMultipartAttachments.java
    beehive/trunk/system-controls/test/webservice/webapp/tests/org/apache/beehive/controls/system/webservice/units/doclitbare/schematypes/SoapMarshallingDocLitBareArrayTypesTest.java
    beehive/trunk/system-controls/test/webservice/webapp/tests/org/apache/beehive/controls/system/webservice/units/doclitwrapped/axisgen/ComplexTypesDocLitWrappedAxisgenTest.java
    beehive/trunk/system-controls/test/webservice/webapp/tests/org/apache/beehive/controls/system/webservice/units/doclitwrapped/schematypes/MimeMultipartDocLitWrappedTest.java
    beehive/trunk/system-controls/test/webservice/webapp/tests/org/apache/beehive/controls/system/webservice/units/rpcenc/axisgen/ComplexTypesRpcEncAxisgenTest.java
    beehive/trunk/system-controls/test/webservice/webapp/tests/org/apache/beehive/controls/system/webservice/units/rpcenc/schematypes/HandlerRpcEncEndpointTest.java
    beehive/trunk/system-controls/test/webservice/webapp/wsdl/axisgen/ComplexTypesRpcEncAxisgen.wsdl
    beehive/trunk/system-controls/test/webservice/webapp/wsdl/pojotypes/HeaderObjectRpcLitEndpoint.wsdl
    beehive/trunk/system-controls/test/webservice/webapp/wsdl/schematypes/MimeMultipartDocLitWrapped.wsdl
    beehive/trunk/system-controls/test/webservice/webapp/wsdl/schematypes/SoapMarshallingRpcEncArrayTypes.wsdl
    beehive/trunk/wsm/build.xml
    beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/ServiceDescriptionFactory.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmOperation.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmParameter.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/wsdl/XmlBeanWSDLProcessor.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/tools/wsdl2ajava/Wsdl2AJava.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/util/TypeUtils.java
    beehive/trunk/wsm/test/src/junit/log4j.xml
    beehive/trunk/wsm/test/src/junit/org/apache/beehive/wsm/test/jsr181/wsdl/XmlBeanWSDLProcessorTest.java
    beehive/trunk/wsm/test/src/junit/org/apache/beehive/wsm/test/types/ClassToQNameTest.java
    beehive/trunk/wsm/test/src/junit/org/apache/beehive/wsm/test/types/QNameToClassTest.java

Modified: beehive/trunk/system-controls/src/webservice/build.xml
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/src/webservice/build.xml?rev=376434&r1=376433&r2=376434&view=diff
==============================================================================
--- beehive/trunk/system-controls/src/webservice/build.xml (original)
+++ beehive/trunk/system-controls/src/webservice/build.xml Thu Feb  9 12:44:19 2006
@@ -24,52 +24,21 @@
     <property name="module.name" value="webservice-control"/>
     <property name="module.dir" location="${src.dir}/webservice"/>
 
-    <path id="core.classpath">
-        <path refid="wsm.dependency.path"/>
-        <path refid="saaj.dependency.path"/>
-        <path refid="jaxrpc.dependency.path"/>
-        <path refid="wsdl4j.dependency.path"/>
-        <path refid="controls.dependency.path"/>
-        <path refid="velocity.dependency.path"/>
-        <path refid="commons-logging.dependency.path"/>
-        <path refid="xbean.dependency.path"/>
-        <path refid="tools.dependency.path"/>
-    </path>
-
-    <path id="axis.classpath">
-        <path refid="axis.dependency.path"/>
-        <path refid="core.classpath"/>
-    </path>
-
-    <target name="build" description="Build the web service control.">
-
-        <echo message="--------------------------------------------------"/>
-        <echo message="|      Core Web Service Control build starting   |"/>
-        <echo message="--------------------------------------------------"/>
-
-        <mkdir dir="${classes.dir}/${module.name}"/>
-        <mkdir dir="${gen.src.dir}/${module.name}"/>
-
-        <build-controls srcdir="${module.dir}/control"
-                        destdir="${classes.dir}/${module.name}"
-                        tempdir="${gen.src.dir}/${module.name}"
-                        classpathref="axis.classpath"/>
-
-        <copy todir="${classes.dir}/${module.name}">
-            <fileset dir="${module.dir}/control">
-                <include name="**/*.vm"/>
-            </fileset>
-        </copy>
-
-        <echo message="--------------------------------------------------"/>
-        <echo message="|      Core Web Service Control build complete   |"/>
-        <echo message="--------------------------------------------------"/>
+    <!-- ================================================================= -->
+    <!-- build - The webservice control, the jaxrpc.client property is     -->
+    <!-- defined in the systemcontrols.properties file .                   -->
+    <!-- ================================================================= -->
+    <target name="build" description="Build the web service control and optional modules.">
 
+        <ant dir="control" target="build" inheritAll="false"/>
         <ant dir="jaxrpc-clients/${jaxrpc.client}" target="build" inheritAll="false"/>
 
         <mkdir dir="${build.lib.dir}"/>
-
-        <control-jar destfile="${build.lib.dir}/beehive-webservice-control.jar" basedir="${classes.dir}/${module.name}">
+        <control-jar destfile="${build.lib.dir}/beehive-webservice-control.jar">
+            <fileset dir="${classes.dir}/${module.name}"/>
+            <fileset dir="${webservice-utils-core}"/>
+            <fileset dir="${webservice-utils-axis}"/>
+            <fileset dir="${webservice-utils-xmlbeans}"/>
             <manifest>
                 <attribute name="Extension-Name" value="Beehive Web Service Control"/>
                 <attribute name="Specification-Title" value="Beehive Web Service Control"/>
@@ -83,10 +52,14 @@
         </control-jar>
     </target>
 
-    <target name="clean" description="Clean source artifacts generated by the web service control build">
-        <delete dir="${classes.dir}/${module.name}"/>
-        <delete dir="${gen.src.dir}/${module.name}"/>
+    <!-- ================================================================= -->
+    <!-- Clean - Clean up the webservice control.                          -->
+    <!-- ================================================================= -->
+    <target name="clean" description="Clean source artifacts generated by the web service control build.">
+
         <delete file="${build.lib.dir}/${wscontrol.jar.name}"/>
+        <ant dir="control" target="clean" inheritAll="false"/>
+        <ant dir="jaxrpc-clients/${jaxrpc.client}" target="clean" inheritAll="false"/>
     </target>
 
 </project>

Modified: beehive/trunk/system-controls/src/webservice/control/build.xml
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/src/webservice/control/build.xml?rev=376434&r1=376433&r2=376434&view=diff
==============================================================================
--- beehive/trunk/system-controls/src/webservice/control/build.xml (original)
+++ beehive/trunk/system-controls/src/webservice/control/build.xml Thu Feb  9 12:44:19 2006
@@ -25,16 +25,16 @@
     <property name="module.dir" location="${src.dir}/webservice/control"/>
 
     <path id="module.classpath">
-        <path refid="wsm.dependency.path"/>
-        <!-- todo: we should not have a dependency on axis here! -->
+        <!-- todo: we should not have a dependency on axis here!
+             Due to our current HeaderHandler impl which needs to be fixed. -->
         <path refid="axis.dependency.path"/>
+        <path refid="webservice-utils.dependency.path"/>
         <path refid="saaj.dependency.path"/>
         <path refid="jaxrpc.dependency.path"/>
         <path refid="wsdl4j.dependency.path"/>
         <path refid="controls.dependency.path"/>
         <path refid="velocity.dependency.path"/>
         <path refid="commons-logging.dependency.path"/>
-        <path refid="xbean.dependency.path"/>
         <path refid="tools.dependency.path"/>
     </path>
 
@@ -64,23 +64,6 @@
         <echo message="--------------------------------------------------"/>
         <echo message="|      Core Service Control build complete       |"/>
         <echo message="--------------------------------------------------"/>
-
-
-        <ant dir="../jaxrpc-clients/${jaxrpc.client}" target="build" inheritAll="false"/>
-
-        <control-jar destfile="${build.lib.dir}/${wsmcontrol.jar.name}" basedir="${classes.dir}/${module.name}">
-            <manifest>
-                <attribute name="Extension-Name" value="Beehive Web Service Control"/>
-                <attribute name="Specification-Title" value="Beehive Web Service Control"/>
-                <attribute name="Specification-Vendor" value="Apache Software Foundation"/>
-                <attribute name="Specification-Version" value="${beehive.version}"/>
-                <attribute name="Implementation-Title" value="Beehive Web Service Control"/>
-                <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
-                <attribute name="Implementation-Version" value="${beehive.version}"/>
-                <attribute name="Web-Service-Control-Version" value="${beehive.version}"/>
-            </manifest>
-        </control-jar>
-
     </target>
 
     <!-- ========================================= -->
@@ -89,7 +72,6 @@
     <target name="clean">
         <delete dir="${classes.dir}/${module.name}"/>
         <delete dir="${gen.src.dir}/${module.name}"/>
-        <delete file="${build.lib.dir}/${wsmcontrol.jar.name}"/>
     </target>
 
 </project>

Modified: beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/generator/WebServiceControlGenerator.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/generator/WebServiceControlGenerator.java?rev=376434&r1=376433&r2=376434&view=diff
==============================================================================
--- beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/generator/WebServiceControlGenerator.java (original)
+++ beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/generator/WebServiceControlGenerator.java Thu Feb  9 12:44:19 2006
@@ -30,9 +30,9 @@
 import org.apache.beehive.controls.system.webservice.wsdl.WsdlOpParameter;
 import org.apache.beehive.controls.system.webservice.wsdl.WsdlOpReturnType;
 import org.apache.beehive.controls.system.webservice.wsdl.WsdlOperation;
-import org.apache.beehive.wsm.axis.databinding.AxisBindingLookupFactory;
-import org.apache.beehive.wsm.util.JavaClassUtils;
-import org.apache.beehive.wsm.databinding.BindingLookupStrategy;
+import org.apache.beehive.webservice.utils.JavaClassUtils;
+import org.apache.beehive.webservice.utils.databinding.BindingLookupStrategy;
+import org.apache.beehive.webservice.utils.databinding.AxisBindingLookupFactory;
 import org.apache.velocity.Template;
 import org.apache.velocity.VelocityContext;
 import org.apache.velocity.app.VelocityEngine;
@@ -163,7 +163,7 @@
             // adjust the wsdlPath value if it was previously set an explicit location.
             if (wsdlRuntimePath != null) {
                 wsdlPath = GeneratorUtils.packageNameToDirectoryName(pkgName);
-                wsdlPath.replace('\\', '/');
+                wsdlPath = wsdlPath.replace('\\', '/');
                 if (!wsdlPath.endsWith("/")) {
                         wsdlPath += '/';
                 }
@@ -196,16 +196,6 @@
         _velocityEngine = new VelocityEngine();
         _velocityEngine.init(p);
         _velocityTemplate = _velocityEngine.getTemplate(VELOCITY_TEMPLATE);
-    }
-
-    /**
-     * gen the wsdl path.
-     *
-     * @param wsdlPath
-     * @return String
-     */
-    static private String genWsdlPath(String wsdlPath) {
-        return wsdlPath.replace('\\', '/');
     }
 
     /**

Modified: beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/jaxrpc/CallFactory.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/jaxrpc/CallFactory.java?rev=376434&r1=376433&r2=376434&view=diff
==============================================================================
--- beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/jaxrpc/CallFactory.java (original)
+++ beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/jaxrpc/CallFactory.java Thu Feb  9 12:44:19 2006
@@ -19,6 +19,7 @@
 package org.apache.beehive.controls.system.webservice.jaxrpc;
 
 import org.apache.beehive.controls.system.webservice.ServiceControl;
+import org.apache.beehive.controls.system.webservice.wsdl.WsdlComplexTypes;
 
 import javax.xml.rpc.Service;
 import java.lang.reflect.Constructor;
@@ -36,26 +37,31 @@
      * Return an new GenericCall based on the implementation of the Service instance.
      *
      * @param service Service to create call for.
+     * @param provider Provider name of the JAX-RPC client.
+     * @param complexTypes Named complex type information from the wsdl.
      * @return An GenericCall instance.
      */
-    static GenericCall getCall(Service service, ServiceControl.ServiceFactoryProviderType provider) {
+    static GenericCall getCall(Service service,
+                               ServiceControl.ServiceFactoryProviderType provider,
+                               WsdlComplexTypes complexTypes)
+    {
 
         switch (provider) {
             case APACHE_AXIS:
             case DEFAULT:
-                return getProviderCallImpl("org.apache.beehive.controls.system.jaxrpc.AxisCall", service);
+                return getProviderCallImpl("org.apache.beehive.controls.system.jaxrpc.AxisCall", service, complexTypes);
             default:
                 throw new UnsupportedOperationException("JAX-RPC service implementation for: "
                         + service.getClass().getName() + "has not been registered with the CallFactory!");
         }
     }
 
-    static private GenericCall getProviderCallImpl(String callClass, Service service) {
+    static private GenericCall getProviderCallImpl(String callClass, Service service, WsdlComplexTypes complexTypes) {
 
         try {
             Class axisCallClass = Class.forName(callClass);
-            Constructor c = axisCallClass.getConstructor(Service.class);
-            return (GenericCall) c.newInstance(service);
+            Constructor c = axisCallClass.getConstructor(Service.class, WsdlComplexTypes.class);
+            return (GenericCall) c.newInstance(service, complexTypes);
         }
         catch (Exception e) {
             throw new RuntimeException("Could not create JAX-RPC call for service control", e);

Modified: beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/jaxrpc/GenericCall.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/jaxrpc/GenericCall.java?rev=376434&r1=376433&r2=376434&view=diff
==============================================================================
--- beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/jaxrpc/GenericCall.java (original)
+++ beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/jaxrpc/GenericCall.java Thu Feb  9 12:44:19 2006
@@ -115,7 +115,12 @@
      * @throws java.rmi.RemoteException On error.
      */
     Object invoke(Object[] args) throws RemoteException {
-        Object result = _call.invoke(processArgs(args));
+        Object result = null;
+        try {
+        result = _call.invoke(processArgs(args));
+        } catch (RemoteException re) {
+            throw re;
+        }
         setHolderValues(args);
         return result;
     }

Modified: beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/jaxrpc/ServiceControlImpl.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/jaxrpc/ServiceControlImpl.java?rev=376434&r1=376433&r2=376434&view=diff
==============================================================================
--- beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/jaxrpc/ServiceControlImpl.java (original)
+++ beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/jaxrpc/ServiceControlImpl.java Thu Feb  9 12:44:19 2006
@@ -263,7 +263,7 @@
         ServiceControl.ServiceFactoryProviderType sfpt =
                 _context.getControlPropertySet(ServiceControl.ServiceFactoryProvider.class).value();
 
-        GenericCall call = CallFactory.getCall(getService(_serviceName), sfpt);
+        GenericCall call = CallFactory.getCall(getService(_serviceName), sfpt, _wsdl.getComplexTypes());
         call.configure(op, method, _portType);
         return call;
     }

Modified: beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/utils/TypeRegistrar.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/utils/TypeRegistrar.java?rev=376434&r1=376433&r2=376434&view=diff
==============================================================================
--- beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/utils/TypeRegistrar.java (original)
+++ beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/utils/TypeRegistrar.java Thu Feb  9 12:44:19 2006
@@ -19,16 +19,14 @@
  */
 package org.apache.beehive.controls.system.webservice.utils;
 
-import org.apache.beehive.wsm.databinding.BindingLookupStrategy;
+import org.apache.beehive.controls.system.webservice.wsdl.WsdlComplexTypes;
+import org.apache.beehive.webservice.utils.databinding.BindingLookupStrategy;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import javax.jws.soap.SOAPBinding;
 import javax.xml.namespace.QName;
 import javax.xml.rpc.encoding.TypeMapping;
-import javax.xml.rpc.encoding.XMLType;
-import java.io.File;
-import java.rmi.Remote;
 
 /**
  * Abstract base class for registering types with underlying JAX-RPC client implementation.
@@ -49,18 +47,23 @@
         }
     }
 
+    protected final WsdlComplexTypes _wsdlComplexTypes;
     protected final TypeMapping _typeMapping;
     private final BindingLookupStrategy _lookupStrategy;
 
     /**
      * Create a new TypeRegistrar.
      *
-     * @param typeMapping
-     * @param lookupStrategy
-     */
-    protected TypeRegistrar(TypeMapping typeMapping, BindingLookupStrategy lookupStrategy) {
+     * @param typeMapping    Service's type mapping interface.
+     * @param lookupStrategy Used to perform class -> xmltype and xmltype -> class lookups.
+     * @param complexTypes   Provides access to named complex types from the wsdl, useful when mapping beans.
+     */
+    protected TypeRegistrar(TypeMapping typeMapping,
+                            BindingLookupStrategy lookupStrategy,
+                            WsdlComplexTypes complexTypes) {
         _typeMapping = typeMapping;
         _lookupStrategy = lookupStrategy;
+        _wsdlComplexTypes = complexTypes;
     }
 
     /**
@@ -83,55 +86,34 @@
             return xmlType;
         }
 
+        // in AXIS it is possible that the typemapping inteface can find a serializer for
+        // this pair even though the pair has not be specifically registered
+        if (!cls.isArray() && _typeMapping.getSerializer(cls, xmlType) != null) {
+            registerAs(cls, xmlType, _typeMapping.getSerializer(cls, xmlType));
+            return xmlType;
+        }
+
         if (cls.isArray()) {
-            if (SOAPBinding.Use.ENCODED == use) {
-                registerAsSoapEncodedArray(cls, xmlType, _lookupStrategy.class2qname(cls.getComponentType()));
-                return xmlType;
-            }
-            else {
-                xmlType = registerType(cls.getComponentType(), style, use);
-                if (SOAPBinding.Style.RPC == style) {
-                    xmlType = XMLType.SOAP_ARRAY;
-                }
-                return xmlType;
-            }
+            return registerAsArray(cls, xmlType, _lookupStrategy.class2qname(cls.getComponentType()), style, use);
         }
 
         if (XMLOBJECT_CLASS != null && XMLOBJECT_CLASS.isAssignableFrom(cls)) {
             registerAsXMLBean(cls, xmlType);
             return xmlType;
         }
-        else if (!Remote.class.isAssignableFrom(cls) && !File.class.isAssignableFrom(cls)) {
-            registerWithDefaultSerialization(cls, xmlType, style, use);
-            return xmlType;
-        }
-        else {
-            throw new RuntimeException("failed to register "
-                    + cls.getName()
-                    + " as a valid web service datatype,"
-                    + " consider using a custom type mapping.");
-        }
+
+        registerAsBean(cls, xmlType, style, use);
+        return xmlType;
     }
 
     /**
-     * Register a type without knowing the QName of the xmltype.
+     * Register a class with a specific serializer.
      *
-     * @param cls   Class to register.
-     * @param style Service style.
-     * @param use   Service use.
-     * @return QName registered for the class.
+     * @param cls        Class to register.
+     * @param xmlType    Xml type of the class.
+     * @param serializer Serializer to register class with.
      */
-    protected QName registerType(Class cls, SOAPBinding.Style style, SOAPBinding.Use use) {
-
-        QName q;
-        if (SOAPBinding.Use.ENCODED == use && cls.isArray()) {
-            q = _lookupStrategy.class2qname(cls.getComponentType());
-        }
-        else {
-            q = _lookupStrategy.class2qname(cls);
-        }
-        return registerType(cls, q, style, use);
-    }
+    protected abstract void registerAs(Class cls, QName xmlType, Object serializer);
 
     /**
      * Register a class using the default serialization mechanism of the JAX-RPC client.
@@ -141,9 +123,7 @@
      * @param style   Service style.
      * @param use     Service use.
      */
-    protected abstract void registerWithDefaultSerialization(Class cls, QName xmlType,
-                                                             SOAPBinding.Style style,
-                                                             SOAPBinding.Use use);
+    protected abstract void registerAsBean(Class cls, QName xmlType, SOAPBinding.Style style, SOAPBinding.Use use);
 
     /**
      * Register a class for XmlBean serialization.
@@ -154,11 +134,15 @@
     protected abstract void registerAsXMLBean(Class cls, QName xmlType);
 
     /**
-     * Register a class as a soap encoded array.
+     * Register a class as an array.
      *
      * @param cls           Class to register.
      * @param xmlType       Xml type of the class.
-     * @param componentType Component type of the array.
+     * @param componentType Xml type of the array component class.
+     * @param style         SOAP style.
+     * @param use           SOAP use.
+     * @return QName  QName for the array.
      */
-    protected abstract void registerAsSoapEncodedArray(Class cls, QName xmlType, QName componentType);
+    protected abstract QName registerAsArray(Class cls, QName xmlType, QName componentType,
+                                             SOAPBinding.Style style, SOAPBinding.Use use);
 }

Added: beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/wsdl/ComplexType.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/wsdl/ComplexType.java?rev=376434&view=auto
==============================================================================
--- beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/wsdl/ComplexType.java (added)
+++ beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/wsdl/ComplexType.java Thu Feb  9 12:44:19 2006
@@ -0,0 +1,331 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ * $Header:$
+ */
+
+package org.apache.beehive.controls.system.webservice.wsdl;
+
+import org.w3c.dom.Element;
+
+import javax.xml.namespace.QName;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Set;
+
+/*
+ This looks a little scary, but isn't so bad.  Pretty much all that needs to be done here is to
+ parse a NAMED complex type in the wsdl's types section.  We really only care about the <element>'s
+ contained within the complex type.  The sematics don't matter (choice, sequence, etc).  The end result
+ should be a ComplexType object which contains only elements.  This type will be used during client
+ type registration.
+ */
+
+/**
+ * A ComplexType contians a map of the elementName -> elementXmlType of all the elements in a
+ * named complex type.
+ */
+public final class ComplexType implements java.io.Serializable {
+
+    private final HashMap<String, QName> _elements = new HashMap<String, QName>();
+    private final String _name;
+    private WsdlNamespaceResolver _resolver;
+
+    /**
+     * Create a new complex type for the specified element.
+     *
+     * @param type     DOM element of the complex type.
+     * @param resolver Namespace resolver instance.
+     */
+    ComplexType(Element type, WsdlNamespaceResolver resolver) {
+
+        _name = type.getAttribute("name");
+        _resolver = resolver;
+
+        // annotation?, (simpleContent | complexContent
+        // | ((group | all | choice | sequence)?, (attribute | attributeGroup)*, anyAttribute?))
+        Element child;
+        if ((child = DomUtils.getChildElementByName(type, "simpleContent")) != null) {
+            processSimpleContent(child);
+        }
+        else if ((child = DomUtils.getChildElementByName(type, "complexContent")) != null) {
+            processComplexContent(child);
+        }
+        else if ((child = DomUtils.getChildElementByName(type, "group")) != null) {
+            processGroup(child);
+        }
+        else if ((child = DomUtils.getChildElementByName(type, "all")) != null) {
+            processAll(child);
+        }
+        else if ((child = DomUtils.getChildElementByName(type, "choice")) != null) {
+            processChoice(child);
+        }
+        else if ((child = DomUtils.getChildElementByName(type, "sequence")) != null) {
+            processSequence(child);
+        }
+
+        // release the resolver, we don't need it after the parse is complete
+        _resolver = null;
+    }
+
+    /**
+     * Get the complex type name.
+     *
+     * @return String containing name of complex type.
+     */
+    public String getName() {
+        return _name;
+    }
+
+    /**
+     * Given the name of an element contained within the complex type, get its xml type.
+     *
+     * @param elementName Name of element contained within complex type.
+     * @return Xmltype of the element or null if element can not be found in the complex type.
+     */
+    public QName getElementType(String elementName) {
+        return _elements.get(elementName);
+    }
+
+    /**
+     * Get the set of all element names contained in this complex type.
+     *
+     * @return Set.
+     */
+    public Set<String> getElementNames() {
+        return _elements.keySet();
+    }
+
+    /* ---- Private Methods --- */
+
+    /**
+     * Process an 'all' element.
+     *
+     * @param all
+     */
+    private void processAll(Element all) {
+        // annotation?, element*
+        List<Element> elements = DomUtils.getChildElementsByName(all, "element");
+        for (Element element : elements) {
+            processElement(element);
+        }
+    }
+
+    /**
+     * Process an 'any' element.
+     *
+     * @param any
+     */
+    private void processAny(Element any) {
+        // annotation?
+        // *** noop ***
+    }
+
+//    private void processAttribute(Element attribute) {
+//        //  <complexType name="ArrayOf_xsd_short">
+//        //   <complexContent>
+//        //    <restriction base="soapenc:Array">
+//        //     <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:short[]"/>
+//        //    </restriction>
+//        //   </complexContent>
+//        //  </complexType>
+//        if (attribute.hasAttribute("wsdl:arrayType")) {
+//            String attributeName = attribute.getAttribute("ref");
+//            String arrayType = attribute.getAttribute("wsdl:arrayType");
+//            _elements.put(attributeName, _resolver.getTypeQName(arrayType));
+//        }
+//    }
+
+    /**
+     * Process a 'choice' element.
+     *
+     * @param choice
+     */
+    private void processChoice(Element choice) {
+        // annotation?, (element | group | choice | sequence | any)*
+        // just call process sequence, same elements
+        processSequence(choice);
+    }
+
+    /**
+     * Process a 'complexContent' element.
+     *
+     * @param complexContent
+     */
+    private void processComplexContent(Element complexContent) {
+        // annotation?, (extension | restriction)
+        Element child;
+        if ((child = DomUtils.getChildElementByName(complexContent, "extension")) != null) {
+            processComplexExtension(child);
+        }
+        else if ((child = DomUtils.getChildElementByName(complexContent, "restriction")) != null) {
+            processComplexRestriction(child);
+        }
+    }
+
+    /**
+     * Process an 'extension' element whose parent is 'complexContent'.
+     *
+     * @param complexExtension
+     */
+    private void processComplexExtension(Element complexExtension) {
+        // annotation?, (group, | all | choice | sequence)?, (attribute | attributeGroup)*, anyAttribute?
+        Element child;
+        if ((child = DomUtils.getChildElementByName(complexExtension, "group")) != null) {
+            processGroup(child);
+        }
+        else if ((child = DomUtils.getChildElementByName(complexExtension, "all")) != null) {
+            processAll(child);
+        }
+        else if ((child = DomUtils.getChildElementByName(complexExtension, "choice")) != null) {
+            processChoice(child);
+        }
+        else if ((child = DomUtils.getChildElementByName(complexExtension, "sequence")) != null) {
+            processSequence(child);
+        }
+    }
+
+    /**
+     * Process a 'restriction' element whose parent is 'complexContent'.
+     *
+     * @param complexRestriction
+     */
+    private void processComplexRestriction(Element complexRestriction) {
+        // annotation?, (group | all | choice | sequence)?, (attribute | attributeGroup)*, anyAttribute?
+        Element child;
+        if ((child = DomUtils.getChildElementByName(complexRestriction, "group")) != null) {
+            processGroup(child);
+        }
+        else if ((child = DomUtils.getChildElementByName(complexRestriction, "all")) != null) {
+            processAll(child);
+        }
+        else if ((child = DomUtils.getChildElementByName(complexRestriction, "choice")) != null) {
+            processChoice(child);
+        }
+        else if ((child = DomUtils.getChildElementByName(complexRestriction, "sequence")) != null) {
+            processSequence(child);
+        }
+//        else if (DomUtils.getChildElementByName(complexRestriction, "attribute") != null) {
+//            List<Element> attributes = DomUtils.getChildElementsByName(complexRestriction, "attribute");
+//            for (Element attribute : attributes) {
+//                processAttribute(attribute);
+//            }
+//        }
+    }
+
+    /**
+     * Process an 'element'.
+     *
+     * @param element
+     */
+    private void processElement(Element element) {
+        // annotation?
+        if (element.hasAttribute("name")) {
+            String elementName = element.getAttribute("name");
+            String elementType = element.getAttribute("type");
+            _elements.put(elementName, _resolver.getTypeQName(elementType));
+        }
+    }
+
+    /**
+     * Process a 'group' element.
+     *
+     * @param group
+     */
+    private void processGroup(Element group) {
+        // annotation?, (all | choice | sequence)
+        Element child;
+        if ((child = DomUtils.getChildElementByName(group, "all")) != null) {
+            processAll(child);
+        }
+        else if ((child = DomUtils.getChildElementByName(group, "choice")) != null) {
+            processChoice(child);
+        }
+        else if ((child = DomUtils.getChildElementByName(group, "sequence")) != null) {
+            processSequence(child);
+        }
+    }
+
+    /**
+     * Process a 'sequence' element.
+     *
+     * @param sequence
+     */
+    private void processSequence(Element sequence) {
+        // annotation?, (element | group | choice | sequence | any)*
+        List<Element> elements = DomUtils.getChildElementsByName(sequence, "element");
+        for (Element e : elements) {
+            processElement(e);
+        }
+
+        elements = DomUtils.getChildElementsByName(sequence, "group");
+        for (Element e : elements) {
+            processGroup(e);
+        }
+
+        elements = DomUtils.getChildElementsByName(sequence, "choice");
+        for (Element e : elements) {
+            processChoice(e);
+        }
+
+        elements = DomUtils.getChildElementsByName(sequence, "sequence");
+        for (Element e : elements) {
+            processSequence(e);
+        }
+
+        elements = DomUtils.getChildElementsByName(sequence, "any");
+        for (Element e : elements) {
+            processAny(e);
+        }
+    }
+
+    /**
+     * Process a 'simpleContent' element.
+     *
+     * @param simpleContent
+     */
+    private void processSimpleContent(Element simpleContent) {
+        // annotation?, (extension | restriction)
+        Element child;
+        if ((child = DomUtils.getChildElementByName(simpleContent, "extension")) != null) {
+            processSimpleExtension(child);
+        }
+        else if ((child = DomUtils.getChildElementByName(simpleContent, "restriction")) != null) {
+            processSimpleRestriction(child);
+        }
+    }
+
+    /**
+     * Process an 'extension' element whose parent is 'simpleContent'.
+     *
+     * @param any
+     */
+    private void processSimpleExtension(Element any) {
+        // annotation?, (attribute | attributeGroup)*, anyAttribute?
+        // *** noop ***
+    }
+
+    /**
+     * Process a 'restriction' element whose parent is 'simpleContent'.
+     *
+     * @param simpleRestriction
+     */
+    private void processSimpleRestriction(Element simpleRestriction) {
+        // annotation?, simpleType?, (enumeration | length | maxExclusive | maxInclusive
+        // | maxLength | minExclusive | minInclusive | minLength | pattern | fractionDigits
+        // | totalDigits | whiteSpace)*, (attribute | attributeGroup)*, anyAttribute?
+        // *** noop ***
+    }
+}

Propchange: beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/wsdl/ComplexType.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/wsdl/Wsdl.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/wsdl/Wsdl.java?rev=376434&r1=376433&r2=376434&view=diff
==============================================================================
--- beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/wsdl/Wsdl.java (original)
+++ beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/wsdl/Wsdl.java Thu Feb  9 12:44:19 2006
@@ -43,6 +43,7 @@
     private final Service _service;
     private final WsdlNamespaceResolver _namespaceResolver;
     private HashMap<String, WsdlOperation> _operationCache;
+    private WsdlComplexTypes _types;
 
     /**
      * Loads and parses the specified WSDL file.
@@ -80,8 +81,9 @@
             }
         }
 
-        _operationCache = new HashMap<String, WsdlOperation>();
         _namespaceResolver = new WsdlNamespaceResolver(_wsdlDefinition);
+        _types = new WsdlComplexTypes(_wsdlDefinition, _namespaceResolver);
+        _operationCache = new HashMap<String, WsdlOperation>();
     }
 
     /**
@@ -112,8 +114,18 @@
                     + " is not defined in the service: " + serviceQName);
         }
 
-        _operationCache = new HashMap<String, WsdlOperation>();
         _namespaceResolver = new WsdlNamespaceResolver(_wsdlDefinition);
+        _types = new WsdlComplexTypes(_wsdlDefinition, _namespaceResolver);
+        _operationCache = new HashMap<String, WsdlOperation>();
+    }
+
+    /**
+     * Get the WsdlComplexTypes instance of this wsdl.  WsdlComplex types provides type information
+     * for named complextypes defined in the wsdl's &lt;types&gt; section.
+     * @return WsdlComplexTypes instance.
+     */
+    public WsdlComplexTypes getComplexTypes() {
+        return _types;
     }
 
     /**

Added: beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/wsdl/WsdlComplexTypes.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/wsdl/WsdlComplexTypes.java?rev=376434&view=auto
==============================================================================
--- beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/wsdl/WsdlComplexTypes.java (added)
+++ beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/wsdl/WsdlComplexTypes.java Thu Feb  9 12:44:19 2006
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ *
+ * $Header:$
+ */
+
+package org.apache.beehive.controls.system.webservice.wsdl;
+
+import org.w3c.dom.Element;
+
+import javax.wsdl.Definition;
+import javax.wsdl.extensions.ExtensibilityElement;
+import javax.wsdl.extensions.schema.Schema;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * Represents a map of all named complex types in the WSDL.
+ */
+public final class WsdlComplexTypes implements java.io.Serializable {
+
+    private HashMap<String, ComplexType> _complexTypes = new HashMap<String, ComplexType>();
+
+    /**
+     * Create a new instance, parse the WSDL file for named complex types.
+     * @param wsdl The WSDL definition.
+     * @param resolver Namespace resolver.
+     */
+    WsdlComplexTypes(Definition wsdl, WsdlNamespaceResolver resolver) {
+
+        List schemas = WsdlUtils.getSchemas(wsdl);
+        for (Object o : schemas) {
+            ExtensibilityElement schema = (ExtensibilityElement) o;
+            Element schemaRoot = ((Schema) schema).getElement();
+
+            List<Element> types = DomUtils.getChildElementsByName(schemaRoot, "complexType");
+            for (Element t : types) {
+                String schemaTypeName = t.getAttribute("name");
+                _complexTypes.put(schemaTypeName, new ComplexType(t, resolver));
+            }
+        }
+    }
+
+    /**
+     * Get the complex type specifed by complexTypeName.
+     * @param complexTypeName Name of complex type.
+     * @return ComplexType instance, null if complex type was not defined in the wsdl file.
+     */
+    public ComplexType getComplexType(String complexTypeName) {
+        return _complexTypes.get(complexTypeName);
+    }
+}

Propchange: beehive/trunk/system-controls/src/webservice/control/org/apache/beehive/controls/system/webservice/wsdl/WsdlComplexTypes.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: beehive/trunk/system-controls/src/webservice/jaxrpc-clients/axis/build.xml
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/src/webservice/jaxrpc-clients/axis/build.xml?rev=376434&r1=376433&r2=376434&view=diff
==============================================================================
--- beehive/trunk/system-controls/src/webservice/jaxrpc-clients/axis/build.xml (original)
+++ beehive/trunk/system-controls/src/webservice/jaxrpc-clients/axis/build.xml Thu Feb  9 12:44:19 2006
@@ -26,15 +26,15 @@
 
     <path id="module.classpath">
         <path location="${classes.dir}/webservice-control"/>
-        <path refid="wsm.dependency.path"/>
+        <path refid="webservice-utils.dependency.path"/>
         <path refid="axis.dependency.path"/>
         <path refid="jaxrpc.dependency.path"/>
         <path refid="commons-logging.dependency.path"/>
     </path>
 
-    <!-- ========================================= -->
-    <!-- build - build the webservice control      -->
-    <!-- ========================================= -->
+    <!-- ================================================================= -->
+    <!-- build - build axis client support for the webservice control      -->
+    <!-- ================================================================= -->
     <target name="build" description="Builds axis client support for service control.">
 
         <echo message="--------------------------------------------------"/>
@@ -44,11 +44,16 @@
         <javac srcdir="${module.dir}"
              destdir="${classes.dir}/webservice-control"
              classpathref="module.classpath"
-             debug="${compile.debug}"
-             nowarn="${compile.nowarn}"/>
+             debug="${compile.debug}"/>
 
         <echo message="--------------------------------------------------"/>
         <echo message="|      Axis 1.x client support build complete    |"/>
         <echo message="--------------------------------------------------"/>
+    </target>
+
+    <!-- ================================================================= -->
+    <!-- clean - build axis client support for the webservice control      -->
+    <!-- ================================================================= -->
+    <target name="clean" description="Clean up files generated by the axis client support build.">
     </target>
 </project>

Modified: beehive/trunk/system-controls/src/webservice/jaxrpc-clients/axis/org/apache/beehive/controls/system/jaxrpc/AxisCall.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/src/webservice/jaxrpc-clients/axis/org/apache/beehive/controls/system/jaxrpc/AxisCall.java?rev=376434&r1=376433&r2=376434&view=diff
==============================================================================
--- beehive/trunk/system-controls/src/webservice/jaxrpc-clients/axis/org/apache/beehive/controls/system/jaxrpc/AxisCall.java (original)
+++ beehive/trunk/system-controls/src/webservice/jaxrpc-clients/axis/org/apache/beehive/controls/system/jaxrpc/AxisCall.java Thu Feb  9 12:44:19 2006
@@ -27,9 +27,10 @@
 import org.apache.axis.encoding.XMLType;
 import org.apache.beehive.controls.system.webservice.wsdl.WsdlOpParameter;
 import org.apache.beehive.controls.system.webservice.wsdl.WsdlOperation;
+import org.apache.beehive.controls.system.webservice.wsdl.WsdlComplexTypes;
 import org.apache.beehive.controls.system.webservice.jaxrpc.GenericCall;
-import org.apache.beehive.wsm.axis.databinding.AxisBindingLookupFactory;
-import org.apache.beehive.wsm.databinding.BindingLookupStrategy;
+import org.apache.beehive.webservice.utils.databinding.AxisBindingLookupFactory;
+import org.apache.beehive.webservice.utils.databinding.BindingLookupStrategy;
 
 /**
  * This is the AXIS 1.2 implementation of the call abstraction layer of the service control.
@@ -43,15 +44,16 @@
      * Create a new ScAxisCall instance.
      *
      * @param service Service to create the call with.
+     * @param complexTypes Named complex types information from the wsdl file.
      * @throws ServiceException On error.
      */
-    public AxisCall(Service service)
+    public AxisCall(Service service, WsdlComplexTypes complexTypes)
         throws ServiceException {
         TypeMapping typeMapping = service.getTypeMappingRegistry().getDefaultTypeMapping();
         _bindingLookupStrategy = (new AxisBindingLookupFactory()).getInstance();
 
         _call = service.createCall();
-        _typeRegistrar = new AxisTypeRegistrar(typeMapping, _bindingLookupStrategy);
+        _typeRegistrar = new AxisTypeRegistrar(typeMapping, _bindingLookupStrategy, complexTypes);
     }
 
     /* -----------------------------   Protected Methods ------------------------- */

Modified: beehive/trunk/system-controls/src/webservice/jaxrpc-clients/axis/org/apache/beehive/controls/system/jaxrpc/AxisTypeRegistrar.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/src/webservice/jaxrpc-clients/axis/org/apache/beehive/controls/system/jaxrpc/AxisTypeRegistrar.java?rev=376434&r1=376433&r2=376434&view=diff
==============================================================================
--- beehive/trunk/system-controls/src/webservice/jaxrpc-clients/axis/org/apache/beehive/controls/system/jaxrpc/AxisTypeRegistrar.java (original)
+++ beehive/trunk/system-controls/src/webservice/jaxrpc-clients/axis/org/apache/beehive/controls/system/jaxrpc/AxisTypeRegistrar.java Thu Feb  9 12:44:19 2006
@@ -20,19 +20,25 @@
 import org.apache.axis.encoding.ser.ArraySerializerFactory;
 import org.apache.axis.encoding.ser.BeanDeserializerFactory;
 import org.apache.axis.encoding.ser.BeanSerializerFactory;
+import org.apache.axis.encoding.ser.SimpleDeserializerFactory;
+import org.apache.axis.encoding.ser.SimpleSerializerFactory;
 import org.apache.axis.utils.BeanPropertyDescriptor;
 import org.apache.beehive.controls.system.webservice.utils.TypeRegistrar;
-import org.apache.beehive.wsm.axis.util.encoding.XmlBeanDeserializerFactory;
-import org.apache.beehive.wsm.axis.util.encoding.XmlBeanSerializerFactory;
-import org.apache.beehive.wsm.databinding.BindingLookupStrategy;
+import org.apache.beehive.controls.system.webservice.wsdl.ComplexType;
+import org.apache.beehive.controls.system.webservice.wsdl.WsdlComplexTypes;
+import org.apache.beehive.webservice.utils.databinding.BindingLookupStrategy;
+import org.apache.beehive.webservice.utils.encoding.XmlBeanDeserializerFactory;
+import org.apache.beehive.webservice.utils.encoding.XmlBeanSerializerFactory;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
 import javax.jws.soap.SOAPBinding;
 import javax.xml.namespace.QName;
 import javax.xml.rpc.encoding.TypeMapping;
+import javax.xml.rpc.encoding.XMLType;
 import java.util.Collection;
 import java.util.Map;
+import java.util.Set;
 
 /**
  * Axis client implementation of type registrar.
@@ -47,38 +53,67 @@
      *
      * @param tm             A JAX-RPC type mapping instance.
      * @param lookupStrategy Lookup strategy for mapping java -> xml types.
+     * @param complexTypes   Named complextype information from the wsdl.
      */
-    public AxisTypeRegistrar(TypeMapping tm, BindingLookupStrategy lookupStrategy) {
-        super(tm, lookupStrategy);
+    public AxisTypeRegistrar(TypeMapping tm, BindingLookupStrategy lookupStrategy, WsdlComplexTypes complexTypes) {
+        super(tm, lookupStrategy, complexTypes);
+    }
+
+    /**
+     * Register the pair with the specified serializer.
+     *
+     * @param cls        Class to register.
+     * @param xmlType    Xml type of the class.
+     * @param serializer Serializer to register with.
+     */
+    protected void registerAs(Class cls, QName xmlType, Object serializer) {
+
+        if (serializer instanceof SimpleSerializerFactory) {
+            _typeMapping.register(cls, xmlType,
+                                  new SimpleSerializerFactory(cls, xmlType),
+                                  new SimpleDeserializerFactory(cls, xmlType));
+        }
+        else {
+            assert false : "Unexpected serializer type: " + serializer.getClass().getName();
+            throw new RuntimeException("Unexpected serializer type: " + serializer.getClass().getName());
+        }
     }
 
     /**
      * Register a type with default serialization, in the case of AXIS this would be the BeanSerializer.
      *
-     * @param cls Class to register.
+     * @param cls     Class to register.
      * @param xmlType Xml name of the class.
-     * @param style Style of the service.
-     * @param use Use of the service.
+     * @param style   Style of the service.
+     * @param use     Use of the service.
      */
-    protected void registerWithDefaultSerialization(Class cls, QName xmlType,
-                                                    SOAPBinding.Style style, SOAPBinding.Use use) {
+    protected void registerAsBean(Class cls, QName xmlType, SOAPBinding.Style style, SOAPBinding.Use use) {
 
-        LOGGER.debug("Assigned Default Serialization to  class: " + cls.getCanonicalName() + " qname:" + xmlType);
+        LOGGER.debug("Assigned Bean Serialization to  class: " + cls.getCanonicalName() + " qname:" + xmlType);
 
         _typeMapping.register(cls, xmlType,
                               new BeanSerializerFactory(cls, xmlType),
                               new BeanDeserializerFactory(cls, xmlType));
 
+        // register any types contained within the bean
         Map classProperties = BeanDeserializerFactory.getProperties(cls, TypeDesc.getTypeDescForClass(cls));
         Collection beanPropertyDescriptors = classProperties.values();
+
+        ComplexType ct = _wsdlComplexTypes.getComplexType(xmlType.getLocalPart());
         for (Object o : beanPropertyDescriptors) {
-            registerType(((BeanPropertyDescriptor) o).getType(), style, use);
+            Class type = ((BeanPropertyDescriptor) o).getType();
+            if (!(type.isPrimitive() || type.getName().startsWith("java.") || type.getName().startsWith("javax."))) {
+
+                assert ct != null : "Complex type: " + xmlType.getLocalPart() + " not found in wsdl!";
+                registerType(type, ct.getElementType(((BeanPropertyDescriptor) o).getName()), style, use);
+            }
         }
     }
 
     /**
      * Register a type as an XmlBean.
-     * @param cls Class to register.
+     *
+     * @param cls     Class to register.
      * @param xmlType Xml name of the class.
      */
     protected void registerAsXMLBean(Class cls, QName xmlType) {
@@ -91,18 +126,47 @@
     }
 
     /**
-     * Register a type as a SOAP encoded array.
-     * @param cls Class to register.
-     * @param xmlType Xml name of the class.
-     * @param componentType Component type of the array.
+     * Register a type as an array.
+     *
+     * @param cls           Class to register.
+     * @param xmlType       Xml name of the class.
+     * @param componentType Xml type of the array component class.
+     * @param style         Soap style.
+     * @param use           Soap use.
+     * @return The QName of the registered array.
      */
-    protected void registerAsSoapEncodedArray(Class cls, QName xmlType, QName componentType) {
-        LOGGER.debug("Assigned Array Serialization to  class: "  + cls.getCanonicalName()
-                + " qname:"  + xmlType
-                + " Array element qname: "  + componentType);
+    protected QName registerAsArray(Class cls, QName xmlType, QName componentType,
+                                    SOAPBinding.Style style, SOAPBinding.Use use) {
 
-        _typeMapping.register(cls, xmlType,
-                              new ArraySerializerFactory(componentType),
-                              new ArrayDeserializerFactory());
+        if (SOAPBinding.Style.RPC == style && SOAPBinding.Use.ENCODED == use) {
+            _typeMapping.register(cls, xmlType,
+                                  new ArraySerializerFactory(componentType),
+                                  new ArrayDeserializerFactory());
+            return xmlType;
+        }
+
+        ComplexType ct = _wsdlComplexTypes.getComplexType(xmlType.getLocalPart());
+        if (ct != null) {
+            Set<String> names = ct.getElementNames();
+            assert names.size() == 1;
+            QName componentQName = ct.getElementType(names.iterator().next());
+            QName componentItemName;
+            if (SOAPBinding.Style.RPC == style) {
+                componentItemName = new QName("", names.iterator().next());
+            }
+            else {
+                componentItemName = new QName(xmlType.getNamespaceURI(), names.iterator().next());
+            }
+            registerType(cls.getComponentType(), componentQName, style, use);
+
+            xmlType = (SOAPBinding.Style.RPC == style) ? XMLType.SOAP_ARRAY : xmlType;
+            _typeMapping.register(cls, xmlType,
+                                  new ArraySerializerFactory(componentQName, componentItemName),
+                                  new ArrayDeserializerFactory());
+            return xmlType;
+        }
+        else {
+            return registerType(cls.getComponentType(), componentType, style, use);
+        }
     }
 }

Modified: beehive/trunk/system-controls/systemcontrols-imports.xml
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/systemcontrols-imports.xml?rev=376434&r1=376433&r2=376434&view=diff
==============================================================================
--- beehive/trunk/system-controls/systemcontrols-imports.xml (original)
+++ beehive/trunk/system-controls/systemcontrols-imports.xml Thu Feb  9 12:44:19 2006
@@ -14,6 +14,17 @@
 
     <property file="${beehive.home}/system-controls/ant/systemcontrols.properties"/>
 
+    <property name="webservice-utils-core" location="${beehive.home}/wsm/build/classes/webservice-utils-core"/>
+    <property name="webservice-utils-axis" location="${beehive.home}/wsm/build/classes/webservice-utils-axis"/>
+    <property name="webservice-utils-xmlbeans" location="${beehive.home}/wsm/build/classes/webservice-utils-xmlbeans"/>
+
+    <path id="webservice-utils.dependency.path">
+        <pathelement location="${webservice-utils-core}"/>
+        <pathelement location="${webservice-utils-axis}"/>
+        <pathelement location="${webservice-utils-xmlbeans}"/>
+        <fileset file="${beehive.home}/wsm/build/jars/beehive-jsr181.jar"/>
+    </path>
+
     <path id="wsm.dependency.path">
         <fileset file="${beehive.home}/wsm/build/jars/beehive-wsm.jar"/>
         <fileset file="${beehive.home}/wsm/build/jars/beehive-wsm-axis.jar"/>

Modified: beehive/trunk/system-controls/test/webservice/build.properties
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/test/webservice/build.properties?rev=376434&r1=376433&r2=376434&view=diff
==============================================================================
--- beehive/trunk/system-controls/test/webservice/build.properties (original)
+++ beehive/trunk/system-controls/test/webservice/build.properties Thu Feb  9 12:44:19 2006
@@ -2,6 +2,6 @@
 #
 #
 
-mailapi.jar=${beehive.home}/system-controls/test/webservice/external/geronimo-spec-javamail-1.3.1-rc6.jar
-activation.jar=${beehive.home}/system-controls/test/webservice/external/geronimo-spec-activation-1.0.2-rc4.jar
+mailapi.jar=${beehive.home}/system-controls/test/webservice/external/geronimo-javamail_1.3.1_spec-1.0.jar
+activation.jar=${beehive.home}/system-controls/test/webservice/external/geronimo-activation_1.0.2_spec-1.0.jar
 

Modified: beehive/trunk/system-controls/test/webservice/build.xml
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/test/webservice/build.xml?rev=376434&r1=376433&r2=376434&view=diff
==============================================================================
--- beehive/trunk/system-controls/test/webservice/build.xml (original)
+++ beehive/trunk/system-controls/test/webservice/build.xml Thu Feb  9 12:44:19 2006
@@ -212,6 +212,7 @@
                     <exclude name="**/Image*Test.java"/>
                     <exclude name="**/DataHandler*Test.java"/>
                     <exclude name="**/MimeMultipart*Test.java"/>
+                    <exclude name="**/XmlSource*Test.java"/>
                 </fileset>
             </batchtest>
         </junit>
@@ -253,7 +254,9 @@
                  classname="org.apache.beehive.controls.system.webservice.generator.WebServiceControlGeneratorTask"
                  classpathref="client.classpath"/>
 
-        <xmlbeanbuild classpathref="xbean.dependency.path" classgendir="${client.classes}" failonerror="true">
+        <xmlbeanbuild classpathref="xbean.dependency.path" classgendir="${client.classes}" failonerror="true"
+            ignoreDuplicatesInNamespaces="http://complextypes.beehive.apache.org">
+
             <fileset dir="${xmlbeangen.wsdls.dir}">
                 <include name="ComplexTypesRpcLitXmlbeangen.wsdl"/>
                 <include name="ComplexTypesDocLitWrappedXmlbeangen.wsdl"/>
@@ -298,7 +301,12 @@
         <check-wsdl webservicePath="attachments/datahandler" webserviceName="DataHandlerDocLitWrapped" drtWsdlDir="${schematypes.wsdls.dir}"/>
         <check-wsdl webservicePath="attachments/datahandler" webserviceName="DataHandlerRpcLit" drtWsdlDir="${schematypes.wsdls.dir}"/>
         <check-wsdl webservicePath="attachments/datahandler" webserviceName="DataHandlerRpcEnc" drtWsdlDir="${schematypes.wsdls.dir}"/>
-        <!--        <check-wsdl webservicePath="attachments/mimemultipart" webserviceName="MimeMultipartDocLitWrapped" drtWsdlDir="${schematypes.wsdls.dir}"/> -->
+        <check-wsdl webservicePath="attachments/mimemultipart" webserviceName="MimeMultipartDocLitWrapped" drtWsdlDir="${schematypes.wsdls.dir}"/>
+        <check-wsdl webservicePath="attachments/mimemultipart" webserviceName="MimeMultipartRpcLit" drtWsdlDir="${schematypes.wsdls.dir}"/>
+        <check-wsdl webservicePath="attachments/mimemultipart" webserviceName="MimeMultipartRpcEnc" drtWsdlDir="${schematypes.wsdls.dir}"/>
+        <check-wsdl webservicePath="attachments/xml" webserviceName="XmlSourceDocLitWrapped" drtWsdlDir="${schematypes.wsdls.dir}"/>
+        <check-wsdl webservicePath="attachments/xml" webserviceName="XmlSourceRpcLit" drtWsdlDir="${schematypes.wsdls.dir}"/>
+        <check-wsdl webservicePath="attachments/xml" webserviceName="XmlSourceRpcEnc" drtWsdlDir="${schematypes.wsdls.dir}"/>
 
         <check-wsdl webservicePath="complextypes/doclitwrapped/pojo" webserviceName="ComplexTypesDocLitWrapped" drtWsdlDir="${pojotypes.wsdls.dir}"/>
         <check-wsdl webservicePath="complextypes/doclitwrapped/axisgen" webserviceName="ComplexTypesDocLitWrappedAxisgen" drtWsdlDir="${axisgen.wsdls.dir}"/>

Added: beehive/trunk/system-controls/test/webservice/external/geronimo-activation_1.0.2_spec-1.0.jar
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/test/webservice/external/geronimo-activation_1.0.2_spec-1.0.jar?rev=376434&view=auto
==============================================================================
Binary file - no diff available.

Propchange: beehive/trunk/system-controls/test/webservice/external/geronimo-activation_1.0.2_spec-1.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: beehive/trunk/system-controls/test/webservice/external/geronimo-javamail_1.3.1_spec-1.0.jar
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/test/webservice/external/geronimo-javamail_1.3.1_spec-1.0.jar?rev=376434&view=auto
==============================================================================
Binary file - no diff available.

Propchange: beehive/trunk/system-controls/test/webservice/external/geronimo-javamail_1.3.1_spec-1.0.jar
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Modified: beehive/trunk/system-controls/test/webservice/webapp/build.xml
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/test/webservice/webapp/build.xml?rev=376434&r1=376433&r2=376434&view=diff
==============================================================================
--- beehive/trunk/system-controls/test/webservice/webapp/build.xml (original)
+++ beehive/trunk/system-controls/test/webservice/webapp/build.xml Thu Feb  9 12:44:19 2006
@@ -61,12 +61,13 @@
         <mkdir dir="${build.dir}"/>
         <mkdir dir="${classes.dir}"/>
 
-<!--        <deploy-wsm webappDir="${build.dir}"/> -->
+        <deploy-wsm webappDir="${build.dir}"/>
 
         <!-- HACK: the copy block below is used temporarily to use a snapshot of WSM
                    for the WSC DRTs.  WSM needs to evolve some, and the WSC is a little
                    too tightly coupled for that to happen easily
           -->
+        <!--
         <copy todir="${build.dir}/WEB-INF/lib">
             <fileset dir="${beehive.home}/system-controls/external/wsm-snapshot">
                 <include name="beehive-wsm.jar"/>
@@ -82,6 +83,7 @@
             <fileset refid="velocity.fileset"/>
             <fileset refid="commons-discovery.fileset"/>
         </copy>
+        -->
 
         <copy todir="${build.dir}/WEB-INF/lib" file="${mailapi.jar}"/>
         <copy todir="${build.dir}/WEB-INF/lib" file="${activation.jar}"/>

Modified: beehive/trunk/system-controls/test/webservice/webapp/src/attachments/mimemultipart/MimeMultipartDocLitWrapped.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/test/webservice/webapp/src/attachments/mimemultipart/MimeMultipartDocLitWrapped.java?rev=376434&r1=376433&r2=376434&view=diff
==============================================================================
--- beehive/trunk/system-controls/test/webservice/webapp/src/attachments/mimemultipart/MimeMultipartDocLitWrapped.java (original)
+++ beehive/trunk/system-controls/test/webservice/webapp/src/attachments/mimemultipart/MimeMultipartDocLitWrapped.java Thu Feb  9 12:44:19 2006
@@ -22,16 +22,15 @@
 import javax.jws.WebMethod;
 import javax.jws.WebService;
 import javax.jws.soap.SOAPBinding;
-import javax.activation.DataHandler;
 import javax.mail.internet.MimeMultipart;
 import javax.mail.internet.MimeBodyPart;
 import javax.mail.MessagingException;
+import javax.activation.DataHandler;
 import java.io.InputStream;
-import java.io.IOException;
 
 
 /**
- * Purpose:
+ * Purpose: Test MultipartMime attachements for doc/lit/wrapped service.
  */
 @WebService()
 @SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL,
@@ -39,18 +38,33 @@
 public class MimeMultipartDocLitWrapped extends MimeMultipartAttachments {
 
     @WebMethod()
-    public MimeMultipart getPlainText() {
+    public MimeMultipart echoPlainText(MimeMultipart pt) {
+        return pt;
+    }
+
+    @WebMethod()
+    public MimeMultipart echoXmlText(MimeMultipart pt) {
+        return pt;
+    }
+
+    @WebMethod()
+    public MimeMultipart getImages() {
         MimeMultipart mmp = new MimeMultipart();
         MimeBodyPart mbp = new MimeBodyPart();
 
         try {
-            mbp.setContent("Some plain text, part 1", "text/plain");
-            mbp.setHeader("Content-Type", "text/plain");
+            byte[] img = loadImage("resources/bird1.jpg");
+            DataHandler dh = new DataHandler(new ByteArrayDataSource("Image data", img, "image/jpeg"));
+
+            mbp.setDataHandler(dh);
+            mbp.setHeader("Content-Type", "image/jpeg");
             mmp.addBodyPart(mbp);
 
+            img = loadImage("resources/beehive_logo.gif");
+            dh = new DataHandler(new ByteArrayDataSource("Image data2", img, "image/gif"));
             mbp = new MimeBodyPart();
-            mbp.setContent("Some plain text, part 2", "text/plain");
-            mbp.setHeader("Content-Type", "text/plain");
+            mbp.setDataHandler(dh);
+            mbp.setHeader("Content-Type", "image/gif");
             mmp.addBodyPart(mbp);
         }
         catch (MessagingException e) {
@@ -58,38 +72,6 @@
             return null;
         }
         return mmp;
-    }
-
-    @WebMethod()
-    public MimeMultipart echoPlainText(MimeMultipart pt) {
-//        String content = "";
-//        try {
-//            content = (String) pt.getContent();
-//        } catch (IOException ioe) {
-//            // do nothing
-//        }
-//        return new DataHandler(content, "text/plain");
-        return null;
-    }
-
-    @WebMethod()
-    public MimeMultipart getXmlText() {
-//        return new DataHandler("<user><name>Fred</name></user>", "text/xml");
-        return null;
-    }
-
-    @WebMethod()
-    public MimeMultipart getJpgImage() {
-//        byte[] img = loadImage("resources/bird1.jpg");
-//        return new DataHandler(new ByteArrayDataSource("Image data", img, "image/jpeg"));
-        return null;
-    }
-
-    @WebMethod()
-    public MimeMultipart getGifImage() {
-//        byte[] img = loadImage("resources/beehive_logo.gif");
-//        return new DataHandler(new ByteArrayDataSource("Image data", img, "image/gif"));
-        return null;
     }
 
     protected InputStream getResourceStream(String nm) {

Added: beehive/trunk/system-controls/test/webservice/webapp/src/attachments/mimemultipart/MimeMultipartRpcEnc.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/test/webservice/webapp/src/attachments/mimemultipart/MimeMultipartRpcEnc.java?rev=376434&view=auto
==============================================================================
--- beehive/trunk/system-controls/test/webservice/webapp/src/attachments/mimemultipart/MimeMultipartRpcEnc.java (added)
+++ beehive/trunk/system-controls/test/webservice/webapp/src/attachments/mimemultipart/MimeMultipartRpcEnc.java Thu Feb  9 12:44:19 2006
@@ -0,0 +1,79 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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 attachments.mimemultipart;
+
+import org.apache.beehive.attachments.ByteArrayDataSource;
+import org.apache.beehive.attachments.MimeMultipartAttachments;
+
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+import javax.mail.internet.MimeMultipart;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.MessagingException;
+import javax.activation.DataHandler;
+import java.io.InputStream;
+
+
+/**
+ * Purpose: Test MultipartMime attachements for a rpc/enc service.
+ */
+@WebService()
+@SOAPBinding(style = SOAPBinding.Style.RPC, use = SOAPBinding.Use.ENCODED)
+public class MimeMultipartRpcEnc extends MimeMultipartAttachments {
+
+    @WebMethod()
+    public MimeMultipart echoPlainText(MimeMultipart pt) {
+        return pt;
+    }
+
+    @WebMethod()
+    public MimeMultipart echoXmlText(MimeMultipart pt) {
+        return pt;
+    }
+
+    @WebMethod()
+    public MimeMultipart getImages() {
+        MimeMultipart mmp = new MimeMultipart();
+        MimeBodyPart mbp = new MimeBodyPart();
+
+        try {
+            byte[] img = loadImage("resources/bird1.jpg");
+            DataHandler dh = new DataHandler(new ByteArrayDataSource("Image data", img, "image/jpeg"));
+
+            mbp.setDataHandler(dh);
+            mbp.setHeader("Content-Type", "image/jpeg");
+            mmp.addBodyPart(mbp);
+
+            img = loadImage("resources/beehive_logo.gif");
+            dh = new DataHandler(new ByteArrayDataSource("Image data2", img, "image/gif"));
+            mbp = new MimeBodyPart();
+            mbp.setDataHandler(dh);
+            mbp.setHeader("Content-Type", "image/gif");
+            mmp.addBodyPart(mbp);
+        }
+        catch (MessagingException e) {
+            e.printStackTrace();
+            return null;
+        }
+        return mmp;
+    }
+
+    protected InputStream getResourceStream(String nm) {
+        return MimeMultipartRpcEnc.class.getResourceAsStream(nm);
+    }
+}

Propchange: beehive/trunk/system-controls/test/webservice/webapp/src/attachments/mimemultipart/MimeMultipartRpcEnc.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/system-controls/test/webservice/webapp/src/attachments/mimemultipart/MimeMultipartRpcLit.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/test/webservice/webapp/src/attachments/mimemultipart/MimeMultipartRpcLit.java?rev=376434&view=auto
==============================================================================
--- beehive/trunk/system-controls/test/webservice/webapp/src/attachments/mimemultipart/MimeMultipartRpcLit.java (added)
+++ beehive/trunk/system-controls/test/webservice/webapp/src/attachments/mimemultipart/MimeMultipartRpcLit.java Thu Feb  9 12:44:19 2006
@@ -0,0 +1,80 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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 attachments.mimemultipart;
+
+import org.apache.beehive.attachments.ByteArrayDataSource;
+import org.apache.beehive.attachments.MimeMultipartAttachments;
+
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+import javax.mail.internet.MimeMultipart;
+import javax.mail.internet.MimeBodyPart;
+import javax.mail.MessagingException;
+import javax.activation.DataHandler;
+import java.io.InputStream;
+
+
+/**
+ * Purpose: Test MultipartMime attachements for doc/lit/wrapped service.
+ */
+@WebService()
+@SOAPBinding(style = SOAPBinding.Style.RPC, use = SOAPBinding.Use.LITERAL,
+             parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
+public class MimeMultipartRpcLit extends MimeMultipartAttachments {
+
+    @WebMethod()
+    public MimeMultipart echoPlainText(MimeMultipart pt) {
+        return pt;
+    }
+
+    @WebMethod()
+    public MimeMultipart echoXmlText(MimeMultipart pt) {
+        return pt;
+    }
+
+    @WebMethod()
+    public MimeMultipart getImages() {
+        MimeMultipart mmp = new MimeMultipart();
+        MimeBodyPart mbp = new MimeBodyPart();
+
+        try {
+            byte[] img = loadImage("resources/bird1.jpg");
+            DataHandler dh = new DataHandler(new ByteArrayDataSource("Image data", img, "image/jpeg"));
+
+            mbp.setDataHandler(dh);
+            mbp.setHeader("Content-Type", "image/jpeg");
+            mmp.addBodyPart(mbp);
+
+            img = loadImage("resources/beehive_logo.gif");
+            dh = new DataHandler(new ByteArrayDataSource("Image data2", img, "image/gif"));
+            mbp = new MimeBodyPart();
+            mbp.setDataHandler(dh);
+            mbp.setHeader("Content-Type", "image/gif");
+            mmp.addBodyPart(mbp);
+        }
+        catch (MessagingException e) {
+            e.printStackTrace();
+            return null;
+        }
+        return mmp;
+    }
+
+    protected InputStream getResourceStream(String nm) {
+        return MimeMultipartRpcLit.class.getResourceAsStream(nm);
+    }
+}

Propchange: beehive/trunk/system-controls/test/webservice/webapp/src/attachments/mimemultipart/MimeMultipartRpcLit.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/system-controls/test/webservice/webapp/src/attachments/xml/XmlSourceDocLitWrapped.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/test/webservice/webapp/src/attachments/xml/XmlSourceDocLitWrapped.java?rev=376434&view=auto
==============================================================================
--- beehive/trunk/system-controls/test/webservice/webapp/src/attachments/xml/XmlSourceDocLitWrapped.java (added)
+++ beehive/trunk/system-controls/test/webservice/webapp/src/attachments/xml/XmlSourceDocLitWrapped.java Thu Feb  9 12:44:19 2006
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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 attachments.xml;
+
+import org.apache.beehive.attachments.XmlSourceAttachments;
+
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+import javax.xml.transform.Source;
+
+
+/**
+ * Purpose: Test XML source attachements for doc/lit/wrapped service.
+ */
+@WebService()
+@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL,
+             parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
+public class XmlSourceDocLitWrapped implements XmlSourceAttachments {
+
+    @WebMethod()
+    public Source echoXml(Source xml) {
+        return xml;
+    }
+
+    @WebMethod()
+    public Source[] echoXmlArray(Source[] xmlArr) {
+        return xmlArr;
+    }
+}

Propchange: beehive/trunk/system-controls/test/webservice/webapp/src/attachments/xml/XmlSourceDocLitWrapped.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: beehive/trunk/system-controls/test/webservice/webapp/src/attachments/xml/XmlSourceRpcEnc.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/system-controls/test/webservice/webapp/src/attachments/xml/XmlSourceRpcEnc.java?rev=376434&view=auto
==============================================================================
--- beehive/trunk/system-controls/test/webservice/webapp/src/attachments/xml/XmlSourceRpcEnc.java (added)
+++ beehive/trunk/system-controls/test/webservice/webapp/src/attachments/xml/XmlSourceRpcEnc.java Thu Feb  9 12:44:19 2006
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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 attachments.xml;
+
+import org.apache.beehive.attachments.XmlSourceAttachments;
+
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+import javax.xml.transform.Source;
+
+
+/**
+ * Purpose: Test XML source attachements for rpc/encoded service.
+ */
+@WebService()
+@SOAPBinding(style = SOAPBinding.Style.RPC, use = SOAPBinding.Use.ENCODED)
+public class XmlSourceRpcEnc implements XmlSourceAttachments {
+
+    @WebMethod()
+    public Source echoXml(Source xml) {
+        return xml;
+    }
+
+    @WebMethod()
+    public Source[] echoXmlArray(Source[] xmlArr) {
+        return xmlArr;
+    }
+}

Propchange: beehive/trunk/system-controls/test/webservice/webapp/src/attachments/xml/XmlSourceRpcEnc.java
------------------------------------------------------------------------------
    svn:eol-style = native