I want to do something like:

@Inject @Named("conf")
Properties config;

@Inject @Named("lang")
Properties language;

Where these objects are singletons initialized once at runtime with
environment-specific information.

I've tried various things and none result in my Provider or @Provides
methods getting called.  Here is a trimmed down version of my code using a
Provider class:

*MyModule.java:*

public class SeleniumInjectionModule extends AbstractModule {
  @Override
  protected void configure() {

bind(Properties.class).annotatedWith(Names.named("conf")).toProvider(ConfigProvider.class);

bind(Properties.class).annotatedWith(Names.named("lang")).toProvider(LanguageProvider.class);

  }
}

 *ConfigProvider.java:*

@Singleton
public class ConfigProvider implements Provider<Properties> {
  private final Properties config = new Properties();

  public ConfigProvider() {
    //Load properties file based on 'config' system property value set in
Maven profile
    ...
    config.load(...);
    ...
  }
  @Override
  public Properties get() {
    return config;
  }
}


*LanguageProvider.java:*

@Singleton
public class LanguageProvider implements Provider<Properties> {
  private final Properties lang = new Properties();

  public LanguageProvider() {
    //Load properties file based on 'language' system property value set in
Maven profile
    ...
    lang.load(...);
    ...
  }
  @Override
  public Properties get() {
    return lang;
  }
}

* In my Global Init code:*
    Guice.createInjector(new MyModule());

What am I missing?

-- 
Jeff Vincent
[email protected]
See my LinkedIn profile at:
http://www.linkedin.com/in/rjeffreyvincent
I ♥ DropBox <http://db.tt/9O6LfBX> !!

-- 
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-guice?hl=en.

Reply via email to