[jboss-cvs] JBossAS SVN: r102222 - in trunk/system/src/main/java/org/jboss/system: tools and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Mar 10 08:00:45 EST 2010


Author: emuckenhuber
Date: 2010-03-10 08:00:44 -0500 (Wed, 10 Mar 2010)
New Revision: 102222

Modified:
   trunk/system/src/main/java/org/jboss/system/server/profileservice/repository/HotDeploymentRepository.java
   trunk/system/src/main/java/org/jboss/system/tools/ProfileServiceDeploymentRepositoryAdapter.java
Log:
workaround for JBAS-7790

Modified: trunk/system/src/main/java/org/jboss/system/server/profileservice/repository/HotDeploymentRepository.java
===================================================================
--- trunk/system/src/main/java/org/jboss/system/server/profileservice/repository/HotDeploymentRepository.java	2010-03-10 12:18:32 UTC (rev 102221)
+++ trunk/system/src/main/java/org/jboss/system/server/profileservice/repository/HotDeploymentRepository.java	2010-03-10 13:00:44 UTC (rev 102222)
@@ -24,8 +24,10 @@
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 import org.jboss.deployers.vfs.spi.structure.modified.StructureModificationChecker;
 import org.jboss.profileservice.spi.DeploymentContentFlags;
@@ -81,7 +83,7 @@
    {
       boolean trace = log.isTraceEnabled();
       Collection<ProfileDeployment> apps = getDeployments();
-      List<ModificationInfo> modified = new ArrayList<ModificationInfo>();
+      Map<String, ModificationInfo> modifications = new HashMap<String, ModificationInfo>();
       if (trace)
          log.trace("Checking applications for modifications");
       if (trace)
@@ -109,7 +111,7 @@
                {
                   long rootLastModified = root.getLastModified();
                   ModificationInfo info = new ModificationInfo(ctx, rootLastModified, ModifyStatus.REMOVED);
-                  modified.add(info);
+                  modifications.put(pathName, info);
                   iter.remove();
                   // Remove last modified cache
                   cleanUpRoot(root);
@@ -125,11 +127,11 @@
                      log.trace(pathName + " was modified: " + rootLastModified);
                   // Create the modification info
                   ModificationInfo info = new ModificationInfo(ctx, rootLastModified, ModifyStatus.MODIFIED);
-                  modified.add(info);
+                  modifications.put(pathName, info);
                }
             }
             // Now check for additions
-            checkForAdditions(modified);
+            checkForAdditions(modifications);
          }
       }
       finally
@@ -139,9 +141,9 @@
             log.trace("Released content read lock");
       }
 
-      if (modified.size() > 0)
+      if (modifications.size() > 0)
          updateLastModfied();
-      return modified;
+      return modifications.values();
    }
 
    /**
@@ -150,7 +152,7 @@
     * @param modified the modified list
     * @throws Exception for any error
     */
-   protected void checkForAdditions(List<ModificationInfo> modified) throws Exception
+   protected void checkForAdditions(Map<String, ModificationInfo> modified) throws Exception
    {
       for (URI applicationDir : getRepositoryURIs())
       {
@@ -169,18 +171,22 @@
     * @param added the added deployments
     * @throws Exception for any error
     */
-   protected void applyAddedDeployments(URI applicationDir, List<ModificationInfo> modified, List<VirtualFile> added) throws Exception
+   protected void applyAddedDeployments(URI applicationDir, Map<String, ModificationInfo> modified, List<VirtualFile> added) throws Exception
    {
       for (VirtualFile vf : added)
       {
-         // Create deployment
-         ProfileDeployment ctx = createDeployment(vf);
-         // Create modification info
-         ModificationInfo info = new ModificationInfo(ctx, vf.getLastModified(), ModifyStatus.ADDED);
-         // Add
-         modified.add(info);
-         internalAddDeployment(ctx.getName(), ctx);
-         getChecker().addStructureRoot(vf);
+         String pathName = createDeploymentName(vf);
+         if(modified.containsKey(pathName) == false)
+         {
+            // Create deployment
+            ProfileDeployment ctx = createDeployment(vf);
+            // Create modification info
+            ModificationInfo info = new ModificationInfo(ctx, vf.getLastModified(), ModifyStatus.ADDED);
+            // Add
+            modified.put(pathName, info);
+            internalAddDeployment(ctx.getName(), ctx);
+            getChecker().addStructureRoot(vf);
+         }
       }
    }
 

Modified: trunk/system/src/main/java/org/jboss/system/tools/ProfileServiceDeploymentRepositoryAdapter.java
===================================================================
--- trunk/system/src/main/java/org/jboss/system/tools/ProfileServiceDeploymentRepositoryAdapter.java	2010-03-10 12:18:32 UTC (rev 102221)
+++ trunk/system/src/main/java/org/jboss/system/tools/ProfileServiceDeploymentRepositoryAdapter.java	2010-03-10 13:00:44 UTC (rev 102222)
@@ -347,7 +347,7 @@
       }
       
       @Override
-      protected void checkForAdditions(List<ModificationInfo> modified) throws Exception
+      protected void checkForAdditions(Map<String, ModificationInfo> modified) throws Exception
       {
          // clear new cache
          newCache.clear();
@@ -376,7 +376,7 @@
                      lockRead();
                   }
                   ModificationInfo removed = new ModificationInfo(previous, lastModified, ModificationInfo.ModifyStatus.REMOVED);
-                  modified.add(removed);
+                  modified.put(name, removed);
                }
             }
          }
@@ -386,7 +386,7 @@
       }
 
       @Override
-      protected void applyAddedDeployments(URI applicationDir, List<ModificationInfo> modified, List<VirtualFile> added) throws Exception
+      protected void applyAddedDeployments(URI applicationDir, Map<String, ModificationInfo> modified, List<VirtualFile> added) throws Exception
       {
          // remove from old cache - it exists
          List<VirtualFile> files = oldCache.remove(applicationDir);




More information about the jboss-cvs-commits mailing list