1 package org.codehaus.plexus.component.manager; 2 3 import org.codehaus.plexus.MutablePlexusContainer; 4 import org.codehaus.plexus.component.repository.ComponentDescriptor; 5 import org.codehaus.plexus.lifecycle.LifecycleHandler; 6 7 public interface ComponentManagerFactory { 8 /** 9 * Gets the unique identifier of this ComponentManagerFactory. This id is the instantiation strategy specified 10 * in a component descriptor. 11 * @return the unique identifier and instantiation strategy name 12 */ 13 String getId(); 14 15 /** 16 * Creates a new component manager for the specified component descriptor. 17 * @param container {@link MutablePlexusContainer}. 18 * @param lifecycleHandler {@link LifecycleHandler}. 19 * @param componentDescriptor {@link ComponentDescriptor} 20 * @param role The role. 21 * @param roleHint The hint for the role. 22 * @param <T> The type. 23 * @return {@link ComponentManager} 24 */ 25 <T> ComponentManager<T> createComponentManager( 26 MutablePlexusContainer container, 27 LifecycleHandler lifecycleHandler, 28 ComponentDescriptor<T> componentDescriptor, 29 String role, 30 String roleHint); 31 }