Author: gdaniels Date: Mon Dec 31 09:30:40 2007 New Revision: 607758 URL: http://svn.apache.org/viewvc?rev=607758&view=rev Log: Little cleanup, JavaDoc improvements, move dynamic phase processing up in ModuleBuilder. Also add an actual handler to NewPhase in the module1 module; need to finish testing that it works when engaged.
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.java webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/DeployableChain.java webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/module1/META-INF/module.xml webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/deployment/DeploymentTotalTest.java Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.java?rev=607758&r1=607757&r2=607758&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.java (original) +++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.java Mon Dec 31 09:30:40 2007 @@ -132,6 +132,10 @@ module.setModuleDescription("module description not found"); } + // Processing Dynamic Phase + Iterator phaseItr = moduleElement.getChildrenWithName(new QName(TAG_PHASE)); + processModulePhase(phaseItr); + // setting the PolicyInclude // processing <wsp:Policy> .. </..> elements @@ -209,9 +213,6 @@ module.addOperation(operation); } - // Processing Dynamic Phase - Iterator phaseItr = moduleElement.getChildrenWithName(new QName(TAG_PHASE)); - processModulePhase(phaseItr); } catch (XMLStreamException e) { throw new DeploymentException(e); } catch(AxisFault e) { Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/DeployableChain.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/DeployableChain.java?rev=607758&r1=607757&r2=607758&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/DeployableChain.java (original) +++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/engine/DeployableChain.java Mon Dec 31 09:30:40 2007 @@ -28,6 +28,11 @@ import java.util.HashSet; import java.util.Iterator; +/** + * A DeployableChain is a container which manages dependencies between Deployables. You + * deploy() them in, then call rebuild() which will set up a chain, correctly ordered according + * to the constraints in the Deployables. + */ public class DeployableChain { /** The actual things (handlers or phases) */ List chain = new ArrayList(); @@ -35,10 +40,11 @@ Deployable first; Deployable last; + /** A Map of name -> List (of Strings). Each List contains the key's successors */ Map activeConstraints = new HashMap(); - private Map deployed = new HashMap(); - Map activePhaseConstraints = new HashMap(); + /** A Map of name -> Deployable for all deployed items */ + private Map deployed = new HashMap(); /** * Deploy a Deployable into this chain. Note that this does NOT order yet. The idea @@ -51,12 +57,18 @@ */ public void deploy(Deployable deployable) throws Exception { String name = deployable.getName(); + Set mySuccessors = deployable.getSuccessors(); + Set myPredecessors = deployable.getPredecessors(); if (deployable.isFirst()) { if (first != null) { throw new Exception("'" + first.getName() + "' is already first, can't deploy '" + name + "' as first also."); } + if (myPredecessors != null) { + throw new Exception("Deploying '" + name + + "' - can't both be first and have predecessors!"); + } first = deployable; } @@ -65,37 +77,29 @@ throw new Exception("'" + last.getName() + "' is already last, can't deploy '" + name + "' as last also."); } + if (mySuccessors != null) { + throw new Exception("Deploying '" + name + + "' - can't both be last and have successors!"); + } last = deployable; } - // Now check internal consistency - Set mySuccessors = deployable.getSuccessors(); - Set myPredecessors = deployable.getPredecessors(); - - if (mySuccessors != null && deployable.isLast()) { - throw new Exception("Deploying '" + name + - "' - can't both be last and have successors!"); - } - if (myPredecessors != null && deployable.isFirst()) { - throw new Exception("Deploying '" + name + - "' - can't both be first and have predecessors!"); - } - Deployable previous = (Deployable)deployed.get(name); if (previous == null) { deployed.put(name, deployable); } else { // If something by this name already exists, ensure it's compatible if (previous.isFirst() != deployable.isFirst()) { - throw new Exception(); + throw new Exception("Can't deploy '" + name + "', values for first don't match!"); } if (previous.isLast() != deployable.isLast()) { - throw new Exception(); + throw new Exception("Can't deploy '" + name + "', values for last don't match!"); } Object target = previous.getTarget(); if (target != null) { if (deployable.getTarget() != null && !target.equals(deployable.getTarget())) { - throw new Exception(); + throw new Exception("Can't deploy '" + name + + "', targets must either match or be null."); } } else { previous.setTarget(deployable.getTarget()); @@ -228,6 +232,12 @@ } } + /** + * Adds a before/after relationship to the active constraints. + * + * @param before name of the Deployable that must come first + * @param after name of the Deployable that must come later + */ public void addRelationship(String before, String after) { Set successors = (Set)activeConstraints.get(before); if (successors == null) { @@ -237,7 +247,13 @@ successors.add(after); } + /** + * Get the chain - once rebuild() has been called this will be the chain of target objects. + * + * @return a List of target objects in the correct order + */ public List getChain() { + // todo - should this call rebuild() automatically (if dirty flag is set)? return chain; } } Modified: webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/module1/META-INF/module.xml URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/module1/META-INF/module.xml?rev=607758&r1=607757&r2=607758&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/module1/META-INF/module.xml (original) +++ webservices/axis2/trunk/java/modules/kernel/test-resources/deployment/module1/META-INF/module.xml Mon Dec 31 09:30:40 2007 @@ -24,6 +24,9 @@ <handler name="h2" class="org.apache.axis2.registry.Handler3"> <order phase="OperationInPhase"/> </handler> + <handler name="h6" class="org.apache.axis2.registry.Handler3"> + <order phase="NewPhase"/> + </handler> </InFlow> <OutFlow> Modified: webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/deployment/DeploymentTotalTest.java URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/deployment/DeploymentTotalTest.java?rev=607758&r1=607757&r2=607758&view=diff ============================================================================== --- webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/deployment/DeploymentTotalTest.java (original) +++ webservices/axis2/trunk/java/modules/kernel/test/org/apache/axis2/deployment/DeploymentTotalTest.java Mon Dec 31 09:30:40 2007 @@ -31,25 +31,24 @@ import java.util.ArrayList; public class DeploymentTotalTest extends TestCase { - AxisConfiguration er; - + AxisConfiguration axisConfig; protected void setUp() throws Exception { String filename = AbstractTestCase.basedir + "/target/test-resources/deployment"; - er = ConfigurationContextFactory + axisConfig = ConfigurationContextFactory .createConfigurationContextFromFileSystem(filename, filename + "/axis2.xml") .getAxisConfiguration(); // OK, no exceptions. Now make sure we read the correct file... } public void testparseService1() throws AxisFault, XMLStreamException { - Parameter param = er.getParameter("FavoriteColor"); + Parameter param = axisConfig.getParameter("FavoriteColor"); assertNotNull("No FavoriteColor parameter in axis2.xml!", param); assertEquals("purple", param.getValue()); } public void testDynamicPhase() { - ArrayList inFlow = er.getInFlowPhases(); + ArrayList inFlow = axisConfig.getInFlowPhases(); int index = 0; for (int i = 0; i < inFlow.size(); i++) { Phase phase = (Phase) inFlow.get(i); @@ -59,7 +58,7 @@ } assertEquals("Wrong index for NewPhase!", 3, index); - inFlow = er.getInFaultFlowPhases(); + inFlow = axisConfig.getInFaultFlowPhases(); boolean found = false; for (int i = 0; i < inFlow.size(); i++) { Phase phase = (Phase) inFlow.get(i); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]