Author: mrdon
Date: Thu Mar 24 22:53:34 2005
New Revision: 158993

URL: http://svn.apache.org/viewcvs?view=rev&rev=158993
Log:
 * Adding support for module-specific configuration (whoops)
 * Changing comma-split algorithm to match one used by Struts for modules and 
chain

Modified:
    struts/flow/trunk/src/java/org/apache/struts/flow/FlowAction.java
    struts/flow/trunk/src/java/org/apache/struts/flow/FlowPlugIn.java

Modified: struts/flow/trunk/src/java/org/apache/struts/flow/FlowAction.java
URL: 
http://svn.apache.org/viewcvs/struts/flow/trunk/src/java/org/apache/struts/flow/FlowAction.java?view=diff&r1=158992&r2=158993
==============================================================================
--- struts/flow/trunk/src/java/org/apache/struts/flow/FlowAction.java (original)
+++ struts/flow/trunk/src/java/org/apache/struts/flow/FlowAction.java Thu Mar 
24 22:53:34 2005
@@ -48,8 +48,8 @@
      *
      [EMAIL PROTECTED]    The interpreter value
      */
-    protected JavaScriptInterpreter getInterpreter() {
-        return (JavaScriptInterpreter) 
servlet.getServletContext().getAttribute(FlowPlugIn.INTERPRETER_KEY);
+    protected JavaScriptInterpreter getInterpreter(String prefix) {
+        return (JavaScriptInterpreter) 
servlet.getServletContext().getAttribute(FlowPlugIn.INTERPRETER_KEY+"/"+prefix);
     }
     
     /**
@@ -58,8 +58,8 @@
      [EMAIL PROTECTED] script The script to load the interpeter for
      [EMAIL PROTECTED]    The interpreter value
      */
-    protected JavaScriptInterpreter getInterpreter(String script) {
-        Map map = 
(Map)servlet.getServletContext().getAttribute(FlowPlugIn.INTERPRETERS_KEY);
+    protected JavaScriptInterpreter getInterpreter(String prefix, String 
script) {
+        Map map = 
(Map)servlet.getServletContext().getAttribute(FlowPlugIn.INTERPRETERS_KEY+"/"+prefix);
         return (JavaScriptInterpreter) map.get(script);
     }
 
@@ -111,9 +111,9 @@
        
         JavaScriptInterpreter interp = null;
         if (flowMapping.getScript() == null) {
-            interp = getInterpreter();
+            interp = getInterpreter(flowMapping.getModuleConfig().getPrefix());
         } else {
-            interp = getInterpreter(flowMapping.getScript());
+            interp = getInterpreter(flowMapping.getModuleConfig().getPrefix(), 
flowMapping.getScript());
         }
 
         boolean isFlowCall = (request.getParameter("FlowCall") != null);

Modified: struts/flow/trunk/src/java/org/apache/struts/flow/FlowPlugIn.java
URL: 
http://svn.apache.org/viewcvs/struts/flow/trunk/src/java/org/apache/struts/flow/FlowPlugIn.java?view=diff&r1=158992&r2=158993
==============================================================================
--- struts/flow/trunk/src/java/org/apache/struts/flow/FlowPlugIn.java (original)
+++ struts/flow/trunk/src/java/org/apache/struts/flow/FlowPlugIn.java Thu Mar 
24 22:53:34 2005
@@ -171,25 +171,38 @@
         if ((scripts == null || scripts.length() == 0) && scriptBase == null) {
             throw new ServletException("No scripts or script base defined");
         }
+        String key = INTERPRETER_KEY+"/"+config.getPrefix();
         context = servlet.getServletContext();
         Factory.setLogger(new CommonsLogger());
         Factory.getContinuationsManager().setDefaultTimeToLive(ttl);
 
         if (scripts != null && scripts.length() > 0) {
-            StringTokenizer st = new StringTokenizer(scripts, ",");
-            List streamList = new ArrayList();
+            JavaScriptInterpreter interp = createInterpreter();
+            context.setAttribute(key, interp);
+            String path = null;
+            String paths = scripts;
             try {
-                JavaScriptInterpreter interp = createInterpreter();
-                context.setAttribute(INTERPRETER_KEY, interp);
-                while (st.hasMoreTokens()) {
-                    String scriptPath = st.nextToken().trim();
+                // Process each specified resource path
+                while (paths.length() > 0) {
+                    int comma = paths.indexOf(',');
+                    if (comma >= 0) {
+                        path = paths.substring(0, comma).trim();
+                        paths = paths.substring(comma + 1);
+                    } else {
+                        path = paths.trim();
+                        paths = "";
+                    }
+        
+                    if (path.length() < 1) {
+                        break;
+                    }
                     if (log.isInfoEnabled()) {
-                        log.info("Registering script '" + scriptPath + "'");
+                        log.info("Registering script '" + path + "'");
                     }
-                    interp.register(scriptPath);
+                    interp.register(path);
                 }
             } catch (Exception ex) {
-                throw new ServletException("Unable to create global JavaScript 
interpreter", ex);
+                throw new ServletException("Unable to create global JavaScript 
interpreter and register scripts", ex);
             }
         } else {
             Map map =
@@ -207,7 +220,7 @@
                         return interp;
                     }
                 };
-            context.setAttribute(INTERPRETERS_KEY, map);
+            context.setAttribute(key, map);
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to