Jump to: navigation, search

Sisu/Techniques

How to add specific bindings to the basic Sisu example

Here is an expanded version of the 'getting started' tutorial that adds an additional module to publish some scalar parameters.

public static BusBootstrap Main(final String[] cliArguments, final String configFilePathname) {
        ClassLoader classloader = BusBootstrap.class.getClassLoader();

        AbstractModule parameterModule = new AbstractModule()
        {
            @Override
            protected void configure()
            {
                // Add EDSL binding calls here.
            }

            @Provides
            @Parameters
            String[] cliArguments()
            {
                return cliArguments;
            }

            @Provides
            WsBusConfig config() {
                return new WsBusConfig(configFilePathname);
            }
        };

        Injector injector = Guice.createInjector(
                
                new WireModule(// auto-wires unresolved dependencies
                        parameterModule,
                        new SpaceModule(// scans and binds @Named components
                                new URLClassSpace(classloader)    // abstracts class/resource finding
                        )));

        return injector.getInstance(BusBootstrap.class);
    }