[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