View Javadoc

1   /*
2    * Created on May 18, 2005
3    *
4    * TheLittleContainer application entry point.
5    */
6   package net.sf.tlc;
7   
8   import net.sf.tlc.core.I18nHelper;
9   import net.sf.tlc.core.PropertyManager;
10  import net.sf.tlc.core.TargetLauncher;
11  import net.sf.tlc.core.impl.DefaultFinder;
12  import net.sf.tlc.core.impl.DefaultI18nHelper;
13  import net.sf.tlc.core.impl.DefaultLauncher;
14  import net.sf.tlc.core.impl.DefaultPropertyManager;
15  import net.sf.tlc.ioc.IocContainer;
16  import net.sf.tlc.ioc.impl.EmbeddableContainer;
17  import net.sf.tlc.loader.TlcClassLoader;
18  
19  /***
20   * TheLittleContainer application entry point.
21   * 
22   * @author aisrael
23   */
24  public final class Main {
25  
26      private static final String DEFAULT_TARGET_DIR = "targets";
27  
28      private static final String TLC_TARGET_DIR_KEY = "tlc.target.dir";
29  
30      private static final String RESOURCES_MESSAGESBUNDLE = "resources.MessagesBundle";
31  
32      private static final String STARTUP_MSG_KEY = "tlc.main.startupMessage";
33  
34      private static final String SHUTDOWN_MSG_KEY = "tlc.main.shutdownMessage";
35  
36      private static final String TLC_PROPERTIES = "tlc.properties";
37  
38      /***
39       * Main instances should NOT be constructed in standard programming.
40       */
41      private Main() {
42          // noop
43      }
44  
45      /***
46       * The application entry point.
47       * 
48       * @param args
49       *            String[]
50       */
51      public static void main(final String[] args) {
52  
53          final I18nHelper i18nHelper = new DefaultI18nHelper(RESOURCES_MESSAGESBUNDLE);
54          System.out.println(i18nHelper.getMessage(STARTUP_MSG_KEY));
55  
56          final IocContainer container = new EmbeddableContainer();
57          final PropertyManager pm = new DefaultPropertyManager(TLC_PROPERTIES);
58          container.add(pm);
59          container.add(new TlcClassLoader(pm.getProperty(TLC_TARGET_DIR_KEY, DEFAULT_TARGET_DIR)));
60          container.register(DefaultFinder.class);
61          container.register(DefaultLauncher.class);
62          final TargetLauncher launcher = (TargetLauncher) container.getInstance(TargetLauncher.class);
63          launcher.loadTargets();
64  
65          System.out.println(i18nHelper.getMessage(SHUTDOWN_MSG_KEY));
66      }
67  }