Package com.netflix.governator.guice.main

Source Code of com.netflix.governator.guice.main.BootstrapMain

package com.netflix.governator.guice.main;

import com.google.inject.AbstractModule;
import com.google.inject.ProvisionException;
import com.netflix.governator.guice.LifecycleInjector;

/**
* Main class for loading a bootstrap configuration via main().  When running an application set
* this to the main class and set the first argument to the name of the bootstrap'd class.
*
* java BootstrapMain com.org.MyApplicationBootstrap ...
*
* Where,
*
* <pre>
* {@code
*  @GovernatorConfiguration
*  public class MyApplicationBootstrap extends AbstractModule {
*     public void configure() {
*        // your application bindings here
*     }
*  }
* }
* </pre>
*
* Note that any component in your application can gain access to the command line arguments by injecting
* Arguments.  Also, it is the responsibility of your application to parse the command line and manage
* the application lifecycle.  In the future there may be governator subprojects for various cli parsing
* and command line processing libraries (such as apache commons cli)
*
* <pre>
* {@code
* @Singleton
* public class MyApplication {
*    @Inject
*    MyApplication(Arguments args) {
*    }
* }
* }
* </pre>
* @author elandau
*/
public class BootstrapMain {
    public static void main(final String args[]) {
        try {
            Class<?> mainClass = Class.forName(args[0]);
            LifecycleInjector.bootstrap(mainClass, new AbstractModule() {
                @Override
                protected void configure() {
                    bind(Arguments.class).toInstance(new Arguments(args));
                }
            });
        } catch (Exception e) {
            throw new ProvisionException("Error instantiating main class", e);
        }
    }
}
TOP

Related Classes of com.netflix.governator.guice.main.BootstrapMain

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.