I'm not sure I see the advantage of that. Jersey still controls the creation of all objects, it's just that it delegates to dagger for any injects that are registered. Any classes that don't have an `@Inject` annotation will be constructed directly using jersey.

You actually have even more control than that. If you leave the `@Inject` annotation off the constructor but put it on fields, then object lifetime is entirely controlled by Jersey put you still get field annotation from dagger.

I"m not sure custom scopes work as easily as storing object graphs in a map. You need something with the lifetime of the scope to already exist that you can build from to get the object graph scope. This is how I get app and request scope. The app scoped graph is stored on the servlet context and the request scoped graph is stored on the request object.

Guice supports scoping in a similar way, except it allows custom scopes if you provide the scoping lifetime code for your custom scope. I could do this, but I don't think it provides enough additional value for a 1.0 release.