View Javadoc
1   package org.codehaus.plexus;
2   
3   import java.net.URL;
4   import java.util.List;
5   import java.util.Map;
6   
7   import org.codehaus.plexus.classworlds.ClassWorld;
8   import org.codehaus.plexus.classworlds.realm.ClassRealm;
9   import org.codehaus.plexus.component.discovery.ComponentDiscoverer;
10  import org.codehaus.plexus.component.discovery.ComponentDiscovererManager;
11  import org.codehaus.plexus.component.discovery.ComponentDiscoveryListener;
12  import org.codehaus.plexus.component.factory.ComponentFactoryManager;
13  import org.codehaus.plexus.component.repository.ComponentRepository;
14  import org.codehaus.plexus.configuration.source.ConfigurationSource;
15  import org.codehaus.plexus.container.initialization.ContainerInitializationPhase;
16  import org.codehaus.plexus.lifecycle.LifecycleHandler;
17  import org.codehaus.plexus.lifecycle.LifecycleHandlerManager;
18  
19  /**
20   * @author Jason van Zyl
21   */
22  public interface ContainerConfiguration
23  {
24      ContainerConfiguration setName( String name );
25  
26      String getName();
27  
28      ContainerConfiguration setContext( Map<Object, Object> context );
29  
30      Map<Object, Object> getContext();
31  
32      ContainerConfiguration setClassWorld( ClassWorld classWorld );
33  
34      ClassWorld getClassWorld();
35  
36      ContainerConfiguration setRealm( ClassRealm realm );
37  
38      ClassRealm getRealm();
39      
40      //
41      // Configuration
42      //
43      ContainerConfiguration setContainerConfiguration( String configuration );
44  
45      String getContainerConfiguration();
46  
47      ContainerConfiguration setContainerConfigurationURL( URL configuration );
48  
49      URL getContainerConfigurationURL();
50  
51      // Programmatic Container Initialization and Setup
52  
53      // Much of this setup and initialization can be completely hidden. It's probably not likely
54      // someone will need to change these core components, but rather adding things like different
55      // factories, and component managers.
56  
57      // Container initialization phases
58  
59      ContainerInitializationPhase[] getInitializationPhases();
60  
61      // Component lookup manager
62  
63      // Component discoverer manager
64  
65      ContainerConfiguration addComponentDiscoverer( ComponentDiscoverer componentDiscoverer );
66  
67      ContainerConfiguration addComponentDiscoveryListener( ComponentDiscoveryListener componentDiscoveryListener );
68  
69      ContainerConfiguration setComponentDiscovererManager( ComponentDiscovererManager componentDiscovererManager );
70  
71      ComponentDiscovererManager getComponentDiscovererManager();
72  
73      // Component factory manager
74  
75      ContainerConfiguration setComponentFactoryManager( ComponentFactoryManager componentFactoryManager );
76  
77      ComponentFactoryManager getComponentFactoryManager();
78  
79      // Component manager manager
80  
81      // Component repository
82  
83      ContainerConfiguration setComponentRepository( ComponentRepository componentRepository );
84  
85      ComponentRepository getComponentRepository();
86  
87      // Component composer
88  
89      // Lifecycle handler manager
90  
91      ContainerConfiguration addLifecycleHandler( LifecycleHandler lifecycleHandler );
92  
93      ContainerConfiguration setLifecycleHandlerManager( LifecycleHandlerManager lifecycleHandlerManager );
94  
95      LifecycleHandlerManager getLifecycleHandlerManager();
96  
97      // Configuration Sources
98  
99      ContainerConfiguration setConfigurationSource( ConfigurationSource configurationSource );
100 
101     ConfigurationSource getConfigurationSource();
102 
103     ContainerConfiguration addComponentDiscoverer( Class<?> componentDiscoverer );
104     
105     ContainerConfiguration addComponentDiscoveryListener( Class<?> componentDiscoveryListener );
106 
107     List<Class> getComponentDiscoverers();
108 
109     List<Class> getComponentDiscoveryListeners();    
110 }
111