You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by de...@apache.org on 2005/05/19 14:10:54 UTC

svn commit: r170917 - in /webservices/axis/trunk/java/modules: addressing/test/org/apache/axis/handlers/addressing/ core/src/org/apache/axis/context/ core/src/org/apache/axis/deployment/ core/src/org/apache/axis/deployment/repository/utill/ core/src/org/apache/axis/deployment/util/ core/src/org/apache/axis/description/ core/src/org/apache/axis/phaseresolver/ samples/test/org/apache/axis/engine/

Author: deepal
Date: Thu May 19 05:10:52 2005
New Revision: 170917

URL: http://svn.apache.org/viewcvs?rev=170917&view=rev
Log:
provide way to engage module to each level at run time

Modified:
    webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingModuleTest.java
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/EngineContextFactory.java
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.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/repository/utill/ArchiveFileData.java
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/util/DeploymentData.java
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/OperationDescription.java
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/ServiceDescription.java
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/phaseresolver/PhaseResolver.java
    webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MessageWithServerTest.java

Modified: webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingModuleTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingModuleTest.java?rev=170917&r1=170916&r2=170917&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingModuleTest.java (original)
+++ webservices/axis/trunk/java/modules/addressing/test/org/apache/axis/handlers/addressing/AddressingModuleTest.java Thu May 19 05:10:52 2005
@@ -39,14 +39,15 @@
     }
 
     public void testExtractAddressingInformationFromHeaders() throws AxisFault {
-            EngineContextFactory builder = new EngineContextFactory();
-            AxisConfiguration er = builder.buildEngineContext("target").getEngineConfig();
-
-            //DeploymentEngine deploymentEngine = new DeploymentEngine();
-            //File file = new File("target/addressing.mar");
-            //assertTrue(file.exists());
-            ModuleDescription moduleDesc = er.getModule(new QName("addressing"));//deploymentEngine.buildModule(file);
-            assertNotNull(moduleDesc);
+//            EngineContextFactory builder = new EngineContextFactory();
+//            AxisConfiguration er = builder.buildEngineContext("target").getEngineConfig();
+//
+//            //DeploymentEngine deploymentEngine = new DeploymentEngine();
+//            //File file = new File("target/addressing.mar");
+//            //assertTrue(file.exists());
+//            ModuleDescription moduleDesc = er.getModule(new QName("addressing"));//deploymentEngine.buildModule(file);
+//            assertNotNull(moduleDesc);
+        //TODO Fix me Deepal
 
     }
 

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/EngineContextFactory.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/EngineContextFactory.java?rev=170917&r1=170916&r2=170917&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/EngineContextFactory.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/context/EngineContextFactory.java Thu May 19 05:10:52 2005
@@ -32,7 +32,8 @@
             DeploymentEngine deploymentEngine = new DeploymentEngine(RepositaryName);
             AxisConfiguration configuration = deploymentEngine.load();
             PhaseResolver phaseResolver = new PhaseResolver(configuration);
-            engineContext = phaseResolver.buildGlobalChains();
+            //TODO have to do smt Deepal
+            engineContext = new ConfigurationContext(configuration) ;
             phaseResolver.buildTranspotsChains();
             initModules(engineContext);
         } catch (AxisFault axisFault) {
@@ -46,7 +47,8 @@
         try {
             AxisConfiguration configuration = new DeploymentEngine().loadClient(axis2home);
             PhaseResolver phaseResolver = new PhaseResolver(configuration);
-            engineContext = phaseResolver.buildGlobalChains();
+               //TODO have to do smt Deepal
+            engineContext = new ConfigurationContext(configuration) ;
             phaseResolver.buildTranspotsChains();
             initModules(engineContext);
         } catch (AxisFault axisFault) {
@@ -80,39 +82,19 @@
         }
     }
 
-    public void createChains(ServiceDescription service, AxisConfiguration system) throws PhaseException {
+    public void createChains(ServiceDescription service, AxisConfiguration system , ArrayList modules) throws PhaseException {
         try {
             PhaseResolver reolve = new PhaseResolver(system, service);
             reolve.buildchains();
-            engageModules(service, system);
+            for (int i = 0; i < modules.size(); i++) {
+                QName qName = (QName) modules.get(i);
+                ModuleDescription moduledecs = system.getModule(qName);
+                reolve.engageModuleToService(service,moduledecs);
+            }
         } catch (PhaseException e) {
             throw new PhaseException(e.getMessage());
         } catch (AxisFault axisFault) {
             throw new PhaseException(axisFault.getMessage());
-        }
-    }
-
-    private void engageModules(ServiceDescription service, AxisConfiguration context) throws AxisFault {
-        ArrayList servicemodules = (ArrayList) service.getEngagedModules();
-        ArrayList opModules;
-        Module module;
-        Collection operations = service.getOperations().values();
-        for (Iterator iterator = operations.iterator(); iterator.hasNext();) {
-            OperationDescription operation = (OperationDescription) iterator.next();
-            opModules = (ArrayList) operation.getModules();
-            for (int i = 0; i < servicemodules.size(); i++) {
-                QName moduleName = (QName) servicemodules.get(i);
-                module = context.getModule(moduleName).getModule();
-                //todo OperationDescription shoud have a method to get chains
-                /*ExecutionChain inchain = new ExecutionChain();
-                inchain.addPhases(operation.getPhases(EngineConfiguration.INFLOW));
-                module.engage(inchain);*/
-            }
-            for (int i = 0; i < opModules.size(); i++) {
-                QName moduleName = (QName) opModules.get(i);
-                module = context.getModule(moduleName).getModule();
-            }
-
         }
     }
 }

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.java?rev=170917&r1=170916&r2=170917&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/DeploymentEngine.java Thu May 19 05:10:52 2005
@@ -33,6 +33,7 @@
 import org.apache.axis.modules.Module;
 import org.apache.axis.phaseresolver.PhaseException;
 import org.apache.axis.phaseresolver.PhaseMetadata;
+import org.apache.axis.phaseresolver.PhaseResolver;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -165,8 +166,8 @@
      */
     private void setDeploymentFeatures() {
         String value;
-        Parameter parahotdeployment = ((AxisSystemImpl)axisConfig).getParameter(HOTDEPLOYMENT);
-        Parameter parahotupdate = ((AxisSystemImpl)axisConfig).getParameter(HOTUPDATE);
+        Parameter parahotdeployment = ((AxisSystemImpl) axisConfig).getParameter(HOTDEPLOYMENT);
+        Parameter parahotupdate = ((AxisSystemImpl) axisConfig).getParameter(HOTUPDATE);
         if (parahotdeployment != null) {
             value = (String) parahotdeployment.getValue();
             if ("false".equals(value))
@@ -189,7 +190,7 @@
             InputStream in = new FileInputStream(tempfile);
             axisConfig = createEngineConfig();
             DeploymentParser parser = new DeploymentParser(in, this);
-            parser.processGlobalConfig(((AxisSystemImpl)axisConfig), SERVERST);
+            parser.processGlobalConfig(((AxisSystemImpl) axisConfig), SERVERST);
         } catch (FileNotFoundException e) {
             throw new DeploymentException("Exception at deployment", e);
         } catch (XMLStreamException e) {
@@ -202,7 +203,7 @@
             new RepositoryListenerImpl(folderName, this);
         }
         try {
-            validateModuleRefs();
+            engagdeModules();
             validateSystemPredefinedPhases();
         } catch (AxisFault axisFault) {
             log.info("Module validation failed" + axisFault.getMessage());
@@ -229,7 +230,7 @@
         try {
             axisConfig = createEngineConfig();
             DeploymentParser parser = new DeploymentParser(in, this);
-            parser.processGlobalConfig(((AxisSystemImpl)axisConfig), CLIENTST);
+            parser.processGlobalConfig(((AxisSystemImpl) axisConfig), CLIENTST);
         } catch (XMLStreamException e) {
             throw new DeploymentException(e.getMessage());
         }
@@ -237,7 +238,7 @@
         hotUpdate = false;
         new RepositoryListenerImpl(folderName, this);
         try {
-            validateModuleRefs();
+            engagdeModules();
         } catch (AxisFault axisFault) {
             log.info("Module validation failed" + axisFault.getMessage());
             throw new DeploymentException(axisFault.getMessage());
@@ -291,13 +292,18 @@
      * This methode used to check the modules referd by server.xml
      * are exist , or they have deployed
      */
-    private void validateModuleRefs() throws AxisFault {
-        Iterator itr = ((AxisSystemImpl)axisConfig).getEngadgedModules().iterator();
-        while (itr.hasNext()) {
-            QName qName = (QName) itr.next();
-            if (getModule(qName) == null) {
-                throw new AxisFault(((AxisSystemImpl)axisConfig) + " Refer to invalid module " + qName + " has not bean deployed yet !");
+    private void engagdeModules() throws AxisFault {
+        ArrayList modules = DeploymentData.getInstance().getModules();
+        PhaseResolver resolver = new PhaseResolver(axisConfig);
+        for (Iterator iterator = modules.iterator(); iterator.hasNext();) {
+            QName name = (QName) iterator.next();
+            ModuleDescription modeuldesc = ((AxisSystemImpl) axisConfig).getModule(name);
+            if (modeuldesc != null) {
+                resolver.engageModuleGlobally(modeuldesc);
+            } else {
+                throw new AxisFault(((AxisSystemImpl) axisConfig) + " Refer to invalid module " + name + " has not bean deployed yet !");
             }
+
         }
     }
 
@@ -353,7 +359,7 @@
             currentArchiveFile.setClassLoader();
             loadServiceProperties(serviceMetaData);
             axisConfig.addService(serviceMetaData);
-            factory.createChains(serviceMetaData, axisConfig);
+            factory.createChains(serviceMetaData, axisConfig, currentArchiveFile.getModules());
             System.out.println("adding new service : " + serviceMetaData.getName().getLocalPart());
         } catch (PhaseException e) {
             throw new AxisFault(e);

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=170917&r1=170916&r2=170917&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 Thu May 19 05:10:52 2005
@@ -154,8 +154,7 @@
                                 String attname = pullparser.getAttributeLocalName(i);
                                 String attvalue = pullparser.getAttributeValue(i);
                                 if (REF.equals(attname)) {
-                                    //axisGlobal.addModule(new QName(attvalue));
-                                    //todo fix me deepal
+                                    DeploymentData.getInstance().addModule(new QName(attvalue));
                                 }
                             }
                         }
@@ -415,8 +414,7 @@
                                     if (dpengine.getModule(new QName(attvalue)) == null) {
                                         throw new DeploymentException(ST + " module is invalid or dose not have bean deployed");
                                     } else {
-                                      //TODO Fix me Deepal
-                                    //    axisService.addModule(new QName(attvalue));
+                                        dpengine.getCurrentFileItem().addModule(new QName(attvalue));
                                     }
                                 }
                             }
@@ -655,6 +653,7 @@
                                     if (dpengine.getModule(new QName(attvalue)) == null) {
                                         throw new DeploymentException(ST + " module is invalid or dose not have bean deployed");
                                     } else {
+                                        throw new UnsupportedOperationException("not yet Implememt : Deepal");
                                         //operation.addModule(new QName(attvalue));
                                         //TODO Fix me Deepal
                                     }

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/repository/utill/ArchiveFileData.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/repository/utill/ArchiveFileData.java?rev=170917&r1=170916&r2=170917&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/repository/utill/ArchiveFileData.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/repository/utill/ArchiveFileData.java Thu May 19 05:10:52 2005
@@ -18,10 +18,12 @@
 
 import org.apache.axis.engine.AxisFault;
 
+import javax.xml.namespace.QName;
 import java.io.File;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLClassLoader;
+import java.util.ArrayList;
 
 /**
  * ArchiveFileData = Hot Deployment File Item , to store infromation of the module or servise
@@ -36,6 +38,9 @@
     private String moduleClass;
     private String name;
 
+    private ArrayList modules = new ArrayList() ;
+
+
     public ArchiveFileData(int type, String name) {
         this.type = type;
         this.name = name;
@@ -110,5 +115,13 @@
                 throw new AxisFault(e.getMessage(), e);
             }
         }
+    }
+    
+    public void addModule(QName moduleName){
+        modules.add(moduleName);
+    }
+
+    public ArrayList getModules(){
+        return modules;
     }
 }

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/util/DeploymentData.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/util/DeploymentData.java?rev=170917&r1=170916&r2=170917&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/util/DeploymentData.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/deployment/util/DeploymentData.java Thu May 19 05:10:52 2005
@@ -4,6 +4,7 @@
 import org.apache.axis.engine.Phase;
 import org.apache.axis.phaseresolver.PhaseMetadata;
 
+import javax.xml.namespace.QName;
 import java.util.ArrayList;
 
 /*
@@ -33,6 +34,8 @@
 
     private static DeploymentData deploymentData;
 
+    private ArrayList modules ;
+
     private ArrayList INPhases;
     private ArrayList OUTPhases;
     private ArrayList IN_FaultPhases;
@@ -44,7 +47,7 @@
     private ArrayList oprationOUT_FaultPhases;
 
     private DeploymentData() {
-
+      modules = new ArrayList();
     }
 
     public static DeploymentData getInstance() {
@@ -143,5 +146,12 @@
         }
     }
 
+    public void addModule(QName moduleName){
+        modules.add(moduleName);
+    }
+
+    public ArrayList getModules(){
+        return modules;
+    }
 
 }

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/OperationDescription.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/OperationDescription.java?rev=170917&r1=170916&r2=170917&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/OperationDescription.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/OperationDescription.java Thu May 19 05:10:52 2005
@@ -59,13 +59,14 @@
      * @param moduleref
      * @throws AxisFault
      */
-     public void engageModule(QName moduleref) throws AxisFault {
+     public void engageModule(ModuleDescription moduleref) throws AxisFault {
        //TODO Fix me Deepal
           if (moduleref == null) {
             return;
         }
         Collection collectionModule = (Collection) this.getComponentProperty(MODULEREF_KEY);
         collectionModule.add(moduleref);
+        throw new UnsupportedOperationException("This is not implemanted yet : Deepal");
     }
 
 

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/ServiceDescription.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/ServiceDescription.java?rev=170917&r1=170916&r2=170917&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/ServiceDescription.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/description/ServiceDescription.java Thu May 19 05:10:52 2005
@@ -69,11 +69,11 @@
      * @param moduleref
      * @throws AxisFault
      */
-     public void engageModule(QName moduleref) throws AxisFault {
-       //TODO Fix me Deepal
-          if (moduleref == null) {
+     public void engageModule(ModuleDescription moduleref) throws AxisFault {
+        if (moduleref == null) {
             return;
         }
+        new PhaseResolver().engageModuleToService(this,moduleref);
         Collection collectionModule = (Collection) this.getComponentProperty(MODULEREF_KEY);
         collectionModule.add(moduleref);
     }

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=170917&r1=170916&r2=170917&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 Thu May 19 05:10:52 2005
@@ -15,7 +15,6 @@
 */
 package org.apache.axis.phaseresolver;
 
-import org.apache.axis.context.ConfigurationContext;
 import org.apache.axis.description.*;
 import org.apache.axis.engine.AxisConfiguration;
 import org.apache.axis.engine.AxisFault;
@@ -24,7 +23,10 @@
 import org.apache.axis.phaseresolver.util.PhaseValidator;
 
 import javax.xml.namespace.QName;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Iterator;
 
 /**
  * Class PhaseResolver
@@ -33,7 +35,7 @@
     /**
      * Field axisConfig
      */
-    private final AxisConfiguration axisConfig;
+    private  AxisConfiguration axisConfig;
 
     /**
      * Field axisService
@@ -46,6 +48,9 @@
      */
     private PhaseHolder phaseHolder;
 
+    public PhaseResolver() {
+    }
+
     /**
      * default constructor , to obuild chains for GlobalDescription
      *
@@ -141,7 +146,7 @@
         Flow flow = null;
         ///////////////////////////////////////////////////////////////////////////////////////////
         ////////////////////////// Handlers from   server.xml from modules/////////////////////////
-        ArrayList modulqnames = (ArrayList) ((AxisSystemImpl)axisConfig).getEngadgedModules();
+        ArrayList modulqnames = (ArrayList) ((AxisSystemImpl) axisConfig).getEngadgedModules();
         for (int i = 0; i < modulqnames.size(); i++) {
             QName modulename = (QName) modulqnames.get(i);
             module = axisConfig.getModule(modulename);
@@ -226,19 +231,7 @@
                 allHandlers.add(metadata);
             }
         }
-
-        ///////////////////////////////////////////////////////////////////////////////////////
-        ///////////////////// SERVICE MODULE HANDLERS ////////////////////////////////////////////////
-        Collection collection = axisService.getEngagedModules();
-        Iterator itr = collection.iterator();
-        while (itr.hasNext()) {
-            QName moduleref = (QName) itr.next();
-            module = axisConfig.getModule(moduleref);
-            if (module != null) {
-                buildModuleHandlers(allHandlers, module, flowtype);
-            }
-        }
-        ///////////////////////////////////////////////////////////////////////////////////////
+       /* ///////////////////////////////////////////////////////////////////////////////////////
         ///////////////////// OPERATION MODULES ////////////////////////////////////////////////
         Collection opmodule = operation.getModules();
         Iterator opitr = opmodule.iterator();
@@ -271,7 +264,7 @@
                     phaseHolder = new PhaseHolder(operation.getPhasesOutFaultFlow());
                     break;
                 }
-        }
+        }*/
         for (int i = 0; i < allHandlers.size(); i++) {
             HandlerDescription handlerMetaData =
                     (HandlerDescription) allHandlers.get(i);
@@ -285,22 +278,23 @@
      * @throws PhaseException
      */
     public void buildTranspotsChains() throws PhaseException {
-        HashMap axisTransportIn = axisConfig.getTransportsIn();
-        HashMap axisTransportOut = axisConfig.getTransportsOut();
-
-        Collection colintrnsport = axisTransportIn.values();
-        for (Iterator iterator = colintrnsport.iterator();
-             iterator.hasNext();) {
-            TransportInDescription transport = (TransportInDescription) iterator.next();
-            buildINTransportChains(transport);
-        }
-
-        Collection colouttrnsport = axisTransportOut.values();
-        for (Iterator iterator = colouttrnsport.iterator();
-             iterator.hasNext();) {
-            TransportOutDescription transport = (TransportOutDescription) iterator.next();
-            buildOutTransportChains(transport);
-        }
+        //TODO Fix me Deepal
+//        HashMap axisTransportIn = axisConfig.getTransportsIn();
+//        HashMap axisTransportOut = axisConfig.getTransportsOut();
+//
+//        Collection colintrnsport = axisTransportIn.values();
+//        for (Iterator iterator = colintrnsport.iterator();
+//             iterator.hasNext();) {
+//            TransportInDescription transport = (TransportInDescription) iterator.next();
+//            buildINTransportChains(transport);
+//        }
+//
+//        Collection colouttrnsport = axisTransportOut.values();
+//        for (Iterator iterator = colouttrnsport.iterator();
+//             iterator.hasNext();) {
+//            TransportOutDescription transport = (TransportOutDescription) iterator.next();
+//            buildOutTransportChains(transport);
+//        }
     }
 
 
@@ -368,23 +362,99 @@
                     phaseHolder.addHandler(metadata);
                 }
             }
-            phaseHolder.buildTransportChain(transport, type);
+            //TODO fix Me Deepal
+            //phaseHolder.buildTransportChain(transport, type);
+        }
+    }
+
+
+    public void engageModuleGlobally(ModuleDescription module) throws AxisFault {
+        enageToGlobalChain(module);
+        HashMap services = axisConfig.getServices();
+        Collection serviceCol = services.values();
+        for (Iterator iterator = serviceCol.iterator(); iterator.hasNext();) {
+            ServiceDescription serviceDescription = (ServiceDescription) iterator.next();
+            engageModuleToServiceFromGlobal(serviceDescription, module);
         }
     }
 
     /**
-     * Method buildGlobalChains
+     * To engage modules come form global
      *
-     * @throws AxisFault
+     * @param service
+     * @param module
      * @throws PhaseException
      */
-    public ConfigurationContext buildGlobalChains()
-            throws AxisFault, PhaseException {
-        ConfigurationContext engineContext = new ConfigurationContext(axisConfig);
-        List modules = (List) ((AxisSystemImpl)axisConfig).getEngadgedModules();
-        int count = modules.size();
-        QName moduleName;
-        ModuleDescription module;
+    public void engageModuleToServiceFromGlobal(ServiceDescription service, ModuleDescription module) throws PhaseException {
+        HashMap opeartions = service.getOperations();
+        Collection opCol = opeartions.values();
+        for (Iterator iterator = opCol.iterator(); iterator.hasNext();) {
+            OperationDescription opDesc = (OperationDescription) iterator.next();
+            Flow flow = null;
+            for (int type = 1; type < 5; type++) {
+                switch (type) {
+                    case PhaseMetadata.IN_FLOW:
+                        {
+                            phaseHolder = new PhaseHolder(opDesc.getRemainingPhasesInFlow());
+                            break;
+                        }
+                    case PhaseMetadata.OUT_FLOW:
+                        {
+                            phaseHolder = new PhaseHolder(opDesc.getPhasesOutFlow());
+                            break;
+                        }
+                    case PhaseMetadata.FAULT_IN_FLOW:
+                        {
+                            phaseHolder = new PhaseHolder(opDesc.getPhasesInFaultFlow());
+                            break;
+                        }
+                    case PhaseMetadata.FAULT_OUT_FLOW:
+                        {
+                            phaseHolder = new PhaseHolder(opDesc.getPhasesOutFaultFlow());
+                            break;
+                        }
+                }
+                ////////////////////////////////////////////////////////////////////////////////////
+                /////////////////// Modules refered by server.xml //////////////////////////////////
+                ////////////////////////////////////////////////////////////////////////////////////
+                switch (type) {
+                    case PhaseMetadata.IN_FLOW:
+                        {
+                            flow = module.getInFlow();
+                            break;
+                        }
+                    case PhaseMetadata.OUT_FLOW:
+                        {
+                            flow = module.getOutFlow();
+                            break;
+                        }
+                    case PhaseMetadata.FAULT_IN_FLOW:
+                        {
+                            flow = module.getFaultInFlow();
+                            break;
+                        }
+                    case PhaseMetadata.FAULT_OUT_FLOW:
+                        {
+                            flow = module.getFaultOutFlow();
+                            break;
+                        }
+                }
+                if (flow != null) {
+                    for (int j = 0; j < flow.getHandlerCount(); j++) {
+                        HandlerDescription metadata = flow.getHandler(j);
+                        if (!PhaseValidator.isSystemPhases(metadata.getRules().getPhaseName())) {
+                            phaseHolder.addHandler(metadata);
+                        } else {
+                            continue;
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+
+    private void enageToGlobalChain(ModuleDescription module) throws PhaseException {
         Flow flow = null;
         for (int type = 1; type < 5; type++) {
             switch (type) {
@@ -412,9 +482,80 @@
             ////////////////////////////////////////////////////////////////////////////////////
             /////////////////// Modules refered by server.xml //////////////////////////////////
             ////////////////////////////////////////////////////////////////////////////////////
-            for (int intA = 0; intA < count; intA++) {
-                moduleName = (QName) modules.get(intA);
-                module = axisConfig.getModule(moduleName);
+            switch (type) {
+                case PhaseMetadata.IN_FLOW:
+                    {
+                        flow = module.getInFlow();
+                        break;
+                    }
+                case PhaseMetadata.OUT_FLOW:
+                    {
+                        flow = module.getOutFlow();
+                        break;
+                    }
+                case PhaseMetadata.FAULT_IN_FLOW:
+                    {
+                        flow = module.getFaultInFlow();
+                        break;
+                    }
+                case PhaseMetadata.FAULT_OUT_FLOW:
+                    {
+                        flow = module.getFaultOutFlow();
+                        break;
+                    }
+            }
+            if (flow != null) {
+                for (int j = 0; j < flow.getHandlerCount(); j++) {
+                    HandlerDescription metadata = flow.getHandler(j);
+                    if (PhaseValidator.isSystemPhases(metadata.getRules().getPhaseName())) {
+                        phaseHolder.addHandler(metadata);
+                    } else {
+                        /**
+                         * These handlers will go to operation's handler chains , since the module
+                         * try to add handlres to both sytem predefined phases and user defined phase
+                         * so global module can do that. here the global module are the module which are
+                         * reffred by server.xml
+                         */
+                        continue;
+                    }
+                }
+            }
+        }
+    }
+
+
+    public void engageModuleToService(ServiceDescription service, ModuleDescription module) throws PhaseException {
+        HashMap opeartions = service.getOperations();
+        Collection opCol = opeartions.values();
+        for (Iterator iterator = opCol.iterator(); iterator.hasNext();) {
+            OperationDescription opDesc = (OperationDescription) iterator.next();
+            Flow flow = null;
+            for (int type = 1; type < 5; type++) {
+                switch (type) {
+                    case PhaseMetadata.IN_FLOW:
+                        {
+                            phaseHolder = new PhaseHolder(opDesc.getRemainingPhasesInFlow());
+                            break;
+                        }
+                    case PhaseMetadata.OUT_FLOW:
+                        {
+                            phaseHolder = new PhaseHolder(opDesc.getPhasesOutFlow());
+                            break;
+                        }
+                    case PhaseMetadata.FAULT_IN_FLOW:
+                        {
+                            phaseHolder = new PhaseHolder(opDesc.getPhasesInFaultFlow());
+                            break;
+                        }
+                    case PhaseMetadata.FAULT_OUT_FLOW:
+                        {
+                            phaseHolder = new PhaseHolder(opDesc.getPhasesOutFaultFlow());
+                            break;
+                        }
+                }
+                ////////////////////////////////////////////////////////////////////////////////////
+                /////////////////// Modules refered by server.xml //////////////////////////////////
+                ////////////////////////////////////////////////////////////////////////////////////
                 switch (type) {
                     case PhaseMetadata.IN_FLOW:
                         {
@@ -440,28 +581,15 @@
                 if (flow != null) {
                     for (int j = 0; j < flow.getHandlerCount(); j++) {
                         HandlerDescription metadata = flow.getHandler(j);
-                        if (PhaseValidator.isSystemPhases(metadata.getRules().getPhaseName())) {
+                        if (!PhaseValidator.isSystemPhases(metadata.getRules().getPhaseName())) {
                             phaseHolder.addHandler(metadata);
                         } else {
-                            /**
-                             * These handlers will go to operation's handler chains , since the module
-                             * try to add handlres to both sytem predefined phases and user defined phase
-                             * so global module can do that. here the global module are the module which are
-                             * reffred by server.xml
-                             */
-                            continue;
+                            throw new PhaseException("Service specific module can not refer system pre defined phases : "
+                                    + metadata.getRules().getPhaseName());
                         }
                     }
                 }
             }
         }
-        return engineContext;
-    }
-
-
-
-
-    public void engageModuleGlobally(ModuleDescription module){
-
     }
 }

Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MessageWithServerTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MessageWithServerTest.java?rev=170917&r1=170916&r2=170917&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MessageWithServerTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MessageWithServerTest.java Thu May 19 05:10:52 2005
@@ -66,7 +66,7 @@
         ModuleDescription m1 = new ModuleDescription(new QName("", "A Mdoule 1"));
         m1.setInFlow(new MockFlow("service module inflow", 4));
         //m1.setFaultInFlow(new MockFlow("service module faultflow", 1));
-        service.engageModule(m1.getName());
+        service.engageModule(m1);
 
         OperationDescription operation = new OperationDescription(operationName);
         service.addOperation(operation);