com.atlassian.jira.plugin
Interface ComponentClassManager

All Known Implementing Classes:
DefaultComponentClassManager

public interface ComponentClassManager

Provides methods to help load and instantiate classes that can handle OSGi plugins with their ClassLoaders and Components that don't live in Pico Container.

Since:
v4.0

Method Summary
<T> Class<T>
loadClass(String className)
          Load a class from Jira core, or a plugin including plugins that are not enabled.
<T> T
newInstance(String className)
          Instantiates the named class using OSGi ClassLoaders and Pico/Spring injection as appropriate.
<T> T
newInstanceFromPlugin(Class<T> clazz, com.atlassian.plugin.Plugin plugin)
          Instantiates the named class by directly using the plugin the class was loaded from and its autowiring strategy.
 

Method Detail

newInstance

<T> T newInstance(String className)
              throws ClassNotFoundException
Instantiates the named class using OSGi ClassLoaders and Pico/Spring injection as appropriate.

Parameters:
className - the name of the class to instantiate.
Returns:
the instance of the requested class.
Throws:
ClassNotFoundException - if the given className was not able to be loaded.

newInstanceFromPlugin

<T> T newInstanceFromPlugin(Class<T> clazz,
                            com.atlassian.plugin.Plugin plugin)
Instantiates the named class by directly using the plugin the class was loaded from and its autowiring strategy.

Parameters:
clazz - the class to instantiate
plugin - the plugin in which the class was loaded from
Returns:
the instance of the requested class.
See Also:
newInstance(String)

loadClass

<T> Class<T> loadClass(String className)
                   throws ClassNotFoundException
Load a class from Jira core, or a plugin including plugins that are not enabled.

Type Parameters:
T - The Class type.
Parameters:
className - Fully qualified class name.
Returns:
the loaded Class of type T.
Throws:
ClassNotFoundException - if the given className was not able to be loaded.


Copyright © 2002-2012 Atlassian. All Rights Reserved.