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 2004/12/20 07:06:25 UTC

svn commit: r122818 - in webservices/axis/trunk/java/dev/scratch/prototype2/src: java/org/apache/axis/deployment java/org/apache/axis/description java/org/apache/axis/phaseresolver samples/deployment/module1/META-INF test/org/apache/axis/deployment

Author: deepal
Date: Sun Dec 19 22:06:24 2004
New Revision: 122818

URL: http://svn.apache.org/viewcvs?view=rev&rev=122818
Log:
Change the Phase Resolver , to match with last chat
That is to create EC cahins for AxisGlobal
Modified:
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/AxisGlobal.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java
   webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module1/META-INF/module.xml
   webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java?view=diff&rev=122818&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java&r1=122817&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java&r2=122818
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/deployment/DeploymentEngine.java	Sun Dec 19 22:06:24 2004
@@ -121,7 +121,7 @@
             fileName = serverconfigName;
         } else
             fileName = "src/test-resources/deployment/server.xml";
-        
+
         File tempfile = new File(fileName);
         try {
             InputStream in = new FileInputStream(tempfile);
@@ -140,15 +140,19 @@
      * This methode used to check the modules referd by server.xml
      * are exist , or they have deployed
      */
-    private void valideServerModule() throws AxisFault{
+    private void valideServerModule() throws AxisFault, PhaseException{
         int moduleCount = server.getModuleCount();
+        AxisGlobal global = engineRegistry.getGlobal();
         QName moduleName;
         for (int i = 0; i < moduleCount ; i++) {
             moduleName = server.getModule(i);
             if(getModule(moduleName) == null ){
                 throw new AxisFault(server.getName() + " Refer to invalid module " + moduleName + " has not bean deployed yet !");
-            }
+            } else
+                 global.addModule(moduleName);
         }
+        PhaseResolver phaseResolver = new PhaseResolver(engineRegistry);
+        phaseResolver.buildGlobalChains(global);
 
     }
 

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/AxisGlobal.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/AxisGlobal.java?view=diff&rev=122818&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/AxisGlobal.java&r1=122817&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/AxisGlobal.java&r2=122818
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/AxisGlobal.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/description/AxisGlobal.java	Sun Dec 19 22:06:24 2004
@@ -44,6 +44,7 @@
     public AxisGlobal(){
         paramInclude = new ParameterIncludeImpl();
         phasesInclude = new PhasesIncludeImpl();
+        modules = new Vector();
     }
     
     public void addModule(QName moduleref) {

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java?view=diff&rev=122818&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java&r1=122817&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java&r2=122818
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseHolder.java	Sun Dec 19 22:06:24 2004
@@ -2,6 +2,7 @@
 
 import org.apache.axis.deployment.DeploymentConstants;
 import org.apache.axis.deployment.metadata.ServerMetaData;
+import org.apache.axis.description.AxisGlobal;
 import org.apache.axis.description.AxisService;
 import org.apache.axis.description.HandlerMetaData;
 import org.apache.axis.engine.AxisFault;
@@ -174,5 +175,62 @@
             throw new PhaseException(e);
         } 
     }
+
+
+    public  void buildGoblalChain(AxisGlobal axisGlobal, int chainType) throws PhaseException {
+        try {
+            OrderdPhases();
+            Vector tempHander = new Vector();
+            HandlerMetaData[] handlers;
+
+            switch (chainType) {
+                case 1 : {
+                    ArrayList inChain =  new ArrayList();//       service.getExecutableInChain();
+                    for (int i = 0; i < phaseholder.size(); i++) {
+                        PhaseMetaData phase = (PhaseMetaData) phaseholder.elementAt(i);
+                        Phase axisPhase = new Phase(phase.getName());
+                        handlers = phase.getOrderedHandlers();
+                        for (int j = 0; j < handlers.length; j++) {
+                            axisPhase.addHandler(handlers[j].getHandler());
+                        }
+                        inChain.add(axisPhase);
+                    }
+                    axisGlobal.setPhases(inChain,EngineRegistry.INFLOW);
+                    break;
+                }
+                case 2 : {
+                    ArrayList outChain =new ArrayList();// service.getExecutableOutChain();
+                    for (int i = 0; i < phaseholder.size(); i++) {
+                        PhaseMetaData phase = (PhaseMetaData) phaseholder.elementAt(i);
+                        Phase axisPhase = new Phase(phase.getName());
+                        handlers = phase.getOrderedHandlers();
+                        for (int j = 0; j < handlers.length; j++) {
+                            axisPhase.addHandler(handlers[j].getHandler());
+                        }
+                        outChain.add(axisPhase);
+                    }
+                    axisGlobal.setPhases(outChain,EngineRegistry.OUTFLOW);
+                    break;
+                }
+                case 3 : {
+                    ArrayList faultChain = new ArrayList();//service.getExecutableFaultChain();
+                    for (int i = 0; i < phaseholder.size(); i++) {
+                        PhaseMetaData phase = (PhaseMetaData) phaseholder.elementAt(i);
+                        Phase axisPhase = new Phase(phase.getName());
+                        handlers = phase.getOrderedHandlers();
+                        for (int j = 0; j < handlers.length; j++) {
+                            axisPhase.addHandler(handlers[j].getHandler());
+                        }
+                        faultChain.add(axisPhase);
+                    }
+                    axisGlobal.setPhases(faultChain,EngineRegistry.FAULTFLOW);
+                    break;
+                }
+            }
+        } catch (AxisFault e) {
+            throw new PhaseException(e);
+        }
+    }
+
 
 }

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java?view=diff&rev=122818&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java&r1=122817&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java&r2=122818
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/java/org/apache/axis/phaseresolver/PhaseResolver.java	Sun Dec 19 22:06:24 2004
@@ -2,13 +2,9 @@
 
 import org.apache.axis.deployment.DeploymentEngine;
 import org.apache.axis.deployment.metadata.ServerMetaData;
-import org.apache.axis.description.AxisModule;
-import org.apache.axis.description.AxisService;
-import org.apache.axis.description.Flow;
-import org.apache.axis.description.HandlerMetaData;
+import org.apache.axis.description.*;
 import org.apache.axis.engine.AxisFault;
 import org.apache.axis.engine.EngineRegistry;
-import org.apache.axis.engine.ExecutionChain;
 
 import javax.xml.namespace.QName;
 import java.util.Vector;
@@ -38,6 +34,13 @@
 
     private ServerMetaData server = DeploymentEngine.getServerMetaData();
 
+    /**
+     * default constructor , to obuild chains for AxisGlobal
+     */
+    public PhaseResolver(EngineRegistry engineRegistry) {
+        this.engineRegistry = engineRegistry;
+    }
+
     public PhaseResolver(EngineRegistry engineRegistry, AxisService axisService ) {
         this.engineRegistry = engineRegistry;
         this.axisService = axisService;
@@ -60,41 +63,42 @@
      * @param type
      * @throws AxisFault
      */
-    public  void buildExcutionChains(int type) throws AxisFault, PhaseException {
+    private  void buildExcutionChains(int type) throws AxisFault, PhaseException {
         int flowtype =  type;
         Vector allHandlers = new Vector();
         int count = server.getModuleCount();
         QName moduleName;
         AxisModule module;
         Flow flow = null;
+        /*
         //adding server specific handlers  . global
         for(int intA=0 ; intA < count; intA ++){
-            moduleName = server.getModule(intA);
-            module = engineRegistry.getModule(moduleName);
-            switch (flowtype){
-                case 1 : {
-                    flow = module.getInFlow();
-                    break;
-                }
-                case  2 : {
-                    flow = module.getOutFlow();
-                    break;
-                }
-                case 3 : {
-                    flow = module.getFaultFlow();
-                    break;
-                }
-            }
-            for(int j= 0 ; j < flow.getHandlerCount() ; j++ ){
-                HandlerMetaData metadata = flow.getHandler(j);
-                //todo change this in properway
-                if (metadata.getRules().getPhaseName().equals("")){
-                    metadata.getRules().setPhaseName("global");
-                }
-                allHandlers.add(metadata);
-            }
+        moduleName = server.getModule(intA);
+        module = engineRegistry.getModule(moduleName);
+        switch (flowtype){
+        case 1 : {
+        flow = module.getInFlow();
+        break;
+        }
+        case  2 : {
+        flow = module.getOutFlow();
+        break;
+        }
+        case 3 : {
+        flow = module.getFaultFlow();
+        break;
         }
-
+        }
+        for(int j= 0 ; j < flow.getHandlerCount() ; j++ ){
+        HandlerMetaData metadata = flow.getHandler(j);
+        //todo change this in properway
+        if (metadata.getRules().getPhaseName().equals("")){
+        metadata.getRules().setPhaseName("global");
+        }
+        allHandlers.add(metadata);
+        }
+        }
+        */
         // service module handlers
         Vector modules = (Vector)axisService.getModules();
         for (int i = 0; i < modules.size(); i++) {
@@ -158,16 +162,44 @@
 
     }
 
-    public void craeteChain4Flow(Flow flow , ExecutionChain chain) throws AxisFault, PhaseException{
-        phaseHolder = new PhaseHolder(server,null);
-        for(int j= 0 ; j < flow.getHandlerCount() ; j++ ){
-            HandlerMetaData metadata = flow.getHandler(j);
-            if (metadata.getRules().getPhaseName().equals("")){
-                metadata.getRules().setPhaseName("service");
+    public void buildGlobalChains(AxisGlobal global) throws AxisFault, PhaseException {
+        Vector modules = (Vector)global.getModules();
+        int count = modules.size();
+        QName moduleName;
+        AxisModule module;
+        Flow flow = null;
+        for(int type = 1 ; type < 4 ; type ++){
+            phaseHolder = new PhaseHolder(server,null);
+            for(int intA=0 ; intA < count; intA ++){
+                moduleName = (QName)modules.get(intA);
+                module = engineRegistry.getModule(moduleName);
+                switch (type){
+                    case 1 : {
+                        flow = module.getInFlow();
+                        break;
+                    }
+                    case  2 : {
+                        flow = module.getOutFlow();
+                        break;
+                    }
+                    case 3 : {
+                        flow = module.getFaultFlow();
+                        break;
+                    }
+                }
+                for(int j= 0 ; j < flow.getHandlerCount() ; j++ ){
+                    HandlerMetaData metadata = flow.getHandler(j);
+                    //todo change this in properway
+                    if (metadata.getRules().getPhaseName().equals("")){
+                        metadata.getRules().setPhaseName("global");
+                    }
+                    phaseHolder.addHandler(metadata);
+
+                }
+
             }
-            phaseHolder.addHandler(metadata);
+            phaseHolder.buildGoblalChain(global, type);
         }
-
     }
 
 }

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module1/META-INF/module.xml
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module1/META-INF/module.xml?view=diff&rev=122818&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module1/META-INF/module.xml&r1=122817&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module1/META-INF/module.xml&r2=122818
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module1/META-INF/module.xml	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/samples/deployment/module1/META-INF/module.xml	Sun Dec 19 22:06:24 2004
@@ -3,7 +3,7 @@
     <parameter name="para245" locked="xsd:false">Colombo</parameter>
     <!--  Module TypeMapping -->
     <typeMapping>Type mappping should come here</typeMapping>
-<inflow>
+    <inflow>
         <handler name="h1" class="org.apache.axis.registry.Handler3">
             <order phase="p1" phaseFirst="true"/>
             <parameter name="para8" locked="xsd:true">123</parameter>
@@ -11,7 +11,7 @@
             <parameter name="para10" locked="xsd:true">789</parameter>
         </handler>
         <handler name="h2" class="org.apache.axis.registry.Handler3"/>
-     </inflow>
+    </inflow>
 
     <outflow>
         <handler name="h3" class="org.apache.axis.registry.Handler3">
@@ -38,7 +38,7 @@
             <parameter name="para9" locked="xsd:true">456</parameter>
             <parameter name="para10" locked="xsd:true">789</parameter>
         </handler>
-   </faultflow>
+    </faultflow>
 
 
 </module>

Modified: webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java
Url: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java?view=diff&rev=122818&p1=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java&r1=122817&p2=webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java&r2=122818
==============================================================================
--- webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java	(original)
+++ webservices/axis/trunk/java/dev/scratch/prototype2/src/test/org/apache/axis/deployment/ServiceTest.java	Sun Dec 19 22:06:24 2004
@@ -37,20 +37,20 @@
     }
     /*
     public static void main(String args []){
-    String filename = "./target/test-resources" ;
-    DeploymentEngine deploymentEngine = new DeploymentEngine(filename);
-    EngineRegistry er = null;
-    try {
-    er = deploymentEngine.start();
-    } catch (AxisFault axisFault) {
-    axisFault.printStackTrace();  //To change body of catch statement use Options | File Templates.
-    } catch (PhaseException e) {
-    e.printStackTrace();  //To change body of catch statement use Options | File Templates.
-    } catch (DeploymentException e) {
-    e.printStackTrace();  //To change body of catch statement use Options | File Templates.
-    } catch (XMLStreamException e) {
-    e.printStackTrace();  //To change body of catch statement use Options | File Templates.
+        String filename = "./target/test-resources" ;
+        DeploymentEngine deploymentEngine = new DeploymentEngine(filename);
+        EngineRegistry er = null;
+        try {
+            er = deploymentEngine.start();
+        } catch (AxisFault axisFault) {
+            axisFault.printStackTrace();  //To change body of catch statement use Options | File Templates.
+        } catch (PhaseException e) {
+            e.printStackTrace();  //To change body of catch statement use Options | File Templates.
+        } catch (DeploymentException e) {
+            e.printStackTrace();  //To change body of catch statement use Options | File Templates.
+        } catch (XMLStreamException e) {
+            e.printStackTrace();  //To change body of catch statement use Options | File Templates.
+        }
     }
-    }
-    */
+      */
 }