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 <types> 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