diff --git a/core/src/main/java/org/apache/commons/jelly/tags/core/CoreTagLibrary.java b/core/src/main/java/org/apache/commons/jelly/tags/core/CoreTagLibrary.java index 1fbe06d..31333d7 100644 --- a/core/src/main/java/org/apache/commons/jelly/tags/core/CoreTagLibrary.java +++ b/core/src/main/java/org/apache/commons/jelly/tags/core/CoreTagLibrary.java @@ -45,7 +45,7 @@ public CoreTagLibrary() { registerTag("jelly", JellyTag.class); // core tags - registerTag("out", ExprTag.class); + registerTag("out", OutTag.class); registerTag("catch", CatchTag.class); registerTag("forEach", ForEachTag.class); registerTag("set", SetTag.class); diff --git a/core/src/main/java/org/apache/commons/jelly/tags/core/ExprTag.java b/core/src/main/java/org/apache/commons/jelly/tags/core/ExprTag.java index b2f5321..3720a4d 100644 --- a/core/src/main/java/org/apache/commons/jelly/tags/core/ExprTag.java +++ b/core/src/main/java/org/apache/commons/jelly/tags/core/ExprTag.java @@ -23,10 +23,12 @@ /** A tag which evaluates an expression * - * @tag out + * tag expr * @author James Strachan * @version $Revision: 155420 $ + * @deprecated In Jenkins, we use the {@link org.apache.commons.jelly.tags.core.OutTag}. */ +@Deprecated public class ExprTag extends TagSupport { /** The expression to evaluate. */ @@ -58,7 +60,7 @@ public void doTag(XMLOutput output) throws JellyTagException { /** * Sets the Jexl expression to evaluate. * - * @required true + * @param value required */ public void setValue(Expression value) { this.value = value; diff --git a/core/src/main/java/org/apache/commons/jelly/tags/core/OutTag.java b/core/src/main/java/org/apache/commons/jelly/tags/core/OutTag.java new file mode 100644 index 0000000..2beb6c7 --- /dev/null +++ b/core/src/main/java/org/apache/commons/jelly/tags/core/OutTag.java @@ -0,0 +1,58 @@ +/* + * Copyright 2002,2004 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.jelly.tags.core; + +import org.apache.commons.jelly.JellyTagException; +import org.apache.commons.jelly.TagSupport; +import org.apache.commons.jelly.XMLOutput; +import org.apache.commons.jelly.expression.Expression; +import org.xml.sax.SAXException; + +/** + * Cancels the effect of <?jelly escape-by-default='true'?> and allow expressions to produce mark up. + */ +public class OutTag extends TagSupport { + + /** The expression to evaluate. */ + private Expression value; + + public OutTag() { + } + + public void doTag(XMLOutput output) throws JellyTagException { + if (value != null) { + String text = value.evaluateAsString(context); + if (text != null) { + + try { + output.write(text); + } + catch (SAXException e) { + throw new JellyTagException("could not write the XMLOutput",e); + } + } + } + } + + /** + * The value that should be escaped. + * + * @param value required + */ + public void setValue(Expression value) { + this.value = value; + } +}