[ 
https://jira.nuxeo.org/browse/NXP-5854?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bogdan Stefanescu updated NXP-5854:
-----------------------------------


http://hg.nuxeo.org/nuxeo/nuxeo-webengine/rev/bd4f73c53ac9

> automatic manage of tx in webengine filter
> ------------------------------------------
>
>                 Key: NXP-5854
>                 URL: https://jira.nuxeo.org/browse/NXP-5854
>             Project: Nuxeo Enterprise Platform
>          Issue Type: Improvement
>          Components: WebEngine
>            Reporter: Bogdan Stefanescu
>            Assignee: Bogdan Stefanescu
>            Priority: Major
>             Fix For: 5.4
>
>
> WebEngine filter should:
> - start/close tx if required
> - provide a stateless/stateful core session which is automatically closed 
> when needed
> - enable modules to overwrite default behavior per a path basis.
> By default webengine will start tx for any request to a JAX-RS application.  
> */skin/* paths are ommited to avoid tx on static resources
> You can configure the default behavior using the runtime property:
> org.nuxeo.webengine.tx.auto=true|false
> By default session is stateless for any JAX-RS request. You can configure 
> this behavior by using the framework variable:
> org.nuxeo.webengine.session.stateful=true|false
> Note that if you enable stateful session the requests belonging to the same 
> HttpSession will be synchronized to avoid concurrent access to the same core 
> session.
> To configure tx and stateful flag on a path basis you should use an extension 
> like:
> <extension target="" point="">
>   <path value="/mymodule1" autoTx="false" stateful="true" />
>   <path value="/mymodule2/resources" autoTx="false" />
>   <path value="/mymodule3/.*\.gif" autoTx="false" regex="true"/>
> </extension>
> Path matchers will be sorted from logest path string to the smallest one, 
> prefixes tried matched first, and after that regex  matchers are tried.
> Ex:
> /module1/myresource
> /module1
> /module1/.*
> Anyway it is recommended to use path prefixes and avoid regex for better 
> perfs.
> To get the provided core session in a resource you can use:
> UserSession.getCurrentSession(httpRequest).getCoreSession();
> or
> UserSession.getCurrentSession(httpRequest).getCoreSession("repoName");
> The session will be closed by webengine - so you don't need to worry about 
> that.
> Also if you want to do cleanup after the request was done (for example 
> removing any temporary file or closing other resources) you can use:
> UserSession.addRequestCleanupHandler(httpRequest, new RequestCleanupHandler() 
> {
>   cleanup(HttpServletRequest httpRequest) {
>   ....
>   }
> });
> in a JAX-RS or MessageBodyWriter class.
> If you need the current UserSession you can get it in either using:
> UserSession.getCurrentSession(httpRequest)
> either
> WebEngine.getActiveContext().getUserSession()
> Not that the usersession is available only on requests threads that are 
> dispatched to webengine (JAX-RS apps or webengine apps)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://jira.nuxeo.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
ECM-tickets mailing list
[email protected]
http://lists.nuxeo.com/mailman/listinfo/ecm-tickets

Reply via email to