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]> 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]. > 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. > -- 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.
