[jboss-svn-commits] JBoss Common SVN: r3508 - in declarchive/trunk: api/src/main/java/org/jboss/declarchive/api/spec and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Sep 8 13:11:10 EDT 2009


Author: aslak
Date: 2009-09-08 13:11:10 -0400 (Tue, 08 Sep 2009)
New Revision: 3508

Modified:
   declarchive/trunk/api/src/main/java/org/jboss/declarchive/api/container/ClassContainer.java
   declarchive/trunk/api/src/main/java/org/jboss/declarchive/api/spec/WebArchive.java
   declarchive/trunk/impl-base/src/main/java/org/jboss/declarchive/impl/base/ContainerBase.java
   declarchive/trunk/impl-base/src/main/java/org/jboss/declarchive/impl/base/spec/WebArchiveImpl.java
   declarchive/trunk/impl-base/src/test/java/org/jboss/declarchive/impl/base/spec/WebArchiveImplTestCase.java
Log:
TMPARCH-6 
- Added addClass/addPackage to ClassContainer, impled in ContainerBase
- Added missing ResourceContainer to WebArchive
- Added testcase shouldBeAbleToAddResource to WebArchiveImplTestCase
- Changed visibility on getLibraryPath to protected, should only be used internally.

Modified: declarchive/trunk/api/src/main/java/org/jboss/declarchive/api/container/ClassContainer.java
===================================================================
--- declarchive/trunk/api/src/main/java/org/jboss/declarchive/api/container/ClassContainer.java	2009-09-02 18:39:28 UTC (rev 3507)
+++ declarchive/trunk/api/src/main/java/org/jboss/declarchive/api/container/ClassContainer.java	2009-09-08 17:11:10 UTC (rev 3508)
@@ -37,6 +37,15 @@
    //-------------------------------------------------------------------------------------||
 
    /**
+    * Adds the specified Class to the {@link Archive}.
+    * 
+    * @param class The class to add to the Archive
+    * @return This virtual archive
+    * @throws IllegalArgumentException If no class were specified
+    */
+   T addClass(Class<?> clazz) throws IllegalArgumentException;
+
+   /**
     * Adds the specified Classes to the {@link Archive}.
     * 
     * @param classes The classes to add to the Archive
@@ -46,6 +55,15 @@
    T addClasses(Class<?>... classes) throws IllegalArgumentException;
 
    /**
+    * Adds all classes in the specified {@link Package} to the {@link Archive}.
+    * 
+    * @param pack The {@link Package} to add
+    * @return This virtual archive
+    * @throws IllegalArgumentException If no package were specified
+    */
+   T addPackage(Package pack) throws IllegalArgumentException;
+   
+   /**
     * Adds all classes in the specified {@link Package}s to the {@link Archive}.
     * 
     * @param recursive Should the sub packages be added

Modified: declarchive/trunk/api/src/main/java/org/jboss/declarchive/api/spec/WebArchive.java
===================================================================
--- declarchive/trunk/api/src/main/java/org/jboss/declarchive/api/spec/WebArchive.java	2009-09-02 18:39:28 UTC (rev 3507)
+++ declarchive/trunk/api/src/main/java/org/jboss/declarchive/api/spec/WebArchive.java	2009-09-08 17:11:10 UTC (rev 3508)
@@ -21,6 +21,7 @@
 import org.jboss.declarchive.api.container.ClassContainer;
 import org.jboss.declarchive.api.container.LibraryContainer;
 import org.jboss.declarchive.api.container.ManifestContainer;
+import org.jboss.declarchive.api.container.ResourceContainer;
 import org.jboss.declarchive.api.container.WebContainer;
 
 /**
@@ -38,6 +39,7 @@
       ManifestContainer<WebArchive>,
       ClassContainer<WebArchive>,
       LibraryContainer<WebArchive>,
+      ResourceContainer<WebArchive>,
       WebContainer<WebArchive>
 {
 }

Modified: declarchive/trunk/impl-base/src/main/java/org/jboss/declarchive/impl/base/ContainerBase.java
===================================================================
--- declarchive/trunk/impl-base/src/main/java/org/jboss/declarchive/impl/base/ContainerBase.java	2009-09-02 18:39:28 UTC (rev 3507)
+++ declarchive/trunk/impl-base/src/main/java/org/jboss/declarchive/impl/base/ContainerBase.java	2009-09-08 17:11:10 UTC (rev 3508)
@@ -382,6 +382,17 @@
    protected abstract Path getClassesPath();
 
    /* (non-Javadoc)
+    * @see org.jboss.declarchive.api.container.ClassContainer#addClass(java.lang.Class)
+    */
+   @Override
+   public T addClass(Class<?> clazz) throws IllegalArgumentException
+   {
+      Validate.notNull(clazz, "Clazz must be specified");
+     
+      return addClasses(clazz);
+   }
+   
+   /* (non-Javadoc)
     * @see org.jboss.declarchive.api.container.ClassContainer#addClasses(java.lang.Class<?>[])
     */
    public T addClasses(Class<?>... classes) throws IllegalArgumentException 
@@ -398,6 +409,17 @@
    };
    
    /* (non-Javadoc)
+    * @see org.jboss.declarchive.api.container.ClassContainer#addPackage(java.lang.Package)
+    */
+   @Override
+   public T addPackage(Package pack) throws IllegalArgumentException
+   {
+      Validate.notNull(pack, "Pack must be specified");
+      
+      return addPackages(false, pack);
+   }
+   
+   /* (non-Javadoc)
     * @see org.jboss.declarchive.api.container.ClassContainer#addPackages(boolean, java.lang.Package[])
     */
    @Override
@@ -430,7 +452,7 @@
     * 
     * @return Base Path for the LibraryContainer resources
     */
-   public abstract Path getLibraryPath();
+   protected abstract Path getLibraryPath();
    
    /* (non-Javadoc)
     * @see org.jboss.declarchive.api.container.LibraryContainer#addLibrary(org.jboss.declarchive.api.Archive)

Modified: declarchive/trunk/impl-base/src/main/java/org/jboss/declarchive/impl/base/spec/WebArchiveImpl.java
===================================================================
--- declarchive/trunk/impl-base/src/main/java/org/jboss/declarchive/impl/base/spec/WebArchiveImpl.java	2009-09-02 18:39:28 UTC (rev 3507)
+++ declarchive/trunk/impl-base/src/main/java/org/jboss/declarchive/impl/base/spec/WebArchiveImpl.java	2009-09-08 17:11:10 UTC (rev 3508)
@@ -118,7 +118,7 @@
     * @see org.jboss.declarchive.impl.base.ContainerBase#getLibraryPath()
     */
    @Override
-   public Path getLibraryPath()
+   protected Path getLibraryPath()
    {
       return PATH_LIBRARY;
    }

Modified: declarchive/trunk/impl-base/src/test/java/org/jboss/declarchive/impl/base/spec/WebArchiveImplTestCase.java
===================================================================
--- declarchive/trunk/impl-base/src/test/java/org/jboss/declarchive/impl/base/spec/WebArchiveImplTestCase.java	2009-09-02 18:39:28 UTC (rev 3507)
+++ declarchive/trunk/impl-base/src/test/java/org/jboss/declarchive/impl/base/spec/WebArchiveImplTestCase.java	2009-09-08 17:11:10 UTC (rev 3508)
@@ -45,6 +45,8 @@
 
    private static final Path PATH_CLASSES = new BasicPath(PATH_WEBINF, "classes");
 
+   private static final Path PATH_RESOURCE = new BasicPath();
+
    private WebArchive archive;
 
    @Before
@@ -138,4 +140,16 @@
             "A class should be located in /WEB-INF/classes/", 
             archive.contains(expectedPath));
    }
+   
+   @Test
+   public void shouldBeAbleToAddResource() throws Exception 
+   {
+      archive.addResource(TEST_RESOURCE);
+      
+      Path expectedPath = new BasicPath(PATH_RESOURCE, TEST_RESOURCE);
+      
+      Assert.assertTrue(
+            "A resource should be located in /",
+            archive.contains(expectedPath));
+   }
 }



More information about the jboss-svn-commits mailing list