[jboss-cvs] JBossAS SVN: r61178 - trunk/system/src/main/org/jboss/system/server/profile/basic.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Mar 7 01:44:19 EST 2007
Author: scott.stark at jboss.org
Date: 2007-03-07 01:44:19 -0500 (Wed, 07 Mar 2007)
New Revision: 61178
Modified:
trunk/system/src/main/org/jboss/system/server/profile/basic/ProfileImpl.java
Log:
JBAS-4055, correct the basic profile handling of hotdeployments
Modified: trunk/system/src/main/org/jboss/system/server/profile/basic/ProfileImpl.java
===================================================================
--- trunk/system/src/main/org/jboss/system/server/profile/basic/ProfileImpl.java 2007-03-07 06:43:13 UTC (rev 61177)
+++ trunk/system/src/main/org/jboss/system/server/profile/basic/ProfileImpl.java 2007-03-07 06:44:19 UTC (rev 61178)
@@ -264,7 +264,7 @@
return Collections.emptyList();
ArrayList<ModificationInfo> modified = new ArrayList<ModificationInfo>();
- Collection<DeploymentContext> apps = getApplications();
+ Collection<DeploymentContext> apps = applications.values();
boolean trace = log.isTraceEnabled();
if( trace )
log.trace("Checking applications for modifications");
@@ -277,7 +277,9 @@
DeploymentContext ctx = iter.next();
VirtualFile root = ctx.getRoot();
// Save the containing parent dir to scan for new deployments
- applicationDir = root.getParent();
+ VirtualFile parent = root.getParent();
+ if( applicationDir == null || parent.getPathName().compareTo(applicationDir.getPathName()) < 0 )
+ applicationDir = parent;
Long rootLastModified = root.getLastModified();
String name = root.getPathName();
// Check for removal
@@ -302,16 +304,14 @@
// TODO: this could check metadata files modifications as well
}
// Now check for additions
- List<VirtualFile> children = applicationDir.getChildren();
- for(VirtualFile vf : children)
+ ArrayList<VirtualFile> added = new ArrayList<VirtualFile>();
+ addDeployments(added, applicationDir);
+ for(VirtualFile vf : added)
{
- if( applications.containsKey(vf.getPathName()) == false )
- {
- DeploymentContext ctx = new AbstractDeploymentContext(vf);
- ModificationInfo info = new ModificationInfo(ctx, vf.getLastModified(), ModifyStatus.ADDED);
- modified.add(info);
- applications.put(vf.getPathName(), ctx);
- }
+ DeploymentContext ctx = new AbstractDeploymentContext(vf);
+ ModificationInfo info = new ModificationInfo(ctx, vf.getLastModified(), ModifyStatus.ADDED);
+ modified.add(info);
+ applications.put(ctx.getName(), ctx);
}
}
return modified;
@@ -431,5 +431,31 @@
return Collections.unmodifiableCollection(applications.values());
}
+ private void addDeployments(List<VirtualFile> list, VirtualFile root)
+ throws Exception
+ {
+ List<VirtualFile> components = root.getChildren();
+
+ for (VirtualFile component : components)
+ {
+ String key = component.toURI().toString();
+ if( applications.containsKey(key) == true )
+ continue;
+ if (component.isLeaf())
+ {
+ list.add(component);
+ }
+ else if (component.getName().indexOf('.') == -1)
+ {
+ // recurse if not '.' in name and recursive search is enabled
+ addDeployments(list, component);
+ }
+ else
+ {
+ list.add(component);
+ }
+ }
+ }
+
}
More information about the jboss-cvs-commits
mailing list