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]