Warp-persist also requires to register the @Finder interface. See
http://www.wideplay.com/dynamicfinders
It is via the .addAccessor(PersonAccess.class) instead of addFinder.
The reason why you need to register all your _interfaces_ is simple.
Guice has no idea how to instantiate FinderInterface. Consider
@Inject MyFinderInterface
This has to be backed by a concrete class!
The only option is to generate backing class on the fly when addFinder
is called. There is no "wildcard" provider in Guice. See
http://code.google.com/p/google-guice/issues/detail?id=49 and the
discussions on the mailing list if you want more.
Your options are simple
o) Use @Finder in concrete class instead of Interface (this works
OOTB)
o) Put all @Finder interfaces in selected packages and create a custom
scanPackage method that will do a selective class path scanning.
See how scan packages is done in Sitebricks or similar. I think full
blown classpath scanning is just plain evil. But I do selective class-
path scanning to great success i.e. register all @Entity from a
package, register all quartz jobs from a package etc.
Warp-persist works great. Still using it over guice-persist as it
provides the Hibernate Native support.
Cheers
Alen