1
2
3
4
5
6
7
8
9
10
11 package org.astrogrid.dataservice.service.cea;
12
13 import EDU.oswego.cs.dl.util.concurrent.QueuedExecutor;
14 import org.apache.commons.logging.Log;
15 import org.apache.commons.logging.LogFactory;
16 import org.astrogrid.applications.component.EmptyCEAComponentManager;
17 import org.astrogrid.applications.manager.idgen.GloballyUniqueIdGen;
18 import org.astrogrid.applications.manager.idgen.IdGen;
19 import org.astrogrid.applications.manager.persist.ExecutionHistory;
20 import org.astrogrid.applications.manager.persist.InMemoryExecutionHistory;
21 import org.astrogrid.config.Config;
22 import org.astrogrid.config.SimpleConfig;
23 import org.astrogrid.dataservice.service.DataServer;
24 import org.picocontainer.MutablePicoContainer;
25
26 /*** Component manager implementation that assembles a CEA server which provides a single {@link DatacetnerApplicationDescription} for the
27 * datacenter application
28 * @author Noel Winstanley nw@jb.man.ac.uk 12-Jul-2004
29 *
30 */
31 public class DatacenterCEAComponentManager extends EmptyCEAComponentManager {
32 /***
33 * Commons Logger for this class
34 */
35 private static final Log logger = LogFactory.getLog(DatacenterCEAComponentManager.class);
36
37 /*** Construct a new DatacenterCEAComponentManager
38 *
39 */
40 public DatacenterCEAComponentManager() {
41 super();
42 final Config config = SimpleConfig.getSingleton();
43
44 EmptyCEAComponentManager.registerDefaultServices(pico);
45
46 pico.registerComponentImplementation(ExecutionHistory.class,InMemoryExecutionHistory.class);
47 pico.registerComponentImplementation(IdGen.class,GloballyUniqueIdGen.class);
48
49
50 EmptyCEAComponentManager.registerDefaultVOProvider(pico,config);
51
52 EmptyCEAComponentManager.registerProtocolLibrary(pico);
53 EmptyCEAComponentManager.registerStandardIndirectionProtocols(pico);
54 EmptyCEAComponentManager.registerAstrogridIndirectionProtocols(pico);
55 registerDatacenterProvider(pico,config);
56 }
57
58 /*** key used to lookup in config the name of the datacenter application. Must
59 * equal with the ResourceKey given in the managed applications. */
60
61 /*** default value for {@link #DS_APP_NAME} if not set in config */
62
63
64 /*** register the datacenter-specific components of this cea server */
65 public static void registerDatacenterProvider(MutablePicoContainer pico, Config config) {
66 logger.info("Registering Datacenter CEA Provider");
67
68
69
70 final String name= config.getString("datacenter.authorityId")+"/"+config.getString("datacenter.resourceKey")+"/ceaApplication";
71 logger.info("name =" + name);
72 pico.registerComponentInstance(new DatacenterApplicationDescriptionLibrary.DatacenterMetadata() {
73 public String getName() {
74 return name;
75 }
76 });
77 pico.registerComponentImplementation(DatacenterApplicationDescriptionLibrary.class,DatacenterApplicationDescriptionLibrary.class);
78 pico.registerComponentImplementation(DataServer.class,DataServer.class);
79 pico.registerComponentImplementation(QueuedExecutor.class,CeaQueuedExecutor.class);
80
81
82 }
83 }
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115