org.apache.axis2.classloader
Class BeanInfoCache

java.lang.Object
  extended by org.apache.axis2.classloader.BeanInfoCache

public final class BeanInfoCache
extends Object

BeanInfo cache that stores introspection results by bean class and stop class. This goes beyond the caching provided by the JRE, which only caches the results of Introspector.getBeanInfo(Class), but not the results of Introspector.getBeanInfo(Class, Class) (with non null stop class).

To avoid class loader leaks, this class should not be used as a singleton if the introspected classes are loaded from class loaders that are children of the class loader which holds the reference to the cache. In such scenarios, use getCachedBeanInfo(Class, Class).


Constructor Summary
BeanInfoCache()
           
 
Method Summary
 BeanInfo getBeanInfo(Class<?> beanClass, Class<?> stopClass)
          Introspect on a Java bean and return a cached BeanInfo object.
static BeanInfo getCachedBeanInfo(Class<?> beanClass, Class<?> stopClass)
          Locate an appropriate BeanInfoCache and return a cached BeanInfo object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BeanInfoCache

public BeanInfoCache()
Method Detail

getBeanInfo

public BeanInfo getBeanInfo(Class<?> beanClass,
                            Class<?> stopClass)
                     throws IntrospectionException
Introspect on a Java bean and return a cached BeanInfo object.

Parameters:
beanClass - The bean class to be analyzed.
stopClass - The base class at which to stop the analysis; may be null.
Returns:
A BeanInfo object describing the target bean.
Throws:
IntrospectionException - if an exception occurs during introspection.
See Also:
Introspector.getBeanInfo(Class, Class)

getCachedBeanInfo

public static BeanInfo getCachedBeanInfo(Class<?> beanClass,
                                         Class<?> stopClass)
                                  throws IntrospectionException
Locate an appropriate BeanInfoCache and return a cached BeanInfo object. This method ensures that caching the BeanInfo object will not result in a class loader leak.

Parameters:
beanClass - The bean class to be analyzed.
stopClass - The base class at which to stop the analysis; may be null.
Returns:
A BeanInfo object describing the target bean.
Throws:
IntrospectionException - if an exception occurs during introspection.


Copyright © 2004-2012 The Apache Software Foundation. All Rights Reserved.