Author: rmannibucau
Date: Thu Dec 22 13:41:58 2011
New Revision: 1222227

URL: http://svn.apache.org/viewvc?rev=1222227&view=rev
Log:
adding OSGi services as injetable beans through CDI but not as managed beans

Modified:
    
openejb/trunk/openejb/container/openejb-osgi/src/main/java/org/apache/openejb/core/osgi/impl/RegisterOSGIServicesExtension.java

Modified: 
openejb/trunk/openejb/container/openejb-osgi/src/main/java/org/apache/openejb/core/osgi/impl/RegisterOSGIServicesExtension.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-osgi/src/main/java/org/apache/openejb/core/osgi/impl/RegisterOSGIServicesExtension.java?rev=1222227&r1=1222226&r2=1222227&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-osgi/src/main/java/org/apache/openejb/core/osgi/impl/RegisterOSGIServicesExtension.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-osgi/src/main/java/org/apache/openejb/core/osgi/impl/RegisterOSGIServicesExtension.java
 Thu Dec 22 13:41:58 2011
@@ -12,12 +12,10 @@ import javax.enterprise.event.Observes;
 import javax.enterprise.inject.Any;
 import javax.enterprise.inject.Default;
 import javax.enterprise.inject.spi.AfterBeanDiscovery;
-import javax.enterprise.inject.spi.AnnotatedType;
 import javax.enterprise.inject.spi.Bean;
 import javax.enterprise.inject.spi.BeanManager;
 import javax.enterprise.inject.spi.Extension;
 import javax.enterprise.inject.spi.InjectionPoint;
-import javax.enterprise.inject.spi.InjectionTarget;
 import javax.enterprise.util.AnnotationLiteral;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
@@ -35,9 +33,7 @@ public class RegisterOSGIServicesExtensi
             if (services != null) {
                 for (ServiceReference service  : services) {
                     final Class<?> clazz = serviceClass(service);
-                    final AnnotatedType<?> at = bm.createAnnotatedType(clazz);
-                    final InjectionTarget<?> it = bm.createInjectionTarget(at);
-                    abd.addBean(new 
OSGiServiceBean<Object>((InjectionTarget<Object>) it, service));
+                    abd.addBean(new OSGiServiceBean<Object>(service));
                     LOGGER.debug("added service {} as a CDI Application scoped 
bean", clazz.getName());
                 }
             }
@@ -50,25 +46,19 @@ public class RegisterOSGIServicesExtensi
 
     public static class OSGiServiceBean<T> implements Bean<T> {
         private final ServiceReference service;
-        private final InjectionTarget<T> injectiontarget;
 
-        public OSGiServiceBean(final InjectionTarget<T> it, final 
ServiceReference srv) {
-            injectiontarget = it;
+        public OSGiServiceBean(final ServiceReference srv) {
             service = srv;
         }
 
         @Override
         public T create(CreationalContext<T> ctx) {
-            final T instance = (T) 
service.getBundle().getBundleContext().getService(service);
-            injectiontarget.inject(instance, ctx);
-            injectiontarget.postConstruct(instance);
-            return instance;
+            return (T) 
service.getBundle().getBundleContext().getService(service);
         }
 
         @Override
         public void destroy(T instance, CreationalContext<T> ctx) {
-            injectiontarget.preDestroy(instance);
-            ctx.release();
+            // no-op
         }
 
         @Override
@@ -109,7 +99,7 @@ public class RegisterOSGIServicesExtensi
 
         @Override
         public Set<InjectionPoint> getInjectionPoints() {
-            return injectiontarget.getInjectionPoints();
+            return Collections.emptySet();
         }
 
         @Override


Reply via email to