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.