[webbeans-commits] Webbeans SVN: r1431 - in tck/trunk/impl: src/main/java/org/jboss/webbeans/tck/impl/packaging and 4 other directories.
webbeans-commits at lists.jboss.org
webbeans-commits at lists.jboss.org
Fri Feb 6 12:39:44 EST 2009
Author: pete.muir at jboss.org
Date: 2009-02-06 12:39:44 -0500 (Fri, 06 Feb 2009)
New Revision: 1431
Modified:
tck/trunk/impl/pom.xml
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ArtifactDescriptor.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/TCKArtifactDescriptor.java
tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifactDescriptor.java
tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/ArtifactTest.java
tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/war/ArtifactTest.java
Log:
Add support for artifacts which contain libraries
Modified: tck/trunk/impl/pom.xml
===================================================================
--- tck/trunk/impl/pom.xml 2009-02-06 17:02:22 UTC (rev 1430)
+++ tck/trunk/impl/pom.xml 2009-02-06 17:39:44 UTC (rev 1431)
@@ -109,6 +109,35 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-in-container-dependencies</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>copy</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.outputDirectory}/lib</outputDirectory>
+ <stripVersion>true</stripVersion>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.jboss.webbeans.tck</groupId>
+ <artifactId>webbeans-tck-api</artifactId>
+ <overWrite>true</overWrite>
+ </artifactItem>
+ <artifactItem>
+ <groupId>org.testng</groupId>
+ <artifactId>testng</artifactId>
+ <classifier>jdk15</classifier>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ArtifactDescriptor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ArtifactDescriptor.java 2009-02-06 17:02:22 UTC (rev 1430)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ArtifactDescriptor.java 2009-02-06 17:39:44 UTC (rev 1431)
@@ -3,6 +3,7 @@
import static org.jboss.webbeans.tck.impl.util.Reflections.loadClass;
import static org.jboss.webbeans.tck.impl.util.Reflections.loadResourceAsStream;
import static org.jboss.webbeans.tck.impl.util.Reflections.loadResources;
+import static org.jboss.webbeans.tck.impl.util.Strings.isEmpty;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
@@ -16,6 +17,7 @@
import java.net.URL;
import java.net.URLClassLoader;
import java.net.URLDecoder;
+import java.util.Collections;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Random;
@@ -233,14 +235,12 @@
}
for (ResourceDescriptor resourceDescriptor : getResources())
{
- String directoryName = resourceDescriptor.getName().substring(0, resourceDescriptor.getName().lastIndexOf("/"));
- String fileName = resourceDescriptor.getName().substring(resourceDescriptor.getName().lastIndexOf("/") + 1);
- File directory = makeDirectoryStructure(root, directoryName);
- File file = new File(directory, fileName);
- file.createNewFile();
- file.deleteOnExit();
- copy(resourceDescriptor.getSource().openStream(), file);
+ copyResource(resourceDescriptor, root);
}
+ for (ResourceDescriptor resourceDescriptor : getLibraries())
+ {
+ copyResource(resourceDescriptor, getLibraryRoot(root));
+ }
this.explodedJar = root;
}
@@ -249,6 +249,31 @@
copyClass(clazz.getName(), root);
}
+ private static void copyResource(ResourceDescriptor resourceDescriptor, File root) throws IOException
+ {
+ String directoryName;
+ String fileName;
+ if (resourceDescriptor.getName().lastIndexOf("/") > 0)
+ {
+ directoryName = resourceDescriptor.getName().substring(0, resourceDescriptor.getName().lastIndexOf("/"));
+ fileName = resourceDescriptor.getName().substring(resourceDescriptor.getName().lastIndexOf("/") + 1);
+ }
+ else
+ {
+ directoryName = "";
+ fileName = resourceDescriptor.getName();
+ }
+ if (isEmpty(fileName))
+ {
+ throw new IllegalArgumentException("Unable to determine source file name of " + resourceDescriptor);
+ }
+ File directory = makeDirectoryStructure(root, directoryName);
+ File file = new File(directory, fileName);
+ file.createNewFile();
+ file.deleteOnExit();
+ copy(resourceDescriptor.getSource().openStream(), file);
+ }
+
private static void copyClass(String className, File root) throws IOException
{
String classFilePathName = getClassFileName(className);
@@ -345,4 +370,19 @@
return ".jar";
}
+ public Set<ResourceDescriptor> getLibraries()
+ {
+ return Collections.emptySet();
+ }
+
+ public File getLibraryRoot(File archiveRoot)
+ {
+ return archiveRoot;
+ }
+
+ public boolean isLibrariesSupported()
+ {
+ return false;
+ }
+
}
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/TCKArtifactDescriptor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/TCKArtifactDescriptor.java 2009-02-06 17:02:22 UTC (rev 1430)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/TCKArtifactDescriptor.java 2009-02-06 17:39:44 UTC (rev 1431)
@@ -1,6 +1,10 @@
package org.jboss.webbeans.tck.impl.packaging.jsr299;
+import java.util.HashSet;
+import java.util.Set;
+
import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.packaging.ResourceDescriptor;
import org.jboss.webbeans.tck.impl.util.Reflections;
import org.jboss.webbeans.tck.literals.NewLiteral;
import org.jboss.webbeans.tck.runner.TestRunner;
@@ -40,4 +44,13 @@
this.unit = unit;
}
+ @Override
+ public Set<ResourceDescriptor> getLibraries()
+ {
+ Set<ResourceDescriptor> libraries = new HashSet<ResourceDescriptor>(super.getLibraries());
+ libraries.add(new ResourceDescriptor("testng.jar", "/lib/testng-jdk15.jar"));
+ libraries.add(new ResourceDescriptor("jsr-299-tck-api.jar", "/lib/webbeans-tck-api.jar"));
+ return libraries;
+ }
+
}
Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifactDescriptor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifactDescriptor.java 2009-02-06 17:02:22 UTC (rev 1430)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifactDescriptor.java 2009-02-06 17:39:44 UTC (rev 1431)
@@ -15,6 +15,7 @@
public static final String CUSTOM_WEB_XML_FILE_NAME = "org/jboss/webbeans/tck/impl/packaging/war/default/custom-web.xml";
private File webInfClasses;
+ private File webInfLib;
public WarArtifactDescriptor(Class<?> declaringClass, String beansXmlSourceFileName)
{
@@ -49,4 +50,21 @@
{
return ".war";
}
+
+ @Override
+ public boolean isLibrariesSupported()
+ {
+ return true;
+ }
+
+ @Override
+ public File getLibraryRoot(File archiveRoot)
+ {
+ if (webInfLib == null)
+ {
+ webInfLib = new File(archiveRoot, "WEB-INF/lib");
+ webInfLib.mkdirs();
+ }
+ return webInfLib;
+ }
}
Modified: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/ArtifactTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/ArtifactTest.java 2009-02-06 17:02:22 UTC (rev 1430)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/ArtifactTest.java 2009-02-06 17:39:44 UTC (rev 1431)
@@ -20,7 +20,7 @@
File webInf = root.listFiles(WEB_INF_FILTER)[0];
assert webInf.getName().equals("WEB-INF");
assert webInf.isDirectory();
- assert webInf.listFiles().length == 2;
+ assert webInf.listFiles().length == 3;
assert webInf.listFiles(WEB_XML_FILTER).length == 1;
File webXml = webInf.listFiles(WEB_XML_FILTER)[0];
assert webXml.isFile();
Modified: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/war/ArtifactTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/war/ArtifactTest.java 2009-02-06 17:02:22 UTC (rev 1430)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/war/ArtifactTest.java 2009-02-06 17:39:44 UTC (rev 1431)
@@ -3,10 +3,12 @@
import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.jar.JarEntry;
import java.util.jar.JarInputStream;
+import org.jboss.webbeans.tck.AbstractTest;
import org.jboss.webbeans.tck.impl.packaging.war.WarArtifactDescriptor;
import org.jboss.webbeans.tck.impl.test.packaging.AbstractArtifactTest;
import org.testng.annotations.Test;
@@ -34,7 +36,7 @@
File webInf = root.listFiles(WEB_INF_FILTER)[0];
assert webInf.getName().equals("WEB-INF");
assert webInf.isDirectory();
- assert webInf.listFiles().length == 2;
+ assert webInf.listFiles().length == 3;
assert webInf.listFiles(WEB_XML_FILTER).length == 1;
File webXml = webInf.listFiles(WEB_XML_FILTER)[0];
assert webXml.isFile();
@@ -53,6 +55,25 @@
assert cowClasses.length == 1;
assert cowClasses[0].getName().equals("Cow.class");
assert cowClasses[0].isFile();
+ File tckPackage = getPackageAsFile(AbstractTest.class.getPackage(), root);
+ File[] abstractTestClasses = tckPackage.listFiles(new FilenameFilter()
+ {
+
+ public boolean accept(File dir, String name)
+ {
+ return name.equals("AbstractTest.class");
+ }
+
+ });
+ assert abstractTestClasses.length == 1;
+ assert abstractTestClasses[0].getName().equals("AbstractTest.class");
+ assert abstractTestClasses[0].isFile();
+ File webInfLib = new File(webInf, "lib");
+ assert webInfLib.isDirectory();
+ assert webInfLib.list().length == 2;
+ List<String> libs = Arrays.asList(webInfLib.list());
+ assert libs.contains("jsr-299-tck-api.jar");
+ assert libs.contains("testng.jar");
}
More information about the weld-commits
mailing list