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:37 UTC
svn commit: r1630043 - in
/tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/testing:
ApplicationComposers.java JaxrsProviders.java
Author: rmannibucau
Date: Wed Oct 8 09:30:37 2014
New Revision: 1630043
URL: http://svn.apache.org/r1630043
Log:
TOMEE-1388 @JaxrsProviders
Added:
tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/testing/JaxrsProviders.java
Modified:
tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java
Modified: tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java
URL: http://svn.apache.org/viewvc/tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java?rev=1630043&r1=1630042&r2=1630043&view=diff
==============================================================================
--- tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java (original)
+++ tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/testing/ApplicationComposers.java Wed Oct 8 09:30:37 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,33 @@ 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<Class<?>>(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++;
Added: tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/testing/JaxrsProviders.java
URL: http://svn.apache.org/viewvc/tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/testing/JaxrsProviders.java?rev=1630043&view=auto
==============================================================================
--- tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/testing/JaxrsProviders.java (added)
+++ tomee/tomee/branches/tomee-1.7.x/container/openejb-core/src/main/java/org/apache/openejb/testing/JaxrsProviders.java Wed Oct 8 09:30:37 2014
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.openejb.testing;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface JaxrsProviders {
+ Class<?>[] value() default {};
+ String applicationName() default "jaxrs-application";
+}