Re: [xwiki-devs] [xwiki-notifications] r15087 - in sandbox/xwiki-core-rest/src/main: java java/components java/components/org java/components/org/xwiki java/components/org/xwiki/rest java/components/org/xwiki/rest/internal resources/META-INF/plexus
Hi Fabio On Jan 6, 2009, at 1:46 AM, fmancinelli (SVN) wrote:
Author: fmancinelli Date: 2009-01-06 01:46:26 +0100 (Tue, 06 Jan 2009) New Revision: 15087
Added: sandbox/xwiki-core-rest/src/main/java/components/ sandbox/xwiki-core-rest/src/main/java/components/org/ sandbox/xwiki-core-rest/src/main/java/components/org/xwiki/ sandbox/xwiki-core-rest/src/main/java/components/org/xwiki/rest/ sandbox/xwiki-core-rest/src/main/java/components/org/xwiki/rest/ SpacesResource.java sandbox/xwiki-core-rest/src/main/java/components/org/xwiki/rest/ XWikiResource.java sandbox/xwiki-core-rest/src/main/java/components/org/xwiki/rest/ XWikiResourceFinder.java sandbox/xwiki-core-rest/src/main/java/components/org/xwiki/rest/ XWikiResourceRepresenter.java sandbox/xwiki-core-rest/src/main/java/components/org/xwiki/rest/ XWikiRestApplication.java sandbox/xwiki-core-rest/src/main/java/components/org/xwiki/rest/ XWikiRestletServlet.java sandbox/xwiki-core-rest/src/main/java/components/org/xwiki/rest/ internal/ sandbox/xwiki-core-rest/src/main/java/components/org/xwiki/rest/ internal/PlainTextSpacesRepresenter.java sandbox/xwiki-core-rest/src/main/java/components/org/xwiki/rest/ internal/XmlTextSpacesRepresenter.java Modified: sandbox/xwiki-core-rest/src/main/resources/META-INF/plexus/ components.xml Log: Added a fully componentized version of the REST infrastructure.
Now resources and "representers" (i.e., objects that are in charge for representing a given resource for a given media type) are declared through components.xml and automatically registered:
1) At the application level routes are created for all the components declaring the org.xwiki.rest.XWikiResource role. The role hint defines the uri template.
2) Representers components are associated to resource components by looking at the role hint (which should reflect the resource a given representer is associated to)
[snip]
+ restApplication = (XWikiRestApplication) componentManager.lookup(applicationClass); + + restApplication.setName(getServletConfig().getServletName()); + restApplication.setContext(new ServletContextAdapter(this, context)); + restApplication .getContext().setLogger(restApplication.getClass().getName());
Looks good in general. Just making sure: is createApplication() and hence the code above executed only once? All components you've created are singletons so you need to be careful that they don't hold state or if they do (as above) then this needs to be a state that is common for all threads and thus only initialized once for the entire app lifetime. [snip] Thanks -Vincent
Vincent Massol wrote:
Looks good in general.
Just making sure: is createApplication() and hence the code above executed only once?
I think it is. I am going to ask on the RESTlet mailing list to be sure that's the case. -Fabio
Vincent Massol wrote:
Looks good in general.
Just making sure: is createApplication() and hence the code above executed only once?
Got a reply on the Restlet mailing list: 1) XWikiRestletServlet.createApplication is called only once. 2) XWikiRestApplication.createRoot is called only once. 3) XWikiResources should be instantiated at every request. I've refactored the whole thing in order to take into account this. -Fabio
participants (2)
-
Fabio Mancinelli -
Vincent Massol