It depends on the purpose of exposing Provider. If you are exposing your
own Provider implementations, just make them implement guice's interface
(for internal use) and an identical interface of your own (for exposure to
the component's clients).
public interface com.foo.Provider<T> {
T get();
}
class MyProvider<T> implements com.foo.Provider<T>,
com.google.inject.Provider<T> {
T get();
}
If you are exposing arbitrary Providers created by Guice, wrap them in your
own interface.
final class MyProvider<T> implements com.foo.Provider<T> {
MyProvider(com.google.inject.Provider<T> guiceProvider) { ... }
T get() {
return guiceProvider.get();
}
}
You can do a similar wrapping if you're accepting Providers from the client.
On Thu, Apr 23, 2009 at 11:00 AM, Adrian Cole <[email protected]> wrote:
> Perhaps... Although if my api interface extends a guice one, I may as well
> have used the guice one, right? The user would still need guice libraries
> loaded or the IDE would turn somewhat red. Other alternates might include
> putting the guice Provider interface into my api jar. However, I'd like to
> avoid exposing guice in my external apis.
>
> Thanks for the response... I do appreciate it. Do you have any other
> ideas?
> -Adrian
>
>
> On Thu, Apr 23, 2009 at 4:45 PM, Adam Ruggles <[email protected]> wrote:
>
>> Couldn't you make your provider interface extend the Guice one?
>>
>>
>> On Thu, Apr 23, 2009 at 7:07 AM, AdrianCole <[email protected]> wrote:
>>
>>>
>>> Hello,
>>>
>>> I'd like to minimize the compile-time dependency of guice on an
>>> application who wants to use my guiced component.
>>>
>>> I'd like to provide a method:
>>>
>>> Provider<Foo> void getFooProvider()
>>>
>>> Difference is that I'd like to use the interface com.foo.Provider as
>>> opposed to the guice one.
>>>
>>> Is there a way to make this happen?
>>>
>>> Thanks,
>>> -Adrian
>>>
>>>
>>>
>>
>>
>>
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---