This is an automated email from the ASF dual-hosted git repository.
lukaszlenart pushed a commit to branch WW-5233-tiles
in repository https://gitbox.apache.org/repos/asf/struts.git
The following commit(s) were added to refs/heads/WW-5233-tiles by this push:
new 30f8832be WW-5233 Drops useless @version tag and addresses some
potential RegEx vulnerabilities
30f8832be is described below
commit 30f8832be0b4e5eabd9aeb9c93e60d7ff2df6d21
Author: Lukasz Lenart <[email protected]>
AuthorDate: Sun Oct 2 18:43:45 2022 +0200
WW-5233 Drops useless @version tag and addresses some potential RegEx
vulnerabilities
---
.../main/java/org/apache/tiles/api/Attribute.java | 5 +-
.../apache/tiles/api/preparer/ViewPreparer.java | 2 -
.../autotag/core/runtime/AbstractModelBody.java | 2 -
.../tiles/autotag/core/runtime/ModelBody.java | 2 -
.../autotag/core/runtime/annotation/Parameter.java | 2 -
.../autotag/core/runtime/util/NullWriter.java | 2 -
.../apache/tiles/autotag/model/TemplateClass.java | 2 -
.../apache/tiles/autotag/model/TemplateMethod.java | 2 -
.../tiles/autotag/model/TemplateParameter.java | 2 -
.../apache/tiles/autotag/model/TemplateSuite.java | 2 -
.../tiles/core/definition/DefinitionsFactory.java | 2 -
.../core/definition/NoSuchDefinitionException.java | 2 -
.../UnresolvingLocaleDefinitionsFactory.java | 2 -
.../digester/DigesterDefinitionsReader.java | 2 -
.../DigesterDefinitionsReaderException.java | 2 -
.../pattern/DefinitionPatternMatcher.java | 2 -
.../pattern/DefinitionPatternMatcherFactory.java | 2 -
.../org/apache/tiles/request/RequestException.java | 2 -
.../NotAvailableFreemarkerServletException.java | 2 -
.../autotag/FreemarkerAutotagException.java | 2 -
.../render/AttributeValueFreemarkerServlet.java | 51 ------
.../request/freemarker/render/package-info.java | 24 ---
.../SharedVariableLoaderFreemarkerServlet.java | 200 ---------------------
.../servlet/WebappClassTemplateLoader.java | 2 -
.../tiles/request/jsp/JspPrintWriterAdapter.java | 2 -
.../request/locale/URLApplicationResource.java | 2 -
.../reflect/CannotInstantiateObjectException.java | 2 -
.../tiles/request/render/DispatchRenderer.java | 2 -
.../tiles/template/InsertAttributeModel.java | 2 -
.../tiles/template/InsertDefinitionModel.java | 2 -
30 files changed, 2 insertions(+), 330 deletions(-)
diff --git a/plugins/tiles/src/main/java/org/apache/tiles/api/Attribute.java
b/plugins/tiles/src/main/java/org/apache/tiles/api/Attribute.java
index c49f07a96..e84039c73 100644
--- a/plugins/tiles/src/main/java/org/apache/tiles/api/Attribute.java
+++ b/plugins/tiles/src/main/java/org/apache/tiles/api/Attribute.java
@@ -19,6 +19,7 @@
package org.apache.tiles.api;
+import com.opensymphony.xwork2.util.TextParseUtil;
import org.apache.tiles.request.Request;
import java.io.Serializable;
@@ -205,9 +206,7 @@ public class Attribute implements Serializable, Cloneable {
*/
public void setRole(String role) {
if (role != null && role.trim().length() > 0) {
- String[] rolesStrings = role.split("\\s*,\\s*");
- roles = new HashSet<>();
- Collections.addAll(roles, rolesStrings);
+ roles = TextParseUtil.commaDelimitedStringToSet(role);
} else {
roles = null;
}
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/api/preparer/ViewPreparer.java
b/plugins/tiles/src/main/java/org/apache/tiles/api/preparer/ViewPreparer.java
index 94527a45b..9abf720a6 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/api/preparer/ViewPreparer.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/api/preparer/ViewPreparer.java
@@ -38,8 +38,6 @@ import org.apache.tiles.request.Request;
* <li><insert></li>
* <li><definition></li>
* </ul>>
- *
- * @version $Rev$ $Date$
*/
public interface ViewPreparer {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/autotag/core/runtime/AbstractModelBody.java
b/plugins/tiles/src/main/java/org/apache/tiles/autotag/core/runtime/AbstractModelBody.java
index 1054f338a..72b3a9938 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/autotag/core/runtime/AbstractModelBody.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/autotag/core/runtime/AbstractModelBody.java
@@ -27,8 +27,6 @@ import java.util.regex.Pattern;
/**
* Base class for the abstraction of the body.
- *
- * @version $Rev$ $Date$
*/
public abstract class AbstractModelBody implements ModelBody {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/autotag/core/runtime/ModelBody.java
b/plugins/tiles/src/main/java/org/apache/tiles/autotag/core/runtime/ModelBody.java
index feedca8c8..0f97ec0d0 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/autotag/core/runtime/ModelBody.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/autotag/core/runtime/ModelBody.java
@@ -23,8 +23,6 @@ import java.io.Writer;
/**
* Abstracts a tag/directive body.
- *
- * @version $Rev$ $Date$
*/
public interface ModelBody {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/autotag/core/runtime/annotation/Parameter.java
b/plugins/tiles/src/main/java/org/apache/tiles/autotag/core/runtime/annotation/Parameter.java
index 1c6373f7f..8833eddeb 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/autotag/core/runtime/annotation/Parameter.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/autotag/core/runtime/annotation/Parameter.java
@@ -25,8 +25,6 @@ import java.lang.annotation.Target;
/**
* Specifies behaviour for a parameter of the "execute" method of a template
class.
- *
- * @version $Rev$ $Date$
*/
@Retention(RetentionPolicy.SOURCE)
@Target(ElementType.PARAMETER)
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/autotag/core/runtime/util/NullWriter.java
b/plugins/tiles/src/main/java/org/apache/tiles/autotag/core/runtime/util/NullWriter.java
index 76a19b6b4..4905e6c63 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/autotag/core/runtime/util/NullWriter.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/autotag/core/runtime/util/NullWriter.java
@@ -23,8 +23,6 @@ import java.io.Writer;
/**
* A writer that does not write anything.
- *
- * @version $Rev$ $Date$
*/
public class NullWriter extends Writer {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java
b/plugins/tiles/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java
index f130fa9d1..0aeb990ce 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/autotag/model/TemplateClass.java
@@ -24,8 +24,6 @@ import java.util.Map;
/**
* It represents a parsed template class.
- *
- * @version $Rev$ $Date$
*/
public class TemplateClass {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java
b/plugins/tiles/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java
index 2390c2119..2bccf2ddd 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/autotag/model/TemplateMethod.java
@@ -24,8 +24,6 @@ import java.util.Map;
/**
* It represents a parsed method in a parsed template class.
- *
- * @version $Rev$ $Date$
*/
public class TemplateMethod {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java
b/plugins/tiles/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java
index ab4e8dc58..0540954c1 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/autotag/model/TemplateParameter.java
@@ -22,8 +22,6 @@ import org.apache.tiles.autotag.core.runtime.ModelBody;
/**
* It represents a parameter in a method in a parsed template class.
- *
- * @version $Rev$ $Date$
*/
public class TemplateParameter {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/autotag/model/TemplateSuite.java
b/plugins/tiles/src/main/java/org/apache/tiles/autotag/model/TemplateSuite.java
index ff96b9eda..de14b466f 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/autotag/model/TemplateSuite.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/autotag/model/TemplateSuite.java
@@ -24,8 +24,6 @@ import java.util.Map;
/**
* It represents a suite of template classes.
- *
- * @version $Rev$ $Date$
*/
public class TemplateSuite {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/core/definition/DefinitionsFactory.java
b/plugins/tiles/src/main/java/org/apache/tiles/core/definition/DefinitionsFactory.java
index a7165a981..8f0dcc7aa 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/core/definition/DefinitionsFactory.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/core/definition/DefinitionsFactory.java
@@ -31,8 +31,6 @@ import org.apache.tiles.request.Request;
* sets. Implementations also know how to append locale-specific configuration
* data to an existing Definitions set.
* </p>
- *
- * @version $Rev$ $Date$
*/
public interface DefinitionsFactory {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/core/definition/NoSuchDefinitionException.java
b/plugins/tiles/src/main/java/org/apache/tiles/core/definition/NoSuchDefinitionException.java
index aa78661bd..6815f2db9 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/core/definition/NoSuchDefinitionException.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/core/definition/NoSuchDefinitionException.java
@@ -20,8 +20,6 @@ package org.apache.tiles.core.definition;
/**
* Exception thrown when a definition is not found.
- *
- * @version $Rev$ $Date$
*/
public class NoSuchDefinitionException extends DefinitionsFactoryException {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/core/definition/UnresolvingLocaleDefinitionsFactory.java
b/plugins/tiles/src/main/java/org/apache/tiles/core/definition/UnresolvingLocaleDefinitionsFactory.java
index ca69310f4..5a35e4825 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/core/definition/UnresolvingLocaleDefinitionsFactory.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/core/definition/UnresolvingLocaleDefinitionsFactory.java
@@ -35,8 +35,6 @@ import java.util.Locale;
* {@link org.apache.tiles.core.definition.digester.DigesterDefinitionsReader}
* class unless another implementation is specified.
* </p>
- *
- * @version $Rev$ $Date$
* @since 2.2.1
*/
public class UnresolvingLocaleDefinitionsFactory implements DefinitionsFactory
{
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/core/definition/digester/DigesterDefinitionsReader.java
b/plugins/tiles/src/main/java/org/apache/tiles/core/definition/digester/DigesterDefinitionsReader.java
index b751c5607..4d756bbb2 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/core/definition/digester/DigesterDefinitionsReader.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/core/definition/digester/DigesterDefinitionsReader.java
@@ -61,8 +61,6 @@ import java.util.Map;
* method. This means that instances of this class are <strong>not</strong>
* thread-safe and access by multiple threads must be synchronized.
* </p>
- *
- * @version $Rev$ $Date$
*/
public class DigesterDefinitionsReader implements DefinitionsReader {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/core/definition/digester/DigesterDefinitionsReaderException.java
b/plugins/tiles/src/main/java/org/apache/tiles/core/definition/digester/DigesterDefinitionsReaderException.java
index 0aeb324bc..ca501e089 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/core/definition/digester/DigesterDefinitionsReaderException.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/core/definition/digester/DigesterDefinitionsReaderException.java
@@ -23,8 +23,6 @@ import org.apache.tiles.api.TilesException;
/**
* Indicates that something went wrong during the use of
* {@link DigesterDefinitionsReader}.
- *
- * @version $Rev$ $Date$
* @since 2.1.0
*/
public class DigesterDefinitionsReaderException extends TilesException {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/core/definition/pattern/DefinitionPatternMatcher.java
b/plugins/tiles/src/main/java/org/apache/tiles/core/definition/pattern/DefinitionPatternMatcher.java
index 8e913bca1..657780650 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/core/definition/pattern/DefinitionPatternMatcher.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/core/definition/pattern/DefinitionPatternMatcher.java
@@ -23,8 +23,6 @@ import org.apache.tiles.api.Definition;
/**
* Matches a definition name to a definition, through pattern-matching. The
* matched pattern should be a single one.
- *
- * @version $Rev$ $Date$
* @since 2.2.0
*/
public interface DefinitionPatternMatcher {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/core/definition/pattern/DefinitionPatternMatcherFactory.java
b/plugins/tiles/src/main/java/org/apache/tiles/core/definition/pattern/DefinitionPatternMatcherFactory.java
index d58858a50..df5890744 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/core/definition/pattern/DefinitionPatternMatcherFactory.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/core/definition/pattern/DefinitionPatternMatcherFactory.java
@@ -23,8 +23,6 @@ import org.apache.tiles.api.Definition;
/**
* Creates a new definition pattern matcher for the given pattern and the given
* base definition with pattern expressions.
- *
- * @version $Rev$ $Date$
* @since 2.2.0
*/
public interface DefinitionPatternMatcherFactory {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/request/RequestException.java
b/plugins/tiles/src/main/java/org/apache/tiles/request/RequestException.java
index 192dff6b7..dcd8daeae 100644
--- a/plugins/tiles/src/main/java/org/apache/tiles/request/RequestException.java
+++ b/plugins/tiles/src/main/java/org/apache/tiles/request/RequestException.java
@@ -20,8 +20,6 @@ package org.apache.tiles.request;
/**
* Thrown when something related to a request fails.
- *
- * @version $Rev$ $Date$
*/
public class RequestException extends RuntimeException {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletException.java
b/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletException.java
index 13c5dd0f8..c34b91168 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletException.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/NotAvailableFreemarkerServletException.java
@@ -22,8 +22,6 @@ import org.apache.tiles.request.NotAvailableFeatureException;
/**
* Thrown when the Freemarker servlet is not available.
- *
- * @version $Rev$ $Date$
*/
public class NotAvailableFreemarkerServletException extends
NotAvailableFeatureException {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagException.java
b/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagException.java
index dfd95cd06..9ba13c882 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagException.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/autotag/FreemarkerAutotagException.java
@@ -20,8 +20,6 @@ package org.apache.tiles.request.freemarker.autotag;
/**
* Thrown when a Freemarker problem under Autotag runtime part happens.
- *
- * @version $Rev$ $Date$
*/
public class FreemarkerAutotagException extends RuntimeException {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/render/AttributeValueFreemarkerServlet.java
b/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/render/AttributeValueFreemarkerServlet.java
deleted file mode 100644
index 8162c815d..000000000
---
a/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/render/AttributeValueFreemarkerServlet.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.tiles.request.freemarker.render;
-
-import
org.apache.tiles.request.freemarker.servlet.SharedVariableLoaderFreemarkerServlet;
-
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * Extends {@link SharedVariableLoaderFreemarkerServlet} to use the attribute
value as the template name.
- */
-public class AttributeValueFreemarkerServlet extends
SharedVariableLoaderFreemarkerServlet {
-
- /**
- * Holds the value that should be used as the template name.
- */
- private final ThreadLocal<String> valueHolder = new ThreadLocal<>();
-
- /**
- * Sets the value to use as the template name.
- *
- * @param value The template name.
- */
- public void setValue(String value) {
- valueHolder.set(value);
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- protected String requestUrlToTemplatePath(HttpServletRequest request) {
- return valueHolder.get();
- }
-}
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/render/package-info.java
b/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/render/package-info.java
deleted file mode 100644
index 925f6a2f7..000000000
---
a/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/render/package-info.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * $Id: package-info.java 1049711 2010-12-15 21:12:00Z apetrelli $
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-/**
- * Rendering of Freemarker templates.
- */
-package org.apache.tiles.request.freemarker.render;
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/servlet/SharedVariableLoaderFreemarkerServlet.java
b/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/servlet/SharedVariableLoaderFreemarkerServlet.java
deleted file mode 100644
index 8cec74b1f..000000000
---
a/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/servlet/SharedVariableLoaderFreemarkerServlet.java
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.tiles.request.freemarker.servlet;
-
-import freemarker.cache.TemplateLoader;
-import freemarker.ext.servlet.FreemarkerServlet;
-import freemarker.template.Configuration;
-import org.apache.tiles.request.reflect.ClassUtil;
-
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import java.util.Enumeration;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-/**
- * Extends FreemarkerServlet to load Tiles directives as a shared variable.
- */
-public class SharedVariableLoaderFreemarkerServlet extends FreemarkerServlet {
-
- /**
- * The init parameter under which the factories will be put. The value of
the parameter
- * must be a semicolon (;) separated list of couples, each member of the
couple must
- * be separated by commas (,).
- */
- public static final String CUSTOM_SHARED_VARIABLE_FACTORIES_INIT_PARAM =
- "org.apache.tiles.request.freemarker.CUSTOM_SHARED_VARIABLE_FACTORIES";
-
- /**
- * Maps a name of a shared variable to its factory.
- */
- private final Map<String, SharedVariableFactory> name2variableFactory =
new LinkedHashMap<>();
-
- @Override
- public void init(ServletConfig config) throws ServletException {
- String param =
config.getInitParameter(CUSTOM_SHARED_VARIABLE_FACTORIES_INIT_PARAM);
- if (param != null) {
- String[] couples = param.split("\\s*;\\s*");
- for (String s : couples) {
- String[] couple = s.split("\\s*,\\s*");
- if (couple.length != 2) {
- throw new ServletException("Cannot parse custom shared
variable partial init param: '" + s + "'");
- }
- name2variableFactory.put(couple[0], (SharedVariableFactory)
ClassUtil.instantiate(couple[1]));
- }
- }
- super.init(new ExcludingParameterServletConfig(config));
- }
-
- /**
- * Adds anew shared variable factory in a manual way.
- *
- * @param variableName The name of the shared variable.
- * @param factory The shared variable factory.
- */
- public void addSharedVariableFactory(String variableName,
SharedVariableFactory factory) {
- name2variableFactory.put(variableName, factory);
- }
-
- /** {@inheritDoc} */
- @Override
- protected Configuration createConfiguration() {
- Configuration configuration = super.createConfiguration();
-
- for (Map.Entry<String, SharedVariableFactory> entry :
name2variableFactory.entrySet()) {
- configuration.setSharedVariable(entry.getKey(),
entry.getValue().create());
- }
- return configuration;
- }
-
- /** {@inheritDoc} */
-
- @Override
- protected TemplateLoader createTemplateLoader(String templatePath) {
- return new WebappClassTemplateLoader(getServletContext());
- }
-
- /**
- * Servlet configuration that excludes some parameters. It is useful to
adapt to
- * FreemarkerServlet behaviour, because it gets angry if it sees some extra
- * parameters that it does not recognize.
- */
- private static class ExcludingParameterServletConfig implements
ServletConfig {
-
- /**
- * The servlet configuration.
- */
- private final ServletConfig config;
-
- /**
- * Constructor.
- *
- * @param config The servlet configuration.
- */
- public ExcludingParameterServletConfig(ServletConfig config) {
- this.config = config;
- }
-
- @Override
- public String getServletName() {
- return config.getServletName();
- }
-
- @Override
- public ServletContext getServletContext() {
- return config.getServletContext();
- }
-
- @Override
- public String getInitParameter(String name) {
- if (CUSTOM_SHARED_VARIABLE_FACTORIES_INIT_PARAM.equals(name)) {
- return null;
- }
- return config.getInitParameter(name);
- }
-
- @SuppressWarnings({ "rawtypes", "unchecked" })
- @Override
- public Enumeration getInitParameterNames() {
- return new SkippingEnumeration(config.getInitParameterNames());
- }
-
- }
-
- /**
- * An enumeration that skip just
- * {@link
SharedVariableLoaderFreemarkerServlet#CUSTOM_SHARED_VARIABLE_FACTORIES_INIT_PARAM},
- * again not to let the FreemarkerServlet be angry about it.
- */
- private static class SkippingEnumeration implements Enumeration<String> {
-
- /**
- * The original enumeration.
- */
- private final Enumeration<String> enumeration;
-
- /**
- * The next element.
- */
- private String next = null;
-
- /**
- * Constructor.
- *
- * @param enumeration The original enumeration.
- */
- public SkippingEnumeration(Enumeration<String> enumeration) {
- this.enumeration = enumeration;
- updateNextElement();
- }
-
- @Override
- public boolean hasMoreElements() {
- return next != null;
- }
-
- @Override
- public String nextElement() {
- String retValue = next;
- updateNextElement();
- return retValue;
- }
-
- /**
- * Updates the next element that will be passed.
- */
- private void updateNextElement() {
- String value = null;
- boolean done = false;
- while (this.enumeration.hasMoreElements() && !done) {
- value = this.enumeration.nextElement();
- if (value.equals(CUSTOM_SHARED_VARIABLE_FACTORIES_INIT_PARAM))
{
- value = null;
- } else {
- done = true;
- }
- }
- next = value;
- }
-
- }
-}
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/servlet/WebappClassTemplateLoader.java
b/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/servlet/WebappClassTemplateLoader.java
index ce5629fa7..5103903a5 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/servlet/WebappClassTemplateLoader.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/request/freemarker/servlet/WebappClassTemplateLoader.java
@@ -31,8 +31,6 @@ import java.io.Reader;
* Delegates loading templates using a {@link WebappTemplateLoader} and, if not
* found, a {@link ClassTemplateLoader}. The resources are loaded from the
* webapp root and from the classpath root.
- *
- * @version $Rev$ $Date$
*/
public class WebappClassTemplateLoader implements TemplateLoader {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/request/jsp/JspPrintWriterAdapter.java
b/plugins/tiles/src/main/java/org/apache/tiles/request/jsp/JspPrintWriterAdapter.java
index 81c6e579f..a7b2e2629 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/request/jsp/JspPrintWriterAdapter.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/request/jsp/JspPrintWriterAdapter.java
@@ -27,8 +27,6 @@ import java.io.PrintWriter;
/**
* Adapts a {@link JspWriter} to a {@link PrintWriter}, swallowing {@link
IOException}.
- *
- * @version $Rev$ $Date$
*/
public class JspPrintWriterAdapter extends PrintWriter {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/request/locale/URLApplicationResource.java
b/plugins/tiles/src/main/java/org/apache/tiles/request/locale/URLApplicationResource.java
index e88b25db7..a4e71a818 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/request/locale/URLApplicationResource.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/request/locale/URLApplicationResource.java
@@ -38,8 +38,6 @@ import java.util.Set;
/**
* A {@link PostfixedApplicationResource} that can be accessed through a URL.
- *
- * @version $Rev$ $Date$
*/
public class URLApplicationResource extends PostfixedApplicationResource {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/request/reflect/CannotInstantiateObjectException.java
b/plugins/tiles/src/main/java/org/apache/tiles/request/reflect/CannotInstantiateObjectException.java
index 953ae68c4..7b922fd8f 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/request/reflect/CannotInstantiateObjectException.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/request/reflect/CannotInstantiateObjectException.java
@@ -22,8 +22,6 @@ import org.apache.tiles.request.RequestException;
/**
* Indicates that an object cannot be instantiated.
- *
- * @version $Rev$ $Date$
*/
public class CannotInstantiateObjectException extends RequestException {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/request/render/DispatchRenderer.java
b/plugins/tiles/src/main/java/org/apache/tiles/request/render/DispatchRenderer.java
index fa5b78749..b1db6a09e 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/request/render/DispatchRenderer.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/request/render/DispatchRenderer.java
@@ -26,8 +26,6 @@ import org.apache.tiles.request.RequestWrapper;
/**
* Renders an attribute that contains a reference to a template.
- *
- * @version $Rev$ $Date$
*/
public class DispatchRenderer implements Renderer {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/template/InsertAttributeModel.java
b/plugins/tiles/src/main/java/org/apache/tiles/template/InsertAttributeModel.java
index 2ee9bb396..4c2ea7ef1 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/template/InsertAttributeModel.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/template/InsertAttributeModel.java
@@ -53,8 +53,6 @@ import java.util.Deque;
* <tiles:insertAttribute name="body" />
* </code>
* </pre>
- *
- * @version $Rev$ $Date$
* @since 2.2.0
*/
public class InsertAttributeModel {
diff --git
a/plugins/tiles/src/main/java/org/apache/tiles/template/InsertDefinitionModel.java
b/plugins/tiles/src/main/java/org/apache/tiles/template/InsertDefinitionModel.java
index cff71b65f..a34bb3760 100644
---
a/plugins/tiles/src/main/java/org/apache/tiles/template/InsertDefinitionModel.java
+++
b/plugins/tiles/src/main/java/org/apache/tiles/template/InsertDefinitionModel.java
@@ -61,8 +61,6 @@ import java.io.IOException;
* </tiles:insertDefinition>
* </code>
* </pre>
- *
- * @version $Rev$ $Date$
* @since 2.2.0
*/
public class InsertDefinitionModel {