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