[webbeans-commits] Webbeans SVN: r1398 - in tck/trunk/impl/src: main/java/org/jboss/webbeans/tck/impl/packaging/standard/war and 8 other directories.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Tue Feb 3 18:23:24 EST 2009


Author: pete.muir at jboss.org
Date: 2009-02-03 18:23:24 -0500 (Tue, 03 Feb 2009)
New Revision: 1398

Added:
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/TCKArtifact.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/
   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/
   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/Cow.java
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/Fox.java
   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/defined/ArtifactTest.java
   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/subpackages/
   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/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/pests/
   tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/pests/Fox.java
Modified:
   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/standard/war/WarArtifact.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/unit/definition/binding/ChunkyBinding.java
   tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/HairyBinding.java
Log:
Support for including all classes in a package

Modified: 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-03 22:14:04 UTC (rev 1397)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/Artifact.java	2009-02-03 23:23:24 UTC (rev 1398)
@@ -1,28 +1,115 @@
 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 Set<Class<?>> classes;
-   private Set<ResourceDescriptor> resources;
+   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
@@ -37,15 +124,16 @@
       root.deleteOnExit();
       for (Class<?> clazz : getClasses())
       {
-         String classFilePathName = getClassFileName(clazz.getName());
-         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);
+         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("/"));
@@ -59,6 +147,23 @@
       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("\\/"))
@@ -94,39 +199,6 @@
 
    }
    
-   protected static InputStream loadResourceAsStream(String name)
-   {
-      InputStream is = null;
-      if (Thread.currentThread().getContextClassLoader() != null)
-      {
-         is = Thread.currentThread().getContextClassLoader().getResourceAsStream(name);
-      }
-      if (is == null)
-      {
-         is = Artifact.class.getResourceAsStream(name);
-      }
-      return is;
-   }
-   
-   protected static URL loadResource(String name)
-   {
-      URL url = null;
-      if (Thread.currentThread().getContextClassLoader() != null)
-      {
-         url = Thread.currentThread().getContextClassLoader().getResource(name);
-      }
-      if (url == null)
-      {
-         url = Artifact.class.getResource(name);
-      }
-      return url;
-   }
-   
-   public void setClasses(Set<Class<?>> classes)
-   {
-      this.classes = classes;
-   }
-   
    public Set<Class<?>> getClasses()
    {
       return classes;
@@ -137,9 +209,9 @@
       return resources;
    }
    
-   public void setResources(Set<ResourceDescriptor> resources)
+   public Set<Package> getPackages()
    {
-      this.resources = resources;
+      return packages;
    }
    
 }

Added: 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	                        (rev 0)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/TCKArtifact.java	2009-02-03 23:23:24 UTC (rev 1398)
@@ -0,0 +1,18 @@
+package org.jboss.webbeans.tck.impl.packaging;
+
+import org.jboss.webbeans.tck.AbstractTest;
+import org.jboss.webbeans.tck.impl.WebBeansTCKImpl;
+
+public class TCKArtifact extends Artifact
+{
+   
+   public TCKArtifact()
+   {
+      super();
+      getClasses().add(AbstractTest.class);
+      getClasses().add(WebBeansTCKImpl.class);
+   }
+   
+   
+   
+}


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

Modified: 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/standard/war/WarArtifact.java	2009-02-03 22:14:04 UTC (rev 1397)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/packaging/standard/war/WarArtifact.java	2009-02-03 23:23:24 UTC (rev 1398)
@@ -1,5 +1,7 @@
 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;
@@ -20,7 +22,7 @@
    public static WarArtifact of(Class<?>... classes)
    {
       WarArtifact war = new WarArtifact();
-      war.setClasses(new HashSet<Class<?>>(Arrays.asList(classes)));
+      war.getClasses().addAll(new HashSet<Class<?>>(Arrays.asList(classes)));
       return war;
    }
    
@@ -29,7 +31,7 @@
       Set<ResourceDescriptor> standardResources = new HashSet<ResourceDescriptor>();
       standardResources.add(new ResourceDescriptor(BEANS_XML_DESTINATION, getBeansXmlSource()));
       standardResources.add(new ResourceDescriptor(WEB_XML_DESTINATION, getWebXmlSource()));
-      setResources(standardResources);
+      getResources().addAll((standardResources));
    }
 
    public URL getBeansXmlSource()

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-03 22:14:04 UTC (rev 1397)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/impl/util/Reflections.java	2009-02-03 23:23:24 UTC (rev 1398)
@@ -1,11 +1,17 @@
 package org.jboss.webbeans.tck.impl.util;
 
+import java.io.IOException;
+import java.io.InputStream;
 import java.lang.annotation.Annotation;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Enumeration;
 import java.util.List;
 import java.util.Set;
 
+import org.jboss.webbeans.tck.impl.packaging.Artifact;
+
 /**
  * Utility class for static reflection-type operations
  * 
@@ -38,5 +44,47 @@
       }
       return annotationTypeList.size() == 0;
    }
+   
+   public static InputStream loadResourceAsStream(String name)
+   {
+      InputStream is = null;
+      if (Thread.currentThread().getContextClassLoader() != null)
+      {
+         is = Thread.currentThread().getContextClassLoader().getResourceAsStream(name);
+      }
+      if (is == null)
+      {
+         is = Artifact.class.getResourceAsStream(name);
+      }
+      return is;
+   }
+   
+   public static URL loadResource(String name)
+   {
+      URL url = null;
+      if (Thread.currentThread().getContextClassLoader() != null)
+      {
+         url = Thread.currentThread().getContextClassLoader().getResource(name);
+      }
+      if (url == null)
+      {
+         url = Artifact.class.getResource(name);
+      }
+      return url;
+   }
+   
+   public static Iterable<URL> loadResources(String name) throws IOException
+   {
+      Enumeration<URL> urls = null;
+      if (Thread.currentThread().getContextClassLoader() != null)
+      {
+         urls = Thread.currentThread().getContextClassLoader().getResources(name);
+      }
+      if (urls == null)
+      {
+         urls = Artifact.class.getClassLoader().getResources(name);
+      }
+      return new EnumerationIterable<URL>(urls);
+   }
 
 }

Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/ChunkyBinding.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/ChunkyBinding.java	2009-02-03 22:14:04 UTC (rev 1397)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/ChunkyBinding.java	2009-02-03 23:23:24 UTC (rev 1398)
@@ -11,7 +11,6 @@
       this.chunky = chunky;
    }
 
-   @Override
    public boolean realChunky()
    {
       return chunky;

Modified: tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/HairyBinding.java
===================================================================
--- tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/HairyBinding.java	2009-02-03 22:14:04 UTC (rev 1397)
+++ tck/trunk/impl/src/main/java/org/jboss/webbeans/tck/unit/definition/binding/HairyBinding.java	2009-02-03 23:23:24 UTC (rev 1398)
@@ -11,7 +11,6 @@
       this.clipped = clipped;
    }
    
-   @Override
    public boolean clipped()
    {
       return clipped;

Added: 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	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/AbstractArtifactTest.java	2009-02-03 23:23:24 UTC (rev 1398)
@@ -0,0 +1,66 @@
+package org.jboss.webbeans.tck.impl.test.packaging;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.util.Arrays;
+
+public abstract class AbstractArtifactTest
+{
+   
+   protected static final FilenameFilter WEB_INF_FILTER = new FilenameFilter()
+   {
+      public boolean accept(File dir, String name)
+      {
+         return name.equals("WEB-INF");
+      }
+   };
+   
+   protected static final FilenameFilter BEANS_XML_FILTER = new FilenameFilter()
+   {
+      
+     public boolean accept(File dir, String name)
+      {
+         return name.equals("beans.xml");
+      } 
+      
+   };
+   
+   
+   
+   protected static final FilenameFilter WEB_XML_FILTER = new FilenameFilter()
+   {
+      
+     public boolean accept(File dir, String name)
+      {
+         return name.equals("web.xml");
+      } 
+      
+   };
+   
+   protected File getCurrentPackageAsFile(File root)
+   {
+      String[] packageHierarchy = getClass().getPackage().getName().split("\\.");
+      for (final String packageName : packageHierarchy)
+      {
+         File[] files = root.listFiles(new FilenameFilter()
+         {
+            
+            public boolean accept(File dir, String name)
+            {
+               return name.equals(packageName);
+            }
+            
+         });
+         if (files.length == 1)
+         {
+            root = files[0];
+         }
+         else
+         {
+            throw new IllegalStateException("Unable to traverse package hierarchy " + Arrays.asList(packageHierarchy) + ", unable to open directory " + packageName);
+         }
+      }
+      return root;
+   }
+   
+}


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

Added: 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	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/ArtifactTest.java	2009-02-03 23:23:24 UTC (rev 1398)
@@ -0,0 +1,61 @@
+package org.jboss.webbeans.tck.impl.test.packaging.all;
+
+import java.io.File;
+import java.io.FilenameFilter;
+import java.util.Arrays;
+
+import org.jboss.webbeans.tck.impl.packaging.standard.war.WarArtifact;
+import org.jboss.webbeans.tck.impl.test.packaging.AbstractArtifactTest;
+import org.testng.annotations.Test;
+
+public class ArtifactTest extends AbstractArtifactTest
+{
+   
+   @Test
+   public void testAllClassesInPackage() throws Exception
+   {
+      WarArtifact war = new WarArtifact();
+      war.getPackages().add(ArtifactTest.class.getPackage());
+      File root = war.create();
+      File currentPackage = getCurrentPackageAsFile(root);
+      System.out.println(Arrays.asList(currentPackage.listFiles()));
+      assert currentPackage.listFiles().length == 6;
+      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("ArtifactTest");
+         }
+         
+      });
+      assert testClasses.length == 4;
+      
+   }
+   
+}


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

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/Cow.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/Cow.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/Cow.java	2009-02-03 23:23:24 UTC (rev 1398)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.impl.test.packaging.all;
+
+class Cow
+{
+   
+}


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

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/Fox.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/Fox.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/all/Fox.java	2009-02-03 23:23:24 UTC (rev 1398)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.impl.test.packaging.all;
+
+class Fox
+{
+   
+}


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

Copied: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/defined/ArtifactTest.java (from rev 1396, tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/ArtifactTest.java)
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/defined/ArtifactTest.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/defined/ArtifactTest.java	2009-02-03 23:23:24 UTC (rev 1398)
@@ -0,0 +1,51 @@
+package org.jboss.webbeans.tck.impl.test.packaging.defined;
+
+import java.io.File;
+import java.io.FilenameFilter;
+
+import org.jboss.webbeans.tck.impl.packaging.standard.war.WarArtifact;
+import org.jboss.webbeans.tck.impl.test.packaging.AbstractArtifactTest;
+import org.testng.annotations.Test;
+
+public class ArtifactTest extends AbstractArtifactTest
+{  
+   
+   @Test
+   public void testDefaultWar() throws Exception
+   {
+      WarArtifact war = new WarArtifact();
+      war.getClasses().add(Cow.class);
+      File root = war.create();
+      assert root.listFiles().length == 2;
+      assert root.isDirectory();
+      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 == 2;
+      assert webInf.listFiles(BEANS_XML_FILTER).length == 1;
+      File beansXml = webInf.listFiles(BEANS_XML_FILTER)[0];
+      assert beansXml.isFile();
+      assert beansXml.getName().equals("beans.xml");
+      assert beansXml.length() == 0;
+      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();
+   }
+   
+}


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

Copied: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/defined/Cow.java (from rev 1396, tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/Cow.java)
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/defined/Cow.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/defined/Cow.java	2009-02-03 23:23:24 UTC (rev 1398)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.impl.test.packaging.defined;
+
+class Cow
+{
+   
+}


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

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-03 23:23:24 UTC (rev 1398)
@@ -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.standard.war.WarArtifact;
+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
+   {
+      WarArtifact war = new WarArtifact();
+      war.getPackages().add(ArtifactTest.class.getPackage());
+      File root = war.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;
+   }
+   
+}


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

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-03 23:23:24 UTC (rev 1398)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.impl.test.packaging.subpackages;
+
+class Cow
+{
+   
+}


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

Added: tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/pests/Fox.java
===================================================================
--- tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/pests/Fox.java	                        (rev 0)
+++ tck/trunk/impl/src/test/java/org/jboss/webbeans/tck/impl/test/packaging/subpackages/pests/Fox.java	2009-02-03 23:23:24 UTC (rev 1398)
@@ -0,0 +1,6 @@
+package org.jboss.webbeans.tck.impl.test.packaging.subpackages.pests;
+
+class Fox
+{
+   
+}


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




More information about the weld-commits mailing list