[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