Author: cziegeler Date: Mon Mar 21 01:41:23 2005 New Revision: 158428 URL: http://svn.apache.org/viewcvs?view=rev&rev=158428 Log: Possible fix for the lookup problem
Modified: cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/jxpath/JXPathCocoonContexts.java cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/BodyContent.java cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/Tag.java cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/TagSupport.java cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/TransformerTag.java cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/TransformerTagSupport.java cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/VarTagSupport.java cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/VarTransformerTagSupport.java cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/XMLConsumerTag.java cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/XMLConsumerTagSupport.java cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/XMLProducerTag.java cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/core/ForEachSupport.java cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/core/LoopTagSupport.java cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/string/LowerCaseTag.java cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/string/UpperCaseTag.java Modified: cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/jxpath/JXPathCocoonContexts.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/jxpath/JXPathCocoonContexts.java?view=diff&r1=158427&r2=158428 ============================================================================== --- cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/jxpath/JXPathCocoonContexts.java (original) +++ cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/jxpath/JXPathCocoonContexts.java Mon Mar 21 01:41:23 2005 @@ -17,9 +17,9 @@ import java.util.Map; -import org.apache.avalon.excalibur.pool.Recyclable; import org.apache.avalon.framework.context.Context; import org.apache.avalon.framework.context.Contextualizable; +import org.apache.avalon.framework.thread.ThreadSafe; import org.apache.cocoon.components.ContextHelper; import org.apache.cocoon.environment.ObjectModelHelper; import org.apache.cocoon.environment.Request; @@ -63,12 +63,13 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Volker Schmitt</a> * @version CVS $Id$ */ -public final class JXPathCocoonContexts implements Contextualizable, Recyclable { +public final class JXPathCocoonContexts implements Contextualizable, ThreadSafe { public static final String ROLE = JXPathCocoonContexts.class.getName(); + private static final String VARCONTEXT = Constants.JXPATH_CONTEXT + "/VAR"; + private static JXPathContextFactory factory; - private JXPathContext variableContext; private Context context; static { @@ -83,10 +84,15 @@ } public final JXPathContext getVariableContext() { - if (variableContext == null) { - variableContext = factory.newContext(getRequestContext(), null); + final Map objectModel = ContextHelper.getObjectModel(this.context); + + Request request = ObjectModelHelper.getRequest(objectModel); + JXPathContext context = (JXPathContext) request.getAttribute(VARCONTEXT); + if (context == null) { + context = factory.newContext(getRequestContext(), null); + request.setAttribute(VARCONTEXT, context); } - return variableContext; + return context; } /** @@ -156,10 +162,4 @@ return context; } - /* - * @see Recyclable#recycle() - */ - public void recycle() { - this.variableContext = null; - } } Modified: cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/BodyContent.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/BodyContent.java?view=diff&r1=158427&r2=158428 ============================================================================== --- cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/BodyContent.java (original) +++ cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/BodyContent.java Mon Mar 21 01:41:23 2005 @@ -24,12 +24,10 @@ public class BodyContent { private SaxBuffer content; - private XMLConsumer consumer; public BodyContent(SaxBuffer content, XMLConsumer consumer) { this.content = content; - this.consumer = consumer; } public void clearBody() { Modified: cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/Tag.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/Tag.java?view=diff&r1=158427&r2=158428 ============================================================================== --- cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/Tag.java (original) +++ cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/Tag.java Mon Mar 21 01:41:23 2005 @@ -28,9 +28,9 @@ * The Tag implementation works like a JSP Tag but generate SAX output * instead of writing to a OutputStream. The equivalent to the JSPEngine * is implemented as a Transformer. - * + * * @see org.apache.cocoon.transformation.TagTransformer - * + * * @author <a href="mailto:[EMAIL PROTECTED]">Volker Schmitt</a> * @version CVS $Id$ */ Modified: cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/TagSupport.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/TagSupport.java?view=diff&r1=158427&r2=158428 ============================================================================== --- cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/TagSupport.java (original) +++ cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/TagSupport.java Mon Mar 21 01:41:23 2005 @@ -69,10 +69,10 @@ return null; } - if ((isInterface && klass.isInstance(tag)) || klass.isAssignableFrom(tag.getClass())) + if ((isInterface && klass.isInstance(tag)) || klass.isAssignableFrom(tag.getClass())) { return tag; - else - from = tag; + } + from = tag; } } Modified: cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/TransformerTag.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/TransformerTag.java?view=diff&r1=158427&r2=158428 ============================================================================== --- cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/TransformerTag.java (original) +++ cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/TransformerTag.java Mon Mar 21 01:41:23 2005 @@ -20,8 +20,9 @@ /** * @author <a href="mailto:[EMAIL PROTECTED]">Volker Schmitt</a> - * @version CVS $Id: TransformerTag.java,v 1.3 2004/03/05 13:02:24 bdelacretaz Exp $ + * @version CVS $Id$ */ public interface TransformerTag extends XMLConsumer, XMLProducerTag { + // just a combination of the two interfaces } Modified: cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/TransformerTagSupport.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/TransformerTagSupport.java?view=diff&r1=158427&r2=158428 ============================================================================== --- cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/TransformerTagSupport.java (original) +++ cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/TransformerTagSupport.java Mon Mar 21 01:41:23 2005 @@ -23,7 +23,7 @@ /** * @author <a href="mailto:[EMAIL PROTECTED]">Volker Schmitt</a> - * @version CVS $Id: TransformerTagSupport.java,v 1.3 2004/03/05 13:02:24 bdelacretaz Exp $ + * @version CVS $Id$ */ public class TransformerTagSupport extends TagSupport implements TransformerTag { protected XMLConsumer xmlConsumer; @@ -39,12 +39,14 @@ * @see ContentHandler#startDocument() */ public void startDocument() throws SAXException { + // nothing to do here } /* * @see ContentHandler#endDocument() */ public void endDocument() throws SAXException { + // nothing to do here } /* Modified: cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/VarTagSupport.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/VarTagSupport.java?view=diff&r1=158427&r2=158428 ============================================================================== --- cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/VarTagSupport.java (original) +++ cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/VarTagSupport.java Mon Mar 21 01:41:23 2005 @@ -29,7 +29,7 @@ * Add support for setting and getting variables * * @author <a href="mailto:[EMAIL PROTECTED]">Volker Schmitt</a> - * @version CVS $Id: VarTagSupport.java,v 1.6 2004/03/05 13:02:24 bdelacretaz Exp $ + * @version CVS $Id$ */ public abstract class VarTagSupport extends TagSupport implements Serviceable { protected String var; @@ -59,10 +59,10 @@ protected final Object getVariable(String name) { JXPathContext context = getVariableContext(); - if (name.charAt(0) == '$') + if (name.charAt(0) == '$') { return context.getValue(name); - else - return context.getVariables().getVariable(name); + } + return context.getVariables().getVariable(name); //getRequest().getAttribute(name); } Modified: cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/VarTransformerTagSupport.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/VarTransformerTagSupport.java?view=diff&r1=158427&r2=158428 ============================================================================== --- cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/VarTransformerTagSupport.java (original) +++ cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/VarTransformerTagSupport.java Mon Mar 21 01:41:23 2005 @@ -23,7 +23,7 @@ /** * @author <a href="mailto:[EMAIL PROTECTED]">Volker Schmitt</a> - * @version CVS $Id: VarTransformerTagSupport.java,v 1.3 2004/03/05 13:02:24 bdelacretaz Exp $ + * @version CVS $Id$ */ public class VarTransformerTagSupport extends VarTagSupport implements TransformerTag { protected XMLConsumer xmlConsumer; @@ -39,12 +39,14 @@ * @see ContentHandler#startDocument() */ public void startDocument() throws SAXException { + // nothing to do here } /* * @see ContentHandler#endDocument() */ public void endDocument() throws SAXException { + // nothing to do here } /* Modified: cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/XMLConsumerTag.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/XMLConsumerTag.java?view=diff&r1=158427&r2=158428 ============================================================================== --- cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/XMLConsumerTag.java (original) +++ cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/XMLConsumerTag.java Mon Mar 21 01:41:23 2005 @@ -20,8 +20,9 @@ /** * @author <a href="mailto:[EMAIL PROTECTED]">Volker Schmitt</a> - * @version CVS $Id: XMLConsumerTag.java,v 1.3 2004/03/05 13:02:24 bdelacretaz Exp $ + * @version CVS $Id$ */ public interface XMLConsumerTag extends Tag, XMLConsumer { + // just a combination of the two interfaces } Modified: cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/XMLConsumerTagSupport.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/XMLConsumerTagSupport.java?view=diff&r1=158427&r2=158428 ============================================================================== --- cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/XMLConsumerTagSupport.java (original) +++ cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/XMLConsumerTagSupport.java Mon Mar 21 01:41:23 2005 @@ -21,7 +21,7 @@ /** * @author <a href="mailto:[EMAIL PROTECTED]">Volker Schmitt</a> - * @version CVS $Id: XMLConsumerTagSupport.java,v 1.3 2004/03/05 13:02:24 bdelacretaz Exp $ + * @version CVS $Id$ */ public abstract class XMLConsumerTagSupport extends VarTagSupport implements XMLConsumerTag { @@ -29,108 +29,126 @@ * @see ContentHandler#characters(char[], int, int) */ public void characters(char[] ch, int start, int length) throws SAXException { + // nothing to do here } /* * @see ContentHandler#endDocument() */ public void endDocument() throws SAXException { + // nothing to do here } /* * @see ContentHandler#endElement(String, String, String) */ public void endElement(String namespaceURI, String localName, String qName) throws SAXException { + // nothing to do here } /* * @see ContentHandler#endPrefixMapping(String) */ public void endPrefixMapping(String prefix) throws SAXException { + // nothing to do here } /* * @see ContentHandler#ignorableWhitespace(char[], int, int) */ public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException { + // nothing to do here } /* * @see ContentHandler#processingInstruction(String, String) */ public void processingInstruction(String target, String data) throws SAXException { + // nothing to do here } /* * @see ContentHandler#setDocumentLocator(Locator) */ public void setDocumentLocator(Locator locator) { + // nothing to do here } /* * @see ContentHandler#skippedEntity(String) */ public void skippedEntity(String name) throws SAXException { + // nothing to do here } /* * @see ContentHandler#startDocument() */ public void startDocument() throws SAXException { + // nothing to do here } /* * @see ContentHandler#startElement(String, String, String, Attributes) */ public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException { + // nothing to do here } /* * @see ContentHandler#startPrefixMapping(String, String) */ public void startPrefixMapping(String prefix, String uri) throws SAXException { + // nothing to do here } /* * @see LexicalHandler#comment(char[], int, int) */ public void comment(char[] ch, int start, int length) throws SAXException { + // nothing to do here } /* * @see LexicalHandler#endCDATA() */ public void endCDATA() throws SAXException { + // nothing to do here } /* * @see LexicalHandler#endDTD() */ public void endDTD() throws SAXException { + // nothing to do here } /* * @see LexicalHandler#endEntity(String) */ public void endEntity(String name) throws SAXException { - } + // nothing to do here + } /* * @see LexicalHandler#startCDATA() */ public void startCDATA() throws SAXException { + // nothing to do here } /* * @see LexicalHandler#startDTD(String, String, String) */ public void startDTD(String name, String publicId, String systemId) throws SAXException { + // nothing to do here } /* * @see LexicalHandler#startEntity(String) */ public void startEntity(String name) throws SAXException { - } + // nothing to do here + } } Modified: cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/XMLProducerTag.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/XMLProducerTag.java?view=diff&r1=158427&r2=158428 ============================================================================== --- cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/XMLProducerTag.java (original) +++ cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/XMLProducerTag.java Mon Mar 21 01:41:23 2005 @@ -20,8 +20,10 @@ /** * @author <a href="mailto:[EMAIL PROTECTED]">Volker Schmitt</a> - * @version CVS $Id: XMLProducerTag.java,v 1.3 2004/03/05 13:02:24 bdelacretaz Exp $ + * @version CVS $Id$ */ public interface XMLProducerTag extends Tag, XMLProducer { + + // just a combination of the two interfaces } Modified: cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/core/ForEachSupport.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/core/ForEachSupport.java?view=diff&r1=158427&r2=158428 ============================================================================== --- cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/core/ForEachSupport.java (original) +++ cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/core/ForEachSupport.java Mon Mar 21 01:41:23 2005 @@ -24,6 +24,7 @@ import java.util.Map; import java.util.StringTokenizer; +import org.apache.commons.lang.BooleanUtils; import org.xml.sax.SAXException; /** @@ -45,7 +46,7 @@ * @see org.apache.taglibs.standard.tag.common.core * * @author <a href="mailto:[EMAIL PROTECTED]">Volker Schmitt</a> - * @version CVS $Id: ForEachSupport.java,v 1.3 2004/03/05 13:02:24 bdelacretaz Exp $ + * @version CVS $Id$ */ public abstract class ForEachSupport extends LoopTagSupport { @@ -97,7 +98,7 @@ * an Iterator. This is appropriate for cases where hasNext() and * next() don't need to throw SAXException. Such cases are common.core. */ - protected class SimpleForEachIterator implements ForEachIterator { + protected static class SimpleForEachIterator implements ForEachIterator { private Iterator i; public SimpleForEachIterator(Iterator i) { this.i = i; @@ -253,7 +254,7 @@ protected ForEachIterator toForEachIterator(boolean[] a) { Boolean[] wrapped = new Boolean[a.length]; for (int i = 0; i < a.length; i++) - wrapped[i] = new Boolean(a[i]); + wrapped[i] = BooleanUtils.toBooleanObject(a[i]); return new SimpleForEachIterator(Arrays.asList(wrapped).iterator()); } Modified: cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/core/LoopTagSupport.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/core/LoopTagSupport.java?view=diff&r1=158427&r2=158428 ============================================================================== --- cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/core/LoopTagSupport.java (original) +++ cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/core/LoopTagSupport.java Mon Mar 21 01:41:23 2005 @@ -63,7 +63,7 @@ * @see javax.servlet.jsp.jstl.core.LoopTagSupport * * @author <a href="mailto:[EMAIL PROTECTED]">Volker Schmitt</a> - * @version CVS $Id: LoopTagSupport.java,v 1.5 2004/03/05 13:02:24 bdelacretaz Exp $ + * @version CVS $Id$ */ public abstract class LoopTagSupport extends VarTagSupport implements LoopTag, IterationTag //, TryCatchFinally { @@ -351,22 +351,22 @@ return (last); // use cached value } public Integer getBegin() { - if (beginSpecified) + if (beginSpecified) { return (new Integer(begin)); - else - return null; + } + return null; } public Integer getEnd() { - if (endSpecified) + if (endSpecified) { return (new Integer(end)); - else - return null; + } + return null; } public Integer getStep() { - if (stepSpecified) + if (stepSpecified) { return (new Integer(step)); - else - return null; + } + return null; } } @@ -375,8 +375,9 @@ * implementation, we just need one per instance, but I'd rather * not keep the reference around once release() has been called. */ - if (status == null) + if (status == null) { status = new Status(); + } return status; } Modified: cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/string/LowerCaseTag.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/string/LowerCaseTag.java?view=diff&r1=158427&r2=158428 ============================================================================== --- cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/string/LowerCaseTag.java (original) +++ cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/string/LowerCaseTag.java Mon Mar 21 01:41:23 2005 @@ -20,7 +20,7 @@ /** * @author <a href="mailto:[EMAIL PROTECTED]">Volker Schmitt</a> - * @version CVS $Id: LowerCaseTag.java,v 1.3 2004/03/05 13:02:25 bdelacretaz Exp $ + * @version CVS $Id$ */ public class LowerCaseTag extends StringTagSupport { @@ -31,8 +31,7 @@ LocaleTag localeTag = (LocaleTag) TagSupport.findAncestorWithClass(this, LocaleTag.class); if (localeTag == null) { return str.toLowerCase(); - } else { - return str.toLowerCase(localeTag.getLocale()); } + return str.toLowerCase(localeTag.getLocale()); } } Modified: cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/string/UpperCaseTag.java URL: http://svn.apache.org/viewcvs/cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/string/UpperCaseTag.java?view=diff&r1=158427&r2=158428 ============================================================================== --- cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/string/UpperCaseTag.java (original) +++ cocoon/blocks/unsupported/taglib/trunk/java/org/apache/cocoon/taglib/string/UpperCaseTag.java Mon Mar 21 01:41:23 2005 @@ -20,7 +20,7 @@ /** * @author <a href="mailto:[EMAIL PROTECTED]">Volker Schmitt</a> - * @version CVS $Id: UpperCaseTag.java,v 1.3 2004/03/05 13:02:25 bdelacretaz Exp $ + * @version CVS $Id$ */ public class UpperCaseTag extends StringTagSupport { @@ -31,9 +31,8 @@ LocaleTag localeTag = (LocaleTag) TagSupport.findAncestorWithClass(this, LocaleTag.class); if (localeTag == null) { return str.toUpperCase(); - } else { - return str.toUpperCase(localeTag.getLocale()); } + return str.toUpperCase(localeTag.getLocale()); } }