[webbeans-commits] Webbeans SVN: r1409 - in tck/trunk: impl/src/main/java/org/jboss/webbeans/tck/impl and 31 other directories.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Wed Feb 4 12:10:43 EST 2009


Author: pete.muir at jboss.org
Date: 2009-02-04 12:10:43 -0500 (Wed, 04 Feb 2009)
New Revision: 1409

Added:
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Artifact.java
   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/Classes.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/DeclarativeArtifactProcessor.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/EjbArtifact.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/IntegrationTest.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Packaging.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/PackagingType.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Resource.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Resources.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/BeansXml.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/JSR299ArtifactDescriptor.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/
   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/WebXml.java
   tck/trunk/impl/src/main/resources/org/jboss/webbeans/tck/impl/packaging/jsr299/
   tck/trunk/impl/src/main/resources/org/jboss/webbeans/tck/impl/packaging/jsr299/default/
   tck/trunk/impl/src/main/resources/org/jboss/webbeans/tck/impl/packaging/jsr299/default/beans.xml
   tck/trunk/impl/src/main/resources/org/jboss/webbeans/tck/impl/packaging/war/
   tck/trunk/impl/src/main/resources/org/jboss/webbeans/tck/impl/packaging/war/default/
   tck/trunk/impl/src/main/resources/org/jboss/webbeans/tck/impl/packaging/war/default/web.xml
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/ArtifactTest.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/Cow.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/ArtifactTest.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/Cow.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyClassesSpecifiedTest.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyCustomBeansXmlTest.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyEjbTest.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyIntegrationTest.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyResourcesSpecifiedTest.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyTest.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyWarUnitTest_Broken.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/Fox.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/pests/
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/pests/Rat.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/
   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/Cow.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/DummyCustomWebXmlTest.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/DummyTest.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/Fox.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/ArtifactTest.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/Cow.java
   tck/trunk/impl/src/test/resources/org/
   tck/trunk/impl/src/test/resources/org/jboss/
   tck/trunk/impl/src/test/resources/org/jboss/webbeans/
   tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/
   tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/
   tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/
   tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/packaging/
   tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/
   tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/
   tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/foo/
   tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/foo/foo.xml
   tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/my-web-beans.xml
   tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/
   tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/my-web.xml
Removed:
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Artifact.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/TCKArtifact.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/standard/war/
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifact.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/report/CoverageProcessor.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/report/CoverageProcessorFactory.java
   tck/trunk/impl/src/main/resources/org/jboss/webbeans/tck/impl/packaging/standard/war/
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/defined/
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/ArtifactTest.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/Cow.java
Modified:
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/IntegratedContainers.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ResourceDescriptor.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/util/Reflections.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/util/Strings.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/AbstractArtifactTest.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/ArtifactTest.java
   tck/trunk/pom.xml
Log:
Support for declarative definiton of artifacts

Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/IntegratedContainers.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/IntegratedContainers.java	2009-02-04 08:27:17 UTC (rev 1408)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/IntegratedContainers.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -6,7 +6,7 @@
 
 import javax.inject.manager.Manager;
 
-import org.jboss.webbeans.tck.impl.packaging.standard.war.WarArtifact;
+import org.jboss.webbeans.tck.impl.packaging.jsr299.TCKArtifactDescriptor;
 import org.jboss.webbeans.tck.spi.Containers;
 import org.jboss.webbeans.tck.spi.StandaloneContainers;
 import org.jboss.webbeans.tck.spi.helpers.ForwardingContainers;
@@ -39,7 +39,7 @@
    {
       try
       {
-         return deploy(WarArtifact.of(classes).asJar());
+         return deploy(new TCKArtifactDescriptor(null).asJar());
       }
       catch (IOException e)
       {
@@ -51,7 +51,7 @@
    {
       try
       {
-         return deploy(enabledDeploymentTypes, WarArtifact.of(classes).asJar());
+         return deploy(enabledDeploymentTypes, new TCKArtifactDescriptor(null).asJar());
       }
       catch (IOException e)
       {

Deleted: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Artifact.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Artifact.java	2009-02-04 08:27:17 UTC (rev 1408)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Artifact.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -1,217 +0,0 @@
-package org.jboss.webbeans.tck.impl.packaging;
-
-import static org.jboss.webbeans.tck.impl.util.Reflections.loadResourceAsStream;
-import static org.jboss.webbeans.tck.impl.util.Reflections.loadResources;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.net.URLDecoder;
-import java.util.HashSet;
-import java.util.Random;
-import java.util.Set;
-import java.util.jar.JarInputStream;
-
-import org.apache.log4j.Logger;
-
-public class Artifact
-{
-   
-   /**
-    * Implementation of {@link Scanner} which can scan a {@link URLClassLoader}
-    * 
-    * @author Thomas Heute
-    * @author Gavin King
-    * @author Norman Richards
-    * @author Pete Muir
-    *
-    */
-   private static class URLPackageScanner
-   {
-      private static final Logger log = Logger.getLogger(URLPackageScanner.class);
-    
-      private final Package pkg;
-      
-      private final Set<String> classes = new HashSet<String>();
-      
-      public URLPackageScanner(Package pkg)
-      {
-         this.pkg = pkg;
-      }
-      
-      private void scanPackage()
-      {
-         try
-         {
-            Set<String> paths = new HashSet<String>();
-            String packageName = pkg.getName().replace(".", "/");
-            for (URL url : loadResources(packageName))
-            {
-               String urlPath = url.getFile();
-               urlPath = URLDecoder.decode(urlPath, "UTF-8");
-               if ( urlPath.startsWith("file:") )
-               {
-                     urlPath = urlPath.substring(5);
-               }
-               if ( urlPath.indexOf('!')>0 )
-               {
-                  urlPath = urlPath.substring(0, urlPath.indexOf('!'));
-               }
-               paths.add(urlPath);
-            }
-            handle(paths);
-         }
-         catch (IOException ioe) 
-         {
-            log.warn("could not read: " + pkg.getName(), ioe);
-         }
-      }
-      
-      private void handle(Set<String> paths)
-      {
-         for ( String urlPath: paths )
-         {
-            log.trace("scanning: " + urlPath);
-            File file = new File(urlPath);
-            if ( file.isDirectory() )
-            {
-               for ( File child: file.listFiles() )
-               {
-                  if ( !child.isDirectory() )
-                  {
-                     classes.add(pkg.getName() + "." + child.getName().substring(0, child.getName().lastIndexOf(".class")));
-                  }
-               }
-            }
-         }
-      }
-      
-      public Set<String> getClassNames()
-      {
-         scanPackage();
-         return classes;
-      }
-      
-   }
-
-   
-   public static final Random random = new Random(System.currentTimeMillis());
-   
-   private final Set<Class<?>> classes;
-   private final Set<Package> packages;
-   private final Set<ResourceDescriptor> resources;
-   
-   public Artifact()
-   {
-      classes = new HashSet<Class<?>>();
-      resources = new HashSet<ResourceDescriptor>();
-      packages = new HashSet<Package>();
-   }
-   
-   public JarInputStream asJar() throws IOException
-   {
-      return new JarInputStream(create().toURL().openStream());
-   }
-   
-   public File create() throws IOException
-   {
-      File root = new File(System.getProperty("java.io.tmpdir") + "/" + getClass().getName() + "." + random.nextInt());
-      root.mkdir();
-      root.deleteOnExit();
-      for (Class<?> clazz : getClasses())
-      {
-         copyClass(clazz, root);
-      }
-      for (Package pkg : getPackages())
-      {
-         URLPackageScanner packageScanner = new URLPackageScanner(pkg);
-         for (String className : packageScanner.getClassNames())
-         {
-            copyClass(className, root);
-         }
-      }
-      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);
-      }
-      return root;
-   }
-   
-   private static void copyClass(Class<?> clazz, File root) throws IOException
-   {
-      copyClass(clazz.getName(), root);
-   }
-   
-   private static void copyClass(String className, File root) throws IOException
-   {
-      String classFilePathName = getClassFileName(className);
-      String directoryName = classFilePathName.substring(0, classFilePathName.lastIndexOf("/"));
-      String classFileName = classFilePathName.substring(classFilePathName.lastIndexOf("/") + 1);
-      File packageDirectory = makeDirectoryStructure(root, directoryName);
-      File classFile = new File(packageDirectory, classFileName);
-      classFile.createNewFile();
-      classFile.deleteOnExit();
-      copy(loadResourceAsStream(classFilePathName), classFile);
-   }
-   
-   private static File makeDirectoryStructure(File root, String directoryName)
-   {
-      for (String directory : directoryName.split("\\/"))
-      {
-         root = new File(root, directory);
-         root.mkdir();
-         root.deleteOnExit();
-      }
-      return root;
-   }
-   
-   private static String getClassFileName(String className)
-   {
-      return className.replace('.', '/') + ".class";
-   }
-   
-   private static void copy(InputStream inputStream, File file) throws IOException
-   {
-      OutputStream os = new FileOutputStream(file);
-      try 
-      {
-         byte[] buf = new byte[1024];
-         int i = 0;
-         while ((i = inputStream.read(buf)) != -1) 
-         {
-             os.write(buf, 0, i);
-         }
-     } 
-     finally 
-     {
-         os.close();
-     }
-
-   }
-   
-   public Set<Class<?>> getClasses()
-   {
-      return classes;
-   }
-
-   public Set<ResourceDescriptor> getResources()
-   {
-      return resources;
-   }
-   
-   public Set<Package> getPackages()
-   {
-      return packages;
-   }
-   
-}

Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Artifact.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Artifact.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Artifact.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.impl.packaging;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+ at Retention(RUNTIME)
+ at Target(TYPE)
+public @interface Artifact
+{
+   
+   boolean addCurrentPackage() default true;
+   
+}

Copied: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ArtifactDescriptor.java (from rev 1408, tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Artifact.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ArtifactDescriptor.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ArtifactDescriptor.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,217 @@
+package org.jboss.webbeans.tck.impl.packaging;
+
+import static org.jboss.webbeans.tck.impl.util.Reflections.loadResourceAsStream;
+import static org.jboss.webbeans.tck.impl.util.Reflections.loadResources;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.net.URLDecoder;
+import java.util.HashSet;
+import java.util.Random;
+import java.util.Set;
+import java.util.jar.JarInputStream;
+
+import org.apache.log4j.Logger;
+
+public class ArtifactDescriptor
+{
+   
+   /**
+    * Implementation of {@link Scanner} which can scan a {@link URLClassLoader}
+    * 
+    * @author Thomas Heute
+    * @author Gavin King
+    * @author Norman Richards
+    * @author Pete Muir
+    *
+    */
+   private static class URLPackageScanner
+   {
+      private static final Logger log = Logger.getLogger(URLPackageScanner.class);
+    
+      private final Package pkg;
+      
+      private final Set<String> classes = new HashSet<String>();
+      
+      public URLPackageScanner(Package pkg)
+      {
+         this.pkg = pkg;
+      }
+      
+      private void scanPackage()
+      {
+         try
+         {
+            Set<String> paths = new HashSet<String>();
+            String packageName = pkg.getName().replace(".", "/");
+            for (URL url : loadResources(packageName))
+            {
+               String urlPath = url.getFile();
+               urlPath = URLDecoder.decode(urlPath, "UTF-8");
+               if ( urlPath.startsWith("file:") )
+               {
+                     urlPath = urlPath.substring(5);
+               }
+               if ( urlPath.indexOf('!')>0 )
+               {
+                  urlPath = urlPath.substring(0, urlPath.indexOf('!'));
+               }
+               paths.add(urlPath);
+            }
+            handle(paths);
+         }
+         catch (IOException ioe) 
+         {
+            log.warn("could not read: " + pkg.getName(), ioe);
+         }
+      }
+      
+      private void handle(Set<String> paths)
+      {
+         for ( String urlPath: paths )
+         {
+            log.trace("scanning: " + urlPath);
+            File file = new File(urlPath);
+            if ( file.isDirectory() )
+            {
+               for ( File child: file.listFiles() )
+               {
+                  if ( !child.isDirectory() && child.getName().endsWith(".class"))
+                  {
+                     classes.add(pkg.getName() + "." + child.getName().substring(0, child.getName().lastIndexOf(".class")));
+                  }
+               }
+            }
+         }
+      }
+      
+      public Set<String> getClassNames()
+      {
+         scanPackage();
+         return classes;
+      }
+      
+   }
+
+   
+   public static final Random random = new Random(System.currentTimeMillis());
+   
+   private final Set<Class<?>> classes;
+   private final Set<Package> packages;
+   private final Set<ResourceDescriptor> resources;
+   
+   public ArtifactDescriptor()
+   {
+      classes = new HashSet<Class<?>>();
+      resources = new HashSet<ResourceDescriptor>();
+      packages = new HashSet<Package>();
+   }
+   
+   public JarInputStream asJar() throws IOException
+   {
+      return new JarInputStream(create().toURL().openStream());
+   }
+   
+   public File create() throws IOException
+   {
+      File root = new File(System.getProperty("java.io.tmpdir") + "/" + getClass().getName() + "." + random.nextInt());
+      root.mkdir();
+      root.deleteOnExit();
+      for (Class<?> clazz : getClasses())
+      {
+         copyClass(clazz, root);
+      }
+      for (Package pkg : getPackages())
+      {
+         URLPackageScanner packageScanner = new URLPackageScanner(pkg);
+         for (String className : packageScanner.getClassNames())
+         {
+            copyClass(className, root);
+         }
+      }
+      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);
+      }
+      return root;
+   }
+   
+   private static void copyClass(Class<?> clazz, File root) throws IOException
+   {
+      copyClass(clazz.getName(), root);
+   }
+   
+   private static void copyClass(String className, File root) throws IOException
+   {
+      String classFilePathName = getClassFileName(className);
+      String directoryName = classFilePathName.substring(0, classFilePathName.lastIndexOf("/"));
+      String classFileName = classFilePathName.substring(classFilePathName.lastIndexOf("/") + 1);
+      File packageDirectory = makeDirectoryStructure(root, directoryName);
+      File classFile = new File(packageDirectory, classFileName);
+      classFile.createNewFile();
+      classFile.deleteOnExit();
+      copy(loadResourceAsStream(classFilePathName), classFile);
+   }
+   
+   private static File makeDirectoryStructure(File root, String directoryName)
+   {
+      for (String directory : directoryName.split("\\/"))
+      {
+         root = new File(root, directory);
+         root.mkdir();
+         root.deleteOnExit();
+      }
+      return root;
+   }
+   
+   private static String getClassFileName(String className)
+   {
+      return className.replace('.', '/') + ".class";
+   }
+   
+   private static void copy(InputStream inputStream, File file) throws IOException
+   {
+      OutputStream os = new FileOutputStream(file);
+      try 
+      {
+         byte[] buf = new byte[1024];
+         int i = 0;
+         while ((i = inputStream.read(buf)) != -1) 
+         {
+             os.write(buf, 0, i);
+         }
+     } 
+     finally 
+     {
+         os.close();
+     }
+
+   }
+   
+   public Set<Class<?>> getClasses()
+   {
+      return classes;
+   }
+
+   public Set<ResourceDescriptor> getResources()
+   {
+      return resources;
+   }
+   
+   public Set<Package> getPackages()
+   {
+      return packages;
+   }
+   
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ArtifactDescriptor.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Classes.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Classes.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Classes.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.impl.packaging;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+ at Retention(RUNTIME)
+ at Target(TYPE)
+public @interface Classes
+{
+   
+   Class<?>[] value();
+   
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Classes.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/DeclarativeArtifactProcessor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/DeclarativeArtifactProcessor.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/DeclarativeArtifactProcessor.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,165 @@
+package org.jboss.webbeans.tck.impl.packaging;
+
+import static org.jboss.webbeans.tck.impl.packaging.PackagingType.EAR;
+import static org.jboss.webbeans.tck.impl.packaging.PackagingType.UNSPECIFIED;
+import static org.jboss.webbeans.tck.impl.packaging.PackagingType.WAR;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import org.jboss.webbeans.tck.impl.packaging.jsr299.BeansXml;
+import org.jboss.webbeans.tck.impl.packaging.jsr299.TCKArtifactDescriptor;
+import org.jboss.webbeans.tck.impl.packaging.war.WarArtifactDescriptor;
+import org.jboss.webbeans.tck.impl.packaging.war.WebXml;
+
+public class DeclarativeArtifactProcessor
+{
+   
+   private final boolean unit;
+   private final boolean ejbs;
+   private final boolean addDeclaringPackage;
+   private final String beansXml;
+   private final String webXml;
+   private final PackagingType packagingType;
+   private final Collection<ResourceDescriptor> resources;
+   private final Collection<Class<?>> classes;
+   
+   private Class<?> declaringClass;
+
+   public DeclarativeArtifactProcessor(Class<?> declaringClass)
+   {
+      this.declaringClass = declaringClass;
+      
+      if (declaringClass.isAnnotationPresent(Artifact.class))
+      {
+         this.addDeclaringPackage = declaringClass.getAnnotation(Artifact.class).addCurrentPackage();
+         this.ejbs = false;
+      }
+      else if (declaringClass.isAnnotationPresent(EjbArtifact.class))
+      {
+         this.addDeclaringPackage = declaringClass.getAnnotation(EjbArtifact.class).addCurrentPackage();
+         this.ejbs = true;
+      }
+      else
+      {
+         throw new IllegalStateException("Unable to find @Artifact on " + declaringClass);
+      }
+      
+      if (declaringClass.isAnnotationPresent(BeansXml.class))
+      {
+         this.beansXml = asAbsolutePath(declaringClass.getAnnotation(BeansXml.class).value());
+      }
+      else
+      {
+         this.beansXml = null;
+      }
+      
+      if (declaringClass.isAnnotationPresent(Packaging.class))
+      {
+         this.packagingType = declaringClass.getAnnotation(Packaging.class).value();
+      }
+      else
+      {
+         this.packagingType = UNSPECIFIED;
+      }
+      
+      if (declaringClass.isAnnotationPresent(IntegrationTest.class))
+      {
+         this.unit = false;
+      }
+      else
+      {
+         this.unit = true;
+      }
+      
+      if (unit && (packagingType.equals(WAR) || packagingType.equals(EAR)))
+      {
+         throw new IllegalArgumentException("Cannot specify @Packaging(WAR) or @Packaging(EAR) if @Integration test is not present");
+      }
+      
+      if (declaringClass.isAnnotationPresent(WebXml.class))
+      {
+         if (packagingType == null)
+         {
+            throw new IllegalArgumentException("Cannot specify @WebXml for non-integration tests");
+         }
+         else
+         {
+            this.webXml = asAbsolutePath(declaringClass.getAnnotation(WebXml.class).value());
+         }
+      }
+      else
+      {
+         this.webXml = null;
+      }
+      
+      if (declaringClass.isAnnotationPresent(Resources.class))
+      {
+         this.resources = asResourceDescriptors(declaringClass.getAnnotation(Resources.class).value());
+      }
+      else
+      {
+         this.resources = Collections.emptyList();
+      }
+      
+      if (declaringClass.isAnnotationPresent(Classes.class))
+      {
+         this.classes = Arrays.asList(declaringClass.getAnnotation(Classes.class).value());
+      }
+      else
+      {
+         this.classes = Collections.emptyList();
+      }
+   }
+   
+   public TCKArtifactDescriptor getArtifact()
+   {
+      final TCKArtifactDescriptor artifact;
+      switch (packagingType)
+      {
+         case WAR:
+            artifact = new WarArtifactDescriptor(beansXml, webXml);
+            break;
+         case EAR:
+            throw new UnsupportedOperationException();
+         default:
+            artifact = new TCKArtifactDescriptor(beansXml);
+            break;
+      }
+      if (addDeclaringPackage)
+      {
+         artifact.getPackages().add(declaringClass.getPackage());
+      }
+      artifact.setEjbs(ejbs);
+      artifact.setUnit(unit);
+      artifact.getClasses().addAll(classes);
+      artifact.getResources().addAll(resources);
+      return artifact;
+   }
+   
+   private Collection<ResourceDescriptor> asResourceDescriptors(Resource[] resources)
+   {
+      List<ResourceDescriptor> resourceDescriptors = new ArrayList<ResourceDescriptor>();
+      for (Resource resource : resources)
+      {
+         resourceDescriptors.add(new ResourceDescriptor(resource.destination(), asAbsolutePath(resource.source())));
+      }
+      return resourceDescriptors;
+   }
+   
+   private String asAbsolutePath(String path)
+   {
+      if (path.startsWith("/"))
+      {
+         return path.substring(1);
+      }
+      else
+      {
+         return declaringClass.getPackage().getName().replace(".", "/") + "/" + path;
+      }
+   }
+   
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/DeclarativeArtifactProcessor.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/EjbArtifact.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/EjbArtifact.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/EjbArtifact.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.impl.packaging;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+ at Retention(RUNTIME)
+ at Target(TYPE)
+public @interface EjbArtifact
+{
+   
+   boolean addCurrentPackage() default true;
+   
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/EjbArtifact.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/IntegrationTest.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/IntegrationTest.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/IntegrationTest.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,14 @@
+package org.jboss.webbeans.tck.impl.packaging;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+ at Retention(RUNTIME)
+ at Target(TYPE)
+public @interface IntegrationTest
+{
+   
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/IntegrationTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Packaging.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Packaging.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Packaging.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.impl.packaging;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+ at Retention(RUNTIME)
+ at Target(TYPE)
+public @interface Packaging
+{
+   
+   PackagingType value() default PackagingType.UNSPECIFIED;
+   
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Packaging.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/PackagingType.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/PackagingType.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/PackagingType.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,8 @@
+package org.jboss.webbeans.tck.impl.packaging;
+
+public enum PackagingType
+{
+   
+   UNSPECIFIED, EAR, WAR;
+   
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/PackagingType.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Resource.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Resource.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Resource.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.tck.impl.packaging;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+ at Retention(RUNTIME)
+ at Target(TYPE)
+public @interface Resource
+{
+   
+   String source();
+   
+   String destination();
+   
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Resource.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ResourceDescriptor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ResourceDescriptor.java	2009-02-04 08:27:17 UTC (rev 1408)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/ResourceDescriptor.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -1,5 +1,7 @@
 package org.jboss.webbeans.tck.impl.packaging;
 
+import static org.jboss.webbeans.tck.impl.util.Reflections.loadResource;
+
 import java.net.URL;
 
 public class ResourceDescriptor
@@ -14,6 +16,20 @@
       this.source = source;
    }
    
+   public ResourceDescriptor(String name, String source)
+   {
+      this.name = name;
+      if (name == null)
+      {
+         throw new IllegalArgumentException("Unable to have a null resource");
+      }
+      this.source = loadResource(source);
+      if (this.source == null)
+      {
+         throw new IllegalArgumentException("Unable to load file for " + source);
+      }
+   }
+   
    public String getName()
    {
       return name;
@@ -24,4 +40,30 @@
       return source;
    }
    
+   @Override
+   public boolean equals(Object obj)
+   {
+      if (obj instanceof ResourceDescriptor)
+      {
+         ResourceDescriptor that = (ResourceDescriptor) obj;
+         return this.getName().equals(that.getName());
+      }
+      else
+      {
+         return false;
+      }
+   }
+   
+   @Override
+   public int hashCode()
+   {
+      return name.hashCode();
+   }
+   
+   @Override
+   public String toString()
+   {
+      return name + " (" + source.toString() + ")";
+   }
+   
 }

Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Resources.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Resources.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Resources.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.impl.packaging;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+ at Retention(RUNTIME)
+ at Target(TYPE)
+public @interface Resources
+{
+   
+   Resource[] value();
+   
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Resources.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Deleted: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/TCKArtifact.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/TCKArtifact.java	2009-02-04 08:27:17 UTC (rev 1408)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/TCKArtifact.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -1,20 +0,0 @@
-package org.jboss.webbeans.tck.impl.packaging;
-
-import org.jboss.webbeans.tck.AbstractTest;
-import org.jboss.webbeans.tck.impl.util.Reflections;
-import org.jboss.webbeans.tck.literals.NewLiteral;
-
-public class TCKArtifact extends Artifact
-{
-   
-   public TCKArtifact()
-   {
-      super();
-      getPackages().add(AbstractTest.class.getPackage());
-      getPackages().add(NewLiteral.class.getPackage());
-      getPackages().add(Reflections.class.getPackage());
-   }
-   
-   
-   
-}

Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/BeansXml.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/BeansXml.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/BeansXml.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.impl.packaging.jsr299;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+ at Retention(RUNTIME)
+ at Target(TYPE)
+public @interface BeansXml
+{
+   
+   String value();
+   
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/BeansXml.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/JSR299ArtifactDescriptor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/JSR299ArtifactDescriptor.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/JSR299ArtifactDescriptor.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,23 @@
+package org.jboss.webbeans.tck.impl.packaging.jsr299;
+
+import static org.jboss.webbeans.tck.impl.util.Strings.isEmpty;
+
+import org.jboss.webbeans.tck.impl.packaging.ArtifactDescriptor;
+import org.jboss.webbeans.tck.impl.packaging.ResourceDescriptor;
+
+public class JSR299ArtifactDescriptor extends ArtifactDescriptor
+{
+   
+   public static final String BEANS_XML_DESTINATION = "META-INF/beans.xml";
+   public static final String STANDARD_BEANS_XML_FILE_NAME = "org/jboss/webbeans/tck/impl/packaging/jsr299/default/beans.xml";
+   
+   public JSR299ArtifactDescriptor(String beansXmlSourceFileName)
+   {
+      if (isEmpty(beansXmlSourceFileName))
+      {
+         beansXmlSourceFileName = STANDARD_BEANS_XML_FILE_NAME;
+      }
+      getResources().add(new ResourceDescriptor(BEANS_XML_DESTINATION, beansXmlSourceFileName));
+   }
+   
+}

Added: 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	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/jsr299/TCKArtifactDescriptor.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,41 @@
+package org.jboss.webbeans.tck.impl.packaging.jsr299;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.util.Reflections;
+import org.jboss.webbeans.tck.literals.NewLiteral;
+
+public class TCKArtifactDescriptor extends JSR299ArtifactDescriptor
+{
+   
+   private boolean unit;
+   private boolean ejbs;
+   
+   public TCKArtifactDescriptor(String beansXmlSourceFileName)
+   {
+      super(beansXmlSourceFileName);
+      getPackages().add(AbstractTest.class.getPackage());
+      getPackages().add(NewLiteral.class.getPackage());
+      getPackages().add(Reflections.class.getPackage());
+   }
+   
+   public boolean isEjbs()
+   {
+      return ejbs;
+   }
+   
+   public void setEjbs(boolean ejbs)
+   {
+      this.ejbs = ejbs;
+   }
+   
+   public boolean isUnit()
+   {
+      return unit;
+   }
+   
+   public void setUnit(boolean unit)
+   {
+      this.unit = unit;
+   }
+   
+}

Copied: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war (from rev 1408, tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/standard/war)

Deleted: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifact.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/standard/war/WarArtifact.java	2009-02-04 08:27:17 UTC (rev 1408)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifact.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -1,49 +0,0 @@
-package org.jboss.webbeans.tck.impl.packaging.standard.war;
-
-import static org.jboss.webbeans.tck.impl.util.Reflections.loadResource;
-
-import java.net.URL;
-import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.jboss.webbeans.tck.impl.packaging.ResourceDescriptor;
-import org.jboss.webbeans.tck.impl.packaging.TCKArtifact;
-
-public class WarArtifact extends TCKArtifact
-{
-   
-   public static final String WEB_XML_DESTINATION = "WEB-INF/web.xml";
-   public static final String STANDARD_WEB_XML_FILE_NAME = "org/jboss/webbeans/tck/impl/packaging/standard/war/web.xml";
-   
-   public static final String BEANS_XML_DESTINATION = "WEB-INF/beans.xml";
-   public static final String STANDARD_BEANS_XML_FILE_NAME = "org/jboss/webbeans/tck/impl/packaging/standard/war/beans.xml";
-   
-   public static WarArtifact of(Class<?>... classes)
-   {
-      WarArtifact war = new WarArtifact();
-      war.getClasses().addAll(new HashSet<Class<?>>(Arrays.asList(classes)));
-      return war;
-   }
-   
-   public WarArtifact()
-   {
-      Set<ResourceDescriptor> standardResources = new HashSet<ResourceDescriptor>();
-      standardResources.add(new ResourceDescriptor(BEANS_XML_DESTINATION, getBeansXmlSource()));
-      standardResources.add(new ResourceDescriptor(WEB_XML_DESTINATION, getWebXmlSource()));
-      getResources().addAll((standardResources));
-   }
-
-   public URL getBeansXmlSource()
-   {
-      return loadResource(STANDARD_BEANS_XML_FILE_NAME);
-   }
-   
-   public URL getWebXmlSource()
-   {
-      return loadResource(STANDARD_WEB_XML_FILE_NAME);
-   }
-   
-   
-   
-}

Copied: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifactDescriptor.java (from rev 1408, tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/standard/war/WarArtifact.java)
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifactDescriptor.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifactDescriptor.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,24 @@
+package org.jboss.webbeans.tck.impl.packaging.war;
+
+import static org.jboss.webbeans.tck.impl.util.Strings.isEmpty;
+
+import org.jboss.webbeans.tck.impl.packaging.ResourceDescriptor;
+import org.jboss.webbeans.tck.impl.packaging.jsr299.TCKArtifactDescriptor;
+
+public class WarArtifactDescriptor extends TCKArtifactDescriptor
+{
+   
+   public static final String WEB_XML_DESTINATION = "WEB-INF/web.xml";
+   public static final String STANDARD_WEB_XML_FILE_NAME = "org/jboss/webbeans/tck/impl/packaging/war/default/web.xml";
+   
+   public WarArtifactDescriptor(String beansXmlSourceFileName, String webXmlSourceFileName)
+   {
+      super(beansXmlSourceFileName);
+      if (isEmpty(webXmlSourceFileName))
+      {
+         webXmlSourceFileName = STANDARD_WEB_XML_FILE_NAME;
+      }
+      getResources().add(new ResourceDescriptor(WEB_XML_DESTINATION, webXmlSourceFileName));
+   }
+   
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WarArtifactDescriptor.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WebXml.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WebXml.java	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WebXml.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.impl.packaging.war;
+
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+ at Retention(RUNTIME)
+ at Target(TYPE)
+public @interface WebXml
+{
+   
+   String value();
+   
+}


Property changes on: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/war/WebXml.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Deleted: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/report/CoverageProcessor.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/report/CoverageProcessor.java	2009-02-04 08:27:17 UTC (rev 1408)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/report/CoverageProcessor.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -1,106 +0,0 @@
-package org.jboss.webbeans.tck.impl.report;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.jboss.webbeans.tck.SpecAssertion;
-import org.jboss.webbeans.tck.SpecAssertions;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-import com.sun.mirror.declaration.Declaration;
-import com.sun.mirror.declaration.MethodDeclaration;
-import com.sun.mirror.util.DeclarationVisitors;
-import com.sun.mirror.util.SimpleDeclarationVisitor;
-
-/**
- * Annotation processor for generating TCK coverage report
- * 
- * @author Shane Bryzak
- */
-public class CoverageProcessor implements AnnotationProcessor
-{
-   private static final String OUTDIR_OPTION_NAME = "-s";
-   private static final String REPORT_FILE_NAME = "coverage.html"; 
-   
-   private static final String AUDIT_FILE_NAME = "tck-audit.xml";
-      
-   private final AnnotationProcessorEnvironment env;
-   private final File baseDir;
-   
-   private final List<SpecReference> references = new ArrayList<SpecReference>();
-   
-   private AuditParser auditParser;
-   
-   public CoverageProcessor(AnnotationProcessorEnvironment env)
-   {
-      this.env = env;
-      String baseDirName = env.getOptions().get( OUTDIR_OPTION_NAME );
-      baseDir = new File( baseDirName );
-      baseDir.mkdirs();
-      
-      try
-      {
-         auditParser = new AuditParser(new FileInputStream(AUDIT_FILE_NAME));
-         auditParser.parse();
-      }
-      catch (Exception ex)
-      {
-         throw new RuntimeException("Error parsing tck-audit.xml: " + 
-               ex.getClass().getName() + " - " + ex.getMessage(), ex);
-      }
-   }
-
-   public void process()
-   {
-      AnnotationTypeDeclaration annotationType = (AnnotationTypeDeclaration) 
-         env.getTypeDeclaration(SpecAssertion.class.getCanonicalName());
-      
-      for (Declaration d : env.getDeclarationsAnnotatedWith(annotationType))
-      {
-         d.accept(DeclarationVisitors.getDeclarationScanner(
-               new CreateReferenceVisitor(), DeclarationVisitors.NO_OP));
-      }
-      
-      annotationType = (AnnotationTypeDeclaration) 
-      env.getTypeDeclaration(SpecAssertions.class.getCanonicalName());
-      for (Declaration d : env.getDeclarationsAnnotatedWith(annotationType))
-      {
-         d.accept(DeclarationVisitors.getDeclarationScanner(
-               new CreateReferenceVisitor(), DeclarationVisitors.NO_OP));
-      }      
-      
-      
-      new CoverageReport(references, auditParser).writeToFile(new File(baseDir, REPORT_FILE_NAME));
-   }     
-   
-   private class CreateReferenceVisitor extends SimpleDeclarationVisitor 
-   {
-      public void visitMethodDeclaration(MethodDeclaration d) 
-      {
-         SpecAssertions assertions = d.getAnnotation ( SpecAssertions.class );
-         if (assertions != null)
-         {
-            for (SpecAssertion assertion : assertions.value())
-            {
-               SpecReference ref = new SpecReference(
-                     assertion.section(), assertion.id(), 
-                     d.getDeclaringType().getSimpleName(), d.getSimpleName()); 
-               references.add( ref );               
-            }
-         }
-         
-         SpecAssertion assertion = d.getAnnotation( SpecAssertion.class );
-         if (assertion != null)
-         {
-            SpecReference ref = new SpecReference(
-                  assertion.section(), assertion.id(), 
-                  d.getDeclaringType().getSimpleName(), d.getSimpleName()); 
-            references.add( ref );
-         }
-      }
-   }   
-}

Deleted: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/report/CoverageProcessorFactory.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/report/CoverageProcessorFactory.java	2009-02-04 08:27:17 UTC (rev 1408)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/report/CoverageProcessorFactory.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -1,41 +0,0 @@
-package org.jboss.webbeans.tck.impl.report;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Set;
-
-import org.jboss.webbeans.tck.SpecAssertion;
-import org.jboss.webbeans.tck.SpecAssertions;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class CoverageProcessorFactory implements AnnotationProcessorFactory
-{
-   private static final Collection<String> supportedAnnotations = Collections.unmodifiableCollection(
-         Arrays.asList(
-               SpecAssertion.class.getCanonicalName(),
-               SpecAssertions.class.getCanonicalName()
-         )
-   );
-   
-   public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> annotationTypeDeclarations,
-         AnnotationProcessorEnvironment env)
-   {
-      return new CoverageProcessor(env);
-   }
-
-   public Collection<String> supportedAnnotationTypes()
-   {
-      return supportedAnnotations;
-   }
-
-   public Collection<String> supportedOptions()
-   {
-      return null;
-   }
-
-}

Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/util/Reflections.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/util/Reflections.java	2009-02-04 08:27:17 UTC (rev 1408)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/util/Reflections.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -10,7 +10,7 @@
 import java.util.List;
 import java.util.Set;
 
-import org.jboss.webbeans.tck.impl.packaging.Artifact;
+import org.jboss.webbeans.tck.impl.packaging.ArtifactDescriptor;
 
 /**
  * Utility class for static reflection-type operations
@@ -54,7 +54,7 @@
       }
       if (is == null)
       {
-         is = Artifact.class.getResourceAsStream(name);
+         is = ArtifactDescriptor.class.getResourceAsStream(name);
       }
       return is;
    }
@@ -68,7 +68,7 @@
       }
       if (url == null)
       {
-         url = Artifact.class.getResource(name);
+         url = ArtifactDescriptor.class.getResource(name);
       }
       return url;
    }
@@ -82,7 +82,7 @@
       }
       if (urls == null)
       {
-         urls = Artifact.class.getClassLoader().getResources(name);
+         urls = ArtifactDescriptor.class.getClassLoader().getResources(name);
       }
       return new EnumerationIterable<URL>(urls);
    }

Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/util/Strings.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/util/Strings.java	2009-02-04 08:27:17 UTC (rev 1408)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/util/Strings.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -2,9 +2,9 @@
 
 import java.util.StringTokenizer;
 
-class Strings
+public class Strings
 {
-   public static String[] split(String strings, String delims)
+   static String[] split(String strings, String delims)
    {
       if (strings == null)
       {
@@ -22,4 +22,9 @@
          return result;
       }
    }
+   
+   public static boolean isEmpty(String string)
+   {
+      return string == null || string.length() == 0;
+   }
 }

Added: tck/trunk/impl/src/main/resources/org/jboss/webbeans/tck/impl/packaging/jsr299/default/beans.xml
===================================================================

Copied: tck/trunk/impl/src/main/resources/org/jboss/webbeans/tck/impl/packaging/war (from rev 1408, tck/trunk/impl/src/main/resources/org/jboss/webbeans/tck/impl/packaging/standard/war)

Added: tck/trunk/impl/src/main/resources/org/jboss/webbeans/tck/impl/packaging/war/default/web.xml
===================================================================
--- tck/trunk/impl/src/main/resources/org/jboss/webbeans/tck/impl/packaging/war/default/web.xml	                        (rev 0)
+++ tck/trunk/impl/src/main/resources/org/jboss/webbeans/tck/impl/packaging/war/default/web.xml	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<web-app version="2.5"
+    xmlns="http://java.sun.com/xml/ns/javaee"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+   
+   <display-name>JSR-299 TCK</display-name>
+
+</web-app>


Property changes on: tck/trunk/impl/src/main/resources/org/jboss/webbeans/tck/impl/packaging/war/default/web.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/AbstractArtifactTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/AbstractArtifactTest.java	2009-02-04 08:27:17 UTC (rev 1408)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/AbstractArtifactTest.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -1,7 +1,12 @@
 package org.jboss.webbeans.tck.impl.test.packaging;
 
+import java.io.BufferedInputStream;
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.FilenameFilter;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Reader;
 import java.util.Arrays;
 
 public abstract class AbstractArtifactTest
@@ -15,6 +20,14 @@
       }
    };
    
+   protected static final FilenameFilter META_INF_FILTER = new FilenameFilter()
+   {
+      public boolean accept(File dir, String name)
+      {
+         return name.equals("META-INF");
+      }
+   };
+   
    protected static final FilenameFilter BEANS_XML_FILTER = new FilenameFilter()
    {
       
@@ -68,4 +81,24 @@
       return root;
    }
    
+   protected String readFile(File file) throws IOException
+   {
+      if (file.isFile())
+      {
+         Reader reader = new InputStreamReader(new BufferedInputStream(new FileInputStream(file)));
+         StringBuffer buffer = new StringBuffer(1024);
+         char[] bytes = new char[1024];
+         while (reader.read(bytes) > -1)
+         {
+            buffer.append(String.valueOf(bytes));
+         }
+         reader.close();
+         return buffer.toString();
+      }
+      else
+      {
+         return null;
+      }
+   }
+   
 }

Copied: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/ArtifactTest.java (from rev 1408, tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/defined/ArtifactTest.java)
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/ArtifactTest.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/ArtifactTest.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,69 @@
+package org.jboss.webbeans.tck.impl.test.packaging;
+
+import java.io.File;
+import java.io.FilenameFilter;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.packaging.ArtifactDescriptor;
+import org.jboss.webbeans.tck.impl.packaging.jsr299.TCKArtifactDescriptor;
+import org.jboss.webbeans.tck.impl.packaging.war.WarArtifactDescriptor;
+import org.jboss.webbeans.tck.impl.util.Reflections;
+import org.jboss.webbeans.tck.literals.NewLiteral;
+import org.testng.annotations.Test;
+
+public class ArtifactTest extends AbstractArtifactTest
+{  
+   
+   @Test
+   public void testDefaultWar() throws Exception
+   {
+      WarArtifactDescriptor war = new WarArtifactDescriptor(null, null);
+      war.getClasses().add(Cow.class);
+      File root = war.create();
+      assert root.listFiles().length == 3;
+      assert root.isDirectory();
+      assert root.listFiles(WEB_INF_FILTER).length == 1;
+      File metaInf = root.listFiles(META_INF_FILTER)[0];
+      assert metaInf.getName().equals("META-INF");
+      assert metaInf.isDirectory();
+      assert metaInf.listFiles().length == 1;
+      assert metaInf.listFiles(BEANS_XML_FILTER).length == 1;
+      File beansXml = metaInf.listFiles(BEANS_XML_FILTER)[0];
+      assert beansXml.isFile();
+      assert beansXml.getName().equals("beans.xml");
+      assert beansXml.length() == 0;
+      File webInf = root.listFiles(WEB_INF_FILTER)[0];
+      assert webInf.getName().equals("WEB-INF");
+      assert webInf.isDirectory();
+      assert webInf.listFiles().length == 1;
+      assert webInf.listFiles(WEB_XML_FILTER).length == 1;
+      File webXml = webInf.listFiles(WEB_XML_FILTER)[0];
+      assert webXml.isFile();
+      assert webXml.getName().equals("web.xml");
+      assert webXml.length() != 0;
+      File currentPackage = getCurrentPackageAsFile(root);
+      File[] cowClasses = currentPackage.listFiles(new FilenameFilter()
+      {
+         
+         public boolean accept(File dir, String name)
+         {
+            return name.equals("Cow.class");
+         }
+         
+      });
+      assert cowClasses.length == 1;
+      assert cowClasses[0].getName().equals("Cow.class");
+      assert cowClasses[0].isFile();
+   }
+   
+   @Test
+   public void testDefaultTCKArtifact() throws Exception
+   {
+      ArtifactDescriptor artifactDescriptor = new TCKArtifactDescriptor(null);
+      File root = artifactDescriptor.create();
+      assert getPackageAsFile(Reflections.class.getPackage(), root).listFiles().length > 0;
+      assert getPackageAsFile(NewLiteral.class.getPackage(), root).listFiles().length > 0;
+      assert getPackageAsFile(AbstractTest.class.getPackage(), root).listFiles().length > 0;
+   }
+   
+}


Property changes on: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/ArtifactTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Copied: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/Cow.java (from rev 1408, tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/defined/Cow.java)
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/Cow.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/Cow.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.impl.test.packaging;
+
+class Cow
+{
+   
+}


Property changes on: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/Cow.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/ArtifactTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/ArtifactTest.java	2009-02-04 08:27:17 UTC (rev 1408)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/ArtifactTest.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -2,9 +2,8 @@
 
 import java.io.File;
 import java.io.FilenameFilter;
-import java.util.Arrays;
 
-import org.jboss.webbeans.tck.impl.packaging.Artifact;
+import org.jboss.webbeans.tck.impl.packaging.ArtifactDescriptor;
 import org.jboss.webbeans.tck.impl.test.packaging.AbstractArtifactTest;
 import org.testng.annotations.Test;
 
@@ -14,11 +13,10 @@
    @Test
    public void testAllClassesInPackage() throws Exception
    {
-      Artifact artifact = new Artifact();
-      artifact.getPackages().add(ArtifactTest.class.getPackage());
-      File root = artifact.create();
+      ArtifactDescriptor artifactDescriptor = new ArtifactDescriptor();
+      artifactDescriptor.getPackages().add(ArtifactTest.class.getPackage());
+      File root = artifactDescriptor.create();
       File currentPackage = getCurrentPackageAsFile(root);
-      System.out.println(Arrays.asList(currentPackage.listFiles()));
       assert currentPackage.listFiles().length == 6;
       File[] cowClasses = currentPackage.listFiles(new FilenameFilter()
       {

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/ArtifactTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/ArtifactTest.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/ArtifactTest.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,144 @@
+package org.jboss.webbeans.tck.impl.test.packaging.declarativeArtifact.unspecified;
+
+import java.io.File;
+import java.io.FilenameFilter;
+
+import org.jboss.webbeans.tck.impl.packaging.DeclarativeArtifactProcessor;
+import org.jboss.webbeans.tck.impl.packaging.jsr299.TCKArtifactDescriptor;
+import org.jboss.webbeans.tck.impl.test.packaging.AbstractArtifactTest;
+import org.testng.annotations.Test;
+
+public class ArtifactTest extends AbstractArtifactTest
+{
+   
+   @Test
+   public void testDefaultDeclartiveArtifact() throws Exception
+   {
+      DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyTest.class);
+      TCKArtifactDescriptor artifact =  declarativeArtifactProcessor.getArtifact();
+      assert !artifact.isEjbs();
+      assert artifact.isUnit();
+      File root = artifact.create();
+      File currentPackage = getCurrentPackageAsFile(root);
+      File[] cowClasses = currentPackage.listFiles(new FilenameFilter()
+      {
+         
+         public boolean accept(File dir, String name)
+         {
+            return name.equals("Cow.class");
+         }
+         
+      });
+      assert cowClasses.length == 1;
+      assert cowClasses[0].getName().equals("Cow.class");
+      assert cowClasses[0].isFile();
+      File[] foxClasses = currentPackage.listFiles(new FilenameFilter()
+      {
+         
+         public boolean accept(File dir, String name)
+         {
+            return name.equals("Fox.class");
+         }
+         
+      });
+      assert foxClasses.length == 1;
+      assert foxClasses[0].getName().equals("Fox.class");
+      assert foxClasses[0].isFile();
+      
+      File[] testClasses = currentPackage.listFiles(new FilenameFilter()
+      {
+         
+         public boolean accept(File dir, String name)
+         {
+            return name.startsWith("DummyTest");
+         }
+         
+      });
+      assert testClasses.length == 1;
+      
+      assert root.listFiles(META_INF_FILTER).length == 1;
+      File metaInf = root.listFiles(META_INF_FILTER)[0];
+      assert metaInf.listFiles().length == 1;
+      assert metaInf.listFiles(BEANS_XML_FILTER).length == 1;
+      assert metaInf.listFiles(BEANS_XML_FILTER)[0].length() == 0;
+   }
+   
+   @Test
+   public void testClassesSpecifiedArtifact() throws Exception
+   {
+      DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyClassesSpecifiedTest.class);
+      TCKArtifactDescriptor artifact =  declarativeArtifactProcessor.getArtifact();
+      File root = artifact.create();
+      File currentPackage = getCurrentPackageAsFile(root);
+      assert currentPackage.listFiles().length == 1;
+      File[] pestPackages = currentPackage.listFiles(new FilenameFilter()
+      {
+         
+         public boolean accept(File dir, String name)
+         {
+            return name.startsWith("pests");
+         }
+         
+      });
+      assert pestPackages.length == 1;
+      File pestPackage = pestPackages[0];
+      assert pestPackage.listFiles().length == 1;
+      assert pestPackage.listFiles()[0].getName().equals("Rat.class");
+   }
+   
+   @Test
+   public void testResourcesSpecifiedArtifact() throws Exception
+   {
+      DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyResourcesSpecifiedTest.class);
+      TCKArtifactDescriptor artifact =  declarativeArtifactProcessor.getArtifact();
+      File root = artifact.create();
+      assert root.listFiles(META_INF_FILTER).length == 1;
+      File metaInf = root.listFiles(META_INF_FILTER)[0];
+      assert metaInf.listFiles().length == 2;
+      assert metaInf.listFiles(new FilenameFilter()
+      {
+         
+         public boolean accept(File dir, String name)
+         {
+            return name.equals("bar.xml");
+         }
+         
+      }).length == 1;
+   }
+   
+   @Test
+   public void testIntegrationTestDeclartiveArtifact() throws Exception
+   {
+      DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyIntegrationTest.class);
+      assert !declarativeArtifactProcessor.getArtifact().isUnit();
+   }
+   
+   @Test
+   public void testCustomBeansXml() throws Exception
+   {
+      DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyCustomBeansXmlTest.class);
+      TCKArtifactDescriptor artifact =  declarativeArtifactProcessor.getArtifact();
+      File root = artifact.create();
+      assert root.listFiles(META_INF_FILTER).length == 1;
+      File metaInf = root.listFiles(META_INF_FILTER)[0];
+      assert metaInf.listFiles().length == 1;
+      assert metaInf.listFiles(BEANS_XML_FILTER).length == 1;
+      assert metaInf.listFiles(BEANS_XML_FILTER)[0].length() != 0;
+      String beans = readFile(metaInf.listFiles(BEANS_XML_FILTER)[0]);
+      assert beans.startsWith("<my></my>");
+   }
+   
+   @Test
+   public void testEjbTestDeclartiveArtifact() throws Exception
+   {
+      DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyEjbTest.class);
+      assert declarativeArtifactProcessor.getArtifact().isEjbs();
+   }
+   
+   @Test(expectedExceptions=IllegalArgumentException.class)
+   public void testWrongPackaging()
+   {
+      DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyWarUnitTest_Broken.class);
+   }
+   
+}


Property changes on: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/ArtifactTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/Cow.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/Cow.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/Cow.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.impl.test.packaging.declarativeArtifact.unspecified;
+
+class Cow
+{
+   
+}


Property changes on: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/Cow.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyClassesSpecifiedTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyClassesSpecifiedTest.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyClassesSpecifiedTest.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.tck.impl.test.packaging.declarativeArtifact.unspecified;
+
+import org.jboss.webbeans.tck.impl.packaging.Artifact;
+import org.jboss.webbeans.tck.impl.packaging.Classes;
+import org.jboss.webbeans.tck.impl.test.packaging.declarativeArtifact.unspecified.pests.Rat;
+
+
+ at Artifact(addCurrentPackage=false)
+ at Classes(Rat.class)
+class DummyClassesSpecifiedTest
+{
+   
+   public void test()
+   {
+      assert true;
+   }
+   
+}


Property changes on: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyClassesSpecifiedTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyCustomBeansXmlTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyCustomBeansXmlTest.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyCustomBeansXmlTest.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,16 @@
+package org.jboss.webbeans.tck.impl.test.packaging.declarativeArtifact.unspecified;
+
+import org.jboss.webbeans.tck.impl.packaging.Artifact;
+import org.jboss.webbeans.tck.impl.packaging.jsr299.BeansXml;
+
+
+ at Artifact @BeansXml(value="my-web-beans.xml")
+class DummyCustomBeansXmlTest
+{
+   
+   public void test()
+   {
+      assert true;
+   }
+   
+}


Property changes on: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyCustomBeansXmlTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyEjbTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyEjbTest.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyEjbTest.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.tck.impl.test.packaging.declarativeArtifact.unspecified;
+
+import org.jboss.webbeans.tck.impl.packaging.EjbArtifact;
+
+
+ at EjbArtifact
+class DummyEjbTest
+{
+   
+   public void test()
+   {
+      assert true;
+   }
+   
+}


Property changes on: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyEjbTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyIntegrationTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyIntegrationTest.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyIntegrationTest.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,17 @@
+package org.jboss.webbeans.tck.impl.test.packaging.declarativeArtifact.unspecified;
+
+import org.jboss.webbeans.tck.impl.packaging.Artifact;
+import org.jboss.webbeans.tck.impl.packaging.IntegrationTest;
+
+
+ at Artifact
+ at IntegrationTest
+class DummyIntegrationTest
+{
+   
+   public void test()
+   {
+      assert true;
+   }
+   
+}


Property changes on: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyIntegrationTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyResourcesSpecifiedTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyResourcesSpecifiedTest.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyResourcesSpecifiedTest.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.tck.impl.test.packaging.declarativeArtifact.unspecified;
+
+import org.jboss.webbeans.tck.impl.packaging.Artifact;
+import org.jboss.webbeans.tck.impl.packaging.Resource;
+import org.jboss.webbeans.tck.impl.packaging.Resources;
+
+
+ at Artifact(addCurrentPackage=false)
+ at Resources(value=@Resource(destination = "/META-INF/bar.xml", source="foo/foo.xml"))
+class DummyResourcesSpecifiedTest
+{
+   
+   public void test()
+   {
+      assert true;
+   }
+   
+}


Property changes on: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyResourcesSpecifiedTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyTest.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyTest.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,15 @@
+package org.jboss.webbeans.tck.impl.test.packaging.declarativeArtifact.unspecified;
+
+import org.jboss.webbeans.tck.impl.packaging.Artifact;
+
+
+ at Artifact
+class DummyTest
+{
+   
+   public void test()
+   {
+      assert true;
+   }
+   
+}


Property changes on: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyWarUnitTest_Broken.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyWarUnitTest_Broken.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyWarUnitTest_Broken.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.tck.impl.test.packaging.declarativeArtifact.unspecified;
+
+import org.jboss.webbeans.tck.impl.packaging.Artifact;
+import org.jboss.webbeans.tck.impl.packaging.Packaging;
+import org.jboss.webbeans.tck.impl.packaging.PackagingType;
+
+
+ at Artifact
+ at Packaging(PackagingType.WAR)
+class DummyWarUnitTest_Broken
+{
+   
+   public void test()
+   {
+      assert true;
+   }
+   
+}


Property changes on: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/DummyWarUnitTest_Broken.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/Fox.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/Fox.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/Fox.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.impl.test.packaging.declarativeArtifact.unspecified;
+
+class Fox
+{
+   
+}


Property changes on: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/Fox.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/pests/Rat.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/pests/Rat.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/pests/Rat.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.impl.test.packaging.declarativeArtifact.unspecified.pests;
+
+public class Rat
+{
+   
+}


Property changes on: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/pests/Rat.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: 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	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/ArtifactTest.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,49 @@
+package org.jboss.webbeans.tck.impl.test.packaging.declarativeArtifact.war;
+
+import java.io.File;
+
+import org.jboss.webbeans.tck.impl.packaging.DeclarativeArtifactProcessor;
+import org.jboss.webbeans.tck.impl.packaging.jsr299.TCKArtifactDescriptor;
+import org.jboss.webbeans.tck.impl.test.packaging.AbstractArtifactTest;
+import org.testng.annotations.Test;
+
+public class ArtifactTest extends AbstractArtifactTest
+{
+   
+   @Test
+   public void testDefaultWebXml() throws Exception
+   {
+      DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyTest.class);
+      TCKArtifactDescriptor artifact =  declarativeArtifactProcessor.getArtifact();
+      File root = artifact.create();
+      assert root.listFiles(WEB_INF_FILTER).length == 1;
+      File webInf = root.listFiles(WEB_INF_FILTER)[0];
+      assert webInf.getName().equals("WEB-INF");
+      assert webInf.isDirectory();
+      assert webInf.listFiles().length == 1;
+      assert webInf.listFiles(WEB_XML_FILTER).length == 1;
+      File webXml = webInf.listFiles(WEB_XML_FILTER)[0];
+      assert webXml.isFile();
+      assert webXml.getName().equals("web.xml");
+      assert webXml.length() != 0;
+   }
+   
+   @Test
+   public void testCustomWebXml() throws Exception
+   {
+      DeclarativeArtifactProcessor declarativeArtifactProcessor = new DeclarativeArtifactProcessor(DummyCustomWebXmlTest.class);
+      TCKArtifactDescriptor artifact =  declarativeArtifactProcessor.getArtifact();
+      File root = artifact.create();
+      assert root.listFiles(WEB_INF_FILTER).length == 1;
+      File webInf = root.listFiles(WEB_INF_FILTER)[0];
+      assert webInf.getName().equals("WEB-INF");
+      assert webInf.isDirectory();
+      assert webInf.listFiles().length == 1;
+      assert webInf.listFiles(WEB_XML_FILTER).length == 1;
+      File webXml = webInf.listFiles(WEB_XML_FILTER)[0];
+      assert webXml.isFile();
+      assert webXml.getName().equals("web.xml");
+      assert readFile(webXml).startsWith("<web></web>");
+   }
+     
+}


Property changes on: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/ArtifactTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/Cow.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/Cow.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/Cow.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.impl.test.packaging.declarativeArtifact.war;
+
+class Cow
+{
+   
+}


Property changes on: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/Cow.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/DummyCustomWebXmlTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/DummyCustomWebXmlTest.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/DummyCustomWebXmlTest.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,22 @@
+package org.jboss.webbeans.tck.impl.test.packaging.declarativeArtifact.war;
+
+import org.jboss.webbeans.tck.impl.packaging.Artifact;
+import org.jboss.webbeans.tck.impl.packaging.IntegrationTest;
+import org.jboss.webbeans.tck.impl.packaging.Packaging;
+import org.jboss.webbeans.tck.impl.packaging.PackagingType;
+import org.jboss.webbeans.tck.impl.packaging.war.WebXml;
+
+
+ at Artifact
+ at IntegrationTest
+ at Packaging(PackagingType.WAR)
+ at WebXml("my-web.xml")
+class DummyCustomWebXmlTest
+{
+   
+   public void test()
+   {
+      assert true;
+   }
+   
+}


Property changes on: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/DummyCustomWebXmlTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/DummyTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/DummyTest.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/DummyTest.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,20 @@
+package org.jboss.webbeans.tck.impl.test.packaging.declarativeArtifact.war;
+
+import org.jboss.webbeans.tck.impl.packaging.Artifact;
+import org.jboss.webbeans.tck.impl.packaging.IntegrationTest;
+import org.jboss.webbeans.tck.impl.packaging.Packaging;
+import org.jboss.webbeans.tck.impl.packaging.PackagingType;
+
+
+ at Artifact
+ at IntegrationTest
+ at Packaging(PackagingType.WAR)
+class DummyTest
+{
+   
+   public void test()
+   {
+      assert true;
+   }
+   
+}


Property changes on: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/DummyTest.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/Fox.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/Fox.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/Fox.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.impl.test.packaging.declarativeArtifact.war;
+
+class Fox
+{
+   
+}


Property changes on: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/Fox.java
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Deleted: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/ArtifactTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/ArtifactTest.java	2009-02-04 08:27:17 UTC (rev 1408)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/ArtifactTest.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -1,46 +0,0 @@
-package org.jboss.webbeans.tck.impl.test.packaging.subpackages;
-
-import java.io.File;
-import java.io.FilenameFilter;
-
-import org.jboss.webbeans.tck.impl.packaging.Artifact;
-import org.jboss.webbeans.tck.impl.test.packaging.AbstractArtifactTest;
-import org.testng.annotations.Test;
-
-public class ArtifactTest extends AbstractArtifactTest
-{  
-   
-   @Test
-   public void testAllClassesInPackageAndNotSubPackages() throws Exception
-   {
-      Artifact artifact = new Artifact();
-      artifact.getPackages().add(ArtifactTest.class.getPackage());
-      File root = artifact.create();
-      File currentPackage = getCurrentPackageAsFile(root);
-      assert currentPackage.listFiles().length == 4;
-      File[] cowClasses = currentPackage.listFiles(new FilenameFilter()
-      {
-         
-         public boolean accept(File dir, String name)
-         {
-            return name.equals("Cow.class");
-         }
-         
-      });
-      assert cowClasses.length == 1;
-      assert cowClasses[0].getName().equals("Cow.class");
-      assert cowClasses[0].isFile();
-      
-      File[] testClasses = currentPackage.listFiles(new FilenameFilter()
-      {
-         
-         public boolean accept(File dir, String name)
-         {
-            return name.startsWith("ArtifactTest");
-         }
-         
-      });
-      assert testClasses.length == 3;
-   }
-   
-}

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/ArtifactTest.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/ArtifactTest.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/ArtifactTest.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,46 @@
+package org.jboss.webbeans.tck.impl.test.packaging.subpackages;
+
+import java.io.File;
+import java.io.FilenameFilter;
+
+import org.jboss.webbeans.tck.impl.packaging.ArtifactDescriptor;
+import org.jboss.webbeans.tck.impl.test.packaging.AbstractArtifactTest;
+import org.testng.annotations.Test;
+
+public class ArtifactTest extends AbstractArtifactTest
+{  
+   
+   @Test
+   public void testAllClassesInPackageAndNotSubPackages() throws Exception
+   {
+      ArtifactDescriptor artifactDescriptor = new ArtifactDescriptor();
+      artifactDescriptor.getPackages().add(ArtifactTest.class.getPackage());
+      File root = artifactDescriptor.create();
+      File currentPackage = getCurrentPackageAsFile(root);
+      assert currentPackage.listFiles().length == 4;
+      File[] cowClasses = currentPackage.listFiles(new FilenameFilter()
+      {
+         
+         public boolean accept(File dir, String name)
+         {
+            return name.equals("Cow.class");
+         }
+         
+      });
+      assert cowClasses.length == 1;
+      assert cowClasses[0].getName().equals("Cow.class");
+      assert cowClasses[0].isFile();
+      
+      File[] testClasses = currentPackage.listFiles(new FilenameFilter()
+      {
+         
+         public boolean accept(File dir, String name)
+         {
+            return name.startsWith("ArtifactTest");
+         }
+         
+      });
+      assert testClasses.length == 3;
+   }
+   
+}

Deleted: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/Cow.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/Cow.java	2009-02-04 08:27:17 UTC (rev 1408)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/Cow.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -1,6 +0,0 @@
-package org.jboss.webbeans.tck.impl.test.packaging.subpackages;
-
-class Cow
-{
-   
-}

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/Cow.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/Cow.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/Cow.java	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.impl.test.packaging.subpackages;
+
+class Cow
+{
+   
+}

Added: tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/foo/foo.xml
===================================================================


Property changes on: tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/foo/foo.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/my-web-beans.xml
===================================================================
--- tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/my-web-beans.xml	                        (rev 0)
+++ tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/my-web-beans.xml	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1 @@
+<my></my>
\ No newline at end of file


Property changes on: tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/unspecified/my-web-beans.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Added: tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/my-web.xml
===================================================================
--- tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/my-web.xml	                        (rev 0)
+++ tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/my-web.xml	2009-02-04 17:10:43 UTC (rev 1409)
@@ -0,0 +1 @@
+<web></web>
\ No newline at end of file


Property changes on: tck/trunk/impl/src/test/resources/org/jboss/webbeans/tck/impl/test/packaging/declarativeArtifact/war/my-web.xml
___________________________________________________________________
Name: svn:mime-type
   + text/plain

Modified: tck/trunk/pom.xml
===================================================================
--- tck/trunk/pom.xml	2009-02-04 08:27:17 UTC (rev 1408)
+++ tck/trunk/pom.xml	2009-02-04 17:10:43 UTC (rev 1409)
@@ -157,20 +157,6 @@
             </executions>
          </plugin>
          <plugin>
-            <groupId>org.codehaus.mojo</groupId>
-            <artifactId>apt-maven-plugin</artifactId>
-            <executions>
-               <execution>
-                  <goals>
-                     <goal>test-process</goal>
-                  </goals>
-               </execution>
-            </executions>
-            <configuration>
-               <testOutputDirectory>${project.build.directory}/site</testOutputDirectory>
-            </configuration>
-         </plugin>
-         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-release-plugin</artifactId>
            <version>2.0-beta-8</version>




More information about the weld-commits mailing list