Package org.apache.axis2.classloader
Class BeanInfoCache
java.lang.Object
org.apache.axis2.classloader.BeanInfoCache
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
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetBeanInfo(Class<?> beanClass, Class<?> stopClass) Introspect on a Java bean and return a cachedBeanInfoobject.static BeanInfogetCachedBeanInfo(Class<?> beanClass, Class<?> stopClass) Locate an appropriateBeanInfoCacheand return a cachedBeanInfoobject.
-
Constructor Details
-
BeanInfoCache
public BeanInfoCache()
-
-
Method Details
-
getBeanInfo
Introspect on a Java bean and return a cachedBeanInfoobject.- Parameters:
beanClass- The bean class to be analyzed.stopClass- The base class at which to stop the analysis; may benull.- Returns:
- A
BeanInfoobject describing the target bean. - Throws:
IntrospectionException- if an exception occurs during introspection.- See Also:
-
getCachedBeanInfo
public static BeanInfo getCachedBeanInfo(Class<?> beanClass, Class<?> stopClass) throws IntrospectionException Locate an appropriateBeanInfoCacheand return a cachedBeanInfoobject. This method ensures that caching theBeanInfoobject 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 benull.- Returns:
- A
BeanInfoobject describing the target bean. - Throws:
IntrospectionException- if an exception occurs during introspection.
-