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);
+}