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