You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2014/10/08 11:30:42 UTC
svn commit: r1630044 - in
/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing:
ApplicationComposers.java JaxrsProviders.java
Author: rmannibucau
Date: Wed Oct 8 09:30:42 2014
New Revision: 1630044
URL: http://svn.apache.org/r1630044
Log:
TOMEE-1388 @JaxrsProviders
Added:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing/JaxrsProviders.java
- copied, changed from r1629578, tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing/Classes.java
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java?rev=1630044&r1=1630043&r2=1630044&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java Wed Oct 8 09:30:42 2014
@@ -61,6 +61,7 @@ import org.apache.openejb.jee.jpa.unit.P
import org.apache.openejb.jee.jpa.unit.PersistenceUnit;
import org.apache.openejb.jee.oejb3.EjbDeployment;
import org.apache.openejb.jee.oejb3.OpenejbJar;
+import org.apache.openejb.jee.oejb3.PojoDeployment;
import org.apache.openejb.loader.IO;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.spi.ContainerSystem;
@@ -496,9 +497,32 @@ public final class ApplicationComposers
ejbModule.setBeans(beans(new Beans(), cdiDecorators, cdiInterceptors, cdiAlternatives));
}
+ final JaxrsProviders providers = method.getAnnotation(JaxrsProviders.class);
+ final Class<?>[] providersClasses = providers == null ? null : providers.value();
+ if (providers != null) {
+ if (classes == null) {
+ classes = providersClasses;
+ } else {
+ final Collection<Class<?>> newClasses = new ArrayList<>(asList(classes));
+ newClasses.addAll(asList(providersClasses));
+ classes = newClasses.toArray(new Class<?>[newClasses.size()]);
+ }
+ }
+
final IAnnotationFinder finder = finderFromClasses(webModule, classes, findFiles(jarsAnnotation));
webModule.setFinder(finder);
ejbModule.setFinder(webModule.getFinder());
+ if (providersClasses != null) {
+ OpenejbJar openejbJar = ejbModule.getOpenejbJar();
+ if (openejbJar == null) {
+ openejbJar = new OpenejbJar();
+ ejbModule.setOpenejbJar(openejbJar);
+ }
+ final PojoDeployment pojoDeployment = new PojoDeployment();
+ pojoDeployment.setClassName(providers.applicationName());
+ pojoDeployment.getProperties().setProperty("cxf.jaxrs.providers", Join.join(",", providersClasses).replace("class ", ""));
+ openejbJar.getPojoDeployment().add(pojoDeployment);
+ }
} else if (obj instanceof WebModule) { // will add the ejbmodule too
webModulesNb++;
Copied: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing/JaxrsProviders.java (from r1629578, tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing/Classes.java)
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing/JaxrsProviders.java?p2=tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing/JaxrsProviders.java&p1=tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing/Classes.java&r1=1629578&r2=1630044&rev=1630044&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing/Classes.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/testing/JaxrsProviders.java Wed Oct 8 09:30:42 2014
@@ -24,14 +24,7 @@ import java.lang.annotation.Target;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
-public @interface Classes {
+public @interface JaxrsProviders {
Class<?>[] value() default {};
-
- Class<?>[] cdiInterceptors() default {};
-
- Class<?>[] cdiDecorators() default {};
-
- Class<?>[] cdiAlternatives() default {};
-
- boolean cdi() default false;
+ String applicationName() default "jaxrs-application";
}