(no commit message)
[utils] / system / general / src / test / java / org / wamblee / system / core / Application.java
index 938f2bd1d50e7e969d46e71d97b778f81a3573ee..ca1467cc0fd4afde4ff9327bfcff49668b91035e 100644 (file)
@@ -24,18 +24,24 @@ import org.wamblee.system.core.RequiredInterface;
 import org.wamblee.test.EventTracker;
 
 public class Application extends AbstractComponent {
-       private static RequiredInterface[] required() {
+       public static RequiredInterface[] required(boolean aOptional) {
                return
                new RequiredInterface[] { 
-                       new DefaultRequiredInterface("datasource", DataSource.class), 
-                       new DefaultRequiredInterface("integer", Integer.class)
+                       new DefaultRequiredInterface("string", String.class, aOptional), 
+                       new DefaultRequiredInterface("integer", Integer.class, aOptional)
        };
        }
 
        private EventTracker<String> _tracker;
+       private String _string; 
+       private Integer _integer; 
        
        public Application() {
-               super("application", new ProvidedInterface[0], required()); 
+               super("application", new ProvidedInterface[0], required(false)); 
+       }
+       
+       public Application(boolean aIsOptinal) { 
+               super("application", new ProvidedInterface[0], required(true)); 
        }
        
        public Application(EventTracker<String> aTracker) { 
@@ -45,7 +51,17 @@ public class Application extends AbstractComponent {
 
        @Override
        protected void doStart() {
-               track("start." + getName()); 
+               track("start." + getName());
+               _string = getRequiredInterfaces()[0].getImplementation(String.class);
+           _integer = getRequiredInterfaces()[1].getImplementation(Integer.class);
+       }
+       
+       public String getString() {
+               return _string;
+       }
+       
+       public Integer getInteger() {
+               return _integer;
        }
        
        @Override