1 package net.java.examples.hmp.test.util;
\r
3 import org.jboss.shrinkwrap.api.ArchivePath;
\r
4 import org.jboss.shrinkwrap.api.Filter;
\r
5 import org.jboss.shrinkwrap.api.ShrinkWrap;
\r
6 import org.jboss.shrinkwrap.api.spec.WebArchive;
\r
7 import org.jboss.shrinkwrap.resolver.api.maven.Maven;
\r
8 import org.jboss.shrinkwrap.resolver.api.maven.PomEquippedResolveStage;
\r
10 import net.java.examples.hmp.model.domain.BaseEntity;
\r
11 import net.java.examples.hmp.model.domain.callback.UserChangeTrackListener;
\r
12 import net.java.examples.hmp.model.domain.extension.IUserChangeInfo;
\r
13 import net.java.examples.hmp.model.domain.extension.IUserChangeTrackable;
\r
14 import net.java.examples.hmp.model.domain.userchangeinfo.BaseUserChangeTrackedEntity;
\r
15 import net.java.examples.hmp.model.domain.userchangeinfo.UserChangeInfo;
\r
16 import net.java.examples.hmp.model.test.userchangeinfo.UserChangeInfoTestEntity;
\r
17 import net.java.examples.hmp.persistence.producer.EntityManagerProducer;
\r
18 import net.java.examples.hmp.service.IUserChangeInfoTestService;
\r
19 import net.java.examples.hmp.service.impl.UserChangeInfoTestService;
\r
21 public class BaseDeploymentPackage {
\r
23 private WebArchive war;
\r
24 PomEquippedResolveStage resolver = createOfflineResolverForDefaultPomFile();
\r
26 private static final IgnoreTestClassesFilter IGNORE_TEST_CLASSES_FILTER = new IgnoreTestClassesFilter();
\r
28 public PomEquippedResolveStage createOfflineResolverForDefaultPomFile() {
\r
29 return Maven.configureResolver().workOffline(true).loadPomFromFile("pom.xml");
\r
32 public BaseDeploymentPackage addPackages(Package... packages) {
\r
33 this.war.addPackages(false, IGNORE_TEST_CLASSES_FILTER, packages);
\r
37 public BaseDeploymentPackage addClasses(Class<?>... classes) {
\r
38 this.war.addClasses(classes);
\r
43 public BaseDeploymentPackage addClass(Class<?> clazz) {
\r
44 this.war.addClass(clazz);
\r
49 public static class IgnoreTestClassesFilter implements Filter<ArchivePath> {
\r
52 public boolean include(ArchivePath object) {
\r
53 return !object.get().endsWith("Test.class");
\r
57 public BaseDeploymentPackage createStandardDeploymentPackage() {
\r
58 PomEquippedResolveStage resolver = createOfflineResolverForDefaultPomFile();
\r
60 this.war = ShrinkWrap.create(WebArchive.class, "test.war")//
\r
61 .addAsWebInfResource("beans.xml", "beans.xml")//
\r
62 .addAsLibraries(resolver.resolve(//
\r
63 "org.assertj:assertj-core", // Assertj must be included to use the Assertj-Assertions in the Test-Methods
\r
64 "com.google.guava:guava", //
\r
65 "org.apache.commons:commons-lang3", //
\r
66 "commons-beanutils:commons-beanutils", //
\r
67 "org.apache.deltaspike.core:deltaspike-core-api", //
\r
68 "org.apache.deltaspike.core:deltaspike-core-impl").withTransitivity().asFile());
\r
73 public BaseDeploymentPackage addTestPersistence() {
\r
74 this.war.addAsResource("test-persistence.xml", "META-INF/persistence.xml");
\r
78 public BaseDeploymentPackage addPackagesModel() {
\r
79 addClass(EntityManagerProducer.class);
\r
81 this.addPackageModelDomain();
\r
86 private BaseDeploymentPackage addPackageModelDomain() {
\r
87 addPackages(BaseEntity.class.getPackage());
\r
88 addPackages(IUserChangeInfo.class.getPackage());
\r
93 public BaseDeploymentPackage addPackageTestModel() {
\r
94 // Here the definition of our Test-Entity, which is located under src/test/classes
\r
95 addClass(UserChangeInfoTestEntity.class);
\r
100 public BaseDeploymentPackage addPackagesUserChangeTrack() {
\r
101 addClass(UserChangeInfo.class);
\r
102 addClass(IUserChangeInfo.class);
\r
103 addClass(UserChangeTrackListener.class);
\r
104 addClass(IUserChangeTrackable.class);
\r
105 addClass(BaseUserChangeTrackedEntity.class);
\r
110 public BaseDeploymentPackage addPackagesTestServices() {
\r
111 addClass(IUserChangeInfoTestService.class);
\r
112 addClass(UserChangeInfoTestService.class);
\r
117 public WebArchive getWAR() {
\r