r187 - in trunk: . nuiton-web/src/main/java/org/nuiton/web/filter
Author: tchemit Date: 2012-02-20 12:49:09 +0100 (Mon, 20 Feb 2012) New Revision: 187 Url: http://nuiton.org/repositories/revision/nuiton-web/187 Log: T?\195?\162che #1975: Updates to ToPIA 2.6.7 Evolution #1978: Can use request to begin a new transaction in TopiatransactionFilter Modified: trunk/nuiton-web/src/main/java/org/nuiton/web/filter/TopiaTransactionFilter.java trunk/pom.xml Modified: trunk/nuiton-web/src/main/java/org/nuiton/web/filter/TopiaTransactionFilter.java =================================================================== --- trunk/nuiton-web/src/main/java/org/nuiton/web/filter/TopiaTransactionFilter.java 2012-02-19 11:51:08 UTC (rev 186) +++ trunk/nuiton-web/src/main/java/org/nuiton/web/filter/TopiaTransactionFilter.java 2012-02-20 11:49:09 UTC (rev 187) @@ -76,7 +76,7 @@ * <h2>Obtain the transaction</h2> * The (proxied) transaction is pushed as an attribute in the servlet request. * <p/> - * The attribute name is defined by field {@link #requestAttribute} + * The attribute name is defined by field {@link #requestAttributeName} * (default value is {@link #TOPIA_TRANSACTION_REQUEST_ATTRIBUTE}) and can be * changed. * <p/> @@ -89,7 +89,7 @@ * <pre> * TopiaContext tx = (TopiaContext) request.getAttribute(TopiaTransactionFilter#TOPIA_TRANSACTION_REQUEST_ATTRIBUTE); * </pre> - * + * <p/> * Or * <pre> * TopiaContext tx = (TopiaContext) request.getAttribute(modifiedAttributeName); @@ -138,7 +138,7 @@ * * @since 1.10 */ - protected String requestAttribute = TOPIA_TRANSACTION_REQUEST_ATTRIBUTE; + protected String requestAttributeName = TOPIA_TRANSACTION_REQUEST_ATTRIBUTE; public Set<String> getExcludeMethods() { return excludeMethods; @@ -149,13 +149,14 @@ } /** - * to change the {@link #requestAttribute}. + * to change the {@link #requestAttributeName}. * - * @param requestAttribute new name of the request attribute where to push the transaction. + * @param requestAttributeName new name of the request attribute + * where to push the transaction. * @since 1.10 */ - public void setRequestAttribute(String requestAttribute) { - this.requestAttribute = requestAttribute; + public void setRequestAttributeName(String requestAttributeName) { + this.requestAttributeName = requestAttributeName; } public static TopiaContext getTransaction(ServletRequest request) { @@ -167,10 +168,11 @@ /** * Method to open a new transaction. * + * @param request incoming request * @return the new freshly opened transaction * @throws TopiaRuntimeException if any problem while opening a new transaction */ - protected abstract TopiaContext beginTransaction() throws TopiaRuntimeException; + protected abstract TopiaContext beginTransaction(ServletRequest request) throws TopiaRuntimeException; @Override public void destroy() { @@ -209,7 +211,7 @@ // creates a proxy of a lazy transaction TopiaTransactionProxyInvocationHandler proxyInvocationHandler = - new TopiaTransactionProxyInvocationHandler(); + new TopiaTransactionProxyInvocationHandler(request); TopiaContext proxy = (TopiaContext) Proxy.newProxyInstance( getClass().getClassLoader(), @@ -219,7 +221,7 @@ ); // push it in request as an attribute - request.setAttribute(requestAttribute, proxy); + request.setAttribute(requestAttributeName, proxy); try { // chain to next filter @@ -349,9 +351,16 @@ */ public class TopiaTransactionProxyInvocationHandler implements InvocationHandler { + /** Incoming request that creates this handler. */ + protected final ServletRequest request; + /** Target to use for the proxy. */ protected TopiaContext transaction; + protected TopiaTransactionProxyInvocationHandler(ServletRequest request) { + this.request = request; + } + @Override public Object invoke(Object proxy, Method method, @@ -378,7 +387,7 @@ } // first time transaction is required, create its - transaction = beginTransaction(); + transaction = beginTransaction(request); if (log.isDebugEnabled()) { log.debug("Open transaction " + transaction); Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2012-02-19 11:51:08 UTC (rev 186) +++ trunk/pom.xml 2012-02-20 11:49:09 UTC (rev 187) @@ -244,7 +244,7 @@ <nuitonUtilsVersion>2.4.4</nuitonUtilsVersion> <nuitonI18nPluginVersion>${nuitonI18nVersion}</nuitonI18nPluginVersion> - <topiaVersion>2.6.6</topiaVersion> + <topiaVersion>2.6.7-SNAPSHOT</topiaVersion> <!-- Tapestry --> <tapestryVersion>5.2.4</tapestryVersion>
participants (1)
-
tchemit@users.nuiton.org