com.sun.enterprise.container.common.impl.util
Class InjectionManagerImpl

java.lang.Object
  extended by com.sun.enterprise.container.common.impl.util.InjectionManagerImpl
All Implemented Interfaces:
InjectionManager, org.jvnet.hk2.component.PostConstruct

@Service
public class InjectionManagerImpl
extends Object
implements InjectionManager, org.jvnet.hk2.component.PostConstruct

Implementation of InjectionManager.

Author:
Kenneth Saks

Constructor Summary
InjectionManagerImpl()
           
 
Method Summary
<T> T
createManagedObject(Class<T> clazz)
          Create a managed object for the given class.
<T> T
createManagedObject(Class<T> clazz, boolean invokePostConstruct)
          Create a managed object for the given class.
 void destroyManagedObject(Object managedObject)
          Destroy a managed object that was created via createManagedObject.
 void destroyManagedObject(Object managedObject, boolean validate)
          Destroy a managed object that was created via createManagedObject.
 void injectClass(Class clazz, JndiNameEnvironment componentEnv)
          Inject the injectable resources from the given component environment into a Class instance.
 void injectClass(Class clazz, JndiNameEnvironment componentEnv, boolean invokePostConstruct)
          Inject the injectable resources from the given component environment into a Class instance.
 void injectInstance(Object instance)
          Inject the given object instance with the resources from its component environment.
 void injectInstance(Object instance, boolean invokePostConstruct)
          Inject the given object instance with the resources from its component environment.
 void injectInstance(Object instance, JndiNameEnvironment componentEnv)
          Inject the injectable resources from the given component environment into an object instance.
 void injectInstance(Object instance, JndiNameEnvironment componentEnv, boolean invokePostConstruct)
          Inject the injectable resources from the given component environment into an object instance.
 void injectInstance(Object instance, String componentId, boolean invokePostConstruct)
          Inject the injectable resources for the given component id into an object instance.
 void invokeClassPreDestroy(Class clazz, JndiNameEnvironment componentEnv)
          Invoke any static @PreDestroy methods defined on the class (and super-classes).
 void invokeInstancePostConstruct(Object instance, JndiNameEnvironment componentEnv)
          Invoke any @PostConstruct methods defined on the instance's class (and super-classes).
 void invokeInstancePreDestroy(Object instance)
          Invoke any @PreDestroy methods defined on the instance's class (and super-classes).
 void invokeInstancePreDestroy(Object instance, JndiNameEnvironment componentEnv)
          Invoke any @PreDestroy methods defined on the instance's class (and super-classes).
 void postConstruct()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InjectionManagerImpl

public InjectionManagerImpl()
Method Detail

postConstruct

public void postConstruct()
Specified by:
postConstruct in interface org.jvnet.hk2.component.PostConstruct

injectInstance

public void injectInstance(Object instance)
                    throws InjectionException
Description copied from interface: InjectionManager
Inject the given object instance with the resources from its component environment. The applicable component naming environment information will be retrieved from the current invocation context. Any @PostConstruct methods on the instance's class(and super-classes) will be invoked after injection.

Specified by:
injectInstance in interface InjectionManager
Throws:
InjectionException - Thrown if an error occurs during injection

injectInstance

public void injectInstance(Object instance,
                           boolean invokePostConstruct)
                    throws InjectionException
Description copied from interface: InjectionManager
Inject the given object instance with the resources from its component environment. The applicable component naming environment information will be retrieved from the current invocation context. If invokePostConstruct is true, any @PostConstruct methods on the instance's class(and super-classes) will be invoked after injection.

Specified by:
injectInstance in interface InjectionManager
Throws:
InjectionException - Thrown if an error occurs during injection

injectInstance

public void injectInstance(Object instance,
                           JndiNameEnvironment componentEnv)
                    throws InjectionException
Description copied from interface: InjectionManager
Inject the injectable resources from the given component environment into an object instance. The specified componentEnv must match the environment that is associated with the component on top of the invocation stack at the time this method is invoked. Any @PostConstruct methods on the instance's class(and super-classes) will be invoked after injection.

Specified by:
injectInstance in interface InjectionManager
Throws:
InjectionException - Thrown if an error occurs during injection

injectInstance

public void injectInstance(Object instance,
                           JndiNameEnvironment componentEnv,
                           boolean invokePostConstruct)
                    throws InjectionException
Description copied from interface: InjectionManager
Inject the injectable resources from the given component environment into an object instance. The specified componentEnv must match the environment that is associated with the component on top of the invocation stack at the time this method is invoked.

Specified by:
injectInstance in interface InjectionManager
invokePostConstruct - if true, invoke any @PostConstruct methods on the instance's class(and super-classes) after injection.
Throws:
InjectionException - Thrown if an error occurs during injection

injectInstance

public void injectInstance(Object instance,
                           String componentId,
                           boolean invokePostConstruct)
                    throws InjectionException
Description copied from interface: InjectionManager
Inject the injectable resources for the given component id into an object instance.

Specified by:
injectInstance in interface InjectionManager
invokePostConstruct - if true, invoke any @PostConstruct methods on the instance's class(and super-classes) after injection.
Throws:
InjectionException - Thrown if an error occurs during injection

injectClass

public void injectClass(Class clazz,
                        JndiNameEnvironment componentEnv)
                 throws InjectionException
Description copied from interface: InjectionManager
Inject the injectable resources from the given component environment into a Class instance. Only class-level(static) fields/methods are supported. E.g., this injection operation would be used for the Application Client Container main class. Any @PostConstruct methods on the class(and super-classes) will be invoked after injection.

Specified by:
injectClass in interface InjectionManager
Throws:
InjectionException - Thrown if an error occurs during injection

injectClass

public void injectClass(Class clazz,
                        JndiNameEnvironment componentEnv,
                        boolean invokePostConstruct)
                 throws InjectionException
Description copied from interface: InjectionManager
Inject the injectable resources from the given component environment into a Class instance. Only class-level(static) fields/methods are supported. E.g., this injection operation would be used for the Application Client Container main class.

Specified by:
injectClass in interface InjectionManager
invokePostConstruct - if true, invoke any @PostConstruct methods on the class(and super-classes) after injection.
Throws:
InjectionException - Thrown if an error occurs during injection

invokeInstancePreDestroy

public void invokeInstancePreDestroy(Object instance,
                                     JndiNameEnvironment componentEnv)
                              throws InjectionException
Description copied from interface: InjectionManager
Invoke any @PreDestroy methods defined on the instance's class (and super-classes). The specified componentEnv must match the environment that is associated with the component on top of the invocation stack at the time this method is invoked.

Specified by:
invokeInstancePreDestroy in interface InjectionManager
Throws:
InjectionException - Thrown if an error occurs

invokeInstancePostConstruct

public void invokeInstancePostConstruct(Object instance,
                                        JndiNameEnvironment componentEnv)
                                 throws InjectionException
Description copied from interface: InjectionManager
Invoke any @PostConstruct methods defined on the instance's class (and super-classes). The specified componentEnv must match the environment that is associated with the component on top of the invocation stack at the time this method is invoked.

Specified by:
invokeInstancePostConstruct in interface InjectionManager
Throws:
InjectionException - Thrown if an error occurs

invokeInstancePreDestroy

public void invokeInstancePreDestroy(Object instance)
                              throws InjectionException
Description copied from interface: InjectionManager
Invoke any @PreDestroy methods defined on the instance's class (and super-classes). Invocation information will be retrieved from the current component invocation context.

Specified by:
invokeInstancePreDestroy in interface InjectionManager
Throws:
InjectionException - Thrown if an error occurs

invokeClassPreDestroy

public void invokeClassPreDestroy(Class clazz,
                                  JndiNameEnvironment componentEnv)
                           throws InjectionException
Description copied from interface: InjectionManager
Invoke any static @PreDestroy methods defined on the class (and super-classes). The specified componentEnv must match the environment that is associated with the component on top of the invocation stack at the time this method is invoked.

Specified by:
invokeClassPreDestroy in interface InjectionManager
Throws:
InjectionException - Thrown if an error occurs

createManagedObject

public <T> T createManagedObject(Class<T> clazz)
                      throws InjectionException
Create a managed object for the given class. The object will be injected and any PostConstruct methods will be called. The returned object can be cast to the clazz type but is not necessarily a direct reference to the managed instance. All invocations on the returned object should be on its public methods. It is the responsibility of the caller to destroy the returned object by calling destroyManagedObject(Object managedObject).

Specified by:
createManagedObject in interface InjectionManager
Parameters:
clazz - Class to be instantiated
Returns:
managed object
Throws:
InjectionException

createManagedObject

public <T> T createManagedObject(Class<T> clazz,
                                 boolean invokePostConstruct)
                      throws InjectionException
Create a managed object for the given class. The object will be injected and if invokePostConstruct is true, any @PostConstruct methods on the instance's class(and super-classes) will be invoked after injection. The returned object can be cast to the clazz type but is not necessarily a direct reference to the managed instance. All invocations on the returned object should be on its public methods. It is the responsibility of the caller to destroy the returned object by calling destroyManagedObject(Object managedObject).

Specified by:
createManagedObject in interface InjectionManager
Parameters:
clazz - Class to be instantiated
invokePostConstruct - if true, invoke any @PostConstruct methods on the instance's class(and super-classes) after injection.
Returns:
managed object
Throws:
InjectionException

destroyManagedObject

public void destroyManagedObject(Object managedObject)
                          throws InjectionException
Destroy a managed object that was created via createManagedObject. Any PreDestroy methods will be called.

Specified by:
destroyManagedObject in interface InjectionManager
Parameters:
managedObject -
Throws:
InjectionException

destroyManagedObject

public void destroyManagedObject(Object managedObject,
                                 boolean validate)
                          throws InjectionException
Destroy a managed object that was created via createManagedObject. Any PreDestroy methods will be called.

Specified by:
destroyManagedObject in interface InjectionManager
Parameters:
managedObject -
validate - if false, do nothing if the instance is not registred
Throws:
InjectionException


Copyright © 2012 GlassFish Community. All Rights Reserved.