
com.oneandone.cdi.weldstarter.WeldStarterTestBase Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of weld-starter-base Show documentation
Show all versions of weld-starter-base Show documentation
Contains the common classes to support the starting of weld standalone engines.
The newest version!
package com.oneandone.cdi.weldstarter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ServiceLoader;
import javax.enterprise.inject.spi.Extension;
import org.junit.After;
import org.junit.Before;
import com.oneandone.cdi.weldstarter.spi.WeldStarter;
/**
* Helps develop tests to verify behaviour of CDI using weld-starters
*
* @author aschoerk
*/
public class WeldStarterTestBase {
@Before
public void initWeldStarter() {
ServiceLoader loader = ServiceLoader.load(WeldStarter.class);
List starters = new ArrayList<>();
for (Iterator it = loader.iterator(); it.hasNext();) {
WeldStarter s = it.next();
starters.add(s);
}
if (starters.size() == 0)
throw new RuntimeException("No WeldStarter found");
if (starters.size() > 1)
throw new RuntimeException("More than one WeldStarter found");
setWeldStarter(starters.get(0));
}
WeldSetupClass weldSetup = new WeldSetupClass();
WeldStarter weldStarter = null;
public void setWeldStarter(WeldStarter weldStarterP) {
this.weldStarter = weldStarterP;
}
public void setBeanClasses(Class... classes) {
weldSetup.setBeanClasses(classes);
}
public void setDecoratorClasses(Class>... classes) {
weldSetup.setEnabledDecorators(Arrays.asList(classes));
}
public void setInterceptorClasses(Class>... classes) {
weldSetup.setEnabledInterceptors((Collection>) Arrays.asList(classes));
}
public void addBeanClasses(Class... classes) {
weldSetup.addBeanClasses(classes);
}
public void setExtensions(Collection> classes) {
weldSetup.setExtensions(classes);
}
public void setBeanClasses(Collection> classes) {
weldSetup.setBeanClasses(classes.toArray(new Class>[classes.size()]));
}
public void setAlternativeClasses(Collection> classes) {
weldSetup.setAlternativeClasses(classes.toArray(new Class>[classes.size()]));
}
public void setAlternativeClasses(Class... classes) {
weldSetup.setAlternativeClasses(classes);
}
public void setEnabledAlternativeStereotypes(Class... classes) {
weldSetup.setEnabledAlternativeStereotypes(classes);
}
public void start() {
weldStarter.start(weldSetup);
}
public T selectGet(Class clazz) {
return weldStarter.get(clazz);
}
public String getStarterClassname() {
return weldStarter.getClass().getName();
}
@After
public void tearDown() {
weldStarter.tearDown();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy