1fdc079e08908222604e1e4952ea4251e781ca4e
[utils] / system / general / src / test / java / org / wamblee / system / Environment.java
1 /*
2  * Copyright 2007 the original author or authors.
3  * 
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  * 
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  * 
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */ 
16 package org.wamblee.system;
17
18 import javax.sql.DataSource;
19
20 import org.wamblee.test.EventTracker;
21
22
23 public class Environment extends AbstractComponent {
24         
25         private static final ProvidedInterface[] provided() { 
26                 return new ProvidedInterface[] { 
27                         new DefaultProvidedInterface("datasource", DataSource.class), 
28                         new DefaultProvidedInterface("integer", Integer.class)
29         };
30         }
31         
32         private EventTracker<String> _tracker; 
33         
34         public Environment() { 
35                 super("environment", provided(), new RequiredInterface[0]);
36         }
37         
38         public Environment(EventTracker aTracker) { 
39                 this();
40                 _tracker = aTracker; 
41         }
42         
43         @Override
44         protected void doStart(String aContext) {
45             addService(aContext, getProvidedServices()[0], new Integer(1));
46             addService(aContext, getProvidedServices()[1], new Integer(2));
47             track("start." + getName());
48         }
49
50         @Override
51         protected void doStop() {
52                 track("stop." + getName());
53         }
54         
55         private void track(String aString) {
56                 if ( _tracker == null ) { 
57                         return; 
58                 }
59                 _tracker.eventOccurred(aString);
60         }
61 }