package org.codehaus.plexus; import java.net.URL; import java.util.List; import java.util.Map; import org.codehaus.plexus.classworlds.ClassWorld; import org.codehaus.plexus.classworlds.realm.ClassRealm; import org.codehaus.plexus.component.discovery.ComponentDiscoverer; import org.codehaus.plexus.component.discovery.ComponentDiscovererManager; import org.codehaus.plexus.component.discovery.ComponentDiscoveryListener; import org.codehaus.plexus.component.factory.ComponentFactoryManager; import org.codehaus.plexus.configuration.source.ConfigurationSource; import org.codehaus.plexus.container.initialization.ContainerInitializationPhase; import org.codehaus.plexus.lifecycle.LifecycleHandler; import org.codehaus.plexus.lifecycle.LifecycleHandlerManager; /** * @author Jason van Zyl */ public interface ContainerConfiguration { ContainerConfiguration setName( String name ); String getName(); ContainerConfiguration setContext( Map<Object, Object> context ); Map<Object, Object> getContext(); ContainerConfiguration setClassWorld( ClassWorld classWorld ); ClassWorld getClassWorld(); ContainerConfiguration setRealm( ClassRealm realm ); ClassRealm getRealm(); // // Configuration // ContainerConfiguration setContainerConfiguration( String configuration ); String getContainerConfiguration(); ContainerConfiguration setContainerConfigurationURL( URL configuration ); URL getContainerConfigurationURL(); // Programmatic Container Initialization and Setup // Much of this setup and initialization can be completely hidden. It's probably not likely // someone will need to change these core components, but rather adding things like different // factories, and component managers. // Container initialization phases ContainerInitializationPhase[] getInitializationPhases(); // Component lookup manager // Component discoverer manager ContainerConfiguration addComponentDiscoverer( ComponentDiscoverer componentDiscoverer ); ContainerConfiguration addComponentDiscoveryListener( ComponentDiscoveryListener componentDiscoveryListener ); ContainerConfiguration setComponentDiscovererManager( ComponentDiscovererManager componentDiscovererManager ); ComponentDiscovererManager getComponentDiscovererManager(); // Component factory manager ContainerConfiguration setComponentFactoryManager( ComponentFactoryManager componentFactoryManager ); ComponentFactoryManager getComponentFactoryManager(); // Lifecycle handler manager ContainerConfiguration addLifecycleHandler( LifecycleHandler lifecycleHandler ); ContainerConfiguration setLifecycleHandlerManager( LifecycleHandlerManager lifecycleHandlerManager ); LifecycleHandlerManager getLifecycleHandlerManager(); // Configuration Sources ContainerConfiguration setConfigurationSource( ConfigurationSource configurationSource ); ConfigurationSource getConfigurationSource(); ContainerConfiguration addComponentDiscoverer( Class<?> clazz ); ContainerConfiguration addComponentDiscoveryListener( Class<?> clazz ); List<Class> getComponentDiscoverers(); List<Class> getComponentDiscoveryListeners(); }