[jboss-cvs] JBossAS SVN: r92606 - in projects/profileservice/trunk/core/src: main/java/org/jboss/profileservice/virtual/deployment and 5 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Aug 20 07:43:14 EDT 2009
Author: emuckenhuber
Date: 2009-08-20 07:43:14 -0400 (Thu, 20 Aug 2009)
New Revision: 92606
Modified:
projects/profileservice/trunk/core/src/main/java/org/jboss/profileservice/virtual/assembly/BasicVirtualAssemblyContext.java
projects/profileservice/trunk/core/src/main/java/org/jboss/profileservice/virtual/deployment/AbstractVirtualPath.java
projects/profileservice/trunk/core/src/test/java/org/jboss/test/profileservice/virtual/test/StructureMetaDataUnitTestCase.java
projects/profileservice/trunk/core/src/test/java/org/jboss/test/profileservice/virtual/test/VirtualDeploymentAssemblyUnitTestCase.java
projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test-deployment/child/test.jar
projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test-deployment/lib/deployment.jar
projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/deployer.jar
projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/lib/fake.jar
projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/lib/fake2.jar
Log:
workaround some VFS archive issues.
Modified: projects/profileservice/trunk/core/src/main/java/org/jboss/profileservice/virtual/assembly/BasicVirtualAssemblyContext.java
===================================================================
--- projects/profileservice/trunk/core/src/main/java/org/jboss/profileservice/virtual/assembly/BasicVirtualAssemblyContext.java 2009-08-20 10:29:21 UTC (rev 92605)
+++ projects/profileservice/trunk/core/src/main/java/org/jboss/profileservice/virtual/assembly/BasicVirtualAssemblyContext.java 2009-08-20 11:43:14 UTC (rev 92606)
@@ -24,9 +24,9 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.List;
+import org.jboss.logging.Logger;
import org.jboss.profileservice.spi.virtual.ClassPathLocation;
import org.jboss.profileservice.spi.virtual.MetaDataLocation;
import org.jboss.profileservice.spi.virtual.PathRestriction;
@@ -36,8 +36,6 @@
import org.jboss.virtual.AssembledDirectory;
import org.jboss.virtual.VirtualFile;
import org.jboss.virtual.VirtualFileFilter;
-import org.jboss.virtual.VisitorAttributes;
-import org.jboss.virtual.plugins.vfs.helpers.FilterVirtualFileVisitor;
/**
* @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
@@ -53,6 +51,9 @@
/** The virtual deployment assembly. */
private final AbstractVirtualDeploymentAssembly assembly;
+ /** The logger. */
+ private static final Logger log = Logger.getLogger(BasicVirtualAssemblyContext.class);
+
public BasicVirtualAssemblyContext(AssembledDirectory root, AbstractVirtualDeploymentAssembly assembly)
{
if(root == null)
@@ -164,15 +165,7 @@
protected Collection<String> addVirtualPath(VirtualFile location, VirtualPathMetaData path) throws IOException
{
- if(location.isLeaf())
- {
- getRoot().addChild(location, location.getName());
- return Collections.singleton(location.getName());
- }
- else
- {
- return addVirtualPath(location, path.getIncludes(), path.getExcludes());
- }
+ return addVirtualPath(location, path.getIncludes(), path.getExcludes());
}
/**
@@ -195,7 +188,7 @@
final VirtualFileFilter recurseFilter = new VirtualFileFilter()
{
public boolean accepts(VirtualFile file)
- {
+ {
boolean matched = false;
String path = file.getPathName();
if(includes == null || includes.isEmpty())
@@ -227,25 +220,61 @@
return true;
}
};
+
+ // FIXME hack the VFS archive recursion madness
+ recurse(location, recurseFilter, included);
- // Why is this not working?
- // assembled.addPath(root, recurseFilter);
-
- // This should not be here
- VisitorAttributes va = new VisitorAttributes();
- va.setLeavesOnly(true);
-
- FilterVirtualFileVisitor visitor = new FilterVirtualFileVisitor(recurseFilter, va);
- location.visit(visitor);
- List<VirtualFile> files = visitor.getMatched();
- for (VirtualFile vf : files)
+ return included;
+ }
+
+ /**
+ * Recurse through the children.
+ *
+ * FIXME this is a hack and should be handled by VFS correctly.
+ *
+ * @param location the virtual file
+ * @param filter the accept filter
+ * @param included collection where included files are added
+ * @throws IOException
+ */
+ protected void recurse(VirtualFile location, VirtualFileFilter filter, Collection<String> included) throws IOException
+ {
+ if(isLeaf(location) && filter.accepts(location))
{
- getRoot().mkdirs(vf.getPathName()).addChild(vf);
- included.add(vf.getPathName());
+ VirtualFile assembled = getRoot().mkdirs(location.getPathName()).addChild(location, location.getName());
+ included.add(assembled.getName());
+ return;
}
- return included;
+ List<VirtualFile> children = location.getChildren();
+ for(VirtualFile vf : children)
+ {
+ if(isLeaf(vf))
+ {
+ if(filter.accepts(vf))
+ {
+ VirtualFile assembled = getRoot().mkdirs(vf.getPathName()).addChild(vf, vf.getName());
+ included.add(assembled.getName());
+ }
+ }
+ else
+ {
+ recurse(vf, filter, included);
+ }
+ }
}
+ /**
+ * Check if the file is a leaf. We also consider archives
+ * as leaves, as we don't care about their contents.
+ *
+ * @param vf the virtual file
+ * @return true if the vf is a leaf or archive
+ * @throws IOException
+ */
+ protected static boolean isLeaf(VirtualFile vf) throws IOException
+ {
+ return vf.isLeaf() || vf.isArchive();
+ }
}
Modified: projects/profileservice/trunk/core/src/main/java/org/jboss/profileservice/virtual/deployment/AbstractVirtualPath.java
===================================================================
--- projects/profileservice/trunk/core/src/main/java/org/jboss/profileservice/virtual/deployment/AbstractVirtualPath.java 2009-08-20 10:29:21 UTC (rev 92605)
+++ projects/profileservice/trunk/core/src/main/java/org/jboss/profileservice/virtual/deployment/AbstractVirtualPath.java 2009-08-20 11:43:14 UTC (rev 92606)
@@ -122,5 +122,30 @@
this.excludes = excludes;
}
+ @Override
+ public String toString()
+ {
+ StringBuffer buffer = new StringBuffer();
+ buffer.append(getClass().getSimpleName());
+ buffer.append("{");
+ toString(buffer);
+ buffer.append("}");
+ return buffer.toString();
+ }
+
+ /**
+ * For subclasses to override toString()
+ *
+ * @param buffer the buffer
+ */
+ protected void toString(StringBuffer buffer)
+ {
+ buffer.append("path=").append(getPath());
+ if(getIncludes() != null && getIncludes().isEmpty() == false)
+ buffer.append(", includes=-").append(getIncludes());
+ if(getExcludes() != null && getExcludes().isEmpty() == false)
+ buffer.append(", excludes=").append(getExcludes());
+ }
+
}
Modified: projects/profileservice/trunk/core/src/test/java/org/jboss/test/profileservice/virtual/test/StructureMetaDataUnitTestCase.java
===================================================================
--- projects/profileservice/trunk/core/src/test/java/org/jboss/test/profileservice/virtual/test/StructureMetaDataUnitTestCase.java 2009-08-20 10:29:21 UTC (rev 92605)
+++ projects/profileservice/trunk/core/src/test/java/org/jboss/test/profileservice/virtual/test/StructureMetaDataUnitTestCase.java 2009-08-20 11:43:14 UTC (rev 92606)
@@ -35,7 +35,6 @@
import org.jboss.profileservice.repository.virtual.VirtualRepositoryMetaData;
import org.jboss.profileservice.spi.ProfileDeployment;
import org.jboss.profileservice.spi.virtual.VirtualDeployment;
-import org.jboss.virtual.plugins.context.jar.JarUtils;
/**
* Test StructureMetaData creation.
@@ -53,9 +52,6 @@
{
// Set the jboss.deployment.resources
System.setProperty("jboss.deployment.resources", getClass().getResource(".").toExternalForm());
-
- // Ignore VFS archive stuff
- JarUtils.clearSuffixes();
// Get the repository meta data
VirtualRepositoryMetaData repository = unmarshal("repository.xml", VirtualRepositoryMetaData.class);
Modified: projects/profileservice/trunk/core/src/test/java/org/jboss/test/profileservice/virtual/test/VirtualDeploymentAssemblyUnitTestCase.java
===================================================================
--- projects/profileservice/trunk/core/src/test/java/org/jboss/test/profileservice/virtual/test/VirtualDeploymentAssemblyUnitTestCase.java 2009-08-20 10:29:21 UTC (rev 92605)
+++ projects/profileservice/trunk/core/src/test/java/org/jboss/test/profileservice/virtual/test/VirtualDeploymentAssemblyUnitTestCase.java 2009-08-20 11:43:14 UTC (rev 92606)
@@ -32,7 +32,6 @@
import org.jboss.profileservice.virtual.deployment.AbstractVirtualDeploymentRequirement;
import org.jboss.virtual.AssembledDirectory;
import org.jboss.virtual.VirtualFile;
-import org.jboss.virtual.plugins.context.jar.JarUtils;
/**
* Test virtual deployment assembly.
@@ -47,9 +46,6 @@
{
// Set the jboss.deployment.resources
System.setProperty("jboss.deployment.resources", getClass().getResource(".").toExternalForm());
-
- // Ignore VFS archive stuff
- JarUtils.clearSuffixes();
// Get the repository meta data
VirtualRepositoryMetaData repository = unmarshal("repository.xml", VirtualRepositoryMetaData.class);
@@ -71,16 +67,16 @@
// Check meta data includes/excludes
assertIncluded(deployer.getRoot(), new String[] {
"test.xml", "test1.xml", "include.xml"});
- asssertExcluded(deployer.getRoot(), new String[] {"exclude-beans.xml"});
+ asssertExcluded(deployer.getRoot(), new String[] {"exclude-beans.xml"});
// Check class path includes/excludes
assertIncluded(deployer.getRoot(), new String[] {
"deployer.jar", "fake.jar", "fake2.jar"});
asssertExcluded(deployer.getRoot(), new String[] {"bad.jar"});
// Check requirement
resolves(simpleVD, deployerVD.getRequires().get(0));
-
log.debug(deployer.getRoot());
+
// Test deployment
AbstractVirtualDeployment deploymentVD = (AbstractVirtualDeployment) deployments.get("test-deployment");
ProfileDeployment deployment = factory.createDeployment(deploymentVD);
@@ -96,6 +92,9 @@
log.debug(deployment.getRoot());
log.debug(subDeploymentRoot);
+ log.debug(deployer.getRoot().getChildrenRecursively());
+ log.debug(deployment.getRoot().getChildrenRecursively());
+
}
protected void resolves(AbstractVirtualDeployment capability,
Modified: projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test-deployment/child/test.jar
===================================================================
--- projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test-deployment/child/test.jar 2009-08-20 10:29:21 UTC (rev 92605)
+++ projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test-deployment/child/test.jar 2009-08-20 11:43:14 UTC (rev 92606)
@@ -0,0 +1,4 @@
+PK
+
+
\ No newline at end of file
Modified: projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test-deployment/lib/deployment.jar
===================================================================
--- projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test-deployment/lib/deployment.jar 2009-08-20 10:29:21 UTC (rev 92605)
+++ projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test-deployment/lib/deployment.jar 2009-08-20 11:43:14 UTC (rev 92606)
@@ -0,0 +1,4 @@
+PK
+
+
\ No newline at end of file
Modified: projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/deployer.jar
===================================================================
--- projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/deployer.jar 2009-08-20 10:29:21 UTC (rev 92605)
+++ projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/deployer.jar 2009-08-20 11:43:14 UTC (rev 92606)
@@ -0,0 +1,4 @@
+PK
+
+
\ No newline at end of file
Modified: projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/lib/fake.jar
===================================================================
--- projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/lib/fake.jar 2009-08-20 10:29:21 UTC (rev 92605)
+++ projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/lib/fake.jar 2009-08-20 11:43:14 UTC (rev 92606)
@@ -0,0 +1,4 @@
+PK
+
+
\ No newline at end of file
Modified: projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/lib/fake2.jar
===================================================================
--- projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/lib/fake2.jar 2009-08-20 10:29:21 UTC (rev 92605)
+++ projects/profileservice/trunk/core/src/test/resources/org/jboss/test/profileservice/virtual/test/test.deployer/lib/fake2.jar 2009-08-20 11:43:14 UTC (rev 92606)
@@ -0,0 +1,4 @@
+PK
+
+
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list