View Javadoc

1   package org.jcr_blog.commons.test;
2   
3   import java.lang.StringBuilder;
4   import org.jboss.shrinkwrap.api.ArchivePaths;
5   import org.jboss.shrinkwrap.api.ShrinkWrap;
6   import org.jboss.shrinkwrap.api.asset.ByteArrayAsset;
7   import org.jboss.shrinkwrap.api.spec.JavaArchive;
8   
9   /**
10   *
11   * @author Sebastian Prehn <sebastian.prehn@planetswebdesign.de>
12   */
13  public class DeploymentFactory {
14  
15      private static final String BEANS_START = "<beans 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/beans_1_0.xsd\">";
16      private static final String BEANS_END = "</beans>";
17      private static final String BEANS_FILENAME = "beans.xml";
18      private static final String TEST_JAR_FILENAME ="test.jar";
19      private static final String INTERCEPTOR_START = "<interceptors>";
20      private static final String INTERCEPTOR_END = "</interceptors>";
21      private static final String CLASS_START = "<class>";
22      private static final String CLASS_END = "</class>";
23      
24      public static JavaArchive createDeployment(Class<?>... classes) {
25          return ShrinkWrap.create(JavaArchive.class, TEST_JAR_FILENAME).addClasses(classes).addAsManifestResource(
26                  new ByteArrayAsset((BEANS_START+BEANS_END).getBytes()),
27                  ArchivePaths.create(BEANS_FILENAME));
28      }
29  
30      public static JavaArchive createDeployment(Class<?>[] classes, Class<?>[] interceptors) {
31          // prepare beans.xml content
32          final StringBuilder sb = new StringBuilder();
33                  sb.append(BEANS_START);
34                  sb.append(INTERCEPTOR_START);
35                  for(Class c: interceptors){
36                      sb.append(CLASS_START);
37                      sb.append(c.getName());
38                      sb.append(CLASS_END);
39                  }
40                  sb.append(INTERCEPTOR_END);
41                  sb.append(BEANS_END);
42  
43                  
44          return ShrinkWrap.create(JavaArchive.class, TEST_JAR_FILENAME).addClasses(classes).addAsManifestResource(
45                  new ByteArrayAsset(sb.toString().getBytes()),
46                  ArchivePaths.create(BEANS_FILENAME));
47      }
48  }