1 package org.codehaus.plexus;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import java.util.List;
20 import java.util.Map;
21
22 import org.codehaus.plexus.classworlds.realm.ClassRealm;
23 import org.codehaus.plexus.component.composition.CycleDetectedInComponentGraphException;
24 import org.codehaus.plexus.component.manager.ComponentManagerFactory;
25 import org.codehaus.plexus.component.repository.ComponentDescriptor;
26 import org.codehaus.plexus.component.repository.exception.ComponentLifecycleException;
27 import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
28
29
30
31
32
33
34 public interface ComponentRegistry {
35 void registerComponentManagerFactory(ComponentManagerFactory componentManagerFactory);
36
37 void addComponentDescriptor(ComponentDescriptor<?> componentDescriptor)
38 throws CycleDetectedInComponentGraphException;
39
40 <T> ComponentDescriptor<T> getComponentDescriptor(Class<T> type, String role, String roleHint);
41
42 @Deprecated
43 ComponentDescriptor<?> getComponentDescriptor(String role, String roleHint, ClassRealm realm);
44
45 <T> List<ComponentDescriptor<T>> getComponentDescriptorList(Class<T> type, String role);
46
47 <T> Map<String, ComponentDescriptor<T>> getComponentDescriptorMap(Class<T> type, String role);
48
49 <T> T lookup(Class<T> type, String role, String roleHint) throws ComponentLookupException;
50
51 <T> T lookup(ComponentDescriptor<T> componentDescriptor) throws ComponentLookupException;
52
53 <T> List<T> lookupList(Class<T> type, String role, List<String> hints) throws ComponentLookupException;
54
55 <T> Map<String, T> lookupMap(Class<T> type, String role, List<String> hints) throws ComponentLookupException;
56
57 void release(Object component) throws ComponentLifecycleException;
58
59 void removeComponentRealm(ClassRealm classRealm) throws PlexusContainerException;
60
61 void dispose();
62
63 <T> void addComponent(T component, String role, String roleHint);
64 }