[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