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