/** * Load all component annotations and register them as components. * * @param classLoader the class loader to use to look for component definitions */ public void initialize(ClassLoader classLoader) { ComponentAnnotationLoader loader = new ComponentAnnotationLoader(); loader.initialize(this, classLoader); // Extension point to allow component to manipulate ComponentManager initialized state. try { List<ComponentManagerInitializer> initializers = this.getInstanceList(ComponentManagerInitializer.class); for (ComponentManagerInitializer initializer : initializers) { initializer.initialize(this); } } catch (ComponentLookupException e) { // Should never happen this.logger.error("Failed to lookup ComponentManagerInitializer components", e); } }