[jboss-cvs] JBossAS SVN: r90599 - in projects/jboss-deployers/trunk/deployers-impl/src: test/java/org/jboss/test/deployers/deployer/test and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jun 25 12:32:03 EDT 2009
Author: alesj
Date: 2009-06-25 12:32:02 -0400 (Thu, 25 Jun 2009)
New Revision: 90599
Modified:
projects/jboss-deployers/trunk/deployers-impl/src/main/java/org/jboss/deployers/plugins/sort/DominoOrdering.java
projects/jboss-deployers/trunk/deployers-impl/src/main/java/org/jboss/deployers/plugins/sort/Dots.java
projects/jboss-deployers/trunk/deployers-impl/src/main/java/org/jboss/deployers/plugins/sort/SetDots.java
projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/DeployerFlowUnitTestCase.java
Log:
[JBDEPLOY-201]; fix the real issue - more exact matching.
Modified: projects/jboss-deployers/trunk/deployers-impl/src/main/java/org/jboss/deployers/plugins/sort/DominoOrdering.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-impl/src/main/java/org/jboss/deployers/plugins/sort/DominoOrdering.java 2009-06-25 16:25:14 UTC (rev 90598)
+++ projects/jboss-deployers/trunk/deployers-impl/src/main/java/org/jboss/deployers/plugins/sort/DominoOrdering.java 2009-06-25 16:32:02 UTC (rev 90599)
@@ -76,14 +76,30 @@
if (fstXsnd && sndXfst)
{
// pass-through deployers
- if (one.getHead().match(twoHead) && oneTail.match(twoTail))
- relation = COMPARATOR.compare(one, two);
+ if (oneHead.match(twoHead) && oneTail.match(twoTail))
+ {
+ // lets try do do more exact match
+ // although we should aviod singe size checks
+ // which are already part of match() check
+ // in order not to break comparator comparison
+ if (oneTail.contains(twoHead))
+ relation = -1;
+ else if (twoTail.contains(oneHead))
+ relation = 1;
+ else
+ relation = COMPARATOR.compare(one, two);
+ }
else
+ {
// short circut cycle - throw exception immediately
throwCycleException(cause);
+ }
}
else
+ {
relation = fstXsnd ? -1 : (sndXfst ? 1 : 0);
+ }
+
if (relation == 0)
{
// lazy compare on those who don't have order set
Modified: projects/jboss-deployers/trunk/deployers-impl/src/main/java/org/jboss/deployers/plugins/sort/Dots.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-impl/src/main/java/org/jboss/deployers/plugins/sort/Dots.java 2009-06-25 16:25:14 UTC (rev 90598)
+++ projects/jboss-deployers/trunk/deployers-impl/src/main/java/org/jboss/deployers/plugins/sort/Dots.java 2009-06-25 16:32:02 UTC (rev 90599)
@@ -43,4 +43,13 @@
* @return true if these dots match param dots
*/
boolean match(Dots<T> dots);
+
+ /**
+ * Do this dots contain the param dots.
+ * In most cases this should be te same as a match.
+ *
+ * @param dots the dots
+ * @return true if these dots contain param dots
+ */
+ boolean contains(Dots<T> dots);
}
Modified: projects/jboss-deployers/trunk/deployers-impl/src/main/java/org/jboss/deployers/plugins/sort/SetDots.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-impl/src/main/java/org/jboss/deployers/plugins/sort/SetDots.java 2009-06-25 16:25:14 UTC (rev 90598)
+++ projects/jboss-deployers/trunk/deployers-impl/src/main/java/org/jboss/deployers/plugins/sort/SetDots.java 2009-06-25 16:32:02 UTC (rev 90599)
@@ -22,6 +22,7 @@
package org.jboss.deployers.plugins.sort;
import java.util.Set;
+import java.util.HashSet;
/**
* Domino dots as a set of values.
@@ -60,6 +61,17 @@
return false;
}
+ public boolean contains(Dots<Set<V>> containable)
+ {
+ Set<V> otherSet = containable.getValue();
+ // do not match singe dot, due to name comparison consistency
+ if (otherSet.size() < 2)
+ return false;
+
+ Set<V> copy = new HashSet<V>(otherSet);
+ return copy.retainAll(set) == false;
+ }
+
@Override
public String toString()
{
Modified: projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/DeployerFlowUnitTestCase.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/DeployerFlowUnitTestCase.java 2009-06-25 16:25:14 UTC (rev 90598)
+++ projects/jboss-deployers/trunk/deployers-impl/src/test/java/org/jboss/test/deployers/deployer/test/DeployerFlowUnitTestCase.java 2009-06-25 16:32:02 UTC (rev 90599)
@@ -851,23 +851,16 @@
deployer1.setOutputs("WebServicesMetaData", "WebServiceDeployment", "JBossWebMetaData" );
addDeployer(main, deployer1);
- TestFlowDeployer deployer4 = new TestFlowDeployer("WebServicesDeploymentTypeDeployer");
- deployer4.setInputs("WebServicesMetaData", "WebServiceDeployment", "JBossWebMetaData" );
- deployer4.setOutputs("DeploymentType", "JBossWebMetaData");
- addDeployer(main, deployer4);
-
- TestFlowDeployer deployer2 = new TestFlowDeployer("WebServiceDeployerEJB");
- deployer2.setInputs("JBossWebMetaData", "DeploymentType");
- deployer2.setOutputs("JBossWebMetaData");
+ TestFlowDeployer deployer2 = new TestFlowDeployer("WebServicesDeploymentTypeDeployer");
+ deployer2.setInputs("WebServicesMetaData", "WebServiceDeployment", "JBossWebMetaData" );
+ deployer2.setOutputs("DeploymentType", "JBossWebMetaData");
addDeployer(main, deployer2);
- TestFlowDeployer deployer3 = new TestFlowDeployer("WebServiceDeployerPreJSE");
- deployer3.setInputs("JBossWebMetaData", "DeploymentType");
- deployer3.setOutputs("JBossWebMetaData");
- addDeployer(main, deployer3);
+ TestFlowDeployer deployer4 = new TestFlowDeployer("WebServiceDeployerPreJSE");
+ deployer4.setInputs("JBossWebMetaData", "DeploymentType");
+ deployer4.setOutputs("JBossWebMetaData");
+ addDeployer(main, deployer4);
- // name comparison kicks in between 2,3,4
-
TestFlowDeployer deployer5 = new TestFlowDeployer("AbstractWarDeployer");
deployer5.setInputs("JBossWebMetaData");
deployer5.setOutputs("WarDeployment");
@@ -877,6 +870,18 @@
deployer6.setInputs("DeploymentType", "WarDeployment");
addDeployer(main, deployer6);
+ // #2 duplicate
+ TestFlowDeployer deployer3 = new TestFlowDeployer("WebServicesDeploymentTypeDeployer2");
+ deployer3.setInputs("WebServicesMetaData", "WebServiceDeployment", "JBossWebMetaData" );
+ deployer3.setOutputs("DeploymentType", "JBossWebMetaData");
+ addDeployer(main, deployer3);
+
+ // #4 duplicate
+ TestFlowDeployer deployer7 = new TestFlowDeployer("WebServiceDeployerEJB");
+ deployer7.setInputs("JBossWebMetaData", "DeploymentType");
+ deployer7.setOutputs("JBossWebMetaData");
+ addDeployer(main, deployer7);
+
Deployment deployment = createSimpleDeployment("testWSDeploymentOrder");
main.addDeployment(deployment);
main.process();
@@ -884,9 +889,10 @@
assertEquals(1, deployer1.getDeployOrder());
assertEquals(2, deployer2.getDeployOrder());
assertEquals(3, deployer3.getDeployOrder());
- assertEquals(4, deployer4.getDeployOrder());
- assertEquals(5, deployer5.getDeployOrder());
- assertEquals(6, deployer6.getDeployOrder());
+ assertEquals(4, deployer7.getDeployOrder());
+ assertEquals(5, deployer4.getDeployOrder());
+ assertEquals(6, deployer5.getDeployOrder());
+ assertEquals(7, deployer6.getDeployOrder());
assertEquals(-1, deployer1.getUndeployOrder());
assertEquals(-1, deployer2.getUndeployOrder());
assertEquals(-1, deployer3.getUndeployOrder());
@@ -900,30 +906,37 @@
assertEquals(1, deployer1.getDeployOrder());
assertEquals(2, deployer2.getDeployOrder());
assertEquals(3, deployer3.getDeployOrder());
- assertEquals(4, deployer4.getDeployOrder());
- assertEquals(5, deployer5.getDeployOrder());
- assertEquals(6, deployer6.getDeployOrder());
- assertEquals(12, deployer1.getUndeployOrder());
- assertEquals(11, deployer2.getUndeployOrder());
- assertEquals(10, deployer3.getUndeployOrder());
- assertEquals(9, deployer4.getUndeployOrder());
- assertEquals(8, deployer5.getUndeployOrder());
- assertEquals(7, deployer6.getUndeployOrder());
+ assertEquals(4, deployer7.getDeployOrder());
+ assertEquals(5, deployer4.getDeployOrder());
+ assertEquals(6, deployer5.getDeployOrder());
+ assertEquals(7, deployer6.getDeployOrder());
+ assertEquals(14, deployer1.getUndeployOrder());
+ assertEquals(13, deployer2.getUndeployOrder());
+ assertEquals(12, deployer3.getUndeployOrder());
+ assertEquals(11, deployer7.getUndeployOrder());
+ assertEquals(10, deployer4.getUndeployOrder());
+ assertEquals(9, deployer5.getUndeployOrder());
+ assertEquals(8, deployer6.getUndeployOrder());
main.addDeployment(deployment);
main.process();
- assertEquals(13, deployer1.getDeployOrder());
- assertEquals(14, deployer2.getDeployOrder());
- assertEquals(15, deployer3.getDeployOrder());
- assertEquals(16, deployer4.getDeployOrder());
- assertEquals(17, deployer5.getDeployOrder());
- assertEquals(18, deployer6.getDeployOrder());
- assertEquals(12, deployer1.getUndeployOrder());
- assertEquals(11, deployer2.getUndeployOrder());
- assertEquals(10, deployer3.getUndeployOrder());
- assertEquals(9, deployer4.getUndeployOrder());
- assertEquals(8, deployer5.getUndeployOrder());
- assertEquals(7, deployer6.getUndeployOrder());
+ assertEquals(15, deployer1.getDeployOrder());
+ assertEquals(16, deployer2.getDeployOrder());
+ assertEquals(17, deployer3.getDeployOrder());
+ assertEquals(18, deployer7.getDeployOrder());
+ assertEquals(19, deployer4.getDeployOrder());
+ assertEquals(20, deployer5.getDeployOrder());
+ assertEquals(21, deployer6.getDeployOrder());
+ assertEquals(14, deployer1.getUndeployOrder());
+ assertEquals(13, deployer2.getUndeployOrder());
+ assertEquals(12, deployer3.getUndeployOrder());
+ assertEquals(11, deployer7.getUndeployOrder());
+ assertEquals(10, deployer4.getUndeployOrder());
+ assertEquals(9, deployer5.getUndeployOrder());
+ assertEquals(8, deployer6.getUndeployOrder());
+
+ main.removeDeployment(deployment);
+ main.process();
}
}
More information about the jboss-cvs-commits
mailing list