You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by de...@apache.org on 2005/05/03 13:43:04 UTC

svn commit: r167898 - /webservices/axis/trunk/java/modules/core/samples/deployment /webservices/axis/trunk/java/modules/core/samples/deployment/service1/META-INF /webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment /webservices/axis/trunk/java/modules/core/src/org/apache/axis/description /webservices/axis/trunk/java/modules/core/src/org/apache/axis/phaseresolver

Author: deepal
Date: Tue May  3 04:42:46 2005
New Revision: 167898

URL: http://svn.apache.org/viewcvs?rev=167898&view=rev
Log:
Deployment refactoring , introducing MEP based messageRecievers . Build might faild will fix soon :)

Modified:
    webservices/axis/trunk/java/modules/core/samples/deployment/server.xml
    webservices/axis/trunk/java/modules/core/samples/deployment/service1/META-INF/service.xml
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentConstants.java
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/server.xml
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisGlobal.java
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisOperation.java
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/phaseresolver/PhaseResolver.java

Modified: webservices/axis/trunk/java/modules/core/samples/deployment/server.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/samples/deployment/server.xml?rev=167898&r1=167897&r2=167898&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/samples/deployment/server.xml (original)
+++ webservices/axis/trunk/java/modules/core/samples/deployment/server.xml Tue May  3 04:42:46 2005
@@ -1,4 +1,6 @@
 <server name ="AxisJava2.0" >
+    <messageReciver map="name"  impl="abcs"/>
+
     <phaseOrder type="inflow">
         <phase name="global"/>
         <phase name="transport"/>

Modified: webservices/axis/trunk/java/modules/core/samples/deployment/service1/META-INF/service.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/samples/deployment/service1/META-INF/service.xml?rev=167898&r1=167897&r2=167898&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/samples/deployment/service1/META-INF/service.xml (original)
+++ webservices/axis/trunk/java/modules/core/samples/deployment/service1/META-INF/service.xml Tue May  3 04:42:46 2005
@@ -1,4 +1,4 @@
-<service messageReceiver="org.apache.axis.receivers.RawXMLINOutMessageRecevier" style="rpc" contextPath="services">
+<service name="">
 
     <parameter name="ServiceClass" locked="xsd:false">org.apache.axis.sample.echo.EchoImpl</parameter>
 
@@ -16,7 +16,10 @@
         <handler name="logging2" class="org.apache.axis.sample.handlers.LoggingHandler"/>
     </Outfaultflow>
 
-    <operation name="echoString"/>
+    <operation name="echoString">
+        <module ref="module1"/>
+        <messageReceiver class="org.apache.axis.receivers.RawXMLINOutMessageRecevier"/>
+    </operation>
     <operation name="echoStringArray"/>
     <operation name="echoEchoStruct"/>
     <operation name="echoEchoStructArray"/>

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentConstants.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentConstants.java?rev=167898&r1=167897&r2=167898&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentConstants.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentConstants.java Tue May  3 04:42:46 2005
@@ -61,6 +61,7 @@
     // for operatiins
     String ATQNAME = "name";
     String ATUSE = "use";
+    String MEP = "mep";
 
     //for handlers
     String REF = "ref";

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java?rev=167898&r1=167897&r2=167898&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java Tue May  3 04:42:46 2005
@@ -38,6 +38,7 @@
 import org.apache.axis.description.ParameterImpl;
 import org.apache.axis.engine.AxisFault;
 import org.apache.axis.engine.EngineConfigurationImpl;
+import org.apache.axis.engine.MessageReceiver;
 import org.apache.axis.transport.TransportReceiver;
 import org.apache.axis.transport.TransportSender;
 
@@ -88,7 +89,6 @@
                     String ST = pullparser.getLocalName();
                     if (ST.equals(SERVICEXMLST)) {
                         procesServiceXML(axisService);
-                        axisService.setName(new QName(getAxisServiceName(dpengine.getCurrentFileItem().getServiceName())));
                     }
                     break;
                 }
@@ -125,6 +125,37 @@
                         dpengine.getEngineconfig().addTransportIn(transportin);
                     } else if (TYPEMAPPINGST.equals(ST)) {
                         throw new UnsupportedOperationException("Type Mappings are not allowed in server.xml");
+                    } else if (MEP.equals(ST)){
+                        int attribCount = pullparser.getAttributeCount();
+                        if (attribCount == 2) {
+                            String attname = pullparser.getAttributeLocalName(1);
+                            String attvalue = pullparser.getAttributeValue(1);
+                            if(MEP.equals(attname)){
+                                String name = attvalue;
+                                attname = pullparser.getAttributeLocalName(2);
+                                attvalue = pullparser.getAttributeValue(2);
+                                if(CLASSNAME.equals(attname)){
+                                    try {
+                                        Class messageReceiver = null;
+                                        ClassLoader loader1 = Thread.currentThread().getContextClassLoader();
+                                        if (attvalue != null && !"".equals(attvalue)) {
+                                            messageReceiver = Class.forName(attvalue, true, loader1);
+                                            axisGlobal.addMessageReceiver(name,(MessageReceiver)messageReceiver.newInstance());
+                                        }
+                                    } catch (ClassNotFoundException e) {
+                                        throw new DeploymentException("Error in loading messageRecivers " + e.getMessage());
+                                    } catch (IllegalAccessException e) {
+                                        throw new DeploymentException("Error in loading messageRecivers " + e.getMessage());
+                                    } catch (InstantiationException e) {
+                                        throw new DeploymentException("Error in loading messageRecivers " + e.getMessage());
+                                    }
+                                }  else
+                                    throw new UnsupportedOperationException("invalid attributes in server.xml (messageReceiver elemet) " + attname);
+                            }  else
+                                throw new UnsupportedOperationException("invalid attributes in server.xml (messageReceiver elemet) " + attname);
+                        }else
+                            throw new UnsupportedOperationException("invalid attributes in server.xml (messageReceiver elemet)");
+
                     } else if (MODULEST.equals(ST)) {
                         int attribCount = pullparser.getAttributeCount();
                         if (attribCount > 0) {
@@ -309,33 +340,23 @@
      */
     private void procesServiceXML(AxisService axisService) throws DeploymentException {
         int attribCount = pullparser.getAttributeCount();
-        boolean foundMR = false;
         if (attribCount >= 1) {
             for (int i = 0; i < attribCount; i++) {
                 String attname = pullparser.getAttributeLocalName(i);
                 String attvalue = pullparser.getAttributeValue(i);
-                if (MESSAGERECEIVER.equals(attname)) {
-                    dpengine.getCurrentFileItem().setMessgeReceiver(attvalue);
-                    foundMR = true;
-                } else if (STYLENAME.equals(attname)) {
-                    axisService.setStyle(attvalue);
-                } else if (CONTEXTPATHNAME.equals(attname)) {
-                    axisService.setContextPath(getValue(attvalue));
+                if (ATQNAME.equals(attname)) {
+                    if(attname == null || attname.trim() =="") {
+                        axisService.setName(new QName(getAxisServiceName(dpengine.getCurrentFileItem().getServiceName())));
+                    }  else
+                        axisService.setName(new QName(attvalue));
                 } else {
                     throw new DeploymentException("Bad arguments for the service" + axisService.getName());
                 }
             }
-        } else
-            throw new DeploymentException("Bad arguments" + axisService.getName());
-        if (!foundMR) {
-            throw new DeploymentException("Message Receiver dose not specify " + axisService.getName());
+        } else {
+            //if user dose not specify the service name then the default name will be the archive name
+            axisService.setName(new QName(getAxisServiceName(dpengine.getCurrentFileItem().getServiceName())));
         }
-
-        //*********************************************************************************************//
-        // This is to process remainng part of the document
-        /**
-         * to check whether the End tage of the document has met
-         */
         boolean END_DOCUMENT = false;
         try {
             while (!END_DOCUMENT) {
@@ -593,45 +614,57 @@
         //  String name = pullparser.getLocalName();
         AxisOperation operation = new AxisOperation();
         int attribCount = pullparser.getAttributeCount();
-        if (attribCount < 5) {  // there should be two attributes
+        if (attribCount >0) {  // there should be two attributes
             for (int i = 0; i < attribCount; i++) {
                 String attname = pullparser.getAttributeLocalName(i);
                 String attvalue = pullparser.getAttributeValue(i);
                 if (ATTNAME.equals(attname)) {
                     operation.setName(new QName(attvalue));
-                } else if (ATQNAME.equals(attname)) {
-                    //TODO fill this after getting the reply for the mail
-                    //operation.setQname(attvalue);
-                } else if (STYLENAME.equals(attname)) {
-                    //TODO to be implementd after clarfing style
-                    //operation.setStyle(attvalue);
-                } else if (ATUSE.equals(attname)) {
-                    //TODO this is to be implemnt
-                    //  operation.setUse(attvalue);
-                }
+                }  else
+                    throw new DeploymentException("bad attribute in operation " + attname);
             }
-        } else {
-            throw new DeploymentException("bad parameter arguments");
         }
-
         boolean END_OPERATION = false;
         try {
             while (!END_OPERATION) {
                 int eventType = pullparser.next();
                 if (eventType == XMLStreamConstants.END_DOCUMENT) {
-// document end tag met , break the loop
-// but the doc end tag wont meet here :)
                     END_OPERATION = true;
                 } else if (eventType == XMLStreamConstants.START_ELEMENT) {
                     String ST = pullparser.getLocalName();
                     if (MODULEXMLST.equals(ST)) {
-                        throw new UnsupportedOperationException("nexted elements are not allowed for M1");
+                        attribCount = pullparser.getAttributeCount();
+                        if (attribCount > 0) {
+                            for (int i = 0; i < attribCount; i++) {
+                                String attname = pullparser.getAttributeLocalName(i);
+                                String attvalue = pullparser.getAttributeValue(i);
+                                if (REF.equals(attname)) {
+                                    if (dpengine.getModule(new QName(attvalue)) == null) {
+                                        throw new DeploymentException(ST + " module is invalid or dose not have bean deployed");
+                                    } else
+                                        operation.addModule(new QName(attvalue));
+                                }
+                            }
+                        }
                     } else if (IN_FAILTFLOW.equals(ST)) {
                         throw new UnsupportedOperationException("nexted elements are not allowed for M1");
                     } else if (INFLOWST.equals(ST)) {
                         throw new UnsupportedOperationException("nexted elements are not allowed for M1");
                     } else if (OUTFLOWST.equals(ST)) {
                         throw new UnsupportedOperationException("nexted elements are not allowed for M1");
+                    }else if (MESSAGERECEIVER.equals(ST)){
+                        attribCount = pullparser.getAttributeCount();
+                        if(attribCount > 0){
+                            String attname = pullparser.getAttributeLocalName(1);
+                            String attvalue = pullparser.getAttributeValue(1);
+                            if(CLASSNAME.equals(attname)){
+                                operation.setMessageReciever(attvalue);
+                            } else {
+                                throw new UnsupportedOperationException(attname +   " is not allowed in messageRecievr element");
+                            }
+                        }  else {
+                            //todo   if user dose not specify the messageReciever then the defaullt one has to be used
+                        }
                     }
 
                 } else if (eventType == XMLStreamConstants.END_ELEMENT) {
@@ -644,6 +677,8 @@
             }
         } catch (XMLStreamException e) {
             throw new DeploymentException("parser Exception", e);
+        } catch (AxisFault e){
+            throw new DeploymentException("Axis fault , loading module", e);
         }
         return operation;
     }
@@ -685,7 +720,6 @@
         int attribCount = pullparser.getAttributeCount();
         boolean ref_name = false;
         boolean foundClass = false;
-
         if (attribCount > 0) {
             for (int i = 0; i < attribCount; i++) {
                 String attname = pullparser.getAttributeLocalName(i);

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/server.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/server.xml?rev=167898&r1=167897&r2=167898&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/server.xml (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/server.xml Tue May  3 04:42:46 2005
@@ -2,6 +2,8 @@
     <parameter name="hotdeployment" locked="xsd:false">true</parameter>
     <parameter name="hotupdate" locked="xsd:false">true</parameter>
 
+    <messageReceiver mep="" class=""/>
+
     <transportReceiver name="http">
     </transportReceiver>
     <transportSender name="http" class="org.apache.axis.transport.http.HTTPTransportSender">

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisGlobal.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisGlobal.java?rev=167898&r1=167897&r2=167898&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisGlobal.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisGlobal.java Tue May  3 04:42:46 2005
@@ -1,23 +1,26 @@
 /*
- * Copyright 2004,2005 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.
- */
+* Copyright 2004,2005 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 org.apache.axis.description;
 
+import org.apache.axis.engine.MessageReceiver;
+
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
+import java.util.HashMap;
 
 import javax.xml.namespace.QName;
 
@@ -44,6 +47,8 @@
      */
     protected final List modules;
 
+    protected HashMap messagRecievers;
+
     // TODO provide a way to store name (name attribute value server.xml)
 
     /**
@@ -52,6 +57,16 @@
     public AxisGlobal() {
         paramInclude = new ParameterIncludeImpl();
         modules = new ArrayList();
+        messagRecievers = new HashMap();
+    }
+    
+
+    public void addMessageReceiver(String key ,MessageReceiver messageReceiver){
+        messagRecievers.put(key,messageReceiver) ;
+    }
+
+    public MessageReceiver getMessageReceiver(String key){
+        return (MessageReceiver)messagRecievers.get(key);
     }
 
     /**
@@ -91,5 +106,5 @@
         paramInclude.addParameter(param);
     }
 
- 
+
 }

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisOperation.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisOperation.java?rev=167898&r1=167897&r2=167898&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisOperation.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisOperation.java Tue May  3 04:42:46 2005
@@ -2,6 +2,8 @@
 
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Collection;
+import java.util.ArrayList;
 
 import javax.xml.namespace.QName;
 
@@ -18,12 +20,18 @@
  */
 public class AxisOperation extends WSDLOperationImpl implements
 		ParameterInclude, WSDLOperation,DescriptionConstants {
-	
-	
+
+
+    private HashMap modules;
+
+    private String messageReciever;
+
 	public AxisOperation(){
         this.setMessageExchangePattern(MEP_URI_IN_OUT);
 		this.setComponentProperty(PARAMETER_KEY, new ParameterIncludeImpl());
         this.setComponentProperty(MEP_MAP, new HashMap());
+        this.setComponentProperty(MODULEREF_KEY, new ArrayList());
+        modules = new HashMap();
 	}
 	
 	public AxisOperation(QName name){
@@ -31,6 +39,31 @@
 		this.setName(name);
 	}
 
+
+    public void addModule(QName moduleref) {
+        if (moduleref == null) {
+            return;
+        }
+        Collection collectionModule =
+                (Collection) this.getComponentProperty(MODULEREF_KEY);
+        collectionModule.add(moduleref);
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.axis.description.AxisService#getModules()
+     */
+
+    /**
+     * Method getModules
+     *
+     * @return
+     */
+    public Collection getModules() {
+        return (Collection) this.getComponentProperty(MODULEREF_KEY);
+    }
+
+
 	/**
      * Method addParameter
      *
@@ -120,6 +153,14 @@
 		return (MEPContext) ((Map) this.getComponentProperty(MEP_MAP)).get(messageID);
 
 	}
-    
+
+    public String getMessageReciever() {
+        return messageReciever;
+    }
+
+    public void setMessageReciever(String messageReciever) {
+        this.messageReciever = messageReciever;
+    }
+
 }
 

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/phaseresolver/PhaseResolver.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/phaseresolver/PhaseResolver.java?rev=167898&r1=167897&r2=167898&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/phaseresolver/PhaseResolver.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/phaseresolver/PhaseResolver.java Tue May  3 04:42:46 2005
@@ -108,7 +108,7 @@
         ArrayList allHandlers = new ArrayList();
         AxisModule module;
         Flow flow = null;
-        ArrayList modules = (ArrayList)engineConfig.getGlobal().getModules();
+        ArrayList modules = (ArrayList)axisService.getModules();//   (ArrayList)engineConfig.getGlobal().getModules());
         //Global modules
         for (int i = 0; i < modules.size(); i++) {
             QName name = (QName) modules.get(i);



Re: svn commit: r167898 - /webservices/axis/trunk/java/modules/core/samples/deployment /webservices/axis/trunk/java/modules/core/samples/deployment/service1/META-INF /webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment /webservices/axis/trunk/java/modules/core/src/org/apache/axis/description /webservices/axis/trunk/java/modules/core/src/org/apache/axis/phaseresolver

Posted by Sanjiva Weerawarana <sa...@opensource.lk>.
Hi Deepal,

It should be:
	<messageReceiver mep="xsd:anyURI" impl="xsd:string"/>

(Not @map ..)

Sanjiva.

On Tue, 2005-05-03 at 11:43 +0000, deepal@apache.org wrote:
> Author: deepal
> Date: Tue May  3 04:42:46 2005
> New Revision: 167898
> 
> URL: http://svn.apache.org/viewcvs?rev=167898&view=rev
> Log:
> Deployment refactoring , introducing MEP based messageRecievers . Build might faild will fix soon :)
> 
> Modified:
>     webservices/axis/trunk/java/modules/core/samples/deployment/server.xml
>     webservices/axis/trunk/java/modules/core/samples/deployment/service1/META-INF/service.xml
>     webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentConstants.java
>     webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java
>     webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/server.xml
>     webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisGlobal.java
>     webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisOperation.java
>     webservices/axis/trunk/java/modules/core/src/org/apache/axis/phaseresolver/PhaseResolver.java
> 
> Modified: webservices/axis/trunk/java/modules/core/samples/deployment/server.xml
> URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/samples/deployment/server.xml?rev=167898&r1=167897&r2=167898&view=diff
> ==============================================================================
> --- webservices/axis/trunk/java/modules/core/samples/deployment/server.xml (original)
> +++ webservices/axis/trunk/java/modules/core/samples/deployment/server.xml Tue May  3 04:42:46 2005
> @@ -1,4 +1,6 @@
>  <server name ="AxisJava2.0" >
> +    <messageReciver map="name"  impl="abcs"/>
> +
>      <phaseOrder type="inflow">
>          <phase name="global"/>
>          <phase name="transport"/>
> 
> Modified: webservices/axis/trunk/java/modules/core/samples/deployment/service1/META-INF/service.xml
> URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/samples/deployment/service1/META-INF/service.xml?rev=167898&r1=167897&r2=167898&view=diff
> ==============================================================================
> --- webservices/axis/trunk/java/modules/core/samples/deployment/service1/META-INF/service.xml (original)
> +++ webservices/axis/trunk/java/modules/core/samples/deployment/service1/META-INF/service.xml Tue May  3 04:42:46 2005
> @@ -1,4 +1,4 @@
> -<service messageReceiver="org.apache.axis.receivers.RawXMLINOutMessageRecevier" style="rpc" contextPath="services">
> +<service name="">
>  
>      <parameter name="ServiceClass" locked="xsd:false">org.apache.axis.sample.echo.EchoImpl</parameter>
>  
> @@ -16,7 +16,10 @@
>          <handler name="logging2" class="org.apache.axis.sample.handlers.LoggingHandler"/>
>      </Outfaultflow>
>  
> -    <operation name="echoString"/>
> +    <operation name="echoString">
> +        <module ref="module1"/>
> +        <messageReceiver class="org.apache.axis.receivers.RawXMLINOutMessageRecevier"/>
> +    </operation>
>      <operation name="echoStringArray"/>
>      <operation name="echoEchoStruct"/>
>      <operation name="echoEchoStructArray"/>
> 
> Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentConstants.java
> URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentConstants.java?rev=167898&r1=167897&r2=167898&view=diff
> ==============================================================================
> --- webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentConstants.java (original)
> +++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentConstants.java Tue May  3 04:42:46 2005
> @@ -61,6 +61,7 @@
>      // for operatiins
>      String ATQNAME = "name";
>      String ATUSE = "use";
> +    String MEP = "mep";
>  
>      //for handlers
>      String REF = "ref";
> 
> Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java
> URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java?rev=167898&r1=167897&r2=167898&view=diff
> ==============================================================================
> --- webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java (original)
> +++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentParser.java Tue May  3 04:42:46 2005
> @@ -38,6 +38,7 @@
>  import org.apache.axis.description.ParameterImpl;
>  import org.apache.axis.engine.AxisFault;
>  import org.apache.axis.engine.EngineConfigurationImpl;
> +import org.apache.axis.engine.MessageReceiver;
>  import org.apache.axis.transport.TransportReceiver;
>  import org.apache.axis.transport.TransportSender;
>  
> @@ -88,7 +89,6 @@
>                      String ST = pullparser.getLocalName();
>                      if (ST.equals(SERVICEXMLST)) {
>                          procesServiceXML(axisService);
> -                        axisService.setName(new QName(getAxisServiceName(dpengine.getCurrentFileItem().getServiceName())));
>                      }
>                      break;
>                  }
> @@ -125,6 +125,37 @@
>                          dpengine.getEngineconfig().addTransportIn(transportin);
>                      } else if (TYPEMAPPINGST.equals(ST)) {
>                          throw new UnsupportedOperationException("Type Mappings are not allowed in server.xml");
> +                    } else if (MEP.equals(ST)){
> +                        int attribCount = pullparser.getAttributeCount();
> +                        if (attribCount == 2) {
> +                            String attname = pullparser.getAttributeLocalName(1);
> +                            String attvalue = pullparser.getAttributeValue(1);
> +                            if(MEP.equals(attname)){
> +                                String name = attvalue;
> +                                attname = pullparser.getAttributeLocalName(2);
> +                                attvalue = pullparser.getAttributeValue(2);
> +                                if(CLASSNAME.equals(attname)){
> +                                    try {
> +                                        Class messageReceiver = null;
> +                                        ClassLoader loader1 = Thread.currentThread().getContextClassLoader();
> +                                        if (attvalue != null && !"".equals(attvalue)) {
> +                                            messageReceiver = Class.forName(attvalue, true, loader1);
> +                                            axisGlobal.addMessageReceiver(name,(MessageReceiver)messageReceiver.newInstance());
> +                                        }
> +                                    } catch (ClassNotFoundException e) {
> +                                        throw new DeploymentException("Error in loading messageRecivers " + e.getMessage());
> +                                    } catch (IllegalAccessException e) {
> +                                        throw new DeploymentException("Error in loading messageRecivers " + e.getMessage());
> +                                    } catch (InstantiationException e) {
> +                                        throw new DeploymentException("Error in loading messageRecivers " + e.getMessage());
> +                                    }
> +                                }  else
> +                                    throw new UnsupportedOperationException("invalid attributes in server.xml (messageReceiver elemet) " + attname);
> +                            }  else
> +                                throw new UnsupportedOperationException("invalid attributes in server.xml (messageReceiver elemet) " + attname);
> +                        }else
> +                            throw new UnsupportedOperationException("invalid attributes in server.xml (messageReceiver elemet)");
> +
>                      } else if (MODULEST.equals(ST)) {
>                          int attribCount = pullparser.getAttributeCount();
>                          if (attribCount > 0) {
> @@ -309,33 +340,23 @@
>       */
>      private void procesServiceXML(AxisService axisService) throws DeploymentException {
>          int attribCount = pullparser.getAttributeCount();
> -        boolean foundMR = false;
>          if (attribCount >= 1) {
>              for (int i = 0; i < attribCount; i++) {
>                  String attname = pullparser.getAttributeLocalName(i);
>                  String attvalue = pullparser.getAttributeValue(i);
> -                if (MESSAGERECEIVER.equals(attname)) {
> -                    dpengine.getCurrentFileItem().setMessgeReceiver(attvalue);
> -                    foundMR = true;
> -                } else if (STYLENAME.equals(attname)) {
> -                    axisService.setStyle(attvalue);
> -                } else if (CONTEXTPATHNAME.equals(attname)) {
> -                    axisService.setContextPath(getValue(attvalue));
> +                if (ATQNAME.equals(attname)) {
> +                    if(attname == null || attname.trim() =="") {
> +                        axisService.setName(new QName(getAxisServiceName(dpengine.getCurrentFileItem().getServiceName())));
> +                    }  else
> +                        axisService.setName(new QName(attvalue));
>                  } else {
>                      throw new DeploymentException("Bad arguments for the service" + axisService.getName());
>                  }
>              }
> -        } else
> -            throw new DeploymentException("Bad arguments" + axisService.getName());
> -        if (!foundMR) {
> -            throw new DeploymentException("Message Receiver dose not specify " + axisService.getName());
> +        } else {
> +            //if user dose not specify the service name then the default name will be the archive name
> +            axisService.setName(new QName(getAxisServiceName(dpengine.getCurrentFileItem().getServiceName())));
>          }
> -
> -        //*********************************************************************************************//
> -        // This is to process remainng part of the document
> -        /**
> -         * to check whether the End tage of the document has met
> -         */
>          boolean END_DOCUMENT = false;
>          try {
>              while (!END_DOCUMENT) {
> @@ -593,45 +614,57 @@
>          //  String name = pullparser.getLocalName();
>          AxisOperation operation = new AxisOperation();
>          int attribCount = pullparser.getAttributeCount();
> -        if (attribCount < 5) {  // there should be two attributes
> +        if (attribCount >0) {  // there should be two attributes
>              for (int i = 0; i < attribCount; i++) {
>                  String attname = pullparser.getAttributeLocalName(i);
>                  String attvalue = pullparser.getAttributeValue(i);
>                  if (ATTNAME.equals(attname)) {
>                      operation.setName(new QName(attvalue));
> -                } else if (ATQNAME.equals(attname)) {
> -                    //TODO fill this after getting the reply for the mail
> -                    //operation.setQname(attvalue);
> -                } else if (STYLENAME.equals(attname)) {
> -                    //TODO to be implementd after clarfing style
> -                    //operation.setStyle(attvalue);
> -                } else if (ATUSE.equals(attname)) {
> -                    //TODO this is to be implemnt
> -                    //  operation.setUse(attvalue);
> -                }
> +                }  else
> +                    throw new DeploymentException("bad attribute in operation " + attname);
>              }
> -        } else {
> -            throw new DeploymentException("bad parameter arguments");
>          }
> -
>          boolean END_OPERATION = false;
>          try {
>              while (!END_OPERATION) {
>                  int eventType = pullparser.next();
>                  if (eventType == XMLStreamConstants.END_DOCUMENT) {
> -// document end tag met , break the loop
> -// but the doc end tag wont meet here :)
>                      END_OPERATION = true;
>                  } else if (eventType == XMLStreamConstants.START_ELEMENT) {
>                      String ST = pullparser.getLocalName();
>                      if (MODULEXMLST.equals(ST)) {
> -                        throw new UnsupportedOperationException("nexted elements are not allowed for M1");
> +                        attribCount = pullparser.getAttributeCount();
> +                        if (attribCount > 0) {
> +                            for (int i = 0; i < attribCount; i++) {
> +                                String attname = pullparser.getAttributeLocalName(i);
> +                                String attvalue = pullparser.getAttributeValue(i);
> +                                if (REF.equals(attname)) {
> +                                    if (dpengine.getModule(new QName(attvalue)) == null) {
> +                                        throw new DeploymentException(ST + " module is invalid or dose not have bean deployed");
> +                                    } else
> +                                        operation.addModule(new QName(attvalue));
> +                                }
> +                            }
> +                        }
>                      } else if (IN_FAILTFLOW.equals(ST)) {
>                          throw new UnsupportedOperationException("nexted elements are not allowed for M1");
>                      } else if (INFLOWST.equals(ST)) {
>                          throw new UnsupportedOperationException("nexted elements are not allowed for M1");
>                      } else if (OUTFLOWST.equals(ST)) {
>                          throw new UnsupportedOperationException("nexted elements are not allowed for M1");
> +                    }else if (MESSAGERECEIVER.equals(ST)){
> +                        attribCount = pullparser.getAttributeCount();
> +                        if(attribCount > 0){
> +                            String attname = pullparser.getAttributeLocalName(1);
> +                            String attvalue = pullparser.getAttributeValue(1);
> +                            if(CLASSNAME.equals(attname)){
> +                                operation.setMessageReciever(attvalue);
> +                            } else {
> +                                throw new UnsupportedOperationException(attname +   " is not allowed in messageRecievr element");
> +                            }
> +                        }  else {
> +                            //todo   if user dose not specify the messageReciever then the defaullt one has to be used
> +                        }
>                      }
>  
>                  } else if (eventType == XMLStreamConstants.END_ELEMENT) {
> @@ -644,6 +677,8 @@
>              }
>          } catch (XMLStreamException e) {
>              throw new DeploymentException("parser Exception", e);
> +        } catch (AxisFault e){
> +            throw new DeploymentException("Axis fault , loading module", e);
>          }
>          return operation;
>      }
> @@ -685,7 +720,6 @@
>          int attribCount = pullparser.getAttributeCount();
>          boolean ref_name = false;
>          boolean foundClass = false;
> -
>          if (attribCount > 0) {
>              for (int i = 0; i < attribCount; i++) {
>                  String attname = pullparser.getAttributeLocalName(i);
> 
> Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/server.xml
> URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/server.xml?rev=167898&r1=167897&r2=167898&view=diff
> ==============================================================================
> --- webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/server.xml (original)
> +++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/server.xml Tue May  3 04:42:46 2005
> @@ -2,6 +2,8 @@
>      <parameter name="hotdeployment" locked="xsd:false">true</parameter>
>      <parameter name="hotupdate" locked="xsd:false">true</parameter>
>  
> +    <messageReceiver mep="" class=""/>
> +
>      <transportReceiver name="http">
>      </transportReceiver>
>      <transportSender name="http" class="org.apache.axis.transport.http.HTTPTransportSender">
> 
> Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisGlobal.java
> URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisGlobal.java?rev=167898&r1=167897&r2=167898&view=diff
> ==============================================================================
> --- webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisGlobal.java (original)
> +++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisGlobal.java Tue May  3 04:42:46 2005
> @@ -1,23 +1,26 @@
>  /*
> - * Copyright 2004,2005 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.
> - */
> +* Copyright 2004,2005 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 org.apache.axis.description;
>  
> +import org.apache.axis.engine.MessageReceiver;
> +
>  import java.util.ArrayList;
>  import java.util.Collection;
>  import java.util.List;
> +import java.util.HashMap;
>  
>  import javax.xml.namespace.QName;
>  
> @@ -44,6 +47,8 @@
>       */
>      protected final List modules;
>  
> +    protected HashMap messagRecievers;
> +
>      // TODO provide a way to store name (name attribute value server.xml)
>  
>      /**
> @@ -52,6 +57,16 @@
>      public AxisGlobal() {
>          paramInclude = new ParameterIncludeImpl();
>          modules = new ArrayList();
> +        messagRecievers = new HashMap();
> +    }
> +    
> +
> +    public void addMessageReceiver(String key ,MessageReceiver messageReceiver){
> +        messagRecievers.put(key,messageReceiver) ;
> +    }
> +
> +    public MessageReceiver getMessageReceiver(String key){
> +        return (MessageReceiver)messagRecievers.get(key);
>      }
>  
>      /**
> @@ -91,5 +106,5 @@
>          paramInclude.addParameter(param);
>      }
>  
> - 
> +
>  }
> 
> Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisOperation.java
> URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisOperation.java?rev=167898&r1=167897&r2=167898&view=diff
> ==============================================================================
> --- webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisOperation.java (original)
> +++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/AxisOperation.java Tue May  3 04:42:46 2005
> @@ -2,6 +2,8 @@
>  
>  import java.util.HashMap;
>  import java.util.Map;
> +import java.util.Collection;
> +import java.util.ArrayList;
>  
>  import javax.xml.namespace.QName;
>  
> @@ -18,12 +20,18 @@
>   */
>  public class AxisOperation extends WSDLOperationImpl implements
>  		ParameterInclude, WSDLOperation,DescriptionConstants {
> -	
> -	
> +
> +
> +    private HashMap modules;
> +
> +    private String messageReciever;
> +
>  	public AxisOperation(){
>          this.setMessageExchangePattern(MEP_URI_IN_OUT);
>  		this.setComponentProperty(PARAMETER_KEY, new ParameterIncludeImpl());
>          this.setComponentProperty(MEP_MAP, new HashMap());
> +        this.setComponentProperty(MODULEREF_KEY, new ArrayList());
> +        modules = new HashMap();
>  	}
>  	
>  	public AxisOperation(QName name){
> @@ -31,6 +39,31 @@
>  		this.setName(name);
>  	}
>  
> +
> +    public void addModule(QName moduleref) {
> +        if (moduleref == null) {
> +            return;
> +        }
> +        Collection collectionModule =
> +                (Collection) this.getComponentProperty(MODULEREF_KEY);
> +        collectionModule.add(moduleref);
> +    }
> +
> +    /*
> +     * (non-Javadoc)
> +     * @see org.apache.axis.description.AxisService#getModules()
> +     */
> +
> +    /**
> +     * Method getModules
> +     *
> +     * @return
> +     */
> +    public Collection getModules() {
> +        return (Collection) this.getComponentProperty(MODULEREF_KEY);
> +    }
> +
> +
>  	/**
>       * Method addParameter
>       *
> @@ -120,6 +153,14 @@
>  		return (MEPContext) ((Map) this.getComponentProperty(MEP_MAP)).get(messageID);
>  
>  	}
> -    
> +
> +    public String getMessageReciever() {
> +        return messageReciever;
> +    }
> +
> +    public void setMessageReciever(String messageReciever) {
> +        this.messageReciever = messageReciever;
> +    }
> +
>  }
>  
> 
> Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/phaseresolver/PhaseResolver.java
> URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/phaseresolver/PhaseResolver.java?rev=167898&r1=167897&r2=167898&view=diff
> ==============================================================================
> --- webservices/axis/trunk/java/modules/core/src/org/apache/axis/phaseresolver/PhaseResolver.java (original)
> +++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/phaseresolver/PhaseResolver.java Tue May  3 04:42:46 2005
> @@ -108,7 +108,7 @@
>          ArrayList allHandlers = new ArrayList();
>          AxisModule module;
>          Flow flow = null;
> -        ArrayList modules = (ArrayList)engineConfig.getGlobal().getModules();
> +        ArrayList modules = (ArrayList)axisService.getModules();//   (ArrayList)engineConfig.getGlobal().getModules());
>          //Global modules
>          for (int i = 0; i < modules.size(); i++) {
>              QName name = (QName) modules.get(i);
> 
> 
> 
>