You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2014/03/20 02:22:36 UTC
git commit: CXF-5576: Initital support for CDI integration.
Refactored bus detection inside CXFCdiServlet.
Repository: cxf
Updated Branches:
refs/heads/master c15186dc8 -> fc5026a90
CXF-5576: Initital support for CDI integration. Refactored bus detection inside CXFCdiServlet.
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/fc5026a9
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/fc5026a9
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/fc5026a9
Branch: refs/heads/master
Commit: fc5026a904e16a5377a721e4984be8fc14649608
Parents: c15186d
Author: reta <dr...@gmail.com>
Authored: Wed Mar 19 21:22:21 2014 -0400
Committer: reta <dr...@gmail.com>
Committed: Wed Mar 19 21:22:21 2014 -0400
----------------------------------------------------------------------
.../java/org/apache/cxf/cdi/CXFCdiServlet.java | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/fc5026a9/integration/cdi/src/main/java/org/apache/cxf/cdi/CXFCdiServlet.java
----------------------------------------------------------------------
diff --git a/integration/cdi/src/main/java/org/apache/cxf/cdi/CXFCdiServlet.java b/integration/cdi/src/main/java/org/apache/cxf/cdi/CXFCdiServlet.java
index 869ef88..be93b8a 100644
--- a/integration/cdi/src/main/java/org/apache/cxf/cdi/CXFCdiServlet.java
+++ b/integration/cdi/src/main/java/org/apache/cxf/cdi/CXFCdiServlet.java
@@ -18,10 +18,14 @@
*/
package org.apache.cxf.cdi;
+import java.util.Set;
+
+import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
import javax.enterprise.inject.spi.CDI;
import javax.servlet.ServletConfig;
+import org.apache.cxf.Bus;
import org.apache.cxf.BusFactory;
import org.apache.cxf.transport.servlet.CXFNonSpringServlet;
@@ -34,12 +38,21 @@ public class CXFCdiServlet extends CXFNonSpringServlet {
@Override
protected void loadBus(ServletConfig servletConfig) {
+ Bus bus = null;
final BeanManager beanManager = CDI.current().getBeanManager();
if (beanManager != null) {
- final JAXRSCdiResourceExtension extension = beanManager.getExtension(JAXRSCdiResourceExtension.class);
- if (extension != null) {
- setBus(extension.getBus());
+ final Set< Bean< ? > > candidates = beanManager.getBeans(CdiBusBean.CXF);
+
+ if (!candidates.isEmpty()) {
+ final Bean< ? > candidate = candidates.iterator().next();
+
+ bus = (Bus)beanManager.getReference(candidate, Bus.class,
+ beanManager.createCreationalContext(candidate));
}
+ }
+
+ if (bus != null) {
+ setBus(bus);
} else {
busCreated = true;
setBus(BusFactory.newInstance().createBus());