Hey Fred,
  Thanks for the reply.  I've just tried your suggestion.  I've made my 
Serialization interfaces extend Migration temporarily so that the set 
inclusion compiles.

https://gist.github.com/tnine/d5b569c6641808488eb6#file-graphmodule-java-L98

The providers aren't getting invoked when I do it like this, am I doing 
something incorrectly?  Feel free to edit the gist to correct my impl.

Thanks,
Todd



On Wednesday, April 16, 2014 5:36:13 PM UTC-7, Fred Faber wrote:
>
> I see and injection of 'Set<Migration>' where the elements of this set 
> are EdgeMetadataSerializationImpl and NodeSerializationImpl
>
> To trigger the provider methods that return instances of these types, 
>  Guice needs to recognize the binding chain. In this case, you'd contribute 
> EdgeMetadataSerialization to the set, which itself is bound to 
> EdgeMetadataSerializationImpl, and that will trigger the provider method.
>
> For (2), not really. But it's generally good to be explicit, and that is 
> an underlying benefit.
>
>
> On Wed, Apr 16, 2014 at 7:49 PM, Todd Nine <[email protected] <javascript:>
> > wrote:
>
>> Hi all,
>>   I'm creating an application that has some complex binding, and I'm 
>> running into an issue I could use a hand with.  Here is my module.
>>
>>
>>
>> https://github.com/usergrid/usergrid/blob/99fd1e50cdb523ac463e3949e99a7f8103f37a56/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/guice/GraphModule.java#L98
>>
>> Several of my serialization classes implement 2 interfaces.  The first is 
>> their associated serialization interface, the other is the interface 
>> "Migration".  I then have a MigrationManagerImpl that takes a set of these 
>> Migration interfaces in it's constructor.  When an administrator triggers 
>> an update, each Migration is invoked by the MigrationManager in the correct 
>> order.  What I have above worked previously.  However, now I have two 
>> instances of serialization for the edges.  One is used as commit log for 
>> fast writes, the other is used in post processing to compact edges into 
>> shards based on the shard size for long term storage and faster seeks.
>>
>>
>> https://github.com/usergrid/usergrid/blob/99fd1e50cdb523ac463e3949e99a7f8103f37a56/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/guice/GraphModule.java#L146
>>
>>
>> https://github.com/usergrid/usergrid/blob/99fd1e50cdb523ac463e3949e99a7f8103f37a56/stack/corepersistence/graph/src/main/java/org/apache/usergrid/persistence/graph/guice/GraphModule.java#L172
>>
>>
>> I'm facing 2 issues now.
>>
>> 1) The provider methods in my module are never invoked, so the multi 
>> binding never seems to occur.
>>
>>
>> 2) Rather than have 2 instances of each of these serializers (one for the 
>> use in DI and one in the Multibinding), is there a way I can get a list of 
>> existing singleton instances that implement the Migration interface, and 
>> inject them in my MigrationManagerImpl without having to do duplicate 
>> bindings?
>>
>> Thanks,
>> Todd
>>
>>
>>  -- 
>> 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] <javascript:>.
>> To post to this group, send email to [email protected]<javascript:>
>> .
>> Visit this group at http://groups.google.com/group/google-guice.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
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 http://groups.google.com/group/google-guice.
For more options, visit https://groups.google.com/d/optout.

Reply via email to