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