WW-1767 Tag r520528 as Struts 2.0.7 (again)

git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_7@520393 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/api/pom.xml b/api/pom.xml
deleted file mode 100644
index 5a45074..0000000
--- a/api/pom.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.apache.struts</groupId>
-        <artifactId>struts2-parent</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
-    </parent>
-    <groupId>org.apache.struts</groupId>
-    <artifactId>struts2-api</artifactId>
-    <packaging>jar</packaging>
-    <name>Struts 2 API</name>
-
-    <scm>
-       <connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/api/</connection>
-       <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/api/</developerConnection>
-       <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/api/</url>
-    </scm>
-
-   <dependencies>
-        <dependency>
-           <groupId>javax.servlet</groupId>
-           <artifactId>servlet-api</artifactId>
-           <version>2.4</version>
-           <scope>provided</scope>
-        </dependency>
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <version>3.8.1</version>
-            <scope>test</scope>
-            <!-- has to be compile for StrutsTestCase, which is part of the base package so others can write unit tests -->
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <scope>test</scope>
-            <version>2.0</version>
-        </dependency>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-                <configuration>
-                    <showPackage>false</showPackage>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/api/src/main/java/org/apache/struts2/Action.java b/api/src/main/java/org/apache/struts2/Action.java
deleted file mode 100644
index ae46570..0000000
--- a/api/src/main/java/org/apache/struts2/Action.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2;
-
-/**
- * Default action interface. Provided purely for user convenience. Struts does not require actions to implement any
- * interfaces. Actions need only implement a public, no argument method which returns {@code String}. If a user does
- * not specify a method name, Struts defaults to {@code execute()}.
- *
- * <p>For example:
- *
- * <pre>
- *   static import ResultNames.*;
- *
- *   public class MyAction <b>implements Action</b> {
- *
- *     public String execute() {
- *       return SUCCESS;
- *     }
- *   }
- * </pre>
- *
- * <p>is equivalent to:
- *
- * <pre>
- *   static import ResultNames.*;
- *
- *   public class MyAction {
- *
- *     public String execute() {
- *       return SUCCESS;
- *     }
- *   }
- * </pre>
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface Action {
-
-    /**
-     * Executes this action.
-     *
-     * @return result name which matches a result name from the action mapping in the configuration file. See {@link
-     *  ResultNames} for common suggestions.
-     */
-    String execute();
-}
diff --git a/api/src/main/java/org/apache/struts2/MessageAware.java b/api/src/main/java/org/apache/struts2/MessageAware.java
deleted file mode 100644
index 6dd380b..0000000
--- a/api/src/main/java/org/apache/struts2/MessageAware.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2;
-
-/**
- * Implemented by actions which may need to record errors or messages.
- *
- * <pre>
- *   static import ResultNames.*;
- *
- *   public class SetName implements MessageAware {
- *
- *     Messages messages;
- *     String name;
- *
- *     public String execute() {
- *       return SUCCESS;
- *     }
- *
- *     public void setName(String name) {
- *       if ("".equals(name))
- *         messages.forField("name").addError("name.required");
- *
- *       this.name = name;
- *     }
- *
- *     public void setMessages(Messages messages) {
- *       this.messages = messages;
- *     }
- *   }
- * </pre>
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface MessageAware {
-
-    /**
-     * Sets messages.
-     *
-     * @param messages messages
-     */
-    void setMessages(Messages messages);
-}
diff --git a/api/src/main/java/org/apache/struts2/Messages.java b/api/src/main/java/org/apache/struts2/Messages.java
deleted file mode 100644
index bce30de..0000000
--- a/api/src/main/java/org/apache/struts2/Messages.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2;
-
-import java.util.List;
-import java.util.Set;
-import java.util.Map;
-
-/**
- * Collection of messages. Supports nesting messages by field name.
- *
- * <p>Uses keys when adding instead of actual messages to decouple code from messages.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface Messages {
-
-    // TODO: Use Object[] for args instead of String[].
-
-    /**
-     * Message severity.
-     */
-    public enum Severity {
-
-        /**
-         * Informational messages.
-         */
-        INFO,
-
-        /**
-         * Warning messages.
-         */
-        WARN,
-
-        /**
-         * Error messages.
-         */
-        ERROR,
-    }
-
-    /**
-     * Gets nested messages for the given field.
-     *
-     * <p>Supports dot notation to represent nesting. For example:
-     *
-     * <pre>
-     * messages.forField("foo").forField("bar") == messages.forField("foo.bar")
-     * </pre>
-     *
-     * @param fieldName name of the field
-     * @return nested {@code Messages} for given field name
-     */
-    Messages forField(String fieldName);
-
-    /**
-     * Gets map of field name to messages for that field.
-     *
-     * @return map of field name to {@code Messages}
-     */
-    Map<String, Messages> forFields();
-
-    /**
-     * Adds informational message.
-     *
-     * @param key message key
-     * @see Severity.INFO
-     */
-    void addInformation(String key);
-
-    /**
-     * Adds informational message.
-     *
-     * @param key message key
-     * @param arguments message arguments
-     * @see Severity.INFO
-     */
-    void addInformation(String key, String... arguments);
-
-    /**
-     * Adds warning message.
-     *
-     * @param key message key
-     * @see Severity.WARN
-     */
-    void addWarning(String key);
-
-    /**
-     * Adds warning message.
-     *
-     * @param key message key
-     * @param arguments message arguments
-     * @see Severity.WARN
-     */
-    void addWarning(String key, String... arguments);
-
-    /**
-     * Adds error message.
-     *
-     * @param key message key
-     * @see Severity.ERROR
-     */
-    void addError(String key);
-
-    /**
-     * Adds error message.
-     *
-     * @param key message key
-     * @param arguments message arguments
-     * @see Severity.ERROR
-     */
-    void addError(String key, String... arguments);
-
-    /**
-     * Adds message.
-     *
-     * @param severity message severity
-     * @param key message key
-     */
-    void add(Severity severity, String key);
-
-    /**
-     * Adds request-scoped message.
-     *
-     * @param severity message severity
-     * @param key message key
-     * @param arguments message arguments
-     */
-    void add(Severity severity, String key, String... arguments);
-
-    /**
-     * Gets set of severities for which this {@code Messages} instance has messages. Not recursive.
-     *
-     * @return unmodifiable set of {@link Severity} sorted from least to most severe
-     */
-    Set<Severity> getSeverities();
-
-    /**
-     * Gets message strings for the given severity. Not recursive.
-     *
-     * @param severity message severity
-     * @return unmodifiable list of messages
-     */
-    List<String> forSeverity(Severity severity);
-
-    /**
-     * Gets error message strings for this {@code Messages} instance. Not recursive.
-     *
-     * @return unmodifiable list of messages
-     */
-    List<String> getErrors();
-
-    /**
-     * Gets error message strings for this {@code Messages} instance. Not recursive.
-     *
-     * @return unmodifiable list of messages
-     */
-    List<String> getWarnings();
-
-    /**
-     * Gets informational message strings for this {@code Messages} instance. Not recursive.
-     *
-     * @return unmodifiable list of messages
-     */
-    List<String> getInformation();
-
-    /**
-     * Returns true if this or a nested {@code Messages} instance has error messages.
-     *
-     * @see Severity.ERROR
-     */
-    boolean hasErrors();
-
-    /**
-     * Returns true if this or a nested {@code Messages} instance has warning messages.
-     *
-     * @see Severity.WARN
-     */
-    boolean hasWarnings();
-
-    /**
-     * Returns true if this or a nested {@code Messages} instance has informational messages.
-     *
-     * @see Severity.INFO
-     */
-    boolean hasInformation();
-
-    /**
-     * Returns true if this and all nested {@code Messages} instances have no messages.
-     */
-    boolean isEmpty();
-
-    /**
-     * Returns true if this and all nested {@code Messages} instances have no messages for the given severity.
-     *
-     * @param severity message severity
-     */
-    boolean isEmpty(Severity severity);
-}
\ No newline at end of file
diff --git a/api/src/main/java/org/apache/struts2/ResultNames.java b/api/src/main/java/org/apache/struts2/ResultNames.java
deleted file mode 100644
index fd5955c..0000000
--- a/api/src/main/java/org/apache/struts2/ResultNames.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2;
-
-/**
- * Commonly used result names returned by action methods.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public final class ResultNames {
-
-    private ResultNames() {}
-
-    /**
-     * The action executed successfully.
-     */
-    public static final String SUCCESS = "success";
-
-    /**
-     * The action requires more input, i.e.&nbsp;a validation error occurred.
-     */
-    public static final String INPUT = "input";
-
-    /**
-     * The action requires the user to log in before executing.
-     */
-    public static final String LOGIN = "login";
-
-    /**
-     * The action execution failed irrecoverably.
-     */
-    public static final String ERROR = "error";
-
-    /**
-     * The action executed successfully, but do not execute a result.
-     */
-    public static final String NONE = "none";
-}
diff --git a/api/src/main/java/org/apache/struts2/Validatable.java b/api/src/main/java/org/apache/struts2/Validatable.java
deleted file mode 100644
index 1d59ddd..0000000
--- a/api/src/main/java/org/apache/struts2/Validatable.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2;
-
-import org.apache.struts2.MessageAware;
-
-/**
- * Implemented by actions which wish to execute some validation logic before their action method. Useful for
- * cross-field validations.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface Validatable extends MessageAware {
-
-    /**
-     * Validates input. Executes before action method.
-     */
-    public void validate();
-}
diff --git a/api/src/main/java/org/apache/struts2/servlet/ParameterAware.java b/api/src/main/java/org/apache/struts2/servlet/ParameterAware.java
deleted file mode 100644
index df705fb..0000000
--- a/api/src/main/java/org/apache/struts2/servlet/ParameterAware.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2.servlet;
-
-import java.util.Map;
-
-/**
- * Implemented by actions which need direct access to the request parameters.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface ParameterAware {
-
-    /**
-     * Sets parameters.
-     *
-     * @param parameters map of parameter name to parameter values
-     */
-    void setParameters(Map<String, String[]> parameters);
-}
diff --git a/api/src/main/java/org/apache/struts2/servlet/ServletRequestAware.java b/api/src/main/java/org/apache/struts2/servlet/ServletRequestAware.java
deleted file mode 100644
index cf1a44c..0000000
--- a/api/src/main/java/org/apache/struts2/servlet/ServletRequestAware.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2.servlet;
-
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * Implemented by actions which need direct access to the servlet request.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface ServletRequestAware {
-
-    /**
-     * Sets the servlet request.
-     *
-     * @param request servlet request.
-     */
-    void setServletRequest(HttpServletRequest request);
-}
diff --git a/api/src/main/java/org/apache/struts2/servlet/ServletResponseAware.java b/api/src/main/java/org/apache/struts2/servlet/ServletResponseAware.java
deleted file mode 100644
index c36726f..0000000
--- a/api/src/main/java/org/apache/struts2/servlet/ServletResponseAware.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2.servlet;
-
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * Implemented by actions which need direct access to the servlet response.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface ServletResponseAware {
-
-    /**
-     * Sets the servlet response.
-     *
-     * @param response servlet response
-     */
-    void setServletResponse(HttpServletResponse response);
-}
diff --git a/api/src/main/java/org/apache/struts2/spi/ActionContext.java b/api/src/main/java/org/apache/struts2/spi/ActionContext.java
deleted file mode 100644
index 5546fa4..0000000
--- a/api/src/main/java/org/apache/struts2/spi/ActionContext.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2.spi;
-
-import java.lang.reflect.Method;
-
-/**
- * Context of an action execution.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface ActionContext {
-
-    /**
-     * Gets action instance.
-     */
-    Object getAction();
-
-    /**
-     * Gets action method.
-     */
-    Method getMethod();
-
-    /**
-     * Gets action name.
-     */
-    String getActionName();
-
-    /**
-     * Gets the path for the action's namespace.
-     */
-    String getNamespacePath();
-
-    /**
-     * Gets the {@link Result} instance for the action.
-     *
-     * @return {@link Result} instance or {@code null} if we don't have a result yet.
-     */
-    Result getResult();
-
-    /**
-     * Adds a result interceptor for the action. Enables executing code before and after a result, executing an
-     * alternate result, etc.
-     */
-    void addResultInterceptor(Result interceptor);
-
-    /**
-     * Gets context of action which chained to us.
-     *
-     * @return context of previous action or {@code null} if this is the first action in the chain
-     */
-    ActionContext getPrevious();
-
-    /**
-     * Gets context of action which this action chained to.
-     *
-     * @return context of next action or {@code null} if we haven't chained to another action yet or this is the last
-     *  action in the chain.
-     */
-    ActionContext getNext();
-}
diff --git a/api/src/main/java/org/apache/struts2/spi/Interceptor.java b/api/src/main/java/org/apache/struts2/spi/Interceptor.java
deleted file mode 100644
index 33cd847..0000000
--- a/api/src/main/java/org/apache/struts2/spi/Interceptor.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2.spi;
-
-/**
- * Intercepts an action request.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface Interceptor {
-
-    /**
-     * Intercepts an action request.
-     *
-     * @param requestContext current request context
-     */
-    String intercept(RequestContext requestContext) throws Exception;
-}
diff --git a/api/src/main/java/org/apache/struts2/spi/RequestContext.java b/api/src/main/java/org/apache/struts2/spi/RequestContext.java
deleted file mode 100644
index c08b08a..0000000
--- a/api/src/main/java/org/apache/struts2/spi/RequestContext.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2.spi;
-
-import org.apache.struts2.Messages;
-
-import javax.servlet.ServletContext;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-
-/**
- * Request context. A single request may span multiple actions with action chaining.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface RequestContext {
-
-    /**
-     * Gets context of the currently executing action.
-     *
-     * @return current action context
-     */
-    ActionContext getActionContext();
-
-    /**
-     * Convenience method.&nbsp;Equivalent to {@code getActionContext().getAction()}.
-     *
-     * @return currently executing action
-     */
-    Object getAction();
-
-    /**
-     * Gets map of request parameters.
-     */
-    Map<String, String[]> getParameterMap();
-
-    /**
-     * Gets map of request attributes.
-     */
-    Map<String, Object> getAttributeMap();
-
-    /**
-     * Gets map of session attributes.
-     */
-    Map<String, Object> getSessionMap();
-
-    /**
-     * Gets map of application (servlet context) attributes.
-     */
-    Map<String, Object> getApplicationMap();
-
-    /**
-     * Finds cookies with the given name,
-     */
-    List<Cookie> findCookiesForName(String name);
-
-    /**
-     * Gets locale.
-     */
-    Locale getLocale();
-
-    /**
-     * Sets locale. Stores the locale in the session for future requests.
-     */
-    void setLocale(Locale locale);
-
-    /**
-     * Gets messages.
-     */
-    Messages getMessages();
-
-    /**
-     * Gets the servlet request.
-     */
-    HttpServletRequest getServletRequest();
-
-    /**
-     * Gets the servlet response.
-     */
-    HttpServletResponse getServletResponse();
-
-    /**
-     * Gets the servlet context.
-     */
-    ServletContext getServletContext();
-
-    /**
-     * Gets the value stack.
-     */
-    ValueStack getValueStack();
-
-    /**
-     * Invokes the next interceptor or the action method if no more interceptors remain.
-     *
-     * @return result name
-     * @throws IllegalStateException if already invoked or called from the action
-     */
-    String proceed() throws Exception;
-}
diff --git a/api/src/main/java/org/apache/struts2/spi/RequestContextAware.java b/api/src/main/java/org/apache/struts2/spi/RequestContextAware.java
deleted file mode 100644
index 342599b..0000000
--- a/api/src/main/java/org/apache/struts2/spi/RequestContextAware.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2.spi;
-
-import org.apache.struts2.spi.RequestContext;
-
-/**
- * Implemented by actions that need access to the current {@link org.apache.struts2.spi.RequestContext}. Use
- * judiciously.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface RequestContextAware {
-
-    /**
-     * Sets {@link org.apache.struts2.spi.RequestContext}.
-     *
-     * @param requestContext
-     */
-    void setRequestContext(RequestContext requestContext);
-}
diff --git a/api/src/main/java/org/apache/struts2/spi/Result.java b/api/src/main/java/org/apache/struts2/spi/Result.java
deleted file mode 100644
index 07913cc..0000000
--- a/api/src/main/java/org/apache/struts2/spi/Result.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2.spi;
-
-import org.apache.struts2.spi.RequestContext;
-
-/**
- * The result of an action request. Struts creates a new {@code Result} instance for each request.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface Result {
-
-    /**
-     * Executes result.
-     *
-     * @param requestContext
-     */
-    void execute(RequestContext requestContext) throws Exception;
-}
diff --git a/api/src/main/java/org/apache/struts2/spi/ValueStack.java b/api/src/main/java/org/apache/struts2/spi/ValueStack.java
deleted file mode 100644
index bd61922..0000000
--- a/api/src/main/java/org/apache/struts2/spi/ValueStack.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2.spi;
-
-/**
- * A central fixture of the Struts framework, the {@code ValueStack} is a stack which contains the actions
- * which have executed in addition to other objects. Users can get and set values on the stack using expressions. The
- * {@code ValueStack} will search down the stack starting with the most recent objects until it finds an object to
- * which the expression can apply.
- *
- * @author crazybob@google.com (Bob Lee)
- */
-public interface ValueStack extends Iterable<Object> {
-
-    /**
-     * Gets the top, most recent object from the stack without changing the stack.
-     *
-     * @return the top object
-     */
-    Object peek();
-
-    /**
-     * Removes the top, most recent object from the stack.
-     *
-     * @return the top object
-     */
-    Object pop();
-
-    /**
-     * Pushes an object onto the stack.
-     *
-     * @param o
-     */
-    void push(Object o);
-
-    /**
-     * Creates a shallow copy of this stack.
-     *
-     * @return a new stack which contains the same objects as this one
-     */
-    ValueStack clone();
-
-    /**
-     * Queries the stack. Starts with the top, most recent object. If the expression can apply to the object, this
-     * method returns the result of evaluating the expression. If the expression does not apply, this method moves
-     * down the stack to the next object and repeats. Returns {@code null} if the expression doesn't apply to any
-     * objects.
-     *
-     * @param expression
-     * @return the evaluation of the expression against the first applicable object in the stack
-     */
-    Object get(String expression);
-
-    /**
-     * Queries the stack and converts the result to the specified type. Starts with the top, most recent object. If
-     * the expression can apply to the object, this method returns the result of evaluating the expression converted
-     * to the specified type. If the expression does not apply, this method moves down the stack to the next object
-     * and repeats. Returns {@code null} if the expression doesn't apply to any objects.
-     *
-     * @param expression
-     * @param asType the type to convert the result to
-     * @return the evaluation of the expression against the first applicable object in the stack converted to the
-     *  specified type
-     */
-    <T> T get(String expression, Class<T> asType);
-
-    /**
-     * Queries the stack and converts the result to a {@code String}. Starts with the top, most recent object. If the
-     * expression can apply to the object, this method returns the result of evaluating the expression converted to a
-     * {@code String}. If the expression does not apply, this method moves down the stack to the next object and
-     * repeats. Returns {@code null} if the expression doesn't apply to any objects.
-     *
-     * @param expression
-     * @return the evaluation of the expression against the first applicable object in the stack converted to a {@code
-     *  String}
-     */
-    String getString(String expression);
-
-    /**
-     * Sets a value on an object from the stack. This method starts at the top, most recent object. If the expression
-     * applies to that object, this methods sets the given value on that object using the expression and converting
-     * the type as necessary. If the expression does not apply, this method moves to the next object and repeats.
-     *
-     * @param expression
-     * @param value
-     */
-    void set(String expression, Object value);
-
-    /**
-     * Returns the number of object on the stack.
-     *
-     * @return size of stack
-     */
-    int size();
-}
diff --git a/api/src/main/resources/LICENSE.txt b/api/src/main/resources/LICENSE.txt
deleted file mode 100644
index dd5b3a5..0000000
--- a/api/src/main/resources/LICENSE.txt
+++ /dev/null
@@ -1,174 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
diff --git a/api/src/main/resources/NOTICE.txt b/api/src/main/resources/NOTICE.txt
deleted file mode 100644
index cd13ec4..0000000
--- a/api/src/main/resources/NOTICE.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Apache Struts
-Copyright 2000-2007 The Apache Software Foundation
-
-This product includes software developed by
-The Apache Software Foundation (http://www.apache.org/).
\ No newline at end of file
diff --git a/apps/blank/pom.xml b/apps/blank/pom.xml
index 6e11682..cb3f7bd 100644
--- a/apps/blank/pom.xml
+++ b/apps/blank/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-apps</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.7</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-blank</artifactId>
diff --git a/apps/blank/src/main/resources/example.xml b/apps/blank/src/main/resources/example.xml
index e93d84e..2e3b57c 100644
--- a/apps/blank/src/main/resources/example.xml
+++ b/apps/blank/src/main/resources/example.xml
@@ -13,7 +13,7 @@
 

         <action name="Login_*" method="{1}" class="example.Login">

             <result name="input">/example/Login.jsp</result>

-            <result type="redirectAction">Menu</result>

+            <result type="redirect-action">Menu</result>

         </action>

 

         <action name="*" class="example.ExampleSupport">

diff --git a/apps/mailreader/pom.xml b/apps/mailreader/pom.xml
index cbf60b2..54f3152 100644
--- a/apps/mailreader/pom.xml
+++ b/apps/mailreader/pom.xml
@@ -5,7 +5,7 @@
     <parent>
       <groupId>org.apache.struts</groupId>
       <artifactId>struts2-apps</artifactId>
-      <version>2.1.0-SNAPSHOT</version>
+      <version>2.0.7</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-mailreader</artifactId>
diff --git a/apps/mailreader/src/main/java/mailreader-default.xml b/apps/mailreader/src/main/java/mailreader-default.xml
index 06b4a2f..0e7ed96 100644
--- a/apps/mailreader/src/main/java/mailreader-default.xml
+++ b/apps/mailreader/src/main/java/mailreader-default.xml
@@ -18,7 +18,7 @@
             </interceptor-stack>

 

             <interceptor-stack name="user-submit" >

-                <interceptor-ref name="tokenSession" />

+                <interceptor-ref name="token-session" />

                 <interceptor-ref name="user"/>

             </interceptor-stack>

 

@@ -33,7 +33,7 @@
         <global-results>

             <result name="error">/pages/Error.jsp</result>

             <result name="invalid.token">/pages/Error.jsp</result>

-            <result name="login" type="redirectAction">Login_input</result>

+            <result name="login" type="redirect-action">Login_input</result>

         </global-results>

 

         <global-exception-mappings>

diff --git a/apps/mailreader/src/main/java/mailreader-support.xml b/apps/mailreader/src/main/java/mailreader-support.xml
index 5931b6a..b1b1859 100644
--- a/apps/mailreader/src/main/java/mailreader-support.xml
+++ b/apps/mailreader/src/main/java/mailreader-support.xml
@@ -17,13 +17,13 @@
         </action>

 

         <action name="Logout" class="mailreader2.Logout">

-            <result type="redirectAction">Welcome</result>

+            <result type="redirect-action">Welcome</result>

         </action>

 

         <action name="Login_*"  method="{1}" class="mailreader2.Login">

             <result name="input">/Login.jsp</result>

-            <result name="cancel" type="redirectAction">Welcome</result>

-            <result type="redirectAction">MainMenu</result>

+            <result name="cancel" type="redirect-action">Welcome</result>

+            <result type="redirect-action">MainMenu</result>

             <result name="expired" type="chain">ChangePassword</result>

             <exception-mapping

                     exception="org.apache.struts.apps.mailreader.dao.ExpiredPasswordException"

@@ -33,7 +33,7 @@
 

         <action name="Registration_*" method="{1}" class="mailreader2.Registration">

             <result name="input">/Registration.jsp</result>

-            <result type="redirectAction">MainMenu</result>

+            <result type="redirect-action">MainMenu</result>

             <interceptor-ref name="guest"/>

         </action>

     </package>

@@ -42,7 +42,7 @@
 

         <global-results>

             <result name="input">/Subscription.jsp</result>

-            <result type="redirectAction">Registration_input</result>

+            <result type="redirect-action">Registration_input</result>

         </global-results>

 

         <action name="Subscription_save" method="save" class="mailreader2.Subscription">

diff --git a/apps/pom.xml b/apps/pom.xml
index 526dabe..dac1e06 100644
--- a/apps/pom.xml
+++ b/apps/pom.xml
@@ -25,7 +25,7 @@
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-parent</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.7</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-apps</artifactId>
diff --git a/apps/portlet/README.txt b/apps/portlet/README.txt
index e46d341..efcb67b 100644
--- a/apps/portlet/README.txt
+++ b/apps/portlet/README.txt
@@ -8,8 +8,8 @@
 

 WARNING - Additional configuration required for deployment

 

-Due to difference in portlet container implementations, the portlet

-WAR is not ready-to-run. Extract the portlet WAR, and then copy the

+Due to difference in portlet contrainer implementations, the porlet

+WAR is not ready-to-run. Extract the porlet WAR, and then copy the

 contents of apps/portlet/src/main/etc/<your_portal_server>/ into the

 WAR's WEB-INF directory.

 

diff --git a/apps/portlet/pom.xml b/apps/portlet/pom.xml
index ead3d62..2495c69 100644
--- a/apps/portlet/pom.xml
+++ b/apps/portlet/pom.xml
@@ -5,7 +5,7 @@
     <parent>
       <groupId>org.apache.struts</groupId>
       <artifactId>struts2-apps</artifactId>
-      <version>2.1.0-SNAPSHOT</version>
+      <version>2.0.7</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-portlet</artifactId>
@@ -17,38 +17,7 @@
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/apps/portlet/</developerConnection>
        <url>http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/apps/portlet/</url>
     </scm>
-	
-	<profiles>
-		<profile>
-			<id>pluto</id>
-			<build>
-				<plugins>
-				  <!-- configure maven-war-plugin to use updated web.xml -->
-			      <plugin>
-			        <artifactId>maven-war-plugin</artifactId>
-			        <configuration>
-			          <webXml>${project.build.directory}/pluto-resources/web.xml</webXml>
-			        </configuration>
-			      </plugin>
-			      <!-- bind 'pluto:assemble' goal to 'process-resources' lifecycle -->
-			      <plugin>
-			        <groupId>org.apache.pluto</groupId>
-			        <artifactId>maven-pluto-plugin</artifactId>
-			        <version>1.1.1</version>
-			        <executions>
-			          <execution>
-			            <phase>generate-resources</phase>
-			            <goals>
-			              <goal>assemble</goal>
-			            </goals>
-			          </execution>
-			        </executions>
-			      </plugin>
-				</plugins>
-			</build>
-		</profile>
-	</profiles>
-	
+
     <dependencies>
         <dependency>
             <groupId>portlet-api</groupId>
diff --git a/apps/showcase/pom.xml b/apps/showcase/pom.xml
index fd3c592..35a3a94 100644
--- a/apps/showcase/pom.xml
+++ b/apps/showcase/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-apps</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.7</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-showcase</artifactId>
@@ -40,12 +40,6 @@
 
         <dependency>
             <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-dojo-plugin</artifactId>
-            <version>${pom.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.struts</groupId>
             <artifactId>struts2-jsf-plugin</artifactId>
             <version>${pom.version}</version>
         </dependency>
diff --git a/apps/showcase/src/main/java/org/apache/struts2/showcase/source/ViewSourceAction.java b/apps/showcase/src/main/java/org/apache/struts2/showcase/source/ViewSourceAction.java
index 99fc6be..6bd91e2 100644
--- a/apps/showcase/src/main/java/org/apache/struts2/showcase/source/ViewSourceAction.java
+++ b/apps/showcase/src/main/java/org/apache/struts2/showcase/source/ViewSourceAction.java
@@ -90,7 +90,6 @@
         return SUCCESS;
     }
 
-
     /**
      * @param className the className to set
      */
diff --git a/apps/showcase/src/main/resources/struts-chat.xml b/apps/showcase/src/main/resources/struts-chat.xml
index 7cc324f..173d3bc 100644
--- a/apps/showcase/src/main/resources/struts-chat.xml
+++ b/apps/showcase/src/main/resources/struts-chat.xml
@@ -2,24 +2,24 @@
 <!DOCTYPE struts PUBLIC
     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
     "http://struts.apache.org/dtds/struts-2.0.dtd">
-
+	
 <struts>
-  <package name="chat" extends="struts-default" namespace="/chat">
-    <interceptors>
-      <interceptor name="chatAuthentication"
-             class="org.apache.struts2.showcase.chat.ChatAuthenticationInterceptor" />
-      <interceptor-stack name="chatAuthenticationStack">
-        <interceptor-ref name="createSession" />
-        <interceptor-ref name="exception"/>
+	<package name="chat" extends="struts-default" namespace="/chat">
+		<interceptors>
+			<interceptor name="chatAuthentication" 
+						 class="org.apache.struts2.showcase.chat.ChatAuthenticationInterceptor" />
+			<interceptor-stack name="chatAuthenticationStack">
+				<interceptor-ref name="createSession" />
+				<interceptor-ref name="exception"/>
                 <interceptor-ref name="alias"/>
-                <interceptor-ref name="servletConfig"/>
+                <interceptor-ref name="servlet-config"/>
                 <interceptor-ref name="prepare"/>
                 <interceptor-ref name="i18n"/>
                 <interceptor-ref name="chain"/>
                 <interceptor-ref name="debugging"/>
-                <interceptor-ref name="modelDriven"/>
+                <interceptor-ref name="model-driven"/>
                 <interceptor-ref name="fileUpload"/>
-                <interceptor-ref name="staticParams"/>
+                <interceptor-ref name="static-params"/>
                 <interceptor-ref name="params"/>
                 <interceptor-ref name="conversionError"/>
                 <interceptor-ref name="validation">
@@ -29,62 +29,62 @@
                     <param name="excludeMethods">input,back,cancel,browse</param>
                 </interceptor-ref>
                 <interceptor-ref name="chatAuthentication" />
-      </interceptor-stack>
-    </interceptors>
-
-    <global-results>
-      <result name="login" type="freemarker">/chat/chatLogin.ftl</result>
-    </global-results>
-
-    <action name="main">
-      <interceptor-ref name="chatAuthentication" />
-      <result type="freemarker">/chat/roomSelection.ftl</result>
-    </action>
-
-    <action name="login" class="chatLoginAction">
-      <interceptor-ref name="defaultStack" />
-      <result type="redirect">/chat/showRooms.action</result>
-      <result name="input" type="freemarker">/chat/chatLogin.ftl</result>
-    </action>
-
-    <action name="logout" class="chatLogoutAction">
-      <interceptor-ref name="defaultStack" />
-      <result type="redirect">/chat/main.action</result>
-    </action>
-
-    <action name="showRooms">
-      <interceptor-ref name="chatAuthenticationStack" />
-      <result type="freemarker">/chat/roomSelection.ftl</result>
-    </action>
-
-    <action name="enterRoom" class="enterRoomAction">
-      <interceptor-ref name="chatAuthenticationStack" />
-      <result type="freemarker">/chat/showRoom.ftl</result>
-    </action>
-
-    <action name="exitRoom" class="exitRoomAction">
-      <interceptor-ref name="chatAuthenticationStack" />
-      <result type="redirect">/chat/showRooms.action</result>
-    </action>
-
-  </package>
-
-  <package name="chat-remote" extends="struts-default" namespace="/chat/ajax">
-    <interceptors>
-      <interceptor name="chatAuthentication"
-             class="org.apache.struts2.showcase.chat.ChatAuthenticationInterceptor" />
-      <interceptor-stack name="chatAuthenticationStack">
-        <interceptor-ref name="createSession" />
-        <interceptor-ref name="exception"/>
+			</interceptor-stack>						
+		</interceptors>
+		
+		<global-results>
+			<result name="login" type="freemarker">/chat/chatLogin.ftl</result>
+		</global-results>
+		
+		<action name="main">
+			<interceptor-ref name="chatAuthentication" />
+			<result type="freemarker">/chat/roomSelection.ftl</result>
+		</action>
+		
+		<action name="login" class="chatLoginAction">
+			<interceptor-ref name="defaultStack" />
+			<result type="redirect">/chat/showRooms.action</result>
+			<result name="input" type="freemarker">/chat/chatLogin.ftl</result>
+		</action>
+		
+		<action name="logout" class="chatLogoutAction">
+			<interceptor-ref name="defaultStack" />
+			<result type="redirect">/chat/main.action</result>
+		</action>
+		
+		<action name="showRooms">
+			<interceptor-ref name="chatAuthenticationStack" />
+			<result type="freemarker">/chat/roomSelection.ftl</result>
+		</action>
+		
+		<action name="enterRoom" class="enterRoomAction">
+			<interceptor-ref name="chatAuthenticationStack" />
+			<result type="freemarker">/chat/showRoom.ftl</result>
+		</action>
+		
+		<action name="exitRoom" class="exitRoomAction">
+			<interceptor-ref name="chatAuthenticationStack" />
+			<result type="redirect">/chat/showRooms.action</result>
+		</action>
+		
+	</package>
+	
+	<package name="chat-remote" extends="struts-default" namespace="/chat/ajax">
+		<interceptors>
+			<interceptor name="chatAuthentication" 
+						 class="org.apache.struts2.showcase.chat.ChatAuthenticationInterceptor" />
+			<interceptor-stack name="chatAuthenticationStack">
+				<interceptor-ref name="createSession" />
+				<interceptor-ref name="exception"/>
                 <interceptor-ref name="alias"/>
-                <interceptor-ref name="servletConfig"/>
+                <interceptor-ref name="servlet-config"/>
                 <interceptor-ref name="prepare"/>
                 <interceptor-ref name="i18n"/>
                 <interceptor-ref name="chain"/>
                 <interceptor-ref name="debugging"/>
-                <interceptor-ref name="modelDriven"/>
+                <interceptor-ref name="model-driven"/>
                 <interceptor-ref name="fileUpload"/>
-                <interceptor-ref name="staticParams"/>
+                <interceptor-ref name="static-params"/>
                 <interceptor-ref name="params"/>
                 <interceptor-ref name="conversionError"/>
                 <interceptor-ref name="validation">
@@ -94,42 +94,42 @@
                     <param name="excludeMethods">input,back,cancel,browse</param>
                 </interceptor-ref>
                 <interceptor-ref name="chatAuthentication" />
-      </interceptor-stack>
-    </interceptors>
-
-
-    <action name="usersAvailable" class="usersAvailableAction">
-      <interceptor-ref name="chatAuthenticationStack" />
-      <result type="freemarker">/chat/usersAvailable.ftl</result>
-    </action>
-
-    <action name="roomsAvailable" class="roomsAvailableAction">
-      <interceptor-ref name="chatAuthenticationStack" />
-      <result type="freemarker">/chat/roomsAvailable.ftl</result>
-    </action>
-
-    <action name="createRoom" class="crudRoomAction" method="create">
-      <interceptor-ref name="chatAuthenticationStack" />
-      <result type="freemarker">/chat/createRoom.ftl</result>
-      <result name="input" type="freemarker">/chat/createRoom.ftl</result>
-    </action>
-
-    <action name="messagesAvailableInRoom" class="messagesAvailableInRoomAction">
-      <interceptor-ref name="chatAuthenticationStack" />
-      <result type="freemarker">/chat/messagesAvailableInRoom.ftl</result>
-      <result name="input" type="freemarker">/chat/messagesAvailableInRoom.ftl</result>
-    </action>
-
-    <action name="sendMessageToRoom" class="sendMessageToRoomAction">
-      <interceptor-ref name="chatAuthenticationStack" />
-      <result type="freemarker">/chat/sendMessageToRoomResult.ftl</result>
-      <result name="input" type="freemarker">/chat/sendMessageToRoomResult.ftl</result>
-    </action>
-
-    <action name="usersAvailableInRoom" class="usersAvailableInRoomAction">
-      <interceptor-ref name="chatAuthenticationStack" />
-      <result type="freemarker">/chat/usersAvailableInRoom.ftl</result>
-    </action>
-  </package>
-</struts>
+			</interceptor-stack>						
+		</interceptors>
+		
+		
+		<action name="usersAvailable" class="usersAvailableAction">
+			<interceptor-ref name="chatAuthenticationStack" />
+			<result type="freemarker">/chat/usersAvailable.ftl</result>
+		</action>
+		
+		<action name="roomsAvailable" class="roomsAvailableAction">
+			<interceptor-ref name="chatAuthenticationStack" />
+			<result type="freemarker">/chat/roomsAvailable.ftl</result>
+		</action>
+		
+		<action name="createRoom" class="crudRoomAction" method="create">
+			<interceptor-ref name="chatAuthenticationStack" />
+			<result type="freemarker">/chat/createRoom.ftl</result>
+			<result name="input" type="freemarker">/chat/createRoom.ftl</result>
+		</action>
+		
+		<action name="messagesAvailableInRoom" class="messagesAvailableInRoomAction">
+			<interceptor-ref name="chatAuthenticationStack" />
+			<result type="freemarker">/chat/messagesAvailableInRoom.ftl</result>
+			<result name="input" type="freemarker">/chat/messagesAvailableInRoom.ftl</result>
+		</action>
+		
+		<action name="sendMessageToRoom" class="sendMessageToRoomAction">
+			<interceptor-ref name="chatAuthenticationStack" />
+			<result type="freemarker">/chat/sendMessageToRoomResult.ftl</result>
+			<result name="input" type="freemarker">/chat/sendMessageToRoomResult.ftl</result>
+		</action>
+		
+		<action name="usersAvailableInRoom" class="usersAvailableInRoomAction">
+			<interceptor-ref name="chatAuthenticationStack" />
+			<result type="freemarker">/chat/usersAvailableInRoom.ftl</result>
+		</action>
+	</package> 
+</struts>	
 
diff --git a/apps/showcase/src/main/resources/struts-conversion.xml b/apps/showcase/src/main/resources/struts-conversion.xml
index a3e487b..c3259e6 100644
--- a/apps/showcase/src/main/resources/struts-conversion.xml
+++ b/apps/showcase/src/main/resources/struts-conversion.xml
@@ -18,13 +18,13 @@
 			<result name="input">enterPersonInfo.jsp</result>
 		</action>
 		<action name="showPersonJspCode">
-			<result type="plainText">/conversion/enterPersonInfo.jsp</result>
+			<result type="plaintext">/conversion/enterPersonInfo.jsp</result>
 		</action>
 		<action name="showPersonActionJavaCode">
-			<result type="plainText">/conversion/PersonAction.java.txt</result>
+			<result type="plaintext">/conversion/PersonAction.java.txt</result>
 		</action>
 		<action name="showPersonJavaCode">
-			<result type="plainText">/conversion/Person.java.txt</result>
+			<result type="plaintext">/conversion/Person.java.txt</result>
 		</action>
 		
 		
@@ -37,13 +37,13 @@
 			<result name="input">enterAddressInfo.jsp</result>
 		</action>
 		<action name="showAddressJspCode">
-			<result type="plainText">/conversion/enterAddressInfo.jsp</result>
+			<result type="plaintext">/conversion/enterAddressInfo.jsp</result>
 		</action>
 		<action name="showAddressActionJavaCode">
-			<result type="plainText">/conversion/AddressAction.java.txt</result>
+			<result type="plaintext">/conversion/AddressAction.java.txt</result>
 		</action>
 		<action name="showAddressJavaCode">
-			<result type="plainText">/conversion/Address.java.txt</result>
+			<result type="plaintext">/conversion/Address.java.txt</result>
 		</action>
 		
 		
@@ -56,19 +56,19 @@
 			<result name="input">enterOperations.jsp</result>
 		</action>
 		<action name="showEnumJspCode">
-			<result type="plainText">/conversion/enterOperations.jsp</result>
+			<result type="plaintext">/conversion/enterOperations.jsp</result>
 		</action>
 		<action name="showOperationsEnumJavaCode">
-			<result type="plainText">/conversion/OperationsEnum.java.txt</result>
+			<result type="plaintext">/conversion/OperationsEnum.java.txt</result>
 		</action>
 		<action name="showOperationEnumActionJavaCode">
-			<result type="plainText">/conversion/OperationsEnumAction.java.txt</result>
+			<result type="plaintext">/conversion/OperationsEnumAction.java.txt</result>
 		</action>
 		<action name="showEnumTypeConverterJavaCode">
-			<result type="plainText">/conversion/EnumTypeConverter.java.txt</result>
+			<result type="plaintext">/conversion/EnumTypeConverter.java.txt</result>
 		</action>
 		<action name="showOperationsEnumActionConversionProperties">
-			<result type="plainText">/conversion/OperationsEnumActionConversion.txt</result>
+			<result type="plaintext">/conversion/OperationsEnumActionConversion.txt</result>
 		</action>
 		
 	</package>
diff --git a/apps/showcase/src/main/resources/struts-integration.xml b/apps/showcase/src/main/resources/struts-integration.xml
index bde4a2a..66f28d2 100644
--- a/apps/showcase/src/main/resources/struts-integration.xml
+++ b/apps/showcase/src/main/resources/struts-integration.xml
@@ -5,44 +5,45 @@
     "http://struts.apache.org/dtds/struts-2.0.dtd">
 
 <struts>
-  <package name="integration" extends="struts1-default" namespace="/integration">
-
-      <interceptors>
-          <interceptor name="gangsterForm" class="com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor">
-            <param name="className">org.apache.struts2.showcase.integration.GangsterForm</param>
-            <param name="name">gangsterForm</param>
-          </interceptor>
-          <interceptor name="gangsterValidation" class="org.apache.struts2.s1.ActionFormValidationInterceptor">
-            <param name="pathnames">/org/apache/struts/validator/validator-rules.xml,/WEB-INF/validation.xml</param>
-          </interceptor>
-
-        <interceptor-stack name="integration">
-          <interceptor-ref name="staticParams"/>
-          <interceptor-ref name="gangsterForm"/>
-          <interceptor-ref name="modelDriven"/>
+	<package name="integration" extends="struts1-default" namespace="/integration">
+	    
+	    <interceptors>
+	        <interceptor name="gangsterForm" class="com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor">
+	        	<param name="className">org.apache.struts2.showcase.integration.GangsterForm</param>
+	        	<param name="name">gangsterForm</param>
+	        </interceptor>
+	        <interceptor name="gangsterValidation" class="org.apache.struts2.s1.ActionFormValidationInterceptor">
+	        	<param name="pathnames">/org/apache/struts/validator/validator-rules.xml,/WEB-INF/validation.xml</param>
+	        </interceptor>
+	    
+	    	<interceptor-stack name="integration">
+	    		<interceptor-ref name="static-params"/>
+	    		<interceptor-ref name="gangsterForm"/>
+	    		<interceptor-ref name="model-driven"/>
                 <interceptor-ref name="actionForm-reset"/>
                 <interceptor-ref name="basicStack"/>
                 <interceptor-ref name="gangsterValidation"/>
                 <interceptor-ref name="workflow"/>
-        </interceptor-stack>
-      </interceptors>
-
-      <default-interceptor-ref name="integration" />
-      <default-action-ref name="editGangster" />
-
-      <!-- Diplay entry page that uses Model-Driven technique -->
-    <action name="editGangster" class="org.apache.struts2.s1.Struts1Action">
-        <param name="className">org.apache.struts2.showcase.integration.EditGangsterAction</param>
-      <result>modelDriven.jsp</result>
-    </action>
-
-    <!-- Display the result page whose content is populated using the Model-Driven technique -->
-    <action name="saveGangster" class="org.apache.struts2.s1.Struts1Action">
-        <param name="className">org.apache.struts2.showcase.integration.SaveGangsterAction</param>
-        <param name="validate">true</param>
-      <result name="input">modelDriven.jsp</result>
-      <result>modelDrivenResult.jsp</result>
-    </action>
-
-  </package>
-</struts>
+	    	</interceptor-stack>
+	    </interceptors>
+	    
+	    <default-interceptor-ref name="integration" />
+	    <default-action-ref name="editGangster" />
+	    
+	    <!-- Diplay entry page that uses Model-Driven technique -->
+		<action name="editGangster" class="org.apache.struts2.s1.Struts1Action">
+	    	<param name="className">org.apache.struts2.showcase.integration.EditGangsterAction</param>
+			<result>modelDriven.jsp</result>
+		</action>
+		
+		<!-- Display the result page whose content is populated using the Model-Driven technique -->
+		<action name="saveGangster" class="org.apache.struts2.s1.Struts1Action">
+	    	<param name="className">org.apache.struts2.showcase.integration.SaveGangsterAction</param>
+	    	<param name="validate">true</param>
+			<result name="input">modelDriven.jsp</result>
+			<result>modelDrivenResult.jsp</result>
+		</action>
+	    
+	</package>
+</struts>	
+	
\ No newline at end of file
diff --git a/apps/showcase/src/main/resources/struts-tags-non-ui.xml b/apps/showcase/src/main/resources/struts-tags-non-ui.xml
index e4e1f4e..244acd5 100644
--- a/apps/showcase/src/main/resources/struts-tags-non-ui.xml
+++ b/apps/showcase/src/main/resources/struts-tags-non-ui.xml
@@ -22,7 +22,7 @@
 			<result>/tags/non-ui/actionTag/includedPage3.jsp</result>
 		</action>
 		<action name="lookAtSource">
-			<result type="plainText">/tags/non-ui/actionTag/showActionTagDemo.jsp</result>
+			<result type="plaintext">/tags/non-ui/actionTag/showActionTagDemo.jsp</result>
 		</action>
 	</package>
 	
@@ -104,10 +104,10 @@
 			<result type="freemarker">/tags/non-ui/actionPrefix/redirectActionPrefix.ftl</result>
 		</action>
         <action name="redirectActionPrefixAction">
-            <result type="redirect">redirectActionPrefix</result>
+            <result type="redirect-action">redirectActionPrefix</result>
         </action>
 		<action name="viewSource">
-			<result type="plainText">/tags/non-ui/actionPrefix/actionPrefixExample.ftl</result>
+			<result type="plaintext">/tags/non-ui/actionPrefix/actionPrefixExample.ftl</result>
 		</action>
 	</package>
 	
diff --git a/apps/showcase/src/main/resources/struts-tags-ui.xml b/apps/showcase/src/main/resources/struts-tags-ui.xml
index 4fd388f..5f9568e 100644
--- a/apps/showcase/src/main/resources/struts-tags-ui.xml
+++ b/apps/showcase/src/main/resources/struts-tags-ui.xml
@@ -49,7 +49,7 @@
         
         
         <action name="showComponentTagExampleCode">
-        	<result type="plainText">/tags/ui/componentTagExample.jsp</result>
+        	<result type="plaintext">/tags/ui/componentTagExample.jsp</result>
         </action>
         
 	</package>
diff --git a/apps/showcase/src/main/resources/struts-token.xml b/apps/showcase/src/main/resources/struts-token.xml
index 6147896..a06098c 100644
--- a/apps/showcase/src/main/resources/struts-token.xml
+++ b/apps/showcase/src/main/resources/struts-token.xml
@@ -39,7 +39,7 @@
 
         <action name="transfer3" class="org.apache.struts2.showcase.token.TokenAction">
             <interceptor-ref name="defaultStack"/>
-            <interceptor-ref name="tokenSession"/>
+            <interceptor-ref name="token-session"/>
             <result name="invalid.token">doublePost.jsp</result>
             <result name="success" type="redirect">transferDone.jsp</result>
         </action>
diff --git a/apps/showcase/src/main/resources/struts.xml b/apps/showcase/src/main/resources/struts.xml
index 2a4efed..8f1cf52 100644
--- a/apps/showcase/src/main/resources/struts.xml
+++ b/apps/showcase/src/main/resources/struts.xml
@@ -22,6 +22,8 @@
 
     <include file="struts-hangman.xml" />
 
+    <include file="struts-continuations.xml"/>
+
     <include file="struts-tags.xml"/>
 
     <include file="struts-validation.xml" />
@@ -59,7 +61,7 @@
             <interceptor-stack name="crudStack">
               <interceptor-ref name="checkbox" />
                 <interceptor-ref name="params" />
-        <interceptor-ref name="staticParams" />
+        <interceptor-ref name="static-params" />
                 <interceptor-ref name="defaultStack" />
             </interceptor-stack>
         </interceptors>
diff --git a/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp b/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp
index 0e15e48..ca47952 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp
+++ b/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp
@@ -5,7 +5,7 @@
     response.setHeader("Pragma", "no-cache");
     response.setHeader("Cache-Control", "no-cache");
     response.setDateHeader("Expires", 0);
-    
+
     // Calculate the view sources url
     String sourceUrl = request.getContextPath()+"/viewSource.action";
     com.opensymphony.xwork2.ActionInvocation inv = com.opensymphony.xwork2.ActionContext.getContext().getActionInvocation();
@@ -14,9 +14,9 @@
         com.opensymphony.xwork2.util.location.Location loc = inv.getProxy().getConfig().getLocation();
         sourceUrl += "?config="+(loc != null ? loc.getURI()+":"+loc.getLineNumber() : "");
         sourceUrl += "&className="+inv.getProxy().getConfig().getClassName();
-        
+
         if (inv.getResult() != null && inv.getResult() instanceof org.apache.struts2.dispatcher.StrutsResultSupport) {
-	        sourceUrl += "&page="+mapping.getNamespace()+"/"+((org.apache.struts2.dispatcher.StrutsResultSupport)inv.getResult()).getLastFinalLocation();
+          sourceUrl += "&page="+mapping.getNamespace()+"/"+((org.apache.struts2.dispatcher.StrutsResultSupport)inv.getResult()).getLastFinalLocation();
         }
     } else {
         sourceUrl += "?page="+request.getServletPath();
@@ -104,11 +104,11 @@
 
     </div><!-- end content -->
 
-	<div>
-    	<p>
-    		<a href="<%=sourceUrl %>">View Sources</a>
-    	</p>
-	</div>
+  <div>
+      <p>
+        <a href="<%=sourceUrl %>">View Sources</a>
+      </p>
+  </div>
     <div id="footer" class="clearfix">
         <p>Copyright &copy; 2003-<s:property value="#dateAction.now.year + 1900" /> The Apache Software Foundation.</p>
     </div><!-- end footer -->
diff --git a/apps/showcase/src/main/webapp/ajax/autocompleter/index.jsp b/apps/showcase/src/main/webapp/ajax/autocompleter/index.jsp
index c9d3732..b17c2b5 100644
--- a/apps/showcase/src/main/webapp/ajax/autocompleter/index.jsp
+++ b/apps/showcase/src/main/webapp/ajax/autocompleter/index.jsp
@@ -1,6 +1,5 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 <html>
 <head>
     <title>Ajax Examples</title>
@@ -17,7 +16,7 @@
 
 Using a JSON list returned from an action (href="/JSONList.action"), without autoComplete (autoComplete="false"), use indicator, search substring (searchType="substring")
 <br/>
-<sx:autocompleter name="state"  indicator="indicator1" href="%{jsonList}" cssStyle="width: 200px;" autoComplete="false" searchType="substring"/>
+<s:autocompleter name="state" theme="ajax" indicator="indicator1" href="%{jsonList}" cssStyle="width: 200px;" autoComplete="false" searchType="substring"/>
 <img id="indicator1" src="${pageContext.request.contextPath}/images/indicator.gif" alt="Loading..." style="display:none"/>
 
 <br/>
@@ -25,7 +24,7 @@
 
 Reload on type (loadOnTextChange="true"), after 3 characters (loadMinimumCout="3", it is "3" by default), without the down arrow button (showDownArrow="false")
 <br/>
-<sx:autocompleter  indicator="indicator" href="%{jsonList}" cssStyle="width: 200px;" autoComplete="false" loadOnTextChange="true" loadMinimumCount="3" showDownArrow="false"/>
+<s:autocompleter name="state" theme="ajax" indicator="indicator" href="%{jsonList}" cssStyle="width: 200px;" autoComplete="false" loadOnTextChange="true" loadMinimumCount="3" showDownArrow="false"/>
 <img id="indicator" src="${pageContext.request.contextPath}/images/indicator.gif" alt="Loading..." style="display:none"/>
 
 <br/>
@@ -33,35 +32,35 @@
 
 Using a JSON list returned from an action (href="/JSONList.action"), with autoComplete (autoComplete="true")
 <br/>
-<sx:autocompleter  href="%{jsonList}" cssStyle="width: 200px;" autoComplete="true" />
+<s:autocompleter theme="ajax" href="%{jsonList}" cssStyle="width: 200px;" autoComplete="true" />
 
 <br/>
 <br/>
 
 Using a local list (list="{'apple','banana','grape','pear'}")
 <br/>
-<sx:autocompleter list="{'apple','banana','grape','pear'}" cssStyle="width: 150px;"/>
+<s:autocompleter theme="simple" list="{'apple','banana','grape','pear'}" cssStyle="width: 150px;"/>
 
 <br/>
 <br/>
 
 Force valid options (forceValidOption="true")
 <br/>
-<sx:autocompleter  href="%{jsonList}" cssStyle="width: 200px;" forceValidOption="true"/>
+<s:autocompleter theme="ajax" href="%{jsonList}" cssStyle="width: 200px;" forceValidOption="true"/>
 
 <br/>
 <br/>
 
 Make dropdown's height to 180px  (dropdownHeight="180")
 <br/>
-<sx:autocompleter  href="%{jsonList}" cssStyle="width: 200px;" dropdownHeight="180"/>
+<s:autocompleter theme="ajax" href="%{jsonList}" cssStyle="width: 200px;" dropdownHeight="180"/>
 
 <br/>
 <br/>
 
 Disabled combobox (disabled="true")
 <br/>
-<sx:autocompleter  href="%{jsonList}" cssStyle="width: 200px;" disabled="true"/>
+<s:autocompleter theme="ajax" href="%{jsonList}" cssStyle="width: 200px;" disabled="true"/>
 
 <br/>
 <br/>
@@ -72,9 +71,9 @@
 Link two autocompleter elements. When the selected value in 'Autocompleter 1' changes, the available values in 'Autocompleter 2' will change also.
 <br/>
 <form id="selectForm">
-  <p>Autocompleter 1 <sx:autocompleter  name="select" list="{'fruits','colors'}"  value="colors" notifyTopics="/Changed" forceValidOption="true" id="sel"/></p>
+  <p>Autocompleter 1 <s:autocompleter theme="simple" name="select" list="{'fruits','colors'}"  value="colors" notifyTopics="/Changed" forceValidOption="true" id="sel"/></p>
 </form>
-Autocompleter 2 <sx:autocompleter  href="%{#autoex}" autoComplete="false" formId="selectForm" listenTopics="/Changed" forceValidOption="true" id="ops"/>
+Autocompleter 2 <s:autocompleter theme="ajax" href="%{#autoex}" autoComplete="false" formId="selectForm" listenTopics="/Changed" forceValidOption="true" id="ops"/>
 
 <br/>
 <br/>
diff --git a/apps/showcase/src/main/webapp/ajax/commonInclude.jsp b/apps/showcase/src/main/webapp/ajax/commonInclude.jsp
index 605c68d..f004910 100644
--- a/apps/showcase/src/main/webapp/ajax/commonInclude.jsp
+++ b/apps/showcase/src/main/webapp/ajax/commonInclude.jsp
@@ -1,5 +1,4 @@
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 <!--// START SNIPPET: common-include-->
-<sx:head debug="true"/>
+<s:head theme="ajax"/>
 <!--// END SNIPPET: common-include-->
diff --git a/apps/showcase/src/main/webapp/ajax/index.jsp b/apps/showcase/src/main/webapp/ajax/index.jsp
index 037ce21..4434c4b 100644
--- a/apps/showcase/src/main/webapp/ajax/index.jsp
+++ b/apps/showcase/src/main/webapp/ajax/index.jsp
@@ -15,9 +15,9 @@
     <li><a href="remotediv">Remote div tag</a></li>
     <li><a href="remotelink">Remote link tag</a></li>
     <li><a href="tabbedpanel">Tabbed panel</a></li>
-    <li><a href="widgets">Widgets </a> (may not work in all browsers!) 
+    <li><a href="widgets">Widgets </a> (may not work in all browsers!)
         see the <a href="http://www.dojotoolkit.org">dojo website</a> for more information</li>
-    <li>(broken) <a href="remoteforms">Remote forms</a></li>
+    <li><a href="remoteforms">Remote forms</a></li>
 </ul>
 </body>
 </html>
diff --git a/apps/showcase/src/main/webapp/ajax/remotebutton/index.jsp b/apps/showcase/src/main/webapp/ajax/remotebutton/index.jsp
index f9982e7..59b4084 100644
--- a/apps/showcase/src/main/webapp/ajax/remotebutton/index.jsp
+++ b/apps/showcase/src/main/webapp/ajax/remotebutton/index.jsp
@@ -1,6 +1,5 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
 <html>
 <head>
@@ -13,7 +12,7 @@
    function after() {alert("after request");}
    function handler(widget, node) {
      alert('I will handle this myself!');
-     dojo.byId(widget.targetsArray[0]).innerHTML = "Done";
+   dojo.byId(widget.targetsArray[0]).innerHTML = "Done";
    }
 
     dojo.event.topic.subscribe("/after", function(data, type, e){
@@ -34,19 +33,19 @@
 
 A submit button, with an indicator
 <img id="indicator" src="${pageContext.request.contextPath}/images/indicator.gif" alt="Loading..." style="display:none"/>
-<sx:submit type="submit" value="submit" targets="t1" href="%{ajaxTest}" indicator="indicator"/>
+<s:submit type="submit" theme="ajax" value="submit" targets="t1" href="%{ajaxTest}" align="left" indicator="indicator"/>
 
 <br/><br/>
 
 A submit button, with "notifyTopics"
-<sx:submit type="submit" value="submit" targets="t1" href="%{ajaxTest}" notifyTopics="/after"/>
+<s:submit type="submit" theme="ajax" value="submit" targets="t1" href="%{ajaxTest}" align="left" notifyTopics="/after"/>
 
 <br/><br/>
 
 Use an image as submit
 
-<sx:submit type="image" label="Alt Text" targets="t1"
-  src="${pageContext.request.contextPath}/images/struts-power.gif" href="%{ajaxTest}" />
+<s:submit type="image" theme="ajax" label="Alt Text" targets="t1"
+  src="${pageContext.request.contextPath}/images/struts-power.gif" href="%{ajaxTest}" align="left" />
 <br/><br/>
 
 <label for="textInput">Text to be echoed</label>
@@ -55,7 +54,7 @@
 Use a button as submit (custom text)
 <s:form id="form" action="AjaxTest">
   <input type=textbox name="data">
-  <sx:submit type="button" label="Update Content" targets="t1"  id="ajaxbtn"/>
+  <s:submit type="button" theme="ajax" label="Update Content" targets="t1"  id="ajaxbtn"/>
 </s:form>
 
 <br/><br/>
diff --git a/apps/showcase/src/main/webapp/ajax/remotediv/example1.jsp b/apps/showcase/src/main/webapp/ajax/remotediv/example1.jsp
index 47f8fa6..99ccc84 100644
--- a/apps/showcase/src/main/webapp/ajax/remotediv/example1.jsp
+++ b/apps/showcase/src/main/webapp/ajax/remotediv/example1.jsp
@@ -1,6 +1,5 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
 <html>
 <head>
@@ -12,11 +11,12 @@
 
 
 <body>
-<sx:div
+<s:div
         id="once"
+        theme="ajax"
         cssStyle="border: 1px solid yellow;"
         href="%{ajaxTest}">
-    Initial Content</sx:div>
+    Initial Content</s:div>
 
 <s:include value="../footer.jsp"/>
 
diff --git a/apps/showcase/src/main/webapp/ajax/remotediv/example10.jsp b/apps/showcase/src/main/webapp/ajax/remotediv/example10.jsp
index c4dadc9..09034b7 100644
--- a/apps/showcase/src/main/webapp/ajax/remotediv/example10.jsp
+++ b/apps/showcase/src/main/webapp/ajax/remotediv/example10.jsp
@@ -1,6 +1,5 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
 <html>
 <head>
@@ -18,12 +17,13 @@
 <s:url id="ajaxTest" value="/AjaxTest.action" />
 
 <body>
-<sx:div
+<s:div
         id="once"
+        theme="ajax"
         cssStyle="border: 1px solid yellow;"
         href="%{ajaxTest}"
 		handler="handler">
-    Initial Content</sx:div>
+    Initial Content</s:div>
 
 <s:include value="../footer.jsp"/>
 
diff --git a/apps/showcase/src/main/webapp/ajax/remotediv/example2.jsp b/apps/showcase/src/main/webapp/ajax/remotediv/example2.jsp
index 261aaff..f2c320d 100644
--- a/apps/showcase/src/main/webapp/ajax/remotediv/example2.jsp
+++ b/apps/showcase/src/main/webapp/ajax/remotediv/example2.jsp
@@ -1,6 +1,5 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
 <html>
 <head>
@@ -13,14 +12,15 @@
 <s:url id="ajaxTest" value="/AjaxTest.action" />
 
 
-<sx:div
+<s:div
         id="once"
+        theme="ajax"
         cssStyle="border: 1px solid yellow;"
         href="%{ajaxTest}"
         updateFreq="2000"
         indicator="indicator"
 		>
-    Initial Content</sx:div>
+    Initial Content</s:div>
 <img id="indicator" src="${pageContext.request.contextPath}/images/indicator.gif" alt="Loading..." style="display:none"/>
 <s:include value="../footer.jsp"/>
 
diff --git a/apps/showcase/src/main/webapp/ajax/remotediv/example3.jsp b/apps/showcase/src/main/webapp/ajax/remotediv/example3.jsp
index ba64040..b5ef770 100644
--- a/apps/showcase/src/main/webapp/ajax/remotediv/example3.jsp
+++ b/apps/showcase/src/main/webapp/ajax/remotediv/example3.jsp
@@ -1,6 +1,5 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
 <html>
 <head>
@@ -13,13 +12,14 @@
 <s:url id="ajaxTest" value="/AjaxTest.action" />
 
 
-<sx:div
+<s:div
         id="twoseconds"
         cssStyle="border: 1px solid yellow;"
         href="%{ajaxTest}"
+        theme="ajax"
         delay="2000"
         updateFreq="%{#parameters.period}"
-        errorText="There was an error">Initial Content</sx:div>
+        errorText="There was an error">Initial Content</s:div>
 
 <s:include value="../footer.jsp"/>
 
diff --git a/apps/showcase/src/main/webapp/ajax/remotediv/example4.jsp b/apps/showcase/src/main/webapp/ajax/remotediv/example4.jsp
index 077ee5a..6b93de8 100644
--- a/apps/showcase/src/main/webapp/ajax/remotediv/example4.jsp
+++ b/apps/showcase/src/main/webapp/ajax/remotediv/example4.jsp
@@ -1,6 +1,5 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
 <html>
 <head>
@@ -12,14 +11,15 @@
 
 <s:url id="ajaxTest" value="/AjaxTest.action" />
 
-<sx:div
+<s:div
         id="fiveseconds"
         cssStyle="border: 1px solid yellow;"
         href="%{ajaxTest}"
+        theme="ajax"
         delay="1000"
         updateFreq="5000"
         errorText="There was an error"
-        loadingText="reloading">loading now</sx:div>
+        loadingText="reloading">loading now</s:div>
 
 <s:include value="../footer.jsp"/>
 
diff --git a/apps/showcase/src/main/webapp/ajax/remotediv/example5.jsp b/apps/showcase/src/main/webapp/ajax/remotediv/example5.jsp
index b83d1bf..75b6e19 100644
--- a/apps/showcase/src/main/webapp/ajax/remotediv/example5.jsp
+++ b/apps/showcase/src/main/webapp/ajax/remotediv/example5.jsp
@@ -1,6 +1,5 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
 <html>
 <head>
@@ -12,13 +11,14 @@
 
 <s:url id="ajaxNoUrl" value="/AjaxNoUrl.jsp" />
 
-<sx:div
+<s:div
         id="error"
         cssStyle="border: 1px solid yellow;"
         href="/AjaxNoUrl.jsp"
+        theme="ajax"
         delay="1000"
         errorText="Could not contact server"
-        loadingText="reloading">loading now</sx:div>
+        loadingText="reloading">loading now</s:div>
 
 
 <s:include value="../footer.jsp"/>
diff --git a/apps/showcase/src/main/webapp/ajax/remotediv/example6.jsp b/apps/showcase/src/main/webapp/ajax/remotediv/example6.jsp
index b33caf9..3088742 100644
--- a/apps/showcase/src/main/webapp/ajax/remotediv/example6.jsp
+++ b/apps/showcase/src/main/webapp/ajax/remotediv/example6.jsp
@@ -1,6 +1,5 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
 <html>
 <head>
@@ -10,13 +9,14 @@
 
 <body>
 
-<sx:div
+<s:div
         id="error"
         cssStyle="border: 1px solid yellow;"
         href="/AjaxNoUrl.jsp"
+        theme="ajax"
         delay="1000"
         showErrorTransportText="true"
-        loadingText="reloading">loading now</sx:div>
+        loadingText="reloading">loading now</s:div>
 
 <s:include value="../footer.jsp"/>
 
diff --git a/apps/showcase/src/main/webapp/ajax/remotediv/example7.jsp b/apps/showcase/src/main/webapp/ajax/remotediv/example7.jsp
index 970783a..356d62c 100644
--- a/apps/showcase/src/main/webapp/ajax/remotediv/example7.jsp
+++ b/apps/showcase/src/main/webapp/ajax/remotediv/example7.jsp
@@ -1,6 +1,5 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
 <html>
 <head>
@@ -13,13 +12,14 @@
 <s:url id="test3" value="/Test3.action" />
 
 
-<sx:div
+<s:div
         id="error"
         cssStyle="border: 1px solid yellow;"
         href="%{test3}"
+        theme="ajax"
         delay="1000"
 		executeScripts="true"
-        loadingText="reloading">loading now</sx:div>
+        loadingText="reloading">loading now</s:div>
 
 <s:include value="../footer.jsp"/>
 
diff --git a/apps/showcase/src/main/webapp/ajax/remotediv/example8.jsp b/apps/showcase/src/main/webapp/ajax/remotediv/example8.jsp
index de28e5c..37fc6da 100644
--- a/apps/showcase/src/main/webapp/ajax/remotediv/example8.jsp
+++ b/apps/showcase/src/main/webapp/ajax/remotediv/example8.jsp
@@ -1,6 +1,5 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
 <html>
 <head>
@@ -36,8 +35,9 @@
 
 <s:url id="ajaxTest" value="/AjaxTest.action" />
 
-<sx:div
+<s:div
         id="once"
+        theme="ajax"
         cssStyle="border: 1px solid yellow;"
         href="%{ajaxTest}"
         loadingText="Loading..."
@@ -48,7 +48,7 @@
 		autoStart="true"
 		formId="form"
 		>
-    Initial Content</sx:div>
+    Initial Content</s:div>
 
 <s:include value="../footer.jsp"/>
 
diff --git a/apps/showcase/src/main/webapp/ajax/remotediv/example9.jsp b/apps/showcase/src/main/webapp/ajax/remotediv/example9.jsp
index 90513a1..3ea37dc 100644
--- a/apps/showcase/src/main/webapp/ajax/remotediv/example9.jsp
+++ b/apps/showcase/src/main/webapp/ajax/remotediv/example9.jsp
@@ -1,6 +1,5 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
 <html>
 <head>
@@ -21,18 +20,11 @@
 	dojo.event.topic.registerPublisher("/startTimer", controller, "start");
 	dojo.event.topic.registerPublisher("/stopTimer", controller, "stop");
 
-    dojo.event.topic.subscribe("/before", function(data, type, e){
-      alert('inside a topic event. before request');
-      //data : source element id
-      //type : "before" 
-      //e    : request object
-    });
-    
     dojo.event.topic.subscribe("/after", function(data, type, e){
-      alert('inside a topic event. after request');
+      alert('inside a topic event. type='+type);
       //data : text returned
-      //type : "load" 
-      //e    : undefined
+      //type : "before", "load" or "error"
+      //e    : request object
     });
 
 </script>
@@ -43,8 +35,9 @@
 
 <s:url id="ajaxTest" value="/AjaxTest.action" />
 
-<sx:div
-        id="div1"
+<s:div
+        id="once"
+        theme="ajax"
         cssStyle="border: 1px solid yellow;"
         href="%{ajaxTest}"
         listenTopics="/refresh"
@@ -52,10 +45,10 @@
 		stopTimerListenTopics="/stopTimer"
 		updateFreq="10000"
 		autoStart="false"
-        beforeNotifyTopics="/before"
-        afterNotifyTopics="/after"
+		afterLoading="alert('after request')"
+        notifyTopics="/after"
 		>
-    Initial Content</sx:div>
+    Initial Content</s:div>
 
 <s:include value="../footer.jsp"/>
 
diff --git a/apps/showcase/src/main/webapp/ajax/remoteforms/index.jsp b/apps/showcase/src/main/webapp/ajax/remoteforms/index.jsp
index 774ee22..7e19f48 100644
--- a/apps/showcase/src/main/webapp/ajax/remoteforms/index.jsp
+++ b/apps/showcase/src/main/webapp/ajax/remoteforms/index.jsp
@@ -1,6 +1,5 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
 <html>
 <head>
@@ -22,83 +21,89 @@
 Remote form replacing another div:<br/>
 
 <div id='two' style="border: 1px solid yellow;"><b>initial content</b></div>
-<sx:form
+<s:form
         id='theForm2'
         cssStyle="border: 1px solid green;"
         action='AjaxRemoteForm'
-        method='post'>
+        method='post'
+        theme="ajax">
 
     <input type='text' name='data' value='Struts User'>
 
-    <sx:submit value="GO2" theme="ajax" targets="two"/>
+    <s:submit value="GO2" theme="ajax" targets="two"/>
 
-</sx:form>
+</s:form>
 
 
 Remote form replacing the forms content:<br/>
-<sx:form
+<s:form
         id='theForm3'
         cssStyle="border: 1px solid green;"
         action='AjaxRemoteForm'
-        method='post'>
+        method='post'
+        theme="ajax">
 
     <input type='text' name='data' value='Struts User'>
 
-    <sx:submit value="GO3" targets="theForm3"/>
+    <s:submit value="GO3" theme="ajax" targets="theForm3"/>
 
-</sx:form>
+</s:form>
 
 Remote form evaluating suplied JS on completion:<br/>
-<sx:form
+<s:form
         id='theForm4'
         cssStyle="border: 1px solid green;"
         action='AjaxRemoteForm'
-        method='post'>
+        method='post'
+        theme="ajax">
 
     <input type='text' name='data' value='Struts User'>
 
-    <sx:submit value="GO4" />
+    <s:submit value="GO4" theme="ajax"/>
 
-</sx:form>
+</s:form>
 
 Remote form replacing the forms content after confirming results:<br/>
-<sx:form
+<s:form
         id='theForm5'
         cssStyle="border: 1px solid green;"
         action='AjaxRemoteForm'
-        method='post'>
+        method='post'
+        theme="ajax">
 
     <input type='text' name='data' value='Struts User'>
 
-    <sx:submit value="GO3" targets="theForm5" />
+    <s:submit value="GO3" theme="ajax" targets="theForm5" />
 
-</sx:form>
+</s:form>
 
 Remote form replacing the forms content after running a function:<br/>
-<sx:form
+<s:form
         id='theForm6'
         cssStyle="border: 1px solid green;"
         action='AjaxRemoteForm'
-        method='post'>
+        method='post'
+        theme="ajax">
 
     <input type='text' name='data' value='Struts User'>
 
-    <sx:submit value="GO3" targets="theForm6" />
+    <s:submit value="GO3" theme="ajax" targets="theForm6" />
 
-</sx:form>
+</s:form>
 
 A form with no remote submit (so should not be ajaxified):<br/>
-<sx:form
+<s:form
         id='theForm7'
         cssStyle="border: 1px solid green;"
         action='AjaxRemoteForm'
-        method='post'>
+        method='post'
+        theme="ajax">
 
     <input type='text' name='data' value='Struts User'>
 
-    <sx:submit value="Go AWAY" targets="theForm7" />
+    <s:submit value="Go AWAY" targets="theForm7" />
 
-</sx:form>
+</s:form>
 
 </body>
 </html>
diff --git a/apps/showcase/src/main/webapp/ajax/remotelink/index.jsp b/apps/showcase/src/main/webapp/ajax/remotelink/index.jsp
index 9187032..b4125de 100644
--- a/apps/showcase/src/main/webapp/ajax/remotelink/index.jsp
+++ b/apps/showcase/src/main/webapp/ajax/remotelink/index.jsp
@@ -1,6 +1,5 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
 <html>
 <head>
@@ -14,32 +13,10 @@
 	 dojo.byId(widget.targetsArray[0]).innerHTML = "Done";
    }
 
-   dojo.event.topic.subscribe("/before", function(data, type, e){
-      alert('inside a topic event. before request');
-      //data : source element id
-      //type : "before"
-      //e    : request object
-   });
-   
    dojo.event.topic.subscribe("/after", function(data, type, e){
-      alert('inside a topic event. after request');
-      //data : text returned
-      //type : "load"
-      //e    : undefined
-   });
-   
-   dojo.event.topic.subscribe("/error", function(data, type, e){
-      alert('inside a topic event. on error');
-      //data : error object
-      //type : "error"
-      //e    : undefined
-   });
-   
-   dojo.event.topic.subscribe("/topics", function(data, type, e){
       alert('inside a topic event. type='+type);
-      debugger;
       //data : text returned
-      //type : "before", "load", "error"
+      //type : "before", "load" or "error"
       //e    : request object
    });
 </script>
@@ -59,42 +36,44 @@
 
 <br/><br/>
 
-<sx:a   id="link1"
+<s:a
+        theme="ajax"
         href="%{ajaxTest}"
         indicator="indicator"
-		targets="t1,t2" 
-        beforeNotifyTopics="/before"
-        afterNotifyTopics="/after" >Update 'Div 1' and 'Div 2', publish topic '/before' and '/after', use indicator</sx:a>
+		targets="t1,t2" notifyTopics="/after" >Update 'Div 1' and 'Div 2', publish topic '/after', use indicator</s:a>
 <img id="indicator" src="${pageContext.request.contextPath}/images/indicator.gif" alt="Loading..." style="display:none"/>
 
 <br/><br/>
 
-<sx:a  id="link2"
+<s:a  id="link2"
+        theme="ajax"
         href="/AjaxNoUrl.jsp"
 		errorText="Error Loading"
-		targets="t1"
-        errorNotifyTopics="/error">Try to update 'Div 1', publish '/error', use custom error message</sx:a>
+		targets="t1">Try to update 'Div 1', use custom error message</s:a>
 
 <br/><br/>
 
-<sx:a  id="link3"
+<s:a  id="link3"
+        theme="ajax"
         href="%{ajaxTest}"
 		loadingText="Loading!!!"
-		targets="t1">Update 'Div 1', use custom loading message</sx:a>
+		targets="t1">Update 'Div 1', use custom loading message</s:a>
 
 <br/><br/>
 
-<sx:a  id="link4"
+<s:a  id="link4"
+        theme="ajax"
         href="%{test3}"
 		executeScripts="true"
-		targets="t2">Update 'Div 2' and execute returned javascript </sx:a>
+		targets="t2">Update 'Div 2' and execute returned javascript </s:a>
 
 <br/><br/>
 
-<sx:a  id="link5"
+<s:a  id="link5"
+        theme="ajax"
         href="%{ajaxTest}"
 		handler="handler"
-		targets="t2">Update 'Div 2' using a custom handler </sx:a>
+		targets="t2">Update 'Div 2' using a custom handler </s:a>
 
 
 <br/><br/>
@@ -107,11 +86,12 @@
 
 <br/><br/>
 
-<sx:a  id="link6"
+<s:a  id="link6"
+        theme="ajax"
         href="%{ajaxTest}"
 		targets="t2"
 		formId="form"
-		>Update 'Div 2' with the content of the textbox </sx:a>
+		>Update 'Div 2' with the content of the textbox </s:a>
 
 
 <br/><br/>
diff --git a/apps/showcase/src/main/webapp/ajax/tabbedpanel/example1.jsp b/apps/showcase/src/main/webapp/ajax/tabbedpanel/example1.jsp
index 674324b..ff9a99c 100644
--- a/apps/showcase/src/main/webapp/ajax/tabbedpanel/example1.jsp
+++ b/apps/showcase/src/main/webapp/ajax/tabbedpanel/example1.jsp
@@ -1,12 +1,25 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
  
 <html>
 <head>
     <title>Ajax examples - tabbled panel</title>
 
     <jsp:include page="/ajax/commonInclude.jsp"/>
+    <link rel="stylesheet" type="text/css" href="<s:url value="/struts/tabs.css"/>">
+    <link rel="stylesheet" type="text/css" href="<s:url value="/struts/niftycorners/niftyCorners.css"/>">
+    <link rel="stylesheet" type="text/css" href="<s:url value="/struts/niftycorners/niftyPrint.css"/>" media="print">
+    <script type="text/javascript" src="<s:url value="/struts/niftycorners/nifty.js"/>"></script>
+    <script type="text/javascript">
+        dojo.event.connect(window, "onload", function() {
+            if (!NiftyCheck())
+                return;
+            Rounded("li.tab_selected", "top", "white", "transparent", "border #ffffffS");
+            Rounded("li.tab_unselected", "top", "white", "transparent", "border #ffffffS");
+            //                Rounded("div#tab_header_main li","top","white","transparent","border #ffffffS");
+            // "white" needs to be replaced with the background color
+        });
+    </script>
 </head>
 
 <s:url id="ajaxTest" value="/AjaxTest.action" />
@@ -16,81 +29,81 @@
     <table cellpadding="0" cellspacing="10" border="0" width="600">
         <tr>
             <td align="top">
-                <sx:tabbedpanel id="test" >
-                    <sx:div id="one" label="one" >
+                <s:tabbedPanel id="test" >
+                    <s:div id="one" label="one" theme="ajax">
                         This is the first pane<br/>
                         <s:form>
                             <s:textfield name="tt" label="Test Text"/>  <br/>
                             <s:textfield name="tt2" label="Test Text2"/>
                         </s:form>
-                    </sx:div>
-                    <sx:div id="two" label="two" >
+                    </s:div>
+                    <s:div id="two" label="two" theme="ajax">
                         This is the second panel
-                    </sx:div>
-                    <sx:div id="three" label="three" >
+                    </s:div>
+                    <s:div id="three" label="three" theme="ajax">
                         This is the three
-                    </sx:div>
-                </sx:tabbedpanel>
+                    </s:div>
+                </s:tabbedPanel>
             </td>
             <td align="top">
-                <sx:tabbedpanel id="test2" >
-                    <sx:div id="left" label="left" >
+                <s:tabbedPanel id="test2" >
+                    <s:div id="left" label="left" theme="ajax">
                         This is the left pane<br/>
                         <s:form>
                             <s:textfield name="tt" label="Test Text"/>  <br/>
                             <s:textfield name="tt2" label="Test Text2"/>
                         </s:form>
-                    </sx:div>
-                    <sx:div href="%{ajaxTest}" id="ryh1" 
-                                    label="remote one"></sx:div>
-                    <sx:div id="middle" label="middle" >
+                    </s:div>
+                    <s:div href="%{ajaxTest}" id="ryh1" theme="ajax"
+                                    label="remote one"></s:div>
+                    <s:div id="middle" label="middle" theme="ajax">
                         middle tab<br/>
                         <s:form>
                             <s:textfield name="tt" label="Test Text44"/>  <br/>
                             <s:textfield name="tt2" label="Test Text442"/>
                         </s:form>
-                    </sx:div>
-                    <sx:div  href="%{ajaxTest}" id="ryh21"  label="remote right"/>
-                </sx:tabbedpanel>
+                    </s:div>
+                    <s:div  href="%{ajaxTest}" id="ryh21" theme="ajax" label="remote right"/>
+                </s:tabbedPanel>
             </td>
         </tr>
         <tr>
             <td align="top">
-                <sx:tabbedpanel id="testremote">
-                    <sx:div  href="%{ajaxTest}" id="r1"  label="remote one">
+                <s:tabbedPanel id="testremote">
+                    <s:div  href="%{ajaxTest}" id="r1" theme="ajax" label="remote one">
                         <s:action name="AjaxTest" executeResult="true" />
-                    </sx:div>
-                    <sx:div  href="%{ajaxTest}" id="r2"  label="remote two"></sx:div>
-                    <sx:div  href="%{ajaxTest}" id="r3"  label="remote three"></sx:div>
-                </sx:tabbedpanel>
+                    </s:div>
+                    <s:div  href="%{ajaxTest}" id="r2" theme="ajax" label="remote two"></s:div>
+                    <s:div  href="%{ajaxTest}" id="r3" theme="ajax" label="remote three"></s:div>
+                </s:tabbedPanel>
             </td>
             <td align="top">
-                <sx:tabbedpanel id="test3" >
-                    <sx:div id="left1" label="out one" >
+                <s:tabbedPanel id="test3" >
+                    <s:div id="left1" label="out one" theme="ajax">
                         Outer one<br/>
-                        <sx:tabbedpanel id="test11">
-                            <sx:div id="i11" label="inner 1 one">Inner 1</sx:div>
-                            <sx:div id="112" label="inner 1 two">Inner 2</sx:div>
-                            <sx:div id="i13" label="inner 1 three">Inner 3</sx:div>
-                        </sx:tabbedpanel>
-                    </sx:div>
-                    <sx:div id="middle1" label="out two" >
+                        <s:tabbedPanel id="test11">
+                            <s:div id="i11" label="inner 1 one">Inner 1</s:div>
+                            <s:div id="112" label="inner 1 two">Inner 2</s:div>
+                            <s:div id="i13" label="inner 1 three">Inner 3</s:div>
+                        </s:tabbedPanel>
+                    </s:div>
+                    <s:div id="middle1" label="out two" theme="ajax">
                         Outer two<br/>
-                        <sx:tabbedpanel id="test12" >
-                            <sx:div id="i21" label="inner 2 one" >Inner 21</sx:div>
-                            <sx:div id="122" label="inner 2 two" >Inner 22</sx:div>
-                            <sx:div id="i23" label="inner 2 three" >Inner 23</sx:div>
-                        </sx:tabbedpanel>
-                    </sx:div>
-                    <sx:div id="right1" label="out three" >
+                        <s:tabbedPanel id="test12" >
+                            <s:div id="i21" label="inner 2 one" theme="ajax">Inner 21</s:div>
+                            <s:div id="122" label="inner 2 two" theme="ajax">Inner 22</s:div>
+                            <s:div id="i23" label="inner 2 three" theme="ajax">Inner 23</s:div>
+                        </s:tabbedPanel>
+                    </s:div>
+                    <s:div id="right1" label="out three" theme="ajax">
                         Outer three<br/>
-                        <sx:tabbedpanel id="test13">
-                            <sx:div id="i31" label="inner 3 one" >Inner 31</sx:div>
-                            <sx:div id="132" label="inner 3 two" >Inner 32</sx:div>
-                            <sx:div id="i33" label="inner 3 three" >Inner 33</sx:div>
-                        </sx:tabbedpanel>
-                    </sx:div>
-                </sx:tabbedpanel>
+                        <s:tabbedPanel id="test13">
+                            <s:div id="i31" label="inner 3 one" theme="ajax">Inner 31</s:div>
+                            <s:div id="132" label="inner 3 two" theme="ajax">Inner 32</s:div>
+                            <s:div id="i33" label="inner 3 three" theme="ajax">Inner 33</s:div>
+                        </s:tabbedPanel>
+                    </s:div>
+                </s:tabbedPanel>
             </td>
         </tr>
     </table>
diff --git a/apps/showcase/src/main/webapp/ajax/tabbedpanel/example2.jsp b/apps/showcase/src/main/webapp/ajax/tabbedpanel/example2.jsp
index e067126..ab2d711 100644
--- a/apps/showcase/src/main/webapp/ajax/tabbedpanel/example2.jsp
+++ b/apps/showcase/src/main/webapp/ajax/tabbedpanel/example2.jsp
@@ -1,25 +1,27 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
 <html>
 <head>
     <title>Ajax examples - tabbled panel</title>
 
     <jsp:include page="/ajax/commonInclude.jsp"/>
+    <link rel="stylesheet" type="text/css" href="<s:url value="/struts/tabs.css"/>">
+    
+    
 </head>
 
 <body>
 
-				<sx:tabbedpanel id="test2" cssStyle="width: 500px; height: 300px;" doLayout="true">
-                      <sx:div id="left" label="test1"  >
+				<s:tabbedPanel id="test2" theme="simple" cssStyle="width: 500px; height: 300px;" doLayout="true">
+                      <s:div id="left" label="test1" theme="ajax" >
                           I'm a Tab!!!
-                      </sx:div >
-                      <sx:div  id="middle" label="test2"   >
+                      </s:div >
+                      <s:div  id="middle" label="test2"  theme="ajax" >
                           I'm the other Tab!!!
-                      </sx:div >
+                      </s:div >
                      
-                  </sx:tabbedpanel>
+                  </s:tabbedPanel>
 				  
 				
 
diff --git a/apps/showcase/src/main/webapp/ajax/tabbedpanel/example3.jsp b/apps/showcase/src/main/webapp/ajax/tabbedpanel/example3.jsp
index 5cf5dd7..5b7a3af 100644
--- a/apps/showcase/src/main/webapp/ajax/tabbedpanel/example3.jsp
+++ b/apps/showcase/src/main/webapp/ajax/tabbedpanel/example3.jsp
@@ -1,6 +1,5 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
 <html>
 <head>
@@ -31,24 +30,24 @@
         <tr>
             <td align="top">
                 <!--// START SNIPPET: tabbedpanel-tag-->
-                <sx:tabbedpanel id="test2" cssStyle="width: 500px; height: 300px;" doLayout="true">
-                      <sx:div id="left" label="left">
+                <s:tabbedPanel id="test2" theme="simple" cssStyle="width: 500px; height: 300px;" doLayout="true">
+                      <s:div theme="ajax"  id="left" label="left">
                           This is the left pane<br/>
                           <s:form >
                               <s:textfield name="tt" label="Test Text" />  <br/>
                               <s:textfield name="tt2" label="Test Text2" />
                           </s:form>
-                      </sx:div>
-                      <sx:div href="%{ajaxTest}" id="ryh1" label="remote one" />
-                      <sx:div id="middle" label="middle">
+                      </s:div>
+                      <s:div theme="ajax"  href="%{ajaxTest}" id="ryh1" label="remote one" />
+                      <s:div theme="ajax"  id="middle" label="middle">
                           middle tab<br/>
                           <s:form >
                               <s:textfield name="tt" label="Test Text44" />  <br/>
                               <s:textfield name="tt2" label="Test Text442" />
                           </s:form>
-                      </sx:div>
-                      <sx:div href="%{ajaxTest}"  id="ryh21" label="remote right" />
-                  </sx:tabbedpanel>
+                      </s:div>
+                      <s:div theme="ajax" href="%{ajaxTest}"  id="ryh21" label="remote right" />
+                  </s:tabbedPanel>
                 <!--// END SNIPPET: tabbedpanel-tag-->
              </td>
         </tr>
diff --git a/apps/showcase/src/main/webapp/ajax/tabbedpanel/example4.jsp b/apps/showcase/src/main/webapp/ajax/tabbedpanel/example4.jsp
index 4202481..caaf1ee 100644
--- a/apps/showcase/src/main/webapp/ajax/tabbedpanel/example4.jsp
+++ b/apps/showcase/src/main/webapp/ajax/tabbedpanel/example4.jsp
@@ -1,21 +1,20 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
-
 <html>
 <head>
 	<title>Example 4</title>
 	<jsp:include page="/ajax/commonInclude.jsp"/>
+	<link rel="stylesheet" type="text/css" href="<s:url value="/struts/tabs.css"/>" />
 </head>
 <body>
 	<s:url id="panel1url" action="panel1" namespace="/nodecorate" />
 	<s:url id="panel2url" action="panel2" namespace="/nodecorate" />
 	<s:url id="panel3url" action="panel3" namespace="/nodecorate" />
-	<sx:tabbedpanel id="tabbedpanel" >
-		<sx:div id="panel1" label="Panel1" href="%{#panel1url}" />
-		<sx:div id="panel2" label="Panel2" href="%{#panel2url}" />
-		<sx:div id="panel3" label="Panel3" href="%{#panel3url}" />
-	</sx:tabbedpanel>
+	<s:tabbedPanel id="tabbedpanel" >
+		<s:div id="panel1" label="Panel1" href="%{#panel1url}" theme="ajax" />
+		<s:div id="panel2" label="Panel2" href="%{#panel2url}" theme="ajax"  />
+		<s:div id="panel3" label="Panel3" href="%{#panel3url}" theme="ajax" />
+	</s:tabbedPanel>
 </body>
 </html>
 
diff --git a/apps/showcase/src/main/webapp/ajax/tabbedpanel/example5.jsp b/apps/showcase/src/main/webapp/ajax/tabbedpanel/example5.jsp
index edc9226..fde5838 100644
--- a/apps/showcase/src/main/webapp/ajax/tabbedpanel/example5.jsp
+++ b/apps/showcase/src/main/webapp/ajax/tabbedpanel/example5.jsp
@@ -1,25 +1,27 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
 <html>
 <head>
     <title>Ajax examples - tabbled panel</title>
 
     <jsp:include page="/ajax/commonInclude.jsp"/>
+    <link rel="stylesheet" type="text/css" href="<s:url value="/struts/tabs.css"/>">
+    
+    
 </head>
 
 <body>
 
-				<sx:tabbedpanel id="test2" cssStyle="width: 500px; height: 300px;" doLayout="true" closeButton="pane" labelposition="bottom">
-                      <sx:div id="left" label="test1" theme="ajax" >
+				<s:tabbedPanel id="test2" theme="simple" cssStyle="width: 500px; height: 300px;" doLayout="true" closeButton="pane" labelposition="bottom">
+                      <s:div id="left" label="test1" theme="ajax" >
                           I'm a Tab!!!
-                      </sx:div >
-                      <sx:div  id="middle" label="test2"  theme="ajax" >
+                      </s:div >
+                      <s:div  id="middle" label="test2"  theme="ajax" >
                           I'm the other Tab!!!
-                      </sx:div >
+                      </s:div >
                      
-                  </sx:tabbedpanel>
+                  </s:tabbedPanel>
 				  
 				
 
diff --git a/apps/showcase/src/main/webapp/ajax/tabbedpanel/nodecorate/panel2.ftl b/apps/showcase/src/main/webapp/ajax/tabbedpanel/nodecorate/panel2.ftl
index e866e6d..b027ee0 100644
--- a/apps/showcase/src/main/webapp/ajax/tabbedpanel/nodecorate/panel2.ftl
+++ b/apps/showcase/src/main/webapp/ajax/tabbedpanel/nodecorate/panel2.ftl
@@ -1,7 +1,7 @@
 
 <div id="result">
 </div>
-<@sx.form action="panel2Submit" namespace="/nodecorate">
-	<@s.textfield label="Name" name="name" />
-	<@sx.submit targets="result" />
-</@sx.form>
+<@s.form action="panel2Submit" namespace="/nodecorate" theme="ajax">
+	<@s.textfield label="Name" name="name" theme="ajax" />
+	<@s.submit theme="ajax" resultDivId="result" />
+</@s.form>
diff --git a/apps/showcase/src/main/webapp/continuations/guess.ftl b/apps/showcase/src/main/webapp/continuations/guess.ftl
deleted file mode 100644
index 453b0b9..0000000
--- a/apps/showcase/src/main/webapp/continuations/guess.ftl
+++ /dev/null
@@ -1,18 +0,0 @@
-<!-- START SNIPPET: example -->
-<html>
-<head>
-    <title></title>
-</head>
-
-<body>
-<#list actionMessages as msg>
-    ${msg}
-</#list>
-
-<@s.form action="guess" method="post">
-    <@s.textfield label="Guess" name="guess"/>
-    <@s.submit value="Guess"/>
-</@s.form>
-</body>
-</html>
-<!-- END SNIPPET: example -->
diff --git a/apps/showcase/src/main/webapp/freemarker/index.jsp b/apps/showcase/src/main/webapp/freemarker/index.jsp
index 5a0fa33..10b9932 100644
--- a/apps/showcase/src/main/webapp/freemarker/index.jsp
+++ b/apps/showcase/src/main/webapp/freemarker/index.jsp
@@ -11,8 +11,7 @@
         <li>
             <s:url id="url" action="customFreemarkerManagerDemo" namespace="/freemarker" />
             <s:a href="%{#url}">Demo of usage of a Custom Freemarker Manager</s:a>
-        </li>
-        <li>
+            <p/>
             <s:url id="url" action="standardTags" namespace="/freemarker" />
             <s:a href="%{#url}">Demo of Standard Struts Freemarker Tags</s:a>
         </li>
diff --git a/apps/showcase/src/main/webapp/hangman/hangmanMenu.ftl b/apps/showcase/src/main/webapp/hangman/hangmanMenu.ftl
index 717339e..c9b58ed 100644
--- a/apps/showcase/src/main/webapp/hangman/hangmanMenu.ftl
+++ b/apps/showcase/src/main/webapp/hangman/hangmanMenu.ftl
@@ -11,7 +11,7 @@
 		</li>
         <li>
             <@s.url id="url" action="hangmanAjax" namespace="/hangman" />
-            <@s.a href="%{#url}">Hangman (Ajax - Experimental)</@s.a>
+            (broken) <@s.a href="%{#url}">Hangman (Ajax - Experimental)</@s.a>
         </li>
 	</ul>
 </body>
diff --git a/apps/showcase/src/main/webapp/showcase.jsp b/apps/showcase/src/main/webapp/showcase.jsp
index cb029ab..4597926 100644
--- a/apps/showcase/src/main/webapp/showcase.jsp
+++ b/apps/showcase/src/main/webapp/showcase.jsp
@@ -1,6 +1,6 @@
-<%-- 
+<%--
     showcase.jsp
-    
+
     @version $Date$ $Id$
 --%>
 
@@ -32,7 +32,7 @@
     <p>
     <%-- THIS LIST IS MAINTAINED IN WEB-INF/decorators/main.jsp TO CREATE THE MENU BAR -- EDIT THERE AND COPY HERE --%>
     <ul>
-        <li><a href="<s:url value="/showcase.jsp"/>">Home</a></li>        
+        <li><a href="<s:url value="/showcase.jsp"/>">Home</a></li>
         <li><a href="<s:url value="/ajax/index.jsp" />">Ajax Theme for Struts Tags</a></li>
         <li><a href="<s:url value="/chat/index.jsp"/>">Ajax Chat</a>
         <li><a href="<s:url action="actionChain1!input" namespace="/actionchaining"  includeParams="none" />">Action Chaining</a></li>
@@ -52,15 +52,6 @@
         <li><a href="<s:url value="/validation/index.jsp"/>">Validation</a></li>
         <li class="last"><a href="<s:url value="/help.jsp"/>">Help</a></li>
      </ul>
-
-    <h2>Sandbox</h2>
-    <p>
-        These examples are under development and may not be fully operational.
-    </p>
-    <ul>
-        <li><a href="<s:url action="guess" namespace="/continuations" />">Continuations</a></li>
-    </ul>
-
 </p>
 
 </body>
diff --git a/apps/showcase/src/main/webapp/tags/ui/datepicker/index.jsp b/apps/showcase/src/main/webapp/tags/ui/datepicker/index.jsp
index cba4f72..1cb08c6 100644
--- a/apps/showcase/src/main/webapp/tags/ui/datepicker/index.jsp
+++ b/apps/showcase/src/main/webapp/tags/ui/datepicker/index.jsp
@@ -1,25 +1,23 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>

-<%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
-

+<%@ taglib prefix="s" uri="/struts-tags" %>

 <html>

 <head>

     <title>UI Tags Example</title>

-    <sx:head />

+    <s:head />

 </head>

 <body>

 <table>

-<sx:datetimepicker label="toggleType='wipe'" value="2006-10-31" toggleType="wipe" toggleDuration="300" name="test"/>

-<sx:datetimepicker label="toggleType='explode'" value="2006-07-22" toggleType="explode" toggleDuration="500"/>

-<sx:datetimepicker label="toggleType='fade'" value="2006-06-30" toggleType="fade" toggleDuration="500"/>

-<sx:datetimepicker label="With value='today'"  name="dddp1" value="today" />

-<sx:datetimepicker label="US format, empty" name="dddp2" language="en-us" />

-<sx:datetimepicker label="US format with initial date of 2006-06-26" name="dddp3" value="2006-06-26" language="en-us" />

-<sx:datetimepicker label="With initial date of 1969-04-25 and a custom format dd/MM/yyyy" name="dddp5" value="25/04/1969" displayFormat="dd/MM/yyyy" />

-<sx:datetimepicker label="In German" name="dddp7" value="2006-06-28" language="de" />

-<sx:datetimepicker label="In Dutch"  name="dddp8" value="2006-06-28" language="nl" />

-<sx:datetimepicker label="US format with initial date of 2006-06-26 and long formatting (parse not supported)" name="dddp12" value="2006-06-26" formatLength="long" language="en-us" />

-<sx:datetimepicker label="German format with initial date of 2006-06-26 and long formatting (parse not supported)" name="dddp13" value="2006-06-26" formatLength="long" language="de" />

+<s:datetimepicker label="toggleType='wipe'" value="2006-10-31" toggleType="wipe" toggleDuration="300" name="test"/>

+<s:datetimepicker label="toggleType='explode'" value="2006-07-22" toggleType="explode" toggleDuration="500"/>

+<s:datetimepicker label="toggleType='fade'" value="2006-06-30" toggleType="fade" toggleDuration="500"/>

+<s:datetimepicker label="With value='today'"  name="dddp1" value="today" />

+<s:datetimepicker label="US format, empty" name="dddp2" language="en-us" />

+<s:datetimepicker label="US format with initial date of 2006-06-26" name="dddp3" value="2006-06-26" language="en-us" />

+<s:datetimepicker label="With initial date of 1969-04-25 and a custom format dd/MM/yyyy" name="dddp5" value="25/04/1969" displayFormat="dd/MM/yyyy" />

+<s:datetimepicker label="In German" name="dddp7" value="2006-06-28" language="de" />

+<s:datetimepicker label="In Dutch"  name="dddp8" value="2006-06-28" language="nl" />

+<s:datetimepicker label="US format with initial date of 2006-06-26 and long formatting (parse not supported)" name="dddp12" value="2006-06-26" formatLength="long" language="en-us" />

+<s:datetimepicker label="German format with initial date of 2006-06-26 and long formatting (parse not supported)" name="dddp13" value="2006-06-26" formatLength="long" language="de" />

 </table>

 </body>

 </html>

diff --git a/apps/showcase/src/main/webapp/tags/ui/example.jsp b/apps/showcase/src/main/webapp/tags/ui/example.jsp
index e4b8d7f..5552d8b 100644
--- a/apps/showcase/src/main/webapp/tags/ui/example.jsp
+++ b/apps/showcase/src/main/webapp/tags/ui/example.jsp
@@ -1,11 +1,9 @@
 <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
-
 <html>
 <head>
     <title>UI Tags Example</title>
-    <sx:head/>
+    <s:head/>
 </head>
 
 <body>
@@ -21,7 +19,7 @@
             name="name"
             tooltip="Enter your Name here" />
 
-    <sx:datetimepicker
+    <s:datetimepicker
             tooltip="Select Your Birthday"
             label="Birthday"
             name="birthday" />
diff --git a/apps/showcase/src/main/webapp/tags/ui/staticTreeSelect.jsp b/apps/showcase/src/main/webapp/tags/ui/staticTreeSelect.jsp
index c423d02..c08ed8a 100644
--- a/apps/showcase/src/main/webapp/tags/ui/staticTreeSelect.jsp
+++ b/apps/showcase/src/main/webapp/tags/ui/staticTreeSelect.jsp
@@ -1,5 +1,4 @@
 <%@taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
 <%
     request.setAttribute("decorator", "none");
diff --git a/apps/showcase/src/main/webapp/tags/ui/timepicker/index.jsp b/apps/showcase/src/main/webapp/tags/ui/timepicker/index.jsp
index 5a9b892..58595df 100644
--- a/apps/showcase/src/main/webapp/tags/ui/timepicker/index.jsp
+++ b/apps/showcase/src/main/webapp/tags/ui/timepicker/index.jsp
@@ -1,22 +1,20 @@
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>

-<%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
-

+<%@ taglib prefix="s" uri="/struts-tags" %>

 <html>

 <head>

     <title>UI Tags Example</title>

-    <sx:head />

+    <s:head />

 </head>

 <body>

 <table>

-<sx:datetimepicker label="toggleType='wipe'" type="time" value="10:30" toggleType="wipe" toggleDuration="300"/>

-<sx:datetimepicker label="toggleType='explode'" type="time" value="13:00" toggleType="explode" toggleDuration="500"/>

-<sx:datetimepicker label="toggleType='fade'" type="time" value="13:00" toggleType="fade" toggleDuration="500"/>

-<sx:datetimepicker label="With value='today'" name="dddp4" type="time" value="today" />

-<sx:datetimepicker label="US format, empty" name="dddp5" type="time" language="en-us" />

-<sx:datetimepicker label="US format, 13:00 hours" name="dddp6" type="time" value="13:00" language="en-us" />

-<sx:datetimepicker label="In German" name="dddp7" type="time" value="13:00" language="de" />

-<sx:datetimepicker label="In Dutch" name="dddp8" type="time" value="13:00" language="nl" />

+<s:datetimepicker label="toggleType='wipe'" type="time" value="10:30" toggleType="wipe" toggleDuration="300"/>

+<s:datetimepicker label="toggleType='explode'" type="time" value="13:00" toggleType="explode" toggleDuration="500"/>

+<s:datetimepicker label="toggleType='fade'" type="time" value="13:00" toggleType="fade" toggleDuration="500"/>

+<s:datetimepicker label="With value='today'" name="dddp4" type="time" value="today" />

+<s:datetimepicker label="US format, empty" name="dddp5" type="time" language="en-us" />

+<s:datetimepicker label="US format, 13:00 hours" name="dddp6" type="time" value="13:00" language="en-us" />

+<s:datetimepicker label="In German" name="dddp7" type="time" value="13:00" language="de" />

+<s:datetimepicker label="In Dutch" name="dddp8" type="time" value="13:00" language="nl" />

 </table>

 </body>

 </html>

diff --git a/apps/showcase/src/main/webapp/tags/ui/treeExampleDynamic.jsp b/apps/showcase/src/main/webapp/tags/ui/treeExampleDynamic.jsp
index a07a210..26929da 100644
--- a/apps/showcase/src/main/webapp/tags/ui/treeExampleDynamic.jsp
+++ b/apps/showcase/src/main/webapp/tags/ui/treeExampleDynamic.jsp
@@ -1,10 +1,9 @@
 <%@taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 
 <html>
 <head>
 <title>Showcase - UI Tag Example - Tree Example (Dynamic)</title>
-<sx:head/>
+<s:head theme="ajax" debug="true" />
 </head>
 <body>
 
@@ -28,13 +27,14 @@
 
 
 <div style="float:left; margin-right: 50px;">
-<sx:tree 
+<s:tree 
+    theme="ajax"
     rootNode="%{treeRootNode}" 
     childCollectionProperty="children" 
     nodeIdProperty="id"
     nodeTitleProperty="name"
     treeSelectedTopic="treeSelected">
-</sx:tree> 
+</s:tree> 
 </div>
 
 <div id="displayId">
diff --git a/apps/showcase/src/main/webapp/tags/ui/treeExampleStatic.jsp b/apps/showcase/src/main/webapp/tags/ui/treeExampleStatic.jsp
index 1c06fba..b9cf834 100644
--- a/apps/showcase/src/main/webapp/tags/ui/treeExampleStatic.jsp
+++ b/apps/showcase/src/main/webapp/tags/ui/treeExampleStatic.jsp
@@ -1,9 +1,8 @@
 <%@taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 <html>
 <head>
 <title>Showcase - UI Tag Example - Tree Example (Static)</title>
-<sx:head />
+<s:head theme="ajax" debug="true"  />
 </head>
 <body>
 
@@ -26,21 +25,21 @@
 
 
 <div style="float:left; margin-right: 50px;">
-<sx:tree label="parent" id="parentId" templateCssPath="/struts/tree.css" 
+<s:tree label="parent" id="parentId" theme="ajax" templateCssPath="/struts/tree.css" 
 showRootGrid="true" showGrid="true" treeSelectedTopic="treeSelected">
-    <sx:treenode label="child1" id="child1Id">
-        <sx:treenode label="grandchild1" id="grandchild1Id"/>
-        <sx:treenode label="grandchild2" id="grandchild2Id"/>
-        <sx:treenode label="grandchild3" id="grandchild3Id"/>
-    </sx:treenode>
-    <sx:treenode label="child2" id="child2Id"/>
-    <sx:treenode label="child3" id="child3Id"/>
-    <sx:treenode label="child4" id="child4Id"/>
-    <sx:treenode label="child5" id="child5Id">
-        <sx:treenode label="gChild1" id="gChild1Id"/>
-        <sx:treenode label="gChild2" id="gChild2Id"/>
-    </sx:treenode>
-</sx:tree>
+    <s:treenode theme="ajax" label="child1" id="child1Id">
+        <s:treenode theme="ajax" label="grandchild1" id="grandchild1Id"/>
+        <s:treenode theme="ajax" label="grandchild2" id="grandchild2Id"/>
+        <s:treenode theme="ajax" label="grandchild3" id="grandchild3Id"/>
+    </s:treenode>
+    <s:treenode theme="ajax" label="child2" id="child2Id"/>
+    <s:treenode theme="ajax" label="child3" id="child3Id"/>
+    <s:treenode theme="ajax" label="child4" id="child4Id"/>
+    <s:treenode theme="ajax" label="child5" id="child5Id">
+        <s:treenode theme="ajax" label="gChild1" id="gChild1Id"/>
+        <s:treenode theme="ajax" label="gChild2" id="gChild2Id"/>
+    </s:treenode>
+</s:tree>
 </div>
 
 
diff --git a/assembly/pom.xml b/assembly/pom.xml
index 1523871..b813bc7 100644
--- a/assembly/pom.xml
+++ b/assembly/pom.xml
@@ -33,7 +33,7 @@
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-parent</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.7</version>
     </parent>
 
     <scm>
@@ -155,12 +155,13 @@
 
         <dependency>
             <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-api</artifactId>
+            <artifactId>struts2-core</artifactId>
             <version>${version}</version>
         </dependency>
+
         <dependency>
             <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-core</artifactId>
+            <artifactId>struts2-codebehind-plugin</artifactId>
             <version>${version}</version>
         </dependency>
 
@@ -202,6 +203,12 @@
 
         <dependency>
             <groupId>org.apache.struts</groupId>
+            <artifactId>struts2-spring-plugin</artifactId>
+            <version>${version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.struts</groupId>
             <artifactId>struts2-sitegraph-plugin</artifactId>
             <version>${version}</version>
         </dependency>
diff --git a/backport/translate.bat b/backport/translate.bat
index 4e2df09..e243c88 100644
--- a/backport/translate.bat
+++ b/backport/translate.bat
@@ -1,3 +1,2 @@
-java -jar retrotranslator-transformer-1.2.0.jar -advanced -srcjar ../lib/struts2-core-2.0.4.jar -destjar struts2-core-j4-2.0.4.jar 

-java -jar retrotranslator-transformer-1.2.0.jar -advanced -srcjar ../lib/struts2-api-2.0.4.jar -destjar struts2-api-j4-2.0.4.jar 

-java -jar retrotranslator-transformer-1.2.0.jar -advanced -srcjar ../lib/xwork-2.0.0.jar -destjar xwork-j4-2.0.0.jar 

+java -jar retrotranslator-transformer-1.2.0.jar -advanced -srcjar ../lib/struts2-core-2.0.6.jar -destjar struts2-core-j4-2.0.6.jar 

+java -jar retrotranslator-transformer-1.2.0.jar -advanced -srcjar ../lib/xwork-2.0.1.jar -destjar xwork-j4-2.0.1.jar 

diff --git a/core/pom.xml b/core/pom.xml
index c8f97fa..2c2debc 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-parent</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.7</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-core</artifactId>
@@ -255,12 +255,6 @@
             <version>2.0.1</version>
         </dependency>
 
-        <!--<dependency>-->
-            <!--<groupId>org.apache.struts</groupId>-->
-            <!--<artifactId>struts2-api</artifactId>-->
-            <!--<version>${pom.version}</version>-->
-        <!--</dependency>-->
-
         <dependency>
             <groupId>freemarker</groupId>
             <artifactId>freemarker</artifactId>
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractRemoteCallUIBean.java b/core/src/main/java/org/apache/struts2/components/AbstractRemoteCallUIBean.java
similarity index 69%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractRemoteCallUIBean.java
rename to core/src/main/java/org/apache/struts2/components/AbstractRemoteCallUIBean.java
index 63b759f..e98d925 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/AbstractRemoteCallUIBean.java
+++ b/core/src/main/java/org/apache/struts2/components/AbstractRemoteCallUIBean.java
@@ -1,5 +1,5 @@
 /*
- * $Id: AbstractRemoteCallUIBean.java 508285 2007-02-16 02:42:24Z musachy $
+ * $Id$
  *
  * Copyright 2006 The Apache Software Foundation.
  *
@@ -15,14 +15,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.struts2.dojo.components;
+package org.apache.struts2.components;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.struts2.components.ClosingUIBean;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
-import org.apache.struts2.views.annotations.StrutsTagSkipInheritance;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
@@ -30,10 +28,18 @@
  * AbstractRemoteCallUIBean is superclass for all components dealing with remote
  * calls.
  */
+/**
+ * TODO: Document AbstractRemoteCallUIBean.
+ *
+ * @author $Author$
+ * @version $Revision$ $Date$
+ */
 public abstract class AbstractRemoteCallUIBean extends ClosingUIBean implements RemoteUICallBean {
 
     protected String href;
     protected String errorText;
+    protected String afterLoading;
+    protected String beforeLoading;
     protected String executeScripts;
     protected String loadingText;
     protected String listenTopics;
@@ -44,10 +50,7 @@
     protected String showErrorTransportText;
     protected String indicator;
     protected String showLoadingText;
-    protected String beforeNotifyTopics;
-    protected String afterNotifyTopics;
-    protected String errorNotifyTopics;
-    
+
     public AbstractRemoteCallUIBean(ValueStack stack, HttpServletRequest request,
             HttpServletResponse response) {
         super(stack, request, response);
@@ -62,6 +65,10 @@
             addParameter("errorText", findString(errorText));
         if (loadingText != null)
             addParameter("loadingText", findString(loadingText));
+        if (afterLoading != null)
+            addParameter("afterLoading", findString(afterLoading));
+        if (beforeLoading != null)
+            addParameter("beforeLoading", findString(beforeLoading));
         if (executeScripts != null)
             addParameter("executeScripts", findValue(executeScripts, Boolean.class));
         if (listenTopics != null)
@@ -82,24 +89,8 @@
             addParameter("showErrorTransportText", true);
         if (showLoadingText != null)
             addParameter("showLoadingText", findString(showLoadingText));
-        if (beforeNotifyTopics != null)
-            addParameter("beforeNotifyTopics", findString(beforeNotifyTopics));
-        if (afterNotifyTopics != null)
-            addParameter("afterNotifyTopics", findString(afterNotifyTopics));
-        if (errorNotifyTopics != null)
-            addParameter("errorNotifyTopics", findString(errorNotifyTopics));
     }
 
-    @Override
-    @StrutsTagSkipInheritance
-    public void setTheme(String theme) {
-        super.setTheme(theme);
-    }
-    
-    @Override
-    public String getTheme() {
-        return "ajax";
-    }
 
     @StrutsTagAttribute(description="Topic that will trigger the remote call")
     public void setListenTopics(String listenTopics) {
@@ -117,6 +108,23 @@
         this.errorText = errorText;
     }
 
+
+    /* (non-Javadoc)
+     * @see org.apache.struts2.components.RemoteUICallBean#setAfterLoading(java.lang.String)
+     */
+    public void setAfterLoading(String afterLoading) {
+        this.afterLoading = afterLoading;
+    }
+
+
+    /* (non-Javadoc)
+     * @see org.apache.struts2.components.RemoteUICallBean#setBeforeLoading(java.lang.String)
+     */
+    public void setBeforeLoading(String beforeLoading) {
+        this.beforeLoading = beforeLoading;
+    }
+
+
     @StrutsTagAttribute(description="Javascript code in the fetched content will be executed", type="Boolean", defaultValue="false")
     public void setExecuteScripts(String executeScripts) {
         this.executeScripts = executeScripts;
@@ -144,7 +152,7 @@
         this.formId = formId;
     }
 
-    @StrutsTagAttribute(description="Comma delimmited list of topics that will published before and after the request, and on errors")
+    @StrutsTagAttribute(description="Topics that will published when the remote call completes")
     public void setNotifyTopics(String notifyTopics) {
         this.notifyTopics = notifyTopics;
     }
@@ -164,39 +172,4 @@
     public void setShowLoadingText(String showLoadingText) {
         this.showLoadingText = showLoadingText;
     }
-
-    @StrutsTagAttribute(description="The css class to use for element")
-    public void setCssClass(String cssClass) {
-        super.setCssClass(cssClass);
-    }
-
-    @StrutsTagAttribute(description="The css style to use for element")
-    public void setCssStyle(String cssStyle) {
-        super.setCssStyle(cssStyle);
-    }
-
-    @StrutsTagAttribute(description="The id to use for the element")
-    public void setId(String id) {
-        super.setId(id);
-    }
-
-    @StrutsTagAttribute(description="The name to set for element")
-    public void setName(String name) {
-        super.setName(name);
-    }
-
-    @StrutsTagAttribute(description="Comma delimmited list of topics that will published after the request(if the request succeeds)")
-    public void setAfterNotifyTopics(String afterNotifyTopics) {
-        this.afterNotifyTopics = afterNotifyTopics;
-    }
-
-    @StrutsTagAttribute(description="Comma delimmited list of topics that will published before the request")
-    public void setBeforeNotifyTopics(String beforeNotifyTopics) {
-        this.beforeNotifyTopics = beforeNotifyTopics;
-    }
-
-    @StrutsTagAttribute(description="Comma delimmited list of topics that will published after the request(if the request fails)")
-    public void setErrorNotifyTopics(String errorNotifyTopics) {
-        this.errorNotifyTopics = errorNotifyTopics;
-    }
 }
diff --git a/core/src/main/java/org/apache/struts2/components/Anchor.java b/core/src/main/java/org/apache/struts2/components/Anchor.java
index 2c9383b..e0bc6b4 100644
--- a/core/src/main/java/org/apache/struts2/components/Anchor.java
+++ b/core/src/main/java/org/apache/struts2/components/Anchor.java
@@ -31,29 +31,109 @@
 /**
  * <!-- START SNIPPET: javadoc -->
  *
- * A tag that creates a HTML &lt;a &gt;.<p/>
+ * A tag that creates a HTML &lt;a href='' /&gt; that when clicked calls a URL remote XMLHttpRequest call via the dojo
+ * framework.<p/>
+ *
+ * <!-- START SNIPPET: ajaxJavadoc -->
+ * <B>THE FOLLOWING IS ONLY VALID WHEN AJAX IS CONFIGURED</B>
+ * <ul>
+ *      <li>href</li>
+ *      <li>errorText</li>
+ *      <li>listenTopics</li>
+ *      <li>notifyTopics</li>
+ *      <li>executeScripts</li>
+ *      <li>loadingText</li>
+ *      <li>listenTopics</li>
+ *      <li>handler</li>
+ *      <li>formId</li>
+ *      <li>formFilter</li>
+ *      <li>targets</li>
+ *      <li>showErrorTransportText</li>
+ *      <li>targets</li>
+ *      <li>indicator</li>
+ * </ul>
+ * 'resultDivId' Deprecated. Use targets.<p/>
+ * 'targets' is a list of element ids whose content will be updated with the
+ * text returned from request.<p/>
+ * 'errorText' is the text that will be displayed when there is an error making the request.<p/>
+ * 'onLoadJS' Deprecated. Use 'notifyTopics'.<p/>
+ * 'preInvokeJS' Deprecated. Use 'notifyTopics'.<p/>
+ * 'executeScripts' if set to true will execute javascript sections in the returned text.<p/>
+ * 'loadingText' is the text that will be displayed on the 'targets' elements while making the
+ * request.<p/>
+ * 'handler' is the name of the function that will take care of making the AJAX request. Dojo's widget
+ * and dom node are passed as parameters).<p/>
+ * 'formId' is the id of the html form whose fields will be seralized and passed as parameters
+ * in the request.<p/>
+ * 'formFilter' is the name of a function which will be used to filter the fields that will be
+ * seralized. This function takes as a parameter the element and returns true if the element
+ * should be included.<p/>
+ * 'listenTopics' comma separated list of topics names, that will trigger a request
+ * 'indicator' element to be shown while the request executing
+ * 'showErrorTransportText': whether errors should be displayed (on 'targets')</p>
+ * 'showLoadingText' show loading text on targets</p>
+ * 'notifyTopics' comma separated list of topics names, that will be published. Three parameters are passed:<p/>
+ * <ul>
+ *      <li>data: html or json object when type='load' or type='error'</li>
+ *      <li>type: 'before' before the request is made, 'load' when the request succeeds, or 'error' when it fails</li>
+ *      <li>request: request javascript object, when type='load' or type='error'</li>
+ * </ul>
  * <!-- END SNIPPET: javadoc -->
- * 
+ *
  * <p/> <b>Examples</b>
  *
  * <pre>
  * <!-- START SNIPPET: example1 -->
- * &lt;s:a id="link1" theme="ajax" href="/DoIt.action"&gt;
+ * &lt;s:a id="link1" theme="ajax" href="/DoIt.action" errorText="An error ocurred" loadingText="Loading..."&gt;
  *     &lt;img border="none" src="&lt;%=request.getContextPath()%&gt;/images/delete.gif"/&gt;
  *     &lt;s:param name="id" value="1"/&gt;
  * &lt;/s:a&gt;
  * <!-- END SNIPPET: example1 -->
  * </pre>
  *
+ * </p>
+ *
+ * <!-- START SNIPPET: exampledescription1 -->
+ *
+ * Results in
+ *
+ * <!-- END SNIPPET: exampledescription1 -->
+ *
+ * </p>
+ *
+ * <pre>
+ * <!-- START SNIPPET: example2 -->
+ * &lt;a dojoType="BindAnchor" executeScripts="true" id="link1" href="/DoIt.action?id=1" errorText="An error ocurred"&gt;&lt;/a&gt;
+ * <!-- END SNIPPET: example2 -->
+ * </pre>
+ *
+ * </p>
+ *
+ * <!-- START SNIPPET: exampledescription2 -->
+ *
+ * Here is an example that uses the beforeLoading. This example is in altSyntax=true:
+ *
+ * <!-- END SNIPPET: exampledescription2 -->
+ *
+ * </p>
+ *
+ * <pre>
+ * <!-- START SNIPPET: example3 -->
+ * &lt;s:a id="test" theme="ajax" href="/simpeResult.action" beforeLoading="confirm('Are you sure?')"&gt;
+ *  A
+ * &lt;/s:a&gt;
+ * <!-- END SNIPPET: example3 -->
+ * </pre>
+ *
  */
 @StrutsTag(name="a", tldTagClass="org.apache.struts2.views.jsp.ui.AnchorTag", description="Render a HTML href element that when clicked can optionally call a URL via remote XMLHttpRequest and updates its targets")
-public class Anchor extends ClosingUIBean {
+public class Anchor extends AbstractRemoteCallUIBean {
     public static final String OPEN_TEMPLATE = "a";
     public static final String TEMPLATE = "a-close";
     public static final String COMPONENT_NAME = Anchor.class.getName();
 
-    protected String href;
-    
+    protected String targets;
+
     public Anchor(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
         super(stack, request, response);
     }
@@ -65,16 +145,27 @@
     protected String getDefaultTemplate() {
         return TEMPLATE;
     }
-    
+
     public void evaluateExtraParams() {
         super.evaluateExtraParams();
 
-        if (href != null)
-            addParameter("href", findString(href));
+        if(targets != null)
+            addParameter("targets", findString(targets));
     }
-    
-    @StrutsTagAttribute(description="The URL.")
-    public void setHref(String href) {
-        this.href = href;
+
+    @StrutsTagAttribute(description="Comma delimited list of ids of the elements whose content will be updated")
+    public void setTargets(String targets) {
+        this.targets = targets;
+    }
+
+    @StrutsTagAttribute(name="onLoadJS", description="Deprecated. Use 'notifyTopics'. Javascript code execute after reload")
+    public void setAfterLoading(String afterLoading) {
+        this.afterLoading = afterLoading;
+    }
+
+
+    @StrutsTagAttribute(name="preInvokeJS", description="Deprecated. Use 'notifyTopics'. Javascript code execute before reload")
+    public void setBeforeLoading(String beforeLoading) {
+        this.beforeLoading = beforeLoading;
     }
 }
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Autocompleter.java b/core/src/main/java/org/apache/struts2/components/Autocompleter.java
similarity index 79%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Autocompleter.java
rename to core/src/main/java/org/apache/struts2/components/Autocompleter.java
index f5006d7..07ae776 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Autocompleter.java
+++ b/core/src/main/java/org/apache/struts2/components/Autocompleter.java
@@ -1,5 +1,5 @@
 /*
- * $Id: Autocompleter.java 510785 2007-02-23 03:05:33Z musachy $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,15 +18,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.components;
+package org.apache.struts2.components;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.struts2.components.ComboBox;
 import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
-import org.apache.struts2.views.annotations.StrutsTagSkipInheritance;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
@@ -35,8 +33,48 @@
  * <p>The autocomplete tag is a combobox that can autocomplete text entered on the input box.
  * When used on the "simple" theme, the autocompleter can be used like the ComboBox.
  * When used on the "ajax" theme, the list can be retieved from an action. </p>
+ * <B>THE FOLLOWING IS ONLY VALID WHEN AJAX IS CONFIGURED</B>
+ * <ul>
+ *      <li>href</li>
+ *      <li>errorText</li>
+ *      <li>listenTopics</li>
+ *      <li>notifyTopics</li>
+ *      <li>listenTopics</li>
+ *      <li>formId</li>
+ *      <li>formFilter</li>
+ *      <li>indicator</li>
+ *      <li>loadOnTextChange</li>
+ *      <li>loadMinimumCount</li>
+ *      <li>showDownArrow</li>
+ *      <li>searchType</li>
+ * </ul>
+ * 'dropdownWidth' width in pixels of the drodpdown, same as autocompleter's width by default<p/>
+ * 'dropdownHeight' height in pixels of the drodown, 120 px by default<p/>
+ * 'forceValidOption' if invalid option is selected, clear autocompleter's text when focus is lost<p/>
+ * 'autoComplete', if true, make suggestions on the textbox<p/>
+ * 'formId' is the id of the html form whose fields will be seralized and passed as parameters
+ * in the request.<p/>
+ * 'formFilter' is the name of a function which will be used to filter the fields that will be
+ * seralized. This function takes as a parameter the element and returns true if the element
+ * should be included.<p/>
+ * 'listenTopics' comma separated list of topics names, that will trigger a request
+ * 'indicator' element to be shown while the request executing
+ * 'showErrorTransportText': whether errors should be displayed (on 'targets')<p/>
+ * 'loadOnTextChange' options will be reloaded everytime a character is typed on the textbox<p/>
+ * 'loadMinimumCount' minimum number of characters that will force the content to be loaded<p/>
+ * 'showDownError' show or hide the down arrow button<p/>
+ * 'searchType' how the search must be performed, options are: "startstring", "startword" and "substring"<p/>
+ * 'keyName' name of the field to which the selected key will be assigned<p/>
+ * 'iconPath' path of icon used for the dropdown<p/>
+ * 'templateCssPath' path to css file used to customize Dojo's widget<p/>
+ * 'dataFieldName' name of the field to be used as the list in the returned JSON string<p/>
+ * 'notifyTopics' comma separated list of topics names, that will be published. Three parameters are passed:<p/>
+ * <ul>
+ *      <li>data: selected value when type='valuechanged'</li>
+ *      <li>type: 'before' before the request is made, 'valuechanged' when selection changes, 'load' when the request succeeds, or 'error' when it fails</li>
+ *      <li>request: request javascript object, when type='load' or type='error'</li>
+ * <ul>
  *<!-- END SNIPPET: javadoc -->
- *
  *<!-- START SNIPPET: example -->
  *<p>Autocompleter that gets its list from an action:</p>
  *&lt;s:autocompleter name="test"  href="%{jsonList}" autoComplete="false"/&gt;
@@ -46,7 +84,7 @@
  *<br/>
  *<!-- END SNIPPET: example -->
  */
-@StrutsTag(name="autocompleter", tldTagClass="org.apache.struts2.dojo.views.jsp.ui.AutocompleterTag", description="Renders a combobox with autocomplete and AJAX capabilities")
+@StrutsTag(name="autocompleter", tldTagClass="org.apache.struts2.views.jsp.ui.AutocompleterTag", description="Renders a combobox with autocomplete and AJAX capabilities")
 public class Autocompleter extends ComboBox {
     public static final String TEMPLATE = "autocompleter";
     final private static String COMPONENT_NAME = Autocompleter.class.getName();
@@ -146,17 +184,6 @@
         addParameter("key", findString(keyNameExpr));
     }
 
-    @Override
-    @StrutsTagSkipInheritance
-    public void setTheme(String theme) {
-        super.setTheme(theme);
-    }
-    
-    @Override
-    public String getTheme() {
-        return "ajax";
-    }
-    
     protected Object findListValue() {
         return (list != null) ? findValue(list, Object.class) : null;
     }
@@ -267,29 +294,4 @@
     public void setDataFieldName(String dataFieldName) {
         this.dataFieldName = dataFieldName;
     }
-    
-    @StrutsTagAttribute(description="The css class to use for element")
-    public void setCssClass(String cssClass) {
-        super.setCssClass(cssClass);
-    }
-
-    @StrutsTagAttribute(description="The css style to use for element")
-    public void setCssStyle(String cssStyle) {
-        super.setCssStyle(cssStyle);
-    }
-
-    @StrutsTagAttribute(description="The id to use for the element")
-    public void setId(String id) {
-        super.setId(id);
-    }
-
-    @StrutsTagAttribute(description="The name to set for element")
-    public void setName(String name) {
-        super.setName(name);
-    }
-
-    @StrutsTagAttribute(description="Preset the value of input element")
-    public void setValue(String arg0) {
-        super.setValue(arg0);
-    }
 }
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/DateTimePicker.java b/core/src/main/java/org/apache/struts2/components/DateTimePicker.java
similarity index 94%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/components/DateTimePicker.java
rename to core/src/main/java/org/apache/struts2/components/DateTimePicker.java
index 437aa75..bcb09a4 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/DateTimePicker.java
+++ b/core/src/main/java/org/apache/struts2/components/DateTimePicker.java
@@ -1,5 +1,5 @@
 /*
- * $Id: DateTimePicker.java 512580 2007-02-28 02:48:06Z musachy $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,7 +18,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.components;
+package org.apache.struts2.components;
 
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -29,10 +29,8 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.struts2.components.UIBean;
 import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
-import org.apache.struts2.views.annotations.StrutsTagSkipInheritance;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
@@ -127,7 +125,7 @@
  * </pre>
  *
  */
-@StrutsTag(name="datetimepicker", tldTagClass="org.apache.struts2.dojo.views.jsp.ui.DateTimePickerTag", description="Render datetimepicker")
+@StrutsTag(name="datetimepicker", tldTagClass="org.apache.struts2.views.jsp.ui.DateTimePickerTag", description="Render datetimepicker")
 public class DateTimePicker extends UIBean {
 
     final public static String TEMPLATE = "datetimepicker";
@@ -212,18 +210,7 @@
             }
         }
     }
-    
-    @Override
-    @StrutsTagSkipInheritance
-    public void setTheme(String theme) {
-        super.setTheme(theme);
-    }
 
-    @Override
-    public String getTheme() {
-        return "ajax";
-    }
-    
     @StrutsTagAttribute(description="If true, weekly size of calendar changes to acomodate the month if false," +
                 " 42 day format is used", type="Boolean", defaultValue="false")
     public void setAdjustWeeks(String adjustWeeks) {
@@ -302,11 +289,6 @@
         this.templateCssPath = templateCssPath;
     }
     
-    @StrutsTagAttribute(description="Preset the value of input element")
-    public void setValue(String arg0) {
-        super.setValue(arg0);
-    }
-    
     private String format(Object obj) {
         if(obj == null)
             return null;
diff --git a/core/src/main/java/org/apache/struts2/components/Div.java b/core/src/main/java/org/apache/struts2/components/Div.java
index 0b9455e..189e4b4 100644
--- a/core/src/main/java/org/apache/struts2/components/Div.java
+++ b/core/src/main/java/org/apache/struts2/components/Div.java
@@ -24,22 +24,102 @@
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.struts2.views.annotations.StrutsTag;
+import org.apache.struts2.views.annotations.StrutsTagAttribute;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
  * <!-- START SNIPPET: javadoc -->
- * Creates an HTML &lt;div&gt;
+ * The div tag when used on the ajax theme, provides a remote call
+ * from the current page to update a section of content without having to refresh the entire page.
+ * <p>
+ * It creates a HTML &lt;DIV /&gt; that obtains it's content via a remote XMLHttpRequest call via
+ * the dojo framework.
+ * </p>
+ * <div>
+ * <!-- START SNIPPET: ajaxJavadoc -->
+ * <B>THE FOLLOWING IS ONLY VALID WHEN AJAX IS CONFIGURED</B>
+ * <ul>
+ *      <li>href</li>
+ *      <li>errorText</li>
+ *      <li>afterLoading</li>
+ *      <li>executeScripts</li>
+ *      <li>loadingText</li>
+ *      <li>listenTopics</li>
+ *      <li>handler</li>
+ *      <li>formId</li>
+ *      <li>formFilter</li>
+ *      <li>targets</li>
+ *      <li>notifyTopics</li>
+ *      <li>showErrorTransportText</li>
+ *      <li>indicator</li>
+ * </ul>
+ * 'targets' is a list of element ids whose content will be updated with the
+ * text returned from request.<p/>
+ * 'href' needs to be set as an url tag reference value.<p/>
+ * 'errorText' is the text that will be displayed when there is an error making the request.<p/>
+ * 'afterLoading' Deprecated. Use 'notifyTopics'.<p/>
+ * 'executeScripts' if set to true will execute javascript sections in the returned text.<p/>
+ * 'loadingText' is the text that will be displayed on the 'targets' elements while making the
+ * request.<p/>
+ * 'handler' is the name of the function that will take care of making the AJAX request. Dojo's widget
+ * and dom node are passed as parameters).<p/>
+ * 'formId' is the id of the html form whose fields will be seralized and passed as parameters
+ * in the request.<p/>
+ * 'formFilter' is the name of a function which will be used to filter the fields that will be
+ * seralized. This function takes as a parameter the element and returns true if the element
+ * should be included.<p/>
+ * 'updateFreq' sets(in milliseconds) the update interval.<p/>
+ * 'autoStart' if set to true(true by default) starts the timer automatically<p/>
+ * 'startTimerListenTopics' is a comma-separated list of topics used to start the timer<p/>
+ * 'stopTimerListenTopics' is a comma-separated list of topics used to stop the timer<p/>
+ * 'listenTopics' comma separated list of topics names, that will trigger a request<p/>
+ * 'indicator' element to be shown while the request executing<p/>
+ * 'showErrorTransportText': whether errors should be displayed (on 'targets')</p>
+ * 'showLoadingText' show loading text on targets</p>
+ * 'separateScript' Run scripts in a separate scope, unique for each Div<p/>
+ * 'notifyTopics' comma separated list of topics names, that will be published. Three parameters are passed:<p/>
+ * <ul>
+ *      <li>data: html or json object when type='load' or type='error'</li>
+ *      <li>type: 'before' before the request is made, 'load' when the request succeeds, or 'error' when it fails</li>
+ *      <li>request: request javascript object, when type='load' or type='error'</li>
+ * </ul>
  * <!-- END SNIPPET: javadoc -->
+ * </div><p> <b>Examples</b>
+ *
+ * <pre>
+ *       <!-- START SNIPPET: example -->
+ * &lt;s:url id="url" action="AjaxTest" />
+ * &lt;s:div
+ *    id=&quot;once&quot;
+ *    theme=&quot;ajax&quot;
+ *    href=&quot;%{url}&quot;
+ *    loadingText=&quot;Loading...&quot;
+ *    listenTopics=&quot;/refresh&quot;
+ *    updateFreq=&quot;3000&quot;
+ *    autoStart=&quot;true&quot;
+ *    formId=&quot;form&quot;
+ *&gt;&lt;/s:div&gt;
+ *       <!-- END SNIPPET: example -->
+ * </pre>
+ * </p>
  *
  */
 @StrutsTag(name="div", tldTagClass="org.apache.struts2.views.jsp.ui.DivTag", description="Render HTML div providing content from remote call via AJAX")
-public class Div extends ClosingUIBean {
+public class Div extends AbstractRemoteCallUIBean {
 
     public static final String TEMPLATE = "div";
     public static final String TEMPLATE_CLOSE = "div-close";
     public static final String COMPONENT_NAME = Div.class.getName();
 
+    protected String updateFreq;
+    protected String autoStart;
+    protected String delay;
+    protected String startTimerListenTopics;
+    protected String stopTimerListenTopics;
+    protected String refreshOnShow;
+    protected String separateScripts;
+
     public Div(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
         super(stack, request, response);
     }
@@ -51,4 +131,63 @@
     protected String getDefaultTemplate() {
         return TEMPLATE_CLOSE;
     }
+
+    public void evaluateExtraParams() {
+        super.evaluateExtraParams();
+
+        if (updateFreq != null)
+            addParameter("updateFreq", findValue(updateFreq, Integer.class));
+        if (autoStart != null)
+            addParameter("autoStart", findValue(autoStart, Boolean.class));
+        if (refreshOnShow != null)
+            addParameter("refreshOnShow", findValue(refreshOnShow, Boolean.class));
+        if (delay != null)
+            addParameter("delay", findValue(delay, Integer.class));
+        if (startTimerListenTopics != null)
+            addParameter("startTimerListenTopics", findString(startTimerListenTopics));
+        if (stopTimerListenTopics != null)
+            addParameter("stopTimerListenTopics", findString(stopTimerListenTopics));
+        if (separateScripts != null)
+            addParameter("separateScripts", findValue(separateScripts, Boolean.class));
+    }
+
+    @StrutsTagAttribute(description="Start timer automatically", type="Boolean", defaultValue="true")
+    public void setAutoStart(String autoStart) {
+        this.autoStart = autoStart;
+    }
+
+    @StrutsTagAttribute(description="How long to wait before fetching the content (in milliseconds)",  type="Integer")
+    public void setDelay(String delay) {
+        this.delay = delay;
+    }
+
+    @StrutsTagAttribute(description="How often to reload the content (in milliseconds)", type="Integer")
+    public void setUpdateFreq(String updateInterval) {
+        this.updateFreq = updateInterval;
+    }
+
+    @StrutsTagAttribute(description="Topics that will start the timer (for autoupdate)")
+    public void setStartTimerListenTopics(String startTimerListenTopic) {
+        this.startTimerListenTopics = startTimerListenTopic;
+    }
+
+    @StrutsTagAttribute(description="Topics that will stop the timer (for autoupdate)")
+    public void setStopTimerListenTopics(String stopTimerListenTopic) {
+        this.stopTimerListenTopics = stopTimerListenTopic;
+    }
+
+    @StrutsTagAttribute(description="Content will be loaded when div becomes visible, used only inside tabbedPanel", type="Boolean", defaultValue="false")
+    public void setRefreshOnShow(String refreshOnShow) {
+        this.refreshOnShow = refreshOnShow;
+    }
+
+    @StrutsTagAttribute(description="Deprecated. Use 'notifyTopics'. Javascript code execute after reload")
+    public void setAfterLoading(String afterLoading) {
+        this.afterLoading = afterLoading;
+    }
+
+    @StrutsTagAttribute(description="Run scripts in a separate scope, unique for each Div", defaultValue="true")
+    public void setSeparateScripts(String separateScripts) {
+        this.separateScripts = separateScripts;
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/components/Head.java b/core/src/main/java/org/apache/struts2/components/Head.java
index 652a7ea..830481c 100644
--- a/core/src/main/java/org/apache/struts2/components/Head.java
+++ b/core/src/main/java/org/apache/struts2/components/Head.java
@@ -33,7 +33,18 @@
 /**
  * <!-- START SNIPPET: javadoc -->
  *
- * Renders parts of the HEAD section for an HTML file. Encoding can be set using this tag.
+ * Renders parts of the HEAD section for an HTML file. This is useful as some themes require certain CSS and JavaScript
+ * includes.<p/>
+ *
+ * If, for example, your page has ajax components integrated, without having the default theme set to ajax, you might
+ * want to use the head tag with <b>theme="ajax"</b> so that the typical ajax header setup will be included in the
+ * page.<p/>
+ *
+ * The tag also includes the option to set a custom datepicker theme if needed. See calendarcss parameter for
+ * description for details.<p/>
+ *
+ * If you use the ajax theme you can turn a debug flag on by setting the debug parameter to <tt>true</tt>.
+ *
  * <!-- END SNIPPET: javadoc -->
  *
  * <p/> <b>Examples</b>
@@ -47,12 +58,32 @@
  * <!-- END SNIPPET: example1 -->
  * </pre>
  *
+ * <pre>
+ * <!-- START SNIPPET: example2 -->
+ * &lt;head&gt;
+ *   &lt;title&gt;My page&lt;/title&gt;
+ *   &lt;s:head theme="ajax" calendarcss="calendar-green"/&gt;
+ * &lt;/head&gt;
+ * <!-- END SNIPPET: example2 -->
+ * </pre>
+ *
+ * <pre>
+ * <!-- START SNIPPET: example3 -->
+ * &lt;head&gt;
+ *   &lt;title&gt;My page&lt;/title&gt;
+ *   &lt;s:head theme="ajax" debug="true"/&gt;
+ * &lt;/head&gt;
+ * <!-- END SNIPPET: example3 -->
+ * </pre>
+ *
  */
 @StrutsTag(name="head", tldBodyContent="empty", tldTagClass="org.apache.struts2.views.jsp.ui.HeadTag",
     description="Render a chunk of HEAD for your HTML file")
 public class Head extends UIBean {
     public static final String TEMPLATE = "head";
 
+    private String calendarcss = "calendar-blue.css";
+    private boolean debug;
     private String encoding;
 
     public Head(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
@@ -71,6 +102,39 @@
     public void evaluateParams() {
         super.evaluateParams();
 
+        if (calendarcss != null) {
+            String css = findString(calendarcss);
+            if (css != null && css.trim().length() > 0) {
+                if (css.lastIndexOf(".css") < 0) {
+                    addParameter("calendarcss", css + ".css");
+                } else {
+                    addParameter("calendarcss", css);
+                }
+            }
+        }
+
         addParameter("encoding", encoding);
+        addParameter("debug", Boolean.valueOf(debug).toString());
     }
+
+    public String getCalendarcss() {
+        return calendarcss;
+    }
+
+    @StrutsTagAttribute(description="The jscalendar css theme to use", defaultValue="calendar-blue.css")
+    public void setCalendarcss(String calendarcss) {
+        //TODO remove this one
+        this.calendarcss = calendarcss;
+    }
+
+    public boolean isDebug() {
+        return debug;
+    }
+
+    @StrutsTagAttribute(description="Set to true to enable debugging mode for AJAX themes")
+    public void setDebug(boolean debug) {
+        this.debug = debug;
+    }
+
+
 }
diff --git a/core/src/main/java/org/apache/struts2/components/I18n.java b/core/src/main/java/org/apache/struts2/components/I18n.java
index 5f2830c..d2919fa 100644
--- a/core/src/main/java/org/apache/struts2/components/I18n.java
+++ b/core/src/main/java/org/apache/struts2/components/I18n.java
@@ -30,6 +30,7 @@
 
 import com.opensymphony.xwork2.ActionContext;
 import com.opensymphony.xwork2.LocaleProvider;
+import com.opensymphony.xwork2.TextProviderSupport;
 import com.opensymphony.xwork2.TextProviderFactory;
 import com.opensymphony.xwork2.util.LocalizedTextUtil;
 import com.opensymphony.xwork2.util.ValueStack;
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/RemoteUICallBean.java b/core/src/main/java/org/apache/struts2/components/RemoteUICallBean.java
similarity index 76%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/components/RemoteUICallBean.java
rename to core/src/main/java/org/apache/struts2/components/RemoteUICallBean.java
index 956a935..7173095 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/RemoteUICallBean.java
+++ b/core/src/main/java/org/apache/struts2/components/RemoteUICallBean.java
@@ -1,5 +1,5 @@
 /*
- * $Id: RemoteUICallBean.java 508285 2007-02-16 02:42:24Z musachy $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,7 +18,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.components;
+package org.apache.struts2.components;
 
 
 public interface RemoteUICallBean {
@@ -31,11 +31,9 @@
 
     void setErrorText(String errorText);
 
-    void setAfterNotifyTopics(String afterNotifyTopics);
+    void setAfterLoading(String afterLoading);
 
-    void setBeforeNotifyTopics(String beforeNotifyTopics);
-    
-    void setErrorNotifyTopics(String errorNotifyTopics);
+    void setBeforeLoading(String beforeLoading);
 
     void setExecuteScripts(String executeScripts);
 
@@ -52,10 +50,5 @@
     void setShowLoadingText(String showLoadingText);
 
     void setIndicator(String indicator);
-    
-    void setName(String name);
-    
-    void setCssStyle(String style);
-    
-    void setCssClass(String cssClass);
+
 }
diff --git a/core/src/main/java/org/apache/struts2/components/Set.java b/core/src/main/java/org/apache/struts2/components/Set.java
index ebb39f1..942b8b0 100644
--- a/core/src/main/java/org/apache/struts2/components/Set.java
+++ b/core/src/main/java/org/apache/struts2/components/Set.java
@@ -100,7 +100,7 @@
         } else {
         	o = findValue(value);
         }
-
+        
         body="";
 
         String name;
diff --git a/core/src/main/java/org/apache/struts2/components/Submit.java b/core/src/main/java/org/apache/struts2/components/Submit.java
index 70d1361..4d9c74f 100644
--- a/core/src/main/java/org/apache/struts2/components/Submit.java
+++ b/core/src/main/java/org/apache/struts2/components/Submit.java
@@ -44,13 +44,125 @@
  * Please note that the button type has advantages by adding the possibility to seperate the submitted value from the
  * text shown on the button face, but has issues with Microsoft Internet Explorer at least up to 6.0
  * <!-- END SNIPPET: javadoc -->
+ *
+ * <p/> <b>Examples</b>
+ * <pre>
+ * <!-- START SNIPPET: example -->
+ * &lt;s:submit value="%{'Submit'}" /&gt;
+ * <!-- END SNIPPET: example -->
+ * </pre>
+ * <pre>
+ * <!-- START SNIPPET: example2 -->
+ * Render an image submit:
+ * &lt;s:submit type="image" value="%{'Submit'}" label="Submit the form" src="submit.gif"/&gt;
+ * <!-- END SNIPPET: example2 -->
+ * </pre>
+ * <pre>
+ * <!-- START SNIPPET: example3 -->
+ * Render an button submit:
+ * &lt;s:submit type="button" value="%{'Submit'}" label="Submit the form"/&gt;
+ * <!-- END SNIPPET: example3 -->
+ * </pre>
+ *
+ * <!-- START SNIPPET: ajaxJavadoc -->
+ * <B>THE FOLLOWING IS ONLY VALID WHEN AJAX IS CONFIGURED</B>
+ * <ul>
+ *      <li>href</li>
+ *      <li>errorText</li>
+ *      <li>listenTopics</li>
+ *      <li>notifyTopics</li>
+ *      <li>executeScripts</li>
+ *      <li>loadingText</li>
+ *      <li>listenTopics</li>
+ *      <li>handler</li>
+ *      <li>formId</li>
+ *      <li>formFilter</li>
+ *      <li>targets</li>
+ *      <li>showErrorTransportText</li>
+ *      <li>targets</li>
+ *      <li>indicator</li>
+ * </ul>
+ * 'resultDivId' Deprecated. Use targets.</p>
+ * 'targets' is a list of element ids whose content will be updated with the
+ * text returned from request.<p/>
+ * 'errorText' is the text that will be displayed when there is an error making the request.<p/>
+ * 'onLoadJS' Deprecated. Use 'notifyTopics'.<p/>
+ * 'preInvokeJS' Deprecated. Use 'notifyTopics'.<p/>
+ * 'executeScripts' if set to true will execute javascript sections in the returned text.<p/>
+ * 'loadingText' is the text that will be displayed on the 'targets' elements while making the
+ * request.<p/>
+ * 'handler' is the name of the function that will take care of making the AJAX request. Dojo's widget
+ * and dom node are passed as parameters).<p/>
+ * 'formId' is the id of the html form whose fields will be seralized and passed as parameters
+ * in the request.<p/>
+ * 'formFilter' is the name of a function which will be used to filter the fields that will be
+ * seralized. This function takes as a parameter the element and returns true if the element
+ * should be included.<p/>
+ * 'listenTopics' comma separated list of topics names, that will trigger a request
+ * 'indicator' element to be shown while the request executing
+ * 'showErrorTransportText': whether errors should be displayed (on 'targets')</p>
+ * 'showLoadingText' show loading text on targets</p>
+ * 'notifyTopics' comma separated list of topics names, that will be published. Three parameters are passed:<p/>
+ * <ul>
+ *      <li>data: html or json object when type='load' or type='error'</li>
+ *      <li>type: 'before' before the request is made, 'load' when the request succeeds, or 'error' when it fails</li>
+ *      <li>request: request javascript object, when type='load' or type='error'</li>
+ * </ul>
+ * <!-- END SNIPPET: ajaxJavadoc -->
+ *
+ * <!-- START SNIPPET: ajxExDescription1 -->
+ * Show the results in another div. If you want your results to be shown in
+ * a div, use the resultDivId where the id is the id of the div you want them
+ * shown in. This is an inner HTML approah. Your results get jammed into
+ * the div for you. Here is a sample of this approach:
+ * <!-- END SNIPPET: ajxExDescription1 -->
+ *
+ * <pre>
+ * <!-- START SNIPPET: ajxExample1 -->
+ * Remote form replacing another div:
+ * &lt;div id='two' style="border: 1px solid yellow;"&gt;Initial content&lt;/div&gt;
+ * &lt;s:form
+ *       id='theForm2'
+ *       cssStyle="border: 1px solid green;"
+ *       action='/AjaxRemoteForm.action'
+ *       method='post'
+ *       theme="ajax"&gt;
+ *
+ *   &lt;input type='text' name='data' value='Struts User' /&gt;
+ *   &lt;s:submit value="GO2" theme="ajax" resultDivId="two" /&gt;
+ *
+ * &lt;/s:form &gt;
+ * <!-- END SNIPPET: ajxExample1 -->
+ * </pre>
+ *
  */
 @StrutsTag(name="submit", tldTagClass="org.apache.struts2.views.jsp.ui.SubmitTag", description="Render a submit button")
-public class Submit extends FormButton {
+public class Submit extends FormButton implements RemoteUICallBean{
     
     private static final Log LOG = LogFactory.getLog(Submit.class);
+    
     final public static String TEMPLATE = "submit";
+
+    protected String href;
+    protected String errorText;
+    protected String executeScripts;
+    protected String loadingText;
+    protected String listenTopics;
+    protected String handler;
+    protected String formId;
+    protected String formFilter;
     protected String src;
+    protected String notifyTopics;
+    protected String showErrorTransportText;
+    protected String indicator;
+    protected String showLoadingText;
+    //these two are called "preInvokeJS" and "onLoadJS" on the tld
+    //Names changed here to keep some consistency
+    protected String beforeLoading;
+    protected String afterLoading;
+
+    //this one is called "resultDivId" on the tld
+    protected String targets;
 
     public Submit(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
         super(stack, request, response);
@@ -71,12 +183,40 @@
 
         super.evaluateParams();
     }
-    
+
     public void evaluateExtraParams() {
         super.evaluateExtraParams();
-        
+
+        if (href != null)
+            addParameter("href", findString(href));
+        if (errorText != null)
+            addParameter("errorText", findString(errorText));
+        if (loadingText != null)
+            addParameter("loadingText", findString(loadingText));
+        if (afterLoading != null)
+            addParameter("afterLoading", findString(afterLoading));
+        if (beforeLoading != null)
+            addParameter("beforeLoading", findString(beforeLoading));
+        if (executeScripts != null)
+            addParameter("executeScripts", findValue(executeScripts, Boolean.class));
+        if (listenTopics != null)
+            addParameter("listenTopics", findString(listenTopics));
+        if (notifyTopics != null)
+            addParameter("notifyTopics", findString(notifyTopics));
+        if (handler != null)
+            addParameter("handler", findString(handler));
+        if (formId != null)
+            addParameter("formId", findString(formId));
+        if (formFilter != null)
+            addParameter("formFilter", findString(formFilter));
         if (src != null)
             addParameter("src", findString(src));
+        if (indicator != null)
+            addParameter("indicator", findString(indicator));
+        if (targets != null)
+            addParameter("targets", findString(targets));
+        if (showLoadingText != null)
+            addParameter("showLoadingText", findString(showLoadingText));
     }
 
     /**
@@ -88,11 +228,6 @@
         return true;
     }
     
-    @StrutsTagAttribute(description="Supply an image src for <i>image</i> type submit button. Will have no effect for types <i>input</i> and <i>button</i>.")
-    public void setSrc(String src) {
-        this.src = src;
-    }
-    
     /**
      * Overrides to be able to render body in a template rather than always before the template
      */
@@ -111,4 +246,93 @@
 
         return false;
     }
+
+    @StrutsTagAttribute(description="Topic that will trigger the remote call")
+    public void setListenTopics(String listenTopics) {
+        this.listenTopics = listenTopics;
+    }
+
+    @StrutsTagAttribute(description="The theme to use for the element. <b>This tag will usually use the ajax theme.</b>")
+    public void setTheme(String theme) {
+        super.setTheme(theme);
+    }
+
+    @StrutsTagAttribute(description="The URL to call to obtain the content. Note: If used with ajax context, the value must be set as an url tag value.")
+    public void setHref(String href) {
+        this.href = href;
+    }
+
+    @StrutsTagAttribute(description="The text to display to the user if the is an error fetching the content")
+    public void setErrorText(String errorText) {
+        this.errorText = errorText;
+    }
+
+    @StrutsTagAttribute(name="onLoadJS", description="Deprecated. Use 'notifyTopics'. Javascript code execute after reload")
+    public void setAfterLoading(String afterLoading) {
+        this.afterLoading = afterLoading;
+    }
+
+
+    @StrutsTagAttribute(name="preInvokeJS", description="Deprecated. Use 'notifyTopics'. Javascript code execute before reload")
+    public void setBeforeLoading(String beforeLoading) {
+        this.beforeLoading = beforeLoading;
+    }
+
+    @StrutsTagAttribute(description="Javascript code in the fetched content will be executed", type="Boolean", defaultValue="false")
+    public void setExecuteScripts(String executeScripts) {
+        this.executeScripts = executeScripts;
+    }
+
+    @StrutsTagAttribute(description="Text to be shown while content is being fetched", defaultValue="Loading...")
+    public void setLoadingText(String loadingText) {
+        this.loadingText = loadingText;
+    }
+
+    @StrutsTagAttribute(description="Javascript function name that will make the request")
+    public void setHandler(String handler) {
+        this.handler = handler;
+    }
+
+    @StrutsTagAttribute(description="Function name used to filter the fields of the form.")
+    public void setFormFilter(String formFilter) {
+        this.formFilter = formFilter;
+    }
+
+    @StrutsTagAttribute(description="Form id whose fields will be serialized and passed as parameters")
+    public void setFormId(String formId) {
+        this.formId = formId;
+    }
+
+    @StrutsTagAttribute(description="Supply an image src for <i>image</i> type submit button. Will have no effect for types <i>input</i> and <i>button</i>.")
+    public void setSrc(String src) {
+        this.src = src;
+    }
+
+    @StrutsTagAttribute(description="Comma delimited list of ids of the elements whose content will be updated")
+    public void setTargets(String targets) {
+        this.targets = targets;
+    }
+
+
+    @StrutsTagAttribute(description="Topics that will published when the remote call completes")
+    public void setNotifyTopics(String notifyTopics) {
+        this.notifyTopics = notifyTopics;
+    }
+
+
+    @StrutsTagAttribute(description="Set whether errors will be shown or not", type="Boolean", defaultValue="true")
+    public void setShowErrorTransportText(String showErrorTransportText) {
+        this.showErrorTransportText = showErrorTransportText;
+    }
+
+
+    @StrutsTagAttribute(description="Set indicator")
+    public void setIndicator(String indicator) {
+        this.indicator = indicator;
+    }
+
+    @StrutsTagAttribute(description="Show loading text on targets", type="Boolean", defaultValue="true")
+    public void setShowLoadingText(String showLoadingText) {
+        this.showLoadingText = showLoadingText;
+    }
 }
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TabbedPanel.java b/core/src/main/java/org/apache/struts2/components/TabbedPanel.java
similarity index 88%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TabbedPanel.java
rename to core/src/main/java/org/apache/struts2/components/TabbedPanel.java
index 573f2b2..98a8704 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TabbedPanel.java
+++ b/core/src/main/java/org/apache/struts2/components/TabbedPanel.java
@@ -1,5 +1,5 @@
 /*
- * $Id: TabbedPanel.java 508575 2007-02-16 20:46:49Z musachy $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,15 +18,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.components;
+package org.apache.struts2.components;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.struts2.components.ClosingUIBean;
 import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
-import org.apache.struts2.views.annotations.StrutsTagSkipInheritance;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
@@ -43,7 +41,7 @@
  * <!-- END SNIPPET: exdesc -->
  * <pre>
  * <!-- START SNIPPET: example -->
- * &lt;s:tabbedpanel id=&quot;test&quot; &gt;
+ * &lt;s:tabbedPanel id=&quot;test&quot; &gt;
  *    &lt;s:div id=&quot;one&quot; label=&quot;one&quot; theme=&quot;ajax&quot; labelposition=&quot;top&quot; &gt;
  *        This is the first pane&lt;br/&gt;
  *        &lt;s:form&gt;
@@ -54,12 +52,12 @@
  *    &lt;s:div id=&quot;three&quot; label=&quot;remote&quot; theme=&quot;ajax&quot; href=&quot;/AjaxTest.action&quot; &gt;
  *        This is the remote tab
  *    &lt;/s:div&gt;
- * &lt;/s:tabbedpanel&gt;
+ * &lt;/s:tabbedPanel&gt;
  * <!-- END SNIPPET: example -->
  * </pre>
  *
  */
-@StrutsTag(name="tabbedpanel", tldTagClass="org.apache.struts2.dojo.views.jsp.ui.TabbedPanelTag", description="Render a tabbedPanel widget.")
+@StrutsTag(name="tabbedPanel", tldTagClass="org.apache.struts2.views.jsp.ui.TabbedPanelTag", description="Render a tabbedPanel widget.")
 public class TabbedPanel extends ClosingUIBean {
     public static final String TEMPLATE = "tabbedpanel";
     public static final String TEMPLATE_CLOSE = "tabbedpanel-close";
@@ -96,17 +94,6 @@
             addParameter("templateCssPath", findString(templateCssPath));
     }
 
-    @Override
-    @StrutsTagSkipInheritance
-    public void setTheme(String theme) {
-        super.setTheme(theme);
-    }
-    
-    @Override
-    public String getTheme() {
-        return "ajax";
-    }
-    
     public String getDefaultOpenTemplate() {
         return TEMPLATE;
     }
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Tree.java b/core/src/main/java/org/apache/struts2/components/Tree.java
similarity index 91%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Tree.java
rename to core/src/main/java/org/apache/struts2/components/Tree.java
index 9babeee..3e60a31 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Tree.java
+++ b/core/src/main/java/org/apache/struts2/components/Tree.java
@@ -1,5 +1,5 @@
 /*
- * $Id: Tree.java 497654 2007-01-19 00:21:57Z rgielen $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,17 +18,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.components;
+package org.apache.struts2.components;
 
 import java.io.Writer;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.struts2.components.ClosingUIBean;
 import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
-import org.apache.struts2.views.annotations.StrutsTagSkipInheritance;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
@@ -69,7 +67,7 @@
  * </pre>
  *
  */
-@StrutsTag(name="tree", tldTagClass="org.apache.struts2.dojo.views.jsp.ui.TreeTag", description="Render a tree widget.")
+@StrutsTag(name="tree", tldTagClass="org.apache.struts2.views.jsp.ui.TreeTag", description="Render a tree widget.")
 public class Tree extends ClosingUIBean {
 
     private static final String TEMPLATE = "tree-close";
@@ -213,17 +211,6 @@
         }
     }
 
-    @Override
-    @StrutsTagSkipInheritance
-    public void setTheme(String theme) {
-        super.setTheme(theme);
-    }
-    
-    @Override
-    public String getTheme() {
-        return "ajax";
-    }
-
     public String getDefaultOpenTemplate() {
         return OPEN_TEMPLATE;
     }
@@ -442,25 +429,5 @@
     public void setShowGrid(String showGrid) {
         this.showGrid = showGrid;
     }
-    
-    @StrutsTagAttribute(description="The css class to use for element")
-    public void setCssClass(String cssClass) {
-        super.setCssClass(cssClass);
-    }
-
-    @StrutsTagAttribute(description="The css style to use for element")
-    public void setCssStyle(String cssStyle) {
-        super.setCssStyle(cssStyle);
-    }
-
-    @StrutsTagAttribute(description="The id to use for the element")
-    public void setId(String id) {
-        super.setId(id);
-    }
-
-    @StrutsTagAttribute(description="The name to set for element")
-    public void setName(String name) {
-        super.setName(name);
-    }
 }
 
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TreeNode.java b/core/src/main/java/org/apache/struts2/components/TreeNode.java
similarity index 73%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TreeNode.java
rename to core/src/main/java/org/apache/struts2/components/TreeNode.java
index 6404b2a..b00da63 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/TreeNode.java
+++ b/core/src/main/java/org/apache/struts2/components/TreeNode.java
@@ -1,5 +1,5 @@
 /*
- * $Id: TreeNode.java 497654 2007-01-19 00:21:57Z rgielen $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,15 +18,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.components;
+package org.apache.struts2.components;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.struts2.components.ClosingUIBean;
 import org.apache.struts2.views.annotations.StrutsTag;
 import org.apache.struts2.views.annotations.StrutsTagAttribute;
-import org.apache.struts2.views.annotations.StrutsTagSkipInheritance;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
@@ -81,7 +79,7 @@
  * </pre>
  *
  */
-@StrutsTag(name="treenode", tldTagClass="org.apache.struts2.dojo.views.jsp.ui.TreeNodeTag", description="Render a tree node within a tree widget.")
+@StrutsTag(name="treenode", tldTagClass="org.apache.struts2.views.jsp.ui.TreeNodeTag", description="Render a tree node within a tree widget.")
 public class TreeNode extends ClosingUIBean {
     private static final String TEMPLATE = "treenode-close";
     private static final String OPEN_TEMPLATE = "treenode";
@@ -90,17 +88,6 @@
         super(stack, request, response);
     }
 
-    @Override
-    @StrutsTagSkipInheritance
-    public void setTheme(String theme) {
-        super.setTheme(theme);
-    }
-    
-    @Override
-    public String getTheme() {
-        return "ajax";
-    }
-
     public String getDefaultOpenTemplate() {
         return OPEN_TEMPLATE;
     }
@@ -113,24 +100,4 @@
     public void setLabel(String label) {
         super.setLabel(label);
     }
-    
-    @StrutsTagAttribute(description="The css class to use for element")
-    public void setCssClass(String cssClass) {
-        super.setCssClass(cssClass);
-    }
-
-    @StrutsTagAttribute(description="The css style to use for element")
-    public void setCssStyle(String cssStyle) {
-        super.setCssStyle(cssStyle);
-    }
-
-    @StrutsTagAttribute(description="The id to use for the element")
-    public void setId(String id) {
-        super.setId(id);
-    }
-
-    @StrutsTagAttribute(description="The name to set for element")
-    public void setName(String name) {
-        super.setName(name);
-    }
 }
diff --git a/core/src/main/java/org/apache/struts2/components/UIBean.java b/core/src/main/java/org/apache/struts2/components/UIBean.java
index 663ad6c..01d3afa 100644
--- a/core/src/main/java/org/apache/struts2/components/UIBean.java
+++ b/core/src/main/java/org/apache/struts2/components/UIBean.java
@@ -188,7 +188,7 @@
  *          <td>html javascript onclick attribute</td>
  *       </tr>
  *       <tr>
- *          <td>ondblclick</td>
+ *          <td>ondbclick</td>
  *          <td>simple</td>
  *          <td>String</td>
  *          <td>html javascript ondbclick attribute</td>
@@ -311,31 +311,31 @@
  *
  * <!-- START SNIPPET: tooltipdescription -->
  *
- * Every Form UI component (in xhtml / css_xhtml or any other that extends them) can
- * have tooltips assigned to them. The Form component's tooltip related attribute, once
- * defined, will be applied to all form UI components that are created under it unless
- * explicitly overriden by having the Form UI component itself defined with their own tooltip attribute.
+ * Every Form UI component (in xhtml / css_xhtml or any others that extends of them) could
+ * have tooltip assigned to a them. The Form component's tooltip related attribute once
+ * defined will be applicable to all form UI component that is created under it unless
+ * explicitly overriden by having the Form UI component itself defined that tooltip attribute.
  *
  * <p/>
  *
- * In Example 1, the textfield will inherit the tooltipDelay and tooltipIcon attribte from
- * its containing form. In other words, although it doesn't define a tooltipAboveMousePointer
- * attribute, it will have that attribute inherited from its containing form.
+ * In Example 1, the textfield will inherit the tooltipDelay adn tooltipIcon attribte from
+ * its containing form. In other words, although it doesn't defined a tooltipAboveMousePointer
+ * attribute, it will have that attributes inherited from its containing form.
  *
  * <p/>
  *
  * In Example 2, the the textfield will inherite both the tooltipDelay and
- * tooltipIcon attribute from its containing form, but the tooltipDelay
+ * tooltipIcon attribute from its containing form but tooltipDelay
  * attribute is overriden at the textfield itself. Hence, the textfield actually will
- * have its tooltipIcon defined as /myImages/myIcon.gif, inherited from its containing form, and
- * tooltipDelay defined as 5000.
+ * have tooltipIcon defined as /myImages/myIcon.gif, inherited from its containing form and
+ * tooltipDelay defined as 5000, due to overriden at the textfield itself.
  *
  * <p/>
  *
- * Example 3, 4 and 5 show different ways of setting the tooltipConfig attribute.<br/>
- * <b>Example 3:</b> Set tooltip config through the body of the param tag<br/>
- * <b>Example 4:</b> Set tooltip config through the value attribute of the param tag<br/>
- * <b>Example 5:</b> Set tooltip config through the tooltipConfig attribute of the component tag<br/>
+ * Example 3, 4 and 5 shows different way of setting the tooltipConfig attribute.<br/>
+ * <b>Example 3:</b>Set tooltip config through body of param tag<br/>
+ * <b>Example 4:</b>Set tooltip config through value attribute of param tag<br/>
+ * <b>Example 5:</b>Set tooltip config through tooltipConfig attribute of component tag<br/>
  *
  * <!-- END SNIPPET: tooltipdescription -->
  *
@@ -346,7 +346,7 @@
  * &lt;!-- Example 1: --&gt;
  * &lt;s:form
  *          tooltipConfig="#{'tooltipDelay':'500',
- *                           'tooltipIcon':'/myImages/myIcon.gif'}" .... &gt;
+ *                           'tooltipIcon='/myImages/myIcon.gif'}" .... &gt;
  *   ....
  *     &lt;s:textfield label="Customer Name" tooltip="Enter the customer name" .... /&gt;
  *   ....
@@ -367,7 +367,7 @@
  * &lt;-- Example 3: --&gt;
  * &lt;s:textfield
  *        label="Customer Name"
- *        tooltip="One of our customer Details"&gt;
+ *        tooltip="One of our customer Details'"&gt;
  *        &lt;s:param name="tooltipConfig"&gt;
  *             tooltipDelay = 500 |
  *             tooltipIcon = /myImages/myIcon.gif
diff --git a/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java b/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java
index ace507d..c90c07f 100644
--- a/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java
+++ b/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java
@@ -81,7 +81,7 @@
  *     <td>com.opensymphony.xwork2.util.ObjectTypeDeterminer</td>
  *     <td>struts.objectTypeDeterminer</td>
  *     <td>singleton</td>
- *     <td>Determines what the key and element class of a Map or Collection should be</td>
+ *     <td>Determines what the key and and element class of a Map or Collection should be</td>
  *   </tr>
  *   <tr>
  *     <td>org.apache.struts2.dispatcher.mapper.ActionMapper</td>
diff --git a/core/src/main/java/org/apache/struts2/config/MethodConfigurationProvider.java b/core/src/main/java/org/apache/struts2/config/MethodConfigurationProvider.java
index 6459006..0100dcf 100644
--- a/core/src/main/java/org/apache/struts2/config/MethodConfigurationProvider.java
+++ b/core/src/main/java/org/apache/struts2/config/MethodConfigurationProvider.java
@@ -49,7 +49,7 @@
  * }
  * </code>
  * <p/>
- * If the action URL is "foo!bar", then the "foo" action is invoked,
+ * If the action URL is "foo!bar", the the "foo" action is invoked,
  * calling "bar" instead of "execute".
  * <p/>
  * Instead of scanning each request at runtime, the provider creates action mappings
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
index a2191d6..d96f5fe 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
@@ -403,7 +403,7 @@
 
         TextProvider textProvider = container.getInstance(TextProvider.class);
         TextProviderFactory.setInstance(textProvider);
-
+        
         return container;
     }
 
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java b/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
index 09460c7..f6bd225 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/FilterDispatcher.java
@@ -110,9 +110,9 @@
  * database access credentials.
  *
  * <p/>
- *
+ * 
  * <p>
- *
+ * 
  * This filter supports the following init-params:
  * <!-- START SNIPPET: params -->
  *
@@ -122,15 +122,15 @@
  *
  * <li><b>actionPackages</b> - a comma-delimited list of Java packages to scan for Actions.</li>
  *
- * <li><b>configProviders</b> - a comma-delimited list of Java classes that implement the
- * {@link ConfigurationProvider} interface that should be used for building the {@link Configuration}.</li>
- *
+ * <li><b>configProviders</b> - a comma-delimited list of Java classes that implement the 
+ * {@link com.opensymphony.xwork2.config.ConfigurationProvider} interface that should be used for building the {@link com.opensymphony.xwork2.config.Configuration}.</li>
+ * 
  * <li><b>*</b> - any other parameters are treated as framework constants.</li>
- *
+ * 
  * </ul>
  *
  * <!-- END SNIPPET: params -->
- *
+ * 
  * </p>
  *
  * To use a custom {@link Dispatcher}, the <code>createDispatcher()</code> method could be overriden by
@@ -195,11 +195,11 @@
      * @param filterConfig The filter configuration
      */
     public void init(FilterConfig filterConfig) throws ServletException {
-       this.filterConfig = filterConfig;
-
+    	 this.filterConfig = filterConfig;
+    	 
         dispatcher = createDispatcher(filterConfig);
         dispatcher.init();
-
+       
         String param = filterConfig.getInitParameter("packages");
         String packages = "org.apache.struts2.static template org.apache.struts2.interceptor.debugging";
         if (param != null) {
@@ -221,13 +221,13 @@
             dispatcher.cleanup();
         }
     }
-
+    
     /**
      * Create a default {@link Dispatcher} that subclasses can override
      * with a custom Dispatcher, if needed.
      *
      * @param filterConfig Our FilterConfig
-     * @return Initialized Dispatcher
+     * @return Initialized Dispatcher 
      */
     protected Dispatcher createDispatcher(FilterConfig filterConfig) {
         Map<String,String> params = new HashMap<String,String>();
@@ -247,7 +247,7 @@
     public static void setServeStaticContent(String val) {
         serveStatic = "true".equals(val);
     }
-
+    
     /**
      * Modify state of StrutsConstants.STRUTS_SERVE_STATIC_BROWSER_CACHE setting.
      * @param val New setting
@@ -256,7 +256,7 @@
     public static void setServeStaticBrowserCache(String val) {
         serveStaticBrowserCache = "true".equals(val);
     }
-
+    
     /**
      * Modify state of StrutsConstants.STRUTS_I18N_ENCODING setting.
      * @param val New setting
@@ -265,7 +265,7 @@
     public static void setEncoding(String val) {
         encoding = val;
     }
-
+    
     /**
      * Modify ActionMapper instance.
      * @param mapper New instance
@@ -274,7 +274,7 @@
     public static void setActionMapper(ActionMapper mapper) {
         actionMapper = mapper;
     }
-
+    
     /**
      * Provide a workaround for some versions of WebLogic.
      * <p/>
@@ -323,7 +323,7 @@
         } else {
             dispatcher = du;
         }
-
+        
         try {
             // Wrap request first, just in case it is multipart/form-data
             // parameters might not be accessible through before encoding (ww-1278)
@@ -372,14 +372,14 @@
      * Otherwise, if the request is for a static resource,
      * the resource is copied directly to the response, with the appropriate caching headers set.
      * <p/>
-     * If the request does not match an action mapping, or a static resource page,
+     * If the request does not match an action mapping, or a static resource page, 
      * then it passes through.
      *
      * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
      */
     public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
 
-
+    	
         HttpServletRequest request = (HttpServletRequest) req;
         HttpServletResponse response = (HttpServletResponse) res;
         ServletContext servletContext = getServletContext();
@@ -430,7 +430,7 @@
 
     /**
      * Locate a static resource and copy directly to the response,
-     * setting the appropriate caching headers.
+     * setting the appropriate caching headers. 
      *
      * @param name The resource name
      * @param request The request
@@ -443,35 +443,35 @@
                 InputStream is = findInputStream(name, pathPrefix);
                 if (is != null) {
                     Calendar cal = Calendar.getInstance();
-
+                    
                     // check for if-modified-since, prior to any other headers
                     long ifModifiedSince = 0;
                     try {
-                      ifModifiedSince = request.getDateHeader("If-Modified-Since");
+                    	ifModifiedSince = request.getDateHeader("If-Modified-Since");
                     } catch (Exception e) {
-                      LOG.warn("Invalid If-Modified-Since header value: '" + request.getHeader("If-Modified-Since") + "', ignoring");
+                    	LOG.warn("Invalid If-Modified-Since header value: '" + request.getHeader("If-Modified-Since") + "', ignoring");
                     }
-            long lastModifiedMillis = lastModifiedCal.getTimeInMillis();
-            long now = cal.getTimeInMillis();
+    				long lastModifiedMillis = lastModifiedCal.getTimeInMillis();
+    				long now = cal.getTimeInMillis();
                     cal.add(Calendar.DAY_OF_MONTH, 1);
                     long expires = cal.getTimeInMillis();
-
-            if (ifModifiedSince > 0 && ifModifiedSince <= lastModifiedMillis) {
-              // not modified, content is not sent - only basic headers and status SC_NOT_MODIFIED
+                    
+    				if (ifModifiedSince > 0 && ifModifiedSince <= lastModifiedMillis) {
+    					// not modified, content is not sent - only basic headers and status SC_NOT_MODIFIED
                         response.setDateHeader("Expires", expires);
-              response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
-              is.close();
-              return;
-            }
-
-                  // set the content-type header
+    					response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
+    					is.close();
+    					return;
+    				}
+                	
+                	// set the content-type header
                     String contentType = getContentType(name);
                     if (contentType != null) {
                         response.setContentType(contentType);
                     }
 
                     if (serveStaticBrowserCache) {
-                      // set heading information for caching static content
+                    	// set heading information for caching static content
                         response.setDateHeader("Date", now);
                         response.setDateHeader("Expires", expires);
                         response.setDateHeader("Retry-After", expires);
@@ -537,7 +537,7 @@
         while (-1 != (n = input.read(buffer))) {
             output.write(buffer, 0, n);
         }
-        output.flush();
+        output.flush(); // WW-1526
     }
 
     /**
diff --git a/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java b/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
index 2dcac4a..f334c87 100644
--- a/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
+++ b/core/src/main/java/org/apache/struts2/dispatcher/mapper/DefaultActionMapper.java
@@ -46,7 +46,7 @@
  *
  * Default action mapper implementation, using the standard *.[ext] (where ext
  * usually "action") pattern. The extension is looked up from the Struts
- * configuration key <b>struts.action.extension</b>.
+ * configuration key <b>struts.action.exection</b>.
  *
  * <p/> To help with dealing with buttons and other related requirements, this
  * mapper (and other {@link ActionMapper}s, we hope) has the ability to name a
@@ -87,11 +87,11 @@
  *
  * <pre>
  *  &lt;!-- START SNIPPET: method-example --&gt;
- *  &lt;s:form action=&quot;baz&quot;&gt;
- *      &lt;s:textfield label=&quot;Enter your name&quot; name=&quot;person.name&quot;/&gt;
- *      &lt;s:submit value=&quot;Create person&quot;/&gt;
- *      &lt;s:submit name=&quot;method:anotherMethod&quot; value=&quot;Cancel&quot;/&gt;
- *  &lt;/s:form&gt;
+ *  &lt;a:form action=&quot;baz&quot;&gt;
+ *      &lt;a:textfield label=&quot;Enter your name&quot; name=&quot;person.name&quot;/&gt;
+ *      &lt;a:submit value=&quot;Create person&quot;/&gt;
+ *      &lt;a:submit name=&quot;method:anotherMethod&quot; value=&quot;Cancel&quot;/&gt;
+ *  &lt;/a:form&gt;
  *  &lt;!-- END SNIPPET: method-example --&gt;
  * </pre>
  *
@@ -108,11 +108,11 @@
  *
  * <pre>
  *  &lt;!-- START SNIPPET: action-example --&gt;
- *  &lt;s:form action=&quot;baz&quot;&gt;
- *      &lt;s:textfield label=&quot;Enter your name&quot; name=&quot;person.name&quot;/&gt;
- *      &lt;s:submit value=&quot;Create person&quot;/&gt;
- *      &lt;s:submit name=&quot;action:anotherAction&quot; value=&quot;Cancel&quot;/&gt;
- *  &lt;/s:form&gt;
+ *  &lt;a:form action=&quot;baz&quot;&gt;
+ *      &lt;a:textfield label=&quot;Enter your name&quot; name=&quot;person.name&quot;/&gt;
+ *      &lt;a:submit value=&quot;Create person&quot;/&gt;
+ *      &lt;a:submit name=&quot;action:anotherAction&quot; value=&quot;Cancel&quot;/&gt;
+ *  &lt;/a:form&gt;
  *  &lt;!-- END SNIPPET: action-example --&gt;
  * </pre>
  *
@@ -129,11 +129,11 @@
  *
  * <pre>
  *  &lt;!-- START SNIPPET: redirect-example --&gt;
- *  &lt;s:form action=&quot;baz&quot;&gt;
- *      &lt;s:textfield label=&quot;Enter your name&quot; name=&quot;person.name&quot;/&gt;
- *      &lt;s:submit value=&quot;Create person&quot;/&gt;
- *      &lt;s:submit name=&quot;redirect:www.google.com&quot; value=&quot;Cancel&quot;/&gt;
- *  &lt;/s:form&gt;
+ *  &lt;a:form action=&quot;baz&quot;&gt;
+ *      &lt;a:textfield label=&quot;Enter your name&quot; name=&quot;person.name&quot;/&gt;
+ *      &lt;a:submit value=&quot;Create person&quot;/&gt;
+ *      &lt;a:submit name=&quot;redirect:www.google.com&quot; value=&quot;Cancel&quot;/&gt;
+ *  &lt;/a:form&gt;
  *  &lt;!-- END SNIPPET: redirect-example --&gt;
  * </pre>
  *
@@ -151,11 +151,11 @@
  *
  * <pre>
  *  &lt;!-- START SNIPPET: redirect-action-example --&gt;
- *  &lt;s:form action=&quot;baz&quot;&gt;
- *      &lt;s:textfield label=&quot;Enter your name&quot; name=&quot;person.name&quot;/&gt;
- *      &lt;s:submit value=&quot;Create person&quot;/&gt;
- *      &lt;s:submit name=&quot;redirect-action:dashboard&quot; value=&quot;Cancel&quot;/&gt;
- *  &lt;/s:form&gt;
+ *  &lt;a:form action=&quot;baz&quot;&gt;
+ *      &lt;a:textfield label=&quot;Enter your name&quot; name=&quot;person.name&quot;/&gt;
+ *      &lt;a:submit value=&quot;Create person&quot;/&gt;
+ *      &lt;a:submit name=&quot;redirect-action:dashboard&quot; value=&quot;Cancel&quot;/&gt;
+ *  &lt;/a:form&gt;
  *  &lt;!-- END SNIPPET: redirect-action-example --&gt;
  * </pre>
  *
diff --git a/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java
index 0c0c0e2..0e7229d 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/ExecuteAndWaitInterceptor.java
@@ -117,11 +117,11 @@
  * &lt;html&gt;
  *   &lt;head&gt;
  *     &lt;title&gt;Please wait&lt;/title&gt;
- *     &lt;meta http-equiv="refresh" content="5;url=&lt;s:url includeParams="all" /&gt;"/&gt;
+ *     &lt;meta http-equiv="refresh" content="5;url=&lt;a:url includeParams="all" /&gt;"/&gt;
  *   &lt;/head&gt;
  *   &lt;body&gt;
  *     Please wait while we process your request.
- *     Click &lt;a href="&lt;s:url includeParams="all" /&gt;">&lt;/a&gt; if this page does not reload automatically.
+ *     Click &lt;a href="&lt;a:url includeParams="all" /&gt;">&lt;/a&gt; if this page does not reload automatically.
  *   &lt;/body&gt;
  * &lt;/html&gt;
  * </pre>
diff --git a/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java
index 89ed10d..57fb138 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/FileUploadInterceptor.java
@@ -125,10 +125,10 @@
  *
  * And then you need to set encoding <code>multipart/form-data</code> in the form where the user selects the file to upload.
  * <pre>
- *   &lt;s:form action="doUpload" method="post" enctype="multipart/form-data"&gt;
- *       &lt;s:file name="upload" label="File"/&gt;
- *       &lt;s:submit/&gt;
- *   &lt;/s:form&gt;
+ *   &lt;a:form action="doUpload" method="post" enctype="multipart/form-data"&gt;
+ *       &lt;a:file name="upload" label="File"/&gt;
+ *       &lt;a:submit/&gt;
+ *   &lt;/a:form&gt;
  * </pre>
  *
  * And then in your action code you'll have access to the File object if you provide setters according to the
diff --git a/core/src/main/java/org/apache/struts2/interceptor/TokenSessionStoreInterceptor.java b/core/src/main/java/org/apache/struts2/interceptor/TokenSessionStoreInterceptor.java
index bc42881..4f55d61 100644
--- a/core/src/main/java/org/apache/struts2/interceptor/TokenSessionStoreInterceptor.java
+++ b/core/src/main/java/org/apache/struts2/interceptor/TokenSessionStoreInterceptor.java
@@ -111,7 +111,7 @@
         ActionContext ac = invocation.getInvocationContext();
 
         HttpServletRequest request = (HttpServletRequest) ac.get(ServletActionContext.HTTP_REQUEST);
-        HttpServletResponse response = (HttpServletResponse) ac.get(ServletActionContext.HTTP_RESPONSE);
+        HttpServletResponse response = (HttpServletResponse) ac.get(ServletActionContext.HTTP_RESPONSE); 
         String tokenName = TokenHelper.getTokenName();
         String token = TokenHelper.getToken(tokenName);
 
diff --git a/core/src/main/java/org/apache/struts2/views/DefaultTagLibrary.java b/core/src/main/java/org/apache/struts2/views/DefaultTagLibrary.java
index 11fd34a..c237834 100644
--- a/core/src/main/java/org/apache/struts2/views/DefaultTagLibrary.java
+++ b/core/src/main/java/org/apache/struts2/views/DefaultTagLibrary.java
@@ -31,6 +31,7 @@
 import org.apache.struts2.views.velocity.components.ActionErrorDirective;
 import org.apache.struts2.views.velocity.components.ActionMessageDirective;
 import org.apache.struts2.views.velocity.components.AnchorDirective;
+import org.apache.struts2.views.velocity.components.AutocompleterDirective;
 import org.apache.struts2.views.velocity.components.BeanDirective;
 import org.apache.struts2.views.velocity.components.CheckBoxDirective;
 import org.apache.struts2.views.velocity.components.CheckBoxListDirective;
@@ -39,6 +40,7 @@
 import org.apache.struts2.views.velocity.components.DateDirective;
 import org.apache.struts2.views.velocity.components.DivDirective;
 import org.apache.struts2.views.velocity.components.DoubleSelectDirective;
+import org.apache.struts2.views.velocity.components.DateTimePickerDirective;
 import org.apache.struts2.views.velocity.components.FieldErrorDirective;
 import org.apache.struts2.views.velocity.components.FileDirective;
 import org.apache.struts2.views.velocity.components.FormDirective;
@@ -57,10 +59,13 @@
 import org.apache.struts2.views.velocity.components.SelectDirective;
 import org.apache.struts2.views.velocity.components.SetDirective;
 import org.apache.struts2.views.velocity.components.SubmitDirective;
+import org.apache.struts2.views.velocity.components.TabbedPanelDirective;
 import org.apache.struts2.views.velocity.components.TextAreaDirective;
 import org.apache.struts2.views.velocity.components.TextDirective;
 import org.apache.struts2.views.velocity.components.TextFieldDirective;
 import org.apache.struts2.views.velocity.components.TokenDirective;
+import org.apache.struts2.views.velocity.components.TreeDirective;
+import org.apache.struts2.views.velocity.components.TreeNodeDirective;
 import org.apache.struts2.views.velocity.components.URLDirective;
 import org.apache.struts2.views.velocity.components.UpDownSelectDirective;
 import org.apache.struts2.views.velocity.components.WebTableDirective;
@@ -87,7 +92,9 @@
             ComboBoxDirective.class,
             ComponentDirective.class,
             DateDirective.class,
+            DateTimePickerDirective.class,
             DivDirective.class,
+            AutocompleterDirective.class,
             DoubleSelectDirective.class,
             FileDirective.class,
             FormDirective.class,
@@ -106,10 +113,13 @@
             SetDirective.class,
             SubmitDirective.class,
             ResetDirective.class,
+            TabbedPanelDirective.class,
             TextAreaDirective.class,
             TextDirective.class,
             TextFieldDirective.class,
             TokenDirective.class,
+            TreeDirective.class,
+            TreeNodeDirective.class,
             URLDirective.class,
             WebTableDirective.class,
             ActionErrorDirective.class,
diff --git a/core/src/main/java/org/apache/struts2/views/annotations/StrutsTagSkipInheritance.java b/core/src/main/java/org/apache/struts2/views/annotations/StrutsTagSkipInheritance.java
deleted file mode 100644
index 38f1a4b..0000000
--- a/core/src/main/java/org/apache/struts2/views/annotations/StrutsTagSkipInheritance.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * $Id: StrutsTag.java 502294 2007-02-01 17:28:00Z niallp $
- *
- * 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.struts2.views.annotations;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Marks a class as the top class in the class hierarchy scanned for tag annotations 
- */
-@Target({ElementType.TYPE, ElementType.METHOD})
-@Retention(RetentionPolicy.RUNTIME)
-public @interface StrutsTagSkipInheritance {
-
-}
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/AutocompleterModel.java b/core/src/main/java/org/apache/struts2/views/freemarker/tags/AutocompleterModel.java
similarity index 84%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/AutocompleterModel.java
rename to core/src/main/java/org/apache/struts2/views/freemarker/tags/AutocompleterModel.java
index 3c2784a..6e9270b 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/AutocompleterModel.java
+++ b/core/src/main/java/org/apache/struts2/views/freemarker/tags/AutocompleterModel.java
@@ -1,5 +1,5 @@
 /*
- * $Id: AutocompleterModel.java 502294 2007-02-01 17:28:00Z niallp $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,14 +18,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.views.freemarker.tags;
+package org.apache.struts2.views.freemarker.tags;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.Autocompleter;
-import org.apache.struts2.views.freemarker.tags.TagModel;
+import org.apache.struts2.components.Autocompleter;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/DateTimePickerModel.java b/core/src/main/java/org/apache/struts2/views/freemarker/tags/DateTimePickerModel.java
similarity index 82%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/DateTimePickerModel.java
rename to core/src/main/java/org/apache/struts2/views/freemarker/tags/DateTimePickerModel.java
index 07e368f..afbb13f 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/DateTimePickerModel.java
+++ b/core/src/main/java/org/apache/struts2/views/freemarker/tags/DateTimePickerModel.java
@@ -1,5 +1,5 @@
 /*
- * $Id: DateTimePickerModel.java 493867 2007-01-07 22:26:23Z mrdon $
+ * $Id$
  *
  * Copyright 2006 The Apache Software Foundation.
  *
@@ -15,14 +15,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.struts2.dojo.views.freemarker.tags;
+package org.apache.struts2.views.freemarker.tags;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.DateTimePicker;
-import org.apache.struts2.views.freemarker.tags.TextFieldModel;
+import org.apache.struts2.components.DateTimePicker;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
diff --git a/core/src/main/java/org/apache/struts2/views/freemarker/tags/StrutsModels.java b/core/src/main/java/org/apache/struts2/views/freemarker/tags/StrutsModels.java
index 2dee2a5..d61c3cd 100644
--- a/core/src/main/java/org/apache/struts2/views/freemarker/tags/StrutsModels.java
+++ b/core/src/main/java/org/apache/struts2/views/freemarker/tags/StrutsModels.java
@@ -42,6 +42,7 @@
     protected ComboBoxModel comboBox;
     protected ComponentModel component;
     protected DateModel date;
+    protected DateTimePickerModel dateTimePicker;
     protected DivModel div;
     protected DoubleSelectModel doubleselect;
     protected FileModel file;
@@ -60,6 +61,7 @@
     protected SetModel set;
     protected SubmitModel submit;
     protected ResetModel reset;
+    protected TabbedPanelModel tabbedPanel;
     protected TextAreaModel textarea;
     protected TextModel text;
     protected TextFieldModel textfield;
@@ -72,11 +74,14 @@
     protected ActionMessageModel actionmessage;
     protected FieldErrorModel fielderror;
     protected OptionTransferSelectModel optiontransferselect;
+    protected TreeModel treeModel;
+    protected TreeNodeModel treenodeModel;
     protected UpDownSelectModel updownselect;
     protected OptGroupModel optGroupModel;
     protected IfModel ifModel;
     protected ElseModel elseModel;
     protected ElseIfModel elseIfModel;
+    protected AutocompleterModel autocompleterModel;
     protected InputTransferSelectModel inputtransferselect;
 
 
@@ -110,6 +115,14 @@
         return comboBox;
     }
 
+    public AutocompleterModel getAutocompleter() {
+        if (autocompleterModel == null) {
+            autocompleterModel = new AutocompleterModel(stack, req, res);
+        }
+
+        return autocompleterModel;
+    }
+
     public ComponentModel getComponent() {
         if (component == null) {
             component = new ComponentModel(stack, req, res);
@@ -229,6 +242,14 @@
         return date;
     }
 
+    public DateTimePickerModel getDateTimePicker() {
+        if (dateTimePicker == null) {
+            dateTimePicker = new DateTimePickerModel(stack, req, res);
+        }
+
+        return dateTimePicker;
+    }
+
     public TokenModel getToken() {
         if (token == null) {
             token = new TokenModel(stack, req, res);
@@ -309,6 +330,14 @@
         return text;
     }
 
+    public TabbedPanelModel getTabbedPanel() {
+        if (tabbedPanel == null) {
+            tabbedPanel = new TabbedPanelModel(stack, req, res);
+        }
+
+        return tabbedPanel;
+    }
+
     public BeanModel getBean() {
         if (bean == null) {
             bean = new BeanModel(stack, req, res);
@@ -388,6 +417,20 @@
         return optiontransferselect;
     }
 
+    public TreeModel getTree() {
+        if (treeModel == null) {
+            treeModel = new TreeModel(stack,req, res);
+        }
+        return treeModel;
+    }
+
+    public TreeNodeModel getTreenode() {
+        if (treenodeModel == null) {
+            treenodeModel = new TreeNodeModel(stack, req, res);
+        }
+        return treenodeModel;
+    }
+
     public UpDownSelectModel getUpdownselect() {
         if (updownselect == null)  {
             updownselect = new UpDownSelectModel(stack, req, res);
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/TabbedPanelModel.java b/core/src/main/java/org/apache/struts2/views/freemarker/tags/TabbedPanelModel.java
similarity index 84%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/TabbedPanelModel.java
rename to core/src/main/java/org/apache/struts2/views/freemarker/tags/TabbedPanelModel.java
index fc2222b..b4b4a2b 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/TabbedPanelModel.java
+++ b/core/src/main/java/org/apache/struts2/views/freemarker/tags/TabbedPanelModel.java
@@ -1,5 +1,5 @@
 /*
- * $Id: TabbedPanelModel.java 471756 2006-11-06 15:01:43Z husted $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,14 +18,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.views.freemarker.tags;
+package org.apache.struts2.views.freemarker.tags;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.TabbedPanel;
-import org.apache.struts2.views.freemarker.tags.TagModel;
+import org.apache.struts2.components.TabbedPanel;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/TreeModel.java b/core/src/main/java/org/apache/struts2/views/freemarker/tags/TreeModel.java
similarity index 85%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/TreeModel.java
rename to core/src/main/java/org/apache/struts2/views/freemarker/tags/TreeModel.java
index 9d067e5..a337d4f 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/TreeModel.java
+++ b/core/src/main/java/org/apache/struts2/views/freemarker/tags/TreeModel.java
@@ -1,5 +1,5 @@
 /*
- * $Id: TreeModel.java 471756 2006-11-06 15:01:43Z husted $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,14 +18,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.views.freemarker.tags;
+package org.apache.struts2.views.freemarker.tags;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.Tree;
-import org.apache.struts2.views.freemarker.tags.TagModel;
+import org.apache.struts2.components.Tree;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/TreeNodeModel.java b/core/src/main/java/org/apache/struts2/views/freemarker/tags/TreeNodeModel.java
similarity index 84%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/TreeNodeModel.java
rename to core/src/main/java/org/apache/struts2/views/freemarker/tags/TreeNodeModel.java
index fc88a45..4fe047b 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/TreeNodeModel.java
+++ b/core/src/main/java/org/apache/struts2/views/freemarker/tags/TreeNodeModel.java
@@ -1,5 +1,5 @@
 /*
- * $Id: TreeNodeModel.java 471756 2006-11-06 15:01:43Z husted $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,14 +18,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.views.freemarker.tags;
+package org.apache.struts2.views.freemarker.tags;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.TreeNode;
-import org.apache.struts2.views.freemarker.tags.TagModel;
+import org.apache.struts2.components.TreeNode;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AbstractRemoteCallUITag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractRemoteCallUITag.java
similarity index 76%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AbstractRemoteCallUITag.java
rename to core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractRemoteCallUITag.java
index f006b3e..34955e6 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AbstractRemoteCallUITag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/AbstractRemoteCallUITag.java
@@ -1,5 +1,5 @@
 /*
- * $Id: AbstractRemoteCallUITag.java 508285 2007-02-16 02:42:24Z musachy $
+ * $Id$
  *
  * Copyright 2006 The Apache Software Foundation.
  *
@@ -15,10 +15,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.struts2.dojo.views.jsp.ui;
+package org.apache.struts2.views.jsp.ui;
 
-import org.apache.struts2.dojo.components.RemoteUICallBean;
-import org.apache.struts2.views.jsp.ui.AbstractClosingTag;
+import org.apache.struts2.components.RemoteUICallBean;
 
 public abstract class AbstractRemoteCallUITag extends AbstractClosingTag {
 
@@ -27,6 +26,8 @@
     protected String notifyTopics;
     protected String loadingText;
     protected String errorText;
+    protected String beforeLoading;
+    protected String afterLoading;
     protected String executeScripts;
     protected String handler;
     protected String formId;
@@ -34,9 +35,6 @@
     protected String showErrorTransportText;
     protected String indicator;
     protected String showLoadingText;
-    protected String beforeNotifyTopics;
-    protected String afterNotifyTopics;
-    protected String errorNotifyTopics;
 
     protected void populateParams() {
         super.populateParams();
@@ -46,6 +44,8 @@
         remote.setListenTopics(listenTopics);
         remote.setLoadingText(loadingText);
         remote.setErrorText(errorText);
+        remote.setAfterLoading(afterLoading);
+        remote.setBeforeLoading(beforeLoading);
         remote.setExecuteScripts(executeScripts);
         remote.setHandler(handler);
         remote.setFormFilter(formFilter);
@@ -54,9 +54,6 @@
         remote.setShowErrorTransportText(showErrorTransportText);
         remote.setIndicator(indicator);
         remote.setShowLoadingText(showLoadingText);
-        remote.setAfterNotifyTopics(afterNotifyTopics);
-        remote.setBeforeNotifyTopics(beforeNotifyTopics);
-        remote.setErrorNotifyTopics(errorNotifyTopics);
     }
 
     public void setHref(String href) {
@@ -75,6 +72,14 @@
         this.listenTopics = listenTopics;
     }
 
+    public void setAfterLoading(String afterLoading) {
+        this.afterLoading = afterLoading;
+    }
+
+    public void setBeforeLoading(String beforeLoading) {
+        this.beforeLoading = beforeLoading;
+    }
+
     public void setExecuteScripts(String executeScripts) {
         this.executeScripts = executeScripts;
     }
@@ -99,6 +104,9 @@
         this.showErrorTransportText = showErrorTransportText;
     }
 
+    /**
+     * @param indicator The indicator to set.
+     */
     public void setIndicator(String indicator) {
         this.indicator = indicator;
     }
@@ -106,16 +114,4 @@
     public void setShowLoadingText(String showLoadingText) {
         this.showLoadingText = showLoadingText;
     }
-
-    public void setAfterNotifyTopics(String afterNotifyTopics) {
-        this.afterNotifyTopics = afterNotifyTopics;
-    }
-
-    public void setBeforeNotifyTopics(String beforeNotifyTopics) {
-        this.beforeNotifyTopics = beforeNotifyTopics;
-    }
-
-    public void setErrorNotifyTopics(String errorNotifyTopics) {
-        this.errorNotifyTopics = errorNotifyTopics;
-    }
 }
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/ui/AnchorTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/AnchorTag.java
index 0e9fc31..bb275ea 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/AnchorTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/AnchorTag.java
@@ -25,32 +25,37 @@
 
 import org.apache.struts2.components.Anchor;
 import org.apache.struts2.components.Component;
-import org.apache.struts2.components.UIBean;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
  * @see Anchor
  */
-public class AnchorTag extends AbstractClosingTag {
+public class AnchorTag extends AbstractRemoteCallUITag {
 
-    private static final long serialVersionUID = -1034616578492431113L;
+	private static final long serialVersionUID = -1034616578492431113L;
 
-    protected String href;
-    
+    protected String targets;
+    protected String preInvokeJS;
+
     public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
         return new Anchor(stack, req, res);
     }
-    
+
     protected void populateParams() {
         super.populateParams();
 
-        Anchor anchor = (Anchor) component;
-        anchor.setHref(href);
+        Anchor link = (Anchor) component;
+        link.setTargets(targets);
     }
-    
-    public void setHref(String href) {
-        this.href = href;
+
+    public void setTargets(String targets) {
+        this.targets = targets;
+    }
+
+    @Deprecated()
+    public void setPreInvokeJS(String preInvokeJS) {
+        this.beforeLoading = preInvokeJS;
     }
 }
 
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AutocompleterTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/AutocompleterTag.java
similarity index 96%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AutocompleterTag.java
rename to core/src/main/java/org/apache/struts2/views/jsp/ui/AutocompleterTag.java
index 95890cc..57ae71a 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AutocompleterTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/AutocompleterTag.java
@@ -18,14 +18,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.views.jsp.ui;
+package org.apache.struts2.views.jsp.ui;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.struts2.components.Autocompleter;
 import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.Autocompleter;
-import org.apache.struts2.views.jsp.ui.ComboBoxTag;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/DateTimePickerTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/DateTimePickerTag.java
similarity index 94%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/DateTimePickerTag.java
rename to core/src/main/java/org/apache/struts2/views/jsp/ui/DateTimePickerTag.java
index 742c7bc..792123c 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/DateTimePickerTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/DateTimePickerTag.java
@@ -1,5 +1,5 @@
 /*
- * $Id: DateTimePickerTag.java 508605 2007-02-16 21:56:50Z musachy $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,14 +18,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.views.jsp.ui;
+package org.apache.struts2.views.jsp.ui;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.DateTimePicker;
-import org.apache.struts2.views.jsp.ui.AbstractUITag;
+import org.apache.struts2.components.DateTimePicker;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/ui/DivTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/DivTag.java
index c9c1b52..29471d3 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/DivTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/DivTag.java
@@ -28,11 +28,60 @@
 
 import com.opensymphony.xwork2.util.ValueStack;
 
-public class DivTag extends AbstractClosingTag {
+public class DivTag extends AbstractRemoteCallUITag {
 
     private static final long serialVersionUID = 5309231035916461758L;
+
+    protected String updateFreq;
+    protected String autoStart;
+    protected String delay;
+    protected String startTimerListenTopics;
+    protected String stopTimerListenTopics;
+    protected String refreshOnShow;
+    protected String separateScripts;
     
     public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
         return new Div(stack, req, res);
     }
+
+    protected void populateParams() {
+        super.populateParams();
+
+        Div div = (Div) component;
+        div.setUpdateFreq(updateFreq);
+        div.setAutoStart(autoStart);
+        div.setDelay(delay);
+        div.setStartTimerListenTopics(startTimerListenTopics);
+        div.setStopTimerListenTopics(stopTimerListenTopics);
+        div.setRefreshOnShow(refreshOnShow);
+        div.setSeparateScripts(separateScripts);
+    }
+
+    public void setAutoStart(String autoStart) {
+        this.autoStart = autoStart;
+    }
+
+    public void setDelay(String delay) {
+        this.delay = delay;
+    }
+
+    public void setUpdateFreq(String updateInterval) {
+        this.updateFreq = updateInterval;
+    }
+
+    public void setStartTimerListenTopics(String startTimerListenTopic) {
+        this.startTimerListenTopics = startTimerListenTopic;
+    }
+
+    public void setStopTimerListenTopics(String stopTimerListenTopic) {
+        this.stopTimerListenTopics = stopTimerListenTopic;
+    }
+
+    public void setRefreshOnShow(String refreshOnShow) {
+        this.refreshOnShow = refreshOnShow;
+    }
+
+    public void setSeparateScripts(String separateScripts) {
+        this.separateScripts = separateScripts;
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/ui/HeadTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/HeadTag.java
index 2f33963..6c3a776 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/HeadTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/HeadTag.java
@@ -35,7 +35,32 @@
 
     private static final long serialVersionUID = 6876765769175246030L;
 
+    private String calendarcss;
+    private String debug;
+
     public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
         return new Head(stack, req, res);
     }
+
+    protected void populateParams() {
+        super.populateParams();
+        if (calendarcss != null) {
+            ((Head) component).setCalendarcss(calendarcss);
+        }
+        if (debug != null) {
+            ((Head) component).setDebug(Boolean.valueOf(debug).booleanValue());
+        }
+    }
+
+    public String getCalendarcss() {
+        return calendarcss;
+    }
+
+    public void setCalendarcss(String calendarcss) {
+        this.calendarcss = calendarcss;
+    }
+
+    public void setDebug(String debug) {
+        this.debug = debug;
+    }
 }
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/ui/SubmitTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/SubmitTag.java
index d49313c..0fd6291 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/SubmitTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/SubmitTag.java
@@ -39,7 +39,27 @@
     protected String method;
     protected String align;
     protected String type;
+    protected String href;
+    protected String listenTopics;
+    protected String notifyTopics;
+    protected String loadingText;
+    protected String errorText;
+    protected String executeScripts;
+    protected String handler;
+    protected String formId;
+    protected String formFilter;
     protected String src;
+    protected String showErrorTransportText;
+    protected String indicator;
+    protected String showLoadingText;
+
+    //these two are called "preInvokeJS" and "onLoadJS" on the tld
+    //Names changed here to keep some consistency
+    protected String beforeLoading;
+    protected String afterLoading;
+
+    //this one is called "resultDivId" on the tld
+    protected String targets;
 
     public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
         return new Submit(stack, req, res);
@@ -53,7 +73,22 @@
         submit.setMethod(method);
         submit.setAlign(align);
         submit.setType(type);
+        submit.setHref(href);
+        submit.setListenTopics(listenTopics);
+        submit.setLoadingText(loadingText);
+        submit.setErrorText(errorText);
+        submit.setAfterLoading(afterLoading);
+        submit.setBeforeLoading(beforeLoading);
+        submit.setExecuteScripts(executeScripts);
+        submit.setHandler(handler);
+        submit.setFormFilter(formFilter);
+        submit.setFormId(formId);
         submit.setSrc(src);
+        submit.setTargets(targets);
+        submit.setNotifyTopics(notifyTopics);
+        submit.setShowErrorTransportText(showErrorTransportText);
+        submit.setIndicator(indicator);
+        submit.setShowLoadingText(showLoadingText);
     }
 
     public void setAction(String action) {
@@ -76,7 +111,74 @@
         this.type = type;
     }
 
+    public void setHref(String href) {
+        this.href = href;
+    }
+
+    public void setErrorText(String errorText) {
+        this.errorText = errorText;
+    }
+
+    public void setLoadingText(String loadingText) {
+        this.loadingText = loadingText;
+    }
+
+    public void setListenTopics(String listenTopics) {
+        this.listenTopics = listenTopics;
+    }
+
+    public void setExecuteScripts(String executeScripts) {
+        this.executeScripts = executeScripts;
+    }
+
+    public void setHandler(String handler) {
+        this.handler = handler;
+    }
+
+    public void setFormFilter(String formFilter) {
+        this.formFilter = formFilter;
+    }
+
+    public void setFormId(String formId) {
+        this.formId = formId;
+    }
+
     public void setSrc(String src) {
         this.src = src;
     }
+
+    public void setTargets(String targets) {
+        this.targets = targets;
+    }
+
+    @Deprecated
+    public void setResultDivId(String id) {
+        this.targets = id;
+    }
+
+    @Deprecated
+    public void setOnLoadJS(String postJS) {
+        this.afterLoading = postJS;
+    }
+
+    @Deprecated
+    public void setPreInvokeJS(String preJS) {
+        this.beforeLoading = preJS;
+    }
+
+    public void setNotifyTopics(String notifyTopics) {
+        this.notifyTopics = notifyTopics;
+    }
+
+    public void setShowErrorTransportText(String showErrorTransportText) {
+        this.showErrorTransportText = showErrorTransportText;
+    }
+
+    public void setIndicator(String indicator) {
+        this.indicator = indicator;
+    }
+
+    public void setShowLoadingText(String showLoadingText) {
+        this.showLoadingText = showLoadingText;
+    }
 }
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/TabbedPanelTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/TabbedPanelTag.java
similarity index 90%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/TabbedPanelTag.java
rename to core/src/main/java/org/apache/struts2/views/jsp/ui/TabbedPanelTag.java
index 4fca002..a6abf11 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/TabbedPanelTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/TabbedPanelTag.java
@@ -1,5 +1,5 @@
 /*
- * $Id: TabbedPanelTag.java 508575 2007-02-16 20:46:49Z musachy $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,14 +18,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.views.jsp.ui;
+package org.apache.struts2.views.jsp.ui;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.TabbedPanel;
-import org.apache.struts2.views.jsp.ui.AbstractClosingTag;
+import org.apache.struts2.components.TabbedPanel;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/TreeNodeTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/TreeNodeTag.java
similarity index 88%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/TreeNodeTag.java
rename to core/src/main/java/org/apache/struts2/views/jsp/ui/TreeNodeTag.java
index 4522f32..ef62d07 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/TreeNodeTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/TreeNodeTag.java
@@ -1,5 +1,5 @@
 /*
- * $Id: TreeNodeTag.java 471756 2006-11-06 15:01:43Z husted $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,14 +18,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.views.jsp.ui;
+package org.apache.struts2.views.jsp.ui;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.TreeNode;
-import org.apache.struts2.views.jsp.ui.AbstractClosingTag;
+import org.apache.struts2.components.TreeNode;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/TreeTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/TreeTag.java
similarity index 97%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/TreeTag.java
rename to core/src/main/java/org/apache/struts2/views/jsp/ui/TreeTag.java
index e50f9ff..769d0f1 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/TreeTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/TreeTag.java
@@ -1,5 +1,5 @@
 /*
- * $Id: TreeTag.java 471756 2006-11-06 15:01:43Z husted $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,14 +18,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.views.jsp.ui;
+package org.apache.struts2.views.jsp.ui;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.Tree;
-import org.apache.struts2.views.jsp.ui.AbstractClosingTag;
+import org.apache.struts2.components.Tree;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/AutocompleterDirective.java b/core/src/main/java/org/apache/struts2/views/velocity/components/AutocompleterDirective.java
similarity index 83%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/AutocompleterDirective.java
rename to core/src/main/java/org/apache/struts2/views/velocity/components/AutocompleterDirective.java
index 87058a0..992b268 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/AutocompleterDirective.java
+++ b/core/src/main/java/org/apache/struts2/views/velocity/components/AutocompleterDirective.java
@@ -1,5 +1,5 @@
 /*
- * $Id: AutocompleterDirective.java 502294 2007-02-01 17:28:00Z niallp $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,14 +18,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.views.velocity.components;
+package org.apache.struts2.views.velocity.components;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.struts2.components.Autocompleter;
+import org.apache.struts2.components.Bean;
 import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.Autocompleter;
-import org.apache.struts2.views.velocity.components.AbstractDirective;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/DateTimePickerDirective.java b/core/src/main/java/org/apache/struts2/views/velocity/components/DateTimePickerDirective.java
similarity index 81%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/DateTimePickerDirective.java
rename to core/src/main/java/org/apache/struts2/views/velocity/components/DateTimePickerDirective.java
index ff90b62..aef7779 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/DateTimePickerDirective.java
+++ b/core/src/main/java/org/apache/struts2/views/velocity/components/DateTimePickerDirective.java
@@ -1,5 +1,5 @@
 /*
- * $Id: DateTimePickerDirective.java 493867 2007-01-07 22:26:23Z mrdon $
+ * $Id$
  *
  * Copyright 2006 The Apache Software Foundation.
  *
@@ -15,14 +15,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.struts2.dojo.views.velocity.components;
+package org.apache.struts2.views.velocity.components;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.DateTimePicker;
-import org.apache.struts2.views.velocity.components.TextFieldDirective;
+import org.apache.struts2.components.DateTimePicker;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/TabbedPanelDirective.java b/core/src/main/java/org/apache/struts2/views/velocity/components/TabbedPanelDirective.java
similarity index 83%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/TabbedPanelDirective.java
rename to core/src/main/java/org/apache/struts2/views/velocity/components/TabbedPanelDirective.java
index 762c9b7..f1a925e 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/TabbedPanelDirective.java
+++ b/core/src/main/java/org/apache/struts2/views/velocity/components/TabbedPanelDirective.java
@@ -1,5 +1,5 @@
 /*
- * $Id: TabbedPanelDirective.java 471756 2006-11-06 15:01:43Z husted $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,14 +18,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.views.velocity.components;
+package org.apache.struts2.views.velocity.components;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.TabbedPanel;
-import org.apache.struts2.views.velocity.components.AbstractDirective;
+import org.apache.struts2.components.TabbedPanel;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/TreeDirective.java b/core/src/main/java/org/apache/struts2/views/velocity/components/TreeDirective.java
similarity index 84%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/TreeDirective.java
rename to core/src/main/java/org/apache/struts2/views/velocity/components/TreeDirective.java
index 43df54e..7e24b75 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/TreeDirective.java
+++ b/core/src/main/java/org/apache/struts2/views/velocity/components/TreeDirective.java
@@ -1,5 +1,5 @@
 /*
- * $Id: TreeDirective.java 471756 2006-11-06 15:01:43Z husted $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,14 +18,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.views.velocity.components;
+package org.apache.struts2.views.velocity.components;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.Tree;
-import org.apache.struts2.views.velocity.components.AbstractDirective;
+import org.apache.struts2.components.Tree;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/TreeNodeDirective.java b/core/src/main/java/org/apache/struts2/views/velocity/components/TreeNodeDirective.java
similarity index 84%
rename from plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/TreeNodeDirective.java
rename to core/src/main/java/org/apache/struts2/views/velocity/components/TreeNodeDirective.java
index 487f2e2..2092b37 100644
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/TreeNodeDirective.java
+++ b/core/src/main/java/org/apache/struts2/views/velocity/components/TreeNodeDirective.java
@@ -1,5 +1,5 @@
 /*
- * $Id: TreeNodeDirective.java 471756 2006-11-06 15:01:43Z husted $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,14 +18,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.views.velocity.components;
+package org.apache.struts2.views.velocity.components;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.TreeNode;
-import org.apache.struts2.views.velocity.components.AbstractDirective;
+import org.apache.struts2.components.TreeNode;
 
 import com.opensymphony.xwork2.util.ValueStack;
 
diff --git a/core/src/main/resources/META-INF/struts-tags.tld b/core/src/main/resources/META-INF/struts-tags.tld
deleted file mode 100644
index 1892e19..0000000
--- a/core/src/main/resources/META-INF/struts-tags.tld
+++ /dev/null
@@ -1,9182 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
-<taglib>
-  <tlib-version>2.2.3</tlib-version>
-  <jsp-version>1.2</jsp-version>
-  <short-name>s</short-name>
-  <uri>/struts-tags</uri>
-  <display-name>"Struts Tags"</display-name>
-  <description><![CDATA["To make it easier to access dynamic data;
-                    the Apache Struts framework includes a library of custom tags.
-                    The tags interact with the framework's validation and internationalization features;
-                    to ensure that input is correct and output is localized.
-                    The Struts Tags can be used with JSP FreeMarker or Velocity."]]></description>
-  <tag>
-    <name>action</name>
-    <tag-class>org.apache.struts2.views.jsp.ActionTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Execute an action from within a view]]></description>
-    <attribute>
-      <name>executeResult</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether the result of this action (probably a view) should be executed/rendered]]></description>
-    </attribute>
-    <attribute>
-      <name>flush</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether the writer should be flush upon end of action component tag, default to true]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>ignoreContextParams</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether the request parameters are to be included when the action is invoked]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Name of the action to be executed (without the extension suffix eg. .action)]]></description>
-    </attribute>
-    <attribute>
-      <name>namespace</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Namespace for action to call]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>actionerror</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.ActionErrorTag</tag-class>
-    <body-content>empty</body-content>
-    <description><![CDATA[Render action errors if they exists]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>actionmessage</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.ActionMessageTag</tag-class>
-    <body-content>empty</body-content>
-    <description><![CDATA[Render action messages if they exists]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>a</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.AnchorTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render a HTML href element that when clicked can optionally call a URL via remote XMLHttpRequest and updates its targets]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>errorText</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The text to display to the user if the is an error fetching the content]]></description>
-    </attribute>
-    <attribute>
-      <name>executeScripts</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Javascript code in the fetched content will be executed]]></description>
-    </attribute>
-    <attribute>
-      <name>formFilter</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Function name used to filter the fields of the form.]]></description>
-    </attribute>
-    <attribute>
-      <name>formId</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Form id whose fields will be serialized and passed as parameters]]></description>
-    </attribute>
-    <attribute>
-      <name>handler</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Javascript function name that will make the request]]></description>
-    </attribute>
-    <attribute>
-      <name>href</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The URL to call to obtain the content. Note: If used with ajax context, the value must be set as an url tag value.]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>indicator</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Id of element that will be shown while making request]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>listenTopics</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Topic that will trigger the remote call]]></description>
-    </attribute>
-    <attribute>
-      <name>loadingText</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Text to be shown while content is being fetched]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>notifyTopics</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Topics that will published when the remote call completes]]></description>
-    </attribute>
-    <attribute>
-      <name>onLoadJS</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Deprecated. Use 'notifyTopics'. Javascript code execute after reload]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>openTemplate</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set template to use for opening the rendered html.]]></description>
-    </attribute>
-    <attribute>
-      <name>preInvokeJS</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Deprecated. Use 'notifyTopics'. Javascript code execute before reload]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>showErrorTransportText</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set whether errors will be shown or not]]></description>
-    </attribute>
-    <attribute>
-      <name>showLoadingText</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Show loading text on targets]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>targets</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Comma delimited list of ids of the elements whose content will be updated]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>append</name>
-    <tag-class>org.apache.struts2.views.jsp.iterator.AppendIteratorTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Append the values of a list of iterators to one iterator]]></description>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The id of which if supplied will have the resultant appended iterator stored under in the stack's context]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>autocompleter</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.AutocompleterTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Renders a combobox with autocomplete and AJAX capabilities]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>autoComplete</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether autocompleter should make suggestion on the textbox]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>delay</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Delay before making the search]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Enable or disable autocompleter]]></description>
-    </attribute>
-    <attribute>
-      <name>dropdownHeight</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Dropdown's height in pixels]]></description>
-    </attribute>
-    <attribute>
-      <name>dropdownWidth</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Dropdown's width]]></description>
-    </attribute>
-    <attribute>
-      <name>emptyOption</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Decide if an empty option is to be inserted. Default false.]]></description>
-    </attribute>
-    <attribute>
-      <name>forceValidOption</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Force selection to be one of the options]]></description>
-    </attribute>
-    <attribute>
-      <name>formFilter</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Function name used to filter the fields of the form]]></description>
-    </attribute>
-    <attribute>
-      <name>formId</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Form id whose fields will be serialized and passed as parameters]]></description>
-    </attribute>
-    <attribute>
-      <name>headerKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the header key for the header option.]]></description>
-    </attribute>
-    <attribute>
-      <name>headerValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the header value for the header option.]]></description>
-    </attribute>
-    <attribute>
-      <name>href</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The URL used to load the options]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>indicator</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Id of element that will be shown while request is made]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>list</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Iteratable source to populate from.]]></description>
-    </attribute>
-    <attribute>
-      <name>listKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key used to retrive the option key.]]></description>
-    </attribute>
-    <attribute>
-      <name>listValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the value used to retrive the option value.]]></description>
-    </attribute>
-    <attribute>
-      <name>listenTopics</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Topic that will trigger a reload]]></description>
-    </attribute>
-    <attribute>
-      <name>loadMinimumCount</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Minimum number of characters that will force the content to be loaded]]></description>
-    </attribute>
-    <attribute>
-      <name>loadOnTextChange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Options will be reloaded everytime a character is typed on the textbox]]></description>
-    </attribute>
-    <attribute>
-      <name>maxLength</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Deprecated. Use maxlength instead.]]></description>
-    </attribute>
-    <attribute>
-      <name>maxlength</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[HTML maxlength attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>notifyTopics</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Topics that will be published when content is reloaded]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>readonly</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether the input is readonly]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>searchType</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[how the search must be performed, options are: 'startstring', 'startword' and 'substring']]></description>
-    </attribute>
-    <attribute>
-      <name>showDownArrow</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Show or hide the down arrow button]]></description>
-    </attribute>
-    <attribute>
-      <name>size</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[HTML size attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>bean</name>
-    <tag-class>org.apache.struts2.views.jsp.BeanTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Instantiate a JavaBean and place it in the context]]></description>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The class name of the bean to be instantiated (must respect JavaBean specification)]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>checkbox</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.CheckboxTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render a checkbox input field]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>fieldValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The actual HTML value attribute of the checkbox.]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>checkboxlist</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.CheckboxListTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render a list of checkboxes]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>list</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.]]></description>
-    </attribute>
-    <attribute>
-      <name>listKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Property of list objects to get field value from]]></description>
-    </attribute>
-    <attribute>
-      <name>listValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Property of list objects to get field content from]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>combobox</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.ComboBoxTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Widget that fills a text box from a select]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>emptyOption</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Decide if an empty option is to be inserted. Default false.]]></description>
-    </attribute>
-    <attribute>
-      <name>headerKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the header key for the header option.]]></description>
-    </attribute>
-    <attribute>
-      <name>headerValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the header value for the header option.]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>list</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Iteratable source to populate from. If this is missing, the select widget is simply not displayed.]]></description>
-    </attribute>
-    <attribute>
-      <name>listKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key used to retrive the option key.]]></description>
-    </attribute>
-    <attribute>
-      <name>listValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the value used to retrive the option value.]]></description>
-    </attribute>
-    <attribute>
-      <name>maxLength</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Deprecated. Use maxlength instead.]]></description>
-    </attribute>
-    <attribute>
-      <name>maxlength</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[HTML maxlength attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>readonly</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether the input is readonly]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>size</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[HTML size attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>date</name>
-    <tag-class>org.apache.struts2.views.jsp.DateTag</tag-class>
-    <body-content>empty</body-content>
-    <description><![CDATA[Render a formatted date.]]></description>
-    <attribute>
-      <name>format</name>
-      <required>false</required>
-      <rtexprvalue>false</rtexprvalue>
-      <description><![CDATA[Date or DateTime format pattern]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The date value to format]]></description>
-    </attribute>
-    <attribute>
-      <name>nice</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether to print out the date nicely]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>datetimepicker</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.DateTimePickerTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render datetimepicker]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>adjustWeeks</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If true, weekly size of calendar changes to acomodate the month if false, 42 day format is used]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>dayWidth</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[How to render the names of the days in the header(narrow, abbr or wide)]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>displayFormat</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[A pattern used for the visual display of the formatted date, e.g. dd/MM/yyyy]]></description>
-    </attribute>
-    <attribute>
-      <name>displayWeeks</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Total weeks to display]]></description>
-    </attribute>
-    <attribute>
-      <name>endDate</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Last available date in the calendar set]]></description>
-    </attribute>
-    <attribute>
-      <name>formatLength</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Type of formatting used for visual display. Possible values are long, short, medium or full]]></description>
-    </attribute>
-    <attribute>
-      <name>iconPath</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Path to icon used for the dropdown]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>language</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Language to display this widget in]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>startDate</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[First available date in the calendar set]]></description>
-    </attribute>
-    <attribute>
-      <name>staticDisplay</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Disable all incremental controls, must pick a date in the current display]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>toggleDuration</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Duration of toggle in milliseconds]]></description>
-    </attribute>
-    <attribute>
-      <name>toggleType</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[oggle type of the dropdown. Possible values are plain,wipe,explode,fade]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>type</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Defines the type of the picker on the dropdown. Possible values are 'date' for a DateTimePicker, and 'time' for a timePicker]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-    <attribute>
-      <name>weekStartsOn</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Adjusts the first day of the week 0==Sunday..6==Saturday]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>debug</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.DebugTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Prints debugging information]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>div</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.DivTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render HTML div providing content from remote call via AJAX]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>afterLoading</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Deprecated. Use 'notifyTopics'. Javascript code execute after reload]]></description>
-    </attribute>
-    <attribute>
-      <name>autoStart</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Start timer automatically]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>delay</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[How long to wait before fetching the content (in milliseconds)]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>errorText</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The text to display to the user if the is an error fetching the content]]></description>
-    </attribute>
-    <attribute>
-      <name>executeScripts</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Javascript code in the fetched content will be executed]]></description>
-    </attribute>
-    <attribute>
-      <name>formFilter</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Function name used to filter the fields of the form.]]></description>
-    </attribute>
-    <attribute>
-      <name>formId</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Form id whose fields will be serialized and passed as parameters]]></description>
-    </attribute>
-    <attribute>
-      <name>handler</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Javascript function name that will make the request]]></description>
-    </attribute>
-    <attribute>
-      <name>href</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The URL to call to obtain the content. Note: If used with ajax context, the value must be set as an url tag value.]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>indicator</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Id of element that will be shown while making request]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>listenTopics</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Topic that will trigger the remote call]]></description>
-    </attribute>
-    <attribute>
-      <name>loadingText</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Text to be shown while content is being fetched]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>notifyTopics</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Topics that will published when the remote call completes]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>openTemplate</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set template to use for opening the rendered html.]]></description>
-    </attribute>
-    <attribute>
-      <name>refreshOnShow</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Content will be loaded when div becomes visible, used only inside tabbedPanel]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>showErrorTransportText</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set whether errors will be shown or not]]></description>
-    </attribute>
-    <attribute>
-      <name>showLoadingText</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Show loading text on targets]]></description>
-    </attribute>
-    <attribute>
-      <name>startTimerListenTopics</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Topics that will start the timer (for autoupdate)]]></description>
-    </attribute>
-    <attribute>
-      <name>stopTimerListenTopics</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Topics that will stop the timer (for autoupdate)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>updateFreq</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[How often to reload the content (in milliseconds)]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>doubleselect</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.DoubleSelectTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Renders two HTML select elements with second one changing displayed values depending on selected entry of first one.]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleAccesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute.]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleCssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class for the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleCssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style for the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleDisabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Decides if a disable attribute should be added to the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleEmptyOption</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Decides if the second list will add an empty option]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleHeaderKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The header key for the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleHeaderValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The header value for the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleId</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The id of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleList</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The second iterable source to populate from.]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleListKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The key expression to use for second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleListValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The value expression to use for second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleMultiple</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Decides if multiple attribute should be set on the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleName</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name for complete component]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onblur attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onchange attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onclick attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOndblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the ondbclick attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onfocus attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onkeydown attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onkeypress attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onkeyup attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onmousedown attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onmousemove attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onmouseout attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onmouseover attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onmouseup attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onselect attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleSize</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the size attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The value expression for complete component]]></description>
-    </attribute>
-    <attribute>
-      <name>emptyOption</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Decides of an empty option is to be inserted in the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>formName</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The form name this component resides in and populates to]]></description>
-    </attribute>
-    <attribute>
-      <name>headerKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the header key of the second list. Must not be empty! '-1' and '' is correct, '' is bad.]]></description>
-    </attribute>
-    <attribute>
-      <name>headerValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the header value of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>list</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.]]></description>
-    </attribute>
-    <attribute>
-      <name>listKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Property of list objects to get field value from]]></description>
-    </attribute>
-    <attribute>
-      <name>listValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Property of list objects to get field content from]]></description>
-    </attribute>
-    <attribute>
-      <name>multiple</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Creates a multiple select. The tag will pre-select multiple values if the values are passed as an Array (of appropriate types) via the value attribute.]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>size</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Size of the element box (# of elements to show)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>else</name>
-    <tag-class>org.apache.struts2.views.jsp.ElseTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Else tag]]></description>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>elseif</name>
-    <tag-class>org.apache.struts2.views.jsp.ElseIfTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Elseif tag]]></description>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>test</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Expression to determine if body of tag is to be displayed]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>fielderror</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.FieldErrorTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render field error (all or partial depending on param tag nested)if they exists]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>file</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.FileTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render a file input field]]></description>
-    <attribute>
-      <name>accept</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[HTML accept attribute to indicate accepted file mimetypes]]></description>
-    </attribute>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>size</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[HTML size attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>form</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.FormTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Renders an input form]]></description>
-    <attribute>
-      <name>acceptcharset</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The accepted charsets for this form. The values may be comma or blank delimited.]]></description>
-    </attribute>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>action</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set action nane to submit to, without .action suffix]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>enctype</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[HTML form enctype attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>method</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[HTML form method attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>namespace</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Namespace for action to submit to]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onsubmit</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[HTML onsubmit attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>openTemplate</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set template to use for opening the rendered html.]]></description>
-    </attribute>
-    <attribute>
-      <name>portletMode</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[he portlet mode to display after the form submit]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>target</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[HTML form target attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>validate</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether client side/remote validation should be performed. Only useful with theme xhtml/ajax]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-    <attribute>
-      <name>windowState</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The window state to display after the form submit]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>component</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.ComponentTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render a custom ui widget]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>head</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.HeadTag</tag-class>
-    <body-content>empty</body-content>
-    <description><![CDATA[Render a chunk of HEAD for your HTML file]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>calendarcss</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The jscalendar css theme to use]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>debug</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set to true to enable debugging mode for AJAX themes]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>hidden</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.HiddenTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render a hidden input field]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>i18n</name>
-    <tag-class>org.apache.struts2.views.jsp.I18nTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Get a resource bundle and place it on the value stack]]></description>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Name of ressource bundle to use (eg foo/bar/customBundle)]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>if</name>
-    <tag-class>org.apache.struts2.views.jsp.IfTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[If tag]]></description>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>test</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Expression to determine if body of tag is to be displayed]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>include</name>
-    <tag-class>org.apache.struts2.views.jsp.IncludeTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Include a servlet's output (result of servlet or a JSP page)]]></description>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The jsp/servlet output to include]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>inputtransferselect</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.InputTransferSelectTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Renders an input form]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>addLabel</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[the label used for the add button]]></description>
-    </attribute>
-    <attribute>
-      <name>allowRemoveAll</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Determine whether the remove all button will display]]></description>
-    </attribute>
-    <attribute>
-      <name>allowUpDown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Determine whether items in the list can be reordered]]></description>
-    </attribute>
-    <attribute>
-      <name>buttonCssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[the css class used for rendering buttons]]></description>
-    </attribute>
-    <attribute>
-      <name>buttonCssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[the css style used for rendering buttons]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>downLabel</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[the label used for the down button]]></description>
-    </attribute>
-    <attribute>
-      <name>headerKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[the header key of the select box]]></description>
-    </attribute>
-    <attribute>
-      <name>headerValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[the header value of the select box]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>leftTitle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[the left hand title]]></description>
-    </attribute>
-    <attribute>
-      <name>list</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.]]></description>
-    </attribute>
-    <attribute>
-      <name>listKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Property of list objects to get field value from]]></description>
-    </attribute>
-    <attribute>
-      <name>listValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Property of list objects to get field content from]]></description>
-    </attribute>
-    <attribute>
-      <name>multiple</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Determine whether or not multiple entries are shown]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>removeAllLabel</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[the label used for the remove all button]]></description>
-    </attribute>
-    <attribute>
-      <name>removeLabel</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[the label used for the remove button]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>rightTitle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[the right hand title]]></description>
-    </attribute>
-    <attribute>
-      <name>size</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[the size of the select box]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>upLabel</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[the label used for the up button]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>iterator</name>
-    <tag-class>org.apache.struts2.views.jsp.IteratorTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Iterate over a iterable value]]></description>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>status</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If specified, an instanceof IteratorStatus will be pushed into stack upon each iteration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[the iteratable source to iterate over, else an the object itself will be put into a newly created List]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>label</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.LabelTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render a label that displays read-only information]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>for</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ HTML for attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>merge</name>
-    <tag-class>org.apache.struts2.views.jsp.iterator.MergeIteratorTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Merge the values of a list of iterators into one iterator]]></description>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The id where the resultant merged iterator will be stored in the stack's context]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>optgroup</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.OptGroupTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Renders a Select Tag's OptGroup Tag]]></description>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the disable attribute.]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the label attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>list</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the list attribute.]]></description>
-    </attribute>
-    <attribute>
-      <name>listKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the listKey attribute.]]></description>
-    </attribute>
-    <attribute>
-      <name>listValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the listValue attribute.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>optiontransferselect</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.OptionTransferSelectTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Renders an input form]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>addAllToLeftLabel</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set Add To Left button label]]></description>
-    </attribute>
-    <attribute>
-      <name>addAllToRightLabel</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set Add All To Right button label]]></description>
-    </attribute>
-    <attribute>
-      <name>addToLeftLabel</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set Add To Left button label]]></description>
-    </attribute>
-    <attribute>
-      <name>addToRightLabel</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set Add To Right button label]]></description>
-    </attribute>
-    <attribute>
-      <name>allowAddAllToLeft</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Enable Add All To Left button]]></description>
-    </attribute>
-    <attribute>
-      <name>allowAddAllToRight</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Enable Add All To Right button]]></description>
-    </attribute>
-    <attribute>
-      <name>allowAddToLeft</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Enable Add To Left button]]></description>
-    </attribute>
-    <attribute>
-      <name>allowAddToRight</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Enable Add To Right button]]></description>
-    </attribute>
-    <attribute>
-      <name>allowSelectAll</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Enable Select All button]]></description>
-    </attribute>
-    <attribute>
-      <name>allowUpDownOnLeft</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Enable up / down on the left side]]></description>
-    </attribute>
-    <attribute>
-      <name>allowUpDownOnRight</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Enable up / down on the right side]]></description>
-    </attribute>
-    <attribute>
-      <name>buttonCssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set buttons css class]]></description>
-    </attribute>
-    <attribute>
-      <name>buttonCssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set button css style]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleAccesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute.]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleCssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class for the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleCssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style for the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleDisabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Decides if a disable attribute should be added to the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleEmptyOption</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Decides if the second list will add an empty option]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleHeaderKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The header key for the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleHeaderValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The header value for the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleId</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The id of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleList</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The second iterable source to populate from.]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleListKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The key expression to use for second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleListValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The value expression to use for second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleMultiple</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Decides if multiple attribute should be set on the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleName</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name for complete component]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onblur attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onchange attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onclick attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOndblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the ondbclick attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onfocus attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onkeydown attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onkeypress attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onkeyup attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onmousedown attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onmousemove attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onmouseout attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onmouseover attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onmouseup attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleOnselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the onselect attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleSize</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the size attribute of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>doubleValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The value expression for complete component]]></description>
-    </attribute>
-    <attribute>
-      <name>emptyOption</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Decides of an empty option is to be inserted in the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>formName</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The form name this component resides in and populates to]]></description>
-    </attribute>
-    <attribute>
-      <name>headerKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the header key of the second list. Must not be empty! '-1' and '' is correct, '' is bad.]]></description>
-    </attribute>
-    <attribute>
-      <name>headerValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the header value of the second list]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>leftDownLabel</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Down label for the left side.]]></description>
-    </attribute>
-    <attribute>
-      <name>leftTitle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set Left title]]></description>
-    </attribute>
-    <attribute>
-      <name>leftUpLabel</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Up label for the left side]]></description>
-    </attribute>
-    <attribute>
-      <name>list</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.]]></description>
-    </attribute>
-    <attribute>
-      <name>listKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Property of list objects to get field value from]]></description>
-    </attribute>
-    <attribute>
-      <name>listValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Property of list objects to get field content from]]></description>
-    </attribute>
-    <attribute>
-      <name>multiple</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Creates a multiple select. The tag will pre-select multiple values if the values are passed as an Array (of appropriate types) via the value attribute.]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>rightDownLabel</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Down label for the left side.]]></description>
-    </attribute>
-    <attribute>
-      <name>rightTitle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set Right title]]></description>
-    </attribute>
-    <attribute>
-      <name>rightUpLabel</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Up label for the right side.]]></description>
-    </attribute>
-    <attribute>
-      <name>selectAllLabel</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set Select All button label]]></description>
-    </attribute>
-    <attribute>
-      <name>size</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Size of the element box (# of elements to show)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>param</name>
-    <tag-class>org.apache.struts2.views.jsp.ParamTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Parametrize other tags]]></description>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Name of Parameter to set]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Value expression for Parameter to set]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>password</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.PasswordTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render an HTML input tag of type password]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>maxLength</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Deprecated. Use maxlength instead.]]></description>
-    </attribute>
-    <attribute>
-      <name>maxlength</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[HTML maxlength attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>readonly</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether the input is readonly]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>showPassword</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether to show input]]></description>
-    </attribute>
-    <attribute>
-      <name>size</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[HTML size attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>property</name>
-    <tag-class>org.apache.struts2.views.jsp.PropertyTag</tag-class>
-    <body-content>empty</body-content>
-    <description><![CDATA[Print out expression which evaluates against the stack]]></description>
-    <attribute>
-      <name>default</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The default value to be used if <u>value</u> attribute is null]]></description>
-    </attribute>
-    <attribute>
-      <name>escape</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Whether to escape HTML]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Value to be displayed]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>push</name>
-    <tag-class>org.apache.struts2.views.jsp.PushTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Push value on stack for simplified usage.]]></description>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Value to push on stack]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>radio</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.RadioTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Renders a radio button input field]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>list</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.]]></description>
-    </attribute>
-    <attribute>
-      <name>listKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Property of list objects to get field value from]]></description>
-    </attribute>
-    <attribute>
-      <name>listValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Property of list objects to get field content from]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>reset</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.ResetTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render a reset button]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>action</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set action attribute.]]></description>
-    </attribute>
-    <attribute>
-      <name>align</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[HTML align attribute.]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Supply a reset button text apart from reset value. Will have no effect for <i>input</i> type reset, since button text will always be the value parameter.]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>method</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set method attribute.]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>type</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The type of submit to use. Valid values are <i>input</i>, <i>button</i> and <i>image</i>.]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>select</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.SelectTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render a select element]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>emptyOption</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether or not to add an empty (--) option after the header option]]></description>
-    </attribute>
-    <attribute>
-      <name>headerKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Key for first item in list. Must not be empty! '-1' and '' is correct, '' is bad.]]></description>
-    </attribute>
-    <attribute>
-      <name>headerValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Value expression for first item in list]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>list</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.]]></description>
-    </attribute>
-    <attribute>
-      <name>listKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Property of list objects to get field value from]]></description>
-    </attribute>
-    <attribute>
-      <name>listValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Property of list objects to get field content from]]></description>
-    </attribute>
-    <attribute>
-      <name>multiple</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Creates a multiple select. The tag will pre-select multiple values if the values are passed as an Array (of appropriate types) via the value attribute. Passing a Collection may work too? Haven't tested this.]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>size</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Size of the element box (# of elements to show)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>set</name>
-    <tag-class>org.apache.struts2.views.jsp.SetTag</tag-class>
-    <body-content>empty</body-content>
-    <description><![CDATA[Assigns a value to a variable in a specified scope]]></description>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ The name of the new variable that is assigned the value of <i>value</i>]]></description>
-    </attribute>
-    <attribute>
-      <name>scope</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The scope in which to assign the variable. Can be <b>application</b>, <b>session</b>, <b>request</b>, <b>page</b>, or <b>action</b>.]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The value that is assigned to the variable named <i>name</i>]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>submit</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.SubmitTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render a submit button]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>action</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set action attribute.]]></description>
-    </attribute>
-    <attribute>
-      <name>align</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[HTML align attribute.]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>errorText</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The text to display to the user if the is an error fetching the content]]></description>
-    </attribute>
-    <attribute>
-      <name>executeScripts</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Javascript code in the fetched content will be executed]]></description>
-    </attribute>
-    <attribute>
-      <name>formFilter</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Function name used to filter the fields of the form.]]></description>
-    </attribute>
-    <attribute>
-      <name>formId</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Form id whose fields will be serialized and passed as parameters]]></description>
-    </attribute>
-    <attribute>
-      <name>handler</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Javascript function name that will make the request]]></description>
-    </attribute>
-    <attribute>
-      <name>href</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The URL to call to obtain the content. Note: If used with ajax context, the value must be set as an url tag value.]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>indicator</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set indicator]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>listenTopics</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Topic that will trigger the remote call]]></description>
-    </attribute>
-    <attribute>
-      <name>loadingText</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Text to be shown while content is being fetched]]></description>
-    </attribute>
-    <attribute>
-      <name>method</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set method attribute.]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>notifyTopics</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Topics that will published when the remote call completes]]></description>
-    </attribute>
-    <attribute>
-      <name>onLoadJS</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Deprecated. Use 'notifyTopics'. Javascript code execute after reload]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>preInvokeJS</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Deprecated. Use 'notifyTopics'. Javascript code execute before reload]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>showErrorTransportText</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set whether errors will be shown or not]]></description>
-    </attribute>
-    <attribute>
-      <name>showLoadingText</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Show loading text on targets]]></description>
-    </attribute>
-    <attribute>
-      <name>src</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Supply an image src for <i>image</i> type submit button. Will have no effect for types <i>input</i> and <i>button</i>.]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>targets</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Comma delimited list of ids of the elements whose content will be updated]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme to use for the element. <b>This tag will usually use the ajax theme.</b>]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>type</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The type of submit to use. Valid values are <i>input</i>, <i>button</i> and <i>image</i>.]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>tabbedPanel</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.TabbedPanelTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render a tabbedPanel widget.]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>closeButton</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Where the close button will be placed, possible values are 'tab' and 'pane']]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>doLayout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If doLayout is false, the tab container's height equals the height of the currently selected tab]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The id to assign to the component.]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>openTemplate</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set template to use for opening the rendered html.]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>selectedTab</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ The id of the tab that will be selected by default]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateCssPath</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Template css path]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>text</name>
-    <tag-class>org.apache.struts2.views.jsp.TextTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render a I18n text message]]></description>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Name of resource property to fetch]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>textarea</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.TextareaTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render HTML textarea tag.]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cols</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[HTML cols attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>readonly</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether the textarea is readonly]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>rows</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[HTML rows attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-    <attribute>
-      <name>wrap</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[HTML wrap attribute]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>textfield</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.TextFieldTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render an HTML input field of type text]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>maxLength</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Deprecated. Use maxlength instead.]]></description>
-    </attribute>
-    <attribute>
-      <name>maxlength</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[HTML maxlength attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>readonly</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether the input is readonly]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>size</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[HTML size attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>token</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.TokenTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Stop double-submission of forms]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>tree</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.TreeTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render a tree widget.]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>blankIconSrc</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Blank icon image source.]]></description>
-    </attribute>
-    <attribute>
-      <name>childCollectionProperty</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The childCollectionProperty property.]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>expandIconSrcMinus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Expand icon (-) image source.]]></description>
-    </attribute>
-    <attribute>
-      <name>expandIconSrcPlus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Expand Icon (+) image source.]]></description>
-    </attribute>
-    <attribute>
-      <name>gridIconSrcC</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Image source for under child item child icons.]]></description>
-    </attribute>
-    <attribute>
-      <name>gridIconSrcL</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Image source for last child grid.]]></description>
-    </attribute>
-    <attribute>
-      <name>gridIconSrcP</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Image source for under parent item child icons.]]></description>
-    </attribute>
-    <attribute>
-      <name>gridIconSrcV</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Image source for vertical line.]]></description>
-    </attribute>
-    <attribute>
-      <name>gridIconSrcX</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Image source for grid for sole root item.]]></description>
-    </attribute>
-    <attribute>
-      <name>gridIconSrcY</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Image source for grid for last root item.]]></description>
-    </attribute>
-    <attribute>
-      <name>iconHeight</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Icon height]]></description>
-    </attribute>
-    <attribute>
-      <name>iconWidth</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Icon width]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>nodeIdProperty</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The nodeIdProperty property.]]></description>
-    </attribute>
-    <attribute>
-      <name>nodeTitleProperty</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The nodeTitleProperty property.]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>openTemplate</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set template to use for opening the rendered html.]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>rootNode</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The rootNode property.]]></description>
-    </attribute>
-    <attribute>
-      <name>showGrid</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Show grid]]></description>
-    </attribute>
-    <attribute>
-      <name>showRootGrid</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The showRootGrid property (default true).]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateCssPath</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Template css path]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>toggle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The toggle property (either 'explode' or 'fade')]]></description>
-    </attribute>
-    <attribute>
-      <name>toggleDuration</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Toggle duration in milliseconds]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>treeCollapsedTopic</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The treeCollapsedTopic property.]]></description>
-    </attribute>
-    <attribute>
-      <name>treeExpandedTopic</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The treeExpandedTopic property.]]></description>
-    </attribute>
-    <attribute>
-      <name>treeSelectedTopic</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The treeSelectedTopic property]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>treenode</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.TreeNodeTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Render a tree node within a tree widget.]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering tree node label.]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>openTemplate</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set template to use for opening the rendered html.]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>url</name>
-    <tag-class>org.apache.struts2.views.jsp.URLTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[This tag is used to create a URL]]></description>
-    <attribute>
-      <name>action</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[he action generate url for, if not using value]]></description>
-    </attribute>
-    <attribute>
-      <name>anchor</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The anchor for this URL]]></description>
-    </attribute>
-    <attribute>
-      <name>encode</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether to encode parameters]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>includeContext</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether actual context should be included in url]]></description>
-    </attribute>
-    <attribute>
-      <name>includeParams</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The includeParams attribute may have the value 'none', 'get' or 'all']]></description>
-    </attribute>
-    <attribute>
-      <name>method</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The method of action to use]]></description>
-    </attribute>
-    <attribute>
-      <name>namespace</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The namespace to use]]></description>
-    </attribute>
-    <attribute>
-      <name>portletMode</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The resulting portlet mode]]></description>
-    </attribute>
-    <attribute>
-      <name>portletUrlType</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Specifies if this should be a portlet render or action url]]></description>
-    </attribute>
-    <attribute>
-      <name>scheme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set scheme attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The target value to use, if not using action]]></description>
-    </attribute>
-    <attribute>
-      <name>windowState</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The resulting portlet window state]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>updownselect</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.UpDownSelectTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Create a Select component with buttons to move the elements in the select component up and down]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>allowMoveDown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether move down button should be displayed]]></description>
-    </attribute>
-    <attribute>
-      <name>allowMoveUp</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether move up button should be displayed]]></description>
-    </attribute>
-    <attribute>
-      <name>allowSelectAll</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether or not select all button should be displayed]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>emptyOption</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether or not to add an empty (--) option after the header option]]></description>
-    </attribute>
-    <attribute>
-      <name>headerKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Key for first item in list. Must not be empty! '-1' and '' is correct, '' is bad.]]></description>
-    </attribute>
-    <attribute>
-      <name>headerValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Value expression for first item in list]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>list</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Iterable source to populate from. If the list is a Map (key, value), the Map key will become the option 'value' parameter and the Map value will become the option body.]]></description>
-    </attribute>
-    <attribute>
-      <name>listKey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Property of list objects to get field value from]]></description>
-    </attribute>
-    <attribute>
-      <name>listValue</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Property of list objects to get field content from]]></description>
-    </attribute>
-    <attribute>
-      <name>moveDownLabel</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Text to display on the move down button]]></description>
-    </attribute>
-    <attribute>
-      <name>moveUpLabel</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Text to display on the move up button]]></description>
-    </attribute>
-    <attribute>
-      <name>multiple</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Creates a multiple select. The tag will pre-select multiple values if the values are passed as an Array (of appropriate types) via the value attribute. Passing a Collection may work too? Haven't tested this.]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>selectAllLabel</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Text to display on the select all button]]></description>
-    </attribute>
-    <attribute>
-      <name>size</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Size of the element box (# of elements to show)]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>table</name>
-    <tag-class>org.apache.struts2.views.jsp.ui.table.WebTableTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Instantiate a JavaBean and place it in the context]]></description>
-    <attribute>
-      <name>accesskey</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html accesskey attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssClass</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css class to use for element]]></description>
-    </attribute>
-    <attribute>
-      <name>cssStyle</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The css style definitions for element ro use]]></description>
-    </attribute>
-    <attribute>
-      <name>disabled</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html disabled attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[id for referencing element. For UI and form tags it will be used as HTML id attribute]]></description>
-    </attribute>
-    <attribute>
-      <name>key</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the key (name, value, label) for this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>label</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Label expression used for rendering a element specific label]]></description>
-    </attribute>
-    <attribute>
-      <name>labelposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define label position of form element (top/left)]]></description>
-    </attribute>
-    <attribute>
-      <name>name</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The name to set for element]]></description>
-    </attribute>
-    <attribute>
-      <name>onblur</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[ Set the html onblur attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onchange</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onchange attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>ondblclick</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html ondblclick attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onfocus</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onfocus attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeydown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeydown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeypress</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeypress attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onkeyup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onkeyup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousedown</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousedown attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmousemove</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmousemove attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseout</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseout attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseover</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseover attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onmouseup</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onmouseup attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>onselect</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html onselect attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>required</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[If set to true, the rendered element will indicate that input is required]]></description>
-    </attribute>
-    <attribute>
-      <name>requiredposition</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Define required position of required form element (left|right)]]></description>
-    </attribute>
-    <attribute>
-      <name>sortColumn</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Index of column to sort data by]]></description>
-    </attribute>
-    <attribute>
-      <name>sortOrder</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set sort order. Allowed values are NONE, ASC and DESC]]></description>
-    </attribute>
-    <attribute>
-      <name>sortable</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Whether the table should be sortable. Requires that model implements org.apache.struts2.components.table.SortableTableModel if set to true.]]></description>
-    </attribute>
-    <attribute>
-      <name>tabindex</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html tabindex attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>template</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>templateDir</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The template directory.]]></description>
-    </attribute>
-    <attribute>
-      <name>theme</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The theme (other than default) to use for rendering the element]]></description>
-    </attribute>
-    <attribute>
-      <name>title</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the html title attribute on rendered html element]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltip</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip of this particular component]]></description>
-    </attribute>
-    <attribute>
-      <name>tooltipConfig</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Set the tooltip configuration]]></description>
-    </attribute>
-    <attribute>
-      <name>value</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Preset the value of input element.]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>generator</name>
-    <tag-class>org.apache.struts2.views.jsp.iterator.IteratorGeneratorTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Generate an iterator for a iterable source.]]></description>
-    <attribute>
-      <name>converter</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The converter to convert the String entry parsed from <i>val</i> into an object]]></description>
-    </attribute>
-    <attribute>
-      <name>count</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The max number entries to be in the iterator]]></description>
-    </attribute>
-    <attribute>
-      <name>id</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The id to store the resultant iterator into page context, if such id is supplied]]></description>
-    </attribute>
-    <attribute>
-      <name>separator</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The separator to be used in separating the <i>val</i> into entries of the iterator]]></description>
-    </attribute>
-    <attribute>
-      <name>val</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The source to be parsed into an iterator]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>sort</name>
-    <tag-class>org.apache.struts2.views.jsp.iterator.SortIteratorTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Sort a List using a Comparator both passed in as the tag attribute.]]></description>
-    <attribute>
-      <name>comparator</name>
-      <required>true</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The comparator to use]]></description>
-    </attribute>
-    <attribute>
-      <name>source</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[The iterable source to sort]]></description>
-    </attribute>
-  </tag>
-  <tag>
-    <name>subset</name>
-    <tag-class>org.apache.struts2.views.jsp.iterator.SubsetIteratorTag</tag-class>
-    <body-content>JSP</body-content>
-    <description><![CDATA[Takes an iterator and outputs a subset of it.]]></description>
-    <attribute>
-      <name>count</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Indicate the number of entries to be in the resulting subset iterator]]></description>
-    </attribute>
-    <attribute>
-      <name>decider</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Extension to plug-in a decider to determine if that particular entry is to be included in the resulting subset iterator]]></description>
-    </attribute>
-    <attribute>
-      <name>source</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Indicate the source of which the resulting subset iterator is to be derived base on]]></description>
-    </attribute>
-    <attribute>
-      <name>start</name>
-      <required>false</required>
-      <rtexprvalue>true</rtexprvalue>
-      <description><![CDATA[Indicate the starting index (eg. first entry is 0) of entries in the source to be available as the first entry in the resulting subset iterator]]></description>
-    </attribute>
-  </tag>
-</taglib>
diff --git a/core/src/main/resources/org/apache/struts2/interceptor/debugging/console.ftl b/core/src/main/resources/org/apache/struts2/interceptor/debugging/console.ftl
index 14b39b5..795d338 100644
--- a/core/src/main/resources/org/apache/struts2/interceptor/debugging/console.ftl
+++ b/core/src/main/resources/org/apache/struts2/interceptor/debugging/console.ftl
@@ -1,6 +1,6 @@
 <html>
 <head>
-    <script language="javascript">
+    <script type="text/javascript">
     var baseUrl = "<@s.url value="/struts" includeParams="none"/>";
     window.open(baseUrl+"/webconsole.html", 'OGNL Console','width=500,height=450,'+
         'status=no,toolbar=no,menubar=no');
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/CommonFunctions.js b/core/src/main/resources/org/apache/struts2/static/CommonFunctions.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/CommonFunctions.js
rename to core/src/main/resources/org/apache/struts2/static/CommonFunctions.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/LICENSE b/core/src/main/resources/org/apache/struts2/static/dojo/LICENSE
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/LICENSE
rename to core/src/main/resources/org/apache/struts2/static/dojo/LICENSE
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/README b/core/src/main/resources/org/apache/struts2/static/dojo/README
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/README
rename to core/src/main/resources/org/apache/struts2/static/dojo/README
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/Storage_version6.swf b/core/src/main/resources/org/apache/struts2/static/dojo/Storage_version6.swf
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/Storage_version6.swf
rename to core/src/main/resources/org/apache/struts2/static/dojo/Storage_version6.swf
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/Storage_version8.swf b/core/src/main/resources/org/apache/struts2/static/dojo/Storage_version8.swf
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/Storage_version8.swf
rename to core/src/main/resources/org/apache/struts2/static/dojo/Storage_version8.swf
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/build.txt b/core/src/main/resources/org/apache/struts2/static/dojo/build.txt
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/build.txt
rename to core/src/main/resources/org/apache/struts2/static/dojo/build.txt
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/dojo.js b/core/src/main/resources/org/apache/struts2/static/dojo/dojo.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/dojo.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/dojo.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/dojo.js.uncompressed.js b/core/src/main/resources/org/apache/struts2/static/dojo/dojo.js.uncompressed.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/dojo.js.uncompressed.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/dojo.js.uncompressed.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/flash6_gateway.swf b/core/src/main/resources/org/apache/struts2/static/dojo/flash6_gateway.swf
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/flash6_gateway.swf
rename to core/src/main/resources/org/apache/struts2/static/dojo/flash6_gateway.swf
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/iframe_history.html b/core/src/main/resources/org/apache/struts2/static/dojo/iframe_history.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/iframe_history.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/iframe_history.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/AdapterRegistry.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/AdapterRegistry.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/AdapterRegistry.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/AdapterRegistry.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/Deferred.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/Deferred.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/Deferred.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/Deferred.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/DeferredList.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/DeferredList.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/DeferredList.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/DeferredList.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/a11y.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/a11y.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/a11y.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/a11y.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/animation.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/animation.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/animation.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/animation.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/animation/Animation.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/animation/Animation.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/animation/Animation.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/animation/Animation.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/animation/AnimationEvent.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/animation/AnimationEvent.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/animation/AnimationEvent.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/animation/AnimationEvent.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/animation/AnimationSequence.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/animation/AnimationSequence.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/animation/AnimationSequence.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/animation/AnimationSequence.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/animation/Timer.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/animation/Timer.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/animation/Timer.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/animation/Timer.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/animation/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/animation/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/animation/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/animation/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/behavior.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/behavior.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/behavior.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/behavior.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/bootstrap1.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/bootstrap1.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/bootstrap1.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/bootstrap1.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/bootstrap2.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/bootstrap2.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/bootstrap2.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/bootstrap2.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/browser_debug.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/browser_debug.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/browser_debug.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/browser_debug.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/cal/iCalendar.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/cal/iCalendar.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/cal/iCalendar.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/cal/iCalendar.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/cal/textDirectory.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/cal/textDirectory.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/cal/textDirectory.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/cal/textDirectory.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/Axis.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/charting/Axis.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/Axis.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/charting/Axis.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/Chart.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/charting/Chart.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/Chart.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/charting/Chart.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/Plot.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/charting/Plot.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/Plot.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/charting/Plot.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/PlotArea.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/charting/PlotArea.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/PlotArea.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/charting/PlotArea.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/Plotters.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/charting/Plotters.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/Plotters.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/charting/Plotters.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/README.txt b/core/src/main/resources/org/apache/struts2/static/dojo/src/charting/README.txt
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/README.txt
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/charting/README.txt
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/Series.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/charting/Series.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/Series.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/charting/Series.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/charting/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/charting/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/svg/Axis.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/charting/svg/Axis.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/svg/Axis.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/charting/svg/Axis.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/svg/PlotArea.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/charting/svg/PlotArea.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/svg/PlotArea.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/charting/svg/PlotArea.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/svg/Plotters.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/charting/svg/Plotters.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/svg/Plotters.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/charting/svg/Plotters.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/vml/Axis.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/charting/vml/Axis.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/vml/Axis.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/charting/vml/Axis.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/vml/PlotArea.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/charting/vml/PlotArea.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/vml/PlotArea.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/charting/vml/PlotArea.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/vml/Plotters.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/charting/vml/Plotters.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/charting/vml/Plotters.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/charting/vml/Plotters.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/ArrayList.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/collections/ArrayList.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/ArrayList.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/collections/ArrayList.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/BinaryTree.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/collections/BinaryTree.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/BinaryTree.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/collections/BinaryTree.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/Collections.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/collections/Collections.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/Collections.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/collections/Collections.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/Dictionary.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/collections/Dictionary.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/Dictionary.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/collections/Dictionary.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/Graph.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/collections/Graph.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/Graph.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/collections/Graph.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/Queue.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/collections/Queue.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/Queue.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/collections/Queue.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/Set.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/collections/Set.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/Set.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/collections/Set.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/SkipList.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/collections/SkipList.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/SkipList.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/collections/SkipList.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/SortedList.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/collections/SortedList.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/SortedList.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/collections/SortedList.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/Stack.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/collections/Stack.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/Stack.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/collections/Stack.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/Store.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/collections/Store.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/Store.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/collections/Store.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/collections/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/collections/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/collections/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/crypto.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/crypto.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/crypto.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/crypto.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/crypto/Blowfish.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/crypto/Blowfish.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/crypto/Blowfish.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/crypto/Blowfish.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/crypto/LICENSE b/core/src/main/resources/org/apache/struts2/static/dojo/src/crypto/LICENSE
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/crypto/LICENSE
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/crypto/LICENSE
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/crypto/MD5.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/crypto/MD5.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/crypto/MD5.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/crypto/MD5.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/crypto/Rijndael.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/crypto/Rijndael.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/crypto/Rijndael.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/crypto/Rijndael.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/crypto/SHA1.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/crypto/SHA1.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/crypto/SHA1.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/crypto/SHA1.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/crypto/SHA256.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/crypto/SHA256.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/crypto/SHA256.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/crypto/SHA256.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/crypto/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/crypto/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/crypto/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/crypto/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/Read.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/Read.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/Read.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/Read.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/Result.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/Result.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/Result.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/Result.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/Write.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/Write.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/Write.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/Write.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/csv/CsvStore.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/csv/CsvStore.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/csv/CsvStore.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/csv/CsvStore.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/csv/Result.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/csv/Result.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/csv/Result.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/csv/Result.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/csv/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/csv/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/csv/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/csv/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Attribute.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Attribute.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Attribute.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Attribute.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Item.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Item.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Item.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Item.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Kind.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Kind.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Kind.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Kind.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Observable.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Observable.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Observable.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Observable.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/ResultSet.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/ResultSet.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/ResultSet.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/ResultSet.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Type.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Type.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Type.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Type.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Value.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Value.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Value.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/Value.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/format/Csv.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/format/Csv.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/format/Csv.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/format/Csv.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/format/Json.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/format/Json.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/format/Json.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/format/Json.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/Base.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/Base.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/Base.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/Base.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/Delicious.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/Delicious.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/Delicious.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/Delicious.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/FlatFile.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/FlatFile.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/FlatFile.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/FlatFile.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/JotSpot.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/JotSpot.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/JotSpot.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/JotSpot.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/MySql.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/MySql.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/MySql.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/provider/MySql.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/to_do.txt b/core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/to_do.txt
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/data/old/to_do.txt
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/data/old/to_do.txt
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/date.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/date.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/date.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/date.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/date/common.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/date/common.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/date/common.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/date/common.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/date/format.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/date/format.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/date/format.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/date/format.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/date/serialize.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/date/serialize.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/date/serialize.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/date/serialize.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/date/supplemental.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/date/supplemental.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/date/supplemental.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/date/supplemental.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/debug.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/debug.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/debug.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/debug.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/debug/Firebug.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/debug/Firebug.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/debug/Firebug.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/debug/Firebug.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/debug/arrow_hide.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/debug/arrow_hide.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/debug/arrow_hide.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/debug/arrow_hide.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/debug/arrow_show.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/debug/arrow_show.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/debug/arrow_show.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/debug/arrow_show.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/debug/console.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/debug/console.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/debug/console.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/debug/console.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/debug/deep.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/debug/deep.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/debug/deep.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/debug/deep.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/debug/spacer.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/debug/spacer.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/debug/spacer.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/debug/spacer.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dnd/DragAndDrop.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/dnd/DragAndDrop.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dnd/DragAndDrop.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/dnd/DragAndDrop.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dnd/HtmlDragAndDrop.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/dnd/HtmlDragAndDrop.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dnd/HtmlDragAndDrop.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/dnd/HtmlDragAndDrop.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dnd/HtmlDragCopy.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/dnd/HtmlDragCopy.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dnd/HtmlDragCopy.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/dnd/HtmlDragCopy.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dnd/HtmlDragManager.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/dnd/HtmlDragManager.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dnd/HtmlDragManager.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/dnd/HtmlDragManager.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dnd/HtmlDragMove.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/dnd/HtmlDragMove.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dnd/HtmlDragMove.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/dnd/HtmlDragMove.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dnd/Sortable.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/dnd/Sortable.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dnd/Sortable.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/dnd/Sortable.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dnd/TreeDragAndDrop.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/dnd/TreeDragAndDrop.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dnd/TreeDragAndDrop.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/dnd/TreeDragAndDrop.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dnd/TreeDragAndDropV3.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/dnd/TreeDragAndDropV3.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dnd/TreeDragAndDropV3.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/dnd/TreeDragAndDropV3.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dnd/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/dnd/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dnd/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/dnd/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/docs.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/docs.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/docs.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/docs.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dom.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/dom.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/dom.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/dom.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/event.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/event.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/event.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/event.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/event/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/event/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/event/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/event/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/event/browser.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/event/browser.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/event/browser.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/event/browser.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/event/common.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/event/common.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/event/common.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/event/common.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/event/topic.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/event/topic.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/event/topic.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/event/topic.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/experimental.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/experimental.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/experimental.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/experimental.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/flash.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/flash.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/flash.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/flash.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/flash/flash6/DojoExternalInterface.as b/core/src/main/resources/org/apache/struts2/static/dojo/src/flash/flash6/DojoExternalInterface.as
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/flash/flash6/DojoExternalInterface.as
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/flash/flash6/DojoExternalInterface.as
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/flash/flash6/flash6_gateway.fla b/core/src/main/resources/org/apache/struts2/static/dojo/src/flash/flash6/flash6_gateway.fla
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/flash/flash6/flash6_gateway.fla
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/flash/flash6/flash6_gateway.fla
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/flash/flash8/DojoExternalInterface.as b/core/src/main/resources/org/apache/struts2/static/dojo/src/flash/flash8/DojoExternalInterface.as
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/flash/flash8/DojoExternalInterface.as
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/flash/flash8/DojoExternalInterface.as
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/flash/flash8/ExpressInstall.as b/core/src/main/resources/org/apache/struts2/static/dojo/src/flash/flash8/ExpressInstall.as
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/flash/flash8/ExpressInstall.as
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/flash/flash8/ExpressInstall.as
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/fx/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/fx/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/fx/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/fx/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/fx/html.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/fx/html.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/fx/html.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/fx/html.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/fx/svg.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/fx/svg.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/fx/svg.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/fx/svg.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/Colorspace.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/Colorspace.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/Colorspace.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/Colorspace.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/color.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/color.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/color.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/color.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/color/hsl.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/color/hsl.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/color/hsl.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/color/hsl.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/color/hsv.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/color/hsv.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/color/hsv.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/color/hsv.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/common.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/common.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/common.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/common.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/matrix.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/matrix.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/matrix.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/matrix.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/path.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/path.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/path.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/path.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/shape.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/shape.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/shape.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/shape.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/svg.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/svg.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/svg.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/svg.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/vml.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/vml.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/gfx/vml.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/gfx/vml.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/graphics/Colorspace.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/graphics/Colorspace.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/graphics/Colorspace.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/graphics/Colorspace.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/graphics/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/graphics/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/graphics/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/graphics/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/graphics/color.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/graphics/color.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/graphics/color.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/graphics/color.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/graphics/color/hsl.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/graphics/color/hsl.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/graphics/color/hsl.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/graphics/color/hsl.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/graphics/color/hsv.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/graphics/color/hsv.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/graphics/color/hsv.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/graphics/color/hsv.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_adobesvg.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_adobesvg.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_adobesvg.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_adobesvg.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_browser.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_browser.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_browser.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_browser.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_dashboard.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_dashboard.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_dashboard.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_dashboard.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_jsc.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_jsc.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_jsc.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_jsc.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_rhino.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_rhino.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_rhino.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_rhino.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_spidermonkey.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_spidermonkey.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_spidermonkey.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_spidermonkey.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_svg.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_svg.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_svg.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_svg.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_wsh.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_wsh.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_wsh.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/hostenv_wsh.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/html.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/html/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/color.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/html/color.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/color.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html/color.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/common.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/html/common.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/common.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html/common.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/display.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/html/display.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/display.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html/display.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/iframe.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/html/iframe.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/iframe.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html/iframe.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowB.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowB.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowB.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowB.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowBL.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowBL.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowBL.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowBL.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowBR.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowBR.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowBR.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowBR.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowL.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowL.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowL.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowL.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowR.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowR.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowR.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowR.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowT.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowT.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowT.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowT.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowTL.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowTL.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowTL.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowTL.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowTR.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowTR.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowTR.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html/images/shadowTR.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/layout.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/html/layout.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/layout.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html/layout.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/metrics.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/html/metrics.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/metrics.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html/metrics.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/selection.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/html/selection.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/selection.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html/selection.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/shadow.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/html/shadow.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/shadow.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html/shadow.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/style.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/html/style.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/style.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html/style.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/util.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/html/util.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/html/util.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/html/util.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/README b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/README
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/README
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/README
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/de/gregorian.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/de/gregorian.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/de/gregorian.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/de/gregorian.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/en/gregorian.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/en/gregorian.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/en/gregorian.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/en/gregorian.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/es/gregorian.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/es/gregorian.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/es/gregorian.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/es/gregorian.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/fi/gregorian.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/fi/gregorian.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/fi/gregorian.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/fi/gregorian.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/fr/gregorian.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/fr/gregorian.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/fr/gregorian.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/fr/gregorian.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/gregorian.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/gregorian.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/gregorian.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/gregorian.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/gregorianExtras.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/gregorianExtras.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/gregorianExtras.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/gregorianExtras.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/hu/gregorian.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/hu/gregorian.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/hu/gregorian.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/hu/gregorian.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/it/gregorian.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/it/gregorian.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/it/gregorian.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/it/gregorian.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/ja/gregorian.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/ja/gregorian.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/ja/gregorian.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/ja/gregorian.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/ja/gregorianExtras.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/ja/gregorianExtras.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/ja/gregorianExtras.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/ja/gregorianExtras.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/ko/gregorian.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/ko/gregorian.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/ko/gregorian.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/ko/gregorian.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/nl/gregorian.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/nl/gregorian.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/nl/gregorian.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/nl/gregorian.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/pt-br/gregorian.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/pt-br/gregorian.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/pt-br/gregorian.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/pt-br/gregorian.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/pt/gregorian.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/pt/gregorian.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/pt/gregorian.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/pt/gregorian.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/sv/gregorian.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/sv/gregorian.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/sv/gregorian.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/sv/gregorian.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh-cn/gregorian.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh-cn/gregorian.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh-cn/gregorian.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh-cn/gregorian.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh-hk/gregorian.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh-hk/gregorian.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh-hk/gregorian.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh-hk/gregorian.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh-tw/gregorian.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh-tw/gregorian.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh-tw/gregorian.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh-tw/gregorian.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh/gregorian.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh/gregorian.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh/gregorian.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh/gregorian.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh/gregorianExtras.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh/gregorianExtras.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh/gregorianExtras.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/calendar/nls/zh/gregorianExtras.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/common.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/common.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/common.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/common.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/common.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/common.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/common.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/common.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/EUR.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/EUR.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/EUR.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/EUR.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/GBP.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/GBP.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/GBP.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/GBP.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/INR.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/INR.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/INR.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/INR.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ITL.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ITL.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ITL.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ITL.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/JPY.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/JPY.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/JPY.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/JPY.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/README b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/README
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/README
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/README
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/USD.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/USD.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/USD.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/USD.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en-us/USD.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en-us/USD.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en-us/USD.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en-us/USD.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/EUR.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/EUR.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/EUR.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/EUR.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/GBP.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/GBP.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/GBP.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/GBP.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/INR.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/INR.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/INR.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/INR.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/ITL.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/ITL.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/ITL.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/ITL.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/JPY.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/JPY.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/JPY.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/JPY.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/USD.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/USD.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/USD.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/en/USD.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/EUR.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/EUR.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/EUR.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/EUR.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/GBP.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/GBP.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/GBP.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/GBP.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/INR.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/INR.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/INR.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/INR.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/ITL.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/ITL.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/ITL.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/ITL.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/JPY.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/JPY.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/JPY.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/JPY.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/USD.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/USD.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/USD.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/hi/USD.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/EUR.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/EUR.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/EUR.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/EUR.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/GBP.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/GBP.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/GBP.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/GBP.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/INR.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/INR.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/INR.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/INR.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/ITL.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/ITL.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/ITL.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/ITL.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/JPY.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/JPY.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/JPY.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/JPY.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/USD.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/USD.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/USD.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/currency/nls/ja/USD.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/number.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/number.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/i18n/number.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/i18n/number.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/iCalendar.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/iCalendar.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/iCalendar.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/iCalendar.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/io.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/io.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/BrowserIO.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/io/BrowserIO.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/BrowserIO.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/io/BrowserIO.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/IframeIO.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/io/IframeIO.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/IframeIO.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/io/IframeIO.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/RepubsubIO.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/io/RepubsubIO.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/RepubsubIO.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/io/RepubsubIO.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/RhinoIO.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/io/RhinoIO.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/RhinoIO.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/io/RhinoIO.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/ScriptSrcIO.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/io/ScriptSrcIO.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/ScriptSrcIO.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/io/ScriptSrcIO.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/XhrIframeProxy.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/io/XhrIframeProxy.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/XhrIframeProxy.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/io/XhrIframeProxy.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/io/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/io/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/cometd.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/io/cometd.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/cometd.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/io/cometd.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/common.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/io/common.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/common.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/io/common.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/cookie.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/io/cookie.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/cookie.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/io/cookie.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/xip_client.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/io/xip_client.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/xip_client.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/io/xip_client.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/xip_server.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/io/xip_server.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/io/xip_server.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/io/xip_server.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/json.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/json.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/json.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/json.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lang.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lang.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lang/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lang/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/array.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lang/array.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/array.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lang/array.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/assert.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lang/assert.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/assert.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lang/assert.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/common.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lang/common.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/common.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lang/common.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/declare.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lang/declare.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/declare.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lang/declare.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/extras.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lang/extras.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/extras.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lang/extras.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/func.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lang/func.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/func.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lang/func.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/repr.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lang/repr.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/repr.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lang/repr.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/timing/Streamer.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lang/timing/Streamer.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/timing/Streamer.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lang/timing/Streamer.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/timing/Timer.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lang/timing/Timer.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/timing/Timer.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lang/timing/Timer.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/timing/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lang/timing/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/timing/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lang/timing/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/type.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lang/type.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lang/type.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lang/type.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lfx/Animation.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lfx/Animation.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lfx/Animation.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lfx/Animation.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lfx/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lfx/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lfx/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lfx/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lfx/extras.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lfx/extras.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lfx/extras.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lfx/extras.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lfx/html.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lfx/html.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lfx/html.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lfx/html.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lfx/rounded.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lfx/rounded.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lfx/rounded.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lfx/rounded.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lfx/shadow.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lfx/shadow.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lfx/shadow.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lfx/shadow.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lfx/toggle.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/lfx/toggle.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/lfx/toggle.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/lfx/toggle.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/loader.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/loader.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/loader.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/loader.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/loader_xd.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/loader_xd.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/loader_xd.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/loader_xd.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/logging/ConsoleLogger.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/logging/ConsoleLogger.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/logging/ConsoleLogger.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/logging/ConsoleLogger.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/logging/Logger.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/logging/Logger.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/logging/Logger.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/logging/Logger.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/logging/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/logging/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/logging/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/logging/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/math.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/math.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/math.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/math.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/math/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/math/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/math/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/math/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/math/curves.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/math/curves.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/math/curves.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/math/curves.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/math/matrix.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/math/matrix.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/math/matrix.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/math/matrix.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/math/points.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/math/points.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/math/points.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/math/points.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/namespaces/dojo.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/namespaces/dojo.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/namespaces/dojo.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/namespaces/dojo.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/ns.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/ns.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/ns.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/ns.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/profile.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/profile.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/profile.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/profile.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/regexp.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/regexp.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/regexp.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/regexp.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/rpc/Deferred.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/rpc/Deferred.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/rpc/Deferred.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/rpc/Deferred.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/rpc/JotService.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/rpc/JotService.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/rpc/JotService.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/rpc/JotService.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/rpc/JsonService.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/rpc/JsonService.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/rpc/JsonService.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/rpc/JsonService.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/rpc/RpcService.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/rpc/RpcService.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/rpc/RpcService.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/rpc/RpcService.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/rpc/YahooService.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/rpc/YahooService.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/rpc/YahooService.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/rpc/YahooService.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/rpc/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/rpc/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/rpc/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/rpc/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/rpc/yahoo.smd b/core/src/main/resources/org/apache/struts2/static/dojo/src/rpc/yahoo.smd
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/rpc/yahoo.smd
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/rpc/yahoo.smd
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/selection/Selection.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/selection/Selection.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/selection/Selection.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/selection/Selection.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/storage.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/storage.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/storage.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/storage.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/storage/Storage.as b/core/src/main/resources/org/apache/struts2/static/dojo/src/storage/Storage.as
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/storage/Storage.as
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/storage/Storage.as
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/storage/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/storage/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/storage/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/storage/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/storage/browser.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/storage/browser.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/storage/browser.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/storage/browser.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/storage/dashboard.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/storage/dashboard.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/storage/dashboard.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/storage/dashboard.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/storage/storage_dialog.fla b/core/src/main/resources/org/apache/struts2/static/dojo/src/storage/storage_dialog.fla
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/storage/storage_dialog.fla
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/storage/storage_dialog.fla
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/string.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/string.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/string.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/string.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/string/Builder.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/string/Builder.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/string/Builder.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/string/Builder.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/string/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/string/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/string/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/string/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/string/common.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/string/common.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/string/common.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/string/common.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/string/extras.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/string/extras.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/string/extras.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/string/extras.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/style.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/style.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/style.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/style.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/svg.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/svg.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/svg.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/svg.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/text/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/text/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/text/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/text/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/text/textDirectory.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/text/textDirectory.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/text/textDirectory.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/text/textDirectory.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/undo/Manager.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/undo/Manager.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/undo/Manager.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/undo/Manager.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/undo/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/undo/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/undo/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/undo/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/undo/browser.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/undo/browser.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/undo/browser.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/undo/browser.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/uri/Uri.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/uri/Uri.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/uri/Uri.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/uri/Uri.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/uri/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/uri/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/uri/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/uri/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/uuid/LightweightGenerator.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/uuid/LightweightGenerator.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/uuid/LightweightGenerator.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/uuid/LightweightGenerator.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/uuid/NameBasedGenerator.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/uuid/NameBasedGenerator.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/uuid/NameBasedGenerator.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/uuid/NameBasedGenerator.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/uuid/NilGenerator.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/uuid/NilGenerator.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/uuid/NilGenerator.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/uuid/NilGenerator.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/uuid/RandomGenerator.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/uuid/RandomGenerator.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/uuid/RandomGenerator.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/uuid/RandomGenerator.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/uuid/TimeBasedGenerator.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/uuid/TimeBasedGenerator.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/uuid/TimeBasedGenerator.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/uuid/TimeBasedGenerator.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/uuid/Uuid.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/uuid/Uuid.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/uuid/Uuid.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/uuid/Uuid.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/uuid/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/uuid/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/uuid/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/uuid/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/validate.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/validate.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/validate/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/validate/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate/check.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/validate/check.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate/check.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/validate/check.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate/common.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/validate/common.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate/common.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/validate/common.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate/creditCard.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/validate/creditCard.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate/creditCard.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/validate/creditCard.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate/datetime.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/validate/datetime.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate/datetime.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/validate/datetime.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate/de.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/validate/de.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate/de.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/validate/de.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate/jp.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/validate/jp.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate/jp.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/validate/jp.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate/us.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/validate/us.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate/us.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/validate/us.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate/web.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/validate/web.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/validate/web.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/validate/web.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/AccordionContainer.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/AccordionContainer.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/AccordionContainer.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/AccordionContainer.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/AnimatedPng.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/AnimatedPng.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/AnimatedPng.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/AnimatedPng.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Button.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Button.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Button.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Button.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Chart.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Chart.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Chart.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Chart.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Checkbox.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Checkbox.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Checkbox.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Checkbox.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Clock.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Clock.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Clock.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Clock.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/ColorPalette.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/ColorPalette.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/ColorPalette.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/ColorPalette.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/ComboBox.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/ComboBox.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/ComboBox.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/ComboBox.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/ContentPane.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/ContentPane.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/ContentPane.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/ContentPane.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/CurrencyTextbox.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/CurrencyTextbox.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/CurrencyTextbox.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/CurrencyTextbox.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/DatePicker.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/DatePicker.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/DatePicker.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/DatePicker.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/DateTextbox.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/DateTextbox.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/DateTextbox.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/DateTextbox.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/DebugConsole.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/DebugConsole.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/DebugConsole.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/DebugConsole.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Dialog.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Dialog.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Dialog.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Dialog.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/DocPane.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/DocPane.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/DocPane.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/DocPane.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/DomWidget.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/DomWidget.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/DomWidget.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/DomWidget.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/DropdownContainer.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/DropdownContainer.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/DropdownContainer.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/DropdownContainer.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/DropdownDatePicker.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/DropdownDatePicker.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/DropdownDatePicker.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/DropdownDatePicker.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/DropdownTimePicker.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/DropdownTimePicker.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/DropdownTimePicker.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/DropdownTimePicker.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/AlwaysShowToolbar.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/AlwaysShowToolbar.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/AlwaysShowToolbar.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/AlwaysShowToolbar.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/ContextMenu.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/ContextMenu.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/ContextMenu.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/ContextMenu.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/CreateLinkDialog.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/CreateLinkDialog.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/CreateLinkDialog.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/CreateLinkDialog.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/FindReplace.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/FindReplace.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/FindReplace.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/FindReplace.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/FindReplaceDialog.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/FindReplaceDialog.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/FindReplaceDialog.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/FindReplaceDialog.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/InsertImageDialog.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/InsertImageDialog.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/InsertImageDialog.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/InsertImageDialog.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/InsertTableDialog.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/InsertTableDialog.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/InsertTableDialog.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/InsertTableDialog.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/SimpleSignalCommands.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/SimpleSignalCommands.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/SimpleSignalCommands.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/SimpleSignalCommands.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/TableOperation.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/TableOperation.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/TableOperation.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/TableOperation.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/ToolbarDndSupport.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/ToolbarDndSupport.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/ToolbarDndSupport.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/ToolbarDndSupport.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Plugin/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Toolbar.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Toolbar.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Toolbar.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Editor2Toolbar.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/FilteringTable.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/FilteringTable.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/FilteringTable.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/FilteringTable.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/FisheyeList.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/FisheyeList.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/FisheyeList.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/FisheyeList.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/FloatingPane.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/FloatingPane.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/FloatingPane.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/FloatingPane.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Form.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Form.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Form.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Form.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/GoogleMap.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/GoogleMap.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/GoogleMap.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/GoogleMap.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/HtmlWidget.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/HtmlWidget.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/HtmlWidget.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/HtmlWidget.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/InlineEditBox.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/InlineEditBox.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/InlineEditBox.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/InlineEditBox.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/IntegerTextbox.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/IntegerTextbox.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/IntegerTextbox.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/IntegerTextbox.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/InternetTextbox.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/InternetTextbox.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/InternetTextbox.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/InternetTextbox.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/LayoutContainer.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/LayoutContainer.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/LayoutContainer.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/LayoutContainer.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/LinkPane.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/LinkPane.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/LinkPane.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/LinkPane.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Manager.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Manager.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Manager.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Manager.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Menu2.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Menu2.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Menu2.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Menu2.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/MonthlyCalendar.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/MonthlyCalendar.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/MonthlyCalendar.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/MonthlyCalendar.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/PageContainer.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/PageContainer.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/PageContainer.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/PageContainer.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Parse.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Parse.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Parse.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Parse.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/PopupContainer.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/PopupContainer.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/PopupContainer.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/PopupContainer.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/ProgressBar.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/ProgressBar.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/ProgressBar.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/ProgressBar.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/RadioGroup.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/RadioGroup.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/RadioGroup.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/RadioGroup.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/RealNumberTextbox.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/RealNumberTextbox.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/RealNumberTextbox.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/RealNumberTextbox.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/RegexpTextbox.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/RegexpTextbox.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/RegexpTextbox.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/RegexpTextbox.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/RemoteTabController.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/RemoteTabController.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/RemoteTabController.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/RemoteTabController.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Repeater.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Repeater.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Repeater.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Repeater.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/ResizableTextarea.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/ResizableTextarea.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/ResizableTextarea.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/ResizableTextarea.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/ResizeHandle.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/ResizeHandle.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/ResizeHandle.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/ResizeHandle.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/RichText.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/RichText.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/RichText.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/RichText.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Rounded.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Rounded.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Rounded.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Rounded.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Select.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Select.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Select.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Select.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Show.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Show.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Show.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Show.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/ShowAction.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/ShowAction.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/ShowAction.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/ShowAction.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/ShowSlide.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/ShowSlide.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/ShowSlide.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/ShowSlide.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/SlideShow.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/SlideShow.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/SlideShow.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/SlideShow.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Slider.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Slider.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Slider.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Slider.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/SortableTable.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/SortableTable.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/SortableTable.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/SortableTable.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Spinner.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Spinner.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Spinner.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Spinner.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/SplitContainer.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/SplitContainer.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/SplitContainer.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/SplitContainer.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/SplitPane.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/SplitPane.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/SplitPane.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/SplitPane.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/SvgButton.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/SvgButton.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/SvgButton.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/SvgButton.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/SvgWidget.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/SvgWidget.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/SvgWidget.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/SvgWidget.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/SwtWidget.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/SwtWidget.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/SwtWidget.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/SwtWidget.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TabContainer.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TabContainer.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TabContainer.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TabContainer.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TaskBar.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TaskBar.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TaskBar.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TaskBar.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Textbox.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Textbox.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Textbox.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Textbox.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TimePicker.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TimePicker.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TimePicker.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TimePicker.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TitlePane.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TitlePane.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TitlePane.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TitlePane.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Toaster.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Toaster.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Toaster.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Toaster.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Toggler.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Toggler.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Toggler.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Toggler.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Toolbar.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Toolbar.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Toolbar.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Toolbar.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Tooltip.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Tooltip.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Tooltip.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Tooltip.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Tree.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Tree.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Tree.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Tree.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeBasicController.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeBasicController.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeBasicController.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeBasicController.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeBasicControllerV3.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeBasicControllerV3.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeBasicControllerV3.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeBasicControllerV3.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeCommon.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeCommon.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeCommon.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeCommon.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeContextMenu.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeContextMenu.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeContextMenu.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeContextMenu.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeContextMenuV3.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeContextMenuV3.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeContextMenuV3.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeContextMenuV3.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeControllerExtension.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeControllerExtension.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeControllerExtension.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeControllerExtension.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDemo.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDemo.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDemo.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDemo.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDeselectOnDblselect.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDeselectOnDblselect.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDeselectOnDblselect.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDeselectOnDblselect.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDisableWrapExtension.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDisableWrapExtension.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDisableWrapExtension.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDisableWrapExtension.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDndControllerV3.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDndControllerV3.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDndControllerV3.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDndControllerV3.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDocIconExtension.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDocIconExtension.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDocIconExtension.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeDocIconExtension.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeEditor.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeEditor.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeEditor.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeEditor.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeEmphaseOnSelect.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeEmphaseOnSelect.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeEmphaseOnSelect.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeEmphaseOnSelect.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeExpandOnSelect.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeExpandOnSelect.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeExpandOnSelect.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeExpandOnSelect.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeExtension.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeExtension.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeExtension.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeExtension.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeLinkExtension.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeLinkExtension.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeLinkExtension.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeLinkExtension.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeLoadingController.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeLoadingController.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeLoadingController.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeLoadingController.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeLoadingControllerV3.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeLoadingControllerV3.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeLoadingControllerV3.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeLoadingControllerV3.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeNode.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeNode.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeNode.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeNode.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeNodeV3.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeNodeV3.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeNodeV3.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeNodeV3.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeRPCController.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeRPCController.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeRPCController.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeRPCController.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeRpcControllerV3.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeRpcControllerV3.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeRpcControllerV3.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeRpcControllerV3.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeSelector.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeSelector.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeSelector.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeSelector.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeSelectorV3.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeSelectorV3.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeSelectorV3.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeSelectorV3.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeTimeoutIterator.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeTimeoutIterator.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeTimeoutIterator.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeTimeoutIterator.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeV3.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeV3.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeV3.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeV3.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeWithNode.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeWithNode.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeWithNode.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/TreeWithNode.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/UsTextbox.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/UsTextbox.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/UsTextbox.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/UsTextbox.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/ValidationTextbox.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/ValidationTextbox.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/ValidationTextbox.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/ValidationTextbox.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Widget.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Widget.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Widget.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Widget.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Wizard.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Wizard.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/Wizard.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/Wizard.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/YahooMap.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/YahooMap.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/YahooMap.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/YahooMap.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/DemoContainer.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/DemoContainer.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/DemoContainer.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/DemoContainer.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/DemoItem.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/DemoItem.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/DemoItem.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/DemoItem.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/DemoNavigator.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/DemoNavigator.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/DemoNavigator.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/DemoNavigator.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/DemoPane.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/DemoPane.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/DemoPane.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/DemoPane.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/SourcePane.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/SourcePane.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/SourcePane.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/SourcePane.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoContainer.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoContainer.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoContainer.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoContainer.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoContainer.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoContainer.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoContainer.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoContainer.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoItem.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoItem.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoItem.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoItem.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoItem.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoItem.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoItem.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoItem.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoNavigator.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoNavigator.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoNavigator.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoNavigator.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoNavigator.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoNavigator.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoNavigator.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoNavigator.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoPane.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoPane.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoPane.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoPane.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoPane.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoPane.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoPane.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/DemoPane.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/SourcePane.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/SourcePane.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/SourcePane.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/SourcePane.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/SourcePane.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/SourcePane.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/SourcePane.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/SourcePane.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/general.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/general.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/general.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/general.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/images/test_thumb.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/images/test_thumb.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/images/test_thumb.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/images/test_thumb.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/images/viewDemo.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/images/viewDemo.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/images/viewDemo.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/demoEngine/templates/images/viewDemo.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/html/layout.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/html/layout.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/html/layout.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/html/layout.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/html/loader.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/html/loader.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/html/loader.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/html/loader.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/html/stabile.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/html/stabile.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/html/stabile.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/html/stabile.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/DropdownDatePicker.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/DropdownDatePicker.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/DropdownDatePicker.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/DropdownDatePicker.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/DropdownTimePicker.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/DropdownTimePicker.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/DropdownTimePicker.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/DropdownTimePicker.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/TimePicker.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/TimePicker.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/TimePicker.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/TimePicker.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/fr/validate.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/fr/validate.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/fr/validate.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/fr/validate.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/ja/validate.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/ja/validate.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/ja/validate.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/ja/validate.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/validate.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/validate.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/validate.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/validate.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/zh-cn/validate.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/zh-cn/validate.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/zh-cn/validate.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/nls/zh-cn/validate.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/svg/Chart.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/svg/Chart.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/svg/Chart.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/svg/Chart.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/AccordionPane.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/AccordionPane.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/AccordionPane.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/AccordionPane.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/AccordionPane.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/AccordionPane.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/AccordionPane.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/AccordionPane.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ButtonTemplate.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ButtonTemplate.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ButtonTemplate.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ButtonTemplate.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ButtonTemplate.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ButtonTemplate.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ButtonTemplate.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ButtonTemplate.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Checkbox.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Checkbox.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Checkbox.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Checkbox.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Checkbox.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Checkbox.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Checkbox.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Checkbox.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/CheckboxA11y.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/CheckboxA11y.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/CheckboxA11y.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/CheckboxA11y.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/CiviCrmDatePicker.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/CiviCrmDatePicker.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/CiviCrmDatePicker.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/CiviCrmDatePicker.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ComboBox.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ComboBox.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ComboBox.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ComboBox.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ComboBox.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ComboBox.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ComboBox.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ComboBox.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ComboButtonTemplate.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ComboButtonTemplate.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ComboButtonTemplate.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ComboButtonTemplate.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DatePicker.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DatePicker.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DatePicker.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DatePicker.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DatePicker.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DatePicker.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DatePicker.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DatePicker.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DemoEngine.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DemoEngine.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DemoEngine.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DemoEngine.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Dialog.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Dialog.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Dialog.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Dialog.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DocPane.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DocPane.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DocPane.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DocPane.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DocPane.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DocPane.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DocPane.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DocPane.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DropDownButtonTemplate.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DropDownButtonTemplate.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DropDownButtonTemplate.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/DropDownButtonTemplate.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/createlink.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/createlink.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/createlink.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/createlink.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/find.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/find.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/find.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/find.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/insertimage.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/insertimage.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/insertimage.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/insertimage.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/inserttable.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/inserttable.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/inserttable.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/inserttable.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/replace.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/replace.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/replace.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/Dialog/replace.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/EditorDialog.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/EditorDialog.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/EditorDialog.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/EditorDialog.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/EditorToolbar_FontName.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/EditorToolbar_FontName.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/EditorToolbar_FontName.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/EditorToolbar_FontName.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/EditorToolbar_FontSize.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/EditorToolbar_FontSize.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/EditorToolbar_FontSize.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/EditorToolbar_FontSize.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/EditorToolbar_FormatBlock.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/EditorToolbar_FormatBlock.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/EditorToolbar_FormatBlock.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/EditorToolbar_FormatBlock.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/showtableborder_gecko.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/showtableborder_gecko.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/showtableborder_gecko.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/showtableborder_gecko.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/showtableborder_ie.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/showtableborder_ie.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/showtableborder_ie.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Editor2/showtableborder_ie.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/EditorToolbar.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/EditorToolbar.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/EditorToolbar.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/EditorToolbar.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/EditorToolbar.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/EditorToolbar.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/EditorToolbar.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/EditorToolbar.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/EditorToolbarLight.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/EditorToolbarLight.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/EditorToolbarLight.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/EditorToolbarLight.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/EditorToolbarOneline.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/EditorToolbarOneline.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/EditorToolbarOneline.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/EditorToolbarOneline.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/FisheyeList.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/FisheyeList.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/FisheyeList.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/FisheyeList.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/FloatingPane.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/FloatingPane.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/FloatingPane.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/FloatingPane.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/FloatingPane.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/FloatingPane.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/FloatingPane.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/FloatingPane.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/InlineEditBox.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/InlineEditBox.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/InlineEditBox.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/InlineEditBox.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/InlineEditBox.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/InlineEditBox.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/InlineEditBox.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/InlineEditBox.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Menu.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Menu.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Menu.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Menu.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Menu2.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Menu2.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Menu2.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Menu2.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/MonthlyCalendar.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/MonthlyCalendar.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/MonthlyCalendar.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/MonthlyCalendar.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/MonthlyCalendar.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/MonthlyCalendar.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/MonthlyCalendar.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/MonthlyCalendar.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/PopUpButton.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/PopUpButton.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/PopUpButton.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/PopUpButton.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ProgressBar.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ProgressBar.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ProgressBar.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ProgressBar.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ProgressBar.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ProgressBar.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ProgressBar.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ProgressBar.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/RemoteTabControl.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/RemoteTabControl.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/RemoteTabControl.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/RemoteTabControl.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ResizableTextarea.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ResizableTextarea.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ResizableTextarea.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ResizableTextarea.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ResizableTextarea.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ResizableTextarea.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ResizableTextarea.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ResizableTextarea.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ResizeHandle.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ResizeHandle.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ResizeHandle.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ResizeHandle.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Show.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Show.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Show.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Show.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Show.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Show.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Show.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Show.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ShowSlide.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ShowSlide.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ShowSlide.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ShowSlide.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ShowSlide.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ShowSlide.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ShowSlide.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ShowSlide.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SlideShow.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SlideShow.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SlideShow.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SlideShow.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SlideShow.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SlideShow.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SlideShow.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SlideShow.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Slider.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Slider.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Slider.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Slider.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Slider.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Slider.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Slider.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Slider.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SliderHorizontal.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SliderHorizontal.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SliderHorizontal.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SliderHorizontal.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SliderVertical.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SliderVertical.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SliderVertical.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SliderVertical.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Spinner.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Spinner.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Spinner.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Spinner.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Spinner.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Spinner.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Spinner.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Spinner.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SplitContainer.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SplitContainer.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SplitContainer.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/SplitContainer.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TabContainer.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TabContainer.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TabContainer.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TabContainer.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TabContainer.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TabContainer.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TabContainer.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TabContainer.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TabContainerA11y.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TabContainerA11y.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TabContainerA11y.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TabContainerA11y.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TaskBar.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TaskBar.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TaskBar.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TaskBar.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TaskBarItemTemplate.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TaskBarItemTemplate.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TaskBarItemTemplate.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TaskBarItemTemplate.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Textbox.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Textbox.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Textbox.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Textbox.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TimePicker.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TimePicker.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TimePicker.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TimePicker.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TimePicker.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TimePicker.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TimePicker.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TimePicker.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TitlePane.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TitlePane.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TitlePane.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TitlePane.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Toaster.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Toaster.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Toaster.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Toaster.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Toolbar.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Toolbar.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Toolbar.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Toolbar.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TooltipTemplate.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TooltipTemplate.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TooltipTemplate.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TooltipTemplate.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Tree.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Tree.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Tree.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Tree.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TreeDisableWrap.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TreeDisableWrap.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TreeDisableWrap.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TreeDisableWrap.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TreeDocIcon.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TreeDocIcon.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TreeDocIcon.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TreeDocIcon.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TreeV3.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TreeV3.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TreeV3.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/TreeV3.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Validate.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Validate.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Validate.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Validate.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ValidationTextbox.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ValidationTextbox.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ValidationTextbox.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/ValidationTextbox.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Wizard.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Wizard.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Wizard.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Wizard.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Wizard.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Wizard.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Wizard.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/Wizard.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/aggregate.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/aggregate.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/aggregate.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/aggregate.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/backcolor.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/backcolor.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/backcolor.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/backcolor.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/bg-fade.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/bg-fade.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/bg-fade.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/bg-fade.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/bold.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/bold.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/bold.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/bold.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/cancel.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/cancel.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/cancel.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/cancel.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/copy.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/copy.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/copy.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/copy.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/createlink.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/createlink.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/createlink.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/createlink.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/cut.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/cut.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/cut.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/cut.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/delete.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/delete.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/delete.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/delete.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/forecolor.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/forecolor.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/forecolor.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/forecolor.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/hilitecolor.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/hilitecolor.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/hilitecolor.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/hilitecolor.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/indent.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/indent.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/indent.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/indent.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/inserthorizontalrule.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/inserthorizontalrule.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/inserthorizontalrule.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/inserthorizontalrule.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/insertimage.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/insertimage.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/insertimage.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/insertimage.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/insertorderedlist.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/insertorderedlist.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/insertorderedlist.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/insertorderedlist.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/inserttable.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/inserttable.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/inserttable.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/inserttable.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/insertunorderedlist.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/insertunorderedlist.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/insertunorderedlist.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/insertunorderedlist.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/italic.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/italic.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/italic.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/italic.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/justifycenter.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/justifycenter.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/justifycenter.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/justifycenter.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/justifyfull.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/justifyfull.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/justifyfull.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/justifyfull.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/justifyleft.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/justifyleft.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/justifyleft.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/justifyleft.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/justifyright.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/justifyright.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/justifyright.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/justifyright.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/left_to_right.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/left_to_right.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/left_to_right.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/left_to_right.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/list_bullet_indent.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/list_bullet_indent.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/list_bullet_indent.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/list_bullet_indent.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/list_bullet_outdent.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/list_bullet_outdent.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/list_bullet_outdent.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/list_bullet_outdent.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/list_num_indent.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/list_num_indent.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/list_num_indent.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/list_num_indent.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/list_num_outdent.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/list_num_outdent.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/list_num_outdent.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/list_num_outdent.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/outdent.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/outdent.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/outdent.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/outdent.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/paste.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/paste.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/paste.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/paste.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/redo.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/redo.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/redo.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/redo.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/removeformat.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/removeformat.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/removeformat.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/removeformat.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/right_to_left.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/right_to_left.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/right_to_left.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/right_to_left.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/save.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/save.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/save.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/save.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/sep.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/sep.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/sep.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/sep.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/space.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/space.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/space.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/space.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/strikethrough.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/strikethrough.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/strikethrough.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/strikethrough.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/subscript.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/subscript.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/subscript.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/subscript.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/superscript.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/superscript.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/superscript.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/superscript.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/underline.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/underline.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/underline.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/underline.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/undo.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/undo.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/undo.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/undo.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/wikiword.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/wikiword.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/wikiword.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/buttons/wikiword.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/check.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/check.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/check.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/check.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/decrementMonth.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/decrementMonth.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/decrementMonth.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/decrementMonth.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/decrementWeek.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/decrementWeek.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/decrementWeek.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/decrementWeek.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/grabCorner.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/grabCorner.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/grabCorner.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/grabCorner.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/Tree.css b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/Tree.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/Tree.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/Tree.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/blank.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/blank.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/blank.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/blank.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/closed.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/closed.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/closed.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/closed.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/document.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/document.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/document.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/document.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/minus.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/minus.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/minus.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/minus.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/plus.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/plus.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/plus.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/plus.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/transparent.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/transparent.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/transparent.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/transparent.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_blank.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_blank.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_blank.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_blank.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_child.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_child.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_child.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_child.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_expand_minus.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_expand_minus.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_expand_minus.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_expand_minus.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_expand_plus.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_expand_plus.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_expand_plus.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_expand_plus.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_c.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_c.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_c.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_c.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_l.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_l.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_l.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_l.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_p.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_p.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_p.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_p.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_t.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_t.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_t.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_t.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_v.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_v.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_v.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_v.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_x.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_x.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_x.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_x.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_y.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_y.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_y.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_y.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_z.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_z.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_z.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_grid_z.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_loading.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_loading.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_loading.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_loading.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_loading.jpg b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_loading.jpg
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_loading.jpg
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/Tree/treenode_loading.jpg
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/closed.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/closed.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/closed.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/closed.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/document.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/document.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/document.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/document.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/expand_leaf.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/expand_leaf.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/expand_leaf.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/expand_leaf.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/expand_loading.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/expand_loading.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/expand_loading.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/expand_loading.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/expand_minus.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/expand_minus.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/expand_minus.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/expand_minus.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/expand_plus.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/expand_plus.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/expand_plus.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/expand_plus.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/i.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/i.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/i.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/i.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/i_bhalf.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/i_bhalf.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/i_bhalf.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/i_bhalf.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/i_half.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/i_half.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/i_half.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/i_half.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/i_long.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/i_long.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/i_long.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/i_long.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/l.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/l.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/l.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/l.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/minus.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/minus.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/minus.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/minus.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/open.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/open.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/open.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/open.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/plus.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/plus.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/plus.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/plus.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/t.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/t.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/t.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/t.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/x.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/x.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/x.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/TreeV3/x.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/bar.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/bar.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/bar.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/bar.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/bdYearBg.1.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/bdYearBg.1.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/bdYearBg.1.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/bdYearBg.1.gif
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/bdYearBg.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/bdYearBg.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/bdYearBg.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/bdYearBg.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/blank.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/blank.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/blank.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/blank.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/clock.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/clock.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/clock.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/clock.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/combo_box_arrow.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/combo_box_arrow.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/combo_box_arrow.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/combo_box_arrow.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dateIcon.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dateIcon.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dateIcon.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dateIcon.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/decrementMonth.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/decrementMonth.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/decrementMonth.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/decrementMonth.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/decrementMonth.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/decrementMonth.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/decrementMonth.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/decrementMonth.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpBg.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpBg.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpBg.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpBg.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpCurveBL.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpCurveBL.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpCurveBL.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpCurveBL.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpCurveBR.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpCurveBR.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpCurveBR.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpCurveBR.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpCurveTL.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpCurveTL.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpCurveTL.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpCurveTL.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpCurveTR.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpCurveTR.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpCurveTR.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpCurveTR.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpHorizLine.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpHorizLine.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpHorizLine.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpHorizLine.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpHorizLineFoot.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpHorizLineFoot.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpHorizLineFoot.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpHorizLineFoot.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpMonthBg.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpMonthBg.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpMonthBg.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpMonthBg.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpMonthBg.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpMonthBg.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpMonthBg.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpMonthBg.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpMonthBg2.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpMonthBg2.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpMonthBg2.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpMonthBg2.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpVertLine.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpVertLine.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpVertLine.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpVertLine.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpYearBg.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpYearBg.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpYearBg.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpYearBg.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpYearBg.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpYearBg.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpYearBg.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dpYearBg.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dropdownButtonsArrow-disabled.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dropdownButtonsArrow-disabled.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dropdownButtonsArrow-disabled.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dropdownButtonsArrow-disabled.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dropdownButtonsArrow.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dropdownButtonsArrow.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dropdownButtonsArrow.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dropdownButtonsArrow.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/floatingPaneClose.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/floatingPaneClose.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/floatingPaneClose.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/floatingPaneClose.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/floatingPaneMaximize.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/floatingPaneMaximize.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/floatingPaneMaximize.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/floatingPaneMaximize.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/floatingPaneMinimize.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/floatingPaneMinimize.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/floatingPaneMinimize.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/floatingPaneMinimize.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/floatingPaneRestore.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/floatingPaneRestore.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/floatingPaneRestore.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/floatingPaneRestore.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/h-bar.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/h-bar.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/h-bar.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/h-bar.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/incrementMonth.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/incrementMonth.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/incrementMonth.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/incrementMonth.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/incrementMonth.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/incrementMonth.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/incrementMonth.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/incrementMonth.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/no.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/no.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/no.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/no.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/no.svg b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/no.svg
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/no.svg
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/no.svg
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/scBackground.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/scBackground.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/scBackground.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/scBackground.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-bg-progress-vert.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-bg-progress-vert.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-bg-progress-vert.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-bg-progress-vert.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-bg-vert.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-bg-vert.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-bg-vert.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-bg-vert.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-bg.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-bg.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-bg.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-bg.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-button-horz.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-button-horz.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-button-horz.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-button-horz.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-button-vert.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-button-vert.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-button-vert.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-button-vert.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-button.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-button.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-button.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider-button.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider_down_arrow.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider_down_arrow.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider_down_arrow.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider_down_arrow.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider_left_arrow.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider_left_arrow.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider_left_arrow.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider_left_arrow.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider_right_arrow.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider_right_arrow.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider_right_arrow.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider_right_arrow.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider_up_arrow.png b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider_up_arrow.png
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider_up_arrow.png
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/slider_up_arrow.png
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaAccordionOff.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaAccordionOff.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaAccordionOff.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaAccordionOff.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaAccordionSelected.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaAccordionSelected.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaAccordionSelected.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaAccordionSelected.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaActive-c.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaActive-c.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaActive-c.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaActive-c.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaActive-l.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaActive-l.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaActive-l.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaActive-l.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaActive-r.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaActive-r.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaActive-r.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaActive-r.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaBarBg.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaBarBg.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaBarBg.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaBarBg.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaButton-c.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaButton-c.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaButton-c.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaButton-c.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaButton-l.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaButton-l.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaButton-l.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaButton-l.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaButton-r.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaButton-r.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaButton-r.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaButton-r.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaDisabled-c.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaDisabled-c.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaDisabled-c.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaDisabled-c.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaDisabled-l.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaDisabled-l.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaDisabled-l.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaDisabled-l.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaDisabled-r.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaDisabled-r.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaDisabled-r.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaDisabled-r.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaMenuBg.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaMenuBg.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaMenuBg.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaMenuBg.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaPressed-c.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaPressed-c.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaPressed-c.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaPressed-c.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaPressed-l.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaPressed-l.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaPressed-l.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaPressed-l.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaPressed-r.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaPressed-r.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaPressed-r.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/soriaPressed-r.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/spinnerDecrement.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/spinnerDecrement.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/spinnerDecrement.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/spinnerDecrement.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/spinnerIncrement.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/spinnerIncrement.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/spinnerIncrement.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/spinnerIncrement.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/submenu_disabled.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/submenu_disabled.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/submenu_disabled.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/submenu_disabled.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/submenu_off.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/submenu_off.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/submenu_off.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/submenu_off.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/submenu_on.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/submenu_on.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/submenu_on.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/submenu_on.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_bot_left.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_bot_left.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_bot_left.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_bot_left.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_bot_left_curr.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_bot_left_curr.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_bot_left_curr.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_bot_left_curr.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_bot_right.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_bot_right.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_bot_right.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_bot_right.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_bot_right_curr.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_bot_right_curr.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_bot_right_curr.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_bot_right_curr.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_close.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_close.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_close.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_close.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_close_h.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_close_h.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_close_h.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_close_h.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_left.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_left.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_left.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_left.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_left_r.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_left_r.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_left_r.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_left_r.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_left_r_curr.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_left_r_curr.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_left_r_curr.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_left_r_curr.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_right.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_right.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_right.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_right.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_right_r.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_right_r.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_right_r.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_right_r.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_right_r_curr.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_right_r_curr.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_right_r_curr.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_right_r_curr.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_top_left.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_top_left.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_top_left.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_top_left.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_top_right.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_top_right.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_top_right.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/tab_top_right.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/timeIcon.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/timeIcon.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/timeIcon.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/timeIcon.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/toolbar-bg.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/toolbar-bg.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/toolbar-bg.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/toolbar-bg.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/transparent.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/transparent.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/transparent.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/transparent.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_blank.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_blank.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_blank.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_blank.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_child.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_child.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_child.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_child.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_expand_minus.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_expand_minus.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_expand_minus.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_expand_minus.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_expand_plus.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_expand_plus.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_expand_plus.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_expand_plus.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_c.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_c.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_c.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_c.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_l.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_l.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_l.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_l.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_p.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_p.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_p.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_p.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_t.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_t.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_t.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_t.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_v.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_v.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_v.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_v.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_x.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_x.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_x.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_x.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_y.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_y.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_y.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_y.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_z.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_z.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_z.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_grid_z.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_node.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_node.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_node.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/treenode_node.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/verticalbar.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/verticalbar.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/verticalbar.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/verticalbar.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/whiteDownArrow.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/whiteDownArrow.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/whiteDownArrow.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/whiteDownArrow.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/incrementMonth.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/incrementMonth.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/incrementMonth.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/incrementMonth.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/incrementWeek.gif b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/incrementWeek.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/incrementWeek.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/incrementWeek.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/richtextframe.html b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/richtextframe.html
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/richtextframe.html
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/richtextframe.html
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/validate.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/validate.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/validate.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/validate.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/vml/Chart.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/widget/vml/Chart.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/vml/Chart.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/widget/vml/Chart.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/xml/Parse.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/xml/Parse.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/xml/Parse.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/xml/Parse.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/xml/XslTransform.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/xml/XslTransform.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/xml/XslTransform.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/xml/XslTransform.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/xml/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/xml/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/xml/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/xml/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/xml/svgUtil.js b/core/src/main/resources/org/apache/struts2/static/dojo/src/xml/svgUtil.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/xml/svgUtil.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/src/xml/svgUtil.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/storage_dialog.swf b/core/src/main/resources/org/apache/struts2/static/dojo/storage_dialog.swf
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/storage_dialog.swf
rename to core/src/main/resources/org/apache/struts2/static/dojo/storage_dialog.swf
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/ComboBox.css b/core/src/main/resources/org/apache/struts2/static/dojo/struts/ComboBox.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/ComboBox.css
rename to core/src/main/resources/org/apache/struts2/static/dojo/struts/ComboBox.css
diff --git a/core/src/main/resources/org/apache/struts2/static/dojo/struts/Util.js b/core/src/main/resources/org/apache/struts2/static/dojo/struts/Util.js
new file mode 100644
index 0000000..975d394
--- /dev/null
+++ b/core/src/main/resources/org/apache/struts2/static/dojo/struts/Util.js
@@ -0,0 +1,51 @@
+dojo.provide("struts.Util");
+
+struts.Util.passThroughArgs = function(args, target){
+  // pass through the extra args, catering for special cases of style and class for html elements
+  for (n in args) {
+    var v = args[n];
+    if (n == "style") {
+      target.style.cssText = v;
+    }else if (n == "class") {
+      target.className = v;
+    }else if (n == "dojoType") {
+    }else if (n == "dojotype") {
+    }else{
+      target[n] = v;
+    }
+  }
+}
+
+struts.Util.passThroughWidgetTagContent = function(widget, frag, target) {
+  // fill in the target with the contents of the widget tag
+  var widgetTag = frag["dojo:" + widget.widgetType.toLowerCase()].nodeRef;
+  if(widgetTag) target.innerHTML = widgetTag.innerHTML;
+}
+
+struts.Util.copyProperties = function(source, target){
+  // pass through the extra args, catering for special cases of style and class for html elements
+  for (key in source) target[key] = source[key];
+}
+
+
+struts.Util.globalCallbackCount = 0;
+
+struts.Util.makeGlobalCallback = function(target) {
+  var name = 'callback_hack_' + struts.Util.globalCallbackCount++;
+  window[name] = target;
+  return name;
+}
+
+struts.Util.setTimeout = function(callback, method, millis) {
+  window.setTimeout(callback + "." + method + "()", millis);
+}
+struts.Util.clearTimeout = function(callback) {
+  window.clearTimeout(callback);
+}
+
+
+struts.Util.nextIdValue = 0;
+
+struts.Util.nextId = function(scope) {
+  return (scope==null?"id":scope) + struts.Util.nextIdValue++;
+}
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/tooltip.gif b/core/src/main/resources/org/apache/struts2/static/dojo/struts/tooltip.gif
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/tooltip.gif
rename to core/src/main/resources/org/apache/struts2/static/dojo/struts/tooltip.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js
similarity index 81%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js
index 8923a6d..b9456e6 100644
--- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js
+++ b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/Bind.js
@@ -23,12 +23,10 @@
   listenTopics : "",
   notifyTopics : "",
   notifyTopicsArray : null,
-  beforeNotifyTopics : "",
-  beforeNotifyTopicsArray : null,
-  afterNotifyTopics : "",
-  afterNotifyTopicsArray : null,
-  errorNotifyTopics : "",
-  errorNotifyTopicsArray : null,
+
+  //callbacks
+  beforeLoading : "",
+  afterLoading : "",
 
   formId : "",
   formFilter : "",
@@ -52,25 +50,9 @@
       }
     }
 
-    //topics
     if(!dojo.string.isBlank(this.notifyTopics)) {
       this.notifyTopicsArray = this.notifyTopics.split(",");
     }
-    
-    //before topics
-    if(!dojo.string.isBlank(this.beforeNotifyTopics)) {
-      this.beforeNotifyTopicsArray = this.beforeNotifyTopics.split(",");
-    }
-    
-    //after topics
-    if(!dojo.string.isBlank(this.afterNotifyTopics)) {
-      this.afterNotifyTopicsArray = this.afterNotifyTopics.split(",");
-    }
-    
-    //error topics
-    if(!dojo.string.isBlank(this.errorNotifyTopics)) {
-      this.errorNotifyTopicsArray = this.errorNotifyTopics.split(",");
-    }
 
     if(!dojo.string.isBlank(this.targets)) {
       //split targets
@@ -125,6 +107,11 @@
      //hide indicator
      dojo.html.hide(this.indicator);
 
+     //post script
+     if(!dojo.string.isBlank(this.afterLoading)) {
+       this.log("Executing " + this.afterLoading);
+       eval(this.afterLoading);
+     }
      //publish topics
      this.notify(data, type, e);
 
@@ -154,9 +141,8 @@
   },
 
   notify : function(data, type, e) {
-    var self = this;
-    //general topics
     if(this.notifyTopicsArray) {
+      var self = this;
       dojo.lang.forEach(this.notifyTopicsArray, function(topic) {
         try {
           dojo.event.topic.publish(topic, data, type, e);
@@ -165,50 +151,39 @@
         }
       });
     }
-    
-    //before, after and error topics
-    var topicsArray = null;
-    switch(type) {
-      case "before":
-        topicsArray = this.beforeNotifyTopicsArray;
-        break;
-      case "load":
-        topicsArray = this.afterNotifyTopicsArray;
-        break;
-      case "error":
-        topicsArray = this.errorNotifyTopicsArray;
-        break;
-    }
-    
-    this.notifyTo(topicsArray, data, type, e);
-  },
-  
-  notifyTo : function(topicsArray, data, e) {
-    var self = this;
-    if(topicsArray) {
-      dojo.lang.forEach(topicsArray, function(topic) {
-        try {
-          dojo.event.topic.publish(topic, data, e);
-        } catch(ex){
-          self.log(ex);
-        }
-      });
-    }
   },
 
   onDownloadStart : function(event) {
+    if(!dojo.string.isBlank(this.beforeLoading)) {
+      //for backward compatibility
+      var data = null;
+      var type = null;
+
+      eval(this.beforeLoading);
+    }
     if(this.showLoading && !dojo.string.isBlank(this.loadingText)) {
       event.text = this.loadingText;
     }
   },
 
   reloadContents : function(evt) {
+
     if(!dojo.string.isBlank(this.handler)) {
       //use custom handler
       this.log("Invoking handler: " + this.handler);
       window[this.handler](this, this.domNode);
     }
     else {
+      //pre script
+      if(!dojo.string.isBlank(this.beforeLoading)) {
+        this.log("Executing " + this.beforeLoading);
+        //backward compatibility
+        var data = null;
+        var type = null;
+
+        eval(this.beforeLoading);
+      }
+
       try {
           var self = this;
           var request = {cancel: false};
@@ -218,7 +193,8 @@
             return;
           }
 
-          //if the href is null, we still publish the notify topics
+          //if the href is null, we still call the "beforeLoading"
+          // and publish the notigy topics
           if(dojo.string.isBlank(this.href)) {
             return;
           }
@@ -252,10 +228,8 @@
          });
       }
       catch(ex) {
-        if(this.showError) {
-          var message = dojo.string.isBlank(this.errorText) ? ex : this.errorText;
-          this.setContent(message);
-        }  
+        var message = dojo.string.isBlank(this.errorText) ? ex : this.errorText;
+        this.setContent(message);
       }
     }
   },
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindAnchor.js b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindAnchor.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindAnchor.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindAnchor.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindDiv.js b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindDiv.js
similarity index 80%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindDiv.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindDiv.js
index 2749b0e..525972d 100644
--- a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindDiv.js
+++ b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/BindDiv.js
@@ -35,13 +35,6 @@
     notifyTopicsArray : null,
     stopTimerListenTopics : "",
     startTimerListenTopics : "",
-    beforeNotifyTopics : "",
-    beforeNotifyTopicsArray : null,
-    afterNotifyTopics : "",
-    afterNotifyTopicsArray : null,
-    errorNotifyTopics : "",
-    errorNotifyTopicsArray : null,
-    
 
     //callbacks
     beforeLoading : "",
@@ -57,6 +50,13 @@
 	parseContent : true,
 
     onDownloadStart : function(event) {
+      if(!dojo.string.isBlank(this.beforeLoading)) {
+        this.log("Executing " + this.beforeLoading);
+        var result = eval(this.beforeLoading);
+        if(result !== null && !result) {
+          return;
+        }
+      }
       if(!this.showLoading) {
         event.returnValue = false;
         return;
@@ -99,35 +99,6 @@
           }
         });
       }
-      
-      //before, after and error topics
-      var topicsArray = null;
-      switch(type) {
-        case "before":
-          topicsArray = this.beforeNotifyTopicsArray;
-          break;
-        case "load":
-          topicsArray = this.afterNotifyTopicsArray;
-          break;
-        case "error":
-          topicsArray = this.errorNotifyTopicsArray;
-          break;
-      }
-    
-      this.notifyTo(topicsArray, data, type, e);
-    },
-    
-    notifyTo : function(topicsArray, data, e) {
-      var self = this;
-      if(topicsArray) {
-        dojo.lang.forEach(topicsArray, function(topic) {
-          try {
-            dojo.event.topic.publish(topic, data, e);
-          } catch(ex){
-            self.log(ex);
-          }
-        });
-      }
     },
 
     postCreate : function(args, frag) {
@@ -189,6 +160,10 @@
         }
       }
 
+      if(!dojo.string.isBlank(this.notifyTopics)) {
+        this.notifyTopicsArray = this.notifyTopics.split(",");
+      }
+
       if(!dojo.string.isBlank(this.stopTimerListenTopics)) {
         this.log("Listening to " + this.stopTimerListenTopics + " to stop timer");
         var stopTopics = this.stopTimerListenTopics.split(",");
@@ -208,26 +183,6 @@
           });
         }
       }
-     
-      //notify topics
-      if(!dojo.string.isBlank(this.notifyTopics)) {
-        this.notifyTopicsArray = this.notifyTopics.split(",");
-      }
-      
-      //before topics
-      if(!dojo.string.isBlank(this.beforeNotifyTopics)) {
-        this.beforeNotifyTopicsArray = this.beforeNotifyTopics.split(",");
-      }
-      
-      //after topics
-      if(!dojo.string.isBlank(this.afterNotifyTopics)) {
-        this.afterNotifyTopicsArray = this.afterNotifyTopics.split(",");
-      }
-      
-      //error topics
-      if(!dojo.string.isBlank(this.errorNotifyTopics)) {
-        this.errorNotifyTopicsArray = this.errorNotifyTopics.split(",");
-      }
     },
 
     _downloadExternalContent: function(url, useCache) {
@@ -260,7 +215,12 @@
           //hide indicator
           dojo.html.hide(self.indicator);
 
-          self.notify(data, type, e);
+          if(!dojo.string.isBlank(self.afterLoading)) {
+            self.log("Executing " + self.afterLoading);
+            eval(self.afterLoading);
+          }
+
+          self.notify(data, type, null);
 
           if(type == "load") {
             self.onDownloadEnd.call(self, url, data);
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/ComboBox.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/StrutsTimePicker.js b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/StrutsTimePicker.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/StrutsTimePicker.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/StrutsTimePicker.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/__package__.js b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/__package__.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/struts/widget/__package__.js
rename to core/src/main/resources/org/apache/struts2/static/dojo/struts/widget/__package__.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dateIcon.gif b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widgets/dateIcon.gif
similarity index 100%
copy from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dateIcon.gif
copy to core/src/main/resources/org/apache/struts2/static/dojo/struts/widgets/dateIcon.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/bdYearBg.1.gif b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widgets/dropdowncontainer.css
similarity index 100%
copy from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/bdYearBg.1.gif
copy to core/src/main/resources/org/apache/struts2/static/dojo/struts/widgets/dropdowncontainer.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dateIcon.gif b/core/src/main/resources/org/apache/struts2/static/dojo/struts/widgets/timeIcon.gif
similarity index 100%
copy from plugins/dojo/src/main/resources/org/apache/struts2/static/dojo/src/widget/templates/images/dateIcon.gif
copy to core/src/main/resources/org/apache/struts2/static/dojo/struts/widgets/timeIcon.gif
Binary files differ
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/niftycorners/layout.js b/core/src/main/resources/org/apache/struts2/static/niftycorners/layout.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/niftycorners/layout.js
rename to core/src/main/resources/org/apache/struts2/static/niftycorners/layout.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/niftycorners/nifty.js b/core/src/main/resources/org/apache/struts2/static/niftycorners/nifty.js
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/niftycorners/nifty.js
rename to core/src/main/resources/org/apache/struts2/static/niftycorners/nifty.js
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/niftycorners/niftyCorners.css b/core/src/main/resources/org/apache/struts2/static/niftycorners/niftyCorners.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/niftycorners/niftyCorners.css
rename to core/src/main/resources/org/apache/struts2/static/niftycorners/niftyCorners.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/niftycorners/niftyPrint.css b/core/src/main/resources/org/apache/struts2/static/niftycorners/niftyPrint.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/niftycorners/niftyPrint.css
rename to core/src/main/resources/org/apache/struts2/static/niftycorners/niftyPrint.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/niftycorners/niftylayout.css b/core/src/main/resources/org/apache/struts2/static/niftycorners/niftylayout.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/niftycorners/niftylayout.css
rename to core/src/main/resources/org/apache/struts2/static/niftycorners/niftylayout.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/tabs.css b/core/src/main/resources/org/apache/struts2/static/tabs.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/tabs.css
rename to core/src/main/resources/org/apache/struts2/static/tabs.css
diff --git a/plugins/dojo/src/main/resources/org/apache/struts2/static/tree.css b/core/src/main/resources/org/apache/struts2/static/tree.css
similarity index 100%
rename from plugins/dojo/src/main/resources/org/apache/struts2/static/tree.css
rename to core/src/main/resources/org/apache/struts2/static/tree.css
diff --git a/core/src/main/resources/struts-default.xml b/core/src/main/resources/struts-default.xml
index 6b9f394..f3c25b6 100644
--- a/core/src/main/resources/struts-default.xml
+++ b/core/src/main/resources/struts-default.xml
@@ -35,7 +35,6 @@
 
     <bean type="com.opensymphony.xwork2.util.XWorkConverter" name="xwork1" class="com.opensymphony.xwork2.util.XWorkConverter" />
     <bean type="com.opensymphony.xwork2.util.XWorkConverter" name="struts" class="com.opensymphony.xwork2.util.AnnotationXWorkConverter" />
-
     <bean type="com.opensymphony.xwork2.TextProvider" name="xwork1" class="com.opensymphony.xwork2.TextProviderSupport" />
     <bean type="com.opensymphony.xwork2.TextProvider" name="struts" class="com.opensymphony.xwork2.TextProviderSupport" />
 
@@ -61,13 +60,18 @@
             <result-type name="velocity" class="org.apache.struts2.dispatcher.VelocityResult"/>
             <result-type name="xslt" class="org.apache.struts2.views.xslt.XSLTResult"/>
             <result-type name="plainText" class="org.apache.struts2.dispatcher.PlainTextResult" />
+            <!-- Deprecated name form scheduled for removal in Struts 2.1.0. The camelCase versions are preferred. See ww-1707 -->
+            <result-type name="redirect-action" class="org.apache.struts2.dispatcher.ServletActionRedirectResult"/>
+            <result-type name="plaintext" class="org.apache.struts2.dispatcher.PlainTextResult" />
         </result-types>
 
+
         <interceptors>
             <interceptor name="alias" class="com.opensymphony.xwork2.interceptor.AliasInterceptor"/>
             <interceptor name="autowiring" class="com.opensymphony.xwork2.spring.interceptor.ActionAutowiringInterceptor"/>
             <interceptor name="chain" class="com.opensymphony.xwork2.interceptor.ChainingInterceptor"/>
             <interceptor name="conversionError" class="org.apache.struts2.interceptor.StrutsConversionErrorInterceptor"/>
+            <interceptor name="cookie" class="org.apache.struts2.interceptor.CookieInterceptor"/>
             <interceptor name="createSession" class="org.apache.struts2.interceptor.CreateSessionInterceptor" />
             <interceptor name="debugging" class="org.apache.struts2.interceptor.debugging.DebuggingInterceptor" />
             <interceptor name="externalRef" class="com.opensymphony.xwork2.interceptor.ExternalReferencesInterceptor"/>
@@ -225,6 +229,14 @@
                 </interceptor-ref>
             </interceptor-stack>
 
+            <!-- Deprecated name forms scheduled for removal in Struts 2.1.0. The camelCase versions are preferred. See ww-1707 -->
+            <interceptor name="external-ref" class="com.opensymphony.xwork2.interceptor.ExternalReferencesInterceptor"/>
+            <interceptor name="model-driven" class="com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor"/>
+            <interceptor name="static-params" class="com.opensymphony.xwork2.interceptor.StaticParametersInterceptor"/>
+            <interceptor name="scoped-model-driven" class="com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor"/>
+            <interceptor name="servlet-config" class="org.apache.struts2.interceptor.ServletConfigInterceptor"/>
+            <interceptor name="token-session" class="org.apache.struts2.interceptor.TokenSessionStoreInterceptor"/>
+
        </interceptors>
 
         <default-interceptor-ref name="defaultStack"/>
diff --git a/plugins/dojo/src/main/resources/template/ajax/a.ftl b/core/src/main/resources/template/ajax/a.ftl
similarity index 70%
rename from plugins/dojo/src/main/resources/template/ajax/a.ftl
rename to core/src/main/resources/template/ajax/a.ftl
index 02e2e7e..236716b 100644
--- a/plugins/dojo/src/main/resources/template/ajax/a.ftl
+++ b/core/src/main/resources/template/ajax/a.ftl
@@ -1,5 +1,4 @@
 <a dojoType="struts:BindAnchor"
   <#include "/${parameters.templateDir}/ajax/ajax-common.ftl" />
   <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
-  <#include "/${parameters.templateDir}/simple/common-attributes.ftl" />
 >
diff --git a/plugins/dojo/src/main/resources/template/ajax/ajax-common.ftl b/core/src/main/resources/template/ajax/ajax-common.ftl
similarity index 84%
rename from plugins/dojo/src/main/resources/template/ajax/ajax-common.ftl
rename to core/src/main/resources/template/ajax/ajax-common.ftl
index fe45ad0..e158904 100644
--- a/plugins/dojo/src/main/resources/template/ajax/ajax-common.ftl
+++ b/core/src/main/resources/template/ajax/ajax-common.ftl
@@ -43,14 +43,11 @@
    <#if parameters.notifyTopics?if_exists != "">
     notifyTopics="${parameters.notifyTopics?html}"<#rt/>
   </#if>
-  <#if parameters.beforeNotifyTopics?if_exists != "">
-    beforeNotifyTopics="${parameters.beforeNotifyTopics?html}"<#rt/>
+  <#if parameters.beforeLoading?if_exists != "">
+    beforeLoading="${parameters.beforeLoading?html}"<#rt/>
   </#if>
-  <#if parameters.afterNotifyTopics?if_exists != "">
-    afterNotifyTopics="${parameters.afterNotifyTopics?html}"<#rt/>
-  </#if>
-  <#if parameters.errorNotifyTopics?if_exists != "">
-    errorNotifyTopics="${parameters.errorNotifyTopics?html}"<#rt/>
+  <#if parameters.afterLoading?if_exists != "">
+    afterLoading="${parameters.afterLoading?html}"<#rt/>
   </#if>
   <#if parameters.targets?if_exists != "">
     targets="${parameters.targets?html}"<#rt/>
diff --git a/plugins/dojo/src/main/resources/template/ajax/autocompleter.ftl b/core/src/main/resources/template/ajax/autocompleter.ftl
similarity index 68%
rename from plugins/dojo/src/main/resources/template/ajax/autocompleter.ftl
rename to core/src/main/resources/template/ajax/autocompleter.ftl
index 62a6d16..b30c8c2 100644
--- a/plugins/dojo/src/main/resources/template/ajax/autocompleter.ftl
+++ b/core/src/main/resources/template/ajax/autocompleter.ftl
@@ -1,10 +1,4 @@
-<#include "/${parameters.templateDir}/ajax/controlheader.ftl" />

-<#if parameters.href?exists>

-  <input dojoType="struts:ComboBox"<#rt/>

-  dataUrl="${parameters.href}"<#rt/>

-<#else>

-  <select dojoType="struts:ComboBox"<#rt/>

-</#if>

+<input dojoType="struts:ComboBox"<#rt/>

 <#if parameters.id?if_exists != "">

  id="${parameters.id?html}"<#rt/>

 </#if>

@@ -14,6 +8,9 @@
 <#if parameters.cssStyle?if_exists != "">

  style="${parameters.cssStyle?html}"<#rt/>

 </#if>

+<#if parameters.href?if_exists != "">

+ dataUrl="${parameters.href}"<#rt/>

+</#if>

 <#if parameters.forceValidOption?exists>

  forceValidOption="${parameters.forceValidOption?string?html}"<#rt/>

 </#if>

@@ -93,38 +90,7 @@
  dataFieldName="${parameters.dataFieldName?html}"

 </#if>

 <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />

-<#include "/${parameters.templateDir}/simple/common-attributes.ftl" />

 >

-<#if parameters.list?exists>

-	<#if (parameters.headerKey?exists && parameters.headerValue?exists)>

-		<option value="${parameters.headerKey?html}">${parameters.headerValue?html}</option>

-	</#if>

-	<#if parameters.emptyOption?default(false)>

-	    <option value=""></option>

-	</#if>

-    <@s.iterator value="parameters.list">

-    <#if parameters.listKey?exists>

-    	<#assign tmpListKey = stack.findString(parameters.listKey) />

-    <#else>

-    	<#assign tmpListKey = stack.findString('top') />

-    </#if>

-    <#if parameters.listValue?exists>

-    	<#assign tmpListValue = stack.findString(parameters.listValue) />

-    <#else>

-    	<#assign tmpListValue = stack.findString('top') />

-    </#if>

-    <option value="${tmpListKey?html}"<#rt/>

-        <#if (parameters.nameValue?exists && parameters.nameValue == tmpListKey)>

- selected="selected"<#rt/>

-        </#if>

-    ><#t/>

-            ${tmpListValue?html}<#t/>

-    </option><#lt/>

-    </@s.iterator>

-  </select>    

-</#if>

-<#if parameters.label?if_exists != "">

-	<#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" />

-</#if>	

+

 

 

diff --git a/plugins/dojo/src/main/resources/template/ajax/controlheader.ftl b/core/src/main/resources/template/ajax/controlheader.ftl
similarity index 67%
rename from plugins/dojo/src/main/resources/template/ajax/controlheader.ftl
rename to core/src/main/resources/template/ajax/controlheader.ftl
index 1ac8ce3..505348e 100644
--- a/plugins/dojo/src/main/resources/template/ajax/controlheader.ftl
+++ b/core/src/main/resources/template/ajax/controlheader.ftl
@@ -1,6 +1,4 @@
-<#if parameters.label?if_exists != "">
-	<#include "/${parameters.templateDir}/xhtml/controlheader.ftl" />
-</#if>
+<#--include "/${parameters.templateDir}/xhtml/controlheader-core.ftl" /-->
 <#if parameters.form?exists && parameters.form.validate?default(false) == true>
 	<#-- can't mutate the data model in freemarker -->
     <#if parameters.onblur?exists>
@@ -9,4 +7,5 @@
         ${tag.addParameter('onblur', "validate(this);")}
     </#if>
 </#if>
+<#include "/${parameters.templateDir}/${themeProperties.parent}/controlheader.ftl" />
     
\ No newline at end of file
diff --git a/plugins/dojo/src/main/resources/template/ajax/div-close.ftl b/core/src/main/resources/template/ajax/div-close.ftl
similarity index 100%
rename from plugins/dojo/src/main/resources/template/ajax/div-close.ftl
rename to core/src/main/resources/template/ajax/div-close.ftl
diff --git a/plugins/dojo/src/main/resources/template/ajax/div.ftl b/core/src/main/resources/template/ajax/div.ftl
similarity index 92%
rename from plugins/dojo/src/main/resources/template/ajax/div.ftl
rename to core/src/main/resources/template/ajax/div.ftl
index 7d1338d..3d1f616 100644
--- a/plugins/dojo/src/main/resources/template/ajax/div.ftl
+++ b/core/src/main/resources/template/ajax/div.ftl
@@ -22,5 +22,4 @@
   </#if>
   <#include "/${parameters.templateDir}/ajax/ajax-common.ftl" />
   <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
-  <#include "/${parameters.templateDir}/simple/common-attributes.ftl" />
 >
diff --git a/plugins/dojo/src/main/resources/template/ajax/dojoRequire.js b/core/src/main/resources/template/ajax/dojoRequire.js
similarity index 100%
rename from plugins/dojo/src/main/resources/template/ajax/dojoRequire.js
rename to core/src/main/resources/template/ajax/dojoRequire.js
diff --git a/plugins/dojo/src/main/resources/template/ajax/form-close.ftl b/core/src/main/resources/template/ajax/form-close.ftl
similarity index 100%
rename from plugins/dojo/src/main/resources/template/ajax/form-close.ftl
rename to core/src/main/resources/template/ajax/form-close.ftl
diff --git a/plugins/dojo/src/main/resources/template/ajax/form.ftl b/core/src/main/resources/template/ajax/form.ftl
similarity index 77%
rename from plugins/dojo/src/main/resources/template/ajax/form.ftl
rename to core/src/main/resources/template/ajax/form.ftl
index 25a72f9..940ae68 100644
--- a/plugins/dojo/src/main/resources/template/ajax/form.ftl
+++ b/core/src/main/resources/template/ajax/form.ftl
@@ -3,7 +3,7 @@
 <script type="text/javascript" src="${base}/dwr/interface/validator.js"></script>
 <script type="text/javascript" src="${base}/dwr/engine.js"></script>
 <script type="text/javascript" src="${base}/struts/ajax/validation.js"></script>
-<script type="text/javascript" src="${base}/struts/ajax/validation.js"></script>
+<script type="text/javascript" src="${base}/struts/${themeProperties.parent}/validation.js"></script>
 </#if>
 <form<#rt/>
 <#if parameters.namespace?exists>
@@ -38,3 +38,10 @@
 </#if>
  ${tag.addParameter("ajaxSubmit", "true")}
 >
+<#include "/${parameters.templateDir}/${themeProperties.parent}/control.ftl" />
+<#--
+<table class="${parameters.cssClass?default('wwFormTable')?html}"<#rt/>
+<#if parameters.cssStyle?exists> style="${parameters.cssStyle?html}"<#rt/>
+</#if>
+>
+-->
diff --git a/core/src/main/resources/template/ajax/head.ftl b/core/src/main/resources/template/ajax/head.ftl
new file mode 100644
index 0000000..2d4bbb1
--- /dev/null
+++ b/core/src/main/resources/template/ajax/head.ftl
@@ -0,0 +1,6 @@
+<#--include "/${parameters.templateDir}/xhtml/head.ftl" /-->
+<#include "/${parameters.templateDir}/${themeProperties.parent}/head.ftl" />
+<script type="text/javascript"
+        src="<@s.url value='/struts/ajax/dojoRequire.js' includeParams='none' encode='false'  />"></script>
+<script type="text/javascript"
+        src="<@s.url value='/struts/CommonFunctions.js' includeParams='none' encode='false'/>"></script>
diff --git a/plugins/dojo/src/main/resources/template/ajax/submit.ftl b/core/src/main/resources/template/ajax/submit.ftl
similarity index 86%
rename from plugins/dojo/src/main/resources/template/ajax/submit.ftl
rename to core/src/main/resources/template/ajax/submit.ftl
index b35eda1..8f24203 100644
--- a/plugins/dojo/src/main/resources/template/ajax/submit.ftl
+++ b/core/src/main/resources/template/ajax/submit.ftl
@@ -1,3 +1,9 @@
+<tr>
+    <td colspan="2"><div <#rt/>
+<#if parameters.align?exists>
+    align="${parameters.align?html}"<#t/>
+</#if>
+><#t/>
 <#if parameters.type?exists && parameters.type=="button">
   <input type="button" dojoType="struts:Bind" event="onclick"<#rt/>
   <#include "/${parameters.templateDir}/ajax/ajax-common.ftl"/>
@@ -30,3 +36,6 @@
     <#include "/${parameters.templateDir}/simple/common-attributes.ftl" />
   />
 </#if>
+
+</div><#t/>
+<#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" />
diff --git a/plugins/dojo/src/main/resources/template/ajax/tab-close.ftl b/core/src/main/resources/template/ajax/tab-close.ftl
similarity index 100%
rename from plugins/dojo/src/main/resources/template/ajax/tab-close.ftl
rename to core/src/main/resources/template/ajax/tab-close.ftl
diff --git a/plugins/dojo/src/main/resources/template/ajax/tab.ftl b/core/src/main/resources/template/ajax/tab.ftl
similarity index 100%
rename from plugins/dojo/src/main/resources/template/ajax/tab.ftl
rename to core/src/main/resources/template/ajax/tab.ftl
diff --git a/plugins/dojo/src/main/resources/template/ajax/textarea.ftl b/core/src/main/resources/template/ajax/textarea.ftl
similarity index 82%
rename from plugins/dojo/src/main/resources/template/ajax/textarea.ftl
rename to core/src/main/resources/template/ajax/textarea.ftl
index 1ef01a0..2804955 100644
--- a/plugins/dojo/src/main/resources/template/ajax/textarea.ftl
+++ b/core/src/main/resources/template/ajax/textarea.ftl
@@ -1,3 +1,5 @@
+<#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
+
 <textarea<#rt/>
  dojoType="Editor2"
 <#if parameters.editorControls?exists>
@@ -37,4 +39,7 @@
 <#if parameters.nameValue?exists>
 <@s.property value="parameters.nameValue"/><#t/>
 </#if>
-</textarea>
\ No newline at end of file
+</textarea>
+
+<#--include "/${parameters.templateDir}/xhtml/controlfooter.ftl" /-->
+<#include "/${parameters.templateDir}/${themeProperties.parent}/controlfooter.ftl" />
diff --git a/core/src/main/resources/template/ajax/theme.properties b/core/src/main/resources/template/ajax/theme.properties
new file mode 100644
index 0000000..1b04afa
--- /dev/null
+++ b/core/src/main/resources/template/ajax/theme.properties
@@ -0,0 +1 @@
+parent=xhtml
diff --git a/plugins/dojo/src/main/resources/template/ajax/tree-close.ftl b/core/src/main/resources/template/ajax/tree-close.ftl
similarity index 100%
rename from plugins/dojo/src/main/resources/template/ajax/tree-close.ftl
rename to core/src/main/resources/template/ajax/tree-close.ftl
diff --git a/plugins/dojo/src/main/resources/template/ajax/tree.ftl b/core/src/main/resources/template/ajax/tree.ftl
similarity index 100%
rename from plugins/dojo/src/main/resources/template/ajax/tree.ftl
rename to core/src/main/resources/template/ajax/tree.ftl
diff --git a/plugins/dojo/src/main/resources/template/ajax/treenode-close.ftl b/core/src/main/resources/template/ajax/treenode-close.ftl
similarity index 100%
rename from plugins/dojo/src/main/resources/template/ajax/treenode-close.ftl
rename to core/src/main/resources/template/ajax/treenode-close.ftl
diff --git a/plugins/dojo/src/main/resources/template/ajax/treenode-include.ftl b/core/src/main/resources/template/ajax/treenode-include.ftl
similarity index 100%
rename from plugins/dojo/src/main/resources/template/ajax/treenode-include.ftl
rename to core/src/main/resources/template/ajax/treenode-include.ftl
diff --git a/plugins/dojo/src/main/resources/template/ajax/treenode.ftl b/core/src/main/resources/template/ajax/treenode.ftl
similarity index 100%
rename from plugins/dojo/src/main/resources/template/ajax/treenode.ftl
rename to core/src/main/resources/template/ajax/treenode.ftl
diff --git a/plugins/dojo/src/main/resources/template/ajax/validation.js b/core/src/main/resources/template/ajax/validation.js
similarity index 100%
rename from plugins/dojo/src/main/resources/template/ajax/validation.js
rename to core/src/main/resources/template/ajax/validation.js
diff --git a/core/src/main/resources/template/css_xhtml/datetimepicker.ftl b/core/src/main/resources/template/css_xhtml/datetimepicker.ftl
new file mode 100644
index 0000000..7cb38ef
--- /dev/null
+++ b/core/src/main/resources/template/css_xhtml/datetimepicker.ftl
@@ -0,0 +1,4 @@
+<#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
+<#include "/${parameters.templateDir}/simple/datetimepicker.ftl" />
+<#include "/${parameters.templateDir}/css_xhtml/controlfooter.ftl" />
+<#nt/>
\ No newline at end of file
diff --git a/core/src/main/resources/template/simple/a-close.ftl b/core/src/main/resources/template/simple/a-close.ftl
index 937be08..0c2a417 100644
--- a/core/src/main/resources/template/simple/a-close.ftl
+++ b/core/src/main/resources/template/simple/a-close.ftl
@@ -1 +1 @@
-</a>
+</a><#rt/>
diff --git a/core/src/main/resources/template/simple/a.ftl b/core/src/main/resources/template/simple/a.ftl
index e46d54b..1b41b31 100644
--- a/core/src/main/resources/template/simple/a.ftl
+++ b/core/src/main/resources/template/simple/a.ftl
@@ -19,4 +19,4 @@
 </#if>
 <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
 <#include "/${parameters.templateDir}/simple/common-attributes.ftl" />
->
+><#rt/>
diff --git a/core/src/main/resources/template/simple/common-attributes.ftl b/core/src/main/resources/template/simple/common-attributes.ftl
index 1a04d8a..613f3df 100644
--- a/core/src/main/resources/template/simple/common-attributes.ftl
+++ b/core/src/main/resources/template/simple/common-attributes.ftl
@@ -1,3 +1,3 @@
 <#if parameters.accesskey?exists>
- accesskey="${parameters.accesskey?html}" 
-</#if>
\ No newline at end of file
+ accesskey="${parameters.accesskey?html}"<#rt/>
+</#if>
diff --git a/core/src/main/resources/template/simple/dojoRequire.js b/core/src/main/resources/template/simple/dojoRequire.js
new file mode 100644
index 0000000..2409ca9
--- /dev/null
+++ b/core/src/main/resources/template/simple/dojoRequire.js
@@ -0,0 +1,2 @@
+dojo.hostenv.writeIncludes(); // not needed, but allows the Venkman debugger to work with the includes
+
diff --git a/core/src/main/resources/template/simple/form-close.ftl b/core/src/main/resources/template/simple/form-close.ftl
index ace4125..8cc8f59 100644
--- a/core/src/main/resources/template/simple/form-close.ftl
+++ b/core/src/main/resources/template/simple/form-close.ftl
@@ -86,5 +86,5 @@
 --><#t/>
 <#if (parameters.hasTooltip?default(false))><#t/>
 	<#lt/><!-- javascript that is needed for tooltips -->
-	<#lt/><script type="text/javascript">dojo.require("dojo.widget.html.Tooltip");dojo.require("dojo.fx.html");</script>
+	<#lt/><script type="text/javascript">dojo.require("dojo.widget.Tooltip");dojo.require("dojo.fx.html");</script>
 </#if><#t/>
diff --git a/core/src/main/resources/template/simple/head.ftl b/core/src/main/resources/template/simple/head.ftl
index e69de29..1cd7d24 100644
--- a/core/src/main/resources/template/simple/head.ftl
+++ b/core/src/main/resources/template/simple/head.ftl
@@ -0,0 +1,13 @@
+<script type="text/javascript">
+    // Dojo configuration
+    djConfig = {
+        baseRelativePath: "<@s.url includeParams='none' value='/struts/dojo' includeParams="none" encode='false'/>",
+        isDebug: ${parameters.debug?default(false)},
+        bindEncoding: "${parameters.encoding}",
+        debugAtAllCosts: true // not needed, but allows the Venkman debugger to work with the includes
+    };
+</script>
+<script type="text/javascript"
+        src="<@s.url includeParams='none' value='/struts/dojo/dojo.js' includeParams="none" encode='false'/>"></script>
+<script type="text/javascript"
+        src="<@s.url includeParams='none' value='/struts/simple/dojoRequire.js' includeParams="none" encode='false'/>"></script>
diff --git a/core/src/main/resources/template/simple/inputtransferselect.ftl b/core/src/main/resources/template/simple/inputtransferselect.ftl
index 497b388..07ddd26 100644
--- a/core/src/main/resources/template/simple/inputtransferselect.ftl
+++ b/core/src/main/resources/template/simple/inputtransferselect.ftl
@@ -1,5 +1,5 @@
 <#if !stack.findValue("#inputtransferselect_js_included")?exists><#t/>
-	<script language="javascript" src="<@s.url value="/struts/inputtransferselect.js" encode='false' includeParams='none'/>"></script>
+	<script type="text/javascript" src="<@s.url value="/struts/inputtransferselect.js" encode='false' includeParams='none'/>"></script>
 	<#assign temporaryVariable = stack.setValue("#inputtransferselect_js_included", "true") /><#t/>
 </#if><#t/>
 <table border="0">
diff --git a/core/src/main/resources/template/simple/optiontransferselect.ftl b/core/src/main/resources/template/simple/optiontransferselect.ftl
index 37ee61c..000a4c4 100644
--- a/core/src/main/resources/template/simple/optiontransferselect.ftl
+++ b/core/src/main/resources/template/simple/optiontransferselect.ftl
@@ -1,5 +1,5 @@
 <#if !stack.findValue("#optiontransferselect_js_included")?exists><#t/>
-	<script language="javascript" src="<@s.url value="/struts/optiontransferselect.js" encode='false' includeParams='none'/>"></script>
+	<script type="text/javascript" src="<@s.url value="/struts/optiontransferselect.js" encode='false' includeParams='none'/>"></script>
 	<#assign temporaryVariable = stack.setValue("#optiontransferselect_js_included", "true") /><#t/>
 </#if><#t/>
 <table border="0">
diff --git a/plugins/dojo/src/main/resources/template/ajax/tabbedpanel-close.ftl b/core/src/main/resources/template/simple/tabbedpanel-close.ftl
similarity index 100%
rename from plugins/dojo/src/main/resources/template/ajax/tabbedpanel-close.ftl
rename to core/src/main/resources/template/simple/tabbedpanel-close.ftl
diff --git a/plugins/dojo/src/main/resources/template/ajax/tabbedpanel.ftl b/core/src/main/resources/template/simple/tabbedpanel.ftl
similarity index 100%
rename from plugins/dojo/src/main/resources/template/ajax/tabbedpanel.ftl
rename to core/src/main/resources/template/simple/tabbedpanel.ftl
diff --git a/core/src/main/resources/template/simple/updownselect.ftl b/core/src/main/resources/template/simple/updownselect.ftl
index c52a401..5782c99 100644
--- a/core/src/main/resources/template/simple/updownselect.ftl
+++ b/core/src/main/resources/template/simple/updownselect.ftl
@@ -1,5 +1,5 @@
 <#if !stack.findValue("#optiontransferselect_js_included")?exists><#t/>
-	<script language="javascript" src="<@s.url value="/struts/optiontransferselect.js" encode='false' includeParams='none'/>"></script>
+	<script type="text/javascript" src="<@s.url value="/struts/optiontransferselect.js" encode='false' includeParams='none'/>"></script>
 	<#assign temporaryVariable = stack.setValue("#optiontransferselect_js_included", "true") /><#t/>
 </#if><#t/>
 <table>
diff --git a/core/src/main/resources/template/xhtml/autocompleter.ftl b/core/src/main/resources/template/xhtml/autocompleter.ftl
new file mode 100644
index 0000000..0bd1028
--- /dev/null
+++ b/core/src/main/resources/template/xhtml/autocompleter.ftl
@@ -0,0 +1,3 @@
+<#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
+<#include "/${parameters.templateDir}/${themeProperties.parent}/autocompleter.ftl" />
+<#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" />
diff --git a/core/src/main/resources/template/xhtml/datepicker.ftl b/core/src/main/resources/template/xhtml/datepicker.ftl
new file mode 100644
index 0000000..c5b9b40
--- /dev/null
+++ b/core/src/main/resources/template/xhtml/datepicker.ftl
@@ -0,0 +1,4 @@
+<#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
+<#include "/${parameters.templateDir}/simple/datepicker.ftl" />
+<#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" />
+
diff --git a/core/src/main/resources/template/xhtml/datetimepicker.ftl b/core/src/main/resources/template/xhtml/datetimepicker.ftl
new file mode 100644
index 0000000..cbcbaae
--- /dev/null
+++ b/core/src/main/resources/template/xhtml/datetimepicker.ftl
@@ -0,0 +1,4 @@
+<#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
+<#include "/${parameters.templateDir}/simple/datetimepicker.ftl" />
+<#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" />
+
diff --git a/core/src/main/resources/template/xhtml/form-close-validate.ftl b/core/src/main/resources/template/xhtml/form-close-validate.ftl
index 3c91368..3b48e58 100644
--- a/core/src/main/resources/template/xhtml/form-close-validate.ftl
+++ b/core/src/main/resources/template/xhtml/form-close-validate.ftl
@@ -53,7 +53,7 @@
                     addError(field, error);
                     errors = true;
                 }
-            }
+            } 
             <#elseif validator.validatorType = "regex">
             if (field.value != null && !field.value.match("${validator.expression?js_string}")) {
                 addError(field, error);
diff --git a/core/src/main/resources/template/xhtml/timepicker.ftl b/core/src/main/resources/template/xhtml/timepicker.ftl
new file mode 100644
index 0000000..3a905d4
--- /dev/null
+++ b/core/src/main/resources/template/xhtml/timepicker.ftl
@@ -0,0 +1,4 @@
+<#include "/${parameters.templateDir}/${parameters.theme}/controlheader.ftl" />
+<#include "/${parameters.templateDir}/simple/timepicker.ftl" />
+<#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" />
+
diff --git a/core/src/site/confluence/ww-template-autoexport.html b/core/src/site/confluence/ww-template-autoexport.html
deleted file mode 100644
index 18cdb5d..0000000
--- a/core/src/site/confluence/ww-template-autoexport.html
+++ /dev/null
@@ -1,155 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

-<!--

-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.

--->

-<html>

-  <head>

-    <link type="text/css" rel="stylesheet" href="$stylesheet">

-    <style type="text/css">

-      .footer {

-        background-image:      url('$confluenceUri/images/border/border_bottom.gif');

-        background-repeat:     repeat-x;

-        background-position:   left top;

-        padding-top:           4px;

-        color:                 #666;

-      }

-    </style>

-    <script type="text/javascript" language="javascript">

-      var hide = null;

-      var show = null;

-      var children = null;

-

-      function init() {

-        /* Search form initialization */

-        var form = document.forms['search'];

-        if (form != null) {

-          form.elements['domains'].value = location.hostname;

-          form.elements['sitesearch'].value = location.hostname;

-        }

-

-        /* Children initialization */

-        hide = document.getElementById('hide');

-        show = document.getElementById('show');

-        children = document.all != null ?

-                   document.all['children'] :

-                   document.getElementById('children');

-        if (children != null) {

-          children.style.display = 'none';

-          show.style.display = 'inline';

-          hide.style.display = 'none';

-        }

-      }

-

-      function showChildren() {

-        children.style.display = 'block';

-        show.style.display = 'none';

-        hide.style.display = 'inline';

-      }

-

-      function hideChildren() {

-        children.style.display = 'none';

-        show.style.display = 'inline';

-        hide.style.display = 'none';

-      }

-    </script>

-    <title>$page.title</title>

-  </head>

-  <body onload="init()">

-    <table border="0" cellpadding="2" cellspacing="0" width="100%">

-      <tr class="topBar">

-        <td align="left" valign="middle" class="topBarDiv" align="left" nowrap>

-          &nbsp;$autoexport.breadcrumbs($page)

-        </td>

-        <td align="right" valign="middle" nowrap>

-          <form name="search" action="http://www.google.com/search" method="get">

-            <input type="hidden" name="ie" value="UTF-8" />

-            <input type="hidden" name="oe" value="UTF-8" />

-            <input type="hidden" name="domains" value="" />

-            <input type="hidden" name="sitesearch" value="" />

-            <input type="text" name="q" maxlength="255" value="" />

-            <input type="submit" name="btnG" value="Google Search" />

-          </form>

-        </td>

-      </tr>

-    </table>

-

-    <div id="PageContent">

-      <div class="pageheader" style="padding: 6px 0px 0px 0px;">

-        <!-- We'll enable this once we figure out how to access (and save) the logo resource -->

-        <!--img src="/wiki/images/confluence_logo.gif" style="float: left; margin: 4px 4px 4px 10px;" border="0"-->

-        <div style="margin: 0px 10px 0px 10px" class="smalltext">$page.space.name</div>

-        <div style="margin: 0px 10px 8px 10px"  class="pagetitle">$page.title</div>

-

-        <div class="greynavbar" align="right" style="padding: 2px 10px; margin: 0px;">

-          <a href="$confluenceUri/pages/editpage.action?pageId=$page.id">

-            <img src="$confluenceUri/images/icons/notep_16.gif"

-                 height="16" width="16" border="0" align="absmiddle" title="Edit Page"></a>

-            <a href="$confluenceUri/pages/editpage.action?pageId=$page.id">Edit Page</a>

-          &nbsp;

-          <a href="$confluenceUri/pages/listpages.action?key=$page.spaceKey">

-            <img src="$confluenceUri/images/icons/browse_space.gif"

-                 height="16" width="16" border="0" align="absmiddle" title="Browse Space"></a>

-            <a href="$confluenceUri/pages/listpages.action?key=$page.spaceKey">Browse Space</a>

-          &nbsp;

-          <a href="$confluenceUri/pages/createpage.action?spaceKey=$page.spaceKey&fromPageId=$page.id">

-            <img src="$confluenceUri/images/icons/add_page_16.gif"

-                 height="16" width="16" border="0" align="absmiddle" title="Add Page"></a>

-          <a href="$confluenceUri/pages/createpage.action?spaceKey=$page.spaceKey&fromPageId=$page.id">Add Page</a>

-          &nbsp;

-          <a href="$confluenceUri/pages/createblogpost.action?spaceKey=$page.spaceKey&fromPageId=$page.id">

-            <img src="$confluenceUri/images/icons/add_blogentry_16.gif"

-                 height="16" width="16" border="0" align="absmiddle" title="Add News"></a>

-          <a href="$confluenceUri/pages/createblogpost.action?spaceKey=$page.spaceKey&fromPageId=$page.id">Add News</a>

-        </div>

-      </div>

-      <div class="pagesubheading" style="margin: 0px 10px 0px 10px;">

-        #editReport()

-      </div>

-

-      <div class="pagecontent">

-        <div class="wiki-content">

-          $body

-        </div>

-

-        #if ($page.hasChildren())

-          <div class="tabletitle">

-            Children

-            <span class="smalltext" id="show" style="display: inline;">

-              <a href="javascript:showChildren()">Show Children</a></span>

-            <span class="smalltext" id="hide" style="display: none;">

-              <a href="javascript:hideChildren()">Hide Children</a></span>

-          </div>

-          <div class="greybox" id="children" style="display: none;">

-            #set ($children = $page.children)

-            #foreach ($child in $children)

-              $autoexport.link($child)

-              <span class="smalltext">($child.space.name)</span>

-              <br>

-            #end

-          </div>

-        #end

-

-      </div>

-    </div>

-    <div class="footer">

-      Generated by

-      $autoexport.confluenceInfo

-      $autoexport.autoexportInfo

-    </div>

-  </body>

-</html>

diff --git a/core/src/site/resources/tags/a.html b/core/src/site/resources/tags/a.html
index bf2f4b4..66019dc 100644
--- a/core/src/site/resources/tags/a.html
+++ b/core/src/site/resources/tags/a.html
@@ -60,12 +60,52 @@
 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">errorText</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">The text to display to the user if the is an error fetching the content</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">executeScripts</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">Boolean</td>

+					<td align="left" valign="top">Javascript code in the fetched content will be executed</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">formFilter</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Function name used to filter the fields of the form.</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">formId</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Form id whose fields will be serialized and passed as parameters</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">handler</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Javascript function name that will make the request</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">href</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

 					<td align="left" valign="top">true</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The URL.</td>

+					<td align="left" valign="top">The URL to call to obtain the content. Note: If used with ajax context, the value must be set as an url tag value.</td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">id</td>

@@ -76,6 +116,14 @@
 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">indicator</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Id of element that will be shown while making request</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

@@ -100,6 +148,22 @@
 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">listenTopics</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Topic that will trigger the remote call</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">loadingText</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">Loading...</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Text to be shown while content is being fetched</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

@@ -108,6 +172,22 @@
 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">notifyTopics</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Topics that will published when the remote call completes</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">onLoadJS</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Deprecated. Use 'notifyTopics'. Javascript code execute after reload</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

@@ -228,6 +308,14 @@
 					<td align="left" valign="top">Set template to use for opening the rendered html.</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">preInvokeJS</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Deprecated. Use 'notifyTopics'. Javascript code execute before reload</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

@@ -244,6 +332,22 @@
 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">showErrorTransportText</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">Boolean</td>

+					<td align="left" valign="top">Set whether errors will be shown or not</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">showLoadingText</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">Boolean</td>

+					<td align="left" valign="top">Show loading text on targets</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

@@ -252,6 +356,14 @@
 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">targets</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Comma delimited list of ids of the elements whose content will be updated</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

diff --git a/core/src/site/resources/tags/ajax/a.html b/core/src/site/resources/tags/ajax/a.html
deleted file mode 100644
index e3c04a8..0000000
--- a/core/src/site/resources/tags/ajax/a.html
+++ /dev/null
@@ -1,426 +0,0 @@
-<!--

-This file is generated during the build by processing Component class annotations.

-Please do not edit it directly.

--->

-<html>

-    <head>

-		<title>a</title>

-	</head>

-

-	<body>

-		<h1>Tag Name: a</h1>

-		<h2>Description</h2>

-		<p>

-		<!-- START SNIPPET: tagdescription -->

-		Render a HTML href element that when clicked can optionally call a URL via remote XMLHttpRequest and updates its targets

-		<!-- END SNIPPET: tagdescription -->

-		</p>

-

-		<h2>Attributes</h2>

-		<!-- START SNIPPET: tagattributes -->

-		<table width="100%">

-			<tr>

-				<th align="left" valign="top"><h4>Name</h4></th>

-				<th align="left" valign="top"><h4>Required</h4></th>

-				<th align="left" valign="top"><h4>Default</h4></th>

-				<th align="left" valign="top"><h4>Evaluated</h4></th>

-				<th align="left" valign="top"><h4>Type</h4></th>

-				<th align="left" valign="top"><h4>Description</h4></th>

-			</tr>

-				<tr>

-					<td align="left" valign="top">accesskey</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">afterNotifyTopics</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Comma delimmited list of topics that will published after the request(if the request succeeds)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">beforeNotifyTopics</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Comma delimmited list of topics that will published before the request</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssClass</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css class to use for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssStyle</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style to use for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">disabled</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">errorNotifyTopics</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Comma delimmited list of topics that will published after the request(if the request fails)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">errorText</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The text to display to the user if the is an error fetching the content</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">executeScripts</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Javascript code in the fetched content will be executed</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">formFilter</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Function name used to filter the fields of the form.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">formId</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Form id whose fields will be serialized and passed as parameters</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">handler</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Javascript function name that will make the request</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">href</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The URL to call to obtain the content. Note: If used with ajax context, the value must be set as an url tag value.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">id</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The id to use for the element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">indicator</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Id of element that will be shown while making request</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">key</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">label</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">labelposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define label position of form element (top/left)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">listenTopics</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Topic that will trigger the remote call</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">loadingText</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">Loading...</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Text to be shown while content is being fetched</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">name</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The name to set for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">notifyTopics</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Comma delimmited list of topics that will published before and after the request, and on errors</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onblur</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onchange</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">ondblclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onfocus</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeydown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeypress</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeyup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousedown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousemove</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseout</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseover</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onselect</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">openTemplate</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set template to use for opening the rendered html.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">required</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">requiredposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define required position of required form element (left|right)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">showErrorTransportText</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Set whether errors will be shown or not</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">showLoadingText</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Show loading text on targets</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tabindex</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">targets</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Comma delimited list of ids of the elements whose content will be updated</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">template</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">templateDir</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template directory.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">title</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltip</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip of this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltipConfig</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip configuration</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">value</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Preset the value of input element.</td>

-				</tr>

-		</table>

-		<!-- END SNIPPET: tagattributes -->

-	</body>

-</html>

-

diff --git a/core/src/site/resources/tags/ajax/autocompleter.html b/core/src/site/resources/tags/ajax/autocompleter.html
deleted file mode 100644
index 1c38bc0..0000000
--- a/core/src/site/resources/tags/ajax/autocompleter.html
+++ /dev/null
@@ -1,522 +0,0 @@
-<!--

-This file is generated during the build by processing Component class annotations.

-Please do not edit it directly.

--->

-<html>

-    <head>

-		<title>autocompleter</title>

-	</head>

-

-	<body>

-		<h1>Tag Name: autocompleter</h1>

-		<h2>Description</h2>

-		<p>

-		<!-- START SNIPPET: tagdescription -->

-		Renders a combobox with autocomplete and AJAX capabilities

-		<!-- END SNIPPET: tagdescription -->

-		</p>

-

-		<h2>Attributes</h2>

-		<!-- START SNIPPET: tagattributes -->

-		<table width="100%">

-			<tr>

-				<th align="left" valign="top"><h4>Name</h4></th>

-				<th align="left" valign="top"><h4>Required</h4></th>

-				<th align="left" valign="top"><h4>Default</h4></th>

-				<th align="left" valign="top"><h4>Evaluated</h4></th>

-				<th align="left" valign="top"><h4>Type</h4></th>

-				<th align="left" valign="top"><h4>Description</h4></th>

-			</tr>

-				<tr>

-					<td align="left" valign="top">accesskey</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">autoComplete</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Whether autocompleter should make suggestion on the textbox</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssClass</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css class to use for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssStyle</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style to use for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">dataFieldName</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">Value specified in 'name'</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Name of the field in the returned JSON object that contains the data array</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">delay</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">100</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Integer</td>

-					<td align="left" valign="top">Delay before making the search</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">disabled</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Enable or disable autocompleter</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">dropdownHeight</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">120</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Integer</td>

-					<td align="left" valign="top">Dropdown's height in pixels</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">dropdownWidth</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">same as textbox</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Integer</td>

-					<td align="left" valign="top">Dropdown's width</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">emptyOption</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Decide if an empty option is to be inserted. Default false.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">forceValidOption</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Force selection to be one of the options</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">formFilter</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Function name used to filter the fields of the form</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">formId</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Form id whose fields will be serialized and passed as parameters</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">headerKey</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the header key for the header option.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">headerValue</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the header value for the header option.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">href</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The URL used to load the options</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">iconPath</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Path to icon used for the dropdown</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">id</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The id to use for the element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">indicator</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Id of element that will be shown while request is made</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">key</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">keyName</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Name of the field to which the selected key will be assigned</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">label</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">labelposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define label position of form element (top/left)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">list</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Iteratable source to populate from.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">listKey</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the key used to retrive the option key.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">listValue</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the value used to retrive the option value.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">listenTopics</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Topic that will trigger a reload</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">loadMinimumCount</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">3</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Integer</td>

-					<td align="left" valign="top">Minimum number of characters that will force the content to be loaded</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">loadOnTextChange</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Options will be reloaded everytime a character is typed on the textbox</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">maxLength</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Integer</td>

-					<td align="left" valign="top">Deprecated. Use maxlength instead.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">maxlength</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Integer</td>

-					<td align="left" valign="top">HTML maxlength attribute</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">name</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The name to set for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">notifyTopics</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Topics that will be published when content is reloaded</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onblur</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onchange</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">ondblclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onfocus</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeydown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeypress</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeyup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousedown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousemove</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseout</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseover</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onselect</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">readonly</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Whether the input is readonly</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">required</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">requiredposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define required position of required form element (left|right)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">searchType</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">stringstart</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">how the search must be performed, options are: 'startstring', 'startword' and 'substring'</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">showDownArrow</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Show or hide the down arrow button</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">size</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Integer</td>

-					<td align="left" valign="top">HTML size attribute</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tabindex</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">template</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">templateCssPath</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Template css path</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">templateDir</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template directory.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">title</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltip</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip of this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltipConfig</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip configuration</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">value</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Preset the value of input element</td>

-				</tr>

-		</table>

-		<!-- END SNIPPET: tagattributes -->

-	</body>

-</html>

-

diff --git a/core/src/site/resources/tags/ajax/datetimepicker.html b/core/src/site/resources/tags/ajax/datetimepicker.html
deleted file mode 100644
index e2d116d..0000000
--- a/core/src/site/resources/tags/ajax/datetimepicker.html
+++ /dev/null
@@ -1,410 +0,0 @@
-<!--

-This file is generated during the build by processing Component class annotations.

-Please do not edit it directly.

--->

-<html>

-    <head>

-		<title>datetimepicker</title>

-	</head>

-

-	<body>

-		<h1>Tag Name: datetimepicker</h1>

-		<h2>Description</h2>

-		<p>

-		<!-- START SNIPPET: tagdescription -->

-		Render datetimepicker

-		<!-- END SNIPPET: tagdescription -->

-		</p>

-

-		<h2>Attributes</h2>

-		<!-- START SNIPPET: tagattributes -->

-		<table width="100%">

-			<tr>

-				<th align="left" valign="top"><h4>Name</h4></th>

-				<th align="left" valign="top"><h4>Required</h4></th>

-				<th align="left" valign="top"><h4>Default</h4></th>

-				<th align="left" valign="top"><h4>Evaluated</h4></th>

-				<th align="left" valign="top"><h4>Type</h4></th>

-				<th align="left" valign="top"><h4>Description</h4></th>

-			</tr>

-				<tr>

-					<td align="left" valign="top">accesskey</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">adjustWeeks</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">If true, weekly size of calendar changes to acomodate the month if false, 42 day format is used</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssClass</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css class to use for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssStyle</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">dayWidth</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">narrow</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">How to render the names of the days in the header(narrow, abbr or wide)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">disabled</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">displayFormat</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">A pattern used for the visual display of the formatted date, e.g. dd/MM/yyyy</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">displayWeeks</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">6</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Integer</td>

-					<td align="left" valign="top">Total weeks to display</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">endDate</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">2941-10-12</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Date</td>

-					<td align="left" valign="top">Last available date in the calendar set</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">formatLength</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">short</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Type of formatting used for visual display. Possible values are long, short, medium or full</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">iconPath</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Path to icon used for the dropdown</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">id</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">key</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">label</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">labelposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define label position of form element (top/left)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">language</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">brower's specified preferred language</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Language to display this widget in</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">name</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The name to set for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onblur</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onchange</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">ondblclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onfocus</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeydown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeypress</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeyup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousedown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousemove</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseout</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseover</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onselect</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">required</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">requiredposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define required position of required form element (left|right)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">startDate</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">1492-10-12</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Date</td>

-					<td align="left" valign="top">First available date in the calendar set</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">staticDisplay</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Disable all incremental controls, must pick a date in the current display</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tabindex</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">template</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">templateCssPath</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Template css path</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">templateDir</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template directory.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">title</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">toggleDuration</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">100</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Integer</td>

-					<td align="left" valign="top">Duration of toggle in milliseconds</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">toggleType</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">plain</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">oggle type of the dropdown. Possible values are plain,wipe,explode,fade</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltip</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip of this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltipConfig</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip configuration</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">type</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">date</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Defines the type of the picker on the dropdown. Possible values are 'date' for a DateTimePicker, and 'time' for a timePicker</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">value</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Preset the value of input element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">weekStartsOn</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">0</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Integer</td>

-					<td align="left" valign="top">Adjusts the first day of the week 0==Sunday..6==Saturday</td>

-				</tr>

-		</table>

-		<!-- END SNIPPET: tagattributes -->

-	</body>

-</html>

-

diff --git a/core/src/site/resources/tags/ajax/div.html b/core/src/site/resources/tags/ajax/div.html
deleted file mode 100644
index 3b1d5df..0000000
--- a/core/src/site/resources/tags/ajax/div.html
+++ /dev/null
@@ -1,482 +0,0 @@
-<!--

-This file is generated during the build by processing Component class annotations.

-Please do not edit it directly.

--->

-<html>

-    <head>

-		<title>div</title>

-	</head>

-

-	<body>

-		<h1>Tag Name: div</h1>

-		<h2>Description</h2>

-		<p>

-		<!-- START SNIPPET: tagdescription -->

-		Render HTML div providing content from remote call via AJAX

-		<!-- END SNIPPET: tagdescription -->

-		</p>

-

-		<h2>Attributes</h2>

-		<!-- START SNIPPET: tagattributes -->

-		<table width="100%">

-			<tr>

-				<th align="left" valign="top"><h4>Name</h4></th>

-				<th align="left" valign="top"><h4>Required</h4></th>

-				<th align="left" valign="top"><h4>Default</h4></th>

-				<th align="left" valign="top"><h4>Evaluated</h4></th>

-				<th align="left" valign="top"><h4>Type</h4></th>

-				<th align="left" valign="top"><h4>Description</h4></th>

-			</tr>

-				<tr>

-					<td align="left" valign="top">accesskey</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">afterNotifyTopics</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Comma delimmited list of topics that will published after the request(if the request succeeds)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">autoStart</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Start timer automatically</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">beforeNotifyTopics</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Comma delimmited list of topics that will published before the request</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssClass</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css class to use for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssStyle</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style to use for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">delay</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Integer</td>

-					<td align="left" valign="top">How long to wait before fetching the content (in milliseconds)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">disabled</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">errorNotifyTopics</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Comma delimmited list of topics that will published after the request(if the request fails)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">errorText</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The text to display to the user if the is an error fetching the content</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">executeScripts</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Javascript code in the fetched content will be executed</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">formFilter</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Function name used to filter the fields of the form.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">formId</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Form id whose fields will be serialized and passed as parameters</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">handler</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Javascript function name that will make the request</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">href</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The URL to call to obtain the content. Note: If used with ajax context, the value must be set as an url tag value.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">id</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The id to use for the element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">indicator</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Id of element that will be shown while making request</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">key</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">label</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">labelposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define label position of form element (top/left)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">listenTopics</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Topic that will trigger the remote call</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">loadingText</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">Loading...</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Text to be shown while content is being fetched</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">name</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The name to set for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">notifyTopics</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Comma delimmited list of topics that will published before and after the request, and on errors</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onblur</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onchange</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">ondblclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onfocus</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeydown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeypress</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeyup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousedown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousemove</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseout</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseover</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onselect</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">openTemplate</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set template to use for opening the rendered html.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">refreshOnShow</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Content will be loaded when div becomes visible, used only inside the tabbedpanel tag</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">required</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">requiredposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define required position of required form element (left|right)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">separateScripts</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Run scripts in a separate scope, unique for each Div</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">showErrorTransportText</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Set whether errors will be shown or not</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">showLoadingText</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Show loading text on targets</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">startTimerListenTopics</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Topics that will start the timer (for autoupdate)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">stopTimerListenTopics</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Topics that will stop the timer (for autoupdate)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tabindex</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">template</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">templateDir</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template directory.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">theme</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">title</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltip</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip of this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltipConfig</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip configuration</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">updateFreq</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Integer</td>

-					<td align="left" valign="top">How often to reload the content (in milliseconds)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">value</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Preset the value of input element.</td>

-				</tr>

-		</table>

-		<!-- END SNIPPET: tagattributes -->

-	</body>

-</html>

-

diff --git a/core/src/site/resources/tags/ajax/form.html b/core/src/site/resources/tags/ajax/form.html
deleted file mode 100644
index 8fb90a4..0000000
--- a/core/src/site/resources/tags/ajax/form.html
+++ /dev/null
@@ -1,378 +0,0 @@
-<!--

-This file is generated during the build by processing Component class annotations.

-Please do not edit it directly.

--->

-<html>

-    <head>

-		<title>form</title>

-	</head>

-

-	<body>

-		<h1>Tag Name: form</h1>

-		<h2>Description</h2>

-		<p>

-		<!-- START SNIPPET: tagdescription -->

-		Renders an input form

-		<!-- END SNIPPET: tagdescription -->

-		</p>

-

-		<h2>Attributes</h2>

-		<!-- START SNIPPET: tagattributes -->

-		<table width="100%">

-			<tr>

-				<th align="left" valign="top"><h4>Name</h4></th>

-				<th align="left" valign="top"><h4>Required</h4></th>

-				<th align="left" valign="top"><h4>Default</h4></th>

-				<th align="left" valign="top"><h4>Evaluated</h4></th>

-				<th align="left" valign="top"><h4>Type</h4></th>

-				<th align="left" valign="top"><h4>Description</h4></th>

-			</tr>

-				<tr>

-					<td align="left" valign="top">acceptcharset</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The accepted charsets for this form. The values may be comma or blank delimited.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">accesskey</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">action</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">current action</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set action nane to submit to, without .action suffix</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssClass</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css class to use for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssStyle</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">disabled</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">enctype</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">HTML form enctype attribute</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">id</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">key</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">label</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">labelposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define label position of form element (top/left)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">method</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">HTML form method attribute</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">name</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The name to set for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">namespace</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">current namespace</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Namespace for action to submit to</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onblur</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onchange</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">ondblclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onfocus</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeydown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeypress</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeyup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousedown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousemove</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseout</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseover</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onselect</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onsubmit</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">HTML onsubmit attribute</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">openTemplate</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set template to use for opening the rendered html.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">portletMode</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">he portlet mode to display after the form submit</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">required</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">requiredposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define required position of required form element (left|right)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tabindex</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">target</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">HTML form target attribute</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">template</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">templateDir</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template directory.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">title</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltip</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip of this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltipConfig</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip configuration</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">validate</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Whether client side/remote validation should be performed. Only useful with theme xhtml/ajax</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">value</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Preset the value of input element.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">windowState</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The window state to display after the form submit</td>

-				</tr>

-		</table>

-		<!-- END SNIPPET: tagattributes -->

-	</body>

-</html>

-

diff --git a/core/src/site/resources/tags/ajax/head.html b/core/src/site/resources/tags/ajax/head.html
deleted file mode 100644
index 366ad91..0000000
--- a/core/src/site/resources/tags/ajax/head.html
+++ /dev/null
@@ -1,298 +0,0 @@
-<!--

-This file is generated during the build by processing Component class annotations.

-Please do not edit it directly.

--->

-<html>

-    <head>

-		<title>head</title>

-	</head>

-

-	<body>

-		<h1>Tag Name: head</h1>

-		<h2>Description</h2>

-		<p>

-		<!-- START SNIPPET: tagdescription -->

-		Render a chunk of HEAD for your HTML file

-		<!-- END SNIPPET: tagdescription -->

-		</p>

-

-		<h2>Attributes</h2>

-		<!-- START SNIPPET: tagattributes -->

-		<table width="100%">

-			<tr>

-				<th align="left" valign="top"><h4>Name</h4></th>

-				<th align="left" valign="top"><h4>Required</h4></th>

-				<th align="left" valign="top"><h4>Default</h4></th>

-				<th align="left" valign="top"><h4>Evaluated</h4></th>

-				<th align="left" valign="top"><h4>Type</h4></th>

-				<th align="left" valign="top"><h4>Description</h4></th>

-			</tr>

-				<tr>

-					<td align="left" valign="top">accesskey</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssClass</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css class to use for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssStyle</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">debug</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set to true to enable Dojo debug messages</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">disabled</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">id</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">key</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">label</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">labelposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define label position of form element (top/left)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">name</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The name to set for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onblur</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onchange</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">ondblclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onfocus</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeydown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeypress</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeyup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousedown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousemove</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseout</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseover</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onselect</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">required</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">requiredposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define required position of required form element (left|right)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tabindex</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">template</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">templateDir</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template directory.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">title</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltip</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip of this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltipConfig</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip configuration</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">value</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Preset the value of input element.</td>

-				</tr>

-		</table>

-		<!-- END SNIPPET: tagattributes -->

-	</body>

-</html>

-

diff --git a/core/src/site/resources/tags/ajax/submit.html b/core/src/site/resources/tags/ajax/submit.html
deleted file mode 100644
index d5b7a61..0000000
--- a/core/src/site/resources/tags/ajax/submit.html
+++ /dev/null
@@ -1,458 +0,0 @@
-<!--

-This file is generated during the build by processing Component class annotations.

-Please do not edit it directly.

--->

-<html>

-    <head>

-		<title>submit</title>

-	</head>

-

-	<body>

-		<h1>Tag Name: submit</h1>

-		<h2>Description</h2>

-		<p>

-		<!-- START SNIPPET: tagdescription -->

-		Render a submit button

-		<!-- END SNIPPET: tagdescription -->

-		</p>

-

-		<h2>Attributes</h2>

-		<!-- START SNIPPET: tagattributes -->

-		<table width="100%">

-			<tr>

-				<th align="left" valign="top"><h4>Name</h4></th>

-				<th align="left" valign="top"><h4>Required</h4></th>

-				<th align="left" valign="top"><h4>Default</h4></th>

-				<th align="left" valign="top"><h4>Evaluated</h4></th>

-				<th align="left" valign="top"><h4>Type</h4></th>

-				<th align="left" valign="top"><h4>Description</h4></th>

-			</tr>

-				<tr>

-					<td align="left" valign="top">accesskey</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">action</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set action attribute.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">afterNotifyTopics</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Comma delimmited list of topics that will published after the request(if the request succeeds)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">align</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">HTML align attribute.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">beforeNotifyTopics</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Comma delimmited list of topics that will published before the request</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssClass</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css class to use for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssStyle</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style to use for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">disabled</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">errorNotifyTopics</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Comma delimmited list of topics that will published after the request(if the request fails)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">errorText</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The text to display to the user if the is an error fetching the content</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">executeScripts</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Javascript code in the fetched content will be executed</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">formFilter</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Function name used to filter the fields of the form.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">formId</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Form id whose fields will be serialized and passed as parameters</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">handler</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Javascript function name that will make the request</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">href</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The URL to call to obtain the content. Note: If used with ajax context, the value must be set as an url tag value.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">id</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The id to use for the element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">indicator</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set indicator</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">key</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">label</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">labelposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define label position of form element (top/left)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">listenTopics</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Topic that will trigger the remote call</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">loadingText</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">Loading...</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Text to be shown while content is being fetched</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">method</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set method attribute.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">name</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The name to set for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">notifyTopics</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Comma delimmited list of topics that will published before and after the request, and on errors</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onblur</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onchange</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">ondblclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onfocus</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeydown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeypress</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeyup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousedown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousemove</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseout</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseover</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onselect</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">required</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">requiredposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define required position of required form element (left|right)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">showErrorTransportText</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Set whether errors will be shown or not</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">showLoadingText</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Show loading text on targets</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">src</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Supply an image src for <i>image</i> type submit button. Will have no effect for types <i>input</i> and <i>button</i>.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tabindex</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">targets</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Comma delimited list of ids of the elements whose content will be updated</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">template</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">templateDir</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template directory.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">title</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltip</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip of this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltipConfig</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip configuration</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">type</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">input</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The type of submit to use. Valid values are <i>input</i>, <i>button</i> and <i>image</i>.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">value</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Preset the value of input element.</td>

-				</tr>

-		</table>

-		<!-- END SNIPPET: tagattributes -->

-	</body>

-</html>

-

diff --git a/core/src/site/resources/tags/ajax/tabbedpanel.html b/core/src/site/resources/tags/ajax/tabbedpanel.html
deleted file mode 100644
index ec68ba3..0000000
--- a/core/src/site/resources/tags/ajax/tabbedpanel.html
+++ /dev/null
@@ -1,330 +0,0 @@
-<!--

-This file is generated during the build by processing Component class annotations.

-Please do not edit it directly.

--->

-<html>

-    <head>

-		<title>tabbedpanel</title>

-	</head>

-

-	<body>

-		<h1>Tag Name: tabbedpanel</h1>

-		<h2>Description</h2>

-		<p>

-		<!-- START SNIPPET: tagdescription -->

-		Render a tabbedPanel widget.

-		<!-- END SNIPPET: tagdescription -->

-		</p>

-

-		<h2>Attributes</h2>

-		<!-- START SNIPPET: tagattributes -->

-		<table width="100%">

-			<tr>

-				<th align="left" valign="top"><h4>Name</h4></th>

-				<th align="left" valign="top"><h4>Required</h4></th>

-				<th align="left" valign="top"><h4>Default</h4></th>

-				<th align="left" valign="top"><h4>Evaluated</h4></th>

-				<th align="left" valign="top"><h4>Type</h4></th>

-				<th align="left" valign="top"><h4>Description</h4></th>

-			</tr>

-				<tr>

-					<td align="left" valign="top">accesskey</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">closeButton</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Where the close button will be placed, possible values are 'tab' and 'pane'</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssClass</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css class to use for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssStyle</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style definitions for element ro use</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">disabled</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">doLayout</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">If doLayout is false, the tab container's height equals the height of the currently selected tab</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">id</td>

-					<td align="left" valign="top"><strong>true</strong></td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The id to assign to the component.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">key</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">label</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">labelposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define label position of form element (top/left)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">name</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The name to set for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onblur</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onchange</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">ondblclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onfocus</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeydown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeypress</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeyup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousedown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousemove</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseout</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseover</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onselect</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">openTemplate</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set template to use for opening the rendered html.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">required</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">requiredposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define required position of required form element (left|right)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">selectedTab</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top"> The id of the tab that will be selected by default</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tabindex</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">template</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">templateCssPath</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Template css path</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">templateDir</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template directory.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">title</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltip</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip of this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltipConfig</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip configuration</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">value</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Preset the value of input element.</td>

-				</tr>

-		</table>

-		<!-- END SNIPPET: tagattributes -->

-	</body>

-</html>

-

diff --git a/core/src/site/resources/tags/ajax/tree.html b/core/src/site/resources/tags/ajax/tree.html
deleted file mode 100644
index 6fc7e41..0000000
--- a/core/src/site/resources/tags/ajax/tree.html
+++ /dev/null
@@ -1,482 +0,0 @@
-<!--

-This file is generated during the build by processing Component class annotations.

-Please do not edit it directly.

--->

-<html>

-    <head>

-		<title>tree</title>

-	</head>

-

-	<body>

-		<h1>Tag Name: tree</h1>

-		<h2>Description</h2>

-		<p>

-		<!-- START SNIPPET: tagdescription -->

-		Render a tree widget.

-		<!-- END SNIPPET: tagdescription -->

-		</p>

-

-		<h2>Attributes</h2>

-		<!-- START SNIPPET: tagattributes -->

-		<table width="100%">

-			<tr>

-				<th align="left" valign="top"><h4>Name</h4></th>

-				<th align="left" valign="top"><h4>Required</h4></th>

-				<th align="left" valign="top"><h4>Default</h4></th>

-				<th align="left" valign="top"><h4>Evaluated</h4></th>

-				<th align="left" valign="top"><h4>Type</h4></th>

-				<th align="left" valign="top"><h4>Description</h4></th>

-			</tr>

-				<tr>

-					<td align="left" valign="top">accesskey</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">blankIconSrc</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Blank icon image source.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">childCollectionProperty</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The childCollectionProperty property.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssClass</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css class to use for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssStyle</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style to use for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">disabled</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">expandIconSrcMinus</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Expand icon (-) image source.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">expandIconSrcPlus</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Expand Icon (+) image source.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">gridIconSrcC</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Image source for under child item child icons.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">gridIconSrcL</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top"> Image source for last child grid.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">gridIconSrcP</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Image source for under parent item child icons.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">gridIconSrcV</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Image source for vertical line.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">gridIconSrcX</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Image source for grid for sole root item.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">gridIconSrcY</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Image source for grid for last root item.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">iconHeight</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">18px</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Icon height</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">iconWidth</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">19px</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Icon width</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">id</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The id to use for the element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">key</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">label</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Label expression used for rendering a element specific label</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">labelposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define label position of form element (top/left)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">name</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The name to set for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">nodeIdProperty</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The nodeIdProperty property.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">nodeTitleProperty</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The nodeTitleProperty property.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onblur</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onchange</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">ondblclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onfocus</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeydown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeypress</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeyup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousedown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousemove</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseout</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseover</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onselect</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">openTemplate</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set template to use for opening the rendered html.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">required</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">requiredposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define required position of required form element (left|right)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">rootNode</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The rootNode property.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">showGrid</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">Show grid</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">showRootGrid</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The showRootGrid property (default true).</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tabindex</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">template</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">templateCssPath</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">{contextPath}/struts/tree.css.</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Template css path</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">templateDir</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template directory.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">title</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">toggle</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">fade</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The toggle property (either 'explode' or 'fade')</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">toggleDuration</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">150</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Toggle duration in milliseconds</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltip</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip of this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltipConfig</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip configuration</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">treeCollapsedTopic</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The treeCollapsedTopic property.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">treeExpandedTopic</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The treeExpandedTopic property.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">treeSelectedTopic</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The treeSelectedTopic property</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">value</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Preset the value of input element.</td>

-				</tr>

-		</table>

-		<!-- END SNIPPET: tagattributes -->

-	</body>

-</html>

-

diff --git a/core/src/site/resources/tags/ajax/treenode.html b/core/src/site/resources/tags/ajax/treenode.html
deleted file mode 100644
index d0ae1a1..0000000
--- a/core/src/site/resources/tags/ajax/treenode.html
+++ /dev/null
@@ -1,298 +0,0 @@
-<!--

-This file is generated during the build by processing Component class annotations.

-Please do not edit it directly.

--->

-<html>

-    <head>

-		<title>treenode</title>

-	</head>

-

-	<body>

-		<h1>Tag Name: treenode</h1>

-		<h2>Description</h2>

-		<p>

-		<!-- START SNIPPET: tagdescription -->

-		Render a tree node within a tree widget.

-		<!-- END SNIPPET: tagdescription -->

-		</p>

-

-		<h2>Attributes</h2>

-		<!-- START SNIPPET: tagattributes -->

-		<table width="100%">

-			<tr>

-				<th align="left" valign="top"><h4>Name</h4></th>

-				<th align="left" valign="top"><h4>Required</h4></th>

-				<th align="left" valign="top"><h4>Default</h4></th>

-				<th align="left" valign="top"><h4>Evaluated</h4></th>

-				<th align="left" valign="top"><h4>Type</h4></th>

-				<th align="left" valign="top"><h4>Description</h4></th>

-			</tr>

-				<tr>

-					<td align="left" valign="top">accesskey</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssClass</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css class to use for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">cssStyle</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The css style to use for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">disabled</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">id</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The id to use for the element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">key</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the key (name, value, label) for this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">label</td>

-					<td align="left" valign="top"><strong>true</strong></td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Label expression used for rendering tree node label.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">labelposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define label position of form element (top/left)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">name</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The name to set for element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onblur</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top"> Set the html onblur attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onchange</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">ondblclick</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onfocus</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeydown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeypress</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onkeyup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousedown</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmousemove</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseout</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseover</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onmouseup</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">onselect</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">openTemplate</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set template to use for opening the rendered html.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">required</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">Boolean</td>

-					<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">requiredposition</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Define required position of required form element (left|right)</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tabindex</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">template</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template (other than default) to use for rendering the element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">templateDir</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The template directory.</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">title</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the html title attribute on rendered html element</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltip</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip of this particular component</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">tooltipConfig</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Set the tooltip configuration</td>

-				</tr>

-				<tr>

-					<td align="left" valign="top">value</td>

-					<td align="left" valign="top">false</td>

-					<td align="left" valign="top"></td>

-					<td align="left" valign="top">true</td>

-					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">Preset the value of input element.</td>

-				</tr>

-		</table>

-		<!-- END SNIPPET: tagattributes -->

-	</body>

-</html>

-

diff --git a/core/src/site/resources/tags/div.html b/core/src/site/resources/tags/div.html
index 0c7d56e..cb4e014 100644
--- a/core/src/site/resources/tags/div.html
+++ b/core/src/site/resources/tags/div.html
@@ -36,6 +36,22 @@
 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">afterLoading</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Deprecated. Use 'notifyTopics'. Javascript code execute after reload</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">autoStart</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">Boolean</td>

+					<td align="left" valign="top">Start timer automatically</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

@@ -52,6 +68,14 @@
 					<td align="left" valign="top">The css style definitions for element ro use</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">delay</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">Integer</td>

+					<td align="left" valign="top">How long to wait before fetching the content (in milliseconds)</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

@@ -60,6 +84,54 @@
 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">errorText</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">The text to display to the user if the is an error fetching the content</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">executeScripts</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">Boolean</td>

+					<td align="left" valign="top">Javascript code in the fetched content will be executed</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">formFilter</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Function name used to filter the fields of the form.</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">formId</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Form id whose fields will be serialized and passed as parameters</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">handler</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Javascript function name that will make the request</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">href</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">The URL to call to obtain the content. Note: If used with ajax context, the value must be set as an url tag value.</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

@@ -68,6 +140,14 @@
 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">indicator</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Id of element that will be shown while making request</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

@@ -92,6 +172,22 @@
 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">listenTopics</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Topic that will trigger the remote call</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">loadingText</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">Loading...</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Text to be shown while content is being fetched</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">name</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

@@ -100,6 +196,14 @@
 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">notifyTopics</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Topics that will published when the remote call completes</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

@@ -220,6 +324,14 @@
 					<td align="left" valign="top">Set template to use for opening the rendered html.</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">refreshOnShow</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">Boolean</td>

+					<td align="left" valign="top">Content will be loaded when div becomes visible, used only inside tabbedPanel</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

@@ -236,6 +348,46 @@
 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">separateScripts</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Run scripts in a separate scope, unique for each Div</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">showErrorTransportText</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">Boolean</td>

+					<td align="left" valign="top">Set whether errors will be shown or not</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">showLoadingText</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">Boolean</td>

+					<td align="left" valign="top">Show loading text on targets</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">startTimerListenTopics</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Topics that will start the timer (for autoupdate)</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">stopTimerListenTopics</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Topics that will stop the timer (for autoupdate)</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">tabindex</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

@@ -292,6 +444,14 @@
 					<td align="left" valign="top">Set the tooltip configuration</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">updateFreq</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">Integer</td>

+					<td align="left" valign="top">How often to reload the content (in milliseconds)</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">value</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

diff --git a/core/src/site/resources/tags/head.html b/core/src/site/resources/tags/head.html
index 4ff1bbf..3f88527 100644
--- a/core/src/site/resources/tags/head.html
+++ b/core/src/site/resources/tags/head.html
@@ -36,6 +36,14 @@
 					<td align="left" valign="top">Set the html accesskey attribute on rendered html element</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">calendarcss</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">calendar-blue.css</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">The jscalendar css theme to use</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">cssClass</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

@@ -52,6 +60,14 @@
 					<td align="left" valign="top">The css style definitions for element ro use</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">debug</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Set to true to enable debugging mode for AJAX themes</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">disabled</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

diff --git a/core/src/site/resources/tags/submit.html b/core/src/site/resources/tags/submit.html
index e32c68d..f2c94d6 100644
--- a/core/src/site/resources/tags/submit.html
+++ b/core/src/site/resources/tags/submit.html
@@ -76,6 +76,54 @@
 					<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">errorText</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">The text to display to the user if the is an error fetching the content</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">executeScripts</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">Boolean</td>

+					<td align="left" valign="top">Javascript code in the fetched content will be executed</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">formFilter</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Function name used to filter the fields of the form.</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">formId</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Form id whose fields will be serialized and passed as parameters</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">handler</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Javascript function name that will make the request</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">href</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">The URL to call to obtain the content. Note: If used with ajax context, the value must be set as an url tag value.</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">id</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

@@ -84,6 +132,14 @@
 					<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">indicator</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Set indicator</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">key</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

@@ -108,6 +164,22 @@
 					<td align="left" valign="top">Define label position of form element (top/left)</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">listenTopics</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Topic that will trigger the remote call</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">loadingText</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">Loading...</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Text to be shown while content is being fetched</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">method</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

@@ -124,6 +196,22 @@
 					<td align="left" valign="top">The name to set for element</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">notifyTopics</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Topics that will published when the remote call completes</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">onLoadJS</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Deprecated. Use 'notifyTopics'. Javascript code execute after reload</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">onblur</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

@@ -236,6 +324,14 @@
 					<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">preInvokeJS</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Deprecated. Use 'notifyTopics'. Javascript code execute before reload</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">required</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top">false</td>

@@ -252,6 +348,22 @@
 					<td align="left" valign="top">Define required position of required form element (left|right)</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">showErrorTransportText</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">Boolean</td>

+					<td align="left" valign="top">Set whether errors will be shown or not</td>

+				</tr>

+				<tr>

+					<td align="left" valign="top">showLoadingText</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">Boolean</td>

+					<td align="left" valign="top">Show loading text on targets</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">src</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

@@ -268,6 +380,14 @@
 					<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>

 				</tr>

 				<tr>

+					<td align="left" valign="top">targets</td>

+					<td align="left" valign="top">false</td>

+					<td align="left" valign="top"></td>

+					<td align="left" valign="top">true</td>

+					<td align="left" valign="top">String</td>

+					<td align="left" valign="top">Comma delimited list of ids of the elements whose content will be updated</td>

+				</tr>

+				<tr>

 					<td align="left" valign="top">template</td>

 					<td align="left" valign="top">false</td>

 					<td align="left" valign="top"></td>

@@ -289,7 +409,7 @@
 					<td align="left" valign="top"></td>

 					<td align="left" valign="top">true</td>

 					<td align="left" valign="top">String</td>

-					<td align="left" valign="top">The theme (other than default) to use for rendering the element</td>

+					<td align="left" valign="top">The theme to use for the element. <b>This tag will usually use the ajax theme.</b></td>

 				</tr>

 				<tr>

 					<td align="left" valign="top">title</td>

diff --git a/core/src/test/java/org/apache/struts2/TestAction.java b/core/src/test/java/org/apache/struts2/TestAction.java
index a0a1c87..3bc050b 100644
--- a/core/src/test/java/org/apache/struts2/TestAction.java
+++ b/core/src/test/java/org/apache/struts2/TestAction.java
@@ -40,7 +40,7 @@
     private Collection collection2;
     private Map map;
     private String foo;
-    private Integer fooInt;
+
     private String result;
     private User user;
     private String[] array;
@@ -62,7 +62,7 @@
 
     public void setMap(Map map) {
         this.map = map;
-    }
+    }private Integer fooInt;
 
     public String getFoo() {
         return foo;
@@ -135,7 +135,7 @@
     public void setFooInt(Integer fooInt) {
         this.fooInt = fooInt;
     }
-
+    
     public String execute() throws Exception {
         if (result == null) {
             result = Action.SUCCESS;
diff --git a/core/src/test/java/org/apache/struts2/components/UIComponentTest.java b/core/src/test/java/org/apache/struts2/components/UIComponentTest.java
index 1910cf7..c905ed8 100644
--- a/core/src/test/java/org/apache/struts2/components/UIComponentTest.java
+++ b/core/src/test/java/org/apache/struts2/components/UIComponentTest.java
@@ -22,6 +22,7 @@
 
 import org.apache.struts2.TestConfigurationProvider;
 import org.apache.struts2.views.jsp.AbstractUITagTest;
+import org.apache.struts2.views.jsp.ui.AbstractRemoteCallUITag;
 import org.apache.struts2.views.jsp.ui.ActionErrorTag;
 import org.apache.struts2.views.jsp.ui.ActionMessageTag;
 import org.apache.struts2.views.jsp.ui.AnchorTag;
@@ -177,7 +178,7 @@
 
         try {
             t.doStartTag();
-            DivTag tag = new DivTag();
+            AbstractRemoteCallUITag tag = new DivTag();
             tag.setPageContext(pageContext);
             tag.doStartTag();
             assertEquals(tag.getComponent().getComponentStack().peek(), tag.getComponent());
diff --git a/core/src/test/java/org/apache/struts2/components/URLTest.java b/core/src/test/java/org/apache/struts2/components/URLTest.java
new file mode 100644
index 0000000..29d8053
--- /dev/null
+++ b/core/src/test/java/org/apache/struts2/components/URLTest.java
@@ -0,0 +1,57 @@
+package org.apache.struts2.components;

+

+import java.util.HashMap;

+import java.util.Map;

+

+import org.apache.struts2.views.jsp.AbstractTagTest;

+

+/**

+ * Verifies correct operation of parameter merging.

+ * 

+ * Contributed by: Daniel Uribe

+ */

+public class URLTest extends AbstractTagTest {

+    public void testIncludeGetDuplicateRequestParams() throws Exception {

+        String body = "";

+

+        Map parameterMap = new HashMap();

+        parameterMap.put("param", new String[] { "1", "2", "3" });

+

+        request.setQueryString("param=1&param=2&param=3");

+        request.setScheme("http");

+        request.setParameterMap(parameterMap);

+        URL url = new URL(stack, request, response);

+        url.setIncludeParams(URL.GET);

+        url.setIncludeContext(false);

+        url.setValue("myAction.action");

+        url.setNamespace("");

+

+        url.start(writer);

+        url.end(writer, body);

+

+        assertEquals("myAction.action?param=1&amp;param=2&amp;param=3",

+            writer.toString());

+    }

+

+    public void testIncludeAllDuplicateRequestParams() throws Exception {

+        String body = "";

+

+        Map parameterMap = new HashMap();

+        parameterMap.put("param", new String[] { "1", "2", "3" });

+

+        request.setQueryString("param=1&param=2&param=3");

+        request.setScheme("http");

+        request.setParameterMap(parameterMap);

+        URL url = new URL(stack, request, response);

+        url.setIncludeParams(URL.ALL);

+        url.setIncludeContext(false);

+        url.setValue("myAction.action");

+        url.setNamespace("");

+

+        url.start(writer);

+        url.end(writer, body);

+

+        assertEquals("myAction.action?param=1&amp;param=2&amp;param=3",

+            writer.toString());

+    }

+}

diff --git a/core/src/test/java/org/apache/struts2/interceptor/CheckboxInterceptorTest.java b/core/src/test/java/org/apache/struts2/interceptor/CheckboxInterceptorTest.java
deleted file mode 100644
index ab8737b..0000000
--- a/core/src/test/java/org/apache/struts2/interceptor/CheckboxInterceptorTest.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * $Id$
- * 
- * 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.struts2.interceptor;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.struts2.StrutsTestCase;
-
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.mock.MockActionInvocation;
-
-/**
- * Unit test for ChecboxInterceptor. 
- */
-public class CheckboxInterceptorTest extends StrutsTestCase {
-
-    private CheckboxInterceptor interceptor;
-    private MockActionInvocation ai;
-    private Map<String, String> param;
-    
-    protected void setUp() throws Exception {
-    	super.setUp();
-    	param = new HashMap<String, String>();
-    	
-    	interceptor = new CheckboxInterceptor();
-    	ai = new MockActionInvocation();
-    	ai.setInvocationContext(ActionContext.getContext());
-    	ActionContext.getContext().setParameters(param);
-    }
-	
-	public void testNoParam() throws Exception {
-		interceptor.init();
-		interceptor.intercept(ai);
-		interceptor.destroy();
-
-		assertEquals(0, param.size());
-	}
-
-	public void testPassthroughOne() throws Exception {
-		param.put("user", "batman");
-		interceptor.init();
-		interceptor.intercept(ai);
-		interceptor.destroy();
-		
-		assertEquals(1, param.size());
-	}
-
-	public void testPassthroughTwo() throws Exception {
-		param.put("user", "batman");
-		param.put("email", "batman@comic.org");
-		interceptor.init();
-		interceptor.intercept(ai);
-		interceptor.destroy();
-		
-		assertEquals(2, param.size());
-	}
-
-	public void testOneCheckboxTrue() throws Exception {
-		param.put("user", "batman");
-		param.put("email", "batman@comic.org");
-		param.put("superpower", "true");
-		param.put("__checkbox_superpower", "true");
-		assertTrue(param.containsKey("__checkbox_superpower"));
-
-		interceptor.init();
-		interceptor.intercept(ai);
-		interceptor.destroy();
-		
-		assertFalse(param.containsKey("__checkbox_superpower"));
-		assertEquals(3, param.size()); // should be 3 as __checkbox_ should be removed
-		assertEquals("true", param.get("superpower"));
-	}
-
-	public void testOneCheckboxNoValue() throws Exception {
-		param.put("user", "batman");
-		param.put("email", "batman@comic.org");
-		param.put("__checkbox_superpower", "false");
-		assertTrue(param.containsKey("__checkbox_superpower"));
-
-		interceptor.init();
-		interceptor.intercept(ai);
-		interceptor.destroy();
-		
-		assertFalse(param.containsKey("__checkbox_superpower"));
-		assertEquals(3, param.size()); // should be 3 as __checkbox_ should be removed
-		assertEquals("false", param.get("superpower"));
-	}
-
-	public void testOneCheckboxNoValueDifferentDefault() throws Exception {
-		param.put("user", "batman");
-		param.put("email", "batman@comic.org");
-		param.put("__checkbox_superpower", "false");
-		assertTrue(param.containsKey("__checkbox_superpower"));
-
-		interceptor.setUncheckedValue("off");
-		interceptor.init();
-		interceptor.intercept(ai);
-		interceptor.destroy();
-		
-		assertFalse(param.containsKey("__checkbox_superpower"));
-		assertEquals(3, param.size()); // should be 3 as __checkbox_ should be removed
-		assertEquals("off", param.get("superpower"));
-	}
-
-	public void testTwoCheckboxMixed() throws Exception {
-		param.put("user", "batman");
-		param.put("email", "batman@comic.org");
-		param.put("__checkbox_superpower", "true");
-		param.put("superpower", "yes");
-		param.put("__checkbox_cool", "no");
-		assertTrue(param.containsKey("__checkbox_superpower"));
-		assertTrue(param.containsKey("__checkbox_cool"));
-
-		interceptor.init();
-		interceptor.intercept(ai);
-		interceptor.destroy();
-		
-		assertFalse(param.containsKey("__checkbox_superpower"));
-		assertFalse(param.containsKey("__checkbox_cool"));
-		assertEquals(4, param.size()); // should be 4 as __checkbox_ should be removed
-		assertEquals("yes", param.get("superpower"));
-		assertEquals("false", param.get("cool")); // will use false as default and not 'no'
-	}
-
-	public void testTwoCheckboxMixedWithDifferentDefault() throws Exception {
-		param.put("user", "batman");
-		param.put("email", "batman@comic.org");
-		param.put("__checkbox_superpower", "true");
-		param.put("superpower", "yes");
-		param.put("__checkbox_cool", "no");
-		assertTrue(param.containsKey("__checkbox_superpower"));
-		assertTrue(param.containsKey("__checkbox_cool"));
-
-		interceptor.setUncheckedValue("no");
-		interceptor.init();
-		interceptor.intercept(ai);
-		interceptor.destroy();
-		
-		assertFalse(param.containsKey("__checkbox_superpower"));
-		assertFalse(param.containsKey("__checkbox_cool"));
-		assertEquals(4, param.size()); // should be 4 as __checkbox_ should be removed
-		assertEquals("yes", param.get("superpower"));
-		assertEquals("no", param.get("cool"));
-	}
-	
-}
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/AnchorTagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/AnchorTagTest.java
index 814c662..8746818 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/AnchorTagTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/AnchorTagTest.java
@@ -22,7 +22,6 @@
 
 import java.io.StringWriter;
 
-import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.JspWriter;
 
 import org.apache.struts2.views.jsp.ui.AnchorTag;
@@ -30,41 +29,12 @@
 
 
 /**
- *
+ * Unit test for {@ link AnchorTag}.
  */
 public class AnchorTagTest extends AbstractUITagTest {
     private StringWriter writer = new StringWriter();
     private AnchorTag tag;
 
-    public void testActionURL() {
-        tag.setHref("TestAction.action");
-        try {
-            tag.doStartTag();
-            tag.doEndTag();
-            assertTrue( writer.toString().indexOf("href=\"TestAction.action\"") > -1);
-        } catch (JspException ex) {
-            ex.printStackTrace();
-            fail();
-        }
-    }
-
-    public void testAddParameters() {
-        tag.setHref("/TestAction.action");
-        String bodyText = "<img src=\"#\"/>";
-        try {
-            StrutsBodyContent bodyContent = new StrutsBodyContent(null);
-            bodyContent.print(bodyText);
-            tag.setBodyContent(bodyContent);
-
-            tag.doStartTag();
-            tag.doEndTag();
-        } catch (Exception ex) {
-            ex.printStackTrace();
-            fail();
-        }
-    }
-
-
     protected void setUp() throws Exception {
         super.setUp();
 
@@ -78,4 +48,85 @@
         pageContext.setJspWriter(jspWriter);
     }
 
+    public void testActionURL() throws Exception {
+        tag.setHref("TestAction.action");
+        tag.doStartTag();
+        tag.doEndTag();
+        assertTrue(writer.toString().indexOf("href=\"TestAction.action\"") > -1);
+        assertEquals("<a href=\"TestAction.action\"></a>", writer.toString());
+    }
+
+    public void testNoNewLineAtEnd() throws Exception {
+        tag.setHref("TestAction.action");
+        tag.doStartTag();
+        tag.doEndTag();
+        assertFalse(writer.toString().endsWith("\n"));
+    }
+
+    public void testAccessKey() throws Exception {
+        tag.setHref("TestAction.action");
+        tag.setAccesskey("T");
+        tag.doStartTag();
+        tag.doEndTag();
+        assertTrue(writer.toString().indexOf("accesskey=\"T\"") > -1);
+        assertFalse(writer.toString().endsWith("\n"));
+    }
+
+    public void testId() throws Exception {
+        tag.setId("home&improvements");
+        tag.doStartTag();
+        tag.doEndTag();
+        assertEquals("<a id=\"home&amp;improvements\"></a>", writer.toString());
+        assertFalse(writer.toString().endsWith("\n"));
+    }
+
+    public void testTitle() throws Exception {
+    	tag.setHref("home.ftl");
+        tag.setTitle("home & improvements");
+        tag.doStartTag();
+        tag.doEndTag();
+        assertEquals("<a href=\"home.ftl\" title=\"home &amp; improvements\"></a>", writer.toString());
+        assertFalse(writer.toString().endsWith("\n"));
+    }
+
+    public void testOnMouseOver() throws Exception {
+        tag.setHref("TestAction.action");
+        tag.setOnmouseover("over");
+        tag.doStartTag();
+        tag.doEndTag();
+        assertTrue(writer.toString().indexOf("onmouseover=\"over\"") > -1);
+        assertFalse(writer.toString().endsWith("\n"));
+    }
+
+    public void testOnMouseOverAndFocus() throws Exception {
+        tag.setHref("TestAction.action");
+        tag.setOnmouseover("overme");
+        tag.setOnfocus("focusme");
+        tag.doStartTag();
+        tag.doEndTag();
+        assertTrue(writer.toString().indexOf("onmouseover=\"overme\"") > -1);
+        assertTrue(writer.toString().indexOf("onfocus=\"focusme\"") > -1);
+        assertFalse(writer.toString().endsWith("\n"));
+    }
+
+    public void testWithContent() throws Exception {
+        tag.setHref("TestAction.action");
+        tag.doStartTag();
+        writer.write("Home");       
+        tag.doEndTag();
+        assertEquals("<a href=\"TestAction.action\">Home</a>", writer.toString());
+        assertFalse(writer.toString().endsWith("\n"));
+    }
+
+    public void testAddParameters() throws Exception {
+        tag.setHref("/TestAction.action");
+        String bodyText = "<img src=\"#\"/>";
+        StrutsBodyContent bodyContent = new StrutsBodyContent(null);
+        bodyContent.print(bodyText);
+        tag.setBodyContent(bodyContent);
+
+        tag.doStartTag();
+        tag.doEndTag();
+    }
+
 }
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/AnchorTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/AnchorTest.java
index 3b469df..3d51383 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/AnchorTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/AnchorTest.java
@@ -37,7 +37,19 @@
         tag.setPageContext(pageContext);
 
         tag.setId("mylink");
+        tag.setTheme("ajax");
         tag.setHref("a");
+        tag.setErrorText("c");
+        tag.setLoadingText("d");
+        tag.setAfterLoading("e");
+        tag.setBeforeLoading("f");
+        tag.setListenTopics("g");
+        tag.setTargets("h");
+        tag.setHandler("i");
+        tag.setNotifyTopics("j");
+        tag.setIndicator("k");
+        tag.setShowErrorTransportText("true");
+        tag.setShowLoadingText("true");
         tag.doStartTag();
         tag.doEndTag();
 
diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AutocompleterTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/AutocompleterTest.java
similarity index 92%
rename from plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AutocompleterTest.java
rename to core/src/test/java/org/apache/struts2/views/jsp/ui/AutocompleterTest.java
index ec3e438..8728cf4 100644
--- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AutocompleterTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/AutocompleterTest.java
@@ -1,5 +1,5 @@
 /*
- * $Id: AutocompleterTest.java 510743 2007-02-23 01:06:19Z musachy $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,7 +18,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.views.jsp.ui;
+package org.apache.struts2.views.jsp.ui;
+
+import org.apache.struts2.views.jsp.AbstractUITagTest;
 
 /**
  * @see org.apache.struts2.components.Autocompleter
@@ -28,6 +30,7 @@
     public void testAjax() throws Exception {
         AutocompleterTag tag = new AutocompleterTag();
         tag.setPageContext(pageContext);
+        tag.setTheme("ajax");
         tag.setAutoComplete("true");
         tag.setDisabled("false");
         tag.setForceValidOption("false");
@@ -56,10 +59,12 @@
     public void testSimple() throws Exception {
         AutocompleterTag tag = new AutocompleterTag();
         tag.setPageContext(pageContext);
+        tag.setTheme("simple");
         tag.setAutoComplete("true");
         tag.setDisabled("false");
         tag.setForceValidOption("false");
         tag.setList("{'d','e'}");
+        tag.setHref("a");
         tag.setDropdownWidth("10");
         tag.setDropdownHeight("10");
         tag.setDelay("100");
diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/Category.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/Category.java
similarity index 96%
rename from plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/Category.java
rename to core/src/test/java/org/apache/struts2/views/jsp/ui/Category.java
index 2bfb03c..37ef934 100644
--- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/Category.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/Category.java
@@ -1,5 +1,5 @@
 /*
- * $Id: Category.java 471756 2006-11-06 15:01:43Z husted $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,7 +18,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.views.jsp.ui;
+package org.apache.struts2.views.jsp.ui;
 
 import java.util.ArrayList;
 import java.util.HashMap;
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/CheckboxListTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/CheckboxListTest.java
index b7f4e2a..d7d8bcb 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/CheckboxListTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/CheckboxListTest.java
@@ -60,6 +60,12 @@
         verifyGenericProperties(tag, "xhtml", new String[]{"tabindex","cssClass","cssStyle","id"});
     }
 
+    public void testGenericAjax() throws Exception {
+        CheckboxListTag tag = new CheckboxListTag();
+        prepareTagGeneric(tag);
+        verifyGenericProperties(tag, "ajax", new String[]{"tabindex","cssClass","cssStyle","id"});
+    }
+
     private void prepareTagGeneric(CheckboxListTag tag) {
         TestAction testAction = (TestAction) action;
         Collection collection = new ArrayList(2);
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/CheckboxTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/CheckboxTest.java
index aeb3895..a77c81f 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/CheckboxTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/CheckboxTest.java
@@ -57,6 +57,11 @@
         verifyGenericProperties(tag, "xhtml", null);
     }
 
+    public void testGenericAjax() throws Exception {
+        CheckboxTag tag = new CheckboxTag();
+        verifyGenericProperties(tag, "ajax", null);
+    }
+
     public void testChecked() throws Exception {
         TestAction testAction = (TestAction) action;
         testAction.setFoo("true");
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/ComboBoxTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/ComboBoxTest.java
index e114558..cf1077f 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/ComboBoxTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/ComboBoxTest.java
@@ -46,6 +46,12 @@
         verifyGenericProperties(tag, "xhtml", null);
     }
 
+    public void testGenericAjax() throws Exception {
+        ComboBoxTag tag = new ComboBoxTag();
+        prepareTagGeneric(tag);
+        verifyGenericProperties(tag, "ajax", null);
+    }
+
     private void prepareTagGeneric(ComboBoxTag tag) {
         TestAction testAction = (TestAction) action;
         ArrayList collection = new ArrayList();
diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/DateTimePickerTagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/DateTimePickerTagTest.java
similarity index 66%
rename from plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/DateTimePickerTagTest.java
rename to core/src/test/java/org/apache/struts2/views/jsp/ui/DateTimePickerTagTest.java
index 0c32f65..61322f9 100644
--- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/DateTimePickerTagTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/DateTimePickerTagTest.java
@@ -1,5 +1,5 @@
 /*
- * $Id: DateTimePickerTagTest.java 508605 2007-02-16 21:56:50Z musachy $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,16 +18,37 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.views.jsp.ui;
+package org.apache.struts2.views.jsp.ui;
+
+import org.apache.struts2.views.jsp.AbstractUITagTest;
+
 
 /**
  */
 public class DateTimePickerTagTest extends AbstractUITagTest {
+
+
+    public void testGenericSimple() throws Exception {
+        AbstractRemoteCallUITag tag = new DivTag();
+        verifyGenericProperties(tag, "simple", new String[]{"value","tabindex","disabled"});
+    }
+
+    public void testGenericXhtml() throws Exception {
+        AbstractRemoteCallUITag tag = new DivTag();
+        verifyGenericProperties(tag, "xhtml", new String[]{"value","tabindex","disabled"});
+    }
+
+    public void testGenericAjax() throws Exception {
+        AbstractRemoteCallUITag tag = new DivTag();
+        verifyGenericProperties(tag, "ajax", new String[]{"value","tabindex","disabled"});
+    }
+
     public void testSimple() throws Exception {
         DateTimePickerTag tag = new DateTimePickerTag();
         tag.setPageContext(pageContext);
 
         tag.setId("id");
+        tag.setTheme("ajax");
 
         tag.setAdjustWeeks("true");
         tag.setDayWidth("b");
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/DivTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/DivTest.java
index a3677bb..23e9d96 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/DivTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/DivTest.java
@@ -30,22 +30,45 @@
 
 
     public void testGenericSimple() throws Exception {
-        DivTag tag = new DivTag();
+        AbstractRemoteCallUITag tag = new DivTag();
         verifyGenericProperties(tag, "simple", new String[]{"value","tabindex","disabled"});
     }
 
     public void testGenericXhtml() throws Exception {
-        DivTag tag = new DivTag();
+        AbstractRemoteCallUITag tag = new DivTag();
         verifyGenericProperties(tag, "xhtml", new String[]{"value","tabindex","disabled"});
     }
 
+    public void testGenericAjax() throws Exception {
+        AbstractRemoteCallUITag tag = new DivTag();
+        verifyGenericProperties(tag, "ajax", new String[]{"value","tabindex","disabled"});
+    }
+
     public void testSimple() throws Exception {
         TestAction testAction = (TestAction) action;
         testAction.setFoo("bar");
 
         DivTag tag = new DivTag();
         tag.setPageContext(pageContext);
+
         tag.setId("mylabel");
+        tag.setTheme("ajax");
+        tag.setHref("a");
+        tag.setLoadingText("b");
+        tag.setErrorText("c");
+        tag.setAutoStart("true");
+        tag.setDelay("4000");
+        tag.setUpdateFreq("1000");
+        tag.setListenTopics("g");
+        tag.setStartTimerListenTopics("h");
+        tag.setStopTimerListenTopics("i");
+        tag.setBeforeLoading("j");
+        tag.setAfterLoading("k");
+        tag.setRefreshOnShow("true");
+        tag.setHandler("l");
+        tag.setIndicator("m");
+        tag.setShowLoadingText("true");
+        tag.setSeparateScripts("false");
         tag.doStartTag();
         tag.doEndTag();
 
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/DoubleSelectTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/DoubleSelectTest.java
index 0960508..6eafe10 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/DoubleSelectTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/DoubleSelectTest.java
@@ -223,6 +223,12 @@
         verifyGenericProperties(tag, "xhtml", new String[]{"value"});
     }
 
+    public void testGenericAjax() throws Exception {
+        DoubleSelectTag tag = new DoubleSelectTag();
+        prepareTagGeneric(tag);
+        verifyGenericProperties(tag, "ajax", new String[]{"value"});
+    }
+
     private void prepareTagGeneric(DoubleSelectTag tag) {
         TestAction testAction = (TestAction) action;
         Region antwerp = new Region("Antwerp", "AN");
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/FileTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/FileTest.java
index 85e09db..572a307 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/FileTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/FileTest.java
@@ -77,4 +77,10 @@
         FileTag tag = new FileTag();
         verifyGenericProperties(tag, "xhtml", null);
     }
+
+    public void testGenericAjax() throws Exception {
+        FileTag tag = new FileTag();
+        verifyGenericProperties(tag, "ajax", null);
+    }
+
 }
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/HeadTagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/HeadTagTest.java
index 2cdf925..ac74218 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/HeadTagTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/HeadTagTest.java
@@ -20,6 +20,7 @@
  */
 package org.apache.struts2.views.jsp.ui;
 
+import org.apache.struts2.components.Head;
 import org.apache.struts2.views.jsp.AbstractUITagTest;
 
 /**
@@ -31,13 +32,74 @@
  */
 public class HeadTagTest extends AbstractUITagTest {
 
+    private HeadTag tag;
+
     public void testHead1() throws Exception {
-        HeadTag tag = new HeadTag();
-        tag.setPageContext(pageContext);
-        
         tag.doStartTag();
         tag.doEndTag();
 
         verify(HeadTagTest.class.getResource("HeadTagTest-1.txt"));
     }
+
+    public void testHead1NoCalender() throws Exception {
+        tag.doStartTag();
+        tag.doEndTag();
+        tag.setCalendarcss(null); // null = should use calendar-blue.css
+
+        verify(HeadTagTest.class.getResource("HeadTagTest-1.txt"));
+    }
+
+    public void testHead2() throws Exception {
+        tag.setTheme("ajax");
+        tag.doStartTag();
+        Head component = (Head) tag.getComponent();
+        assertTrue(!component.isDebug());
+        tag.doEndTag();
+
+        verify(HeadTagTest.class.getResource("HeadTagTest-2.txt"));
+        assertTrue("should have debug false", writer.toString().indexOf("isDebug: false") > -1);
+    }
+
+    public void testHead3() throws Exception {
+        tag.setTheme("ajax");
+        tag.setDebug("true");
+        tag.doStartTag();
+        Head component = (Head) tag.getComponent(); // must be done between start and end
+        assertTrue(component.isDebug());
+        tag.doEndTag();
+
+        verify(HeadTagTest.class.getResource("HeadTagTest-3.txt"));
+        assertTrue("should have debug true", writer.toString().indexOf("isDebug: true") > -1);
+    }
+
+    public void testHead4() throws Exception {
+        tag.setCalendarcss("my-calendar");
+        tag.doStartTag();
+        tag.doEndTag();
+
+        verify(HeadTagTest.class.getResource("HeadTagTest-4.txt"));
+        assertEquals("my-calendar", tag.getCalendarcss());
+    }
+
+    public void testHead4b() throws Exception {
+        tag.setCalendarcss("my-calendar.css");
+        tag.doStartTag();
+        Head component = (Head) tag.getComponent(); // must be done between start and end
+        assertEquals("my-calendar.css", component.getCalendarcss());
+        tag.doEndTag();
+
+        verify(HeadTagTest.class.getResource("HeadTagTest-4.txt"));
+        assertEquals("my-calendar.css", tag.getCalendarcss());
+    }
+
+    protected void setUp() throws Exception {
+        super.setUp();
+        tag = new HeadTag();
+        tag.setPageContext(pageContext);
+    }
+
+    protected void tearDown() throws Exception {
+        super.tearDown();
+    }
+
 }
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/HiddenTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/HiddenTest.java
index e110830..0d16385 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/HiddenTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/HiddenTest.java
@@ -74,4 +74,10 @@
         HiddenTag tag = new HiddenTag();
         verifyGenericProperties(tag, "xhtml", null);
     }
+
+    public void testGenericAjax() throws Exception {
+        HiddenTag tag = new HiddenTag();
+        verifyGenericProperties(tag, "ajax", null);
+    }
+
 }
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/LabelTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/LabelTest.java
index d60c129..ebcca0b 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/LabelTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/LabelTest.java
@@ -108,4 +108,10 @@
         LabelTag tag = new LabelTag();
         verifyGenericProperties(tag, "xhtml", null);
     }
+
+    public void testGenericAjax() throws Exception {
+        LabelTag tag = new LabelTag();
+        verifyGenericProperties(tag, "ajax", null);
+    }
+
 }
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/PasswordTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/PasswordTest.java
index 3f4496e..dd9148c 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/PasswordTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/PasswordTest.java
@@ -53,4 +53,10 @@
         PasswordTag tag = new PasswordTag();
         verifyGenericProperties(tag, "xhtml", new String[]{"value"});
     }
+
+    public void testGenericAjax() throws Exception {
+        PasswordTag tag = new PasswordTag();
+        verifyGenericProperties(tag, "ajax", new String[]{"value"});
+    }
+
 }
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/RadioTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/RadioTest.java
index c66c97e..c4b0518 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/RadioTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/RadioTest.java
@@ -111,6 +111,12 @@
         verifyGenericProperties(tag, "xhtml", new String[]{"id","value"});
     }
 
+    public void testGenericAjax() throws Exception {
+        RadioTag tag = new RadioTag();
+        prepareTagGeneric(tag);
+        verifyGenericProperties(tag, "ajax", new String[]{"id","value"});
+    }
+
     private void prepareTagGeneric(RadioTag tag) {
         TestAction testAction = (TestAction) action;
         testAction.setFoo("bar");
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/ResetTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/ResetTest.java
index 922c5c3..e1d8677 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/ResetTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/ResetTest.java
@@ -126,4 +126,10 @@
         ResetTag tag = new ResetTag();
         verifyGenericProperties(tag, "xhtml", null);
     }
+
+    public void testGenericAjax() throws Exception {
+        ResetTag tag = new ResetTag();
+        verifyGenericProperties(tag, "ajax", null);
+    }
+
 }
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/SelectTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/SelectTest.java
index 1456b30..dfcefa0 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/SelectTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/SelectTest.java
@@ -406,6 +406,12 @@
         verifyGenericProperties(tag, "xhtml", new String[]{"value"});
     }
 
+    public void testGenericAjax() throws Exception {
+        SelectTag tag = new SelectTag();
+        prepareTagGeneric(tag);
+        verifyGenericProperties(tag, "ajax", new String[]{"value"});
+    }
+
     public void testMultipleOn() throws Exception {
         SelectTag tag = new SelectTag();
         tag.setPageContext(pageContext);
@@ -438,7 +444,6 @@
         verify(SelectTag.class.getResource("Select-6.txt"));
     }
 
-
     public void testSimpleInteger() throws Exception {
         TestAction testAction = (TestAction) action;
 
@@ -525,7 +530,7 @@
             return id;
         }
     }
-    
+
     private void prepareTagGeneric(SelectTag tag) {
         TestAction testAction = (TestAction) action;
         ArrayList collection = new ArrayList();
diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/SubmitAjaxTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/SubmitAjaxTest.java
similarity index 73%
rename from plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/SubmitAjaxTest.java
rename to core/src/test/java/org/apache/struts2/views/jsp/ui/SubmitAjaxTest.java
index 1fe73c6..d875db3 100644
--- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/SubmitAjaxTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/SubmitAjaxTest.java
@@ -1,5 +1,5 @@
 /*
- * $Id: SubmitAjaxTest.java 508285 2007-02-16 02:42:24Z musachy $
+ * $Id$
  *
  * Copyright 2006 The Apache Software Foundation.
  *
@@ -15,14 +15,31 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.struts2.dojo.views.jsp.ui;
+package org.apache.struts2.views.jsp.ui;
 
-import org.apache.struts2.dojo.TestAction;
+import org.apache.struts2.TestAction;
+import org.apache.struts2.views.jsp.AbstractUITagTest;
 
 /**
  * Test Submit component in "ajax" theme.
  */
 public class SubmitAjaxTest extends AbstractUITagTest {
+
+    public void testGenericSimple() throws Exception {
+        AbstractRemoteCallUITag tag = new DivTag();
+        verifyGenericProperties(tag, "simple", new String[]{"value","tabindex","disabled"});
+    }
+
+    public void testGenericXhtml() throws Exception {
+        AbstractRemoteCallUITag tag = new DivTag();
+        verifyGenericProperties(tag, "xhtml", new String[]{"value","tabindex","disabled"});
+    }
+
+    public void testGenericAjax() throws Exception {
+        AbstractRemoteCallUITag tag = new DivTag();
+        verifyGenericProperties(tag, "ajax", new String[]{"value","tabindex","disabled"});
+    }
+
     public void testSubmit() throws Exception {
         TestAction testAction = (TestAction) action;
         testAction.setFoo("bar");
@@ -31,19 +48,19 @@
         tag.setPageContext(pageContext);
 
         tag.setId("a");
+        tag.setTheme("ajax");
         tag.setHref("b");
         tag.setLoadingText("c");
         tag.setErrorText("d");
         tag.setListenTopics("e");
-        tag.setBeforeNotifyTopics("f");
-        tag.setAfterNotifyTopics("g");
+        tag.setPreInvokeJS("f");
+        tag.setOnLoadJS("g");
         tag.setHandler("h");
         tag.setType("submit");
         tag.setLabel("i");
         tag.setNotifyTopics("k");
         tag.setIndicator("l");
         tag.setShowLoadingText("true");
-        tag.setErrorNotifyTopics("m");
         tag.doStartTag();
         tag.doEndTag();
 
@@ -63,14 +80,13 @@
         tag.setLoadingText("c");
         tag.setErrorText("d");
         tag.setListenTopics("e");
-        tag.setBeforeNotifyTopics("f");
-        tag.setAfterNotifyTopics("g");
+        tag.setPreInvokeJS("f");
+        tag.setOnLoadJS("g");
         tag.setHandler("h");
         tag.setType("button");
         tag.setLabel("i");
         tag.setNotifyTopics("k");
         tag.setIndicator("l");
-        tag.setErrorNotifyTopics("m");
         tag.doStartTag();
         tag.doEndTag();
 
@@ -90,15 +106,14 @@
         tag.setLoadingText("c");
         tag.setErrorText("d");
         tag.setListenTopics("e");
-        tag.setBeforeNotifyTopics("f");
-        tag.setAfterNotifyTopics("g");
+        tag.setPreInvokeJS("f");
+        tag.setOnLoadJS("g");
         tag.setHandler("h");
         tag.setType("image");
         tag.setLabel("i");
         tag.setSrc("j");
         tag.setNotifyTopics("k");
         tag.setIndicator("l");
-        tag.setErrorNotifyTopics("m");
         tag.doStartTag();
         tag.doEndTag();
 
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/SubmitTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/SubmitTest.java
index c1a8b9c..fca88e5 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/SubmitTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/SubmitTest.java
@@ -264,4 +264,9 @@
         verifyGenericProperties(tag, "xhtml", null);
     }
 
+    public void testGenericAjax() throws Exception {
+        SubmitTag tag = new SubmitTag();
+        verifyGenericProperties(tag, "ajax", null);
+    }
+
 }
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/TextareaTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/TextareaTest.java
index 068ee58..64bde30 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/TextareaTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/TextareaTest.java
@@ -82,4 +82,10 @@
         TextareaTag tag = new TextareaTag();
         verifyGenericProperties(tag, "xhtml", new String[] {"value"});
     }
+
+    public void testGenericAjax() throws Exception {
+        TextareaTag tag = new TextareaTag();
+        verifyGenericProperties(tag, "ajax", new String[] {"value"});
+    }
+
 }
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/TextfieldTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/TextfieldTest.java
index af006ff..ade6947 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/TextfieldTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/TextfieldTest.java
@@ -60,6 +60,11 @@
         verifyGenericProperties(tag, "xhtml", null);
     }
 
+    public void testGenericAjax() throws Exception {
+        TextFieldTag tag = new TextFieldTag();
+        verifyGenericProperties(tag, "ajax", null);
+    }
+
     public void testErrors() throws Exception {
         TestAction testAction = (TestAction) action;
         testAction.setFoo("bar");
diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/TreeTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/TreeTest.java
similarity index 96%
rename from plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/TreeTest.java
rename to core/src/test/java/org/apache/struts2/views/jsp/ui/TreeTest.java
index b09044d..5a95337 100644
--- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/TreeTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/TreeTest.java
@@ -1,5 +1,5 @@
 /*
- * $Id: TreeTest.java 471756 2006-11-06 15:01:43Z husted $
+ * $Id$
  *
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -18,8 +18,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.struts2.dojo.views.jsp.ui;
+package org.apache.struts2.views.jsp.ui;
 
+import org.apache.struts2.views.jsp.AbstractUITagTest;
 
 import com.opensymphony.xwork2.Action;
 import com.opensymphony.xwork2.ActionSupport;
@@ -35,6 +36,7 @@
         tag.setShowRootGrid("false");
         tag.setShowGrid("false");
         tag.setTemplateCssPath("/struts/tree.css");
+        tag.setTheme("ajax");
         tag.setPageContext(pageContext);
         tag.setId("rootId");
         tag.setLabel("Root");
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/UpDownSelectTagTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/UpDownSelectTagTest.java
index 3d9a2fd..c693494 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/UpDownSelectTagTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/UpDownSelectTagTest.java
@@ -230,6 +230,12 @@
         verifyGenericProperties(tag, "xhtml", new String[]{"value"});
     }
 
+    public void testGenericAjax() throws Exception {
+        UpDownSelectTag tag = new UpDownSelectTag();
+        prepareTagGeneric(tag);
+        verifyGenericProperties(tag, "ajax", new String[]{"value"});
+    }
+
     private void prepareTagGeneric(UpDownSelectTag tag) {
         tag.setList("myMap");
     }
diff --git a/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java b/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java
index 6d0007a..5d2cc54 100644
--- a/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java
+++ b/core/src/test/java/org/apache/struts2/views/util/UrlHelperTest.java
@@ -20,6 +20,7 @@
  */
 package org.apache.struts2.views.util;
 
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
@@ -28,7 +29,6 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.struts2.StrutsConstants;
 import org.apache.struts2.StrutsTestCase;
 
 import com.mockobjects.dynamic.Mock;
@@ -74,22 +74,6 @@
         assertEquals(expectedUrl, result);
     }
 
-
-    public void testBuildParametersStringWithUrlHavingSomeExistingParameters() throws Exception {
-        String expectedUrl = "http://localhost:8080/myContext/myPage.jsp?initParam=initValue&amp;param1=value1&amp;param2=value2";
-
-        Map parameters = new LinkedHashMap();
-        parameters.put("param1", "value1");
-        parameters.put("param2", "value2");
-
-        StringBuffer url = new StringBuffer("http://localhost:8080/myContext/myPage.jsp?initParam=initValue");
-
-        UrlHelper.buildParametersString(parameters, url);
-
-        assertEquals(
-           expectedUrl, url.toString());
-    }
-
     public void testForceAddNullSchemeHostAndPort() throws Exception {
         String expectedUrl = "http://localhost/contextPath/path1/path2/myAction.action";
 
@@ -109,6 +93,21 @@
             null, true, true, true);
         assertEquals(expectedUrl, result);
         mockHttpServletRequest.verify();
+    }        
+
+    public void testBuildParametersStringWithUrlHavingSomeExistingParameters() throws Exception {
+        String expectedUrl = "http://localhost:8080/myContext/myPage.jsp?initParam=initValue&amp;param1=value1&amp;param2=value2";
+
+        Map parameters = new LinkedHashMap();
+        parameters.put("param1", "value1");
+        parameters.put("param2", "value2");
+
+        StringBuffer url = new StringBuffer("http://localhost:8080/myContext/myPage.jsp?initParam=initValue");
+
+        UrlHelper.buildParametersString(parameters, url);
+
+        assertEquals(
+           expectedUrl, url.toString());
     }
 
     public void testBuildWithRootContext() {
@@ -319,6 +318,31 @@
         assertEquals(result.size(), 0);
     }
 
+    public void testParseMultiQuery() throws Exception {
+        Map result = UrlHelper.parseQueryString("param=1&param=1&param=1");
+        
+        assertNotNull(result);
+        assertEquals(result.size(), 1);
+        String values[] = (String[]) result.get("param");
+        Arrays.sort(values);
+        assertEquals(values.length, 3);
+        assertEquals(values[0], "1");
+        assertEquals(values[1], "1");
+        assertEquals(values[2], "1");
+    }
+
+    public void testParseDuplicateQuery() throws Exception {
+        Map result = UrlHelper.parseQueryString("param=1&param=2&param=3");
+        
+        assertNotNull(result);
+        assertEquals(result.size(), 1);
+        String values[] = (String[]) result.get("param");
+        Arrays.sort(values);
+        assertEquals(values.length, 3);
+        assertEquals(values[0], "1");
+        assertEquals(values[1], "2");
+        assertEquals(values[2], "3");
+    }
 
     public void testTranslateAndEncode() throws Exception {
         UrlHelper.setCustomEncoding("UTF-8");
diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Autocompleter-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Autocompleter-1.txt
similarity index 99%
rename from plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Autocompleter-1.txt
rename to core/src/test/resources/org/apache/struts2/views/jsp/ui/Autocompleter-1.txt
index 125235b..c77a5aa 100644
--- a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Autocompleter-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Autocompleter-1.txt
@@ -1,7 +1,7 @@
 <input

  dojoType="struts:ComboBox"

- dataUrl="a"

  id="f"

+ dataUrl="a"

  forceValidOption="false"

  searchType="B"

  autoComplete="true"

diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Autocompleter-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Autocompleter-2.txt
similarity index 92%
rename from plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Autocompleter-2.txt
rename to core/src/test/resources/org/apache/struts2/views/jsp/ui/Autocompleter-2.txt
index b6bbb7e..97e944a 100644
--- a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/Autocompleter-2.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Autocompleter-2.txt
@@ -1,6 +1,7 @@
 <select

  dojoType="struts:ComboBox"

  id="f"

+ dataUrl="a"

  forceValidOption="false"

  searchType="B"

  autoComplete="true"

@@ -9,7 +10,6 @@
  dropdownHeight="10"

  name="f"

  keyName="fKey"

- visibleDownArrow="true"

  buttonSrc="i"

  templateCssPath="j"

  >

diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/DateTimePickerTagTest-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/DateTimePickerTagTest-1.txt
new file mode 100644
index 0000000..b26416f
--- /dev/null
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/DateTimePickerTagTest-1.txt
@@ -0,0 +1,23 @@
+<tr>
+    <td class="tdLabel"></td>
+    <td>
+    <script type="text/javascript">
+	    dojo.require("dojo.widget.DatePicker");
+	</script>
+    
+    <div dojoType="dropdowndatepicker" 
+         id="id"
+         lang="i"
+         name="dojo.h"
+         inputName="h"
+         displayWeeks="true"
+         adjustWeeks="true"
+         startDate="e"
+         endDate="d"
+         weekStartsOn="g"
+         staticDisplay="false"
+         templateCssPath="j"
+         saveFormat="rfc">
+    </div>
+</td>
+</tr>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-11.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-11.txt
index 4ab7807..f9d4c99 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-11.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-11.txt
@@ -2,7 +2,7 @@
 <form namespace="" id="myAction" name="myForm" onsubmit="submitMe(); return validateForm_myAction();" action="/myAction.action" method="POST" enctype="myEncType" title="mytitle" accept-charset="UTF-8">
 <table class="wwFormTable"> <tr>
     <td class="tdLabel"></td>
-    <td>	<script language="javascript" src="/struts/optiontransferselect.js"></script>
+    <td>	<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myUpDownSelectTag" size="5" id="myAction_myUpDownSelectTag" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-2.txt
index 2fa6788..38f1daf 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-2.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-2.txt
@@ -2,7 +2,7 @@
 <form namespace="" id="myAction" name="myForm" onsubmit="submitMe(); return validateForm_myAction();" action="/myAction.action" method="POST" enctype="myEncType" title="mytitle" accept-charset="UTF-8">
 <table class="wwFormTable"> <tr>
     <td class="tdLabel"></td>
-    <td>	<script language="javascript" src="/struts/optiontransferselect.js"></script>
+    <td>	<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myUpDownSelectTag" size="5" id="myAction_myUpDownSelectTag" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-6.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-6.txt
index 219f1c8..b49b9d6 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-6.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-6.txt
@@ -1,7 +1,7 @@
 <form namespace="" id="myAction" name="myForm" onsubmit="submitMe(); return true;" action="myAction" method="POST" enctype="myEncType" title="mytitle">
 <table class="wwFormTable"> <tr>
     <td class="tdLabel"></td>
-    <td>	<script language="javascript" src="/struts/optiontransferselect.js"></script>
+    <td>	<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myUpDownSelectTag" size="5" id="myAction_myUpDownSelectTag" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-1.txt
index 0a60783..1b11ce2 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-1.txt
@@ -1 +1,17 @@
-<link rel="stylesheet" href="/struts/xhtml/styles.css" type="text/css"/>
\ No newline at end of file
+<link rel="stylesheet" href="/struts/xhtml/styles.css" type="text/css"/>
+
+<script type="text/javascript">
+	// Dojo configuration
+	djConfig={
+		baseRelativePath: "/struts/dojo",
+		isDebug: false,
+		bindEncoding: "ISO-8859-1",
+		debugAtAllCosts:true
+		//not needed, but allows the Venkman debugger to work with the includes};
+</script>
+
+<script type="text/javascript" src="/struts/dojo/dojo.js">
+</script>
+
+<script type="text/javascript" src="/struts/simple/dojoRequire.js">
+</script>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-2.txt
new file mode 100644
index 0000000..d0f97cb
--- /dev/null
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-2.txt
@@ -0,0 +1,18 @@
+<link rel="stylesheet" href="/struts/xhtml/styles.css" type="text/css"/>
+<script type="text/javascript">
+    // Dojo configuration
+    djConfig = {
+        baseRelativePath: "/struts/dojo",
+        isDebug: false,
+        bindEncoding: "ISO-8859-1",
+        debugAtAllCosts: true // not needed, but allows the Venkman debugger to work with the includes
+    };
+</script>
+<script type="text/javascript"
+        src="/struts/dojo/dojo.js"></script>
+<script type="text/javascript"
+        src="/struts/simple/dojoRequire.js"></script>
+<script type="text/javascript"
+        src="/struts/ajax/dojoRequire.js"></script>
+<script type="text/javascript"
+        src="/struts/CommonFunctions.js"></script>
\ No newline at end of file
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-3.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-3.txt
new file mode 100644
index 0000000..aedbffb
--- /dev/null
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-3.txt
@@ -0,0 +1,18 @@
+<link rel="stylesheet" href="/struts/xhtml/styles.css" type="text/css"/>
+<script type="text/javascript">
+    // Dojo configuration
+    djConfig = {
+        baseRelativePath: "/struts/dojo",
+        isDebug: true,
+        bindEncoding: "ISO-8859-1",
+        debugAtAllCosts: true // not needed, but allows the Venkman debugger to work with the includes
+    };
+</script>
+<script type="text/javascript"
+        src="/struts/dojo/dojo.js"></script>
+<script type="text/javascript"
+        src="/struts/simple/dojoRequire.js"></script>
+<script type="text/javascript"
+        src="/struts/ajax/dojoRequire.js"></script>
+<script type="text/javascript"
+        src="/struts/CommonFunctions.js"></script>
\ No newline at end of file
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-4.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-4.txt
new file mode 100644
index 0000000..1b11ce2
--- /dev/null
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/HeadTagTest-4.txt
@@ -0,0 +1,17 @@
+<link rel="stylesheet" href="/struts/xhtml/styles.css" type="text/css"/>
+
+<script type="text/javascript">
+	// Dojo configuration
+	djConfig={
+		baseRelativePath: "/struts/dojo",
+		isDebug: false,
+		bindEncoding: "ISO-8859-1",
+		debugAtAllCosts:true
+		//not needed, but allows the Venkman debugger to work with the includes};
+</script>
+
+<script type="text/javascript" src="/struts/dojo/dojo.js">
+</script>
+
+<script type="text/javascript" src="/struts/simple/dojoRequire.js">
+</script>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/Select-12.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/Select-12.txt
old mode 100644
new mode 100755
diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/TabbedPanel-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-1.txt
similarity index 100%
rename from plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/TabbedPanel-1.txt
rename to core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-1.txt
diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/TabbedPanel-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-2.txt
similarity index 100%
rename from plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/TabbedPanel-2.txt
rename to core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-2.txt
diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/TabbedPanel-3.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-3.txt
similarity index 100%
rename from plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/TabbedPanel-3.txt
rename to core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-3.txt
diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/TabbedPanel-4.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-4.txt
similarity index 100%
rename from plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/TabbedPanel-4.txt
rename to core/src/test/resources/org/apache/struts2/views/jsp/ui/TabbedPanel-4.txt
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/div-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/div-1.txt
index 4793fe9..0d6782a 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/div-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/div-1.txt
@@ -1,3 +1,21 @@
 <div
-  id="mylabel">
+  dojoType="struts:BindDiv"
+  delay="4000"
+  updateFreq="1000"
+  autoStart="true"
+  startTimerListenTopics="h"
+  stopTimerListenTopics="i"
+  refreshOnShow="true"
+  scriptSeparation="false"
+  id="mylabel"
+  href="a"
+  loadingText="b"
+  errorText="c"
+  listenTopics="g"
+  beforeLoading="j"
+  afterLoading="k"
+  handler="l"
+  indicator="m"
+  showError="true"
+  showLoading="true">
 </div>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/href-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/href-1.txt
index f735d59..1dbd08c 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/href-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/href-1.txt
@@ -1,4 +1,16 @@
 <a
+ dojoType="struts:BindAnchor"
  id="mylink"
- href="a">
+ href="a"
+ loadingText="d"
+ errorText="c"
+ listenTopics="g"
+ notifyTopics="j"
+ beforeLoading="f"
+ afterLoading="e"
+ targets="h"
+ handler="i"
+ indicator="k"
+ showError="true"
+ showLoading="true">
 </a>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/inputtransferselect-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/inputtransferselect-1.txt
index 6f6a812..cc8b0ad 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/inputtransferselect-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/inputtransferselect-1.txt
@@ -1,7 +1,7 @@
 <tr>
   <tdclass="tdLabel"></td>
   <td>
-  <scriptlanguage="javascript"src="/struts/inputtransferselect.js"></script>
+  <script type="text/javascript" src="/struts/inputtransferselect.js"></script>
   <tableborder="0">
   <tr><td><input type="text" name="collection_input" id="collection_input"/></td>
       <td valign="middle"align="center"><inputtype="button"value="-&gt;"onclick="addOption(document.getElementById('collection_input'),document.getElementById('collection'))"/>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-1.txt
index 27e8657..d207b84 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-1.txt
@@ -1,7 +1,7 @@
 <tr> 
 <td class="tdLabel"></td> 
 <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table border="0">
 <tr>
 <td>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-2.txt
index a03b0f5..e5cb12e 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-2.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-2.txt
@@ -1,7 +1,7 @@
 <tr> 
 <td class="tdLabel"></td>
 <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table border="0">
 <tr>
 <td>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-3.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-3.txt
index e98da10..98b72dc 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-3.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-3.txt
@@ -1,7 +1,7 @@
 <tr> 
 <td class="tdLabel"></td>
 <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table border="0">
 <tr>
 <td>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-4.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-4.txt
index c60e450..e0f54df 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-4.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-4.txt
@@ -1,7 +1,7 @@
 <tr> 
 <td class="tdLabel"></td>
 <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table border="0">
 <tr>
 <td>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-5.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-5.txt
index 04c0609..0b41a52 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-5.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-5.txt
@@ -1,7 +1,7 @@
 <tr> 
 <td class="tdLabel"></td> 
 <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table border="0">
 <tr>
 <td>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-6.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-6.txt
index 511d36e..3465eb4 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-6.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-6.txt
@@ -1,7 +1,7 @@
 <tr> 
 <td class="tdLabel"></td>
 <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table border="0">
 <tr>
 <td>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-7.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-7.txt
index bea9f53..daac7f3 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-7.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/optiontransferselect-7.txt
@@ -1,7 +1,7 @@
 <tr> 
 <td class="tdLabel"></td>
 <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table border="0">
 <tr>
 <td>
diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-1.txt
similarity index 68%
rename from plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-1.txt
rename to core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-1.txt
index d13a556..1e6cd23 100644
--- a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-1.txt
@@ -1,3 +1,5 @@
+<tr>
+    <td colspan="2"><div align="right">
 <input
   type="submit"
   dojoType="struts:Bind"
@@ -10,10 +12,12 @@
   errorText="d"
   listenTopics="e"
   notifyTopics="k"
-  beforeNotifyTopics="f"
-  afterNotifyTopics="g"
-  errorNotifyTopics="m"
+  beforeLoading="f"
+  afterLoading="g"
   handler="h"
   indicator="l"
   showLoading="true"
   />
+  </div>
+  </td>
+  </tr>
diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-2.txt
similarity index 66%
rename from plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-2.txt
rename to core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-2.txt
index dda0bd6..78a75e0 100644
--- a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-2.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-2.txt
@@ -1,3 +1,5 @@
+<tr>
+    <td colspan="2"><div align="right">
 <input
   type="button"
   dojoType="struts:Bind"
@@ -9,10 +11,12 @@
   errorText="d"
   listenTopics="e"
   notifyTopics="k"
-  beforeNotifyTopics="f"
-  afterNotifyTopics="g"
-  errorNotifyTopics="m"
+  beforeLoading="f"
+  afterLoading="g"
   handler="h"
   indicator="l"
   value="i"
-  />
\ No newline at end of file
+  />
+  </div>
+  </td>
+  </tr>
diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-3.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-3.txt
similarity index 68%
rename from plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-3.txt
rename to core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-3.txt
index cd45b3e..9272fd3 100644
--- a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/submit-ajax-3.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-3.txt
@@ -1,3 +1,5 @@
+<tr>
+    <td colspan="2"><div align="right">
 <input
   type="image"
   dojoType="struts:Bind"
@@ -12,9 +14,11 @@
   errorText="d"
   listenTopics="e"
   notifyTopics="k"
-  beforeNotifyTopics="f"
-  afterNotifyTopics="g"
-  errorNotifyTopics="m"
+  beforeLoading="f"
+  afterLoading="g"
   handler="h"
   indicator="l"
-  />
\ No newline at end of file
+  />
+  </div>
+  </td>
+  </tr>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-1.txt
index 2a1299a..9cf4dc8 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-1.txt
@@ -16,7 +16,7 @@
 </form>
 
 <!-- javascript that is needed for tooltips -->
-<script type="text/javascript">dojo.require("dojo.widget.html.Tooltip");dojo.require("dojo.fx.html");</script>
+<script type="text/javascript">dojo.require("dojo.widget.Tooltip");dojo.require("dojo.fx.html");</script>
 
 
 
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-2.txt
index 4b552bb..d701ec5 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-2.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-2.txt
@@ -16,4 +16,4 @@
 </form>
 
 <!-- javascript that is needed for tooltips -->
-<script type="text/javascript">dojo.require("dojo.widget.html.Tooltip");dojo.require("dojo.fx.html");</script>
+<script type="text/javascript">dojo.require("dojo.widget.Tooltip");dojo.require("dojo.fx.html");</script>
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-3.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-3.txt
index f43504a..b6288cd 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-3.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/tooltip-3.txt
@@ -16,5 +16,5 @@
 </form>
 
 <!-- javascript that is needed for tooltips -->
-<script type="text/javascript">dojo.require("dojo.widget.html.Tooltip");dojo.require("dojo.fx.html");</script>
+<script type="text/javascript">dojo.require("dojo.widget.Tooltip");dojo.require("dojo.fx.html");</script>
 
diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/tree-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/tree-1.txt
similarity index 100%
rename from plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/tree-1.txt
rename to core/src/test/resources/org/apache/struts2/views/jsp/ui/tree-1.txt
diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/tree-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/tree-2.txt
similarity index 100%
rename from plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/tree-2.txt
rename to core/src/test/resources/org/apache/struts2/views/jsp/ui/tree-2.txt
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-1.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-1.txt
index 3f51a35..e57400c 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-1.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-1.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-10.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-10.txt
index a41c4ec..08ea5b3 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-10.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-10.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-11.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-11.txt
index bb322b2..b902ebd 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-11.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-11.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-2.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-2.txt
index add362f..73bc156 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-2.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-2.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-3.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-3.txt
index 30992b4..8824360 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-3.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-3.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-4.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-4.txt
index 5f84a62..0158aa3 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-4.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-4.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-5.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-5.txt
index 7b80541..65d9749 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-5.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-5.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-6.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-6.txt
index c1d8ccd..ec1ab7e 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-6.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-6.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-7.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-7.txt
index 7b8d635..06e0709 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-7.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-7.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-8.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-8.txt
index 3cbfbfc..ac2c551 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-8.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-8.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-9.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-9.txt
index d6067ce..4baaa90 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-9.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/updownselecttag-9.txt
@@ -1,5 +1,5 @@
 <tr> <td class="tdLabel"></td> <td>
-<script language="javascript" src="/struts/optiontransferselect.js"></script>
+<script type="text/javascript" src="/struts/optiontransferselect.js"></script>
 <table>
 <tr><td>
 <select name="myName" size="5" id="myId" multiple="multiple">
diff --git a/plugins/codebehind/pom.xml b/plugins/codebehind/pom.xml
index 79027a4..ac3af7e 100644
--- a/plugins/codebehind/pom.xml
+++ b/plugins/codebehind/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.7</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-codebehind-plugin</artifactId>
diff --git a/plugins/config-browser/pom.xml b/plugins/config-browser/pom.xml
index cdcb15a..4a975b0 100644
--- a/plugins/config-browser/pom.xml
+++ b/plugins/config-browser/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.7</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-config-browser-plugin</artifactId>
diff --git a/plugins/config-browser/src/main/resources/struts-plugin.xml b/plugins/config-browser/src/main/resources/struts-plugin.xml
index 0aff013..fe7bfc0 100644
--- a/plugins/config-browser/src/main/resources/struts-plugin.xml
+++ b/plugins/config-browser/src/main/resources/struts-plugin.xml
@@ -19,7 +19,7 @@
         </global-results>
 
         <action name="index">
-            <result type="redirectAction">actionNames</result>
+            <result type="redirect-action">actionNames</result>
         </action>
 
         <action name="actionNames" class="org.apache.struts2.config_browser.ActionNamesAction">
diff --git a/plugins/dojo/pom.xml b/plugins/dojo/pom.xml
deleted file mode 100644
index 7f7de24..0000000
--- a/plugins/dojo/pom.xml
+++ /dev/null
@@ -1,198 +0,0 @@
-<?xml version="1.0"?>
-<project>
-    <parent>
-        <artifactId>struts2-plugins</artifactId>
-        <groupId>org.apache.struts</groupId>
-        <version>2.1.0-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>org.apache.struts</groupId>
-    <artifactId>struts2-dojo-plugin</artifactId>
-    <name>Struts2 Dojo Plugin</name>
-
-    <scm>
-        <connection>
-            scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/dojo/
-        </connection>
-        <developerConnection>
-            scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/plugins/dojo/
-        </developerConnection>
-        <url>
-            http://svn.apache.org/viewcvs.cgi/struts/struts2/trunk/plugins/dojo/
-        </url>
-    </scm>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.myfaces.tobago</groupId>
-                <artifactId>maven-apt-plugin</artifactId>
-                <configuration>
-                    <A>
-                        uri=/struts-dojo-tags,tlibVersion=2.2.3,jspVersion=1.2,shortName=sx,displayName="Struts
-                        Dojo Tags",
-                        outFile=${basedir}/target/classes/META-INF/struts-dojo-tags.tld,
-                        description="Struts AJAX tags based on Dojo.",
-                        outTemplatesDir=${basedir}/../../core/src/site/resources/tags/ajax
-                    </A>
-                    <resourceTargetPath>target</resourceTargetPath>
-                    <fork>false</fork>
-                    <force>true</force>
-                    <nocompile>true</nocompile>
-                    <showWarnings>true</showWarnings>
-                    <factory>
-                        org.apache.struts.annotations.taglib.apt.TLDAnnotationProcessorFactory
-                    </factory>
-                    <target>1.5</target>
-                    <includes>
-                        <include>**/*.java</include>
-                    </includes>
-                </configuration>
-                <executions>
-                    <execution>
-                        <phase>compile</phase>
-                        <goals>
-                            <goal>execute</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-    <dependencies>
-        <!-- Core -->
-        <dependency>
-            <groupId>org.apache.struts</groupId>
-            <artifactId>struts2-core</artifactId>
-            <version>${pom.version}</version>
-        </dependency>
-
-        <!-- JSP API -->
-        <dependency>
-            <groupId>javax.servlet</groupId>
-            <artifactId>jsp-api</artifactId>
-            <version>2.0</version>
-            <scope>provided</scope>
-        </dependency>
-
-        <!-- Velocity -->
-        <dependency>
-            <groupId>velocity</groupId>
-            <artifactId>velocity</artifactId>
-            <version>1.4</version>
-            <optional>true</optional>
-        </dependency>
-
-        <!-- Test dependencies -->
-        <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
-            <scope>compile</scope>
-            <version>3.8.1</version>
-            <!-- has to be compile for StrutsTestCase, which is part of the base package so others can write unit tests -->
-            <optional>true</optional>
-        </dependency>
-
-        <dependency>
-            <groupId>org.testng</groupId>
-            <artifactId>testng</artifactId>
-            <version>5.1</version>
-            <optional>true</optional>
-            <classifier>jdk15</classifier>
-        </dependency>
-
-        <dependency>
-            <groupId>jmock</groupId>
-            <artifactId>jmock</artifactId>
-            <version>1.0.1</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <version>2.0</version>
-            <scope>test</scope>
-        </dependency>
-        <!--dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymockclassextension</artifactId>
-            <version>1.1</version>
-            <scope>test</scope>
-            <exclusions>
-            <exclusion>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymock</artifactId>
-            </exclusion>
-            </exclusions>
-            </dependency-->
-
-        <dependency>
-            <groupId>jmock</groupId>
-            <artifactId>jmock-cglib</artifactId>
-            <version>1.0.1</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>mockobjects</groupId>
-            <artifactId>mockobjects-core</artifactId>
-            <version>0.09</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>mockobjects</groupId>
-            <artifactId>mockobjects-jdk1.3</artifactId>
-            <version>0.09</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>mockobjects</groupId>
-            <artifactId>mockobjects-alt-jdk1.3</artifactId>
-            <version>0.09</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>mockobjects</groupId>
-            <artifactId>mockobjects-alt-jdk1.3-j2ee1.3</artifactId>
-            <version>0.09</version>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>mockobjects</groupId>
-            <artifactId>mockobjects-jdk1.3-j2ee1.3</artifactId>
-            <version>0.09</version>
-            <scope>test</scope>
-        </dependency>
-
-
-        <!-- Mocks for unit testing (by Spring) -->
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-mock</artifactId>
-            <version>1.2.8</version>
-            <optional>true</optional>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework</groupId>
-            <artifactId>spring-core</artifactId>
-            <version>1.2.8</version>
-            <scope>test</scope>
-        </dependency>
-        
-         <!-- struts-annotations must be in compile scope for maven-apt-plugin to
-        function correctly. Marking it optional to exclude it from transitive
-        dependency resolution -->
-        <dependency>
-            <groupId>org.apache.struts</groupId>
-            <artifactId>struts-annotations</artifactId>
-            <version>1.0.2-SNAPSHOT</version>
-            <optional>true</optional>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Anchor.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Anchor.java
deleted file mode 100644
index 259ac8a..0000000
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Anchor.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * $Id: Anchor.java 508285 2007-02-16 02:42:24Z musachy $
- *
- * 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.struts2.dojo.components;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.views.annotations.StrutsTag;
-import org.apache.struts2.views.annotations.StrutsTagAttribute;
-import org.apache.struts2.views.annotations.StrutsTagSkipInheritance;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-/**
- * <!-- START SNIPPET: javadoc -->
- *
- * A tag that creates a HTML &lt;a href='' /&gt; that when clicked calls a URL remote XMLHttpRequest call via the dojo
- * framework.<p/>
- *<!-- END SNIPPET: javadoc -->
- * <p/> <b>Examples</b>
- *
- * <pre>
- * <!-- START SNIPPET: example1 -->
- * &lt;s:a id="link1" theme="ajax" href="/DoIt.action" errorText="An error ocurred" loadingText="Loading..."&gt;
- *     &lt;img border="none" src="&lt;%=request.getContextPath()%&gt;/images/delete.gif"/&gt;
- *     &lt;s:param name="id" value="1"/&gt;
- * &lt;/s:a&gt;
- * <!-- END SNIPPET: example1 -->
- * </pre>
- *
- * </p>
- *
- * <!-- START SNIPPET: exampledescription1 -->
- *
- * Results in
- *
- * <!-- END SNIPPET: exampledescription1 -->
- *
- * </p>
- *
- * <pre>
- * <!-- START SNIPPET: example2 -->
- * &lt;a dojoType="BindAnchor" executeScripts="true" id="link1" href="/DoIt.action?id=1" errorText="An error ocurred"&gt;&lt;/a&gt;
- * <!-- END SNIPPET: example2 -->
- * </pre>
- *
- * </p>
- *
- * <!-- START SNIPPET: exampledescription2 -->
- *
- * Here is an example that uses the beforeLoading. This example is in altSyntax=true:
- *
- * <!-- END SNIPPET: exampledescription2 -->
- *
- * </p>
- *
- * <pre>
- * <!-- START SNIPPET: example3 -->
- * &lt;s:a id="test" theme="ajax" href="/simpeResult.action" beforeLoading="confirm('Are you sure?')"&gt;
- *  A
- * &lt;/s:a&gt;
- * <!-- END SNIPPET: example3 -->
- * </pre>
- *
- */
-@StrutsTag(name="a", tldTagClass="org.apache.struts2.dojo.views.jsp.ui.AnchorTag", description="Render a HTML href element that when clicked can optionally call a URL via remote XMLHttpRequest and updates its targets")
-public class Anchor extends AbstractRemoteCallUIBean {
-    public static final String OPEN_TEMPLATE = "a";
-    public static final String TEMPLATE = "a-close";
-    public static final String COMPONENT_NAME = Anchor.class.getName();
-
-    protected String targets;
-
-    public Anchor(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
-        super(stack, request, response);
-    }
-
-    public String getDefaultOpenTemplate() {
-        return OPEN_TEMPLATE;
-    }
-
-    protected String getDefaultTemplate() {
-        return TEMPLATE;
-    }
-
-    public void evaluateExtraParams() {
-        super.evaluateExtraParams();
-
-        if(targets != null)
-            addParameter("targets", findString(targets));
-    }
-    
-    @Override
-    @StrutsTagSkipInheritance
-    public void setTheme(String theme) {
-        super.setTheme(theme);
-    }
-
-    @StrutsTagAttribute(description="Comma delimited list of ids of the elements whose content will be updated")
-    public void setTargets(String targets) {
-        this.targets = targets;
-    }
-}
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Div.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Div.java
deleted file mode 100644
index 91c1454..0000000
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Div.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * $Id: Div.java 511300 2007-02-24 16:41:38Z musachy $
- *
- * 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.struts2.dojo.components;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.views.annotations.StrutsTag;
-import org.apache.struts2.views.annotations.StrutsTagAttribute;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-/**
- * <!-- START SNIPPET: javadoc -->
- * The div tag when used on the ajax theme, provides a remote call
- * from the current page to update a section of content without having to refresh the entire page.
- * <p>
- * It creates a HTML &lt;DIV /&gt; that obtains it's content via a remote XMLHttpRequest call via
- * the dojo framework.
- * </p>
- * <div>
- * 
- * </div><p> <b>Examples</b>
- *
- * <pre>
- *       <!-- START SNIPPET: example -->
- * &lt;s:url id="url" action="AjaxTest" />
- * &lt;s:div
- *    id=&quot;once&quot;
- *    theme=&quot;ajax&quot;
- *    href=&quot;%{url}&quot;
- *    loadingText=&quot;Loading...&quot;
- *    listenTopics=&quot;/refresh&quot;
- *    updateFreq=&quot;3000&quot;
- *    autoStart=&quot;true&quot;
- *    formId=&quot;form&quot;
- *&gt;&lt;/s:div&gt;
- *       <!-- END SNIPPET: example -->
- * </pre>
- * </p>
- *
- */
-@StrutsTag(name="div", tldTagClass="org.apache.struts2.dojo.views.jsp.ui.DivTag", description="Render HTML div providing content from remote call via AJAX")
-public class Div extends AbstractRemoteCallUIBean {
-
-    public static final String TEMPLATE = "div";
-    public static final String TEMPLATE_CLOSE = "div-close";
-    public static final String COMPONENT_NAME = Div.class.getName();
-
-    protected String updateFreq;
-    protected String autoStart;
-    protected String delay;
-    protected String startTimerListenTopics;
-    protected String stopTimerListenTopics;
-    protected String refreshOnShow;
-    protected String separateScripts;
-
-    public Div(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
-        super(stack, request, response);
-    }
-
-    public String getDefaultOpenTemplate() {
-        return TEMPLATE;
-    }
-
-    protected String getDefaultTemplate() {
-        return TEMPLATE_CLOSE;
-    }
-
-    public void evaluateExtraParams() {
-        super.evaluateExtraParams();
-
-        if (updateFreq != null)
-            addParameter("updateFreq", findValue(updateFreq, Integer.class));
-        if (autoStart != null)
-            addParameter("autoStart", findValue(autoStart, Boolean.class));
-        if (refreshOnShow != null)
-            addParameter("refreshOnShow", findValue(refreshOnShow, Boolean.class));
-        if (delay != null)
-            addParameter("delay", findValue(delay, Integer.class));
-        if (startTimerListenTopics != null)
-            addParameter("startTimerListenTopics", findString(startTimerListenTopics));
-        if (stopTimerListenTopics != null)
-            addParameter("stopTimerListenTopics", findString(stopTimerListenTopics));
-        if (separateScripts != null)
-            addParameter("separateScripts", findValue(separateScripts, Boolean.class));
-    }
-
-    @StrutsTagAttribute(description="Start timer automatically", type="Boolean", defaultValue="true")
-    public void setAutoStart(String autoStart) {
-        this.autoStart = autoStart;
-    }
-
-    @StrutsTagAttribute(description="How long to wait before fetching the content (in milliseconds)",  type="Integer")
-    public void setDelay(String delay) {
-        this.delay = delay;
-    }
-
-    @StrutsTagAttribute(description="How often to reload the content (in milliseconds)", type="Integer")
-    public void setUpdateFreq(String updateInterval) {
-        this.updateFreq = updateInterval;
-    }
-
-    @StrutsTagAttribute(description="Topics that will start the timer (for autoupdate)")
-    public void setStartTimerListenTopics(String startTimerListenTopic) {
-        this.startTimerListenTopics = startTimerListenTopic;
-    }
-
-    @StrutsTagAttribute(description="Topics that will stop the timer (for autoupdate)")
-    public void setStopTimerListenTopics(String stopTimerListenTopic) {
-        this.stopTimerListenTopics = stopTimerListenTopic;
-    }
-
-    @StrutsTagAttribute(description="Content will be loaded when div becomes visible, used only inside the tabbedpanel tag", type="Boolean", defaultValue="false")
-    public void setRefreshOnShow(String refreshOnShow) {
-        this.refreshOnShow = refreshOnShow;
-    }
-
-    @StrutsTagAttribute(description="Run scripts in a separate scope, unique for each Div", defaultValue="true")
-    public void setSeparateScripts(String separateScripts) {
-        this.separateScripts = separateScripts;
-    }
-}
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Form.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Form.java
deleted file mode 100644
index 25a3305..0000000
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Form.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * "$Id$"
- *
- * 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.struts2.dojo.components;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.views.annotations.StrutsTag;
-import org.apache.struts2.views.annotations.StrutsTagSkipInheritance;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-/**
- * TODO
- *
- */
-@StrutsTag(name="form", tldTagClass="org.apache.struts2.dojo.views.jsp.ui.FormTag", description="Renders an input form")
-public class Form extends org.apache.struts2.components.Form {
-
-    public Form(ValueStack stack, HttpServletRequest request,
-        HttpServletResponse response) {
-        super(stack, request, response);
-    }
-
-    @Override
-    @StrutsTagSkipInheritance
-    public void setTheme(String theme) {
-        super.setTheme(theme);
-    }
-    
-    @Override
-    public String getTheme() {
-        return "ajax";
-    }
-}
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Head.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Head.java
deleted file mode 100644
index c4162b3..0000000
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Head.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2.dojo.components;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.views.annotations.StrutsTag;
-import org.apache.struts2.views.annotations.StrutsTagAttribute;
-import org.apache.struts2.views.annotations.StrutsTagSkipInheritance;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-/**
- * <!-- START SNIPPET: javadoc -->
- *
- * Renders parts of the HEAD section for an HTML file. This is useful as some themes require certain CSS and JavaScript
- * includes.<p/>
- *
- * If, for example, your page has ajax components integrated, without having the default theme set to ajax, you might
- * want to use the head tag with <b>theme="ajax"</b> so that the typical ajax header setup will be included in the
- * page.<p/>
- *
- * If you use the ajax theme you can turn a debug flag on by setting the debug parameter to <tt>true</tt>.
- *
- * <!-- END SNIPPET: javadoc -->
- *
- * <p/> <b>Examples</b>
- *
- * <pre>
- * <!-- START SNIPPET: example1 -->
- * &lt;head&gt;
- *   &lt;title&gt;My page&lt;/title&gt;
- *   &lt;s:head/&gt;
- * &lt;/head&gt;
- * <!-- END SNIPPET: example1 -->
- * </pre>
- *
- * <pre>
- * <!-- START SNIPPET: example3 -->
- * &lt;head&gt;
- *   &lt;title&gt;My page&lt;/title&gt;
- *   &lt;s:head debug="true"/&gt;
- * &lt;/head&gt;
- * <!-- END SNIPPET: example3 -->
- * </pre>
- *
- */
-@StrutsTag(name="head", tldBodyContent="empty", tldTagClass="org.apache.struts2.dojo.views.jsp.ui.HeadTag",
-    description="Render a chunk of HEAD for your HTML file")
-public class Head extends org.apache.struts2.components.Head {
-    public static final String TEMPLATE = "head";
-
-    private boolean debug;
-
-    public Head(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
-        super(stack, request, response);
-    }
-
-    protected String getDefaultTemplate() {
-        return TEMPLATE;
-    }
-
-    public void evaluateParams() {
-        super.evaluateParams();
-
-        addParameter("debug", Boolean.valueOf(debug).toString());
-    }
-
-    @Override
-    @StrutsTagSkipInheritance
-    public void setTheme(String theme) {
-        super.setTheme(theme);
-    }
-    
-    @Override
-    public String getTheme() {
-        return "ajax";
-    }
-    
-    public boolean isDebug() {
-        return debug;
-    }
-
-    @StrutsTagAttribute(description="Set to true to enable Dojo debug messages", defaultValue="false")
-    public void setDebug(boolean debug) {
-        this.debug = debug;
-    }
-}
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Submit.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Submit.java
deleted file mode 100644
index 6f4374a..0000000
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/components/Submit.java
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * $Id: Submit.java 508285 2007-02-16 02:42:24Z musachy $
- *
- * 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.struts2.dojo.components;
-
-import java.io.Writer;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.struts2.components.FormButton;
-import org.apache.struts2.views.annotations.StrutsTag;
-import org.apache.struts2.views.annotations.StrutsTagAttribute;
-import org.apache.struts2.views.annotations.StrutsTagSkipInheritance;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-/**
- * <!-- START SNIPPET: javadoc -->
- * Render a submit button. The submit tag is used together with the form tag to provide asynchronous form submissions.
- * The submit can have three different types of rendering:
- * <ul>
- * <li>input: renders as html &lt;input type="submit"...&gt;</li>
- * <li>image: renders as html &lt;input type="image"...&gt;</li>
- * <li>button: renders as html &lt;button type="submit"...&gt;</li>
- * </ul>
- * Please note that the button type has advantages by adding the possibility to seperate the submitted value from the
- * text shown on the button face, but has issues with Microsoft Internet Explorer at least up to 6.0
- * <!-- END SNIPPET: javadoc -->
- *
- * <p/> <b>Examples</b>
- * <pre>
- * <!-- START SNIPPET: example -->
- * &lt;s:submit value="%{'Submit'}" /&gt;
- * <!-- END SNIPPET: example -->
- * </pre>
- * <pre>
- * <!-- START SNIPPET: example2 -->
- * Render an image submit:
- * &lt;s:submit type="image" value="%{'Submit'}" label="Submit the form" src="submit.gif"/&gt;
- * <!-- END SNIPPET: example2 -->
- * </pre>
- * <pre>
- * <!-- START SNIPPET: example3 -->
- * Render an button submit:
- * &lt;s:submit type="button" value="%{'Submit'}" label="Submit the form"/&gt;
- * <!-- END SNIPPET: example3 -->
- * </pre>
- *
- * <!-- START SNIPPET: ajxExDescription1 -->
- * Show the results in another div. If you want your results to be shown in
- * a div, use the resultDivId where the id is the id of the div you want them
- * shown in. This is an inner HTML approah. Your results get jammed into
- * the div for you. Here is a sample of this approach:
- * <!-- END SNIPPET: ajxExDescription1 -->
- *
- * <pre>
- * <!-- START SNIPPET: ajxExample1 -->
- * Remote form replacing another div:
- * &lt;div id='two' style="border: 1px solid yellow;"&gt;Initial content&lt;/div&gt;
- * &lt;s:form
- *       id='theForm2'
- *       cssStyle="border: 1px solid green;"
- *       action='/AjaxRemoteForm.action'
- *       method='post'
- *       theme="ajax"&gt;
- *
- *   &lt;input type='text' name='data' value='Struts User' /&gt;
- *   &lt;s:submit value="GO2" theme="ajax" resultDivId="two" /&gt;
- *
- * &lt;/s:form &gt;
- * <!-- END SNIPPET: ajxExample1 -->
- * </pre>
- *
- */
-@StrutsTag(name="submit", tldTagClass="org.apache.struts2.dojo.views.jsp.ui.SubmitTag", description="Render a submit button")
-public class Submit extends FormButton implements RemoteUICallBean {
-    
-    private static final Log LOG = LogFactory.getLog(Submit.class);
-    
-    final public static String TEMPLATE = "submit";
-
-    protected String href;
-    protected String errorText;
-    protected String executeScripts;
-    protected String loadingText;
-    protected String listenTopics;
-    protected String handler;
-    protected String formId;
-    protected String formFilter;
-    protected String src;
-    protected String notifyTopics;
-    protected String showErrorTransportText;
-    protected String indicator;
-    protected String showLoadingText;
-    protected String targets;
-    protected String beforeNotifyTopics;
-    protected String afterNotifyTopics;
-    protected String errorNotifyTopics;
-
-    public Submit(ValueStack stack, HttpServletRequest request, HttpServletResponse response) {
-        super(stack, request, response);
-    }
-
-    protected String getDefaultTemplate() {
-        return TEMPLATE;
-    }
-
-    public void evaluateParams() {
-        if ((key == null) && (value == null)) {
-            value = "Submit";
-        }
-
-        if (((key != null)) && (value == null)) {
-            this.value = "%{getText('"+key +"')}";
-        }
-
-        super.evaluateParams();
-    }
-
-    public void evaluateExtraParams() {
-        super.evaluateExtraParams();
-
-        if (href != null)
-            addParameter("href", findString(href));
-        if (errorText != null)
-            addParameter("errorText", findString(errorText));
-        if (loadingText != null)
-            addParameter("loadingText", findString(loadingText));
-        if (executeScripts != null)
-            addParameter("executeScripts", findValue(executeScripts, Boolean.class));
-        if (listenTopics != null)
-            addParameter("listenTopics", findString(listenTopics));
-        if (notifyTopics != null)
-            addParameter("notifyTopics", findString(notifyTopics));
-        if (handler != null)
-            addParameter("handler", findString(handler));
-        if (formId != null)
-            addParameter("formId", findString(formId));
-        if (formFilter != null)
-            addParameter("formFilter", findString(formFilter));
-        if (src != null)
-            addParameter("src", findString(src));
-        if (indicator != null)
-            addParameter("indicator", findString(indicator));
-        if (targets != null)
-            addParameter("targets", findString(targets));
-        if (showLoadingText != null)
-            addParameter("showLoadingText", findString(showLoadingText));
-        if (showLoadingText != null)
-            addParameter("showLoadingText", findString(showLoadingText));
-        if (beforeNotifyTopics != null)
-            addParameter("beforeNotifyTopics", findString(beforeNotifyTopics));
-        if (afterNotifyTopics != null)
-            addParameter("afterNotifyTopics", findString(afterNotifyTopics));
-        if (errorNotifyTopics != null)
-            addParameter("errorNotifyTopics", findString(errorNotifyTopics));
-    }
-
-    @Override
-    @StrutsTagSkipInheritance
-    public void setTheme(String theme) {
-        super.setTheme(theme);
-    }
-    
-    @Override
-    public String getTheme() {
-        return "ajax";
-    }
-    
-    /**
-     * Indicate whether the concrete button supports the type "image".
-     *
-     * @return <tt>true</tt> to indicate type image is supported.
-     */
-    protected boolean supportsImageType() {
-        return true;
-    }
-    
-    /**
-     * Overrides to be able to render body in a template rather than always before the template
-     */
-    public boolean end(Writer writer, String body) {
-        evaluateParams();
-        try {
-            addParameter("body", body);
-            
-            mergeTemplate(writer, buildTemplateName(template, getDefaultTemplate()));
-        } catch (Exception e) {
-            LOG.error("error when rendering", e);
-        }
-        finally {
-            popComponentStack();
-        }
-
-        return false;
-    }
-
-    @StrutsTagAttribute(description="Topic that will trigger the remote call")
-    public void setListenTopics(String listenTopics) {
-        this.listenTopics = listenTopics;
-    }
-
-    @StrutsTagAttribute(description="The URL to call to obtain the content. Note: If used with ajax context, the value must be set as an url tag value.")
-    public void setHref(String href) {
-        this.href = href;
-    }
-
-    @StrutsTagAttribute(description="The text to display to the user if the is an error fetching the content")
-    public void setErrorText(String errorText) {
-        this.errorText = errorText;
-    }
-
-    @StrutsTagAttribute(description="Javascript code in the fetched content will be executed", type="Boolean", defaultValue="false")
-    public void setExecuteScripts(String executeScripts) {
-        this.executeScripts = executeScripts;
-    }
-
-    @StrutsTagAttribute(description="Text to be shown while content is being fetched", defaultValue="Loading...")
-    public void setLoadingText(String loadingText) {
-        this.loadingText = loadingText;
-    }
-
-    @StrutsTagAttribute(description="Javascript function name that will make the request")
-    public void setHandler(String handler) {
-        this.handler = handler;
-    }
-
-    @StrutsTagAttribute(description="Function name used to filter the fields of the form.")
-    public void setFormFilter(String formFilter) {
-        this.formFilter = formFilter;
-    }
-
-    @StrutsTagAttribute(description="Form id whose fields will be serialized and passed as parameters")
-    public void setFormId(String formId) {
-        this.formId = formId;
-    }
-
-    @StrutsTagAttribute(description="Supply an image src for <i>image</i> type submit button. Will have no effect for types <i>input</i> and <i>button</i>.")
-    public void setSrc(String src) {
-        this.src = src;
-    }
-
-    @StrutsTagAttribute(description="Comma delimited list of ids of the elements whose content will be updated")
-    public void setTargets(String targets) {
-        this.targets = targets;
-    }
-
-    @StrutsTagAttribute(description="Comma delimmited list of topics that will published before and after the request, and on errors")
-    public void setNotifyTopics(String notifyTopics) {
-        this.notifyTopics = notifyTopics;
-    }
-
-    @StrutsTagAttribute(description="Set whether errors will be shown or not", type="Boolean", defaultValue="true")
-    public void setShowErrorTransportText(String showErrorTransportText) {
-        this.showErrorTransportText = showErrorTransportText;
-    }
-
-    @StrutsTagAttribute(description="Set indicator")
-    public void setIndicator(String indicator) {
-        this.indicator = indicator;
-    }
-
-    @StrutsTagAttribute(description="Show loading text on targets", type="Boolean", defaultValue="true")
-    public void setShowLoadingText(String showLoadingText) {
-        this.showLoadingText = showLoadingText;
-    }
-    
-    @StrutsTagAttribute(description="The css class to use for element")
-    public void setCssClass(String cssClass) {
-        super.setCssClass(cssClass);
-    }
-
-    @StrutsTagAttribute(description="The css style to use for element")
-    public void setCssStyle(String cssStyle) {
-        super.setCssStyle(cssStyle);
-    }
-
-    @StrutsTagAttribute(description="The id to use for the element")
-    public void setId(String id) {
-        super.setId(id);
-    }
-
-    @StrutsTagAttribute(description="The name to set for element")
-    public void setName(String name) {
-        super.setName(name);
-    }
-
-    @StrutsTagAttribute(description="The type of submit to use. Valid values are <i>input</i>, " +
-        "<i>button</i> and <i>image</i>.", defaultValue="input")
-    public void setType(String type) {
-        super.setType(type);
-    }
-
-    @StrutsTagAttribute(description="Preset the value of input element.")
-    public void setValue(String value) {
-        super.setValue(value);
-    }
-
-    @StrutsTagAttribute(description="Label expression used for rendering a element specific label")
-    public void setLabel(String label) {
-        super.setLabel(label);
-    }
-    
-    @StrutsTagAttribute(description="Comma delimmited list of topics that will published after the request(if the request succeeds)")
-    public void setAfterNotifyTopics(String afterNotifyTopics) {
-        this.afterNotifyTopics = afterNotifyTopics;
-    }
-
-    @StrutsTagAttribute(description="Comma delimmited list of topics that will published before the request")
-    public void setBeforeNotifyTopics(String beforeNotifyTopics) {
-        this.beforeNotifyTopics = beforeNotifyTopics;
-    }
-
-    @StrutsTagAttribute(description="Comma delimmited list of topics that will published after the request(if the request fails)")
-    public void setErrorNotifyTopics(String errorNotifyTopics) {
-        this.errorNotifyTopics = errorNotifyTopics;
-    }
-}
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/DojoTagLibrary.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/DojoTagLibrary.java
deleted file mode 100644
index 45204e8..0000000
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/DojoTagLibrary.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package org.apache.struts2.dojo.views;
-
-import java.util.Arrays;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.components.Head;
-import org.apache.struts2.dojo.views.freemarker.tags.DojoModels;
-import org.apache.struts2.dojo.views.velocity.components.AnchorDirective;
-import org.apache.struts2.dojo.views.velocity.components.AutocompleterDirective;
-import org.apache.struts2.dojo.views.velocity.components.DateTimePickerDirective;
-import org.apache.struts2.dojo.views.velocity.components.DivDirective;
-import org.apache.struts2.dojo.views.velocity.components.FormDirective;
-import org.apache.struts2.dojo.views.velocity.components.SubmitDirective;
-import org.apache.struts2.dojo.views.velocity.components.TabbedPanelDirective;
-import org.apache.struts2.dojo.views.velocity.components.TreeDirective;
-import org.apache.struts2.dojo.views.velocity.components.TreeNodeDirective;
-import org.apache.struts2.views.TagLibrary;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-public class DojoTagLibrary implements TagLibrary {
-
-    public Object getFreemarkerModels(ValueStack stack, HttpServletRequest req,
-            HttpServletResponse res) {
-        
-        return new DojoModels(stack, req, res);
-    }
-
-    public List<Class> getVelocityDirectiveClasses() {
-        Class[] directives = new Class[] {
-            DateTimePickerDirective.class,
-            DivDirective.class,
-            AutocompleterDirective.class,
-            AnchorDirective.class,
-            SubmitDirective.class,
-            TabbedPanelDirective.class,
-            TreeDirective.class,
-            TreeNodeDirective.class,
-            FormDirective.class,
-            Head.class
-        };
-        return Arrays.asList(directives);
-    }
-
-}
\ No newline at end of file
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/DojoModels.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/DojoModels.java
deleted file mode 100644
index 4d6804c..0000000
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/DojoModels.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package org.apache.struts2.dojo.views.freemarker.tags;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.views.freemarker.tags.AnchorModel;
-import org.apache.struts2.views.freemarker.tags.DivModel;
-import org.apache.struts2.views.freemarker.tags.SubmitModel;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-public class DojoModels {
-    protected DateTimePickerModel dateTimePicker;
-    protected TabbedPanelModel tabbedPanel;
-    protected TreeModel treeModel;
-    protected TreeNodeModel treenodeModel;
-    protected AutocompleterModel autocompleter;
-    protected DivModel div;
-    protected AnchorModel a;
-    protected SubmitModel submit;
-    protected FormModel form;
-    
-    private ValueStack stack;
-    private HttpServletRequest req;
-    private HttpServletResponse res;
-    
-    public DojoModels(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
-        this.stack = stack;
-        this.req = req;
-        this.res = res;
-    }
-    
-    public DateTimePickerModel getDatetimepicker() {
-        if (dateTimePicker == null) {
-            dateTimePicker = new DateTimePickerModel(stack, req, res);
-        }
-
-        return dateTimePicker;
-    }
-    
-    public FormModel getForm() {
-        if (form == null) {
-            form = new FormModel(stack, req, res);
-        }
-
-        return form;
-    }
-    
-    public AutocompleterModel getAutocompleter() {
-        if (autocompleter == null) {
-            autocompleter = new AutocompleterModel(stack, req, res);
-        }
-
-        return autocompleter;
-    }
-    
-    public TabbedPanelModel getTabbedpanelModel() {
-        if (tabbedPanel == null) {
-            tabbedPanel = new TabbedPanelModel(stack, req, res);
-        }
-
-        return tabbedPanel;
-    }
-    
-    public TreeModel getTree() {
-        if (treeModel == null) {
-            treeModel = new TreeModel(stack,req, res);
-        }
-        return treeModel;
-    }
-
-    public TreeNodeModel getTreenode() {
-        if (treenodeModel == null) {
-            treenodeModel = new TreeNodeModel(stack, req, res);
-        }
-        return treenodeModel;
-    }
-    
-    public DivModel getDiv() {
-        if (div == null) {
-            div = new DivModel(stack, req, res);
-        }
-
-        return div;
-    }
-    
-    public AnchorModel getA() {
-        if (a == null) {
-            a = new AnchorModel(stack, req, res);
-        }
-
-        return a;
-    }
-    
-    public SubmitModel getSubmit() {
-        if (submit == null) {
-            submit = new SubmitModel(stack, req, res);
-        }
-
-        return submit;
-    }
-}
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/FormModel.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/FormModel.java
deleted file mode 100644
index 056c105..0000000
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/FormModel.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * "$Id$"
- *
- * 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.struts2.dojo.views.freemarker.tags;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.Form;
-import org.apache.struts2.views.freemarker.tags.TextFieldModel;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-/**
- * @see Form
- */
-public class FormModel extends TextFieldModel {
-
-    public FormModel(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
-        super(stack, req, res);
-    }
-
-    protected Component getBean() {
-        return new Form(stack, req, res);
-    }
-}
\ No newline at end of file
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/HeadModel.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/HeadModel.java
deleted file mode 100644
index 70100ff..0000000
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/freemarker/tags/HeadModel.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2.dojo.views.freemarker.tags;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.Head;
-import org.apache.struts2.views.freemarker.tags.TagModel;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-/**
- * @see Head
- */
-public class HeadModel extends TagModel {
-    public HeadModel(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
-        super(stack, req, res);
-    }
-
-    protected Component getBean() {
-        return new Head(stack, req, res);
-    }
-}
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AnchorTag.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AnchorTag.java
deleted file mode 100644
index ef0edbd..0000000
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/AnchorTag.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * $Id: AnchorTag.java 490079 2006-12-24 22:46:07Z husted $
- *
- * 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.struts2.dojo.views.jsp.ui;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.Anchor;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-/**
- * @see Anchor
- */
-public class AnchorTag extends AbstractRemoteCallUITag {
-
-    private static final long serialVersionUID = -1034616578492431113L;
-
-    protected String targets;
-    protected String preInvokeJS;
-
-    public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
-        return new Anchor(stack, req, res);
-    }
-
-    protected void populateParams() {
-        super.populateParams();
-
-        Anchor link = (Anchor) component;
-        link.setTargets(targets);
-    }
-
-    public void setTargets(String targets) {
-        this.targets = targets;
-    }
-}
-
-
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/DivTag.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/DivTag.java
deleted file mode 100644
index 7831cbd..0000000
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/DivTag.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * $Id: DivTag.java 511300 2007-02-24 16:41:38Z musachy $
- *
- * 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.struts2.dojo.views.jsp.ui;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.Div;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-public class DivTag extends AbstractRemoteCallUITag {
-
-    private static final long serialVersionUID = 5309231035916461758L;
-
-    protected String updateFreq;
-    protected String autoStart;
-    protected String delay;
-    protected String startTimerListenTopics;
-    protected String stopTimerListenTopics;
-    protected String refreshOnShow;
-    protected String separateScripts;
-    
-    public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
-        return new Div(stack, req, res);
-    }
-
-    protected void populateParams() {
-        super.populateParams();
-
-        Div div = (Div) component;
-        div.setUpdateFreq(updateFreq);
-        div.setAutoStart(autoStart);
-        div.setDelay(delay);
-        div.setStartTimerListenTopics(startTimerListenTopics);
-        div.setStopTimerListenTopics(stopTimerListenTopics);
-        div.setRefreshOnShow(refreshOnShow);
-        div.setSeparateScripts(separateScripts);
-    }
-
-    public void setAutoStart(String autoStart) {
-        this.autoStart = autoStart;
-    }
-
-    public void setDelay(String delay) {
-        this.delay = delay;
-    }
-
-    public void setUpdateFreq(String updateInterval) {
-        this.updateFreq = updateInterval;
-    }
-
-    public void setStartTimerListenTopics(String startTimerListenTopic) {
-        this.startTimerListenTopics = startTimerListenTopic;
-    }
-
-    public void setStopTimerListenTopics(String stopTimerListenTopic) {
-        this.stopTimerListenTopics = stopTimerListenTopic;
-    }
-
-    public void setRefreshOnShow(String refreshOnShow) {
-        this.refreshOnShow = refreshOnShow;
-    }
-
-    public void setSeparateScripts(String separateScripts) {
-        this.separateScripts = separateScripts;
-    }
-}
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/FormTag.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/FormTag.java
deleted file mode 100644
index 08d3ba3..0000000
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/FormTag.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * "$Id$"
- *
- * 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.struts2.dojo.views.jsp.ui;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.Form;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-
-public class FormTag extends org.apache.struts2.views.jsp.ui.FormTag{
-
-    @Override
-    public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
-        return new Form(stack, req, res);
-    }
-
-}
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/HeadTag.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/HeadTag.java
deleted file mode 100644
index b273cc3..0000000
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/HeadTag.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2.dojo.views.jsp.ui;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.Head;
-import org.apache.struts2.views.jsp.ui.AbstractUITag;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-/**
- * @see Head
- */
-public class HeadTag extends AbstractUITag {
-
-    private static final long serialVersionUID = 6876765769175246030L;
-
-    private String debug;
-
-    public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
-        return new Head(stack, req, res);
-    }
-
-    protected void populateParams() {
-        super.populateParams();
-        if (debug != null) {
-            ((Head) component).setDebug(Boolean.valueOf(debug).booleanValue());
-        }
-    }
-
-    public void setDebug(String debug) {
-        this.debug = debug;
-    }
-}
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/SubmitTag.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/SubmitTag.java
deleted file mode 100644
index 451f65b..0000000
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/jsp/ui/SubmitTag.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * $Id: SubmitTag.java 508285 2007-02-16 02:42:24Z musachy $
- *
- * 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.struts2.dojo.views.jsp.ui;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.Submit;
-import org.apache.struts2.views.jsp.ui.AbstractUITag;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-/**
- * @see Submit
- */
-public class SubmitTag extends AbstractUITag {
-
-    private static final long serialVersionUID = 2179281109958301343L;
-
-    protected String action;
-    protected String method;
-    protected String align;
-    protected String type;
-    protected String href;
-    protected String listenTopics;
-    protected String notifyTopics;
-    protected String loadingText;
-    protected String errorText;
-    protected String executeScripts;
-    protected String handler;
-    protected String formId;
-    protected String formFilter;
-    protected String src;
-    protected String showErrorTransportText;
-    protected String indicator;
-    protected String showLoadingText;
-    protected String targets;
-    protected String beforeNotifyTopics;
-    protected String afterNotifyTopics;
-    protected String errorNotifyTopics;
-
-    public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
-        return new Submit(stack, req, res);
-    }
-
-    protected void populateParams() {
-        super.populateParams();
-
-        Submit submit = ((Submit) component);
-        submit.setAction(action);
-        submit.setMethod(method);
-        submit.setAlign(align);
-        submit.setType(type);
-        submit.setHref(href);
-        submit.setListenTopics(listenTopics);
-        submit.setLoadingText(loadingText);
-        submit.setErrorText(errorText);
-        submit.setExecuteScripts(executeScripts);
-        submit.setHandler(handler);
-        submit.setFormFilter(formFilter);
-        submit.setFormId(formId);
-        submit.setSrc(src);
-        submit.setTargets(targets);
-        submit.setNotifyTopics(notifyTopics);
-        submit.setShowErrorTransportText(showErrorTransportText);
-        submit.setIndicator(indicator);
-        submit.setShowLoadingText(showLoadingText);
-        submit.setAfterNotifyTopics(afterNotifyTopics);
-        submit.setBeforeNotifyTopics(beforeNotifyTopics);
-        submit.setErrorNotifyTopics(errorNotifyTopics);
-    }
-
-    public void setAction(String action) {
-        this.action = action;
-    }
-
-    public void setMethod(String method) {
-        this.method = method;
-    }
-
-    public void setAlign(String align) {
-        this.align = align;
-    }
-
-    public String getType() {
-        return type;
-    }
-
-    public void setType(String type) {
-        this.type = type;
-    }
-
-    public void setHref(String href) {
-        this.href = href;
-    }
-
-    public void setErrorText(String errorText) {
-        this.errorText = errorText;
-    }
-
-    public void setLoadingText(String loadingText) {
-        this.loadingText = loadingText;
-    }
-
-    public void setListenTopics(String listenTopics) {
-        this.listenTopics = listenTopics;
-    }
-
-    public void setExecuteScripts(String executeScripts) {
-        this.executeScripts = executeScripts;
-    }
-
-    public void setHandler(String handler) {
-        this.handler = handler;
-    }
-
-    public void setFormFilter(String formFilter) {
-        this.formFilter = formFilter;
-    }
-
-    public void setFormId(String formId) {
-        this.formId = formId;
-    }
-
-    public void setSrc(String src) {
-        this.src = src;
-    }
-
-    public void setTargets(String targets) {
-        this.targets = targets;
-    }
-
-    public void setNotifyTopics(String notifyTopics) {
-        this.notifyTopics = notifyTopics;
-    }
-
-    public void setShowErrorTransportText(String showErrorTransportText) {
-        this.showErrorTransportText = showErrorTransportText;
-    }
-
-    public void setIndicator(String indicator) {
-        this.indicator = indicator;
-    }
-
-    public void setShowLoadingText(String showLoadingText) {
-        this.showLoadingText = showLoadingText;
-    }
-
-    public void setAfterNotifyTopics(String afterNotifyTopics) {
-        this.afterNotifyTopics = afterNotifyTopics;
-    }
-
-    public void setBeforeNotifyTopics(String beforeNotifyTopics) {
-        this.beforeNotifyTopics = beforeNotifyTopics;
-    }
-
-    public void setErrorNotifyTopics(String errorNotifyTopics) {
-        this.errorNotifyTopics = errorNotifyTopics;
-    }
-}
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/AnchorDirective.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/AnchorDirective.java
deleted file mode 100644
index c528f5a..0000000
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/AnchorDirective.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * $Id: AnchorDirective.java 471756 2006-11-06 15:01:43Z husted $
- *
- * 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.struts2.dojo.views.velocity.components;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.components.Anchor;
-import org.apache.struts2.components.Component;
-import org.apache.struts2.views.velocity.components.AbstractDirective;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-/**
- * @see Anchor
- */
-public class AnchorDirective extends AbstractDirective {
-    public String getBeanName() {
-        return "a";
-    }
-
-    protected Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
-        return new Anchor(stack, req, res);
-    }
-
-    public int getType() {
-        return BLOCK;
-    }
-}
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/DivDirective.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/DivDirective.java
deleted file mode 100644
index bc651b4..0000000
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/DivDirective.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * $Id: DivDirective.java 494148 2007-01-08 18:41:13Z mrdon $
- *
- * 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.struts2.dojo.views.velocity.components;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.Div;
-import org.apache.struts2.views.velocity.components.AbstractDirective;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-/**
- * @see Div
- */
-public class DivDirective extends AbstractDirective {
-    public String getBeanName() {
-        return "div";
-    }
-
-    protected Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
-        return new Div(stack, req, res);
-    }
-
-    public int getType() {
-        return BLOCK;
-    }
-}
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/FormDirective.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/FormDirective.java
deleted file mode 100644
index 6379738..0000000
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/FormDirective.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2.dojo.views.velocity.components;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.Form;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-/**
- * @see Form
- */
-public class FormDirective {
-    protected Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
-        return new Form(stack, req, res);
-    }
-}
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/HeadDirective.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/HeadDirective.java
deleted file mode 100644
index 1d69053..0000000
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/HeadDirective.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2.dojo.views.velocity.components;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.components.Component;
-import org.apache.struts2.dojo.components.Head;
-import org.apache.struts2.views.velocity.components.AbstractDirective;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-/**
- * @see Head
- */
-public class HeadDirective extends AbstractDirective {
-    protected Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
-        return new Head(stack, req, res);
-    }
-
-    public String getBeanName() {
-        return "head";
-    }
-}
diff --git a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/SubmitDirective.java b/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/SubmitDirective.java
deleted file mode 100644
index bc140dc..0000000
--- a/plugins/dojo/src/main/java/org/apache/struts2/dojo/views/velocity/components/SubmitDirective.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * $Id: SubmitDirective.java 471756 2006-11-06 15:01:43Z husted $
- *
- * 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.struts2.dojo.views.velocity.components;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts2.components.Component;
-import org.apache.struts2.components.Submit;
-import org.apache.struts2.views.velocity.components.AbstractDirective;
-
-import com.opensymphony.xwork2.util.ValueStack;
-
-/**
- * @see Submit
- */
-public class SubmitDirective extends AbstractDirective {
-    public String getBeanName() {
-        return "submit";
-    }
-
-    protected Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
-        return new Submit(stack, req, res);
-    }
-}
diff --git a/plugins/dojo/src/main/resources/META-INF/README.txt b/plugins/dojo/src/main/resources/META-INF/README.txt
deleted file mode 100644
index 71cb1b7..0000000
--- a/plugins/dojo/src/main/resources/META-INF/README.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-TLD file is generated inside META-INF after compilation.
-If META-INF is empty, Maven will not copy it to the "target/classes" folder.
-Please do not remove META-INF, or this file.
\ No newline at end of file
diff --git a/plugins/dojo/src/main/resources/struts-plugin.xml b/plugins/dojo/src/main/resources/struts-plugin.xml
deleted file mode 100644
index 861aad2..0000000
--- a/plugins/dojo/src/main/resources/struts-plugin.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-
-<!DOCTYPE struts PUBLIC
-    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
-    "http://struts.apache.org/dtds/struts-2.0.dtd">
-    
-<struts>
-    <bean type="org.apache.struts2.views.TagLibrary" name="sx" class="org.apache.struts2.dojo.views.DojoTagLibrary" />
-</struts>
\ No newline at end of file
diff --git a/plugins/dojo/src/main/resources/template/ajax/a-close.ftl b/plugins/dojo/src/main/resources/template/ajax/a-close.ftl
deleted file mode 100644
index 937be08..0000000
--- a/plugins/dojo/src/main/resources/template/ajax/a-close.ftl
+++ /dev/null
@@ -1 +0,0 @@
-</a>
diff --git a/plugins/dojo/src/main/resources/template/ajax/datetimepicker.ftl b/plugins/dojo/src/main/resources/template/ajax/datetimepicker.ftl
deleted file mode 100644
index cf15158..0000000
--- a/plugins/dojo/src/main/resources/template/ajax/datetimepicker.ftl
+++ /dev/null
@@ -1,77 +0,0 @@
-<script type="text/javascript">
-    dojo.require("dojo.widget.DatePicker");
-</script>	
-<#include "/${parameters.templateDir}/ajax/controlheader.ftl" />
-<div
-   <#if parameters.type?if_exists == "date">
-     dojoType="dropdowndatepicker"<#rt/>
-   <#else>
-     dojoType="struts:StrutsTimePicker"<#rt/>
-  </#if>
-  <#if parameters.id?if_exists != "">
-    id="${parameters.id?html}"<#rt/>
-  </#if>
-  <#if parameters.nameValue?if_exists != "">
-    value="${parameters.nameValue?html}"<#rt/>
-  </#if>
-  <#if parameters.language?if_exists != "">
-    lang="${parameters.language?html}"<#rt/>
-  </#if>
-  <#if parameters.name?if_exists != "">
-    name="dojo.${parameters.name?html}"<#rt/>
-    inputName="${parameters.name?html}"<#rt/>
-  </#if>
-  <#if parameters.displayWeeks?if_exists != "">
-    displayWeeks="${parameters.displayWeeks?html}"<#rt/>
-  </#if>
-  <#if parameters.adjustWeeks?exists>
-    adjustWeeks="${parameters.adjustWeeks?string?html}"<#rt/>
-  </#if>
-  <#if parameters.startDate?if_exists != "">
-    startDate="${parameters.startDate?html}"<#rt/>
-  </#if>
-  <#if parameters.endDate?if_exists != "">
-    endDate="${parameters.endDate?html}"<#rt/>
-  </#if>
-  <#if parameters.weekStartsOn?if_exists != "">
-    weekStartsOn="${parameters.weekStartsOn?html}"<#rt/>
-  </#if>
-  <#if parameters.staticDisplay?exists>
-    staticDisplay="${parameters.staticDisplay?string?html}"<#rt/>
-  </#if>
-  <#if parameters.dayWidth?if_exists != "">
-    dayWidth="${parameters.dayWidth?html}"<#rt/>
-  </#if>
-  <#if parameters.tabindex?if_exists != "">
-    tabindex="${parameters.tabindex?html}"<#rt/>
-  </#if>
-  <#if parameters.cssClass?if_exists != "">
-    class="${parameters.cssClass?html}"<#rt/>
-  </#if>
-  <#if parameters.cssStyle?if_exists != "">
-    style="${parameters.cssStyle?html}"<#rt/>
-  </#if>
-  <#if parameters.iconPath?if_exists != "">
-    iconURL="<@s.url value='${parameters.iconPath}' encode="false" includeParams='none'/>"<#rt/>
-  </#if>
-  <#if parameters.formatLength?if_exists != "">
-    formatLength="${parameters.formatLength?html}"<#rt/>
-  </#if>
-  <#if parameters.displayFormat?if_exists != "">
-    displayFormat="${parameters.displayFormat?html}"<#rt/>
-  </#if>
-  <#if parameters.toggleType?if_exists != "">
-    containerToggle="${parameters.toggleType?html}"<#rt/>
-  </#if>
-  <#if parameters.toggleDuration?exists>
-    containerToggleDuration="${parameters.toggleDuration?string?html}"<#rt/>
-  </#if>
-  <#if parameters.templateCssPath?exists>
-	templateCssPath="<@s.url value='${parameters.templateCssPath}' encode="false" includeParams='none'/>"
-  </#if>
-  saveFormat="rfc"<#rt/>
-  <#include "/${parameters.templateDir}/simple/scripting-events.ftl" />
-></div>
-<#if parameters.label?if_exists != "">
-	<#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" />
-</#if>	
diff --git a/plugins/dojo/src/main/resources/template/ajax/head.ftl b/plugins/dojo/src/main/resources/template/ajax/head.ftl
deleted file mode 100644
index aa17e23..0000000
--- a/plugins/dojo/src/main/resources/template/ajax/head.ftl
+++ /dev/null
@@ -1,15 +0,0 @@
-<script language="JavaScript" type="text/javascript">
-    // Dojo configuration
-    djConfig = {
-        baseRelativePath: "<@s.url includeParams='none' value='/struts/dojo' includeParams="none" encode='false'/>",
-        isDebug: ${parameters.debug?default(false)?string},
-        bindEncoding: "${parameters.encoding}",
-        debugAtAllCosts: true // not needed, but allows the Venkman debugger to work with the includes
-    };
-</script>
-<script language="JavaScript" type="text/javascript"
-        src="<@s.url value='/struts/dojo/dojo.js' includeParams='none' encode='false'  />"></script>
-<script language="JavaScript" type="text/javascript"
-        src="<@s.url value='/struts/ajax/dojoRequire.js' includeParams='none' encode='false'  />"></script>
-<script language="JavaScript" type="text/javascript"
-        src="<@s.url value='/struts/CommonFunctions.js' includeParams='none' encode='false'/>"></script>
diff --git a/plugins/dojo/src/main/resources/template/ajax/theme.properties b/plugins/dojo/src/main/resources/template/ajax/theme.properties
deleted file mode 100644
index 8b13789..0000000
--- a/plugins/dojo/src/main/resources/template/ajax/theme.properties
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/TestAction.java b/plugins/dojo/src/test/java/org/apache/struts2/dojo/TestAction.java
deleted file mode 100644
index 3f5a252..0000000
--- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/TestAction.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * $Id: TestAction.java 508508 2007-02-16 17:34:22Z hermanns $
- *
- * 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.struts2.dojo;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-
-import com.opensymphony.xwork2.Action;
-import com.opensymphony.xwork2.ActionSupport;
-
-
-/**
- */
-public class TestAction extends ActionSupport {
-
-    private static final long serialVersionUID = -8891365561914451494L;
-
-    private Collection collection;
-    private Collection collection2;
-    private Map map;
-    private String foo;
-    private Integer fooInt;
-    private String result;
-    private String[] array;
-    private String[][] list;
-    private List list2;
-    private List list3;
-
-    public Collection getCollection() {
-        return collection;
-    }
-
-    public void setCollection(Collection collection) {
-        this.collection = collection;
-    }
-
-    public Map getMap() {
-        return map;
-    }
-
-    public void setMap(Map map) {
-        this.map = map;
-    }
-
-    public String getFoo() {
-        return foo;
-    }
-
-    public void setFoo(String foo) {
-        this.foo = foo;
-    }
-
-    public String getResult() {
-        return result;
-    }
-
-    public void setResult(String result) {
-        this.result = result;
-    }
-
-    public String[] getArray() {
-        return array;
-    }
-
-    public void setArray(String[] array) {
-        this.array = array;
-    }
-
-    public String[][] getList() {
-        return list;
-    }
-
-    public void setList(String[][] list) {
-        this.list = list;
-    }
-
-    public List getList2() {
-        return list2;
-    }
-
-    public void setList2(List list2) {
-        this.list2 = list2;
-    }
-
-    public void setList3(List list) {
-        this.list3 = list;
-    }
-
-    public List getList3() {
-        return this.list3;
-    }
-
-    public Collection getCollection2() {
-        return this.collection2;
-    }
-
-    public void setCollection2(Collection collection) {
-        this.collection2 = collection;
-    }
-
-    public Integer getFooInt() {
-        return fooInt;
-    }
-
-    public void setFooInt(Integer fooInt) {
-        this.fooInt = fooInt;
-    }
-
-    public String execute() throws Exception {
-        if (result == null) {
-            result = Action.SUCCESS;
-        }
-
-        return result;
-    }
-
-    public String doInput() throws Exception {
-        return INPUT;
-    }
-
-}
diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AbstractTagTest.java b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AbstractTagTest.java
deleted file mode 100644
index c33c69a..0000000
--- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AbstractTagTest.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * $Id: AbstractTagTest.java 476696 2006-11-19 03:56:18Z tmjee $
- *
- * 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.struts2.dojo.views.jsp.ui;
-
-import java.io.File;
-import java.io.StringWriter;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.jsp.JspWriter;
-
-import org.apache.struts2.ServletActionContext;
-import org.apache.struts2.StrutsTestCase;
-import org.apache.struts2.dispatcher.ApplicationMap;
-import org.apache.struts2.dispatcher.Dispatcher;
-import org.apache.struts2.dispatcher.RequestMap;
-import org.apache.struts2.dispatcher.SessionMap;
-import org.apache.struts2.dojo.TestAction;
-
-import com.mockobjects.dynamic.Mock;
-import com.opensymphony.xwork2.Action;
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.inject.Container;
-import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.ValueStackFactory;
-
-
-/**
- * Base class to extend for unit testing UI Tags.
- *
- */
-public abstract class AbstractTagTest extends StrutsTestCase {
-    protected Action action;
-    protected Map context;
-    protected Map session;
-    protected ValueStack stack;
-
-    /**
-     * contains the buffer that our unit test will write to.  we can later verify this buffer for correctness.
-     */
-    protected StringWriter writer;
-    protected StrutsMockHttpServletRequest request;
-    protected StrutsMockPageContext pageContext;
-    protected HttpServletResponse response;
-    protected StrutsMockServletContext servletContext;
-    
-    protected Mock mockContainer;
-
-    /**
-     * Constructs the action that we're going to test against.  For most UI tests, this default action should be enough.
-     * However, simply override getAction to return a custom Action if you need something more sophisticated.
-     *
-     * @return the Action to be added to the ValueStack as part of the unit test
-     */
-    public Action getAction() {
-        return new TestAction();
-    }
-
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        /**
-         * create our standard mock objects
-         */
-        action = this.getAction();
-        stack = ValueStackFactory.getFactory().createValueStack();
-        context = stack.getContext();
-        stack.push(action);
-
-        request = new StrutsMockHttpServletRequest();
-        request.setAttribute(ServletActionContext.STRUTS_VALUESTACK_KEY, stack);
-        response = new StrutsMockHttpServletResponse();
-        request.setSession(new StrutsMockHttpSession());
-        request.setupGetServletPath("/");
-
-        writer = new StringWriter();
-
-        JspWriter jspWriter = new StrutsMockJspWriter(writer);
-
-        servletContext = new StrutsMockServletContext();
-        servletContext.setRealPath(new File("nosuchfile.properties").getAbsolutePath());
-        servletContext.setServletInfo("Resin");
-
-        pageContext = new StrutsMockPageContext();
-        pageContext.setRequest(request);
-        pageContext.setResponse(response);
-        pageContext.setJspWriter(jspWriter);
-        pageContext.setServletContext(servletContext);
-
-        mockContainer = new Mock(Container.class);
-        Dispatcher du = new Dispatcher(pageContext.getServletContext(), new HashMap());
-        du.init();
-        Dispatcher.setInstance(du);
-        du.setConfigurationManager(configurationManager);
-        session = new SessionMap(request);
-        Map extraContext = du.createContextMap(new RequestMap(request),
-                request.getParameterMap(),
-                session,
-                new ApplicationMap(pageContext.getServletContext()),
-                request,
-                response,
-                pageContext.getServletContext());
-        // let's not set the locale -- there is a test that checks if Dispatcher actually picks this up...
-        // ... but generally we want to just use no locale (let it stay system default)
-        extraContext.remove(ActionContext.LOCALE);
-        stack.getContext().putAll(extraContext);
-
-        context.put(ServletActionContext.HTTP_REQUEST, request);
-        context.put(ServletActionContext.HTTP_RESPONSE, response);
-        context.put(ServletActionContext.SERVLET_CONTEXT, servletContext);
-
-        ActionContext.setContext(new ActionContext(context));
-    }
-
-    protected void tearDown() throws Exception {
-        pageContext.verify();
-        request.verify();
-    }
-}
diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AbstractUITagTest.java b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AbstractUITagTest.java
deleted file mode 100644
index fe68162..0000000
--- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AbstractUITagTest.java
+++ /dev/null
@@ -1,360 +0,0 @@
-/*
- * $Id: AbstractUITagTest.java 474560 2006-11-13 23:09:31Z hermanns $
- *
- * 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.struts2.dojo.views.jsp.ui;
-
-import java.beans.IntrospectionException;
-import java.beans.Introspector;
-import java.beans.PropertyDescriptor;
-import java.io.InputStream;
-import java.lang.reflect.InvocationTargetException;
-import java.net.URL;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.struts2.ServletActionContext;
-import org.apache.struts2.views.jsp.ui.AbstractUITag;
-
-import com.opensymphony.xwork2.ActionContext;
-
-/**
- */
-public abstract class AbstractUITagTest extends AbstractTagTest {
-
-    private static final Log LOG = LogFactory.getLog(AbstractUITagTest.class);
-
-    static final String FREEMARKER_ERROR_EXPECTATION = "Java backtrace for programmers:";
-
-    /**
-     * Simple helper class for generic tag property testing mechanism. Basically it holds a property name, a property
-     * value and an output to be expected in tag output when property was accordingly set.
-     *
-     * @author <a href="mailto:gielen@it-neering.net">Rene Gielen</a>
-     */
-    public class PropertyHolder {
-        String name, value, expectation;
-
-        public String getName() {
-            return name;
-        }
-
-        public String getValue() {
-            return value;
-        }
-
-        public String getExpectation() {
-            return expectation;
-        }
-
-        /**
-         * Construct simple holder with default expectation.
-         *
-         * @param name  The property name to use.
-         * @param value The property value to set.
-         * @see #PropertyHolder(String, String, String)
-         */
-        public PropertyHolder(String name, String value) {
-            this(name, value, null);
-        }
-
-        /**
-         * Construct property holder.
-         *
-         * @param name        The property name to use.
-         * @param value       The property value to set.
-         * @param expectation The expected String to occur in tag output caused by setting given tag property. If
-         *                    <tt>null</tt>, will be set to <pre>name + "=\"" + value + "\"</pre>.
-         */
-        public PropertyHolder(String name, String value, String expectation) {
-            this.name = name;
-            this.value = value;
-            if (expectation != null) {
-                this.expectation = expectation;
-            } else {
-                this.expectation = name + "=\"" + value + "\"";
-            }
-        }
-
-        /**
-         * Convenience method for easily adding anonymous constructed instance to a given map, with {@link #getName()}
-         * as key.
-         *
-         * @param map The map to place this instance in.
-         */
-        public void addToMap(Map map) {
-            if (map != null) {
-                map.put(this.name, this);
-            }
-        }
-    }
-
-    /**
-     * Simple Helper for setting bean properties. Although BeanUtils from oscore should provide bean property setting
-     * functionality, it does not work (at least with my JDK 1.5.0_05), failing in jdk's PropertyDescriptor constructor.
-     * This implementation works safely in any case, and does not add dependency on commons-beanutils for building.
-     * TODO: Check how we can remove this crap again.
-     *
-     * @author <a href="mailto:gielen@it-neering.net">Rene Gielen</a>
-     */
-    public class BeanHelper {
-        Map propDescriptors;
-        Object bean;
-
-        public BeanHelper(Object bean) {
-            this.bean = bean;
-
-            try {
-                PropertyDescriptor[] pds;
-                pds = Introspector.getBeanInfo(bean.getClass()).getPropertyDescriptors();
-                propDescriptors = new HashMap(pds.length + 1, 1f);
-                for (int i = 0; i < pds.length; i ++) {
-                    propDescriptors.put(pds[i].getName(), pds[i]);
-                }
-            } catch (IntrospectionException e) {
-                e.printStackTrace();
-            }
-        }
-
-        public void set(String name, Object value) throws IllegalAccessException, InvocationTargetException {
-            PropertyDescriptor pd = (PropertyDescriptor) propDescriptors.get(name);
-
-            if (pd != null) {
-                pd.getWriteMethod().invoke(bean, new Object[]{value});
-            }
-        }
-
-    }
-
-    /**
-     * Initialize a map of {@link PropertyHolder} for generic tag property testing. Will be used when calling {@link
-     * #verifyGenericProperties(org.apache.struts2.views.jsp.ui.AbstractUITag, String, String[])} as properties to
-     * verify.<p/> This implementation defines testdata for all common AbstractUITag properties and may be overridden in
-     * subclasses.
-     *
-     * @return A Map of PropertyHolders values bound to {@link org.apache.struts2.views.jsp.ui.AbstractUITagTest.PropertyHolder#getName()}
-     *         as key.
-     */
-    protected Map initializedGenericTagTestProperties() {
-        Map result = new HashMap();
-        new PropertyHolder("name", "someName").addToMap(result);
-        new PropertyHolder("id", "someId").addToMap(result);
-        new PropertyHolder("cssClass", "cssClass1", "class=\"cssClass1\"").addToMap(result);
-        new PropertyHolder("cssStyle", "cssStyle1", "style=\"cssStyle1\"").addToMap(result);
-        new PropertyHolder("title", "someTitle").addToMap(result);
-        new PropertyHolder("disabled", "true", "disabled=\"disabled\"").addToMap(result);
-        //new PropertyHolder("label", "label", "label=\"label\"").addToMap(result);
-        //new PropertyHolder("required", "someTitle").addToMap(result);
-        new PropertyHolder("tabindex", "99").addToMap(result);
-        new PropertyHolder("value", "someValue").addToMap(result);
-        new PropertyHolder("onclick", "onclick1").addToMap(result);
-        new PropertyHolder("ondblclick", "ondblclick1").addToMap(result);
-        new PropertyHolder("onmousedown", "onmousedown1").addToMap(result);
-        new PropertyHolder("onmouseup", "onmouseup1").addToMap(result);
-        new PropertyHolder("onmouseover", "onmouseover1").addToMap(result);
-        new PropertyHolder("onmousemove", "onmousemove1").addToMap(result);
-        new PropertyHolder("onmouseout", "onmouseout1").addToMap(result);
-        new PropertyHolder("onfocus", "onfocus1").addToMap(result);
-        new PropertyHolder("onblur", "onblur1").addToMap(result);
-        new PropertyHolder("onkeypress", "onkeypress1").addToMap(result);
-        new PropertyHolder("onkeydown", "onkeydown1").addToMap(result);
-        new PropertyHolder("onkeyup", "onkeyup1").addToMap(result);
-        new PropertyHolder("onclick", "onclick1").addToMap(result);
-        new PropertyHolder("onselect", "onchange").addToMap(result);
-        return result;
-    }
-
-    /**
-     * Do a generic verification that setting certain properties on a tag causes expected output regarding this
-     * property. In most cases you would not call this directly, instead use {@link
-     * #verifyGenericProperties(org.apache.struts2.views.jsp.ui.AbstractUITag, String, String[])}.
-     *
-     * @param tag              The fresh created tag instance to test.
-     * @param theme            The theme to use. If <tt>null</tt>, use configured default theme.
-     * @param propertiesToTest Map of {@link PropertyHolder}s, defining properties to test.
-     * @param exclude          Names of properties to exclude from particular test.
-     * @throws Exception
-     */
-    public void verifyGenericProperties(AbstractUITag tag, String theme, Map propertiesToTest, String[] exclude) throws Exception {
-        if (tag != null && propertiesToTest != null) {
-            List excludeList;
-            if (exclude != null) {
-                excludeList = Arrays.asList(exclude);
-            } else {
-                excludeList = Collections.EMPTY_LIST;
-            }
-
-            tag.setPageContext(pageContext);
-            if (theme != null) {
-                tag.setTheme(theme);
-            }
-
-            BeanHelper beanHelper = new BeanHelper(tag);
-            Iterator it = propertiesToTest.values().iterator();
-            while (it.hasNext()) {
-                PropertyHolder propertyHolder = (PropertyHolder) it.next();
-                if (! excludeList.contains(propertyHolder.getName())) {
-                    beanHelper.set(propertyHolder.getName(), propertyHolder.getValue());
-                }
-            }
-            tag.doStartTag();
-            tag.doEndTag();
-            String writerString = normalize(writer.toString(), true);
-            if (LOG.isInfoEnabled()) {
-                LOG.info("AbstractUITagTest - [verifyGenericProperties]: Tag output is " + writerString);
-            }
-
-            assertTrue("Freemarker error detected in tag output: " + writerString, writerString.indexOf(FREEMARKER_ERROR_EXPECTATION) == -1);
-
-            it = propertiesToTest.values().iterator();
-            while (it.hasNext()) {
-                PropertyHolder propertyHolder = (PropertyHolder) it.next();
-                if (! excludeList.contains(propertyHolder.getName())) {
-                    assertTrue("Expected to find: " + propertyHolder.getExpectation() + " in resulting String: " + writerString, writerString.indexOf(propertyHolder.getExpectation()) > -1);
-                }
-            }
-        }
-    }
-
-    /**
-     * Do a generic verification that setting certain properties on a tag causes expected output regarding this
-     * property. Which properties to test with which expectations will be determined by the Map retrieved by {@link #initializedGenericTagTestProperties()}.
-     *
-     * @param tag              The fresh created tag instance to test.
-     * @param theme            The theme to use. If <tt>null</tt>, use configured default theme.
-     * @param exclude          Names of properties to exclude from particular test.
-     * @throws Exception
-     */
-    public void verifyGenericProperties(AbstractUITag tag, String theme, String[] exclude) throws Exception {
-        verifyGenericProperties(tag, theme, initializedGenericTagTestProperties(), exclude);
-    }
-
-    /**
-     * Attempt to verify the contents of this.writer against the contents of the URL specified.  verify() performs a
-     * trim on both ends
-     *
-     * @param url the HTML snippet that we want to validate against
-     * @throws Exception if the validation failed
-     */
-    public void verify(URL url) throws Exception {
-        if (url == null) {
-            fail("unable to verify a null URL");
-        } else if (this.writer == null) {
-            fail("AbstractJspWriter.writer not initialized.  Unable to verify");
-        }
-
-        StringBuffer buffer = new StringBuffer(128);
-        InputStream in = url.openStream();
-        byte[] buf = new byte[4096];
-        int nbytes;
-
-        while ((nbytes = in.read(buf)) > 0) {
-            buffer.append(new String(buf, 0, nbytes));
-        }
-
-        in.close();
-
-        /**
-         * compare the trimmed values of each buffer and make sure they're equivalent.  however, let's make sure to
-         * normalize the strings first to account for line termination differences between platforms.
-         */
-        String writerString = normalize(writer.toString(), true);
-        String bufferString = normalize(buffer.toString(), true);
-
-        assertEquals(bufferString, writerString);
-    }
-
-    /**
-     * Attempt to verify the contents of this.writer against the contents of the URL specified.  verify() performs a
-     * trim on both ends
-     *
-     * @param url the HTML snippet that we want to validate against
-     * @throws Exception if the validation failed
-     */
-    public void verify(URL url, String[] excluded) throws Exception {
-        if (url == null) {
-            fail("unable to verify a null URL");
-        } else if (this.writer == null) {
-            fail("AbstractJspWriter.writer not initialized.  Unable to verify");
-        }
-
-        StringBuffer buffer = new StringBuffer(128);
-        InputStream in = url.openStream();
-        byte[] buf = new byte[4096];
-        int nbytes;
-
-        while ((nbytes = in.read(buf)) > 0) {
-            buffer.append(new String(buf, 0, nbytes));
-        }
-
-        in.close();
-
-        /**
-         * compare the trimmed values of each buffer and make sure they're equivalent.  however, let's make sure to
-         * normalize the strings first to account for line termination differences between platforms.
-         */
-        String writerString = normalize(writer.toString(), true);
-        String bufferString = normalize(buffer.toString(), true);
-
-        assertEquals(bufferString, writerString);
-    }
-
-    protected void setUp() throws Exception {
-        super.setUp();
-
-        ServletActionContext.setServletContext(pageContext.getServletContext());
-    }
-
-    protected void tearDown() throws Exception {
-        super.tearDown();
-        ActionContext.setContext(null);
-    }
-
-    /**
-     * normalizes a string so that strings generated on different platforms can be compared.  any group of one or more
-     * space, tab, \r, and \n characters are converted to a single space character
-     *
-     * @param obj the object to be normalized.  normalize will perform its operation on obj.toString().trim() ;
-     * @param appendSpace
-     * @return the normalized string
-     */
-    public static String normalize(Object obj, boolean appendSpace) {
-        StringTokenizer st = new StringTokenizer(obj.toString().trim(), " \t\r\n");
-        StringBuffer buffer = new StringBuffer(128);
-
-        while (st.hasMoreTokens()) {
-            buffer.append(st.nextToken());
-
-            /*
-            if (appendSpace && st.hasMoreTokens()) {
-                buffer.append("");
-            }
-            */
-        }
-
-        return buffer.toString();
-    }
-}
diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AnchorTest.java b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AnchorTest.java
deleted file mode 100644
index 4b01be7..0000000
--- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/AnchorTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * $Id: AnchorTest.java 508285 2007-02-16 02:42:24Z musachy $
- *
- * 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.struts2.dojo.views.jsp.ui;
-
-import org.apache.struts2.dojo.TestAction;
-
-/**
- */
-public class AnchorTest extends AbstractUITagTest {
-
-
-    public void testSimple() throws Exception {
-        TestAction testAction = (TestAction) action;
-        testAction.setFoo("bar");
-
-        AnchorTag tag = new AnchorTag();
-        tag.setPageContext(pageContext);
-
-        tag.setId("mylink");
-        tag.setHref("a");
-        tag.setErrorText("c");
-        tag.setLoadingText("d");
-        tag.setBeforeNotifyTopics("e");
-        tag.setAfterNotifyTopics("f");
-        tag.setListenTopics("g");
-        tag.setTargets("h");
-        tag.setHandler("i");
-        tag.setNotifyTopics("j");
-        tag.setIndicator("k");
-        tag.setShowErrorTransportText("true");
-        tag.setShowLoadingText("true");
-        tag.setErrorNotifyTopics("l");
-        tag.doStartTag();
-        tag.doEndTag();
-
-        verify(AnchorTest.class.getResource("href-1.txt"));
-    }
-
-}
diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/DivTest.java b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/DivTest.java
deleted file mode 100644
index 788d844..0000000
--- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/DivTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * $Id: DivTest.java 511300 2007-02-24 16:41:38Z musachy $
- *
- * 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.struts2.dojo.views.jsp.ui;
-
-import org.apache.struts2.dojo.TestAction;
-
-
-/**
- */
-public class DivTest extends AbstractUITagTest {
-
-    public void testSimple() throws Exception {
-        TestAction testAction = (TestAction) action;
-        testAction.setFoo("bar");
-
-        DivTag tag = new DivTag();
-        tag.setPageContext(pageContext);
-
-        tag.setId("mylabel");
-        tag.setHref("a");
-        tag.setLoadingText("b");
-        tag.setErrorText("c");
-        tag.setAutoStart("true");
-        tag.setDelay("4000");
-        tag.setUpdateFreq("1000");
-        tag.setListenTopics("g");
-        tag.setStartTimerListenTopics("h");
-        tag.setStopTimerListenTopics("i");
-        tag.setBeforeNotifyTopics("j");
-        tag.setAfterNotifyTopics("k");
-        tag.setRefreshOnShow("true");
-        tag.setHandler("l");
-        tag.setIndicator("m");
-        tag.setShowLoadingText("true");
-        tag.setSeparateScripts("false");
-        tag.setErrorNotifyTopics("n");
-        tag.doStartTag();
-        tag.doEndTag();
-
-        verify(DivTest.class.getResource("div-1.txt"));
-    }
-
-}
diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest.java b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest.java
deleted file mode 100644
index 69e6091..0000000
--- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * $Id$
- *
- * 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.struts2.dojo.views.jsp.ui;
-
-
-/**
- * Unit test for {@link HeadTag}.
- * <p/>
- * Note: If unit test fails with encoding difference check the src/test/struts.properties
- * and adjust the .txt files accordingly
- *
- */
-public class HeadTagTest extends AbstractUITagTest {
-
-    public void testHead1() throws Exception {
-        HeadTag tag = new HeadTag();
-        tag.setPageContext(pageContext);
-        
-        tag.doStartTag();
-        tag.doEndTag();
-
-        verify(HeadTagTest.class.getResource("HeadTagTest-1.txt"));
-    }
-}
diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/StrutsMockHttpServletRequest.java b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/StrutsMockHttpServletRequest.java
deleted file mode 100644
index 71a2de1..0000000
--- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/StrutsMockHttpServletRequest.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * $Id: StrutsMockHttpServletRequest.java 471756 2006-11-06 15:01:43Z husted $
- *
- * 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.struts2.dojo.views.jsp.ui;
-
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Vector;
-
-import javax.servlet.RequestDispatcher;
-import javax.servlet.http.HttpSession;
-
-import junit.framework.AssertionFailedError;
-
-import com.mockobjects.servlet.MockHttpServletRequest;
-
-
-/**
- * StrutsMockHttpServletRequest
- *
- */
-public class StrutsMockHttpServletRequest extends MockHttpServletRequest {
-
-    Locale locale = Locale.US;
-    private Map attributes = new HashMap();
-    private Map parameterMap = new HashMap();
-    private String context = "";
-    private String pathInfo = "";
-    private String queryString;
-    private String requestURI;
-    private String scheme;
-    private String serverName;
-    private int serverPort;
-    private String encoding;
-    private String requestDispatherString;
-
-
-    public void setAttribute(String s, Object o) {
-        attributes.put(s, o);
-    }
-
-    public Object getAttribute(String s) {
-        return attributes.get(s);
-    }
-
-    public Enumeration getAttributeNames() {
-        Vector v = new Vector();
-        v.addAll(attributes.keySet());
-
-        return v.elements();
-    }
-
-    public String getContextPath() {
-        return this.context;
-    }
-
-    public void setLocale(Locale locale) {
-        this.locale = locale;
-    }
-
-    public Locale getLocale() {
-        return locale;
-    }
-
-    public void setCharacterEncoding(String s) {
-        this.encoding = s;
-    }
-
-    public String getCharacterEncoding() {
-        return encoding;
-    }
-
-    public void setParameterMap(Map parameterMap) {
-        this.parameterMap = parameterMap;
-    }
-
-    public Map getParameterMap() {
-        return parameterMap;
-    }
-
-    public String getParameter(String string) {
-        return (String) parameterMap.get(string);
-    }
-
-    public Enumeration getParameterNames() {
-        return Collections.enumeration(parameterMap.keySet());
-    }
-
-    public String[] getParameterValues(String string) {
-        return (String[]) parameterMap.get(string);
-    }
-
-    public String getPathInfo() {
-        return pathInfo;
-    }
-
-    public void setQueryString(String queryString) {
-        this.queryString = queryString;
-    }
-
-    public String getQueryString() {
-        return queryString;
-    }
-
-    public RequestDispatcher getRequestDispatcher(String string) {
-        this.requestDispatherString = string;
-        return super.getRequestDispatcher(string);
-    }
-
-    /**
-     * Get's the source string that was used in the last getRequestDispatcher method call.
-     */
-    public String getRequestDispatherString() {
-        return requestDispatherString;
-    }
-
-    public void setRequestURI(String requestURI) {
-        this.requestURI = requestURI;
-    }
-
-    public String getRequestURI() {
-        return requestURI;
-    }
-
-    public void setScheme(String scheme) {
-        this.scheme = scheme;
-    }
-
-    public String getScheme() {
-        return scheme;
-    }
-
-    public void setServerName(String serverName) {
-        this.serverName = serverName;
-    }
-
-    public String getServerName() {
-        return serverName;
-    }
-
-    public void setServerPort(int serverPort) {
-        this.serverPort = serverPort;
-    }
-
-    public int getServerPort() {
-        return serverPort;
-    }
-
-    public HttpSession getSession() {
-        HttpSession session = null;
-
-        try {
-            session = super.getSession();
-        } catch (AssertionFailedError e) {
-            //ignore
-        }
-
-        if (session == null) {
-            session = new StrutsMockHttpSession();
-            setSession(session);
-        }
-
-        return session;
-    }
-
-    public void setupGetContext(String context) {
-        this.context = context;
-    }
-
-    public void setupGetPathInfo(String pathInfo) {
-        this.pathInfo = pathInfo;
-    }
-
-    public int getRemotePort() {
-        return 0;
-    }
-
-    public String getLocalName() {
-        return null;
-    }
-
-    public String getLocalAddr() {
-        return null;
-    }
-
-    public int getLocalPort() {
-        return 0;
-    }
-}
diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/StrutsMockHttpServletResponse.java b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/StrutsMockHttpServletResponse.java
deleted file mode 100644
index 21d9334..0000000
--- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/StrutsMockHttpServletResponse.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * $Id: StrutsMockHttpServletResponse.java 490622 2006-12-28 00:55:27Z mrdon $
- *
- * 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.struts2.dojo.views.jsp.ui;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Locale;
-
-import com.mockobjects.servlet.MockHttpServletResponse;
-
-
-/**
- * StrutsMockHttpServletResponse
- *
- */
-public class StrutsMockHttpServletResponse extends MockHttpServletResponse {
-    private Locale locale;
-    private PrintWriter writer;
-    private int status;
-    private String redirectURL;
-
-    public Locale getLocale() {
-        return locale;
-    }
-
-    public void setLocale(Locale locale) {
-        this.locale = locale;
-    }
-
-    public String getContentType() {
-        return null;  //To change body of implemented methods use File | Settings | File Templates.
-    }
-
-    public PrintWriter getWriter() throws IOException {
-        if (writer == null)
-            return new PrintWriter(new ByteArrayOutputStream());
-        else
-            return writer;
-    }
-
-    public void setCharacterEncoding(String string) {
-        //To change body of implemented methods use File | Settings | File Templates.
-    }
-
-    public void setWriter(PrintWriter writer) {
-        this.writer = writer;
-    }
-
-    public String encodeURL(String s) {
-        return s;
-    }
-
-    public String encodeRedirectURL(String s) {
-        return s;
-    }
-
-    public String encodeUrl(String s) {
-        return s;
-    }
-
-    public void setStatus(int i) {
-        this.status = i;
-        super.setStatus(i);
-    }
-
-    public int getStatus() {
-        return status;
-    }
-
-
-    public String getRedirectURL() {
-        return redirectURL;
-    }
-
-    public void sendRedirect(String redirectURL) throws IOException {
-        this.redirectURL = redirectURL;
-        super.sendRedirect(redirectURL);
-    }
-}
diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/StrutsMockHttpSession.java b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/StrutsMockHttpSession.java
deleted file mode 100644
index db82115..0000000
--- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/StrutsMockHttpSession.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * $Id: StrutsMockHttpSession.java 471756 2006-11-06 15:01:43Z husted $
- *
- * 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.struts2.dojo.views.jsp.ui;
-
-import java.util.Enumeration;
-import java.util.Hashtable;
-
-import com.mockobjects.servlet.MockHttpSession;
-
-
-/**
- * StrutsMockHttpSession
- *
- */
-public class StrutsMockHttpSession extends MockHttpSession {
-
-    Hashtable attributes = new Hashtable();
-
-
-    public void setAttribute(String s, Object o) {
-        attributes.put(s, o);
-    }
-
-    public Object getAttribute(String s) {
-        return attributes.get(s);
-    }
-
-    public Enumeration getAttributeNames() {
-        return attributes.keys();
-    }
-
-    public void setExpectedAttribute(String s, Object o) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void setExpectedRemoveAttribute(String s) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void removeAttribute(String s) {
-        attributes.remove(s);
-    }
-
-    public void setupGetAttribute(String s, Object o) {
-        throw new UnsupportedOperationException();
-    }
-
-    public void setupGetAttributeNames(Enumeration enumeration) {
-        throw new UnsupportedOperationException();
-    }
-}
diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/StrutsMockJspWriter.java b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/StrutsMockJspWriter.java
deleted file mode 100644
index 66b8fcf..0000000
--- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/StrutsMockJspWriter.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * $Id: StrutsMockJspWriter.java 471756 2006-11-06 15:01:43Z husted $
- *
- * 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.struts2.dojo.views.jsp.ui;
-
-import java.io.IOException;
-import java.io.StringWriter;
-
-import javax.servlet.jsp.JspWriter;
-
-
-/**
- * Unforunately, the MockJspWriter throws a NotImplementedException when any of the Writer methods are invoked and
- * as you might guess, Velocity uses the Writer methods.  I'velocityEngine subclassed the MockJspWriter for the time being so
- * that we can do testing on the results until MockJspWriter gets fully implemented.
- * <p/>
- * todo replace this once MockJspWriter implements Writer correctly (i.e. doesn't throw NotImplementException)
- */
-public class StrutsMockJspWriter extends JspWriter {
-    StringWriter writer;
-
-    public StrutsMockJspWriter(StringWriter writer) {
-        super(1024, true);
-        this.writer = writer;
-    }
-
-    public void newLine() throws IOException {
-        writer.write("\n");
-    }
-
-    public void print(boolean b) throws IOException {
-        writer.write(String.valueOf(b));
-    }
-
-    public void print(char c) throws IOException {
-        writer.write(String.valueOf(c));
-    }
-
-    public void print(int i) throws IOException {
-        writer.write(i);
-    }
-
-    public void print(long l) throws IOException {
-        writer.write(String.valueOf(l));
-    }
-
-    public void print(float v) throws IOException {
-        writer.write(String.valueOf(v));
-    }
-
-    public void print(double v) throws IOException {
-        writer.write(String.valueOf(v));
-    }
-
-    public void print(char[] chars) throws IOException {
-        writer.write(chars);
-    }
-
-    public void print(String s) throws IOException {
-        writer.write(s);
-    }
-
-    public void print(Object o) throws IOException {
-        writer.write(o.toString());
-    }
-
-    public void println() throws IOException {
-        writer.write("\n");
-    }
-
-    public void println(boolean b) throws IOException {
-        print(b);
-        println();
-    }
-
-    public void println(char c) throws IOException {
-        print(c);
-        println();
-    }
-
-    public void println(int i) throws IOException {
-        print(i);
-        println();
-    }
-
-    public void println(long l) throws IOException {
-        print(l);
-        println();
-    }
-
-    public void println(float v) throws IOException {
-        print(v);
-        println();
-    }
-
-    public void println(double v) throws IOException {
-        print(v);
-        println();
-    }
-
-    public void println(char[] chars) throws IOException {
-        print(chars);
-        println();
-    }
-
-    public void println(String s) throws IOException {
-        print(s);
-        println();
-    }
-
-    public void println(Object o) throws IOException {
-        print(o);
-        println();
-    }
-
-    public void clear() throws IOException {
-    }
-
-    public void clearBuffer() throws IOException {
-    }
-
-    public void close() throws IOException {
-        writer.close();
-    }
-
-    public int getRemaining() {
-        return 0;
-    }
-
-    public void write(char cbuf[], int off, int len) throws IOException {
-        writer.write(cbuf, off, len);
-    }
-
-    public void write(String str) throws IOException {
-        writer.write(str);
-    }
-
-    public void write(int c) throws IOException {
-        writer.write(c);
-    }
-
-    public void write(char[] cbuf) throws IOException {
-        writer.write(cbuf);
-    }
-
-    public void write(String str, int off, int len) throws IOException {
-        writer.write(str, off, len);
-    }
-
-    public void flush() {
-        writer.flush();
-    }
-}
diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/StrutsMockPageContext.java b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/StrutsMockPageContext.java
deleted file mode 100644
index 7a0c214..0000000
--- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/StrutsMockPageContext.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * $Id: StrutsMockPageContext.java 471756 2006-11-06 15:01:43Z husted $
- *
- * 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.struts2.dojo.views.jsp.ui;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-
-import com.mockobjects.servlet.MockPageContext;
-
-
-/**
- */
-public class StrutsMockPageContext extends MockPageContext {
-
-    private Map attributes = new HashMap();
-    private ServletResponse response;
-
-
-    public void setAttribute(String s, Object o) {
-        if ((s == null) || (o == null)) {
-            throw new NullPointerException("PageContext does not accept null attributes");
-        }
-
-        this.attributes.put(s, o);
-    }
-
-    public Object getAttribute(String key) {
-        return attributes.get(key);
-    }
-
-    public Object getAttributes(String key) {
-        return this.attributes.get(key);
-    }
-
-    public void setResponse(ServletResponse response) {
-        this.response = response;
-    }
-
-    public ServletResponse getResponse() {
-        return response;
-    }
-
-    public HttpSession getSession() {
-        HttpSession session = super.getSession();
-
-        if (session == null) {
-            session = ((HttpServletRequest) getRequest()).getSession(true);
-        }
-
-        return session;
-    }
-
-    public Object findAttribute(String s) {
-        return attributes.get(s);
-    }
-
-    public void removeAttribute(String key) {
-        this.attributes.remove(key);
-    }
-}
diff --git a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/StrutsMockServletContext.java b/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/StrutsMockServletContext.java
deleted file mode 100644
index f3f2b8a..0000000
--- a/plugins/dojo/src/test/java/org/apache/struts2/dojo/views/jsp/ui/StrutsMockServletContext.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * $Id: StrutsMockServletContext.java 471756 2006-11-06 15:01:43Z husted $
- *
- * 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.struts2.dojo.views.jsp.ui;
-
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import javax.servlet.RequestDispatcher;
-import javax.servlet.Servlet;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-
-
-/**
- * StrutsMockServletContext
- *
- */
-public class StrutsMockServletContext implements ServletContext {
-
-    String realPath;
-    String servletInfo;
-    Map initParams = new HashMap();
-    Map attributes = new HashMap();
-    InputStream resourceAsStream;
-
-    public void setInitParameter(String name, String value) {
-        initParams.put(name, value);
-    }
-
-    public void setRealPath(String value) {
-        realPath = value;
-    }
-
-    public String getRealPath(String string) {
-        return realPath;
-    }
-
-    public ServletContext getContext(String s) {
-        return null;
-    }
-
-    public int getMajorVersion() {
-        return 0;
-    }
-
-    public int getMinorVersion() {
-        return 0;
-    }
-
-    public String getMimeType(String s) {
-        return null;
-    }
-
-    public Set getResourcePaths(String s) {
-        return null;
-    }
-
-    public URL getResource(String s) throws MalformedURLException {
-        return null;
-    }
-
-    public InputStream getResourceAsStream(String s) {
-        if (resourceAsStream != null) {
-            return resourceAsStream;
-        }
-        return null;
-    }
-
-    public void setResourceAsStream(InputStream is) {
-        this.resourceAsStream = is;
-    }
-
-    public RequestDispatcher getRequestDispatcher(String s) {
-        return null;
-    }
-
-    public RequestDispatcher getNamedDispatcher(String s) {
-        return null;
-    }
-
-    public Servlet getServlet(String s) throws ServletException {
-        return null;
-    }
-
-    public Enumeration getServlets() {
-        return null;
-    }
-
-    public Enumeration getServletNames() {
-        return null;
-    }
-
-    public void log(String s) {
-    }
-
-    public void log(Exception e, String s) {
-    }
-
-    public void log(String s, Throwable throwable) {
-    }
-
-    public String getServerInfo() {
-        return servletInfo;
-    }
-
-    public String getInitParameter(String s) {
-        return (String) initParams.get(s);
-    }
-
-    public Enumeration getInitParameterNames() {
-        return Collections.enumeration(initParams.keySet());
-    }
-
-    public Object getAttribute(String s) {
-        return attributes.get(s);
-    }
-
-    public Enumeration getAttributeNames() {
-        return Collections.enumeration(attributes.keySet());
-    }
-
-    public void setAttribute(String s, Object o) {
-        attributes.put(s, o);
-    }
-
-    public void removeAttribute(String s) {
-        attributes.remove(s);
-    }
-
-    public String getServletContextName() {
-        return null;
-    }
-
-    public void setServletInfo(String servletInfo) {
-        this.servletInfo = servletInfo;
-    }
-}
diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/DateTimePickerTagTest-1.txt b/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/DateTimePickerTagTest-1.txt
deleted file mode 100644
index b264ba2..0000000
--- a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/DateTimePickerTagTest-1.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-<script type="text/javascript">
-    dojo.require("dojo.widget.DatePicker");
-</script>
-
-<div dojoType="dropdowndatepicker" 
-     id="id"
-     lang="i"
-     name="dojo.h"
-     inputName="h"
-     displayWeeks="true"
-     adjustWeeks="true"
-     startDate="e"
-     endDate="d"
-     weekStartsOn="g"
-     staticDisplay="false"
-     templateCssPath="j"
-     saveFormat="rfc">
-</div>
-
diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest-1.txt b/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest-1.txt
deleted file mode 100644
index d24b6e1..0000000
--- a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/HeadTagTest-1.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-<script language="JavaScript" type="text/javascript">
-	// Dojo configuration
-	djConfig={
-		baseRelativePath: "/struts/dojo",
-		isDebug: false,
-		bindEncoding: "ISO-8859-1",
-		debugAtAllCosts: true // not needed, but allows the Venkman debugger to work with the includes
-		};
-</script>
-
-<script language="JavaScript" type="text/javascript" src="/struts/dojo/dojo.js">
-</script>
-
-<script language="JavaScript" type="text/javascript" src="/struts/ajax/dojoRequire.js">
-</script>
-
-<script language="JavaScript" type="text/javascript" src="/struts/CommonFunctions.js">
-</script>
\ No newline at end of file
diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/div-1.txt b/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/div-1.txt
deleted file mode 100644
index 921c3b5..0000000
--- a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/div-1.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-<div
-  dojoType="struts:BindDiv"
-  delay="4000"
-  updateFreq="1000"
-  autoStart="true"
-  startTimerListenTopics="h"
-  stopTimerListenTopics="i"
-  refreshOnShow="true"
-  scriptSeparation="false"
-  id="mylabel"
-  href="a"
-  loadingText="b"
-  errorText="c"
-  listenTopics="g"
-  beforeNotifyTopics="j"
-  afterNotifyTopics="k"
-  errorNotifyTopics="n"
-  handler="l"
-  indicator="m"
-  showError="true"
-  showLoading="true">
-</div>
diff --git a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/href-1.txt b/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/href-1.txt
deleted file mode 100644
index 66c7850..0000000
--- a/plugins/dojo/src/test/resources/org/apache/struts2/dojo/views/jsp/ui/href-1.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-<a
- dojoType="struts:BindAnchor"
- id="mylink"
- href="a"
- loadingText="d"
- errorText="c"
- listenTopics="g"
- notifyTopics="j"
- beforeNotifyTopics="e"
- afterNotifyTopics="f"
- errorNotifyTopics="l"
- targets="h"
- handler="i"
- indicator="k"
- showError="true"
- showLoading="true">
-</a>
diff --git a/plugins/dojo/src/test/resources/struts.properties b/plugins/dojo/src/test/resources/struts.properties
deleted file mode 100644
index 5766ea5..0000000
--- a/plugins/dojo/src/test/resources/struts.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-struts.i18n.encoding=ISO-8859-1
-struts.locale=de_DE
-struts.multipart.saveDir=\temp
-struts.multipart.maxSize=12345
-
-### Load custom property files (does not override struts.properties!)
-struts.custom.properties=test,org/apache/struts2/othertest
-
-# added the MockTag to the path of Tags that the TagDirective will search through
-struts.velocity.tag.path = org.apache.struts2.views.velocity.ui, org.displaytag.tags
-
-struts.ui.templateDir = template
-
-### Load custom default resource bundles
-struts.custom.i18n.resources=testmessages,testmessages2
-
-### XSLT Cache
-struts.xslt.nocache = true
diff --git a/plugins/jasperreports/pom.xml b/plugins/jasperreports/pom.xml
index 9030e89..332a117 100644
--- a/plugins/jasperreports/pom.xml
+++ b/plugins/jasperreports/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.7</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-jasperreports-plugin</artifactId>
diff --git a/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java b/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java
index d193e96..8c9cf37 100644
--- a/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java
+++ b/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/JasperReportsResult.java
@@ -32,7 +32,14 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import net.sf.jasperreports.engine.*;
+import net.sf.jasperreports.engine.JRException;
+import net.sf.jasperreports.engine.JRExporter;
+import net.sf.jasperreports.engine.JRExporterParameter;
+import net.sf.jasperreports.engine.JRParameter;
+import net.sf.jasperreports.engine.JasperExportManager;
+import net.sf.jasperreports.engine.JasperFillManager;
+import net.sf.jasperreports.engine.JasperPrint;
+import net.sf.jasperreports.engine.JasperReport;
 import net.sf.jasperreports.engine.export.JRCsvExporter;
 import net.sf.jasperreports.engine.export.JRCsvExporterParameter;
 import net.sf.jasperreports.engine.export.JRHtmlExporter;
@@ -44,11 +51,11 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-
-import com.opensymphony.xwork2.util.TextUtils;
 import org.apache.struts2.ServletActionContext;
 import org.apache.struts2.dispatcher.StrutsResultSupport;
+
 import com.opensymphony.xwork2.ActionInvocation;
+import com.opensymphony.xwork2.util.TextUtils;
 import com.opensymphony.xwork2.util.ValueStack;
 
 /**
diff --git a/plugins/jfreechart/pom.xml b/plugins/jfreechart/pom.xml
index a087c13..5156b4c 100644
--- a/plugins/jfreechart/pom.xml
+++ b/plugins/jfreechart/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.7</version>
    </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-jfreechart-plugin</artifactId>
@@ -19,68 +19,68 @@
     </scm>
 
     <profiles>
-        <profile>
-            <!--
-                Run the translator for Java 1.4 compatiblity
+    <profile>
+        <!--
+          Run the translator for Java 1.4 compatiblity
 
-                Sample:
-                $ cd struts/struts2/
-                $ mvn clean install -Papps,j4 -Djava14.jar=$JAVA_HOME/../Classes/classes.jar
+          Sample:
+          $ cd struts/struts2/
+          $ mvn clean install -Papps,j4 -Djava14.jar=$JAVA_HOME/../Classes/classes.jar
 
-             -->
-          <id>j4</id>
-          <build>
-            <plugins>
-              <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>retrotranslator-maven-plugin</artifactId>
-                <executions>
-                  <execution>
-                    <id>retrotranslate</id>
-                  </execution>
-                </executions>
-              </plugin>
-              <plugin>
-                <artifactId>maven-jar-plugin</artifactId>
-                <executions>
-                  <execution>
-                    <id>create-j4-jar</id>
-                    <goals><goal>jar</goal></goals>
-                    <configuration>
-                      <classesDirectory>${project.build.directory}/classes-retro</classesDirectory>
-                      <classifier>j4</classifier>
-                      <archive>
-                        <manifestEntries>
-                          <Extension-Name>${project.artifactId}-j4</Extension-Name>
-                          <Specification-Vendor>${project.organization.name}</Specification-Vendor>
-                          <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
-                          <Implementation-Title>${project.description}</Implementation-Title>
-                          <Implementation-Version>${project.version}</Implementation-Version>
-                          <Revision>${scm.revision}</Revision>
-                        </manifestEntries>
-                       </archive>
-                    </configuration>
-                  </execution>
-                </executions>
-              </plugin>
-            </plugins>
-          </build>
-           <dependencies>
-            <dependency>
-              <groupId>sun.jdk</groupId>
-              <artifactId>rt</artifactId>
-              <version>1.4.0</version>
-              <scope>system</scope>
-              <!-- path to rt.jar (on OSX, it's classes.jar) -->
-              <systemPath>${java14.jar}</systemPath>
-            </dependency>
-            <dependency>
-              <groupId>net.sf.retrotranslator</groupId>
-              <artifactId>retrotranslator-runtime</artifactId>
-              <version>1.0.8</version>
-            </dependency>
-          </dependencies>
-        </profile>
+         -->
+        <id>j4</id>
+        <build>
+          <plugins>
+            <plugin>
+              <groupId>org.codehaus.mojo</groupId>
+              <artifactId>retrotranslator-maven-plugin</artifactId>
+              <executions>
+                <execution>
+                  <id>retrotranslate</id>
+                </execution>
+              </executions>
+            </plugin>
+            <plugin>
+              <artifactId>maven-jar-plugin</artifactId>
+              <executions>
+                <execution>
+                  <id>create-j4-jar</id>
+                  <goals><goal>jar</goal></goals>
+                  <configuration>
+                    <classesDirectory>${project.build.directory}/classes-retro</classesDirectory>
+                    <classifier>j4</classifier>
+                    <archive>
+                      <manifestEntries>
+                        <Extension-Name>${project.artifactId}-j4</Extension-Name>
+                        <Specification-Vendor>${project.organization.name}</Specification-Vendor>
+                        <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
+                        <Implementation-Title>${project.description}</Implementation-Title>
+                        <Implementation-Version>${project.version}</Implementation-Version>
+                        <Revision>${scm.revision}</Revision>
+                      </manifestEntries>
+                     </archive>
+                  </configuration>
+                </execution>
+              </executions>
+            </plugin>
+          </plugins>
+        </build>
+         <dependencies>
+          <dependency>
+            <groupId>sun.jdk</groupId>
+            <artifactId>rt</artifactId>
+            <version>1.4.0</version>
+            <scope>system</scope>
+            <!-- path to rt.jar (on OSX, it's classes.jar) -->
+            <systemPath>${java14.jar}</systemPath>
+          </dependency>
+          <dependency>
+            <groupId>net.sf.retrotranslator</groupId>
+            <artifactId>retrotranslator-runtime</artifactId>
+            <version>1.0.8</version>
+          </dependency>
+        </dependencies>
+      </profile>
 
     </profiles>
 
diff --git a/plugins/jsf/pom.xml b/plugins/jsf/pom.xml
index 6673beb..c67cf1b 100644
--- a/plugins/jsf/pom.xml
+++ b/plugins/jsf/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.7</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-jsf-plugin</artifactId>
@@ -19,6 +19,11 @@
     </scm>
 
     <dependencies>
+        <dependency>
+            <groupId>org.apache.struts</groupId>
+            <artifactId>struts-core</artifactId>
+            <version>1.3.5</version>
+        </dependency>
 
         <dependency>
             <groupId>myfaces</groupId>
diff --git a/plugins/pell-multipart/pom.xml b/plugins/pell-multipart/pom.xml
index 270f524..da991b7 100644
--- a/plugins/pell-multipart/pom.xml
+++ b/plugins/pell-multipart/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.7</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-pell-multipart-plugin</artifactId>
diff --git a/plugins/plexus/pom.xml b/plugins/plexus/pom.xml
index 0ce3676..60d05c5 100644
--- a/plugins/plexus/pom.xml
+++ b/plugins/plexus/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.7</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-plexus-plugin</artifactId>
diff --git a/plugins/pom.xml b/plugins/pom.xml
index 7f013aa..c6895ce 100644
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-parent</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.7</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-plugins</artifactId>
@@ -31,7 +31,6 @@
         <module>spring</module>
         <module>struts1</module>
         <module>tiles</module>
-        <module>dojo</module>
     </modules>
 
     <dependencies>
diff --git a/plugins/sitegraph/pom.xml b/plugins/sitegraph/pom.xml
index 96bdd92..7aa0907 100644
--- a/plugins/sitegraph/pom.xml
+++ b/plugins/sitegraph/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.7</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-sitegraph-plugin</artifactId>
diff --git a/plugins/sitemesh/pom.xml b/plugins/sitemesh/pom.xml
index d89bc25..43cb5b7 100644
--- a/plugins/sitemesh/pom.xml
+++ b/plugins/sitemesh/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.7</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-sitemesh-plugin</artifactId>
diff --git a/plugins/spring/pom.xml b/plugins/spring/pom.xml
index 77524f8..7c5740d 100644
--- a/plugins/spring/pom.xml
+++ b/plugins/spring/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.7</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-spring-plugin</artifactId>
diff --git a/plugins/struts1/pom.xml b/plugins/struts1/pom.xml
index bff7800..8bdd7c7 100644
--- a/plugins/struts1/pom.xml
+++ b/plugins/struts1/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.7</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-struts1-plugin</artifactId>
diff --git a/plugins/struts1/src/main/resources/struts-plugin.xml b/plugins/struts1/src/main/resources/struts-plugin.xml
index dbbf4ba..2d7bfae 100644
--- a/plugins/struts1/src/main/resources/struts-plugin.xml
+++ b/plugins/struts1/src/main/resources/struts-plugin.xml
@@ -3,7 +3,7 @@
 <!DOCTYPE struts PUBLIC
     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
     "http://struts.apache.org/dtds/struts-2.0.dtd">
-
+    
 <struts>
     <package name="struts1-default" extends="struts-default">
 
@@ -11,19 +11,19 @@
             <interceptor name="actionForm-reset" class="org.apache.struts2.s1.ActionFormResetInterceptor"/>
             <interceptor name="actionForm-validation" class="org.apache.struts2.s1.ActionFormValidationInterceptor"/>
             <interceptor name="actionForm-commonsValidation" class="org.apache.struts2.s1.ActionFormValidationInterceptor">
-              <param name="pathnames">/org/apache/struts/validator/validator-rules.xml,/WEB-INF/validation.xml</param>
+            	<param name="pathnames">/org/apache/struts/validator/validator-rules.xml,/WEB-INF/validation.xml</param>
             </interceptor>
             <interceptor-stack name="struts1Stack">
-          <interceptor-ref name="staticParams"/>
-          <interceptor-ref name="scopedModelDriven"/>
-          <interceptor-ref name="modelDriven"/>
+	    		<interceptor-ref name="static-params"/>
+	    		<interceptor-ref name="scoped-model-driven"/>
+	    		<interceptor-ref name="model-driven"/>
                 <interceptor-ref name="actionForm-reset"/>
                 <interceptor-ref name="basicStack"/>
                 <interceptor-ref name="actionForm-validation"/>
                 <interceptor-ref name="workflow"/>
-        </interceptor-stack>
+	    	</interceptor-stack>
         </interceptors>
-
+        
         <default-interceptor-ref name="struts1Stack"/>
     </package>
 
diff --git a/plugins/tiles/pom.xml b/plugins/tiles/pom.xml
index 4c29b22..c4d9b34 100644
--- a/plugins/tiles/pom.xml
+++ b/plugins/tiles/pom.xml
@@ -5,7 +5,7 @@
     <parent>
         <groupId>org.apache.struts</groupId>
         <artifactId>struts2-plugins</artifactId>
-        <version>2.1.0-SNAPSHOT</version>
+        <version>2.0.7</version>
     </parent>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-tiles-plugin</artifactId>
@@ -22,7 +22,7 @@
         <dependency>
             <groupId>org.apache.tiles</groupId>
             <artifactId>tiles-core</artifactId>
-            <version>2.0.1</version>
+            <version>2.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>javax.servlet</groupId>
diff --git a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
index d6d7ea4..3bbe4fc 100644
--- a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
+++ b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesContainerFactory.java
@@ -98,13 +98,13 @@
             return factory.createApplicationContext(context);
         }
 
-        public TilesRequestContext createRequestContext(TilesApplicationContext tilesApplicationContext, PageContext pageContext) {
-            TilesRequestContext context = factory.createRequestContext(tilesApplicationContext, pageContext);
+        public TilesRequestContext createRequestContext(TilesApplicationContext tilesApplicationContext, Object request, Object response) {
+            TilesRequestContext context = factory.createRequestContext(tilesApplicationContext, request, response);
             return new StrutsTilesRequestContext(context);
         }
 
-        public TilesRequestContext createRequestContext(TilesApplicationContext tilesApplicationContext, Object request, Object response) {
-            TilesRequestContext context = factory.createRequestContext(tilesApplicationContext, request, response);
+        public TilesRequestContext createRequestContext(TilesApplicationContext tilesApplicationContext, PageContext pageContext) {
+            TilesRequestContext context = factory.createRequestContext(tilesApplicationContext, pageContext);
             return new StrutsTilesRequestContext(context);
         }
     }
diff --git a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesRequestContext.java b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesRequestContext.java
index 378d9cb..2973547 100644
--- a/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesRequestContext.java
+++ b/plugins/tiles/src/main/java/org/apache/struts2/tiles/StrutsTilesRequestContext.java
@@ -80,12 +80,7 @@
     }
 
     public void dispatch(String include) throws IOException {
-    	if (include.endsWith(mask)) {
-            // FIXME This way FreeMarker results still don't have a content-type!
-    	    include(include);
-        } else {
-            super.dispatch(include);
-        }
+        include(include);
     }
 
     /**
diff --git a/pom.xml b/pom.xml
index 808106e..e20f913 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,7 +32,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>org.apache.struts</groupId>
     <artifactId>struts2-parent</artifactId>
-    <version>2.1.0-SNAPSHOT</version>
+    <version>2.0.7</version>
     <packaging>pom</packaging>
     <name>Struts 2</name>
     <url>http://struts.apache.org/struts2</url>
@@ -78,7 +78,7 @@
     <modules>
         <module>core</module>
         <!--<module>assembly</module>-->
-        <module>api</module>
+        <!-- <module>api</module> -->
     </modules>
 
     <licenses>
diff --git a/src/site/site.xml b/src/site/site.xml
index c8cb91a..63c3a0c 100644
--- a/src/site/site.xml
+++ b/src/site/site.xml
@@ -8,12 +8,13 @@
     <bannerRight>
         <name>Apache Struts</name>
         <src>images/struts2.png</src>
-        <href>http://struts.apache.org/2.x/</href>
+        <href>http://struts.apache.org</href>
     </bannerRight>
     <body>
         <links>
-            <item name="Apache" href="http://www.apache.org/" />
-            <item name="Struts" href="http://struts.apache.org/index.html" />
+            <item name="Apache" href="http://www.apache.org" />
+            <item name="Struts 2" href="http://struts.apache.org/2.x" />
+            <item name="Struts 1" href="http://struts.apache.org/1.x" />
         </links>
         <menu name="Struts 2">
             <item
@@ -48,7 +49,7 @@
 
             <item
                     name="Release Notes"
-                    href="docs/release-notes-207.html"
+                    href="docs/release-notes-205.html"
                     />
 
         </menu>
@@ -136,45 +137,5 @@
                     />
 
         </menu>
-
-        <menu name="Development">
-            <item
-                    name="Struts 2.x Draft Docs"
-                    href="http://struts.apache.org/2.x/index.html"/>
-
-            <item
-                    name="How to Help FAQ"
-                    href="http://struts.apache.org/helping.html"
-                    />
-            <item
-                    name="Development Lists"
-                    href="http://struts.apache.org/dev/dev-mail.html"
-                    />
-            <item
-                    name="Source Code"
-                    href="http://struts.apache.org/dev/builds.html"
-                    />
-            <item
-                    name="Release Guidelines"
-                    href="http://struts.apache.org/dev/releases.html"
-                    />
-            <item
-                    name="Volunteers"
-                    href="http://struts.apache.org/dev/volunteers.html"
-                    />
-            <item
-                    name="PMC Charter"
-                    href="http://struts.apache.org/dev/bylaws.html"
-                    />
-            <item
-                    name="Sandbox"
-                    href="http://struts.apache.org/struts-sandbox/index.html"
-                    />
-            <item
-                    name="Source Repository"
-                    href="http://svn.apache.org/viewcvs.cgi/struts/"
-                    />
-        </menu>
-
     </body>
 </project>