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/03/28 06:29:50 UTC

svn commit: r159223 - in webservices/axis/trunk/java/modules: core/src/java/org/apache/axis/engine/ core/src/java/org/apache/axis/phaseresolver/ deployment/src/java/org/apache/axis/deployment/ deployment/src/samples/deployment/ deployment/src/test-resources/deployment/

Author: deepal
Date: Sun Mar 27 20:29:47 2005
New Revision: 159223

URL: http://svn.apache.org/viewcvs?view=rev&rev=159223
Log:
added phases order for all the three flows

Modified:
    webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistry.java
    webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistryImpl.java
    webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/phaseresolver/PhaseHolder.java
    webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/phaseresolver/PhaseMetadata.java
    webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/phaseresolver/PhaseResolver.java
    webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/DeploymentConstants.java
    webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/DeploymentEngine.java
    webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/DeploymentParser.java
    webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/server.xml
    webservices/axis/trunk/java/modules/deployment/src/samples/deployment/server.xml
    webservices/axis/trunk/java/modules/deployment/src/test-resources/deployment/server-transport.xml
    webservices/axis/trunk/java/modules/deployment/src/test-resources/deployment/server.xml

Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistry.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistry.java?view=diff&r1=159222&r2=159223
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistry.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistry.java Sun Mar 27 20:29:47 2005
@@ -103,13 +103,17 @@
      * @throws AxisFault
      */
     public HashMap getTransports() throws AxisFault;
-
     /**
-     * Ordred list of phases
-     *
-     * @return
+     * To store the order of the phases
+     * @param inPhases
      */
-    public ArrayList getPhases();
+    public void setInPhases(ArrayList inPhases);
+    public void setOutPhases(ArrayList outPhases);
+    public void setFaultPhases(ArrayList faultPhases);
+
+    public ArrayList getInPhases();
+    public ArrayList getOutPhases();
+    public ArrayList getFaultPhases();
 
     /**
      * Method getServices

Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistryImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistryImpl.java?view=diff&r1=159222&r2=159223
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistryImpl.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/engine/EngineRegistryImpl.java Sun Mar 27 20:29:47 2005
@@ -1,18 +1,18 @@
 /*
- * 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.engine;
 
 import java.util.ArrayList;
@@ -50,9 +50,9 @@
      * Field transports
      */
     private final HashMap transports = new HashMap();
-    
+
     private final HashMap transportsIn = new HashMap();
-    
+
     private final HashMap transportsOut = new HashMap();
 
     /**
@@ -63,7 +63,9 @@
     /**
      * Field phases
      */
-    private ArrayList phases;
+    private ArrayList inPhases;
+    private ArrayList outPhases;
+    private ArrayList faultPhases;
 
     /**
      * Constructor EngineRegistryImpl
@@ -72,7 +74,9 @@
      */
     public EngineRegistryImpl(AxisGlobal global) throws AxisFault {
         this.global = global;
-        phases = new ArrayList();
+        inPhases = new ArrayList();
+        outPhases = new ArrayList();
+        faultPhases = new ArrayList();
         errornesServices = new Hashtable();
     }
 
@@ -151,7 +155,7 @@
         services.remove(name);
     }
 
- 
+
 
 
     public AxisTransportIn getTransportIn(QName name) throws AxisFault {
@@ -201,17 +205,28 @@
         return transports;
     }
 
-    /**
-     * @return
-     */
-    public ArrayList getPhases() {
-        return phases;
+    public void setInPhases(ArrayList inPhases) {
+        this.inPhases = inPhases;
     }
 
-    /**
-     * @param list
-     */
-    public void setPhases(ArrayList list) {
-        phases = list;
+    public void setOutPhases(ArrayList outPhases) {
+        this.outPhases = outPhases;
+    }
+
+    public void setFaultPhases(ArrayList faultPhases) {
+        this.faultPhases = faultPhases;
+    }
+
+    public ArrayList getInPhases() {
+        return inPhases;
+    }
+
+    public ArrayList getOutPhases() {
+        return outPhases;
+    }
+
+    public ArrayList getFaultPhases() {
+        return faultPhases;
     }
+  
 }

Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/phaseresolver/PhaseHolder.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/phaseresolver/PhaseHolder.java?view=diff&r1=159222&r2=159223
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/phaseresolver/PhaseHolder.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/phaseresolver/PhaseHolder.java Sun Mar 27 20:29:47 2005
@@ -15,7 +15,10 @@
 */
 package org.apache.axis.phaseresolver;
 
-import org.apache.axis.description.*;
+import org.apache.axis.description.AxisGlobal;
+import org.apache.axis.description.AxisService;
+import org.apache.axis.description.HandlerMetadata;
+import org.apache.axis.description.PhasesInclude;
 import org.apache.axis.engine.AxisFault;
 import org.apache.axis.engine.EngineRegistry;
 import org.apache.axis.engine.Handler;
@@ -49,6 +52,12 @@
      */
     private final AxisService service;
 
+    private ArrayList inPhases;
+    private ArrayList outPhases;
+    private ArrayList faultPhases;
+
+    private int flowType = -1;
+
     /**
      * Constructor PhaseHolder
      *
@@ -58,6 +67,53 @@
     public PhaseHolder(EngineRegistry registry, AxisService serviceIN) {
         this.registry = registry;
         this.service = serviceIN;
+        fillFlowPhases();
+    }
+
+    public void setFlowType(int flowType) {
+        switch (flowType) {
+            case PhaseMetadata.IN_FLOW:
+                {
+                    phaseholder = inPhases;
+                    break;
+                }
+            case PhaseMetadata.OUT_FLOW:
+                {
+                    phaseholder = outPhases;
+                    break;
+                }
+            case PhaseMetadata.FAULT_FLOW:
+                {
+                    phaseholder = faultPhases;
+                    break;
+                }
+        }
+        this.flowType = flowType;
+    }
+
+    private void fillFlowPhases() {
+        inPhases = new ArrayList();
+        outPhases = new ArrayList();
+        faultPhases = new ArrayList();
+
+        ArrayList tempPhases = registry.getInPhases();
+        for (int i = 0; i < tempPhases.size(); i++) {
+            String name = (String) tempPhases.get(i);
+            PhaseMetadata pm = new PhaseMetadata(name);
+            inPhases.add(pm);
+        }
+        tempPhases = registry.getOutPhases();
+        for (int i = 0; i < tempPhases.size(); i++) {
+            String name = (String) tempPhases.get(i);
+            PhaseMetadata pm = new PhaseMetadata(name);
+            outPhases.add(pm);
+        }
+        tempPhases = registry.getFaultPhases();
+        for (int i = 0; i < tempPhases.size(); i++) {
+            String name = (String) tempPhases.get(i);
+            PhaseMetadata pm = new PhaseMetadata(name);
+            faultPhases.add(pm);
+        }
     }
 
     /**
@@ -77,23 +133,6 @@
     }
 
     /**
-     * Method isPhaseExistinER
-     *
-     * @param phaseName
-     * @return
-     */
-    private boolean isPhaseExistinER(String phaseName) {
-        ArrayList pahselist = registry.getPhases();
-        for (int i = 0; i < pahselist.size(); i++) {
-            String pahse = (String) pahselist.get(i);
-            if (pahse.equals(phaseName)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
      * Method addHandler
      *
      * @param handler
@@ -104,17 +143,24 @@
         if (isPhaseExist(phaseName)) {
             getPhase(phaseName).addHandler(handler);
         } else {
-            if (isPhaseExistinER(phaseName)) {
-                PhaseMetadata newpPhase = new PhaseMetadata(phaseName);
-                addPhase(newpPhase);
-                newpPhase.addHandler(handler);
-            } else {
-                throw new PhaseException("Invalid Phase ," + phaseName
-                        + "for the handler "
-                        + handler.getName()
-                        + " dose not exit in server.xml");
-            }
+            throw new PhaseException("Invalid Phase ," + phaseName
+                    + "for the handler "
+                    + handler.getName()
+                    + " dose not exit in server.xml or refering to phase in diffrent flow");
+        }
+        /*
+        else {
+        if (isPhaseExistinER(phaseName)) {
+        PhaseMetadata newpPhase = new PhaseMetadata(phaseName);
+        addPhase(newpPhase);
+        newpPhase.addHandler(handler);
+        } else {
+        throw new PhaseException("Invalid Phase ," + phaseName
+        + "for the handler "
+        + handler.getName()
+        + " dose not exit in server.xml");
         }
+        }*/
     }
 
     /**
@@ -142,52 +188,9 @@
         return null;
     }
 
-    /**
-     * Method OrderThePhases
-     */
-    private void OrderThePhases() {
-        // todo complete this using phaseorder
-        PhaseMetadata[] phase = new PhaseMetadata[phaseholder.size()];
-        for (int i = 0; i < phaseholder.size(); i++) {
-            PhaseMetadata tempphase = (PhaseMetadata) phaseholder.get(i);
-            phase[i] = tempphase;
-        }
-        phase = getOrderPhases(phase);
-
-        // remove all items inorder to rearrange them
-        phaseholder.clear();
-        for (int i = 0; i < phase.length; i++) {
-            PhaseMetadata phaseMetaData = phase[i];
-            phaseholder.add(phaseMetaData);
-        }
-    }
-
-    /**
-     * Method getOrderPhases
-     *
-     * @param phasesmetadats
-     * @return
-     */
-    private PhaseMetadata[] getOrderPhases(PhaseMetadata[] phasesmetadats) {
-        PhaseMetadata[] tempphase = new PhaseMetadata[phasesmetadats.length];
-        int count = 0;
-        ArrayList pahselist = registry.getPhases();
-        for (int i = 0; i < pahselist.size(); i++) {
-            String phasemetadata = (String) pahselist.get(i);
-            for (int j = 0; j < phasesmetadats.length; j++) {
-                PhaseMetadata tempmetadata = phasesmetadats[j];
-                if (tempmetadata.getName().equals(phasemetadata)) {
-                    tempphase[count] = tempmetadata;
-                    count++;
-                }
-            }
-        }
-        return tempphase;
-    }
-
     public ArrayList getOrderHandler() throws PhaseException {
         ArrayList handlerList = new ArrayList();
-        OrderThePhases();
+        //OrderThePhases();
         HandlerMetadata[] handlers;
         for (int i = 0; i < phaseholder.size(); i++) {
             PhaseMetadata phase =
@@ -198,7 +201,7 @@
             }
 
         }
-        return  handlerList;
+        return handlerList;
     }
 
 
@@ -215,11 +218,11 @@
      */
     public void getOrderedHandlers(int chainType) throws PhaseException {
         try {
-            OrderThePhases();
+            //OrderThePhases();
 
             HandlerMetadata[] handlers;
             switch (chainType) {
-                case 1:
+                case PhaseMetadata.IN_FLOW:
                     {
                         ArrayList inChain = new ArrayList();
                         for (int i = 0; i < phaseholder.size(); i++) {
@@ -235,7 +238,7 @@
                         service.setPhases(inChain, EngineRegistry.INFLOW);
                         break;
                     }
-                case 2:
+                case PhaseMetadata.OUT_FLOW:
                     {
                         ArrayList outChain = new ArrayList();
                         for (int i = 0; i < phaseholder.size(); i++) {
@@ -251,9 +254,9 @@
                         service.setPhases(outChain, EngineRegistry.OUTFLOW);
                         break;
                     }
-                case 3:
+                case PhaseMetadata.FAULT_FLOW:
                     {
-                        ArrayList faultChain = new ArrayList();  
+                        ArrayList faultChain = new ArrayList();
                         for (int i = 0; i < phaseholder.size(); i++) {
                             PhaseMetadata phase =
                                     (PhaseMetadata) phaseholder.get(i);
@@ -277,13 +280,13 @@
     public void buildTransportChain(PhasesInclude trnsport, int chainType)
             throws PhaseException {
         try {
-            OrderThePhases();
+            //OrderThePhases();
 
             HandlerMetadata[] handlers;
             Class handlerClass = null;
             Handler handler;
             switch (chainType) {
-                case 1:
+                case PhaseMetadata.IN_FLOW:
                     {
                         ArrayList inChain = new ArrayList();
                         for (int i = 0; i < phaseholder.size(); i++) {
@@ -293,8 +296,7 @@
                             handlers = phase.getOrderedHandlers();
                             for (int j = 0; j < handlers.length; j++) {
                                 try {
-                                    handlerClass = Class.forName(
-                                            handlers[j].getClassName(), true,
+                                    handlerClass = Class.forName(handlers[j].getClassName(), true,
                                             Thread.currentThread().getContextClassLoader());
                                     handler =
                                             (Handler) handlerClass.newInstance();
@@ -314,7 +316,7 @@
                         trnsport.setPhases(inChain, EngineRegistry.INFLOW);
                         break;
                     }
-                case 2:
+                case PhaseMetadata.OUT_FLOW:
                     {
                         ArrayList outChain = new ArrayList();
                         for (int i = 0; i < phaseholder.size(); i++) {
@@ -324,8 +326,7 @@
                             handlers = phase.getOrderedHandlers();
                             for (int j = 0; j < handlers.length; j++) {
                                 try {
-                                    handlerClass = Class.forName(
-                                            handlers[j].getClassName(), true,
+                                    handlerClass = Class.forName(handlers[j].getClassName(), true,
                                             Thread.currentThread().getContextClassLoader());
                                     handler =
                                             (Handler) handlerClass.newInstance();
@@ -345,7 +346,7 @@
                         trnsport.setPhases(outChain, EngineRegistry.OUTFLOW);
                         break;
                     }
-                case 3:
+                case PhaseMetadata.FAULT_FLOW:
                     {
                         ArrayList faultChain = new ArrayList();
                         for (int i = 0; i < phaseholder.size(); i++) {
@@ -355,8 +356,7 @@
                             handlers = phase.getOrderedHandlers();
                             for (int j = 0; j < handlers.length; j++) {
                                 try {
-                                    handlerClass = Class.forName(
-                                            handlers[j].getClassName(), true,
+                                    handlerClass = Class.forName(handlers[j].getClassName(), true,
                                             Thread.currentThread().getContextClassLoader());
                                     handler =
                                             (Handler) handlerClass.newInstance();
@@ -393,10 +393,10 @@
     public void buildGlobalChain(AxisGlobal axisGlobal, int chainType)
             throws PhaseException {
         try {
-            OrderThePhases();
+            //OrderThePhases();
             HandlerMetadata[] handlers;
             switch (chainType) {
-                case 1:
+                case PhaseMetadata.IN_FLOW:
                     {
                         ArrayList inChain = new ArrayList();
                         for (int i = 0; i < phaseholder.size(); i++) {
@@ -412,7 +412,7 @@
                         axisGlobal.setPhases(inChain, EngineRegistry.INFLOW);
                         break;
                     }
-                case 2:
+                case PhaseMetadata.OUT_FLOW:
                     {
                         ArrayList outChain = new ArrayList();
                         for (int i = 0; i < phaseholder.size(); i++) {
@@ -428,7 +428,7 @@
                         axisGlobal.setPhases(outChain, EngineRegistry.OUTFLOW);
                         break;
                     }
-                case 3:
+                case PhaseMetadata.FAULT_FLOW:
                     {
                         ArrayList faultChain = new ArrayList();
                         for (int i = 0; i < phaseholder.size(); i++) {

Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/phaseresolver/PhaseMetadata.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/phaseresolver/PhaseMetadata.java?view=diff&r1=159222&r2=159223
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/phaseresolver/PhaseMetadata.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/phaseresolver/PhaseMetadata.java Sun Mar 27 20:29:47 2005
@@ -23,6 +23,10 @@
  * Class PhaseMetadata
  */
 public class PhaseMetadata {
+
+    public static final int IN_FLOW = 1;
+    public static final int OUT_FLOW = 2;
+    public static final int FAULT_FLOW = 3;
     /**
      * Field BOTH_BEFORE_AFTER
      */
@@ -115,13 +119,11 @@
     public void setPhaseFirst(HandlerMetadata phaseFirst)
             throws PhaseException {
         if (phasefirstset) {
-            throw new PhaseException(
-                    "PhaseFirst alredy has been set, cannot have two phaseFirst Handler for same phase "
+            throw new PhaseException("PhaseFirst alredy has been set, cannot have two phaseFirst Handler for same phase "
                     + this.name);
         } else {
             if (getBeforeAfter(phaseFirst) != ANYWHERE) {
-                throw new PhaseException(
-                        "Handler with PhaseFirst can not have any before or after proprty error in "
+                throw new PhaseException("Handler with PhaseFirst can not have any before or after proprty error in "
                         + phaseFirst.getName());
             } else {
                 this.phaseFirst = phaseFirst;
@@ -147,13 +149,11 @@
      */
     public void setPhaseLast(HandlerMetadata phaseLast) throws PhaseException {
         if (phaselastset) {
-            throw new PhaseException(
-                    "PhaseLast already has been set, cannot have two PhaseLast Handler for same phase "
+            throw new PhaseException("PhaseLast already has been set, cannot have two PhaseLast Handler for same phase "
                     + this.name);
         } else {
             if (getBeforeAfter(phaseLast) != ANYWHERE) {
-                throw new PhaseException(
-                        "Handler with PhaseLast property can not have any before or after property error in "
+                throw new PhaseException("Handler with PhaseLast property can not have any before or after property error in "
                         + phaseLast.getName());
             } else {
                 this.phaseLast = phaseLast;
@@ -202,6 +202,7 @@
     public String getName() {
         return name;
     }
+
     /**
      * Method getOrderedHandlers
      *
@@ -248,7 +249,7 @@
     private void orderHandlers() throws PhaseException {
         validatebefore();
         validateafter();
-        arrangeHanders();
+        arrangeHandlers();
         phaseHandlers.clear();
         phaseHandlers = orderHanders;
     }
@@ -301,11 +302,11 @@
     }
 
     /**
-     * Method arrangeHanders
+     * Method arrangeHandlers
      *
      * @throws PhaseException
      */
-    private void arrangeHanders() throws PhaseException {
+    private void arrangeHandlers() throws PhaseException {
         int count = 0;
         int before_after = 0;
         boolean status = false;
@@ -318,7 +319,7 @@
             }
             status = false;
             if (count > phaseHandlers.size()) {
-                throw new PhaseException("Invalid pahse rule for "  + handler.getName());
+                throw new PhaseException("Invalid pahse rule for " + handler.getName());
             }
             before_after = getBeforeAfter(handler);
             switch (before_after) {
@@ -358,7 +359,7 @@
                         break;
                     }
             }
-            if(! status){
+            if (!status) {
                 count++;
             }
         }
@@ -374,10 +375,8 @@
     private int getBeforeAfter(HandlerMetadata handler) throws PhaseException {
         if ((!handler.getRules().getBefore().equals(""))
                 && (!handler.getRules().getAfter().equals(""))) {
-            if (handler.getRules().getBefore().equals(
-                    handler.getRules().getAfter())) {
-                throw new PhaseException(
-                        "Both before and after cannot be the same for this handler"
+            if (handler.getRules().getBefore().equals(handler.getRules().getAfter())) {
+                throw new PhaseException("Both before and after cannot be the same for this handler"
                         + handler.getName());
             }
             return BOTH_BEFORE_AFTER;
@@ -461,21 +460,19 @@
          * just add the entery to vector
          */
         if ((getPhaseFirst() != null) && (getPhaseLast() != null)) {
-            if ((getPhaseFirst().getName().getLocalPart().equals(
-                    handler.getRules().getAfter()))
-                    && (getPhaseLast().getName().getLocalPart().equals(
-                            handler.getRules().getBefore()))) {
+            if ((getPhaseFirst().getName().getLocalPart().equals(handler.getRules().getAfter()))
+                    && (getPhaseLast().getName().getLocalPart().equals(handler.getRules().getBefore()))) {
                 orderHanders.add(handler);
                 return true;
             }
         }
 
-        if(getPhaseFirst() != null &&
-                (getPhaseFirst().getName().getLocalPart().equals(handler.getRules().getAfter()))){
+        if (getPhaseFirst() != null &&
+                (getPhaseFirst().getName().getLocalPart().equals(handler.getRules().getAfter()))) {
             after = 0;
         }
-        if(getPhaseLast() != null &&
-                (getPhaseLast().getName().getLocalPart().equals(handler.getRules().getBefore()))){
+        if (getPhaseLast() != null &&
+                (getPhaseLast().getName().getLocalPart().equals(handler.getRules().getBefore()))) {
             before = orderHanders.size();
         }
 
@@ -483,8 +480,7 @@
             HandlerMetadata temphandler = (HandlerMetadata) orderHanders.get(i);
             if (handler.getRules().getAfter().equals(temphandler.getName().getLocalPart())) {
                 after = i;
-            } else if (handler.getRules().getBefore().equals(
-                    temphandler.getName())) {
+            } else if (handler.getRules().getBefore().equals(temphandler.getName())) {
                 before = i;
             }
             if ((after >= 0) && (before >= 0)) {
@@ -493,7 +489,7 @@
                     throw new PhaseException("incorrect handler order for "
                             + handler.getName());
                 } else {
-                    if(after + 1 <= orderHanders.size()){
+                    if (after + 1 <= orderHanders.size()) {
                         orderHanders.add(after + 1, handler);
                     } else
                         orderHanders.add(after, handler);

Modified: webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/phaseresolver/PhaseResolver.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/phaseresolver/PhaseResolver.java?view=diff&r1=159222&r2=159223
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/phaseresolver/PhaseResolver.java (original)
+++ webservices/axis/trunk/java/modules/core/src/java/org/apache/axis/phaseresolver/PhaseResolver.java Sun Mar 27 20:29:47 2005
@@ -20,11 +20,7 @@
 import org.apache.axis.engine.EngineRegistry;
 
 import javax.xml.namespace.QName;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
+import java.util.*;
 
 /**
  * Class PhaseResolver
@@ -141,17 +137,17 @@
             // QName moduleref = (QName) modules.elementAt(i);
             module = engineRegistry.getModule(moduleref);
             switch (flowtype) {
-                case 1:
+                case PhaseMetadata.IN_FLOW:
                     {
                         flow = module.getInFlow();
                         break;
                     }
-                case 2:
+                case PhaseMetadata.OUT_FLOW:
                     {
                         flow = module.getOutFlow();
                         break;
                     }
-                case 3:
+                case PhaseMetadata.FAULT_FLOW:
                     {
                         flow = module.getFaultFlow();
                         break;
@@ -170,17 +166,17 @@
             }
         }
         switch (flowtype) {
-            case 1:
+            case PhaseMetadata.IN_FLOW:
                 {
                     flow = axisService.getInFlow();
                     break;
                 }
-            case 2:
+            case PhaseMetadata.OUT_FLOW:
                 {
                     flow = axisService.getOutFlow();
                     break;
                 }
-            case 3:
+            case PhaseMetadata.FAULT_FLOW:
                 {
                     flow = axisService.getFaultFlow();
                     break;
@@ -198,6 +194,7 @@
             }
         }
         phaseHolder = new PhaseHolder(engineRegistry, axisService);
+        phaseHolder.setFlowType(flowtype);
         for (int i = 0; i < allHandlers.size(); i++) {
             HandlerMetadata handlerMetaData =
                     (HandlerMetadata) allHandlers.get(i);
@@ -236,13 +233,14 @@
         Flow flow = null;
         for (int type = 1; type < 4; type++) {
             phaseHolder = new PhaseHolder(engineRegistry, null);
+            phaseHolder.setFlowType(type);
             switch (type) {
-                case 1:
+                case PhaseMetadata.IN_FLOW:
                     {
                         flow = transport.getInFlow();
                         break;
                     }
-                case 3:
+                case PhaseMetadata.FAULT_FLOW:
                     {
                         flow = transport.getFaultFlow();
                         break;
@@ -275,13 +273,14 @@
         Flow flow = null;
         for (int type = 1; type < 4; type++) {
             phaseHolder = new PhaseHolder(engineRegistry, null);
+            phaseHolder.setFlowType(type);
             switch (type) {
-                case 2:
+                case PhaseMetadata.OUT_FLOW:
                     {
                         flow = transport.getOutFlow();
                         break;
                     }
-                case 3:
+                case PhaseMetadata.FAULT_FLOW:
                     {
                         flow = transport.getFaultFlow();
                         break;
@@ -318,21 +317,22 @@
         Flow flow = null;
         for (int type = 1; type < 4; type++) {
             phaseHolder = new PhaseHolder(engineRegistry, null);
+            phaseHolder.setFlowType(type);
             for (int intA = 0; intA < count; intA++) {
                 moduleName = (QName) modules.get(intA);
                 module = engineRegistry.getModule(moduleName);
                 switch (type) {
-                    case 1:
+                    case PhaseMetadata.IN_FLOW:
                         {
                             flow = module.getInFlow();
                             break;
                         }
-                    case 2:
+                    case PhaseMetadata.OUT_FLOW:
                         {
                             flow = module.getOutFlow();
                             break;
                         }
-                    case 3:
+                    case PhaseMetadata.FAULT_FLOW:
                         {
                             flow = module.getFaultFlow();
                             break;

Modified: webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/DeploymentConstants.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/DeploymentConstants.java?view=diff&r1=159222&r2=159223
==============================================================================
--- webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/DeploymentConstants.java (original)
+++ webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/DeploymentConstants.java Sun Mar 27 20:29:47 2005
@@ -55,6 +55,7 @@
     // for parameters
     String ATTNAME = "name";
     String ATTLOCKED = "locked";
+    String TYPE = "type";
 
     // for operatiins
     String ATQNAME = "name";

Modified: webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/DeploymentEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/DeploymentEngine.java?view=diff&r1=159222&r2=159223
==============================================================================
--- webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/DeploymentEngine.java (original)
+++ webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/DeploymentEngine.java Sun Mar 27 20:29:47 2005
@@ -185,8 +185,7 @@
         if (hotdeployment) {
             startSearch(this);
         } else {
-            RepositoryListenerImpl repository =
-                    new RepositoryListenerImpl(folderName, this);
+            new RepositoryListenerImpl(folderName, this);
         }
         try {
             valideServerModule();

Modified: webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/DeploymentParser.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/DeploymentParser.java?view=diff&r1=159222&r2=159223
==============================================================================
--- webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/DeploymentParser.java (original)
+++ webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/DeploymentParser.java Sun Mar 27 20:29:47 2005
@@ -144,7 +144,27 @@
                             }
                         }
                     } else if (PHASE_ORDER.equals(ST)) {
-                        ((EngineRegistryImpl) dpengine.getEngineRegistry()).setPhases(processPhaseOrder());
+                       int attribCount = pullparser.getAttributeCount();
+                        if (attribCount > 0) {
+                            for (int i = 0; i < attribCount; i++) {
+                                String attname = pullparser.getAttributeLocalName(i);
+                                String attvalue = pullparser.getAttributeValue(i);
+                                if (TYPE.equals(attname)) {
+                                    if(INFLOWST.equals(attvalue)){
+                                        dpengine.getEngineRegistry().setInPhases(processPhaseOrder());
+                                    }   else if (OUTFLOWST.equals(attvalue)){
+                                         dpengine.getEngineRegistry().setOutPhases(processPhaseOrder());
+                                    }  else if (FAILTFLOWST.equals(attvalue)){
+                                          dpengine.getEngineRegistry().setFaultPhases(processPhaseOrder());
+                                    }  else {
+                                         throw new DeploymentException("un defined flow type  "  + ST);
+                                    }
+                                }
+                            }
+                        } else {
+                            throw new DeploymentException("Flow type is a required attribute in "  + ST);
+                        }
+                        //((EngineRegistryImpl) dpengine.getEngineRegistry()).setPhases(processPhaseOrder());
                     } else if (SERVERST.equals(ST)) {
                         //TODO process attributes
                     } else {

Modified: webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/server.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/server.xml?view=diff&r1=159222&r2=159223
==============================================================================
--- webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/server.xml (original)
+++ webservices/axis/trunk/java/modules/deployment/src/java/org/apache/axis/deployment/server.xml Sun Mar 27 20:29:47 2005
@@ -8,7 +8,19 @@
     </transportSender>
 
 
-    <phaseOrder>
+    <phaseOrder type="inflow">
+        <phase name="global"/>
+        <phase name="transport"/>
+        <phase name="Logging"/>
+        <phase name="service"/>
+    </phaseOrder>
+    <phaseOrder type="outflow">
+        <phase name="global"/>
+        <phase name="transport"/>
+        <phase name="Logging"/>
+        <phase name="service"/>
+    </phaseOrder>
+    <phaseOrder type="faultflow">
         <phase name="global"/>
         <phase name="transport"/>
         <phase name="Logging"/>

Modified: webservices/axis/trunk/java/modules/deployment/src/samples/deployment/server.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/deployment/src/samples/deployment/server.xml?view=diff&r1=159222&r2=159223
==============================================================================
--- webservices/axis/trunk/java/modules/deployment/src/samples/deployment/server.xml (original)
+++ webservices/axis/trunk/java/modules/deployment/src/samples/deployment/server.xml Sun Mar 27 20:29:47 2005
@@ -1,11 +1,20 @@
 <server name ="AxisJava2.0" >
-    <phaseOrder>
+    <phaseOrder type="inflow">
         <phase name="global"/>
         <phase name="transport"/>
-        <phase name="p2"/>
-        <phase name="p1"/>
-        <phase name="p3"/>
-        <phase name="anyhase"/>
+        <phase name="Logging"/>
+        <phase name="service"/>
+    </phaseOrder>
+    <phaseOrder type="outflow">
+        <phase name="global"/>
+        <phase name="transport"/>
+        <phase name="Logging"/>
+        <phase name="service"/>
+    </phaseOrder>
+    <phaseOrder type="faultflow">
+        <phase name="global"/>
+        <phase name="transport"/>
+        <phase name="Logging"/>
         <phase name="service"/>
     </phaseOrder>
 </server>

Modified: webservices/axis/trunk/java/modules/deployment/src/test-resources/deployment/server-transport.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/deployment/src/test-resources/deployment/server-transport.xml?view=diff&r1=159222&r2=159223
==============================================================================
--- webservices/axis/trunk/java/modules/deployment/src/test-resources/deployment/server-transport.xml (original)
+++ webservices/axis/trunk/java/modules/deployment/src/test-resources/deployment/server-transport.xml Sun Mar 27 20:29:47 2005
@@ -19,10 +19,22 @@
         </faultflow>
     </transportSender>
 
-    <phaseOrder>
+    <phaseOrder type="inflow">
         <phase name="global"/>
         <phase name="transport"/>
-        <phase name="module"/>
+        <phase name="Logging"/>
+        <phase name="service"/>
+    </phaseOrder>
+    <phaseOrder type="outflow">
+        <phase name="global"/>
+        <phase name="transport"/>
+        <phase name="Logging"/>
+        <phase name="service"/>
+    </phaseOrder>
+    <phaseOrder type="faultflow">
+        <phase name="global"/>
+        <phase name="transport"/>
+        <phase name="Logging"/>
         <phase name="service"/>
     </phaseOrder>
 </server>

Modified: webservices/axis/trunk/java/modules/deployment/src/test-resources/deployment/server.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/deployment/src/test-resources/deployment/server.xml?view=diff&r1=159222&r2=159223
==============================================================================
--- webservices/axis/trunk/java/modules/deployment/src/test-resources/deployment/server.xml (original)
+++ webservices/axis/trunk/java/modules/deployment/src/test-resources/deployment/server.xml Sun Mar 27 20:29:47 2005
@@ -24,7 +24,20 @@
         <parameter name="para4" locked="xsd:false">LSF</parameter>
     </module>
    -->
-    <phaseOrder>
+
+    <phaseOrder type="inflow">
+        <phase name="global"/>
+        <phase name="transport"/>
+        <phase name="Logging"/>
+        <phase name="service"/>
+    </phaseOrder>
+    <phaseOrder type="outflow">
+        <phase name="global"/>
+        <phase name="transport"/>
+        <phase name="Logging"/>
+        <phase name="service"/>
+    </phaseOrder>
+    <phaseOrder type="faultflow">
         <phase name="global"/>
         <phase name="transport"/>
         <phase name="Logging"/>