You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by ek...@apache.org on 2006/01/03 17:09:11 UTC

svn commit: r365670 [1/2] - in /beehive/trunk/wsm: src/axis/org/apache/beehive/wsm/axis/ src/axis/org/apache/beehive/wsm/axis/handlers/ src/core/org/apache/beehive/wsm/model/ src/core/org/apache/beehive/wsm/model/impl/ src/core/org/apache/beehive/wsm/m...

Author: ekoneil
Date: Tue Jan  3 08:08:33 2006
New Revision: 365670

URL: http://svn.apache.org/viewcvs?rev=365670&view=rev
Log:
Cleanup the WSM JavaBean model that represents an annotated web service.

Changes made:

- collapse the abstract base classes (BeehiveWs*) and implementations (Default*) classes into a single JavaBean
- rename BeehiveWs* to Wsm*
- start some interface cleanup

BB: self
Test: WSM pass


Added:
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmOperation.java   (contents, props changed)
      - copied, changed from r359210, beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsMethodMetadata.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmParameter.java   (contents, props changed)
      - copied, changed from r359210, beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsParameterMetadata.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmService.java   (contents, props changed)
      - copied, changed from r359210, beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsTypeMetadata.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmSoapBinding.java   (contents, props changed)
      - copied, changed from r359210, beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsSOAPBindingInfo.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmSoapMessageHandler.java   (contents, props changed)
      - copied, changed from r359210, beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsSOAPMessageHandlerInfo.java
Removed:
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsMethodMetadata.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsParameterMetadata.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsSOAPBindingInfo.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsSOAPMessageHandlerInfo.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsTypeMetadata.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/impl/
Modified:
    beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/ServiceDescriptionFactory.java
    beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/handlers/AnnotatedWebServiceDeploymentHandler.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/jsr181/Jsr181ObjectModelStore.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/wsdl/XmlBeanWSDLProcessor.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/generator/AxisGenerator.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/BeehiveWsTypeMetadataFactory.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/mirror/MirrorFactoryImpl.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/reflection/ReflectionFactoryImpl.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/wsdl/WSDLFactoryImpl.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/tools/wsdl2ajava/Model2AJava.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/tools/wsdl2ajava/Wsdl2AJava.java
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/tools/wsdl2ajava/wsdl2ajava.vm
    beehive/trunk/wsm/src/core/org/apache/beehive/wsm/util/HandlerChainParser.java
    beehive/trunk/wsm/test/src/junit/org/apache/beehive/wsm/test/axis/AxisHookTest.java
    beehive/trunk/wsm/test/src/junit/org/apache/beehive/wsm/test/jsr181/model/AbstractModelTest.java
    beehive/trunk/wsm/test/src/junit/org/apache/beehive/wsm/test/jsr181/model/EndpointInterfaceServiceTest.java
    beehive/trunk/wsm/test/src/junit/org/apache/beehive/wsm/test/jsr181/model/ImplementationBeanServiceTest.java
    beehive/trunk/wsm/test/src/junit/org/apache/beehive/wsm/test/jsr181/wsdl/XmlBeanWSDLProcessorTest.java

Modified: beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/ServiceDescriptionFactory.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/ServiceDescriptionFactory.java?rev=365670&r1=365669&r2=365670&view=diff
==============================================================================
--- beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/ServiceDescriptionFactory.java (original)
+++ beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/ServiceDescriptionFactory.java Tue Jan  3 08:08:33 2006
@@ -22,6 +22,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Iterator;
+import java.util.Collection;
 import javax.jws.WebParam;
 import javax.jws.soap.SOAPBinding;
 import javax.wsdl.OperationType;
@@ -47,16 +48,15 @@
 import org.apache.axis.encoding.ser.ArrayDeserializerFactory;
 import org.apache.axis.encoding.ser.ArraySerializerFactory;
 import org.apache.axis.utils.BeanPropertyDescriptor;
-import org.apache.axis.utils.BeanUtils;
 import org.apache.axis.Constants;
 import org.apache.beehive.wsm.axis.databinding.AxisBindingLookupFactory;
 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.wsm.model.BeehiveWsMethodMetadata;
-import org.apache.beehive.wsm.model.BeehiveWsParameterMetadata;
-import org.apache.beehive.wsm.model.BeehiveWsSOAPBindingInfo;
-import org.apache.beehive.wsm.model.BeehiveWsTypeMetadata;
+import org.apache.beehive.wsm.model.WsmOperation;
+import org.apache.beehive.wsm.model.WsmParameter;
+import org.apache.beehive.wsm.model.WsmSoapBinding;
+import org.apache.beehive.wsm.model.WsmService;
 import org.apache.beehive.wsm.exception.InvalidTypeMappingException;
 import org.apache.beehive.wsm.util.JavaClassUtils;
 import org.apache.beehive.wsm.util.TypeUtils;
@@ -81,7 +81,7 @@
     /* Do not construct */
     private ServiceDescriptionFactory() {}
 
-    public ServiceDesc createServiceDescription(BeehiveWsTypeMetadata wsmServiceDesc, ClassLoader classLoader)
+    public ServiceDesc createServiceDescription(WsmService wsmServiceDesc, ClassLoader classLoader)
         throws ClassNotFoundException, InvalidTypeMappingException {
 
         JavaServiceDesc axisServiceDesc = new JavaServiceDesc();
@@ -101,7 +101,9 @@
         Create a list of the allowed methods
         */
         ArrayList<String> allowedMethods = new ArrayList<String>();
-        for(BeehiveWsMethodMetadata meth : wsmServiceDesc.getMethods()) {
+        List operations = wsmServiceDesc.getOperations();
+        for(int i = 0; i < operations.size(); i++) {
+            WsmOperation meth = (WsmOperation)operations.get(i);
             String method = meth.getJavaMethodName();
             allowedMethods.add(method);
         }
@@ -143,10 +145,9 @@
         /* todo: does this configure the service correctly? */
         axisServiceDesc.getOperations();
 
-        BeehiveWsMethodMetadata[] wsmOperationDescs = wsmServiceDesc.getMethods().toArray(new BeehiveWsMethodMetadata[0]);
-        for(int i = 0; i < wsmOperationDescs.length; i++) {
-            BeehiveWsMethodMetadata wsmOperationDesc = wsmOperationDescs[i];
-            String operationName = wsmOperationDesc.getWmOperationName();
+        for(int i = 0; i < operations.size(); i++) {
+            WsmOperation wsmOperationDesc = (WsmOperation)operations.get(i);
+            String operationName = wsmOperationDesc.getOperationName();
 
             OperationDesc axisOperationDesc = getOperationDesc(axisServiceDesc, wsmOperationDesc);
             assert axisOperationDesc != null : "Can not find method: " + operationName + " in webservice";
@@ -157,7 +158,7 @@
             */
             axisOperationDesc.setElementQName(new QName(targetNamespace, operationName));
             axisOperationDesc.setName(operationName);
-            axisOperationDesc.setSoapAction(wsmOperationDesc.getWmAction());
+            axisOperationDesc.setSoapAction(wsmOperationDesc.getAction());
 
             if(wsmOperationDesc.isOneWay())
                 axisOperationDesc.setMep(OperationType.ONE_WAY);
@@ -168,9 +169,9 @@
                 RPC style doesn't need name space for return type.
                 */
                 if(wsmServiceDesc.getSoapBinding().getStyle() == SOAPBinding.Style.DOCUMENT)
-                    namespace = wsmOperationDesc.getWrTargetNamespace();
+                    namespace = wsmOperationDesc.getTargetNamespace();
 
-                axisOperationDesc.setReturnQName(new QName(namespace, wsmOperationDesc.getWrName()));
+                axisOperationDesc.setReturnQName(new QName(namespace, wsmOperationDesc.getName()));
 
                 QName qn = null;
                 QName odReturnType = axisOperationDesc.getReturnType();
@@ -181,7 +182,7 @@
                 from the operation desc has a name space uri of soapenc, there is no need to
                 call configureTypeMapping since we already know the type.
                 */
-                BeehiveWsSOAPBindingInfo wsmSoapBinding = wsmServiceDesc.getSoapBinding();
+                WsmSoapBinding wsmSoapBinding = wsmServiceDesc.getSoapBinding();
                 if(wsmSoapBinding.getStyle() == SOAPBinding.Style.RPC && wsmSoapBinding.getUse() == SOAPBinding.Use.ENCODED) {
 
                     if(odReturnType != null
@@ -203,7 +204,7 @@
                         /* no-op: Axis will have already set the value correctly */
                     }
                     else {
-                        qn = configureTypeMapping(axisServiceDesc, returnType, wsmOperationDesc.getWrTargetNamespace());
+                        qn = configureTypeMapping(axisServiceDesc, returnType, wsmOperationDesc.getTargetNamespace());
                         axisOperationDesc.setReturnType(qn);
                         axisOperationDesc.setReturnClass(returnType);
                     }
@@ -218,16 +219,16 @@
             service interface / implementation to further configure the parameters Axis has already
             configured.
             */
-            BeehiveWsParameterMetadata[] wsmParameterDescs = wsmOperationDesc.getParams().toArray(new BeehiveWsParameterMetadata[0]);
-            for(int j = 0; j < wsmParameterDescs.length; j++) {
-                BeehiveWsParameterMetadata wsmParameterDesc = wsmParameterDescs[j];
+            List wsmParameters = wsmOperationDesc.getParameters();
+            for(int j = 0; j < wsmParameters.size(); j++) {
+                WsmParameter wsmParameterDesc = (WsmParameter)wsmParameters.get(j);
                 ParameterDesc axisParameterDesc = axisOperationDesc.getParameter(j);
 
                 final Class paramType = createClass(wsmParameterDesc.getJavaType());
 
                 if(axisParameterDesc.getTypeQName() == null) {
                     /* set the typeQName if it is not set already */
-                    QName typeQName = configureTypeMapping(axisServiceDesc, paramType, wsmParameterDesc.getWpTargetNamespace());
+                    QName typeQName = configureTypeMapping(axisServiceDesc, paramType, wsmParameterDesc.getTargetNamespace());
                     /*
                     jongjinchoi@apache.org 2005-Mar-16 -- The typeQName from configureTypeMapping() is not
                     dummy. This is required to find ArrayDeserializer when the document/literal bare array
@@ -243,13 +244,13 @@
                 for parameter names.
                 */
                 if(wsmServiceDesc.getSoapBinding().getStyle() == SOAPBinding.Style.DOCUMENT)
-                    namespace = wsmParameterDesc.getWpTargetNamespace();
+                    namespace = wsmParameterDesc.getTargetNamespace();
 
-                QName paramQName = new QName(namespace, wsmParameterDesc.getWpName());
+                QName paramQName = new QName(namespace, wsmParameterDesc.getName());
                 axisParameterDesc.setQName(paramQName);
 
-                final boolean header = wsmParameterDesc.isWpHeader();
-                final WebParam.Mode mode = wsmParameterDesc.getWpMode();
+                final boolean header = wsmParameterDesc.isHeader();
+                final WebParam.Mode mode = wsmParameterDesc.getMode();
                 switch(mode) {
                     case IN:
                         axisParameterDesc.setMode(ParameterDesc.IN);
@@ -288,7 +289,7 @@
                     continue;
                 }
 
-                QName qname = configureTypeMapping(axisServiceDesc, thrown, wsmOperationDesc.getWrTargetNamespace());
+                QName qname = configureTypeMapping(axisServiceDesc, thrown, wsmOperationDesc.getTargetNamespace());
                 fd.setXmlType(qname);
                 fd.setQName(qname);
                 fd.setComplex(true);
@@ -299,7 +300,7 @@
         return axisServiceDesc;
     }
 
-    private void configureSoapBinding(ServiceDesc serviceDesc, BeehiveWsSOAPBindingInfo soapBindingInfo) {
+    private void configureSoapBinding(ServiceDesc serviceDesc, WsmSoapBinding soapBindingInfo) {
         /* default SOAP binding style info */
         SOAPBinding.Style style = SOAPBinding.Style.DOCUMENT;
         SOAPBinding.Use use = SOAPBinding.Use.LITERAL;
@@ -334,7 +335,7 @@
      Method used to discover an Axis OperationDesc object given a WSM representation of a web service method.
      This uses a best-guess matching algorithm that matches the method parameter types.
      */
-    private OperationDesc getOperationDesc(ServiceDesc serviceDescription, BeehiveWsMethodMetadata methodMetadata) {
+    private OperationDesc getOperationDesc(ServiceDesc serviceDescription, WsmOperation methodMetadata) {
         assert serviceDescription != null;
         assert methodMetadata != null;
 
@@ -348,7 +349,7 @@
         if(operations.length == 1)
             return operations[0];
 
-        List methodParams = methodMetadata.getParams();
+        List methodParams = methodMetadata.getParameters();
         for(int i = 0; i < operations.length; i++) {
             OperationDesc opDesc = operations[i];
 
@@ -357,7 +358,7 @@
                 boolean match = true;
                 for(int j = 0; j < paramCount; j++) {
                     ParameterDesc paramDesc = opDesc.getParameter(j);
-                    BeehiveWsParameterMetadata wsParam = (BeehiveWsParameterMetadata)methodParams.get(j);
+                    WsmParameter wsParam = (WsmParameter)methodParams.get(j);
 
                     assert paramDesc != null;
                     assert wsParam != null;

Modified: beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/handlers/AnnotatedWebServiceDeploymentHandler.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/handlers/AnnotatedWebServiceDeploymentHandler.java?rev=365670&r1=365669&r2=365670&view=diff
==============================================================================
--- beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/handlers/AnnotatedWebServiceDeploymentHandler.java (original)
+++ beehive/trunk/wsm/src/axis/org/apache/beehive/wsm/axis/handlers/AnnotatedWebServiceDeploymentHandler.java Tue Jan  3 08:08:33 2006
@@ -40,8 +40,8 @@
 import org.apache.axis.utils.ClassUtils;
 import org.apache.beehive.wsm.axis.ServiceDescriptionFactory;
 import org.apache.beehive.wsm.axis.controls.ControlProvider;
-import org.apache.beehive.wsm.model.BeehiveWsSOAPMessageHandlerInfo;
-import org.apache.beehive.wsm.model.BeehiveWsTypeMetadata;
+import org.apache.beehive.wsm.model.WsmSoapMessageHandler;
+import org.apache.beehive.wsm.model.WsmService;
 import org.apache.beehive.wsm.model.jsr181.Jsr181ObjectModelStore;
 import org.apache.beehive.wsm.exception.InvalidTypeMappingException;
 import org.apache.commons.logging.Log;
@@ -102,7 +102,7 @@
 
         SOAPService ss = _soapServices.get(clazz.getName());
         if(ss == null) {
-            BeehiveWsTypeMetadata typeMetadata = null;
+            WsmService typeMetadata = null;
             try {
                 typeMetadata = Jsr181ObjectModelStore.load(clazz);
             }
@@ -127,7 +127,7 @@
      * @param cls
      * @return SOAPService
      */
-    private SOAPService createSOAPService(BeehiveWsTypeMetadata wsm, Class cls) {
+    private SOAPService createSOAPService(WsmService wsm, Class cls) {
 
         assert wsm != null : "Unable to create SOAPService since the WSM object model is null";
 
@@ -186,7 +186,7 @@
         return ss;
     }
 
-    private HandlerInfoChainFactory getJaxRPCHandlerChainFactory(BeehiveWsTypeMetadata wsm) {
+    private HandlerInfoChainFactory getJaxRPCHandlerChainFactory(WsmService wsm) {
 
         HandlerInfoChainFactory res = null;
         List handlers = wsm.getSoapHandlers();
@@ -197,7 +197,7 @@
 
             Iterator iterator = handlers.iterator();
             while(iterator.hasNext()) {
-                BeehiveWsSOAPMessageHandlerInfo handler = (BeehiveWsSOAPMessageHandlerInfo)iterator.next();
+                WsmSoapMessageHandler handler = (WsmSoapMessageHandler)iterator.next();
 
                 Class handlerClass = null;
                 try {
@@ -209,7 +209,7 @@
                         + "\".  Cause: " + e, e);
                 }
 
-                QName[] handlerHeaders = handler.getHeaders().toArray(new QName[0]);
+                QName[] handlerHeaders = (QName[])handler.getHeaders().toArray(new QName[0]);
                 infoList.add(new HandlerInfo(handlerClass, handler.getParameterMap(), handlerHeaders));
                 roles.addAll(handler.getRoles());
             }

Copied: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmOperation.java (from r359210, beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsMethodMetadata.java)
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmOperation.java?p2=beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmOperation.java&p1=beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsMethodMetadata.java&r1=359210&r2=365670&rev=365670&view=diff
==============================================================================
--- beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsMethodMetadata.java (original)
+++ beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmOperation.java Tue Jan  3 08:08:33 2006
@@ -18,48 +18,160 @@
 package org.apache.beehive.wsm.model;
 
 import java.util.List;
+import java.util.LinkedList;
+import java.util.Collections;
 import javax.xml.namespace.QName;
 
+import org.apache.beehive.wsm.util.JavaClassUtils;
+
 /**
  */
-public abstract class BeehiveWsMethodMetadata {
-
-    public abstract boolean isOneWay();
-
-    public abstract void setOneWay(boolean oneway);
-
-    public abstract String getWmAction();
-
-    public abstract void setWmAction(String wmAction);
-
-    public abstract String getWmOperationName();
-
-    public abstract void setWmOperationName(String wmOperationName);
-
-    public abstract String getWrName();
-
-    public abstract void setWrName(String wrName);
-
-    public abstract String getWrTargetNamespace();
-
-    public abstract void setWrTargetNamespace(String wrTargetNamespace);
-
-    public abstract List<BeehiveWsParameterMetadata> getParams();
-
-    public abstract void addParam(BeehiveWsParameterMetadata parameter);
-
-    public abstract void addParams(List<? extends BeehiveWsParameterMetadata> parameters);
-
-    public abstract BeehiveWsParameterMetadata findParam(String parmName);
-
-    public abstract String getJavaMethodName();
-
-    public abstract void setJavaMethodName(String methodName);
-
-    public abstract String getJavaReturnType();
-
-    public abstract QName getXmlReturnType();
-
-    public abstract void setXmlReturnType(QName xmlType);
+public class WsmOperation
+    implements java.io.Serializable {
 
-    public abstract void setReturnType(String javaType);}
\ No newline at end of file
+    private boolean _oneWay;
+    private String _action;
+    private String _name;
+    private String _operationName;
+    private String _targetNamespace;
+    private List _params = new LinkedList();
+    private String _javaMethodName;
+    private String _javaReturnType;
+    private QName _xmlReturnType;
+
+    public final String getJavaReturnTypeFullName() {
+        return JavaClassUtils.convertToReadableName(getJavaReturnType());
+    }
+
+    public void addParameter(WsmParameter parameter) {
+        assert parameter != null;
+        assert parameter.getJavaType() != null :
+            "Web service operation has \"" + _name + "\" has null Java parameter";
+
+        _params.add(parameter);
+    }
+
+    public WsmParameter findParameter(String paramName) {
+        for(int i = 0; i < _params.size(); i++) {
+            WsmParameter param = (WsmParameter)_params.get(i);
+            if(param.getName().equals(paramName))
+                return param;
+        }
+        return null;
+    }
+
+    public boolean isOneWay() {
+        return _oneWay;
+    }
+
+    public void setOneWay(boolean oneWay) {
+        _oneWay = oneWay;
+    }
+
+    public String getAction() {
+        return _action;
+    }
+
+    public void setAction(String action) {
+        _action = action;
+    }
+
+    public String getName() {
+        return _name;
+    }
+
+    public void setName(String name) {
+        _name = name;
+    }
+
+    public String getOperationName() {
+        return _operationName;
+    }
+
+    public void setOperationName(String operationName) {
+        _operationName = operationName;
+    }
+
+    public String getTargetNamespace() {
+        return _targetNamespace;
+    }
+
+    public void setTargetNamespace(String targetNamespace) {
+        _targetNamespace = targetNamespace;
+    }
+
+    public List getParameters() {
+        return Collections.unmodifiableList(_params);
+    }
+
+    public void setParameters(List params) {
+        _params = params;
+    }
+
+    public String getJavaMethodName() {
+        return _javaMethodName;
+    }
+
+    public void setJavaMethodName(String javaMethodName) {
+        _javaMethodName = javaMethodName;
+    }
+
+    public String getJavaReturnType() {
+        return _javaReturnType;
+    }
+
+    public void setJavaReturnType(String javaReturnType) {
+        _javaReturnType = javaReturnType;
+    }
+
+    public QName getXmlReturnType() {
+        return _xmlReturnType;
+    }
+
+    public void setXmlReturnType(QName xmlReturnType) {
+        _xmlReturnType = xmlReturnType;
+    }
+
+    public boolean equals(Object o) {
+        if (this == o)
+            return true;
+        if (o == null || getClass() != o.getClass())
+            return false;
+
+        final WsmOperation that = (WsmOperation)o;
+
+        if (_oneWay != that._oneWay)
+            return false;
+        if (_action != null ? !_action.equals(that._action) : that._action != null)
+            return false;
+        if (!_javaMethodName.equals(that._javaMethodName))
+            return false;
+        if (_javaReturnType != null ? !_javaReturnType.equals(that._javaReturnType) : that._javaReturnType != null)
+            return false;
+        if (!_name.equals(that._name))
+            return false;
+        if (_operationName != null ? !_operationName.equals(that._operationName) : that._operationName != null)
+            return false;
+        if (_params != null ? !_params.equals(that._params) : that._params != null) return false;
+        if (_targetNamespace != null ? !_targetNamespace.equals(that._targetNamespace) : that._targetNamespace != null)
+            return false;
+        if (_xmlReturnType != null ? !_xmlReturnType.equals(that._xmlReturnType) : that._xmlReturnType != null)
+            return false;
+
+        return true;
+    }
+
+    public int hashCode() {
+        int result;
+        result = (_oneWay ? 1 : 0);
+        result = 29 * result + (_action != null ? _action.hashCode() : 0);
+        result = 29 * result + (_name != null ? _name.hashCode() : 0);
+        result = 29 * result + (_operationName != null ? _operationName.hashCode() : 0);
+        result = 29 * result + (_targetNamespace != null ? _targetNamespace.hashCode() : 0);
+        result = 29 * result + (_params != null ? _params.hashCode() : 0);
+        result = 29 * result + _javaMethodName.hashCode();
+        result = 29 * result + (_javaReturnType != null ? _javaReturnType.hashCode() : 0);
+        result = 29 * result + (_xmlReturnType != null ? _xmlReturnType.hashCode() : 0);
+        return result;
+    }
+}
\ No newline at end of file

Propchange: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmOperation.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmParameter.java (from r359210, beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsParameterMetadata.java)
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmParameter.java?p2=beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmParameter.java&p1=beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsParameterMetadata.java&r1=359210&r2=365670&rev=365670&view=diff
==============================================================================
--- beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsParameterMetadata.java (original)
+++ beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmParameter.java Tue Jan  3 08:08:33 2006
@@ -17,34 +17,100 @@
  */
 package org.apache.beehive.wsm.model;
 
+import java.io.Serializable;
 import javax.jws.WebParam;
 import javax.xml.namespace.QName;
 
+import org.apache.beehive.wsm.util.JavaClassUtils;
+
 /**
  */
-public abstract class BeehiveWsParameterMetadata {
-
-    public abstract boolean isWpHeader();
-
-    public abstract void setWpHeader(boolean wpHeader);
-
-    public abstract WebParam.Mode getWpMode();
-
-    public abstract void setWpMode(WebParam.Mode wpMode);
-
-    public abstract String getWpName();
-
-    public abstract void setWpName(String wpName);
-
-    public abstract String getWpTargetNamespace();
-
-    public abstract void setWpTargetNamespace(String wpTargetNamespace);
-
-    public abstract String getJavaType();
-
-    public abstract void setJavaType(String javaType);
+public class WsmParameter
+    implements Serializable {
 
-    public abstract QName getXmlType();
+    private boolean _header;
+    private WebParam.Mode _mode;
+    private String _name;
+    private String _targetNamespace;
+    private String _javaType;
+    private QName _xmlType;
+
+    public boolean isHeader() {
+        return _header;
+    }
+
+    public void setHeader(boolean header) {
+        _header = header;
+    }
+
+    public WebParam.Mode getMode() {
+        return _mode;
+    }
+
+    public void setMode(WebParam.Mode mode) {
+        _mode = mode;
+    }
+
+    public String getName() {
+        return _name;
+    }
+
+    public void setName(String name) {
+        _name = name;
+    }
+
+    public String getTargetNamespace() {
+        return _targetNamespace;
+    }
+
+    public void setTargetNamespace(String targetNamespace) {
+        _targetNamespace = targetNamespace;
+    }
+
+    public String getJavaType() {
+        return _javaType;
+    }
+
+    public void setJavaType(String javaType) {
+        _javaType = javaType;
+    }
+
+    public QName getXmlType() {
+        return _xmlType;
+    }
+
+    public void setXmlType(QName xmlType) {
+        _xmlType = xmlType;
+    }
+
+    public String getJavaTypeName() {
+        return JavaClassUtils.convertToReadableName(_javaType);
+    }
+
+    public int hashCode() {
+        int result;
+        result = (_header ? 1 : 0);
+        result = 29 * result + (_mode != null ? _mode.hashCode() : 0);
+        result = 29 * result + (_name != null ? _name.hashCode() : 0);
+        result = 29 * result + (_targetNamespace != null ? _targetNamespace.hashCode() : 0);
+        result = 29 * result + (_javaType != null ? _javaType.hashCode() : 0);
+        result = 29 * result + (_xmlType != null ? _xmlType.hashCode() : 0);
+        return result;
+    }
+
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        final WsmParameter that = (WsmParameter) o;
+        if (_header != that._header) return false;
+        if (_javaType != null ? !_javaType.equals(that._javaType) : that._javaType != null) return false;
+        if (_mode != that._mode) return false;
+        if (_name != null ? !_name.equals(that._name) : that._name != null) return false;
+        if (_targetNamespace != null ? !_targetNamespace.equals(that._targetNamespace) : that._targetNamespace != null)
+            return false;
+        if (_xmlType != null ? !_xmlType.equals(that._xmlType) : that._xmlType != null) return false;
 
-    public abstract void setXmlType(QName xmlType);
+        return true;
+    }
 }

Propchange: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmParameter.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmService.java (from r359210, beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsTypeMetadata.java)
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmService.java?p2=beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmService.java&p1=beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsTypeMetadata.java&r1=359210&r2=365670&rev=365670&view=diff
==============================================================================
--- beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsTypeMetadata.java (original)
+++ beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmService.java Tue Jan  3 08:08:33 2006
@@ -19,48 +19,164 @@
 
 import java.util.Collection;
 import java.util.List;
+import java.util.LinkedList;
+import java.util.Collections;
+import javax.jws.soap.SOAPBinding;
+
+import org.apache.beehive.wsm.exception.ValidationException;
 
 /**
  */
-public abstract class BeehiveWsTypeMetadata {
-
-    public abstract BeehiveWsSOAPBindingInfo getSoapBinding();
-
-    public abstract void setSoapBinding(BeehiveWsSOAPBindingInfo soapBinding);
-
-    public abstract String getName();
-
-    public abstract void setName(String wsName);
-
-    public abstract String getServiceName();
-
-    public abstract void setServiceName(String wsServiceName);
-
-    public abstract String getTargetNamespace();
-
-    public abstract void setTargetNamespace(String wsTargetNamespace);
-
-    public abstract String getWsdlLocation();
-
-    public abstract void setWsdlLocation(String wsWsdlLocation);
-
-    public abstract Collection<? extends BeehiveWsMethodMetadata> getMethods();
-
-    public abstract BeehiveWsMethodMetadata getMethod(String methodName, String... paramTypes);
-
-    public abstract void setWsPortName(String wsPortName);
-
-    public abstract String getWsPortName();
-    
-    public abstract void addMethod(BeehiveWsMethodMetadata method);
-
-    public abstract void setSOAPHandlers(List soapHandlers);
-
-    public abstract List getSoapHandlers();
-
-    public abstract void addSOAPHandler(BeehiveWsSOAPMessageHandlerInfo handlerInfo);
+public class WsmService
+    implements java.io.Serializable {
 
-    public abstract String getServiceClassName();
+    private static final WsmSoapBinding DEFAULT_SOAP_BINDING;
 
-    public abstract void setServiceClassName(String className);
+    static {
+        DEFAULT_SOAP_BINDING = new WsmSoapBinding();
+        DEFAULT_SOAP_BINDING.setStyle(SOAPBinding.Style.DOCUMENT);
+        DEFAULT_SOAP_BINDING.setUse(SOAPBinding.Use.LITERAL);
+        DEFAULT_SOAP_BINDING.setParameterStyle(SOAPBinding.ParameterStyle.WRAPPED);
+    }
+
+    private String _name;
+    private String _serviceName;
+    private String _targetNamespace;
+    private String _portName;
+    private String _serviceClassName;
+    private String _wsdlLocation;
+    private LinkedList _soapHandlers = new LinkedList();
+    private LinkedList _operations = new LinkedList();
+    private WsmSoapBinding _soapBinding;
+
+    public WsmSoapBinding getSoapBinding() {
+        return _soapBinding != null ? _soapBinding : DEFAULT_SOAP_BINDING;
+    }
+
+    public void setSoapBinding(WsmSoapBinding soapBinding) {
+        _soapBinding = soapBinding;
+    }
+
+    public String getName() {
+        return _name;
+    }
+
+    public void setName(String name) {
+        _name = name;
+    }
+
+    public String getServiceName() {
+        return _serviceName;
+    }
+
+    public void setServiceName(String serviceName) {
+        _serviceName = serviceName;
+    }
+
+    public String getTargetNamespace() {
+        return _targetNamespace;
+    }
+
+    public void setTargetNamespace(String targetNamespace) {
+        _targetNamespace = targetNamespace;
+    }
+
+    public String getWsdlLocation() {
+        return _wsdlLocation;
+    }
+
+    public void setWsdlLocation(String wsdlLocation) {
+        _wsdlLocation = wsdlLocation;
+    }
+
+    public String getPortName() {
+        return _portName;
+    }
+
+    public void setPortName(String portName) {
+        _portName = portName;
+    }
+
+    public void addSoapHandler(WsmSoapMessageHandler handler) {
+        _soapHandlers.add(handler);
+    }
+
+    public List getSoapHandlers() {
+        return Collections.unmodifiableList(_soapHandlers);
+    }
+
+    public String getServiceClassName() {
+        return _serviceClassName;
+    }
+
+    public void setServiceClassName(String serviceClassName) {
+        _serviceClassName = serviceClassName;
+    }
+
+    public List getOperations() {
+        return Collections.unmodifiableList(_operations);
+    }
+
+    public WsmOperation getOperation(String methodName, String... paramTypes) {
+        for(int i = 0; i < _operations.size(); i++) {
+            WsmOperation op = (WsmOperation)_operations.get(i);
+            if(!op.getOperationName().equals(methodName))
+                continue;
+
+            List paramList = op.getParameters();
+            if(!(paramTypes.length == paramList.size()))
+                continue;
+
+            for(int j = 0; j < paramList.size(); j++) {
+                String op1ParamType = ((WsmParameter)paramList.get(j)).getJavaType();
+                String op2ParamType = paramTypes[j];
+                if(!op1ParamType.equals(op2ParamType))
+                    continue;
+            }
+
+            return op;
+        }
+        return null;
+    }
+
+    public void addOperation(WsmOperation method) {
+        /* validate that the operation name isn't duplicated */
+
+        boolean isDocumentStyle = getSoapBinding().getStyle().equals(SOAPBinding.Style.DOCUMENT);
+
+        for(int i = 0; i < _operations.size(); i++) {
+            WsmOperation op = (WsmOperation)_operations.get(i);
+
+            boolean signaturesMatch = signaturesMatch(op, method);
+
+            if(signaturesMatch) {
+                throw new ValidationException("Operation \"" + method.getOperationName() + "\" is already present in the web service");
+            }
+            else if(isDocumentStyle && op.getOperationName().equals(method.getOperationName())) {
+                throw new ValidationException("Operation \"" + method.getOperationName() + "\" already exists; document style does not allow duplicated operation names");
+            }
+        }
+
+        _operations.add(method);
+    }
+
+    private boolean signaturesMatch(WsmOperation op1, WsmOperation op2) {
+        List op1Params = op1.getParameters();
+        List op2Params = op2.getParameters();
+
+        if(!op1.getOperationName().equals(op2.getOperationName()))
+            return false;
+
+        if(op1Params.size() != op2Params.size())
+            return false;
+
+        for(int i = 0; i < op1Params.size(); i++) {
+            String op1ParamType = ((WsmParameter)op1Params.get(i)).getJavaType();
+            String op2ParamType = ((WsmParameter)op2Params.get(i)).getJavaType();
+
+            if(!op1ParamType.equals(op2ParamType))
+                return false;
+        }
+        return true;
+    }
 }

Propchange: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmService.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmSoapBinding.java (from r359210, beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsSOAPBindingInfo.java)
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmSoapBinding.java?p2=beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmSoapBinding.java&p1=beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsSOAPBindingInfo.java&r1=359210&r2=365670&rev=365670&view=diff
==============================================================================
--- beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsSOAPBindingInfo.java (original)
+++ beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmSoapBinding.java Tue Jan  3 08:08:33 2006
@@ -21,35 +21,74 @@
 
 /**
  */
-public abstract class BeehiveWsSOAPBindingInfo {
-    
-    /**
-     * @return Returns the parameterStyle.
-     */
-    public abstract SOAPBinding.ParameterStyle getParameterStyle();
+public class WsmSoapBinding
+    implements java.io.Serializable {
 
-    /**
-     * @param parameterStyle The parameterStyle to set.
-     */
-    public abstract void setParameterStyle(SOAPBinding.ParameterStyle parameterStyle);
+    /* todo: setting these defaults here is dangerous as it doesn't guarantee
+       that these values are the same as those encoded in the annotations defined
+       in JSR 181.  If defaults are going to be set in this web service model,
+       they need to be documented.
+     */
+    private SOAPBinding.Style _style = SOAPBinding.Style.DOCUMENT;
+    private SOAPBinding.Use _use = SOAPBinding.Use.LITERAL;
+    private SOAPBinding.ParameterStyle _parameterStyle = SOAPBinding.ParameterStyle.WRAPPED;
 
-    /**
-     * @return Returns the style.
-     */
-    public abstract SOAPBinding.Style getStyle();
+    public SOAPBinding.Style getStyle() {
+        return _style;
+    }
 
-    /**
-     * @param style The style to set.
-     */
-    public abstract void setStyle(SOAPBinding.Style style);
+    public void setStyle(SOAPBinding.Style style) {
+        _style = style;
+    }
 
-    /**
-     * @return Returns the use.
-     */
-    public abstract SOAPBinding.Use getUse();
+    public SOAPBinding.Use getUse() {
+        return _use;
+    }
 
-    /**
-     * @param use The use to set.
-     */
-    public abstract void setUse(SOAPBinding.Use use);
+    public void setUse(SOAPBinding.Use use) {
+        _use = use;
+    }
+
+    public SOAPBinding.ParameterStyle getParameterStyle() {
+        return _parameterStyle;
+    }
+
+    public void setParameterStyle(SOAPBinding.ParameterStyle parameterStyle) {
+        _parameterStyle = parameterStyle;
+    }
+
+    public int hashCode() {
+        int result;
+        result = (_style != null ? _style.hashCode() : 0);
+        result = 29 * result + (_use != null ? _use.hashCode() : 0);
+        result = 29 * result + (_parameterStyle != null ? _parameterStyle.hashCode() : 0);
+        return result;
+    }
+
+    public boolean equals(Object o) {
+        if (this == o)
+            return true;
+
+        if (o == null || getClass() != o.getClass())
+            return false;
+
+        final WsmSoapBinding that = (WsmSoapBinding) o;
+        if (_parameterStyle != that._parameterStyle) return false;
+        if (_style != that._style) return false;
+        if (_use != that._use) return false;
+
+        return true;
+    }
+
+    public String toString() {
+        StringBuffer buf = new StringBuffer(32);
+        buf.append("SOAPBinding: [");
+        buf.append(_style);
+        buf.append("/");
+        buf.append(_use);
+        buf.append("/");
+        buf.append(_parameterStyle);
+        buf.append("]");
+        return buf.toString();
+    }
 }

Propchange: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmSoapBinding.java
------------------------------------------------------------------------------
    svn:eol-style = native

Copied: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmSoapMessageHandler.java (from r359210, beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsSOAPMessageHandlerInfo.java)
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmSoapMessageHandler.java?p2=beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmSoapMessageHandler.java&p1=beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsSOAPMessageHandlerInfo.java&r1=359210&r2=365670&rev=365670&view=diff
==============================================================================
--- beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/BeehiveWsSOAPMessageHandlerInfo.java (original)
+++ beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmSoapMessageHandler.java Tue Jan  3 08:08:33 2006
@@ -19,53 +19,69 @@
 
 import java.util.Collection;
 import java.util.Map;
+import java.util.LinkedList;
+import java.util.HashMap;
+import java.util.Collections;
 
 /**
  */
-public abstract class BeehiveWsSOAPMessageHandlerInfo {
+public class WsmSoapMessageHandler {
 
-    /**
-     * @return Returns the className.
-     */
-    public abstract String getClassName();
-
-    /**
-     * @param className The className to set.
-     */
-    public abstract void setClassName(String className);
-
-    /**
-     * @return Returns the name.
-     */
-    public abstract String getName();
-
-    /**
-     * @param name The name to set.
-     */
-    public abstract void setName(String name);
-
-    /**
-     * @return Returns the headers.
-     */
-    public abstract Collection<String> getHeaders();
-
-    public abstract void addHeader(String header);
-
-    /**
-     * @return Returns the params.
-     */
-    public abstract Map<String, String> getParameterMap();
-
-    public abstract void addInitParam(String key, String value);
-
-    public abstract void addInitParams(Map<String, String> params);
-
-    /**
-     * @return Returns the roles.
-     */
-    public abstract Collection<String> getRoles();
-
-    public abstract void addRole(String role);
-
-    public abstract void addRoles(Collection<String> roles);
+    private String _className;
+    private String _name;
+    private Collection _headers = new LinkedList();
+    private Map _parameterMap = new HashMap();
+    private Collection _roles = new LinkedList();
+
+    public void addHeader(String header) {
+        _headers.add(header);
+    }
+
+    public void addInitParam(String key, String value) {
+        _parameterMap.put(key, value);
+    }
+
+    public void addRole(String role) {
+        _roles.add(role);
+    }
+
+    public String getClassName() {
+        return _className;
+    }
+
+    public void setClassName(String className) {
+        _className = className;
+    }
+
+    public String getName() {
+        return _name;
+    }
+
+    public void setName(String name) {
+        _name = name;
+    }
+
+    public Collection getHeaders() {
+        return Collections.unmodifiableCollection(_headers);
+    }
+
+    public void setHeaders(Collection headers) {
+        _headers = headers;
+    }
+
+    public Map getParameterMap() {
+        return Collections.unmodifiableMap(_parameterMap);
+    }
+
+    public void setParameterMap(Map parameterMap) {
+        _parameterMap = parameterMap;
+    }
+
+    public Collection getRoles() {
+        return Collections.unmodifiableCollection(_roles);
+    }
+
+    public void setRoles(Collection roles) {
+        _roles = roles;
+    }
 }

Propchange: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/WsmSoapMessageHandler.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/jsr181/Jsr181ObjectModelStore.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/jsr181/Jsr181ObjectModelStore.java?rev=365670&r1=365669&r2=365670&view=diff
==============================================================================
--- beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/jsr181/Jsr181ObjectModelStore.java (original)
+++ beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/jsr181/Jsr181ObjectModelStore.java Tue Jan  3 08:08:33 2006
@@ -18,7 +18,6 @@
 package org.apache.beehive.wsm.model.jsr181;
 
 import java.io.File;
-import java.io.FilenameFilter;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.ObjectInputStream;
@@ -30,7 +29,7 @@
 
 import com.sun.mirror.apt.AnnotationProcessorEnvironment;
 import com.sun.mirror.apt.Filer;
-import org.apache.beehive.wsm.model.BeehiveWsTypeMetadata;
+import org.apache.beehive.wsm.model.WsmService;
 import org.apache.beehive.wsm.exception.ObjectModelStoreException;
 
 /**
@@ -50,7 +49,7 @@
      * @throws IOException
      * @throws ClassNotFoundException
      */
-    public static BeehiveWsTypeMetadata load(Class clazz)
+    public static WsmService load(Class clazz)
         throws IOException, ClassNotFoundException {
 
         String resourceName = getLocation(clazz.getName()).toString();
@@ -60,7 +59,7 @@
         if(url == null)
             throw new IOException("Unable to load URL for object model represented by '" + resourceName + "'");
 
-        BeehiveWsTypeMetadata typeMetadata = null;
+        WsmService typeMetadata = null;
         InputStream is = null;
         try {
             is = url.openStream();
@@ -78,17 +77,17 @@
      * @throws IOException
      * @throws ClassNotFoundException
      */
-    public static final BeehiveWsTypeMetadata load(InputStream is)
+    public static final WsmService load(InputStream is)
         throws IOException, ClassNotFoundException {
 
         if(null == is)
             throw new IOException("cannot load object model without input stream");
 
-        BeehiveWsTypeMetadata objectModel = null;
+        WsmService objectModel = null;
         ObjectInputStream ois = null;
         try {
             ois = new ObjectInputStream(is);
-            objectModel = (BeehiveWsTypeMetadata)ois.readObject();
+            objectModel = (WsmService)ois.readObject();
         }
         finally {
             if(null != ois)
@@ -102,7 +101,7 @@
      *
      * @param objectModel The object mode to be persisted.
      */
-    public static void store(AnnotationProcessorEnvironment env, BeehiveWsTypeMetadata objectModel) {
+    public static void store(AnnotationProcessorEnvironment env, WsmService objectModel) {
 
         if(objectModel == null)
             throw new ObjectModelStoreException("Can not persist empty object model");

Modified: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/wsdl/XmlBeanWSDLProcessor.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/wsdl/XmlBeanWSDLProcessor.java?rev=365670&r1=365669&r2=365670&view=diff
==============================================================================
--- beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/wsdl/XmlBeanWSDLProcessor.java (original)
+++ beehive/trunk/wsm/src/core/org/apache/beehive/wsm/model/wsdl/XmlBeanWSDLProcessor.java Tue Jan  3 08:08:33 2006
@@ -26,14 +26,10 @@
 import javax.xml.namespace.QName;
 
 import org.apache.beehive.wsm.databinding.BindingLookupStrategy;
-import org.apache.beehive.wsm.model.BeehiveWsMethodMetadata;
-import org.apache.beehive.wsm.model.BeehiveWsParameterMetadata;
-import org.apache.beehive.wsm.model.BeehiveWsSOAPBindingInfo;
-import org.apache.beehive.wsm.model.BeehiveWsTypeMetadata;
-import org.apache.beehive.wsm.model.impl.DefaultMethodMetadataImpl;
-import org.apache.beehive.wsm.model.impl.DefaultParameterMetadataImpl;
-import org.apache.beehive.wsm.model.impl.DefaultSOAPBindingInfoImpl;
-import org.apache.beehive.wsm.model.impl.DefaultTypeMetadataImpl;
+import org.apache.beehive.wsm.model.WsmOperation;
+import org.apache.beehive.wsm.model.WsmParameter;
+import org.apache.beehive.wsm.model.WsmSoapBinding;
+import org.apache.beehive.wsm.model.WsmService;
 import org.apache.beehive.wsm.util.JavaClassUtils;
 import org.apache.xmlbeans.SchemaType;
 import org.apache.xmlbeans.XmlObject;
@@ -52,13 +48,12 @@
 import org.xmlsoap.schemas.wsdl.TPart;
 import org.xmlsoap.schemas.wsdl.TPort;
 import org.xmlsoap.schemas.wsdl.TPortType;
-import org.xmlsoap.schemas.wsdl.TService;
 import org.xmlsoap.schemas.wsdl.TTypes;
 import org.xmlsoap.schemas.wsdl.soap.TStyleChoice;
 import org.xmlsoap.schemas.wsdl.soap.UseChoice;
 
 /**
- * A factory that produces a {@link BeehiveWsTypeMetadata} object model representing a web service.  This
+ * A factory that produces a {@link WsmService} object model representing a web service.  This
  * class also provides a set of operations for determining the service name, etc from a WSDL.
  */
 /*
@@ -119,18 +114,18 @@
         return map;
     }
 */
-    public BeehiveWsTypeMetadata getObjectModel()
+    public WsmService getObjectModel()
         throws Exception {
 
-        BeehiveWsTypeMetadata wsm = new DefaultTypeMetadataImpl();
-        HashMap<String, BeehiveWsMethodMetadata> methodMap = new HashMap<String, BeehiveWsMethodMetadata>();
+        WsmService wsm = new WsmService();
+        HashMap<String, WsmOperation> methodMap = new HashMap<String, WsmOperation>();
         TDefinitions defs = _defDoc.getDefinitions();
         wsm.setTargetNamespace(defs.getTargetNamespace());
         Map<String, TPart[]> messageMap = new HashMap<String, TPart[]>();
 
         if(defs.sizeOfServiceArray() > 0) {
             wsm.setServiceName(defs.getServiceArray(0).getName());
-            wsm.setWsPortName(defs.getServiceArray(0).getPortArray(0).getName());
+            wsm.setPortName(defs.getServiceArray(0).getPortArray(0).getName());
         }
 
         if(defs.sizeOfMessageArray() > 0) {
@@ -205,17 +200,17 @@
     }
 
     private void processTOperation(TOperation op,
-                                   BeehiveWsTypeMetadata wsm,
-                                   Map<String, BeehiveWsMethodMetadata> methodMap,
+                                   WsmService wsm,
+                                   Map<String, WsmOperation> methodMap,
                                    Map<String, TPart[]> messageMap,
                                    TTypes types)
         throws Exception {
         String opName = op.getName();
         TParam outputParam = op.getOutput();
 
-        Map<String, BeehiveWsParameterMetadata> outParamMap = null;
+        Map<String, WsmParameter> outParamMap = null;
 
-        BeehiveWsParameterMetadata[] paraMeta = new BeehiveWsParameterMetadata[0];  // defualt value
+        WsmParameter[] paraMeta = new WsmParameter[0];  // defualt value
         if(null != outputParam) {
             TPart[] messageParts = messageMap.get(outputParam.getMessage().getLocalPart());
             // output parameters are not wrapped
@@ -243,19 +238,19 @@
         }
 
         if(paraMeta.length > 0) {
-            outParamMap = new LinkedHashMap<String, BeehiveWsParameterMetadata>(paraMeta.length);
-            for(BeehiveWsParameterMetadata cpm : paraMeta) {
-                outParamMap.put(cpm.getWpName(), cpm);
+            outParamMap = new LinkedHashMap<String, WsmParameter>(paraMeta.length);
+            for(WsmParameter cpm : paraMeta) {
+                outParamMap.put(cpm.getName(), cpm);
             }
         }
 
-        BeehiveWsMethodMetadata wmm = new DefaultMethodMetadataImpl();
+        WsmOperation wmm = new WsmOperation();
         wmm.setJavaMethodName(opName);
-        wmm.setReturnType(returnType);
+        wmm.setJavaReturnType(returnType);
         wmm.setXmlReturnType(returnXMLType);
-        wmm.setWmOperationName(opName);
+        wmm.setOperationName(opName);
         // FIXME jcolwell@bea.com 2004-Nov-10 -- do something better with the action
-        wmm.setWmAction(opName);
+        wmm.setAction(opName);
 
         if(void.class.getName().equals(returnType)) {
             // FIXME jcolwell@bea.com 2004-Nov-22 -- also check for faults before setting as oneway.
@@ -263,8 +258,8 @@
                 wmm.setOneWay(true);
         }
         else {
-            wmm.setWrName(paraMeta[0].getWpName());
-            wmm.setWrTargetNamespace(paraMeta[0].getWpTargetNamespace());
+            wmm.setName(paraMeta[0].getName());
+            wmm.setTargetNamespace(paraMeta[0].getTargetNamespace());
         }
 
         methodMap.put(opName, wmm);
@@ -274,51 +269,51 @@
         if(inputParam != null) {
             TPart[] messageParts = messageMap.get(inputParam.getMessage().getLocalPart());
 
-            BeehiveWsParameterMetadata[] params = processParameters(opName, messageParts, types, wsm, false);
+            WsmParameter[] params = processParameters(opName, messageParts, types, wsm, false);
 
             if(paramOrder != null) {
                 // Paramorder is only used for rpc AND doc/lit/bare.  if there is a paramoder then order
                 // the parameters, remove all the in/out parameters from the out map
                 for(Object ord : paramOrder) {
-                    for(BeehiveWsParameterMetadata wpm : params) {
-                        if(ord.equals(wpm.getWpName())) {
-                            if(outParamMap != null && outParamMap.containsKey(wpm.getWpName())) {
-                                outParamMap.remove(wpm.getWpName());
+                    for(WsmParameter wpm : params) {
+                        if(ord.equals(wpm.getName())) {
+                            if(outParamMap != null && outParamMap.containsKey(wpm.getName())) {
+                                outParamMap.remove(wpm.getName());
                                 // important...if this param is in.out it was in the out list also, so removeit.
-                                wpm.setWpMode(WebParam.Mode.INOUT);
+                                wpm.setMode(WebParam.Mode.INOUT);
                                 // if only one param and it is INOUT adjust the method description accordingly
                                 if (params.length == 1) {
-                                    wmm.setReturnType(Void.TYPE.getName());
+                                    wmm.setJavaReturnType(Void.TYPE.getName());
                                     wmm.setXmlReturnType(null);
                                 }
                             }
                             else {
-                                wpm.setWpMode(WebParam.Mode.IN);
+                                wpm.setMode(WebParam.Mode.IN);
                             }
-                            wmm.addParam(wpm);
+                            wmm.addParameter(wpm);
                             break;
                         }
                     }
                 }
             }
             else if(params.length > 0) {
-                for(BeehiveWsParameterMetadata wpm : params) {
+                for(WsmParameter wpm : params) {
                     // FIXME jcolwell@bea.com 2005-Jan-04 --
                     // Double check DOC/Lit rules
-                    if(outParamMap != null && outParamMap.containsKey(wpm.getWpName())) {
-                        outParamMap.remove(wpm.getWpName());
+                    if(outParamMap != null && outParamMap.containsKey(wpm.getName())) {
+                        outParamMap.remove(wpm.getName());
                         // important...if this param is in.out it was in the out list also, so remove it.
-                        wpm.setWpMode(WebParam.Mode.INOUT);
+                        wpm.setMode(WebParam.Mode.INOUT);
                         // if only one param and it is INOUT adjust the method description accordingly
                         if (params.length == 1) {
-                            wmm.setReturnType(Void.TYPE.getName());
+                            wmm.setJavaReturnType(Void.TYPE.getName());
                             wmm.setXmlReturnType(null);
                         }
                     }
                     else {
-                        wpm.setWpMode(WebParam.Mode.IN);
+                        wpm.setMode(WebParam.Mode.IN);
                     }
-                    wmm.addParam(wpm);
+                    wmm.addParameter(wpm);
                 }
             }
         }
@@ -326,26 +321,26 @@
         // do the pure out parameters.
         if(outParamMap != null && outParamMap.size() > 0) {
             if(outParamMap.size() == 1) {
-                BeehiveWsParameterMetadata wpm = outParamMap.values().iterator().next();
+                WsmParameter wpm = outParamMap.values().iterator().next();
                 wmm.setXmlReturnType(wpm.getXmlType());
-                wmm.setReturnType(wpm.getJavaType());
+                wmm.setJavaReturnType(wpm.getJavaType());
                 wmm.setOneWay(false);
             }
             else {
-                for(BeehiveWsParameterMetadata wpm : outParamMap.values()) {
-                    wpm.setWpMode(WebParam.Mode.OUT);
-                    wmm.addParam(wpm);
+                for(WsmParameter wpm : outParamMap.values()) {
+                    wpm.setMode(WebParam.Mode.OUT);
+                    wmm.addParameter(wpm);
                 }
             }
         }
 
-        wsm.addMethod(wmm);
+        wsm.addOperation(wmm);
     }
 
-    private BeehiveWsParameterMetadata[] processParameters(String operationName,
+    private WsmParameter[] processParameters(String operationName,
                                                            TPart[] messageParts,
                                                            TTypes types,
-                                                           BeehiveWsTypeMetadata wsm,
+                                                           WsmService wsm,
                                                            boolean isOutputParameters) {
 
         // When  you have parts of the message in the header,   you would have multiple wsdl:part.  In case of
@@ -363,7 +358,7 @@
 
         final boolean shouldUnwrap = isWrapped(operationName, messageParts, isOutputParameters);
 
-        List<BeehiveWsParameterMetadata> paramList = new ArrayList<BeehiveWsParameterMetadata>(messageParts.length);
+        List<WsmParameter> paramList = new ArrayList<WsmParameter>(messageParts.length);
         for(TPart messagePart : messageParts) {
             /*
             if element attribute is set we are looking at document style in case of rpc message part would look
@@ -446,9 +441,9 @@
                                         {
                                             // doc / lit / bare
                                             if (els != null && els.length == 1) {
-                                                BeehiveWsParameterMetadata  pm = elementToParamMetaData(s.getTargetNamespace(), els[0]);
+                                                WsmParameter  pm = elementToParamMetaData(s.getTargetNamespace(), els[0]);
                                                 if (JavaClassUtils.isArray(pm.getJavaType())) {
-                                                    pm.setWpName(e.getName());
+                                                    pm.setName(e.getName());
                                                     paramList.add(pm);
                                                     paramAdded = true;
                                                 }
@@ -480,9 +475,9 @@
                                         {
                                             // doc / lit / bare
                                             if (els != null && els.length == 1) {
-                                                BeehiveWsParameterMetadata  pm = elementToParamMetaData(s.getTargetNamespace(), els[0]);
+                                                WsmParameter  pm = elementToParamMetaData(s.getTargetNamespace(), els[0]);
                                                 if (JavaClassUtils.isArray(pm.getJavaType())) {
-                                                    pm.setWpName(e.getName());
+                                                    pm.setName(e.getName());
                                                     paramList.add(pm);
                                                     paramAdded = true;
                                                 }
@@ -516,20 +511,20 @@
                     if(!paramStyleIsSet)   // Only set the style to bare if it hasn't been done in previous parts processing
                         wsm.getSoapBinding().setParameterStyle(SOAPBinding.ParameterStyle.BARE);
 
-                    BeehiveWsParameterMetadata wpm = new DefaultParameterMetadataImpl();
-                    wpm.setWpTargetNamespace(element.getNamespaceURI());
-                    wpm.setWpName(name);    //  NAME SHOULD BE THE NAME OF THE MESSAGE PART. element.getLocalPart());
+                    WsmParameter wpm = new WsmParameter();
+                    wpm.setTargetNamespace(element.getNamespaceURI());
+                    wpm.setName(name);    //  NAME SHOULD BE THE NAME OF THE MESSAGE PART. element.getLocalPart());
                     wpm.setXmlType(element);
                     wpm.setJavaType(javaType);
                     paramList.add(wpm);
                 }
             }
             else { // this is an rpc and with no element attribute
-                BeehiveWsParameterMetadata wpm = new DefaultParameterMetadataImpl();
+                WsmParameter wpm = new WsmParameter();
                 // FIXME jcolwell@bea.com 2004-Nov-09 -- figure out where
                 // RPC parameter namespaces should be specified in the WSDL.
-                wpm.setWpTargetNamespace(wsm.getTargetNamespace());
-                wpm.setWpName(messagePart.getName());
+                wpm.setTargetNamespace(wsm.getTargetNamespace());
+                wpm.setName(messagePart.getName());
                 QName type = messagePart.getType();
                 wpm.setXmlType(type);
                 wpm.setJavaType(findClassForQname(type));
@@ -537,7 +532,7 @@
             }
         }
 
-        return paramList.toArray(new BeehiveWsParameterMetadata[paramList.size()]);
+        return paramList.toArray(new WsmParameter[paramList.size()]);
     }
 
     private String findClassForQname(QName element) {
@@ -611,13 +606,14 @@
      * @param targetNamespace
      * @param el
      */
-    private BeehiveWsParameterMetadata elementToParamMetaData(String targetNamespace, Element el) {
-        BeehiveWsParameterMetadata wpm = new DefaultParameterMetadataImpl();
+    private WsmParameter elementToParamMetaData(String targetNamespace, Element el) {
+        WsmParameter wpm = new WsmParameter();
+
         // FIXME
         // jcolwell@bea.com
         // 2004-Nov-09
         // double check the namespace stuff
-        wpm.setWpTargetNamespace(targetNamespace);
+        wpm.setTargetNamespace(targetNamespace);
         boolean isArray = false;
         if(el.isSetMaxOccurs()) {
             if(0 != "1".compareTo(el.getMaxOccurs().toString()))
@@ -652,16 +648,16 @@
         if(isArray)
             javaType += "[]";
 
-        wpm.setWpName(name);
+        wpm.setName(name);
         wpm.setXmlType(xmlType);
         wpm.setJavaType(javaType);
         return wpm;
     }
 
-    private void processTBinding(TBinding tBind, BeehiveWsTypeMetadata wsm) {
+    private void processTBinding(TBinding tBind, WsmService wsm) {
 
         org.xmlsoap.schemas.wsdl.soap.TBinding[] soapBinding = getSOAPBinding(tBind);
-        BeehiveWsSOAPBindingInfo soapInfo = new DefaultSOAPBindingInfoImpl();
+        WsmSoapBinding soapInfo = new WsmSoapBinding();
         if(soapBinding != null && soapBinding.length > 0) {
             if(TStyleChoice.RPC.equals(soapBinding[0].getStyle())) {
                 soapInfo.setStyle(SOAPBinding.Style.RPC);
@@ -671,17 +667,17 @@
     }
 
     private void processTBindingOperation(TBinding tBind,
-                                          BeehiveWsTypeMetadata wsm,
-                                          Map<String, BeehiveWsMethodMetadata> methodMap) {
+                                          WsmService wsm,
+                                          Map<String, WsmOperation> methodMap) {
 
         TBindingOperation[] tBops = tBind.getOperationArray();
         for(TBindingOperation tBop : tBops) {
-            BeehiveWsMethodMetadata wmm = methodMap.get(tBop.getName());
+            WsmOperation wmm = methodMap.get(tBop.getName());
             if(wmm == null)
                 throw new RuntimeException("Invalid method name: " + tBop.getName());
             org.xmlsoap.schemas.wsdl.soap.TOperation[] soapOperations = getSOAPOperations(tBop);
             if(soapOperations != null && soapOperations.length > 0) {
-                wmm.setWmAction(soapOperations[0].getSoapAction());
+                wmm.setAction(soapOperations[0].getSoapAction());
             }
             TBindingOperationMessage tbMsg = tBop.getInput();
             if(tbMsg == null) {
@@ -693,7 +689,7 @@
                     if(wsm.getTargetNamespace() == null) {
                         wsm.setTargetNamespace(bodies[0].getNamespace());
                     }
-                    BeehiveWsSOAPBindingInfo soapInfo = wsm.getSoapBinding();
+                    WsmSoapBinding soapInfo = wsm.getSoapBinding();
                     if(UseChoice.ENCODED.equals(bodies[0].getUse())) {
                         soapInfo.setUse(SOAPBinding.Use.ENCODED);
                     }
@@ -709,7 +705,7 @@
     /**
      * @param tbMsg
      */
-    private void setSoapHeaders(BeehiveWsMethodMetadata wmm, TBindingOperationMessage tbMsg) {
+    private void setSoapHeaders(WsmOperation wmm, TBindingOperationMessage tbMsg) {
         if(null == tbMsg) return;
 
         // get the header
@@ -720,9 +716,10 @@
                 String part = nxtHeader.getPart();
                 if(part == null)
                     throw new RuntimeException("Missing part attribute in soap:header method: " + tbMsg.getName());
-                BeehiveWsParameterMetadata argument = wmm.findParam(part);
+
+                WsmParameter argument = wmm.findParameter(part);
                 if(argument == null) throw new RuntimeException("Couldn't find part name: " + part + " in method " + wmm.getJavaMethodName());
-                argument.setWpHeader(true);
+                argument.setHeader(true);
             }
         }
     }

Modified: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/generator/AxisGenerator.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/generator/AxisGenerator.java?rev=365670&r1=365669&r2=365670&view=diff
==============================================================================
--- beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/generator/AxisGenerator.java (original)
+++ beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/generator/AxisGenerator.java Tue Jan  3 08:08:33 2006
@@ -20,7 +20,7 @@
 import com.sun.mirror.declaration.TypeDeclaration;
 import com.sun.mirror.util.SourcePosition;
 import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import org.apache.beehive.wsm.model.BeehiveWsTypeMetadata;
+import org.apache.beehive.wsm.model.WsmService;
 import org.apache.beehive.wsm.model.jsr181.Jsr181ObjectModelStore;
 import org.apache.beehive.wsm.processor.model.factory.BeehiveWsMetadataFactory;
 import org.apache.beehive.wsm.processor.model.factory.BeehiveWsTypeMetadataFactory;
@@ -49,7 +49,7 @@
         TypeResolver typeResolver = MirrorTypeResolver.getInstance(env);
 
         SourcePosition position = typeDecl.getPosition();
-        BeehiveWsTypeMetadata wsImplMetadata = factory.create(serviceBeanClassName,
+        WsmService wsImplMetadata = factory.create(serviceBeanClassName,
                                                               typeResolver,
                                                               position.file().getParent());
 

Modified: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/BeehiveWsTypeMetadataFactory.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/BeehiveWsTypeMetadataFactory.java?rev=365670&r1=365669&r2=365670&view=diff
==============================================================================
--- beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/BeehiveWsTypeMetadataFactory.java (original)
+++ beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/BeehiveWsTypeMetadataFactory.java Tue Jan  3 08:08:33 2006
@@ -17,11 +17,11 @@
  */
 package org.apache.beehive.wsm.processor.model.factory;
 
-import org.apache.beehive.wsm.model.BeehiveWsTypeMetadata;
+import org.apache.beehive.wsm.model.WsmService;
 
 public abstract class BeehiveWsTypeMetadataFactory {
 
-    public abstract BeehiveWsTypeMetadata create(String serviceBeanClassName,
+    public abstract WsmService create(String serviceBeanClassName,
                                                  TypeResolver typeResolver,
                                                  String baseLocation);
 }

Modified: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/mirror/MirrorFactoryImpl.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/mirror/MirrorFactoryImpl.java?rev=365670&r1=365669&r2=365670&view=diff
==============================================================================
--- beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/mirror/MirrorFactoryImpl.java (original)
+++ beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/mirror/MirrorFactoryImpl.java Tue Jan  3 08:08:33 2006
@@ -22,7 +22,6 @@
 import java.io.IOException;
 import java.net.URL;
 import java.net.MalformedURLException;
-import java.util.Arrays;
 import java.util.Iterator;
 import java.util.List;
 import javax.jws.WebService;
@@ -43,28 +42,23 @@
 
 import org.apache.beehive.wsm.processor.model.factory.BeehiveWsTypeMetadataFactory;
 import org.apache.beehive.wsm.processor.model.factory.TypeResolver;
-import org.apache.beehive.wsm.model.BeehiveWsTypeMetadata;
-import org.apache.beehive.wsm.model.BeehiveWsMethodMetadata;
-import org.apache.beehive.wsm.model.BeehiveWsParameterMetadata;
-import org.apache.beehive.wsm.model.BeehiveWsSOAPBindingInfo;
-import org.apache.beehive.wsm.model.BeehiveWsSOAPMessageHandlerInfo;
-import org.apache.beehive.wsm.model.impl.DefaultTypeMetadataImpl;
-import org.apache.beehive.wsm.model.impl.DefaultMethodMetadataImpl;
-import org.apache.beehive.wsm.model.impl.DefaultParameterMetadataImpl;
-import org.apache.beehive.wsm.model.impl.DefaultSOAPBindingInfoImpl;
-import org.apache.beehive.wsm.model.impl.DefaultSOAPMessageHandlerInfoImpl;
+import org.apache.beehive.wsm.model.WsmService;
+import org.apache.beehive.wsm.model.WsmOperation;
+import org.apache.beehive.wsm.model.WsmParameter;
+import org.apache.beehive.wsm.model.WsmSoapBinding;
+import org.apache.beehive.wsm.model.WsmSoapMessageHandler;
 import org.apache.beehive.wsm.exception.Jsr181ValidationException;
 import org.apache.beehive.wsm.exception.IllegalHandlerConfigException;
 import org.apache.beehive.wsm.util.HandlerChainParser;
 
 /**
- * This class is used to create a {@link BeehiveWsTypeMetadata} object model given
+ * This class is used to create a {@link WsmService} object model given
  * type metadata available via Java 5's annotation processing infrastructure.  The
  * Mirror classes provide the type system used to read annotations at bulid time.
  *
  * This class will work on TypeDeclarations (a Mirror representation of a Class, Interface, etc)
  * to read annotations and other processed type metadata such as methods, parameters, etc.  The
- * combination of a TypeDeclaration and "Mirror"-ed metadata is processed into the BeehiveWsTypeMetadata
+ * combination of a TypeDeclaration and "Mirror"-ed metadata is processed into the WsmService
  * object model.
  *
  * The client is responsible for performing code generation, serializing, etc the object model.
@@ -75,10 +69,10 @@
     private static final String SERVICE_SUFFIX = "Service";
     private static final String DEFAULT_WR_NAME = "return";
 
-    public BeehiveWsTypeMetadata create(String serviceBeanClassName,
+    public WsmService create(String serviceBeanClassName,
                                         TypeResolver typeResolver,
                                         String baseLocation) {
-        BeehiveWsTypeMetadata wsMetadata = new DefaultTypeMetadataImpl();
+        WsmService wsMetadata = new WsmService();
 
         TypeDeclaration implDecl = (TypeDeclaration)typeResolver.resolveType(serviceBeanClassName);
 
@@ -131,7 +125,7 @@
         return wsMetadata;
     }
 
-    private void processClass(BeehiveWsTypeMetadata wsMetadata, TypeDeclaration typeDecl, String baseLocation) {
+    private void processClass(WsmService wsMetadata, TypeDeclaration typeDecl, String baseLocation) {
         WebService ws = typeDecl.getAnnotation(WebService.class);
 
         wsMetadata.setServiceClassName(typeDecl.getQualifiedName());
@@ -156,7 +150,7 @@
         /* annot: SOAPBinding.class */
         SOAPBinding soapBinding = typeDecl.getAnnotation(SOAPBinding.class);
         if(soapBinding != null) {
-            BeehiveWsSOAPBindingInfo soapBindingInfo = new DefaultSOAPBindingInfoImpl();
+            WsmSoapBinding soapBindingInfo = new WsmSoapBinding();
             soapBindingInfo.setStyle(soapBinding.style());
             soapBindingInfo.setUse(soapBinding.use());
             soapBindingInfo.setParameterStyle(soapBinding.parameterStyle());
@@ -168,24 +162,27 @@
                  interface, the implementation's version wins */
         SOAPMessageHandlers soapMessageHandlers = typeDecl.getAnnotation(SOAPMessageHandlers.class);
         if(soapMessageHandlers != null) {
-            for(SOAPMessageHandler soapMessageHandler : soapMessageHandlers.value()) {
-                BeehiveWsSOAPMessageHandlerInfo soapMessageHandlerInfo = new DefaultSOAPMessageHandlerInfoImpl(soapMessageHandler);
+            for(SOAPMessageHandler soapMessageHandlerAnnot : soapMessageHandlers.value()) {
+                WsmSoapMessageHandler soapMessageHandlerInfo = new WsmSoapMessageHandler();
 
-                String className = soapMessageHandler.className();
+                String className = soapMessageHandlerAnnot.className();
                 soapMessageHandlerInfo.setClassName(className);
 
-                if(soapMessageHandler.name() != null && soapMessageHandler.name().length() > 0)
-                    soapMessageHandlerInfo.setName(soapMessageHandler.name());
+                if(soapMessageHandlerAnnot.name() != null && soapMessageHandlerAnnot.name().length() > 0)
+                    soapMessageHandlerInfo.setName(soapMessageHandlerAnnot.name());
                 else soapMessageHandlerInfo.setName(className);
 
-                for(InitParam p : soapMessageHandler.initParams())
+                for(InitParam p : soapMessageHandlerAnnot.initParams())
                     soapMessageHandlerInfo.addInitParam(p.name(), p.value());
 
-                soapMessageHandlerInfo.addRoles(Arrays.asList(soapMessageHandler.roles()));
-                for(String s : soapMessageHandler.headers())
-                    soapMessageHandlerInfo.addHeader(s);
+                String[] roles = soapMessageHandlerAnnot.roles();
+                for(String role : roles)
+                    soapMessageHandlerInfo.addRole(role);
 
-                wsMetadata.addSOAPHandler(soapMessageHandlerInfo);
+                for(String header : soapMessageHandlerAnnot.headers())
+                    soapMessageHandlerInfo.addHeader(header);
+
+                wsMetadata.addSoapHandler(soapMessageHandlerInfo);
             }
         }
 
@@ -197,22 +194,22 @@
             configureHandlerChain(handlerChain, wsMetadata, baseLocation);
     }
 
-    private void processMethod(BeehiveWsTypeMetadata wsMetadata, MethodDeclaration methodDecl) {
+    private void processMethod(WsmService wsMetadata, MethodDeclaration methodDecl) {
         if(!methodDecl.getModifiers().contains(Modifier.PUBLIC))
             return;
 
         WebMethod webMethod = methodDecl.getAnnotation(WebMethod.class);
         String methodName = methodDecl.getSimpleName();
 
-        BeehiveWsMethodMetadata wsMethod = new DefaultMethodMetadataImpl();
-        wsMethod.setReturnType(methodDecl.getReturnType().toString());
+        WsmOperation wsMethod = new WsmOperation();
+        wsMethod.setJavaReturnType(methodDecl.getReturnType().toString());
         wsMethod.setJavaMethodName(methodName);
-        wsMethod.setWrName(DEFAULT_WR_NAME);
+        wsMethod.setName(DEFAULT_WR_NAME);
 
         WebResult webResult = methodDecl.getAnnotation(WebResult.class);
         if(webResult != null) {
-            wsMethod.setWrName(webResult.name());
-            wsMethod.setWrTargetNamespace(webResult.targetNamespace());
+            wsMethod.setName(webResult.name());
+            wsMethod.setTargetNamespace(webResult.targetNamespace());
         }
 
         Oneway oneway = methodDecl.getAnnotation(Oneway.class);
@@ -221,48 +218,48 @@
         }
 
         if(webMethod != null) {
-            wsMethod.setWmAction(webMethod.action());
-            wsMethod.setWmOperationName(webMethod.operationName());
+            wsMethod.setAction(webMethod.action());
+            wsMethod.setOperationName(webMethod.operationName());
         }
 
-        if(wsMethod.getWmOperationName() == null || wsMethod.getWmOperationName().length() == 0)
-            wsMethod.setWmOperationName(methodName);
+        if(wsMethod.getOperationName() == null || wsMethod.getOperationName().length() == 0)
+            wsMethod.setOperationName(methodName);
 
-        if(wsMethod.getWmAction() == null || wsMethod.getWmAction().length() == 0)
-            wsMethod.setWmAction("");
+        if(wsMethod.getAction() == null || wsMethod.getAction().length() == 0)
+            wsMethod.setAction("");
 
         /* fill-in the targetNamespace from the @WebService annotation */
         /* todo: it seems that this information should come from the parent so that the targetNamespace
                  is stored in *exactly* one place rather than 1 + # of WebMethods
          */
-        String webMethodNamespace = wsMethod.getWrTargetNamespace();
+        String webMethodNamespace = wsMethod.getTargetNamespace();
         if(webMethodNamespace == null || webMethodNamespace.length() == 0)
-            wsMethod.setWrTargetNamespace(wsMetadata.getTargetNamespace());
+            wsMethod.setTargetNamespace(wsMetadata.getTargetNamespace());
 
         for(ParameterDeclaration paramDecl : methodDecl.getParameters()) {
-            BeehiveWsParameterMetadata wsParam = new DefaultParameterMetadataImpl();
+            WsmParameter wsParam = new WsmParameter();
 
             wsParam.setJavaType(paramDecl.getType().toString());
-            wsParam.setWpName(paramDecl.getSimpleName());
-            wsParam.setWpMode(WebParam.Mode.IN);
+            wsParam.setName(paramDecl.getSimpleName());
+            wsParam.setMode(WebParam.Mode.IN);
 
             WebParam webParam = paramDecl.getAnnotation(WebParam.class);
             if(webParam != null) {
                 if(!webParam.name().equals(""))
-                    wsParam.setWpName(webParam.name());
-                wsParam.setWpTargetNamespace(webParam.targetNamespace());
-                wsParam.setWpMode(webParam.mode());
-                wsParam.setWpHeader(webParam.header());
+                    wsParam.setName(webParam.name());
+                wsParam.setTargetNamespace(webParam.targetNamespace());
+                wsParam.setMode(webParam.mode());
+                wsParam.setHeader(webParam.header());
             }
 
-            String wpTargetNamespace = wsParam.getWpTargetNamespace();
+            String wpTargetNamespace = wsParam.getTargetNamespace();
             if(wpTargetNamespace == null || wpTargetNamespace.length() == 0)
-                wsParam.setWpTargetNamespace(wsMetadata.getTargetNamespace());
+                wsParam.setTargetNamespace(wsMetadata.getTargetNamespace());
 
-            wsMethod.addParam(wsParam);
+            wsMethod.addParameter(wsParam);
         }
 
-        wsMetadata.addMethod(wsMethod);
+        wsMetadata.addOperation(wsMethod);
     }
 
     /**
@@ -270,7 +267,7 @@
      * @throws IllegalHandlerConfigException when the given file does not exist, is invalid, or some other runtime error occurs
      *                                       during processing.
      */
-    private void configureHandlerChain(HandlerChain handlerChain, BeehiveWsTypeMetadata wsMetadata, String baseLocation) {
+    private void configureHandlerChain(HandlerChain handlerChain, WsmService wsMetadata, String baseLocation) {
         /*
         todo: need to figure out if URLs are the right thing to use here.  the spec says
         that URLs are relative (at the time of processing) or absolute.  how does
@@ -300,8 +297,9 @@
             xmlInputStream = chainConfigURL.openStream();
 
             List soapHandlers = HandlerChainParser.getInstance().parse(xmlInputStream, xmlResourcePath);
-
-            wsMetadata.setSOAPHandlers(soapHandlers);
+            for(int i = 0; i < soapHandlers.size(); i++) {
+                wsMetadata.addSoapHandler((WsmSoapMessageHandler)soapHandlers.get(i));
+            }
         }
         catch(Exception e) {
             throw new IllegalHandlerConfigException("Exception parsing handler config file.  Cause: " + e, e);

Modified: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/reflection/ReflectionFactoryImpl.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/reflection/ReflectionFactoryImpl.java?rev=365670&r1=365669&r2=365670&view=diff
==============================================================================
--- beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/reflection/ReflectionFactoryImpl.java (original)
+++ beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/reflection/ReflectionFactoryImpl.java Tue Jan  3 08:08:33 2006
@@ -19,12 +19,12 @@
 
 import org.apache.beehive.wsm.processor.model.factory.BeehiveWsTypeMetadataFactory;
 import org.apache.beehive.wsm.processor.model.factory.TypeResolver;
-import org.apache.beehive.wsm.model.BeehiveWsTypeMetadata;
+import org.apache.beehive.wsm.model.WsmService;
 
 class ReflectionFactoryImpl
     extends BeehiveWsTypeMetadataFactory {
 
-    public BeehiveWsTypeMetadata create(String serviceBeanClassName,
+    public WsmService create(String serviceBeanClassName,
                                         TypeResolver typeResolver,
                                         String baseLocation) {
         /* todo: implement */

Modified: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/wsdl/WSDLFactoryImpl.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/wsdl/WSDLFactoryImpl.java?rev=365670&r1=365669&r2=365670&view=diff
==============================================================================
--- beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/wsdl/WSDLFactoryImpl.java (original)
+++ beehive/trunk/wsm/src/core/org/apache/beehive/wsm/processor/model/factory/wsdl/WSDLFactoryImpl.java Tue Jan  3 08:08:33 2006
@@ -19,12 +19,12 @@
 
 import org.apache.beehive.wsm.processor.model.factory.BeehiveWsTypeMetadataFactory;
 import org.apache.beehive.wsm.processor.model.factory.TypeResolver;
-import org.apache.beehive.wsm.model.BeehiveWsTypeMetadata;
+import org.apache.beehive.wsm.model.WsmService;
 
 class WSDLFactoryImpl
     extends BeehiveWsTypeMetadataFactory {
 
-    public BeehiveWsTypeMetadata create(String serviceBeanClassName,
+    public WsmService create(String serviceBeanClassName,
                                         TypeResolver typeResolver,
                                         String baseLocation) {
         /* todo: implement */

Modified: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/tools/wsdl2ajava/Model2AJava.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/core/org/apache/beehive/wsm/tools/wsdl2ajava/Model2AJava.java?rev=365670&r1=365669&r2=365670&view=diff
==============================================================================
--- beehive/trunk/wsm/src/core/org/apache/beehive/wsm/tools/wsdl2ajava/Model2AJava.java (original)
+++ beehive/trunk/wsm/src/core/org/apache/beehive/wsm/tools/wsdl2ajava/Model2AJava.java Tue Jan  3 08:08:33 2006
@@ -21,7 +21,7 @@
 import java.io.Writer;
 import java.util.Properties;
 
-import org.apache.beehive.wsm.model.BeehiveWsTypeMetadata;
+import org.apache.beehive.wsm.model.WsmService;
 import org.apache.beehive.wsm.exception.CodeGenerationException;
 import org.apache.velocity.Template;
 import org.apache.velocity.VelocityContext;
@@ -31,7 +31,7 @@
 
 /**
  * This class performs model to annotated Java code generation.  The model processed
- * here is an instance of {@link BeehiveWsTypeMetadata}.
+ * here is an instance of {@link WsmService}.
  */
 public final class Model2AJava {
 
@@ -58,9 +58,11 @@
         }
     }
 
-    public static void generateAnnotatedJavaFromOM(BeehiveWsTypeMetadata om, File baseSrcDir) {
+    public static void generateAnnotatedJavaFromOM(WsmService webService, File baseSrcDir) {
 
-        String className = om.getName();
+        System.out.println("web service: " + webService);
+        
+        String className = webService.getName();
         assert className != null : "Found null class name";
 
         /*
@@ -88,7 +90,7 @@
             writer = new FileWriter(srcFile, false);
 
             VelocityContext context = new VelocityContext();
-            context.put(VELOCITY_CONTEXT_KEY_WEB_SERVICE, om);
+            context.put(VELOCITY_CONTEXT_KEY_WEB_SERVICE, webService);
             TEMPLATE.merge(context, writer);
         }
         catch(Exception e) {

Modified: beehive/trunk/wsm/src/core/org/apache/beehive/wsm/tools/wsdl2ajava/Wsdl2AJava.java
URL: http://svn.apache.org/viewcvs/beehive/trunk/wsm/src/core/org/apache/beehive/wsm/tools/wsdl2ajava/Wsdl2AJava.java?rev=365670&r1=365669&r2=365670&view=diff
==============================================================================
--- beehive/trunk/wsm/src/core/org/apache/beehive/wsm/tools/wsdl2ajava/Wsdl2AJava.java (original)
+++ beehive/trunk/wsm/src/core/org/apache/beehive/wsm/tools/wsdl2ajava/Wsdl2AJava.java Tue Jan  3 08:08:33 2006
@@ -22,7 +22,7 @@
 
 import org.apache.beehive.wsm.databinding.BindingLookupStrategy;
 import org.apache.beehive.wsm.databinding.BindingLookupFactory;
-import org.apache.beehive.wsm.model.BeehiveWsTypeMetadata;
+import org.apache.beehive.wsm.model.WsmService;
 import org.apache.beehive.wsm.model.wsdl.XmlBeanWSDLProcessor;
 import org.apache.beehive.wsm.tools.wsdl2ajava.Model2AJava;
 import org.apache.beehive.wsm.wsdl.Utilities;
@@ -64,7 +64,7 @@
             return;
         }
 
-        BeehiveWsTypeMetadata om;
+        WsmService om;
         try {
             om = processor.getObjectModel();
             Model2AJava.generateAnnotatedJavaFromOM(om, baseDir);