You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ge...@apache.org on 2008/12/29 00:11:44 UTC
svn commit: r729801 - in
/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans:
decorator/WebBeansDecorator.java decorator/WebBeansDecoratorConfig.java
intercept/InterceptorHandler.java
Author: gerdogdu
Date: Sun Dec 28 15:11:44 2008
New Revision: 729801
URL: http://svn.apache.org/viewvc?rev=729801&view=rev
Log:
Arranging and testing for M1 Release.
Modified:
incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java
incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecoratorConfig.java
incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java
Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java?rev=729801&r1=729800&r2=729801&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecorator.java Sun Dec 28 15:11:44 2008
@@ -19,6 +19,7 @@
import java.io.Serializable;
import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
+import java.lang.reflect.Method;
import java.util.HashSet;
import java.util.Set;
@@ -26,8 +27,11 @@
import javax.webbeans.manager.Decorator;
import org.apache.webbeans.component.AbstractComponent;
+import org.apache.webbeans.component.ComponentImpl;
import org.apache.webbeans.container.ManagerImpl;
import org.apache.webbeans.exception.WebBeansException;
+import org.apache.webbeans.inject.InjectableField;
+import org.apache.webbeans.inject.InjectableMethods;
import org.apache.webbeans.logger.WebBeansLogger;
import org.apache.webbeans.util.AnnotationUtil;
import org.apache.webbeans.util.ClassUtil;
@@ -179,7 +183,33 @@
@Override
public Object create()
{
- return delegateComponent.create();
+ Object proxy = ManagerImpl.getManager().getInstance(this);
+
+ //Set injected fields
+ ComponentImpl<Object> delegate = (ComponentImpl<Object>)this.delegateComponent;
+
+ Set<Field> injectedFields = delegate.getInjectedFields();
+ for(Field injectedField : injectedFields)
+ {
+ boolean isDecorates = injectedField.isAnnotationPresent(Decorates.class);
+
+ if(!isDecorates)
+ {
+ InjectableField ife = new InjectableField(injectedField,proxy,this.delegateComponent);
+ ife.doInjection();
+ }
+ }
+
+ Set<Method> injectedMethods = delegate.getInjectedMethods();
+ for(Method injectedMethod : injectedMethods)
+ {
+ @SuppressWarnings("unchecked")
+ InjectableMethods<?> ife = new InjectableMethods(injectedMethod,proxy,this.delegateComponent);
+ ife.doInjection();
+ }
+
+
+ return proxy;
}
@Override
Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecoratorConfig.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecoratorConfig.java?rev=729801&r1=729800&r2=729801&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecoratorConfig.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/decorator/WebBeansDecoratorConfig.java Sun Dec 28 15:11:44 2008
@@ -78,7 +78,7 @@
{
WebBeansDecorator decorator = (WebBeansDecorator)itList.next();
- Object decoratorInstance = ManagerImpl.getManager().getInstance(decorator);
+ Object decoratorInstance = decorator.create();
decorator.setDelegate(decoratorInstance, instance);
component.getDecoratorStack().add(decoratorInstance);
Modified: incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java?rev=729801&r1=729800&r2=729801&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/InterceptorHandler.java Sun Dec 28 15:11:44 2008
@@ -137,8 +137,7 @@
throw new WebBeansException(e);
}
- }
-
+ }
}
private <T> void callAroundInvokes(Object instance, Method proceed, Object[] arguments, List<InterceptorData> stack) throws Exception