I guess this bug is the reason:

*https://github.com/google/guice/issues/847
<https://github.com/google/guice/issues/847>*

*Can I know whether it is fixed or not?*

*Regards,*
*Dilanka*

On Wed, Oct 3, 2018 at 7:25 PM Dilanka Muthukumarana <[email protected]>
wrote:

> Hi All,
>
> By further debug information, I have found that below error is throwing.
>
> Unable to create binding for java.util.Set< <package>
> .WarningInfoClientPlugin>.
> It was already configured on one or more child injectors or private modules
>     bound at
> <package>.AbstractInjectModule.multibind(AbstractInjectModule.java:130)
> (via modules: com.google.inject.util.Modules$OverrideModule ->
> com.google.inject.util.Modules$OverrideModule ->
> com.google.inject.util.Modules$CombinedModule ->  <package> .Configuration
> -> com.google.inject.multibindings.Multibinder$RealMultibinder)
>   If it was in a PrivateModule, did you forget to expose the binding?
>
> Any idea about it, Implementation of class is at another module, do I need
> to add another configuration or something like that?
>
> Regards,
> Dilanka
>
>
> On Wed, Oct 3, 2018 at 5:29 PM Dilanka Muthukumarana <[email protected]>
> wrote:
>
>> Hi Again,
>>
>> I am using configuration as below:
>>
>> multibind(WarningInfoClientPlugin.class,
>> EPedDoseValidationWarningPlugin.class);
>>
>>  protected final <T> void multibind(final Class<T> classType, final
>> Class<?>... implementations)
>>   {
>>     final Multibinder<T> pluginBinder =
>> Multibinder.newSetBinder(binder(), classType);
>>
>>     for (final Class<?> impl : implementations)
>>     {
>>       pluginBinder.addBinding().to((Class<T>)impl);
>>     }
>>   }
>>
>> Thanks and Regards,
>> Dilanka
>>
>>
>> On Wed, Oct 3, 2018 at 5:17 PM Dilanka Muthukumarana <[email protected]>
>> wrote:
>>
>>> Hi All,
>>>
>>>
>>> Currently I am working in Guice injection related development and
>>> experiencing injection problem with multiBind  with optional= true.
>>>
>>> In guice-4.0, I have seen skipping injection if it is optional.
>>>
>>> code location: MembersInjectorStore.java
>>> Method:
>>> /**
>>>
>>>  * Returns the injectors for the specified injection points.
>>>  */
>>> ImmutableList<SingleMemberInjector> getInjectors(
>>>     Set<InjectionPoint> injectionPoints, Errors errors) {
>>>   List<SingleMemberInjector> injectors = Lists.newArrayList();
>>>   for (InjectionPoint injectionPoint : injectionPoints) {
>>>     try {
>>>       Errors errorsForMember = injectionPoint.isOptional()
>>>           ? new Errors(injectionPoint)
>>>           : errors.withSource(injectionPoint);
>>>       SingleMemberInjector injector = injectionPoint.getMember() instanceof 
>>> Field
>>>           ? new SingleFieldInjector(this.injector, injectionPoint, 
>>> errorsForMember)
>>>           : new SingleMethodInjector(this.injector, injectionPoint, 
>>> errorsForMember);
>>>       injectors.add(injector);
>>>     } catch (ErrorsException ignoredForNow) {
>>>       // ignored for now
>>>     }
>>>   }
>>>   return ImmutableList.copyOf(injectors);
>>> }
>>>
>>>
>>> My code is like below:
>>>
>>> private Set<WarningInfoClientPlugin> warningInfoClientPlugins;
>>>
>>> @Inject(optional = true)
>>> public void setWarningPlugins(final Set<WarningInfoClientPlugin> 
>>> warningInfoClientPlugins)
>>> {
>>>   this.warningInfoClientPlugins = warningInfoClientPlugins;
>>> }
>>>
>>>
>>> Code is perfectly working *without* *optional = true* attribute.
>>>
>>> Appreciate your help on this. Thank you.
>>>
>>>
>>> Regards,
>>>
>>> Dilanka
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "google-guice" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at https://groups.google.com/group/google-guice.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/google-guice/ee4a5435-a317-497a-a044-4175f4c9340b%40googlegroups.com
>>> <https://groups.google.com/d/msgid/google-guice/ee4a5435-a317-497a-a044-4175f4c9340b%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>> --
>>
>> ~~~~~~~~
>> Regards,
>> Dilanka Muthukumarana
>>
>>
>>
>
>
> --
>
> ~~~~~~~~
> Regards,
> Dilanka Muthukumarana
>
>


-- 

~~~~~~~~
Regards,
Dilanka Muthukumarana

-- 
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-guice.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-guice/CANLbWWuzxvYk%3D9ZOxjFE3Prq3Lt22HKsbR94O_L5420xc4oBHA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to