If I could find an example, it looks like I could just extend Finder and
override createResource(). That should allow me to inject a database
connection. What I don't under stand is in the documents talk about
creating domain object using Resources, but doesn't have the Finder
create them for you limit a developers control? Wouldn't it be better to
allow a developer to manage the creation of their own objects? So my
question is does anyone have a example of using Finder? I would like to
have control over creating Resource objects.
Thierry Boileau wrote:
Hi Justin,
you're right, a new instance of your Resource class is created each
time your resource is targeted.
Each instance is responsible to load the resource's own state, and
respond to only one request.
best regards,
Thierry Boileau
The best I could find is yes Resources get created each request, and
I should extend a Restlet and override the handle method. Allowing
Pico to create the Restlet with the database connection in it. I
don't see a way to do that with a Resource unless I can make Restlet
use a custom factory.
Stanczak Group wrote:
In the following code I supply the router with a class. Restlet then
creates this class, I'm guess when a call is made. My question is
does this class get created each time or is it cached? If I use
something like PicoContainer with caching I can have it inject the
CoursesResource.class, which would allow me to use PicoContainer to
inject for example database connection entity manager into this
resource. The way I understand it is Restlet engine, in this case,
instantiates this class for me, but looking at the constructor it
appears it's created each time a new. What am I missing here?
@Override
public Restlet getRoot() {
Router router = new Router(this.getContext());
router.attach("/v1/users/{user}/courses",
CoursesResource.class);
return router;
}
--
Justin Stanczak
Stanczak Group
812-735-3600
"All that is necessary for the triumph of evil is that good men do nothing."
Edmund Burke