[jboss-cvs] JBossAS SVN: r75053 - trunk/system/src/main/org/jboss/system/server/profileservice/repository.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Jun 25 08:13:05 EDT 2008
Author: alesj
Date: 2008-06-25 08:13:05 -0400 (Wed, 25 Jun 2008)
New Revision: 75053
Modified:
trunk/system/src/main/org/jboss/system/server/profileservice/repository/SerializableDeploymentRepository.java
Log:
Cache virtual files for app dirs.
Modified: trunk/system/src/main/org/jboss/system/server/profileservice/repository/SerializableDeploymentRepository.java
===================================================================
--- trunk/system/src/main/org/jboss/system/server/profileservice/repository/SerializableDeploymentRepository.java 2008-06-25 10:57:11 UTC (rev 75052)
+++ trunk/system/src/main/org/jboss/system/server/profileservice/repository/SerializableDeploymentRepository.java 2008-06-25 12:13:05 UTC (rev 75053)
@@ -38,7 +38,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.HashMap;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import java.util.zip.ZipInputStream;
@@ -50,10 +50,10 @@
import org.jboss.profileservice.spi.AttachmentsSerializer;
import org.jboss.profileservice.spi.DeploymentRepository;
import org.jboss.profileservice.spi.ModificationInfo;
+import org.jboss.profileservice.spi.ModificationInfo.ModifyStatus;
import org.jboss.profileservice.spi.NoSuchDeploymentException;
import org.jboss.profileservice.spi.NoSuchProfileException;
import org.jboss.profileservice.spi.ProfileKey;
-import org.jboss.profileservice.spi.ModificationInfo.ModifyStatus;
import org.jboss.util.file.Files;
import org.jboss.virtual.VFS;
import org.jboss.virtual.VirtualFile;
@@ -86,6 +86,8 @@
private File deployersDir;
/** The application phase deployments dir */
private File[] applicationDirs;
+ /** The application phase deployments dir */
+ private Map<String, VirtualFile> deployDirs;
/** The deployment post edit root location */
private File adminEditsRoot;
/** The profile key this repository is associated with */
@@ -468,7 +470,7 @@
// Now check for additions
for (File applicationDir : applicationDirs)
{
- VirtualFile deployDir = VFS.getRoot(applicationDir.toURI());
+ VirtualFile deployDir = getDeployDir(applicationDir);
List<VirtualFile> children = deployDir.getChildren();
for(VirtualFile vf : children)
{
@@ -616,6 +618,7 @@
if( applicationDir.exists() == false )
throw new FileNotFoundException("Profile contains no deploy dir: "+applicationDir);
}
+ deployDirs = new HashMap<String, VirtualFile>(applicationDirs.length);
adminEditsRoot = new File(profileRoot, "profile/edits");
@@ -632,11 +635,29 @@
VFS deployersVFS = VFS.getVFS(deployersDir.toURI());
loadDeployers(deployersVFS.getRoot());
for (File applicationDir : applicationDirs)
+ loadApplications(getDeployDir(applicationDir));
+
+ this.lastModified = System.currentTimeMillis();
+ }
+
+ /**
+ * Get virtual file for app dir.
+ *
+ * @param applicationDir the app dir
+ * @return virtual file representing app dir
+ * @throws IOException for any error
+ */
+ protected VirtualFile getDeployDir(File applicationDir) throws IOException
+ {
+ URI uri = applicationDir.toURI();
+ String uriString = uri.toString();
+ VirtualFile dir = deployDirs.get(uriString);
+ if (dir == null)
{
- VFS deployVFS = VFS.getVFS(applicationDir.toURI());
- loadApplications(deployVFS.getRoot());
+ dir = VFS.getRoot(uri);
+ deployDirs.put(uriString, dir);
}
- this.lastModified = System.currentTimeMillis();
+ return dir;
}
/**
More information about the jboss-cvs-commits
mailing list