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
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
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 }