You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ar...@apache.org on 2013/01/14 21:40:48 UTC

svn commit: r1433111 - in /openwebbeans/trunk: webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/component/ webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/ webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/ w...

Author: arne
Date: Mon Jan 14 20:40:47 2013
New Revision: 1433111

URL: http://svn.apache.org/viewvc?rev=1433111&view=rev
Log:
OWB-755: Created AbstractEjbInjectionTarget

Added:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractEjbInjectionTarget.java
Modified:
    openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/component/EjbBeanBuilder.java
    openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java
    openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjectionTargetBeanBuilder.java

Modified: openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/component/EjbBeanBuilder.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/component/EjbBeanBuilder.java?rev=1433111&r1=1433110&r2=1433111&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/component/EjbBeanBuilder.java (original)
+++ openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/component/EjbBeanBuilder.java Mon Jan 14 20:40:47 2013
@@ -18,15 +18,20 @@
  */
 package org.apache.webbeans.ejb.common.component;
 
+import java.lang.reflect.Method;
 import java.util.Set;
 
+import javax.enterprise.context.spi.CreationalContext;
 import javax.enterprise.inject.spi.AnnotatedType;
+import javax.enterprise.inject.spi.InjectionPoint;
+import javax.enterprise.inject.spi.InjectionTarget;
 import javax.enterprise.inject.spi.ObserverMethod;
 
 import org.apache.webbeans.component.InjectionTargetBean;
 import org.apache.webbeans.component.creation.AbstractInjectionTargetBeanBuilder;
 import org.apache.webbeans.config.WebBeansContext;
 import org.apache.webbeans.ejb.common.util.EjbValidator;
+import org.apache.webbeans.portable.AbstractEjbInjectionTarget;
 
 /**
  * EjbBeanCreatorImpl.
@@ -70,4 +75,22 @@ public abstract class EjbBeanBuilder<T, 
         
         return observerMethods;
     }
+
+    @Override
+    protected InjectionTarget<T> buildInjectionTarget(AnnotatedType<T> annotatedType,
+                                                      Set<InjectionPoint> points,
+                                                      WebBeansContext webBeansContext,
+                                                      Method[] postConstructMethod,
+                                                      Method[] preDestroyMethod)
+    {
+        return new AbstractEjbInjectionTarget<T>(annotatedType, points, webBeansContext, postConstructMethod, preDestroyMethod)
+        {
+            public T produce(CreationalContext<T> creationalContext)
+            {
+                return getInstance(creationalContext);
+            }
+        };
+    }
+    
+    protected abstract T getInstance(CreationalContext<T> creationalContext);
 }

Modified: openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java?rev=1433111&r1=1433110&r2=1433111&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java (original)
+++ openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/interceptor/OpenWebBeansEjbInterceptor.java Mon Jan 14 20:40:47 2013
@@ -58,6 +58,7 @@ import org.apache.webbeans.ejb.common.co
 import org.apache.webbeans.inject.OWBInjector;
 import org.apache.webbeans.intercept.InterceptorData;
 import org.apache.webbeans.intercept.InterceptorDataImpl;
+
 import javax.enterprise.inject.spi.InterceptionType;
 import org.apache.webbeans.intercept.InvocationContextImplRemove;
 import org.apache.webbeans.logger.WebBeansLoggerFacade;

Modified: openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java?rev=1433111&r1=1433110&r2=1433111&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java (original)
+++ openwebbeans/trunk/webbeans-ejb/src/main/java/org/apache/webbeans/ejb/common/util/EjbUtility.java Mon Jan 14 20:40:47 2013
@@ -27,6 +27,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import javax.enterprise.context.spi.CreationalContext;
 import javax.enterprise.inject.spi.AnnotatedField;
 import javax.enterprise.inject.spi.AnnotatedMethod;
 import javax.enterprise.inject.spi.AnnotatedType;
@@ -83,7 +84,12 @@ public final class EjbUtility
             {
                 return ejbBean;
             }
-            
+
+            @Override
+            protected T getInstance(CreationalContext<T> creationalContext)
+            {
+                throw new UnsupportedOperationException("Please implement ejb lookup");
+            }
         };
         ejbBeanCreator.checkCreateConditions();
         
@@ -207,6 +213,12 @@ public final class EjbUtility
             {
                 return ejbBean;
             }
+
+            @Override
+            protected T getInstance(CreationalContext<T> creationalContext)
+            {
+                throw new UnsupportedOperationException("Please implement ejb lookup");
+            }
         };
 
         final Set<ProducerMethodBean<?>> producerMethodBeans = ejbBeanCreator.defineProducerMethods(ejbBean);

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjectionTargetBeanBuilder.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjectionTargetBeanBuilder.java?rev=1433111&r1=1433110&r2=1433111&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjectionTargetBeanBuilder.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/component/creation/AbstractInjectionTargetBeanBuilder.java Mon Jan 14 20:40:47 2013
@@ -675,6 +675,15 @@ public abstract class AbstractInjectionT
         }
     }
 
+    protected InjectionTarget<T> buildInjectionTarget(AnnotatedType<T> annotatedType,
+                                                      Set<InjectionPoint> points,
+                                                      WebBeansContext webBeansContext,
+                                                      Method[] postConstructMethod,
+                                                      Method[] preDestroyMethod)
+    {
+        return new InjectionTargetImpl<T>(annotatedType, points, webBeansContext, postConstructMethod, preDestroyMethod);
+    }
+
     protected abstract I createBean(Set<Type> types,
                                     Set<Annotation> qualifiers,
                                     Class<? extends Annotation> scope,
@@ -698,7 +707,7 @@ public abstract class AbstractInjectionT
         I bean =  createBean(types, qualifiers, scope, name, nullable, beanClass, stereotypes, alternative, enabled);
 
         //X TODO hack to set the InjectionTarget
-        InjectionTarget<T> injectionTarget = new InjectionTargetImpl<T>(bean.getAnnotatedType(), bean.getInjectionPoints(), webBeansContext, null, null);
+        InjectionTarget<T> injectionTarget = buildInjectionTarget(bean.getAnnotatedType(), bean.getInjectionPoints(), webBeansContext, null, null);
         bean.setInjectionTarget(injectionTarget);
 
         return bean;

Added: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractEjbInjectionTarget.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractEjbInjectionTarget.java?rev=1433111&view=auto
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractEjbInjectionTarget.java (added)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AbstractEjbInjectionTarget.java Mon Jan 14 20:40:47 2013
@@ -0,0 +1,43 @@
+/*
+ * 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.webbeans.portable;
+
+import java.lang.reflect.Method;
+import java.util.Set;
+
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.AnnotatedType;
+import javax.enterprise.inject.spi.InjectionPoint;
+
+import org.apache.webbeans.config.WebBeansContext;
+
+public abstract class AbstractEjbInjectionTarget<T> extends InjectionTargetImpl<T> 
+{
+
+    public AbstractEjbInjectionTarget(AnnotatedType<T> annotatedType,
+                                      Set<InjectionPoint> points,
+                                      WebBeansContext webBeansContext,
+                                      Method[] postConstructMethod,
+                                      Method[] preDestroyMethod)
+    {
+        super(annotatedType, points, webBeansContext, postConstructMethod, preDestroyMethod);
+    }
+
+    public abstract T produce(CreationalContext<T> creationalContext);
+}