Skip to content

Commit

Permalink
Add cdi dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
jimma authored and asoldano committed Nov 20, 2017
1 parent c3c97b7 commit 8a985d7
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 12 deletions.
4 changes: 4 additions & 0 deletions modules/server/pom.xml
Expand Up @@ -212,6 +212,10 @@
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
</dependency>
<dependency>
<groupId>javax.enterprise</groupId>
<artifactId>cdi-api</artifactId>
</dependency>

<!-- transitive dependencies -->
<dependency>
Expand Down
Expand Up @@ -54,6 +54,7 @@
import org.jboss.wsf.spi.metadata.JAXRSDeploymentMetadata;
import org.jboss.wsf.stack.cxf.JBossWSJAXRSInvoker;
import org.jboss.wsf.stack.cxf.Messages;
import org.jboss.wsf.stack.cxf.cdi.CDIResourceProvider;
import org.jboss.wsf.stack.cxf.client.configuration.JBossWSBusFactory;
import org.jboss.wsf.stack.cxf.deployment.JNDIComponentResourceProvider;

Expand Down Expand Up @@ -105,14 +106,17 @@ private void startDeploymentBus(final Deployment dep)
//Don't add the default cxf JSONProvider
bus.setProperty("skip.default.json.provider.registration", true);
JAXRSDeploymentMetadata md = dep.getAttachment(JAXRSDeploymentMetadata.class);

boolean cdiDeployment = false;
if (dep.getProperty("isWeldDeployment") != null) {
cdiDeployment = true;
}
List<Class<?>> applications = md.getScannedApplicationClasses();
if (!applications.isEmpty()) {
for (Class<?> appClazz : applications) {
createFromApplication(md, appClazz, bus, classLoader);
createFromApplication(md, appClazz, bus, classLoader, cdiDeployment);
}
} else {
create(md, bus, classLoader);
create(md, bus, classLoader, cdiDeployment);
}
dep.addAttachment(Bus.class, bus);
}
Expand All @@ -123,7 +127,7 @@ private void startDeploymentBus(final Deployment dep)
}
}

private static void createFromApplication(JAXRSDeploymentMetadata md, Class<?> appClazz, Bus bus, ClassLoader classLoader) {
private static void createFromApplication(JAXRSDeploymentMetadata md, Class<?> appClazz, Bus bus, ClassLoader classLoader, boolean cdiDeployment) {
ApplicationInfo providerApp = (ApplicationInfo)createSingletonInstance(appClazz, bus);
Application app = providerApp.getProvider();
JAXRSServerFactoryBean bean = ResourceUtils.createApplication(app, md.isIgnoreApplicationPath(), false);
Expand All @@ -132,10 +136,13 @@ private static void createFromApplication(JAXRSDeploymentMetadata md, Class<?> a
bean.setInvoker(new JBossWSJAXRSInvoker());
List<Class<?>> additionalResources = new ArrayList<>();
if (app.getClasses().isEmpty() && app.getSingletons().isEmpty()) {
processResources(bean, md, bus, classLoader, additionalResources);
processResources(bean, md, bus, classLoader, additionalResources, cdiDeployment);
setProviders(bean, md, bus, classLoader);
}
processJNDIComponentResources(bean, md, bus, classLoader, additionalResources);
if (!cdiDeployment) {
processJNDIComponentResources(bean, md, bus, classLoader, additionalResources);
}

setJSONProviders(bean);
setValidationInterceptors(bean);
if (!bean.getResourceClasses().isEmpty() || !additionalResources.isEmpty()) {
Expand All @@ -150,14 +157,14 @@ private static void setValidationInterceptors(JAXRSServerFactoryBean bean) {
bean.setProvider(new ValidationExceptionMapper());
}

private static void create(JAXRSDeploymentMetadata md, Bus bus, ClassLoader classLoader) {
private static void create(JAXRSDeploymentMetadata md, Bus bus, ClassLoader classLoader, boolean cdiDeployment) {
JAXRSServerFactoryBean bean = new JAXRSServerFactoryBean();
bean.setBus(bus);
bean.setAddress("/"); //TODO!!!
bean.setInvoker(new JBossWSJAXRSInvoker());
//resources...
List<Class<?>> resources = new ArrayList<>();
processResources(bean, md, bus, classLoader, resources);
processResources(bean, md, bus, classLoader, resources, cdiDeployment);
//resource providers (CXF)... ?

//providers...
Expand All @@ -172,11 +179,16 @@ private static void create(JAXRSDeploymentMetadata md, Bus bus, ClassLoader clas
}
}

private static void processResources(JAXRSServerFactoryBean bean, JAXRSDeploymentMetadata md, Bus bus, ClassLoader classLoader, List<Class<?>> resources) {
private static void processResources(JAXRSServerFactoryBean bean, JAXRSDeploymentMetadata md, Bus bus, ClassLoader classLoader, List<Class<?>> resources, boolean cdiDeployment) {
if (!md.getScannedResourceClasses().isEmpty()) {
try {
for (String cl : md.getScannedResourceClasses()) {
resources.add(classLoader.loadClass(cl));
for (String cl : md.getScannedResourceClasses())
{
Class<?> clazz = classLoader.loadClass(cl);
resources.add(clazz);
if (cdiDeployment) {
bean.setResourceProvider(clazz, new CDIResourceProvider(clazz));
}
}
} catch (ClassNotFoundException cnfe) {
throw new WSFException(cnfe);
Expand Down
8 changes: 7 additions & 1 deletion pom.xml
Expand Up @@ -121,6 +121,7 @@
<jackson.version>2.5.4</jackson.version>
<jettison.version>1.3.3</jettison.version>
<classmate.version>0.8.0</classmate.version>
<javax.enterprise.version>1.2</javax.enterprise.version>
<modular.jdk.args />
<modular.jdk.props />
</properties>
Expand Down Expand Up @@ -1204,7 +1205,12 @@
<version>${xerces.version}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>javax.enterprise</groupId>
<artifactId>cdi-api</artifactId>
<scope>provided</scope>
<version>${javax.enterprise.version}</version>
</dependency>
<!-- transitive dependencies -->
<dependency>
<groupId>log4j</groupId>
Expand Down

0 comments on commit 8a985d7

Please sign in to comment.