You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by we...@apache.org on 2009/12/15 12:27:36 UTC
svn commit: r890767 - in
/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting:
api/ core/util/ servlet/
Author: werpu
Date: Tue Dec 15 11:27:36 2009
New Revision: 890767
URL: http://svn.apache.org/viewvc?rev=890767&view=rev
Log:
https://issues.apache.org/jira/browse/EXTSCRIPT-28
added an atomic commit counter so that we deal with the compile trigger time correctly
Modified:
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java
myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java
Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java?rev=890767&r1=890766&r2=890767&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/api/ScriptingConst.java Tue Dec 15 11:27:36 2009
@@ -61,4 +61,5 @@
public static final int ARTEFACT_TYPE_RESOURCEHANDLER = 19;
public static final int ARTEFACT_TYPE_CLIENTBEHAVIORRENDERER = 20;
+ public static final String CTX_REQUEST_CNT = "RequestCnt";
}
Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java?rev=890767&r1=890766&r2=890767&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/core/util/WeavingContext.java Tue Dec 15 11:27:36 2009
@@ -18,21 +18,19 @@
*/
package org.apache.myfaces.scripting.core.util;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.myfaces.scripting.api.Decorated;
import org.apache.myfaces.scripting.api.ScriptingWeaver;
-import org.apache.myfaces.scripting.core.MethodLevelReloadingHandler;
import org.apache.myfaces.scripting.core.DummyWeaver;
+import org.apache.myfaces.scripting.core.MethodLevelReloadingHandler;
import org.apache.myfaces.scripting.core.scanEvents.SystemEventProcessor;
import org.apache.myfaces.scripting.refresh.FileChangedDaemon;
import org.apache.myfaces.scripting.refresh.RefreshContext;
-import org.apache.commons.logging.LogFactory;
-import org.apache.commons.logging.Log;
import javax.faces.context.FacesContext;
-import javax.faces.context.ExternalContext;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Proxy;
-import java.util.HashMap;
import java.util.Map;
/**
@@ -72,8 +70,6 @@
}
-
-
/**
* general shutdown clean
*/
@@ -86,7 +82,7 @@
}
public static RefreshContext getRefreshContext() {
- return (RefreshContext) _refreshContextHolder.get();
+ return (RefreshContext) _refreshContextHolder.get();
}
/**
@@ -114,8 +110,6 @@
}
-
-
/**
* the weavers are set from outside
* we have to provide the weaver facade
Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java?rev=890767&r1=890766&r2=890767&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/ScriptingServletFilter.java Tue Dec 15 11:27:36 2009
@@ -18,13 +18,13 @@
*/
package org.apache.myfaces.scripting.servlet;
+import org.apache.myfaces.scripting.api.ScriptingConst;
import org.apache.myfaces.scripting.core.util.WeavingContext;
import org.apache.myfaces.scripting.refresh.RefreshContext;
-import org.apache.myfaces.context.servlet.ServletExternalContextImpl;
-
import javax.servlet.*;
import java.io.IOException;
+import java.util.concurrent.atomic.AtomicInteger;
/**
@@ -36,11 +36,13 @@
ServletContext context = null;
+
public void init(FilterConfig filterConfig) throws ServletException {
context = filterConfig.getServletContext();
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
+ markRequestStart();
WeavingContext.setWeaver(context.getAttribute("ScriptingWeaver"));
WeavingContext.setRefreshContext((RefreshContext) context.getAttribute("RefreshContext"));
@@ -49,7 +51,28 @@
}
public void destroy() {
+ markRequestEnd();
WeavingContext.clean();
}
+
+
+ //we mark the request beginning and end for further synchronisation issues
+ private final AtomicInteger getRequestCnt() {
+ return (AtomicInteger) context.getAttribute(ScriptingConst.CTX_REQUEST_CNT);
+ }
+
+
+ private int markRequestStart() {
+ return getRequestCnt().incrementAndGet();
+ }
+
+ private int markRequestEnd() {
+ return getRequestCnt().decrementAndGet();
+ }
+
+ private int concurrentRequests() {
+ return getRequestCnt().get();
+ }
+
}
\ No newline at end of file
Modified: myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java?rev=890767&r1=890766&r2=890767&view=diff
==============================================================================
--- myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java (original)
+++ myfaces/extensions/scripting/trunk/core/core/src/main/java/org/apache/myfaces/scripting/servlet/StartupServletContextPluginChainLoader.java Tue Dec 15 11:27:36 2009
@@ -26,10 +26,12 @@
import org.apache.myfaces.scripting.core.util.ClassUtils;
import org.apache.myfaces.scripting.core.util.WeavingContext;
import org.apache.myfaces.scripting.api.ScriptingWeaver;
+import org.apache.myfaces.scripting.api.ScriptingConst;
import org.apache.myfaces.scripting.refresh.RefreshContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContext;
+import java.util.concurrent.atomic.AtomicInteger;
/**
* @author werpu
@@ -46,6 +48,8 @@
ServletContext servletContext = servletContextEvent.getServletContext();
if (servletContext == null) return;
+ servletContext.setAttribute(ScriptingConst.CTX_REQUEST_CNT, new AtomicInteger(0));
+
CustomChainLoader loader = new CustomChainLoader(servletContext);
ClassUtils.addClassLoadingExtension(loader, true);
ScriptingWeaver weaver = loader.getScriptingWeaver();