Author: jochen
Date: Wed Dec 17 12:48:19 2014
New Revision: 1646221

URL: http://svn.apache.org/r1646221
Log:
- Removing Guice as a dependency.
- Adding Javadocs.

Modified:
    commons/sandbox/commons-inject/trunk/pom.xml
    
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/IKey.java
    
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/ILifecycleController.java
    
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/ILifecycleListener.java
    
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/IPoint.java
    
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/IProvider.java
    
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/api/Key.java
    
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/bind/ILinkedBindingBuilder.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/bind/DefaultBindingBuilder.java
    commons/sandbox/commons-inject/trunk/src/site/apt/index.apt

Modified: commons/sandbox/commons-inject/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/pom.xml?rev=1646221&r1=1646220&r2=1646221&view=diff
==============================================================================
--- commons/sandbox/commons-inject/trunk/pom.xml (original)
+++ commons/sandbox/commons-inject/trunk/pom.xml Wed Dec 17 12:48:19 2014
@@ -148,11 +148,6 @@
                <scope>test</scope>
        </dependency>
        <dependency>
-               <groupId>com.google.inject</groupId>
-               <artifactId>guice</artifactId>
-               <version>4.0-beta5</version>
-       </dependency>
-       <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>

Modified: 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/IKey.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/IKey.java?rev=1646221&r1=1646220&r2=1646221&view=diff
==============================================================================
--- 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/IKey.java
 (original)
+++ 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/IKey.java
 Wed Dec 17 12:48:19 2014
@@ -19,7 +19,8 @@ package org.apache.commons.inject.api;
 import java.lang.annotation.Annotation;
 
 /**
- * A binding key is used to query objects
+ * Binding key consisting of an injection type and an optional annotation.
+ * Matches the type and annotation at a point of injection.
  */
 public interface IKey<T> {
        Class<T> getType();

Modified: 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/ILifecycleController.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/ILifecycleController.java?rev=1646221&r1=1646220&r2=1646221&view=diff
==============================================================================
--- 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/ILifecycleController.java
 (original)
+++ 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/ILifecycleController.java
 Wed Dec 17 12:48:19 2014
@@ -16,6 +16,18 @@
 */
 package org.apache.commons.inject.api;
 
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+
+
+/**
+ * Interface of an object, which is used by the {@link PostConstructModule}.
+ * The module adds binding listeners, which ensure that objects annotated
+ * with {@link PostConstruct}, or {@link PreDestroy}, are being added to
+ * the lifecycle listener via {@link #add(ILifecycleListener)}. It is the
+ * users responsibility to invoke {@link #start()}, when the injector has
+ * been created, and {@link #shutdown()}, when the application terminates.
+ */
 public interface ILifecycleController extends ILifecycleListener {
        boolean add(ILifecycleListener pListener);
        boolean remove(ILifecycleListener pListener);

Modified: 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/ILifecycleListener.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/ILifecycleListener.java?rev=1646221&r1=1646220&r2=1646221&view=diff
==============================================================================
--- 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/ILifecycleListener.java
 (original)
+++ 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/ILifecycleListener.java
 Wed Dec 17 12:48:19 2014
@@ -16,6 +16,16 @@
 */
 package org.apache.commons.inject.api;
 
+import javax.annotation.PostConstruct;
+import javax.annotation.PreDestroy;
+
+/** Interface of an object, which can be managed by the
+ * {@link ILifecycleController}. The {@link PostConstructModule}
+ * detects objects annotated with {@link PostConstruct}, and
+ * {@link PreDestroy}, wraps them in an instance of
+ * {@link ILifecycleListener}, which delegates to the respective
+ * methods, and adds the wrappers to the lifecycle controller.
+ */
 public interface ILifecycleListener {
        void start();
        void shutdown();

Modified: 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/IPoint.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/IPoint.java?rev=1646221&r1=1646220&r2=1646221&view=diff
==============================================================================
--- 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/IPoint.java
 (original)
+++ 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/IPoint.java
 Wed Dec 17 12:48:19 2014
@@ -16,6 +16,19 @@
 */
 package org.apache.commons.inject.api;
 
+import org.apache.commons.inject.api.bind.IBinder;
+import org.apache.commons.inject.api.bind.IModule;
+
+
+/**
+ * A point implements injection of values into a field, or method.
+ * Of course, several points may be combined into more complex points,
+ * etc.
+ * {@link IModule modules} may inject additional values by implementing
+ * {@link IBinder.InjectionParticipator} and adding listeners via
+ * {@link 
IBinder#add(org.apache.commons.inject.api.bind.IBinder.IInjectionParticipator)}.
+ * This is done, for example, by the {@link AbstractLoggerInjectingModule}.
+ */
 public interface IPoint<T> {
        void injectTo(T pInstance, IInjector pInjector);
 }

Modified: 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/IProvider.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/IProvider.java?rev=1646221&r1=1646220&r2=1646221&view=diff
==============================================================================
--- 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/IProvider.java
 (original)
+++ 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/IProvider.java
 Wed Dec 17 12:48:19 2014
@@ -18,6 +18,11 @@ package org.apache.commons.inject.api;
 
 import javax.inject.Provider;
 
+import org.apache.commons.inject.api.bind.IModule;
+
+/**
+ * An object factory, which may be supplied by the {@link IModule module}.
+ */
 public interface IProvider<T> extends Provider<T> {
        Class<? extends T> getType();
        T get(IInjector pInjector);

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=1646221&r1=1646220&r2=1646221&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
 Wed Dec 17 12:48:19 2014
@@ -19,6 +19,15 @@ package org.apache.commons.inject.api;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 
+import javax.inject.Inject;
+
+/**
+ * Proprietary variant of {@link Inject}, which is supported by the
+ * {@link AbstractLoggerInjectingModule}, and its subclasses, to
+ * inject loggers. By default, the logger Id is the name of the
+ * class, which owns the annotated field. However, that default
+ * can be overwritten using {@link #id()}.
+ */
 @Retention(RetentionPolicy.RUNTIME)
 public @interface InjLogger {
        String id() default "";

Modified: 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/Key.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/Key.java?rev=1646221&r1=1646220&r2=1646221&view=diff
==============================================================================
--- 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/Key.java
 (original)
+++ 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/Key.java
 Wed Dec 17 12:48:19 2014
@@ -19,6 +19,9 @@ package org.apache.commons.inject.api;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Array;
 
+/**
+ * Default implementation of {@link IKey}.
+ */
 public class Key<T> implements IKey<T> {
        public static final String NO_NAME = "";
        public static final Annotation[] NO_ANNOTATIONS = (Annotation[]) 
Array.newInstance(Annotation.class, 0);

Modified: 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/bind/ILinkedBindingBuilder.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/bind/ILinkedBindingBuilder.java?rev=1646221&r1=1646220&r2=1646221&view=diff
==============================================================================
--- 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/bind/ILinkedBindingBuilder.java
 (original)
+++ 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/api/bind/ILinkedBindingBuilder.java
 Wed Dec 17 12:48:19 2014
@@ -21,7 +21,7 @@ import java.lang.reflect.Method;
 
 import org.apache.commons.inject.api.IProvider;
 
-import com.google.inject.Provider;
+import javax.inject.Provider;
 
 /**
  * A binding builder, which allows to specify a bindings target: A

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=1646221&r1=1646220&r2=1646221&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
 Wed Dec 17 12:48:19 2014
@@ -19,6 +19,11 @@ package org.apache.commons.inject.impl;
 import org.apache.commons.inject.api.IInjector;
 import org.apache.commons.inject.api.IProvider;
 
+/**
+ * Abstract base class for providers, which handle scopes.
+ * The details of instantiation and value injection are left to the
+ * {@link AbstractBaseProvider}.
+ */
 public abstract class AbstractScopedProvider<T> implements IProvider<T>, 
IInjectorAware {
        private final IProvider<T> baseProvider;
        private IInjector injector;

Modified: 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/bind/DefaultBindingBuilder.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/bind/DefaultBindingBuilder.java?rev=1646221&r1=1646220&r2=1646221&view=diff
==============================================================================
--- 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/bind/DefaultBindingBuilder.java
 (original)
+++ 
commons/sandbox/commons-inject/trunk/src/main/java/org/apache/commons/inject/impl/bind/DefaultBindingBuilder.java
 Wed Dec 17 12:48:19 2014
@@ -41,7 +41,7 @@ import org.apache.commons.inject.impl.Li
 import org.apache.commons.inject.impl.MutableBindingSet;
 import org.apache.commons.inject.impl.AbstractBindingSet.MappedKey;
 
-import com.google.inject.Provider;
+import javax.inject.Provider;
 
 
 /**

Modified: commons/sandbox/commons-inject/trunk/src/site/apt/index.apt
URL: 
http://svn.apache.org/viewvc/commons/sandbox/commons-inject/trunk/src/site/apt/index.apt?rev=1646221&r1=1646220&r2=1646221&view=diff
==============================================================================
--- commons/sandbox/commons-inject/trunk/src/site/apt/index.apt (original)
+++ commons/sandbox/commons-inject/trunk/src/site/apt/index.apt Wed Dec 17 
12:48:19 2014
@@ -49,14 +49,18 @@
  
   * Commons Inject is based on the standard Java reflection API <<only>>. As a 
consequence, it
     should work on Android.
+
   * Commons Inject doesn't distinguish between production mode, and 
development mode.
     OTOH, its startup time should be <<much>> faster than Guice in production 
mode.
+
   * Commons Inject provides some extensions out of the box:
+
     * Support for an {{{./lifecycle.html}Application Lifecycle}}, including 
support for
       
{{{http://docs.oracle.com/javaee/5/api/javax/annotation/PostConstruct.html}@PostConstruct}},
       and 
{{{http://docs.oracle.com/javaee/5/api/javax/annotation/PreDestroy.html}@PreDestroy}}.
       This lifecycle support works with arbitrary objects, including eager, or 
lazy
       singletons.
+
     * {{{./loggerInjection.html}Logger injection}} via Log4J, SLF4J, or 
Commons Logging.
       (Adding support for other frameworks should be extremely easy.)
 


Reply via email to