cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java
luehe 2003/03/31 13:38:46 Modified:jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java Log: Clarified javadoc of findAlias Revision ChangesPath 1.19 +9 -7 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java Index: JspContextWrapper.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- JspContextWrapper.java8 Mar 2003 00:58:09 - 1.18 +++ JspContextWrapper.java31 Mar 2003 21:38:46 - 1.19 @@ -481,10 +481,12 @@ } /** - * Find the attribute that variable is alised to. - * @param varName a variable - * @return if varName is an alias, then the aliased variable - * otherwise varName + * Checks to see if the given variable name is used as an alias, and if so, + * returns the variable name for which it is used as an alias. + * + * @param varName The variable name to check + * @return The variable name for which varName is used as an alias, or + * varName if it is not being used as an alias */ private String findAlias(String varName) { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java
luehe 2003/03/07 16:58:09 Modified:jasper2/src/share/org/apache/jasper/compiler Generator.java jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java Log: Removed page -- tag synchronization points, as agreed by JSR-152-EG Revision ChangesPath 1.173 +3 -23 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java Index: Generator.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java,v retrieving revision 1.172 retrieving revision 1.173 diff -u -r1.172 -r1.173 --- Generator.java6 Mar 2003 17:49:45 - 1.172 +++ Generator.java8 Mar 2003 00:58:09 - 1.173 @@ -1822,18 +1822,8 @@ } else { out.printil(_jspx_sout = null;); } - out.printil(try {); - out.pushIndent(); out.printin(toGetterMethod(n.getTextAttribute(fragment))); out.println(.invoke(_jspx_sout);); - out.popIndent(); - out.printil( } finally { ); - out.pushIndent(); - // Copy page scope of invoking page back to virtual page scope of - // tag file - out.printil(((org.apache.jasper.runtime.JspContextWrapper) this.jspContext).syncAfterInvoke();); - out.popIndent(); - out.printil(}); // Store varReader in appropriate scope if (varReaderAttr != null || varAttr != null) { @@ -1868,20 +1858,10 @@ } else { out.printil(_jspx_sout = null;); } - out.printil(try {); - out.pushIndent(); out.printil(if (getJspBody() != null)); out.pushIndent(); out.printil(getJspBody().invoke(_jspx_sout);); out.popIndent(); - out.popIndent(); - out.printil( } finally { ); - out.pushIndent(); - // Copy page scope of invoking page back to virtual page scope of - // tag file - out.printil(((org.apache.jasper.runtime.JspContextWrapper) this.jspContext).syncAfterInvoke();); - out.popIndent(); - out.printil(}); // Store varReader in appropriate scope if (varReaderAttr != null || varAttr != null) { 1.18 +3 -48 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java Index: JspContextWrapper.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- JspContextWrapper.java15 Feb 2003 00:24:22 - 1.17 +++ JspContextWrapper.java8 Mar 2003 00:58:09 - 1.18 @@ -383,7 +383,6 @@ * Synchronize variables at begin of tag file */ public void syncBeginTagFile() { - copyPageToTagScope(VariableInfo.AT_BEGIN); saveNestedVariables(); } @@ -396,56 +395,12 @@ } /** - * Synchronize variables after fragment invokation - */ -public void syncAfterInvoke() { - copyPageToTagScope(VariableInfo.NESTED); - copyPageToTagScope(VariableInfo.AT_BEGIN); -} - -/** * Synchronize variables at end of tag file */ public void syncEndTagFile() { copyTagToPageScope(VariableInfo.AT_BEGIN); copyTagToPageScope(VariableInfo.AT_END); restoreNestedVariables(); -} - - - -/** - * Copies the variables of the given scope from the page scope of the - * invoking JSP context to the virtual page scope of this JSP context - * wrapper. - * - * @param scope variable scope (one of NESTED or AT_BEGIN) - */ -private void copyPageToTagScope(int scope) { - Iterator iter = null; - - switch (scope) { - case VariableInfo.NESTED: - if (nestedVars != null) { - iter = nestedVars.iterator(); - } - break; - case VariableInfo.AT_BEGIN: - if (atBeginVars != null) { - iter = atBeginVars.iterator(); - } - break; - } - - while ((iter != null) iter.hasNext()) { - String varName = (String) iter.next(); - String aliasName = findAlias(varName); - - Object obj = invokingJspCtxt.getAttribute(aliasName); - if (obj != null) { - setAttribute(varName, obj); - } - } } /** - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java PageContextImpl.java
luehe 2003/02/14 16:24:23 Modified:jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java PageContextImpl.java Log: Changed findAttribute(name), removeAttribute(name), removeAttribute(name, scope), and getAttributesScope(name) to throw NPE if 'name' argument is null Revision ChangesPath 1.17 +27 -3 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java Index: JspContextWrapper.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- JspContextWrapper.java13 Feb 2003 23:26:42 - 1.16 +++ JspContextWrapper.java15 Feb 2003 00:24:22 - 1.17 @@ -211,6 +211,12 @@ } public Object findAttribute(String name) { + + if (name == null) { + throw new NullPointerException( + Localizer.getMessage(jsp.error.attribute.null_name)); + } + Object o = pageAttributes.get(name); if (o == null) { o = invokingJspCtxt.getAttribute(name, REQUEST_SCOPE); @@ -228,6 +234,12 @@ } public void removeAttribute(String name) { + + if (name == null) { + throw new NullPointerException( + Localizer.getMessage(jsp.error.attribute.null_name)); + } + pageAttributes.remove(name); invokingJspCtxt.removeAttribute(name, REQUEST_SCOPE); if (getSession() != null) { @@ -237,6 +249,12 @@ } public void removeAttribute(String name, int scope) { + + if (name == null) { + throw new NullPointerException( + Localizer.getMessage(jsp.error.attribute.null_name)); + } + if (scope == PAGE_SCOPE){ pageAttributes.remove(name); } else { @@ -245,6 +263,12 @@ } public int getAttributesScope(String name) { + + if (name == null) { + throw new NullPointerException( + Localizer.getMessage(jsp.error.attribute.null_name)); + } + if (pageAttributes.get(name) != null) { return PAGE_SCOPE; } else { 1.44 +27 -3 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/PageContextImpl.java Index: PageContextImpl.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/PageContextImpl.java,v retrieving revision 1.43 retrieving revision 1.44 diff -u -r1.43 -r1.44 --- PageContextImpl.java 13 Feb 2003 23:26:42 - 1.43 +++ PageContextImpl.java 15 Feb 2003 00:24:22 - 1.44 @@ -354,6 +354,12 @@ } public void removeAttribute(String name, int scope) { + + if (name == null) { + throw new NullPointerException( + Localizer.getMessage(jsp.error.attribute.null_name)); + } + switch (scope) { case PAGE_SCOPE: attributes.remove(name); @@ -381,6 +387,12 @@ } public int getAttributesScope(String name) { + + if (name == null) { + throw new NullPointerException( + Localizer.getMessage(jsp.error.attribute.null_name)); + } + if (attributes.get(name) != null) return PAGE_SCOPE; @@ -399,6 +411,12 @@ } public Object findAttribute(String name) { + + if (name == null) { + throw new NullPointerException( + Localizer.getMessage(jsp.error.attribute.null_name)); + } + Object o = attributes.get(name); if (o != null) return o; @@ -441,6 +459,12 @@ } public void removeAttribute(String name) { + + if (name == null) { + throw new NullPointerException( + Localizer.getMessage(jsp.error.attribute.null_name)); + } + try { removeAttribute(name, PAGE_SCOPE); removeAttribute(name, REQUEST_SCOPE); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java
luehe 2003/02/13 15:04:26 Modified:jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java Log: Implemented semantics on JspContextWrapper that if the attribute value passed to setAttribute is null, this has the same effect as calling removeAttribute. Revision ChangesPath 1.15 +16 -8 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java Index: JspContextWrapper.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- JspContextWrapper.java7 Feb 2003 02:51:32 - 1.14 +++ JspContextWrapper.java13 Feb 2003 23:04:26 - 1.15 @@ -163,15 +163,23 @@ return invokingJspCtxt.getAttribute(name, scope); } -public void setAttribute(String name, Object attribute) { - pageAttributes.put(name, attribute); +public void setAttribute(String name, Object value) { + if (value != null) { + pageAttributes.put(name, value); + } else { + removeAttribute(name, PAGE_SCOPE); + } } -public void setAttribute(String name, Object o, int scope) { +public void setAttribute(String name, Object value, int scope) { if (scope == PAGE_SCOPE) { - pageAttributes.put(name, o); + if (value != null) { + pageAttributes.put(name, value); + } else { + removeAttribute(name, PAGE_SCOPE); + } } else { - invokingJspCtxt.setAttribute(name, o, scope); + invokingJspCtxt.setAttribute(name, value, scope); } } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java PageContextImpl.java
luehe 2003/02/13 15:26:43 Modified:jasper2/src/share/org/apache/jasper/resources messages.properties jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java PageContextImpl.java Log: Implemented semantics for JspContextWrapper that if the name argument passed to getAttribute or setAttribute is null, a NPE must be thrown. Revision ChangesPath 1.93 +2 -1 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages.properties Index: messages.properties === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/resources/messages.properties,v retrieving revision 1.92 retrieving revision 1.93 diff -u -r1.92 -r1.93 --- messages.properties 13 Feb 2003 02:41:26 - 1.92 +++ messages.properties 13 Feb 2003 23:26:42 - 1.93 @@ -364,3 +364,4 @@ jsp.error.variable.alias=Both or none of the name-from-attribute and alias attributes can be specified in a variable directive jsp.error.prelude.xml=The JSP document {0} has a prelude ({1}) associated with it jsp.error.coda.xml=The JSP document {0} has a coda ({1}) associated with it +jsp.error.attribute.null_name=Null attribute name 1.16 +30 -3 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java Index: JspContextWrapper.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- JspContextWrapper.java13 Feb 2003 23:04:26 - 1.15 +++ JspContextWrapper.java13 Feb 2003 23:26:42 - 1.16 @@ -87,8 +87,11 @@ import javax.servlet.jsp.el.ELException; import javax.servlet.jsp.el.ExpressionEvaluator; import javax.servlet.jsp.el.VariableResolver; + import org.apache.commons.el.VariableResolverImpl; +import org.apache.jasper.compiler.Localizer; + /** * Implementation of a JSP Context Wrapper. * @@ -152,10 +155,22 @@ } public Object getAttribute(String name) { + + if (name == null) { + throw new NullPointerException( + Localizer.getMessage(jsp.error.attribute.null_name)); + } + return pageAttributes.get(name); } public Object getAttribute(String name, int scope) { + + if (name == null) { + throw new NullPointerException( + Localizer.getMessage(jsp.error.attribute.null_name)); + } + if (scope == PAGE_SCOPE) { return pageAttributes.get(name); } @@ -164,6 +179,12 @@ } public void setAttribute(String name, Object value) { + + if (name == null) { + throw new NullPointerException( + Localizer.getMessage(jsp.error.attribute.null_name)); + } + if (value != null) { pageAttributes.put(name, value); } else { @@ -172,6 +193,12 @@ } public void setAttribute(String name, Object value, int scope) { + + if (name == null) { + throw new NullPointerException( + Localizer.getMessage(jsp.error.attribute.null_name)); + } + if (scope == PAGE_SCOPE) { if (value != null) { pageAttributes.put(name, value); 1.43 +19 -10 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/PageContextImpl.java Index: PageContextImpl.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/PageContextImpl.java,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- PageContextImpl.java 11 Feb 2003 21:43:58 - 1.42 +++ PageContextImpl.java 13 Feb 2003 23:26:42 - 1.43 @@ -265,14 +265,20 @@ } public Object getAttribute(String name) { - if (name == null) - throw new NullPointerException(Null name); + + if (name == null) { + throw new NullPointerException( + Localizer.getMessage(jsp.error.attribute.null_name)); + } return attributes.get(name); } public Object getAttribute(String name, int scope) { - if (name == null) - throw new NullPointerException(Null name); + + if (name == null) { + throw new NullPointerException( + Localizer.getMessage(jsp.error.attribute.null_name)); + } switch (scope) { case PAGE_SCOPE: @@ -297,8 +303,10 @@ } public void setAttribute(String name, Object
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java
kinman 2003/02/06 18:51:32 Modified:jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java Log: - Fix 16865: JspContextWrapper needs its own variableResolver Revision ChangesPath 1.14 +13 -11 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java Index: JspContextWrapper.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- JspContextWrapper.java28 Jan 2003 22:06:28 - 1.13 +++ JspContextWrapper.java7 Feb 2003 02:51:32 - 1.14 @@ -87,6 +87,7 @@ import javax.servlet.jsp.el.ELException; import javax.servlet.jsp.el.ExpressionEvaluator; import javax.servlet.jsp.el.VariableResolver; +import org.apache.commons.el.VariableResolverImpl; /** * Implementation of a JSP Context Wrapper. @@ -120,6 +121,12 @@ private Hashtable originalNestedVars; +/** + * The variable resolver, for evaluating EL expressions. + */ +private VariableResolverImpl variableResolver += new VariableResolverImpl(this); + public JspContextWrapper(JspContext jspContext, ArrayList nestedVars, ArrayList atBeginVars, ArrayList atEndVars, Map aliases) { @@ -272,7 +279,7 @@ } public VariableResolver getVariableResolver() { - return null; // XXX + return this; } public BodyContent pushBody() { @@ -308,14 +315,9 @@ /** * VariableResolver interface */ -public Object resolveVariable( String pName ) -throws ELException +public Object resolveVariable( String pName ) throws ELException { - if (invokingJspCtxt instanceof PageContextImpl) { - return ((PageContextImpl) invokingJspCtxt).resolveVariable(pName); - } - - return ((JspContextWrapper) invokingJspCtxt).resolveVariable(pName); +return variableResolver.resolveVariable(pName); } /** - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java
kinman 2003/01/28 14:06:28 Modified:jasper2/src/share/org/apache/jasper/compiler Collector.java Generator.java jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java Log: - Encapsulate scope variable synchromizations in JspContextWrapper. - Aliases should not generate scripting variables. Revision ChangesPath 1.8 +5 -4 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Collector.java Index: Collector.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Collector.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- Collector.java30 Oct 2002 17:41:22 - 1.7 +++ Collector.java28 Jan 2003 22:06:27 - 1.8 @@ -188,8 +188,9 @@ if( (n instanceof Node.CustomTag) !hasScriptingVars) { Node.CustomTag ct = (Node.CustomTag)n; - hasScriptingVars = ct.getVariableInfos().length 0 - || ct.getTagVariableInfos().length 0; + hasScriptingVars = ct.getTagFileInfo() != null + (ct.getVariableInfos().length 0 || + ct.getTagVariableInfos().length 0); } // Record if the tag element and its body contains any scriptlet. 1.156 +32 -18 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java Index: Generator.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java,v retrieving revision 1.155 retrieving revision 1.156 diff -u -r1.155 -r1.156 --- Generator.java28 Jan 2003 01:42:57 - 1.155 +++ Generator.java28 Jan 2003 22:06:27 - 1.156 @@ -291,6 +291,10 @@ varName = n.getTagData().getAttributeString( tagVarInfos[i].getNameFromAttribute()); } + else if (tagVarInfos[i].getNameFromAttribute() != null) { + // alias + continue; + } String tmpVarName = _jspx_ + varName + _ + n.getCustomNestingLevel(); if (!vars.contains(tmpVarName)) { @@ -1793,8 +1797,7 @@ // Copy virtual page scope of tag file to page scope of invoking // page - out.printil(((org.apache.jasper.runtime.JspContextWrapper) this.jspContext).copyTagToPageScope(javax.servlet.jsp.tagext.VariableInfo.NESTED);); - out.printil(((org.apache.jasper.runtime.JspContextWrapper) this.jspContext).copyTagToPageScope(javax.servlet.jsp.tagext.VariableInfo.AT_BEGIN);); + out.printil(((org.apache.jasper.runtime.JspContextWrapper) this.jspContext).syncBeforeInvoke();); // Invoke fragment String varReaderAttr = n.getTextAttribute(varReader); @@ -1813,8 +1816,7 @@ out.pushIndent(); // Copy page scope of invoking page back to virtual page scope of // tag file - out.printil(((org.apache.jasper.runtime.JspContextWrapper) this.jspContext).copyPageToTagScope(javax.servlet.jsp.tagext.VariableInfo.NESTED);); - out.printil(((org.apache.jasper.runtime.JspContextWrapper) this.jspContext).copyPageToTagScope(javax.servlet.jsp.tagext.VariableInfo.AT_BEGIN);); + out.printil(((org.apache.jasper.runtime.JspContextWrapper) this.jspContext).syncAfterInvoke();); out.popIndent(); out.printil(}); @@ -1841,8 +1843,7 @@ // Copy virtual page scope of tag file to page scope of invoking // page - out.printil(((org.apache.jasper.runtime.JspContextWrapper) this.jspContext).copyTagToPageScope(javax.servlet.jsp.tagext.VariableInfo.NESTED);); - out.printil(((org.apache.jasper.runtime.JspContextWrapper) this.jspContext).copyTagToPageScope(javax.servlet.jsp.tagext.VariableInfo.AT_BEGIN);); + out.printil(((org.apache.jasper.runtime.JspContextWrapper) this.jspContext).syncBeforeInvoke();); // Invoke body String varReaderAttr = n.getTextAttribute(varReader); @@ -1863,8 +1864,7 @@ out.pushIndent(); // Copy page scope of invoking page back to virtual page scope of // tag file - out.printil(((org.apache.jasper.runtime.JspContextWrapper) this.jspContext).copyPageToTagScope(javax.servlet.jsp.tagext.VariableInfo.NESTED);); - out.printil(((org.apache.jasper.runtime.JspContextWrapper)
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java
kinman 2003/01/27 16:13:39 Modified:jasper2/src/share/org/apache/jasper/compiler Generator.java TagFileProcessor.java jasper2/src/share/org/apache/jasper/resources messages.properties messages_es.properties messages_fr.properties messages_ja.properties jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java Log: - Implements name-from-attribute and alias in variable directives in tag file Revision ChangesPath 1.154 +66 -19 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java Index: Generator.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java,v retrieving revision 1.153 retrieving revision 1.154 diff -u -r1.153 -r1.154 --- Generator.java22 Jan 2003 20:54:54 - 1.153 +++ Generator.java28 Jan 2003 00:13:37 - 1.154 @@ -2478,6 +2478,43 @@ return attrValue; } + /** + * Generate code to create a map for the alias variables + * @return the name of the map + */ + private String generateAliasMap(Node.CustomTag n, String tagHandlerVar) + throws JasperException { + + TagInfo tagInfo = n.getTagInfo(); + TagVariableInfo[] tagVars = tagInfo.getTagVariableInfos(); + String aliasMapVar = null; + + boolean aliasSeen = false; + for (int i=0; itagVars.length; i++) { + + String nameFrom = tagVars[i].getNameFromAttribute(); + if (nameFrom != null) { + String aliaseName = n.getAttributeValue(nameFrom); + if (aliaseName == null) continue; + + if ( ! aliasSeen ) { + out.printin(java.util.HashMap ); + aliasMapVar = tagHandlerVar+_aliasMap; + out.print(aliasMapVar); + out.println( = new java.util.HashMap();); + aliasSeen = true; + } + out.printin(aliasMapVar); + out.print(.put(); + out.print(quote(tagVars[i].getNameGiven())); + out.print(, ); + out.print(quote(aliaseName)); + out.println();); + } + } + return aliasMapVar; + } + private void generateSetters(Node.CustomTag n, String tagHandlerVar, TagHandlerInfo handlerInfo, @@ -2485,10 +2522,15 @@ throws JasperException { // Set context - out.printin(tagHandlerVar); if (simpleTag) { - out.println(.setJspContext(pageContext);); + // Generate alias map + String aliasMapVar= generateAliasMap(n, tagHandlerVar); + out.printin(tagHandlerVar); + out.print(.setJspContext(pageContext, ); + out.print(aliasMapVar); + out.println();); } else { + out.printin(tagHandlerVar); out.println(.setPageContext(pageContext);); } @@ -3132,7 +3174,12 @@ * sync AT_BEGIN and AT_END scripting variables. */ private void generateSetJspContext(TagInfo tagInfo) { -out.printil(public void setJspContext( JspContext ctx ) {); + + boolean nestedSeen = false; + boolean atBeginSeen = false; + boolean atEndSeen = false; + +out.printil(public void setJspContext(JspContext ctx, java.util.Map aliasMap) {); out.pushIndent(); out.printil(super.setJspContext(ctx);); TagVariableInfo[] tagVars = tagInfo.getTagVariableInfos(); @@ -3144,26 +3191,26 @@ switch(tagVars[i].getScope()) { case VariableInfo.NESTED: - out.printil(if (_jspx_nested == null)); - out.pushIndent(); - out.printil(_jspx_nested = new java.util.ArrayList();); - out.popIndent(); + if ( ! nestedSeen ) { + out.printil(_jspx_nested = new java.util.ArrayList();); + nestedSeen = true; + } out.printin(_jspx_nested.add(); break; case VariableInfo.AT_BEGIN: - out.printil(if (_jspx_at_begin == null)); - out.pushIndent(); - out.printil(_jspx_at_begin = new java.util.ArrayList();); - out.popIndent(); + if ( ! atBeginSeen ) { + out.printil(_jspx_at_begin = new java.util.ArrayList();); + atBeginSeen = true; + }
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java
kinman 2003/01/27 17:42:57 Modified:jasper2/src/share/org/apache/jasper/compiler Generator.java jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java Log: - Suppress generation of alias map if there is no aliases. Revision ChangesPath 1.155 +33 -10 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java Index: Generator.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java,v retrieving revision 1.154 retrieving revision 1.155 diff -u -r1.154 -r1.155 --- Generator.java28 Jan 2003 00:13:37 - 1.154 +++ Generator.java28 Jan 2003 01:42:57 - 1.155 @@ -2487,7 +2487,7 @@ TagInfo tagInfo = n.getTagInfo(); TagVariableInfo[] tagVars = tagInfo.getTagVariableInfos(); - String aliasMapVar = null; + String aliasMapVar = null; boolean aliasSeen = false; for (int i=0; itagVars.length; i++) { @@ -2526,9 +2526,14 @@ // Generate alias map String aliasMapVar= generateAliasMap(n, tagHandlerVar); out.printin(tagHandlerVar); - out.print(.setJspContext(pageContext, ); - out.print(aliasMapVar); - out.println();); + if (aliasMapVar == null) { + out.print(.setJspContext(pageContext);); + } + else { + out.print(.setJspContext(pageContext, ); + out.print(aliasMapVar); + out.println();); + } } else { out.printin(tagHandlerVar); out.println(.setPageContext(pageContext);); @@ -3179,10 +3184,24 @@ boolean atBeginSeen = false; boolean atEndSeen = false; -out.printil(public void setJspContext(JspContext ctx, java.util.Map aliasMap) {); + // Determine if there is any aliases + boolean aliasSeen = false; + TagVariableInfo[] tagVars = tagInfo.getTagVariableInfos(); + for (int i=0; itagVars.length; i++) { + if (tagVars[i].getNameFromAttribute() != null) { + aliasSeen = true; + break; + } + } + + if (aliasSeen) { +out.printil(public void setJspContext(JspContext ctx, java.util.Map aliasMap) {); + } + else { + out.printil(public void setJspContext(JspContext ctx) {); + } out.pushIndent(); out.printil(super.setJspContext(ctx);); - TagVariableInfo[] tagVars = tagInfo.getTagVariableInfos(); out.printil(java.util.ArrayList _jspx_nested = null;); out.printil(java.util.ArrayList _jspx_at_begin = null;); out.printil(java.util.ArrayList _jspx_at_end = null;); @@ -3218,7 +3237,11 @@ out.print(quote(tagVars[i].getNameGiven())); out.println();); } - out.printil(this.jspContext = new org.apache.jasper.runtime.JspContextWrapper(ctx, _jspx_nested, _jspx_at_begin, _jspx_at_end, aliasMap);); + if (aliasSeen) { + out.printil(this.jspContext = new org.apache.jasper.runtime.JspContextWrapper(ctx, _jspx_nested, _jspx_at_begin, _jspx_at_end, aliasMap);); + } else { + out.printil(this.jspContext = new org.apache.jasper.runtime.JspContextWrapper(ctx, _jspx_nested, _jspx_at_begin, _jspx_at_end, null);); + } out.popIndent(); out.printil(}); out.println(); 1.12 +6 -3 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java Index: JspContextWrapper.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- JspContextWrapper.java28 Jan 2003 00:13:39 - 1.11 +++ JspContextWrapper.java28 Jan 2003 01:42:57 - 1.12 @@ -438,6 +438,9 @@ */ private String findAlias(String varName) { + if (aliases == null) + return varName; + String alias = (String) aliases.get(varName); if (alias == null) { return varName; -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java
luehe 2002/12/03 15:17:48 Modified:jasper2/src/share/org/apache/jasper/compiler Generator.java jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java Log: Performance improvement: Pass ArrayList (instead of Vector) of scripting variables to JSP Context Wrapper constructor: ArrayList is not synchronized. Revision ChangesPath 1.134 +12 -12 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java Index: Generator.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java,v retrieving revision 1.133 retrieving revision 1.134 diff -u -r1.133 -r1.134 --- Generator.java28 Nov 2002 04:18:08 - 1.133 +++ Generator.java3 Dec 2002 23:17:48 - 1.134 @@ -3043,9 +3043,9 @@ out.pushIndent(); out.printil(super.setJspContext(ctx);); TagVariableInfo[] tagVars = tagInfo.getTagVariableInfos(); - out.printil(java.util.Vector _jspx_nested = null;); - out.printil(java.util.Vector _jspx_at_begin = null;); - out.printil(java.util.Vector _jspx_at_end = null;); + out.printil(java.util.ArrayList _jspx_nested = null;); + out.printil(java.util.ArrayList _jspx_at_begin = null;); + out.printil(java.util.ArrayList _jspx_at_end = null;); for (int i=0; itagVars.length; i++) { @@ -3053,25 +3053,25 @@ case VariableInfo.NESTED: out.printil(if (_jspx_nested == null)); out.pushIndent(); - out.printil(_jspx_nested = new java.util.Vector();); + out.printil(_jspx_nested = new java.util.ArrayList();); out.popIndent(); - out.printin(_jspx_nested.addElement(); + out.printin(_jspx_nested.add(); break; case VariableInfo.AT_BEGIN: out.printil(if (_jspx_at_begin == null)); out.pushIndent(); - out.printil(_jspx_at_begin = new java.util.Vector();); + out.printil(_jspx_at_begin = new java.util.ArrayList();); out.popIndent(); - out.printin(_jspx_at_begin.addElement(); + out.printin(_jspx_at_begin.add(); break; case VariableInfo.AT_END: out.printil(if (_jspx_at_end == null)); out.pushIndent(); - out.printil(_jspx_at_end = new java.util.Vector();); + out.printil(_jspx_at_end = new java.util.ArrayList();); out.popIndent(); - out.printin(_jspx_at_end.addElement(); + out.printin(_jspx_at_end.add(); break; } // switch 1.9 +12 -12 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java Index: JspContextWrapper.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- JspContextWrapper.java13 Nov 2002 17:40:41 - 1.8 +++ JspContextWrapper.java3 Dec 2002 23:17:48 - 1.9 @@ -66,7 +66,7 @@ import java.util.Enumeration; import java.util.Hashtable; -import java.util.Vector; +import java.util.ArrayList; import java.util.Iterator; import javax.servlet.Servlet; @@ -106,19 +106,19 @@ private transient Hashtable pageAttributes; -// Vector of NESTED scripting variables -private Vector nestedVars; +// ArrayList of NESTED scripting variables +private ArrayList nestedVars; -// Vector of AT_BEGIN scripting variables -private Vector atBeginVars; +// ArrayList of AT_BEGIN scripting variables +private ArrayList atBeginVars; -// Vector of AT_END scripting variables -private Vector atEndVars; +// ArrayList of AT_END scripting variables +private ArrayList atEndVars; private Hashtable originalNestedVars; -public JspContextWrapper(JspContext jspContext, Vector nestedVars, - Vector atBeginVars, Vector atEndVars) { +public JspContextWrapper(JspContext jspContext, ArrayList nestedVars, + ArrayList atBeginVars, ArrayList atEndVars) { this.invokingJspCtxt = (PageContext) jspContext; this.nestedVars = nestedVars; this.atBeginVars = atBeginVars; -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java
luehe 2002/11/13 09:40:43 Modified:jasper2/src/share/org/apache/jasper/compiler Generator.java jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java Log: JspContextWrapper: Allocate vectors for nested, at_begin, and at_end variables only if needed. Revision ChangesPath 1.125 +22 -6 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java Index: Generator.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/Generator.java,v retrieving revision 1.124 retrieving revision 1.125 diff -u -r1.124 -r1.125 --- Generator.java8 Nov 2002 19:55:47 - 1.124 +++ Generator.java13 Nov 2002 17:40:38 - 1.125 -3031,19 +3031,35 out.printil(public void setJspContext( JspContext ctx ) {); out.pushIndent(); out.printil(super.setJspContext(ctx);); - out.printil(java.util.Vector _jspx_nested = new java.util.Vector();); - out.printil(java.util.Vector _jspx_at_begin = new java.util.Vector();); - out.printil(java.util.Vector _jspx_at_end = new java.util.Vector();); TagVariableInfo[] tagVars = tagInfo.getTagVariableInfos(); + out.printil(java.util.Vector _jspx_nested = null;); + out.printil(java.util.Vector _jspx_at_begin = null;); + out.printil(java.util.Vector _jspx_at_end = null;); + for (int i=0; itagVars.length; i++) { + switch(tagVars[i].getScope()) { case VariableInfo.NESTED: + out.printil(if (_jspx_nested == null)); + out.pushIndent(); + out.printil(_jspx_nested = new java.util.Vector();); + out.popIndent(); out.printin(_jspx_nested.addElement(); break; + case VariableInfo.AT_BEGIN: + out.printil(if (_jspx_at_begin == null)); + out.pushIndent(); + out.printil(_jspx_at_begin = new java.util.Vector();); + out.popIndent(); out.printin(_jspx_at_begin.addElement(); break; + case VariableInfo.AT_END: + out.printil(if (_jspx_at_end == null)); + out.pushIndent(); + out.printil(_jspx_at_end = new java.util.Vector();); + out.popIndent(); out.printin(_jspx_at_end.addElement(); break; } // switch 1.8 +41 -26 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java Index: JspContextWrapper.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- JspContextWrapper.java1 Nov 2002 01:13:47 - 1.7 +++ JspContextWrapper.java13 Nov 2002 17:40:41 - 1.8 -124,8 +124,9 this.atBeginVars = atBeginVars; this.atEndVars = atEndVars; this.pageAttributes = new Hashtable(16); - this.originalNestedVars = new Hashtable(nestedVars.size()); - + if (nestedVars != null) { + this.originalNestedVars = new Hashtable(nestedVars.size()); + } copyPageToTagScope(VariableInfo.AT_BEGIN); saveNestedVariables(); } -326,14 +327,18 switch (scope) { case VariableInfo.NESTED: - iter = nestedVars.iterator(); + if (nestedVars != null) { + iter = nestedVars.iterator(); + } break; case VariableInfo.AT_BEGIN: - iter = atBeginVars.iterator(); + if (atBeginVars != null) { + iter = atBeginVars.iterator(); + } break; } - while (iter.hasNext()) { + while ((iter != null) iter.hasNext()) { String varName = (String) iter.next(); Object obj = invokingJspCtxt.getAttribute(varName); if (obj != null) { -353,17 +358,23 switch (scope) { case VariableInfo.NESTED: - iter = nestedVars.iterator(); + if (nestedVars != null) { + iter = nestedVars.iterator(); + } break; case VariableInfo.AT_BEGIN: - iter = atBeginVars.iterator(); + if (atBeginVars != null) { + iter = atBeginVars.iterator(); + } break; case VariableInfo.AT_END: - iter = atEndVars.iterator(); + if (atEndVars != null) { + iter = atEndVars.iterator(); + } break; } - while (iter.hasNext()) { + while ((iter != null) iter.hasNext()) { String varName =
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java
luehe 2002/10/31 17:13:48 Modified:jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java Log: - Fixed removeAttribute(String name). - If variable doesn't exist in the tag scope, remove it from the calling page scope during synchronization. Revision ChangesPath 1.7 +11 -5 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java Index: JspContextWrapper.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- JspContextWrapper.java28 Oct 2002 18:16:21 - 1.6 +++ JspContextWrapper.java1 Nov 2002 01:13:47 - 1.7 -180,8 +180,12 } public void removeAttribute(String name) { - removeAttribute(name, PAGE_SCOPE); - invokingJspCtxt.removeAttribute(name); + pageAttributes.remove(name); + invokingJspCtxt.removeAttribute(name, REQUEST_SCOPE); + if (getSession() != null) { + invokingJspCtxt.removeAttribute(name, SESSION_SCOPE); + } + invokingJspCtxt.removeAttribute(name, APPLICATION_SCOPE); } public void removeAttribute(String name, int scope) { -364,6 +368,8 Object obj = getAttribute(varName); if (obj != null) { invokingJspCtxt.setAttribute(varName, obj); + } else { + invokingJspCtxt.removeAttribute(varName, PAGE_SCOPE); } } } -- To unsubscribe, e-mail: mailto:tomcat-dev-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-dev-help;jakarta.apache.org
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java
luehe 2002/10/03 09:50:05 Modified:jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java Log: Changed class comment Revision ChangesPath 1.4 +9 -5 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java Index: JspContextWrapper.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- JspContextWrapper.java12 Sep 2002 20:48:17 - 1.3 +++ JspContextWrapper.java3 Oct 2002 16:50:05 - 1.4 @@ -84,8 +84,12 @@ import javax.servlet.jsp.el.VariableResolver; /** - * A wrapper class for PageContext class used for providing a tempory - * page scope for invoking a fragment + * Implementation of a JSP Context Wrapper. + * + * The JSP Context Wrapper is a JspContext created and maintained by a tag + * handler implementation. It wraps the Invoking JSP Context, that is, the + * JspContext instance passed to the tag handler by the invoking page via + * setJspContext(). * * @author Kin-man Chung */ -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java
kinman 2002/09/12 13:48:17 Modified:jasper2/src/share/org/apache/jasper/compiler TagFileProcessor.java jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java Log: - pageInfo can be null if the page is not compiled. - JspContextWrapper needs to implement VariableResolver interface. Revision ChangesPath 1.27 +7 -5 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/TagFileProcessor.java Index: TagFileProcessor.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/compiler/TagFileProcessor.java,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- TagFileProcessor.java 11 Sep 2002 21:50:02 - 1.26 +++ TagFileProcessor.java 12 Sep 2002 20:48:17 - 1.27 @@ -387,9 +387,11 @@ // dependant list. PageInfo pageInfo = wrapper.getJspEngineContext().getCompiler(). getPageInfo(); - Iterator iter = pageInfo.getDependants().iterator(); - if (iter.hasNext()) { - parentPageInfo.addDependant((String)iter.next()); + if (pageInfo != null) { + Iterator iter = pageInfo.getDependants().iterator(); + if (iter.hasNext()) { + parentPageInfo.addDependant((String)iter.next()); + } } return tagClass; 1.3 +20 -4 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java Index: JspContextWrapper.java === RCS file: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- JspContextWrapper.java19 Aug 2002 16:54:17 - 1.2 +++ JspContextWrapper.java12 Sep 2002 20:48:17 - 1.3 @@ -79,6 +79,7 @@ import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.BodyContent; import javax.servlet.jsp.JspException; +import javax.servlet.jsp.el.ELException; import javax.servlet.jsp.el.ExpressionEvaluator; import javax.servlet.jsp.el.VariableResolver; @@ -88,7 +89,7 @@ * * @author Kin-man Chung */ -public class JspContextWrapper extends PageContext { +public class JspContextWrapper extends PageContext implements VariableResolver { private PageContext pageContext; private transient Hashtable pageAttributes; @@ -248,5 +249,20 @@ throws IOException, ServletException { pageContext.handlePageException(t); +} + +/** + * VariableResolver interface + */ +public Object resolveVariable( String pName, Object pContext ) +throws ELException +{ + if (pageContext instanceof PageContextImpl) { + return ((PageContextImpl)pageContext). + resolveVariable(pName, pContext); + } + + return ((JspContextWrapper)pageContext). + resolveVariable(pName, pContext); } } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java
kinman 2002/08/12 15:55:39 Added: jasper2/src/share/org/apache/jasper/runtime JspContextWrapper.java Log: - Forgot to add this one. Revision ChangesPath 1.1 jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java Index: JspContextWrapper.java === /* * $Header: /home/cvs/jakarta-tomcat-jasper/jasper2/src/share/org/apache/jasper/runtime/JspContextWrapper.java,v 1.1 2002/08/12 22:55:39 kinman Exp $ * $Revision: 1.1 $ * $Date: 2002/08/12 22:55:39 $ * * * * The Apache Software License, Version 1.1 * * Copyright (c) 1999 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright *notice, this list of conditions and the following disclaimer in *the documentation and/or other materials provided with the *distribution. * * 3. The end-user documentation included with the redistribution, if *any, must include the following acknowlegement: * This product includes software developed by the *Apache Software Foundation (http://www.apache.org/). *Alternately, this acknowlegement may appear in the software itself, *if and wherever such third-party acknowlegements normally appear. * * 4. The names The Jakarta Project, Tomcat, and Apache Software *Foundation must not be used to endorse or promote products derived *from this software without prior written permission. For written *permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called Apache *nor may Apache appear in their names without prior written *permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * http://www.apache.org/. * */ package org.apache.jasper.runtime; import java.io.IOException; import java.util.Enumeration; import java.util.Hashtable; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.ServletException; import javax.servlet.http.HttpSession; import javax.servlet.jsp.JspContext; import javax.servlet.jsp.PageContext; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.BodyContent; import javax.servlet.jsp.JspException; import javax.servlet.jsp.el.ExpressionEvaluator; /** * A wrapper class for PageContext class used for providing a tempory * page scope for invoking a fragment * * @author Kin-man Chung */ public class JspContextWrapper extends PageContext { private PageContext pageContext; private transient Hashtable pageAttributes; public JspContextWrapper(JspContext jspContext) { this.pageContext = (PageContext) jspContext; this.pageAttributes = new Hashtable(16); } public void initialize(Servlet servlet, ServletRequest request, ServletResponse response, String errorPageURL, boolean needsSession, int bufferSize, boolean autoFlush) throws IOException, IllegalStateException, IllegalArgumentException { } public Object getAttribute(String name) { return pageAttributes.get(name);