Hello,

I'am developing an extension for the commercial Polarion ALM system. In my 
extension I'am using Google Guice for dependeny injection and I'am very 
satisfied with it. But I have one problem:

I have an Interface ISingleton (just for demonstration) in my extension, 
which is specified as followed:

@ImplementedBy(Singleton.class)
public interface ISingleton {
public int getUniqueNumber();
}

My implementation for the Singleton (also just for demonstration) is the 
following: 

@Singleton
public class Singleton implements ISingleton {
private final int uniquenumber = (int) (Math.random() * 10000);

@Override
public int getUniqueNumber() {
return uniquenumber; 
}
}

Any classes which depends on the ISingleton get an instance to this via 
constructor injection. That works fine - in all my classes the Singleton 
hashcode is the same, also the unique number. At least for one part of my 
application- any SampleClass gets the same singleton:

public class SampleClass {
private final ISingleton singleton;

@Inject
public SampleClass(ISingleton singleton) {
this.singleton = singleton;
}
}

But the problem is: My application consists of two parts: The first part is 
called from the Polarion application at Startup. I create my guice injector 
at this point. As mentioned above, that works fine, any class needing an 
ISingleton get the same Singleton instance.

On the other hand my application also contains a servlet. If I initiate 
some SampleClass 
objects, all of them have another instance of the singleton. That means i 
have two instances of my singleton which is not acceptable for me.

What can I do here? If i consult the injector created and temporarely 
stored at the startup within my servlet, i get the correct instance. But i 
want to use constructor injection and keeping a reference to the injector 
isn't a good idea. How can i solve it?

Thank you in advance,
Dirk

-- 
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-guice/-/0jsOnAocBpQJ.
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