You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by jo...@apache.org on 2014/11/10 17:11:01 UTC

svn commit: r1637905 - in /commons/sandbox/commons-inject/trunk: ./ .settings/ src/main/java/org/apache/commons/inject/api/ src/main/java/org/apache/commons/inject/impl/

Author: jochen
Date: Mon Nov 10 16:11:00 2014
New Revision: 1637905

URL: http://svn.apache.org/r1637905
Log:
Fixed a bug when a point/provider wasn't initialized.

Modified:
    commons/sandbox/commons-inject/trunk/.settings/org.eclipse.core.resources.prefs
    commons/sandbox/commons-inject/trunk/pom.xml
    commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/InjLogger.java
    commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/AbstractBaseProvider.java
    commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/AbstractScopedProvider.java
    commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/DefaultProvider.java
    commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/FieldPoint.java
    commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/ListPoint.java
    commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/MethodPoint.java

Modified: commons/sandbox/commons-inject/trunk/.settings/org.eclipse.core.resources.prefs
URL: http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/.settings/org.eclipse.core.resources.prefs?rev=1637905&r1=1637904&r2=1637905&view=diff
==============================================================================
--- commons/sandbox/commons-inject/trunk/.settings/org.eclipse.core.resources.prefs (original)
+++ commons/sandbox/commons-inject/trunk/.settings/org.eclipse.core.resources.prefs Mon Nov 10 16:11:00 2014
@@ -1,6 +1,6 @@
 eclipse.preferences.version=1
 encoding//src/main/java=iso-8859-1
-encoding//src/main/resources=1.6
+encoding//src/main/resources=UTF-8
 encoding//src/test/java=iso-8859-1
-encoding//src/test/resources=1.6
+encoding//src/test/resources=UTF-8
 encoding/<project>=UTF-8

Modified: commons/sandbox/commons-inject/trunk/pom.xml
URL: http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/pom.xml?rev=1637905&r1=1637904&r2=1637905&view=diff
==============================================================================
--- commons/sandbox/commons-inject/trunk/pom.xml (original)
+++ commons/sandbox/commons-inject/trunk/pom.xml Mon Nov 10 16:11:00 2014
@@ -88,6 +88,24 @@
   			</plugin>
   		</plugins>
   	</pluginManagement>
+  	<plugins>
+	  <plugin>
+  		<groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-source-plugin</artifactId>
+        <version>2.4</version>
+        <executions>
+          <execution>
+            <id>attach-sources</id>
+            <goals>
+              <goal>jar-no-fork</goal>
+            </goals>
+            <configuration>
+              <attach>true</attach>
+            </configuration>
+          </execution>
+        </executions>
+       </plugin>
+  	</plugins>
   </build>
   <properties>
   	<maven.compile.target>1.6</maven.compile.target>

Modified: commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/InjLogger.java
URL: http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/InjLogger.java?rev=1637905&r1=1637904&r2=1637905&view=diff
==============================================================================
--- commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/InjLogger.java (original)
+++ commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/InjLogger.java Mon Nov 10 16:11:00 2014
@@ -21,5 +21,5 @@ import java.lang.annotation.RetentionPol
 
 @Retention(RetentionPolicy.RUNTIME)
 public @interface InjLogger {
-	String id();
+	String id() default "";
 }

Modified: commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/AbstractBaseProvider.java
URL: http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/AbstractBaseProvider.java?rev=1637905&r1=1637904&r2=1637905&view=diff
==============================================================================
--- commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/AbstractBaseProvider.java (original)
+++ commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/AbstractBaseProvider.java Mon Nov 10 16:11:00 2014
@@ -20,7 +20,7 @@ import org.apache.commons.inject.api.IIn
 import org.apache.commons.inject.api.IPoint;
 import org.apache.commons.inject.api.IProvider;
 
-public abstract class AbstractBaseProvider<T> implements IProvider<T> {
+public abstract class AbstractBaseProvider<T> implements IProvider<T>, IInjectorAware {
 	private final Class<T> type;
 	private final IPoint<T> point;
 
@@ -40,4 +40,13 @@ public abstract class AbstractBaseProvid
 	public Class<T> getType() {
 		return type;
 	}
+
+	@Override
+	public void init(IInjector pInjector) {
+		if (point instanceof IInjectorAware) {
+			((IInjectorAware) point).init(pInjector);
+		}
+	}
+
+
 }

Modified: commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/AbstractScopedProvider.java
URL: http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/AbstractScopedProvider.java?rev=1637905&r1=1637904&r2=1637905&view=diff
==============================================================================
--- commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/AbstractScopedProvider.java (original)
+++ commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/AbstractScopedProvider.java Mon Nov 10 16:11:00 2014
@@ -22,6 +22,7 @@ import org.apache.commons.inject.api.IPr
 public abstract class AbstractScopedProvider<T> implements IProvider<T>, IInjectorAware {
 	private final IProvider<T> baseProvider;
 	private IInjector injector;
+	protected boolean initialized;
 
 	public AbstractScopedProvider(IProvider<T> pBaseProvider) {
 		baseProvider = pBaseProvider;
@@ -56,5 +57,6 @@ public abstract class AbstractScopedProv
 		if (baseProvider instanceof IInjectorAware) {
 			((IInjectorAware) baseProvider).init(pInjector);
 		}
+		initialized = true;
 	}
 }

Modified: commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/DefaultProvider.java
URL: http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/DefaultProvider.java?rev=1637905&r1=1637904&r2=1637905&view=diff
==============================================================================
--- commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/DefaultProvider.java (original)
+++ commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/DefaultProvider.java Mon Nov 10 16:11:00 2014
@@ -27,7 +27,8 @@ public class DefaultProvider<T> extends 
 	@Override
 	public T get() {
 		try {
-			return getType().newInstance();
+			final T t = getType().newInstance();
+			return t;
 		} catch (Throwable t) {
 			throw Exceptions.show(t);
 		}

Modified: commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/FieldPoint.java
URL: http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/FieldPoint.java?rev=1637905&r1=1637904&r2=1637905&view=diff
==============================================================================
--- commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/FieldPoint.java (original)
+++ commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/FieldPoint.java Mon Nov 10 16:11:00 2014
@@ -23,7 +23,7 @@ import org.apache.commons.inject.api.IIn
 import org.apache.commons.inject.api.IPoint;
 import org.apache.commons.inject.util.Exceptions;
 
-public class FieldPoint<T> implements IPoint<T> {
+public class FieldPoint<T> implements IPoint<T>, IInjectorAware {
 	private final IBinding<Object> binding;
 	private final Field f;
 
@@ -38,9 +38,17 @@ public class FieldPoint<T> implements IP
 			if (!f.isAccessible()) {
 				f.setAccessible(true);
 			}
-			f.set(pInstance, binding.getProvider().get());
+			final Object value = binding.getProvider().get();
+			f.set(pInstance, value);
 		} catch (Throwable t) {
 			throw Exceptions.show(t);
 		}
 	}
+
+	@Override
+	public void init(IInjector pInjector) {
+		if (binding instanceof IInjectorAware) {
+			((IInjectorAware) binding).init(pInjector);
+		}
+	}
 }
\ No newline at end of file

Modified: commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/ListPoint.java
URL: http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/ListPoint.java?rev=1637905&r1=1637904&r2=1637905&view=diff
==============================================================================
--- commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/ListPoint.java (original)
+++ commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/ListPoint.java Mon Nov 10 16:11:00 2014
@@ -21,7 +21,7 @@ import java.util.List;
 import org.apache.commons.inject.api.IInjector;
 import org.apache.commons.inject.api.IPoint;
 
-public class ListPoint<T> implements IPoint<T> {
+public class ListPoint<T> implements IPoint<T>, IInjectorAware {
 	private final List<IPoint<T>> list;
 	
 	public ListPoint(List<IPoint<T>> pPoints) {
@@ -40,4 +40,13 @@ public class ListPoint<T> implements IPo
 		}
 	}
 
+	@Override
+	public void init(IInjector pInjector) {
+		for (IPoint<T> point : list) {
+			if (point instanceof IInjectorAware) {
+				((IInjectorAware) point).init(pInjector);
+			}
+		}
+	}
+
 }

Modified: commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/MethodPoint.java
URL: http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/MethodPoint.java?rev=1637905&r1=1637904&r2=1637905&view=diff
==============================================================================
--- commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/MethodPoint.java (original)
+++ commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/MethodPoint.java Mon Nov 10 16:11:00 2014
@@ -23,7 +23,7 @@ import org.apache.commons.inject.api.IIn
 import org.apache.commons.inject.api.IPoint;
 import org.apache.commons.inject.util.Exceptions;
 
-public class MethodPoint<T> implements IPoint<T> {
+public class MethodPoint<T> implements IPoint<T>, IInjectorAware {
 	private final IBinding<Object>[] bindings;
 	private final Method method;
 
@@ -47,4 +47,13 @@ public class MethodPoint<T> implements I
 			throw Exceptions.show(t);
 		}
 	}
+
+	@Override
+	public void init(IInjector pInjector) {
+		for (IBinding<Object> binding : bindings) {
+			if (binding instanceof IInjectorAware) {
+				((IInjectorAware) binding).init(pInjector);
+			}
+		}
+	}
 }