You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2016/01/03 00:30:02 UTC

[01/10] incubator-freemarker git commit: Deleted examples. They weren't maintained much. Anyway, if we want examples, that should be done on GitHub for example. Putting them into the releases doesn't make much sense.

Repository: incubator-freemarker
Updated Branches:
  refs/heads/2.3 c7f2ad6ea -> 7515c055b


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/webapp2/WEB-INF/classes/example/ControllerServlet.java
----------------------------------------------------------------------
diff --git a/src/examples/webapp2/WEB-INF/classes/example/ControllerServlet.java b/src/examples/webapp2/WEB-INF/classes/example/ControllerServlet.java
deleted file mode 100644
index 528270b..0000000
--- a/src/examples/webapp2/WEB-INF/classes/example/ControllerServlet.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package example;
-
-import java.io.*;
-import java.util.*;
-import java.lang.reflect.*;
-import javax.servlet.*;
-import javax.servlet.http.*;
-import freemarker.template.*;
-import freemarker.ext.beans.BeansWrapper;
-
-
-/**
- * <p>This is very very primitive MVC Controller servlet base class, based
- * on example 1. The application specific controller servlet should extend
- * this class.
- */
-public class ControllerServlet extends HttpServlet {
-
-    // Volatile so that it's properly published according to JSR 133 (JMM).
-    // Although, the servlet container most certainly makes this unnecessarry.
-    private volatile Configuration cfg; 
-    
-    public void init() {
-        // Initialize the FreeMarker configuration;
-        // - Create a configuration instance, with the not-100%-backward-compatible
-        //   fixes up until FreeMarker 2.3.21 applied (as far as it starts
-        //   with 2.3, these are only minor changes that doesn't affect most apps):
-        Configuration cfg = new Configuration(Configuration.VERSION_2_3_21);
-        // - Templates are stoted in the WEB-INF/templates directory of the Web app.
-        cfg.setServletContextForTemplateLoading(
-                getServletContext(), "WEB-INF/templates");
-        // - At most how often should FreeMarker check if a template was updated:
-        cfg.setTemplateUpdateDelay(isInDevelopmentMode() ? 0 : 60);
-        // - When developing, set an error handler that prints errors so they are
-        //   readable with a Web browser, otherwise we just let the HTTP 500
-        //   handler deal with it.
-        cfg.setTemplateExceptionHandler(
-                isInDevelopmentMode()
-                        ? TemplateExceptionHandler.HTML_DEBUG_HANDLER
-                        : TemplateExceptionHandler.RETHROW_HANDLER);
-        // - Set the default charset of the template files
-        cfg.setDefaultEncoding("ISO-8859-1");
-        // - Set the charset of the output. This is actually just a hint, that
-        //   templates may require for URL encoding and for generating META
-        //   element that uses http-equiv="Content-type".
-        cfg.setOutputEncoding("UTF-8");
-        // - Set the default locale
-        cfg.setLocale(Locale.US);
-        
-        // Finished modifying cfg, so let's publish it to other threads:
-        this.cfg = cfg;
-    }
-    
-    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
-            throws ServletException, IOException {
-        doGet(req, resp);
-    }
-    
-    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
-        throws ServletException, IOException {
-        
-        // Choose action method
-        String action = req.getServletPath();
-        if (action == null) action = "index";
-        if (action.startsWith("/")) action = action.substring(1);
-        if (action.lastIndexOf(".") != -1) {
-            action = action.substring(0, action.lastIndexOf("."));
-        }
-        Method actionMethod;
-        try {
-            actionMethod =
-                    getClass().getMethod(action + "Action",
-                    new Class[]{HttpServletRequest.class, Page.class});
-        } catch (NoSuchMethodException e) {
-            throw new ServletException("Unknown action: " + action);
-        }
-        
-        // Set the request charset to the same as the output charset,
-        // because HTML forms normally send parameters encoded with that.
-        req.setCharacterEncoding(cfg.getOutputEncoding());
-        
-        // Call the action method
-        Page page = new Page();
-        try {
-            actionMethod.invoke(this, new Object[]{req, page});
-        } catch (IllegalAccessException e) {
-            throw new ServletException(e);
-        } catch (InvocationTargetException e) {
-            throw new ServletException(e.getTargetException());
-        }
-        
-        if (page.getTemplate() != null) { // show a page with a template
-            // Get the template object
-            Template t = cfg.getTemplate(page.getTemplate());
-            
-            // Prepare the HTTP response:
-            // - Set the MIME-type and the charset of the output.
-            //   Note that the charset should be in sync with the output_encoding setting.
-            resp.setContentType("text/html; charset=" + cfg.getOutputEncoding());
-            // - Prevent browser or proxy caching the page.
-            //   Note that you should use it only for development and for interactive
-            //   pages, as it significantly slows down the Web site.
-            resp.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, "
-                    + "post-check=0, pre-check=0");
-            resp.setHeader("Pragma", "no-cache");
-            resp.setHeader("Expires", "Thu, 01 Dec 1994 00:00:00 GMT");
-            Writer out = resp.getWriter();
-            
-            // Merge the data-model and the template
-            try {
-                t.process(page.getRoot(), out);
-            } catch (TemplateException e) {
-                throw new ServletException(
-                        "Error while processing FreeMarker template", e);
-            }
-        } else if (page.getForward() != null) { // forward request
-            RequestDispatcher rd = req.getRequestDispatcher(page.getForward());
-            rd.forward(req, resp);            
-        } else {
-            throw new ServletException("The action didn't specified a command.");
-        }
-    }
-    
-    private boolean isInDevelopmentMode() {
-        // FIXME: Should detect this with a system property for example.
-        return true;
-    }
-    
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/webapp2/WEB-INF/classes/example/GuestbookEntry.java
----------------------------------------------------------------------
diff --git a/src/examples/webapp2/WEB-INF/classes/example/GuestbookEntry.java b/src/examples/webapp2/WEB-INF/classes/example/GuestbookEntry.java
deleted file mode 100644
index 7e9f6f7..0000000
--- a/src/examples/webapp2/WEB-INF/classes/example/GuestbookEntry.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package example;
-
-public class GuestbookEntry {
-    private String name;
-    private String email;
-    private String message;
-    
-    public GuestbookEntry(String name, String email, String message) {
-        this.name = name;
-        this.email = email;
-        this.message = message;
-    }
-
-    public String getEmail() {
-        return email;
-    }
-
-    public String getMessage() {
-        return message;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/webapp2/WEB-INF/classes/example/GuestbookServlet.java
----------------------------------------------------------------------
diff --git a/src/examples/webapp2/WEB-INF/classes/example/GuestbookServlet.java b/src/examples/webapp2/WEB-INF/classes/example/GuestbookServlet.java
deleted file mode 100644
index fb0ddce..0000000
--- a/src/examples/webapp2/WEB-INF/classes/example/GuestbookServlet.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package example;
-
-import java.io.IOException;
-import java.util.*;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.*;
-
-public class GuestbookServlet extends ControllerServlet {
-    /**
-     * Stores the list of guestbook entries.
-     * 
-     * <p>Note that for the sake of simplicity, this example
-     * does not try to store the guestbook persistenty.
-     */
-    private ArrayList guestbook = new ArrayList();
-    
-    public void indexAction(HttpServletRequest req, Page p) {
-        List snapShot;
-        synchronized (guestbook) {
-            snapShot = (List) guestbook.clone();
-        }
-        p.put("guestbook", snapShot);
-        p.setTemplate("index.ftl");
-    }
-
-    public void formAction (HttpServletRequest req, Page p)
-            throws IOException, ServletException {
-                
-        p.put("name", noNull(req.getParameter("name")));
-        p.put("email", noNull(req.getParameter("email")));
-        p.put("message", noNull(req.getParameter("message")));
-        List errors = (List) req.getAttribute("errors");
-        p.put("errors", errors == null ? new ArrayList() : errors);
-
-        p.setTemplate("form.ftl");
-    }
-
-    public void addAction (HttpServletRequest req, Page p)
-            throws IOException, ServletException {
-        List errors = new ArrayList();
-        String name = req.getParameter("name");
-        String email = req.getParameter("email");
-        String message = req.getParameter("message");
-        if (isBlank(name)) {
-            errors.add("You must give your name.");
-        }
-        if (isBlank(message)) {
-            errors.add("You must give a message.");
-        }
-
-        // Was the sent data was correct?
-        if (errors.isEmpty()) {
-            if (email == null) email = "";
-            // Create and insert the new guestbook entry.
-            GuestbookEntry e = new GuestbookEntry(
-                    name.trim(), email.trim(), message);
-            synchronized (guestbook) {
-                guestbook.add(0, e);
-            }
-            // Show "Entry added" page.
-            p.put("entry", e);
-            p.setTemplate("add.ftl");
-        } else {
-            // Go back to the page of the form
-            req.setAttribute("errors", errors);
-            p.setForward("form.a");
-        }
-    }
-
-    public static String noNull(String s) {
-        return s == null ? "" : s;
-    }
-    
-    public static boolean isBlank(String s) {
-        return s == null || s.trim().length() == 0; 
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/webapp2/WEB-INF/classes/example/Page.java
----------------------------------------------------------------------
diff --git a/src/examples/webapp2/WEB-INF/classes/example/Page.java b/src/examples/webapp2/WEB-INF/classes/example/Page.java
deleted file mode 100644
index fb3ac62..0000000
--- a/src/examples/webapp2/WEB-INF/classes/example/Page.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package example;
-
-import java.util.*;
-
-public class Page {
-    private String template;
-    private String forward;
-    private Map root = new HashMap();
-
-    public String getTemplate() {
-        return template;
-    }
-    
-    public void setTemplate(String template) {
-        forward = null;
-        this.template = template;
-    }
-
-    public void put(String name, Object value) {
-        root.put(name, value);
-    }
-    
-    public void put(String name, int value) {
-        root.put(name, Integer.valueOf(value));
-    }
-    
-    public void put(String name, double value) {
-        root.put(name, Double.valueOf(value));
-    }
-
-    public void put(String name, boolean value) {
-        root.put(name, Boolean.valueOf(value));
-    }
-    
-    public Map getRoot() {
-        return root;
-    }
-    
-    public String getForward() {
-        return forward;
-    }
-
-    public void setForward(String forward) {
-        template = null;
-        this.forward = forward;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/webapp2/WEB-INF/templates/add.ftl
----------------------------------------------------------------------
diff --git a/src/examples/webapp2/WEB-INF/templates/add.ftl b/src/examples/webapp2/WEB-INF/templates/add.ftl
deleted file mode 100644
index 58777b6..0000000
--- a/src/examples/webapp2/WEB-INF/templates/add.ftl
+++ /dev/null
@@ -1,32 +0,0 @@
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<#import "/lib/common.ftl" as com>
-<#escape x as x?html>
-
-<@com.page title="Entry added">
-  <p>You have added the following entry to the guestbook:
-  <p><b>Name:</b> ${entry.name}
-  <#if entry.email?length != 0>
-    <p><b>Email:</b> ${entry.email}
-  </#if>
-  <p><b>Message:</b> ${entry.message}
-  <p><a href="index.a">Back to the index page...</a>
-</...@com.page>
-
-</#escape>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/webapp2/WEB-INF/templates/form.ftl
----------------------------------------------------------------------
diff --git a/src/examples/webapp2/WEB-INF/templates/form.ftl b/src/examples/webapp2/WEB-INF/templates/form.ftl
deleted file mode 100644
index 69b9b66..0000000
--- a/src/examples/webapp2/WEB-INF/templates/form.ftl
+++ /dev/null
@@ -1,44 +0,0 @@
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<#import "/lib/common.ftl" as com>
-<#escape x as x?html>
-
-<@com.page title="Add Entry">
-  <#if errors?size != 0>
-    <p><font color=red>Please correct the following problems:</font>
-    <ul>
-      <#list errors as e>
-        <li><font color=red>${e}</font>
-      </#list>
-    </ul>
-  </#if>
-  
-  <form method="POST" action="add.a">
-    <p>Your name:<br>
-    <input type="text" name="name" value="${name}" size=60>
-    <p>Your e-mail (optional):<br>
-    <input type="text" name="email" value="${email}" size=60>
-    <p>Message:<br>
-    <textarea name="message" wrap="soft" rows=3 cols=60>${message}</textarea>
-    <p><input type="submit" value="Submit">
-  </form>
-  <p><a href="index.a">Back to the index page</a>
-</...@com.page>
-
-</#escape>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/webapp2/WEB-INF/templates/index.ftl
----------------------------------------------------------------------
diff --git a/src/examples/webapp2/WEB-INF/templates/index.ftl b/src/examples/webapp2/WEB-INF/templates/index.ftl
deleted file mode 100644
index 92ae90d..0000000
--- a/src/examples/webapp2/WEB-INF/templates/index.ftl
+++ /dev/null
@@ -1,42 +0,0 @@
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<#import "/lib/common.ftl" as com>
-<#escape x as x?html>
-
-<@com.page title="Index">
-  <a href="form.a">Add new message</a> | <a href="help.html">How this works?</a>
-  
-  <#if guestbook?size = 0>
-    <p>No messages.
-  <#else>
-    <p>The messages are:
-    <table border=0 cellspacing=2 cellpadding=2 width="100%">
-      <tr align=center valign=top>
-        <th bgcolor="#C0C0C0">Name
-        <th bgcolor="#C0C0C0">Message
-      <#list guestbook as e>
-        <tr align=left valign=top>
-          <td bgcolor="#E0E0E0">${e.name} <#if e.email?length != 0> (<a href="mailto:${e.email}">${e.email}</a>)</#if>
-          <td bgcolor="#E0E0E0">${e.message}
-      </#list>
-    </table>
-  </#if>
-</...@com.page>
-
-</#escape>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/webapp2/WEB-INF/templates/lib/common.ftl
----------------------------------------------------------------------
diff --git a/src/examples/webapp2/WEB-INF/templates/lib/common.ftl b/src/examples/webapp2/WEB-INF/templates/lib/common.ftl
deleted file mode 100644
index c6c43ae..0000000
--- a/src/examples/webapp2/WEB-INF/templates/lib/common.ftl
+++ /dev/null
@@ -1,39 +0,0 @@
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<#macro page title>
-  <html>
-  <head>
-    <title>FreeMarker Example Web Application 2 - ${title?html}</title>
-    <meta http-equiv="Content-type" content="text/html; charset=${.output_encoding}">
-  </head>
-  <body>
-    <h1>${title?html}</h1>
-    <hr>
-    <#nested>
-    <hr>
-    <table border="0" cellspacing=0 cellpadding=0 width="100%">
-      <tr valign="middle">
-        <td align="left">
-          <i>FreeMarker Example 2</i>
-        <td align="right">
-          <a href="http://freemarker.org"><img src="poweredby_ffffff.png" border=0></a>
-    </table>
-  </body>
-  </html>
-</#macro>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/webapp2/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/src/examples/webapp2/WEB-INF/web.xml b/src/examples/webapp2/WEB-INF/web.xml
deleted file mode 100644
index 91e8f3e..0000000
--- a/src/examples/webapp2/WEB-INF/web.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-  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.
--->
-
-<!DOCTYPE web-app
-    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
-    "http://java.sun.com/dtd/web-app_2_3.dtd">
-
-<web-app>
-  <display-name>FreeMarker Example Web Application 2</display-name>
-  <servlet>
-    <servlet-name>guestbook</servlet-name>
-    <servlet-class>example.GuestbookServlet</servlet-class>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>guestbook</servlet-name>
-    <url-pattern>*.a</url-pattern>
-  </servlet-mapping>
-  <welcome-file-list>
-      <welcome-file>help.html</welcome-file>
-  </welcome-file-list>
-</web-app>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/webapp2/help.html
----------------------------------------------------------------------
diff --git a/src/examples/webapp2/help.html b/src/examples/webapp2/help.html
deleted file mode 100644
index c8d8fed..0000000
--- a/src/examples/webapp2/help.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<html>
-<head>
-  <title>FreeMarker Example Web Application 2 - Help</title>
-  <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1">
-</head>
-<body>
-
-<h1>FreeMarker Example Web Application 2</h1>
-
-<p>To try this example you should visit
-<a href="index.a"><code>http://<i>yourServer</i>/<i>thisWebApp</i>/index.a</code></a>
-
-<p><b>Note:</b> To simplify the example, the guest-book entries are not stored
-persistently. If you reload the servlet all guest-book entry will lose.
-
-
-<h2>What's this example about?</h2>
-
-<p>This is a very primitive controller servlet class (was written based on FreeMarker Example Web Application 1)
-and a simple guest-book appliction that uses the conroller servlet class. This whole stuff is a very
-primitive thing. It is only to get you started if you plan to develop some custom "framework" for your
-Web applications, rather than using an already written framework.
-Note that a Web application framework can use very different approach than this
-example.
-
-
-<h2>How this example works?</h2>
-
-<p>This example uses a primitive controller servlet, <code>example.ControllerServlet</code>.
-To add application specific behavior, you should extend this servlet
-with an application specific subclass, that adds the so-called action
-methods. Here we implement a primitive guest book application by
-extending <code>ControllerServlet</code> with <code>GuestbookServlet</code>, that adds 3
-action methods:
-<ul>
-  <li><code>indexAction</code>: Shows the whole guest-book.
-  <li><code>formAction</code>: Show the from where you enter a guest-book entry.
-  <li><code>addAction</code>: Adds a new guest-book entry.
-</ul>
-
-<p>The <code>ControllerServlet</code> calls the action methods when it receives client requests.
-It deduces the name of the action methods to call
-from the request URL. The servlet will be invoked only if the request URL is
-ending with ".a", as you can see in the <code>WEB-INF/web.xml</code>, otherwise a static file
-(for example this html file, or an image file) will be returned as is.
-To deduce the method name, the servlet removes the <code>.a</code> and the Web-application directory
-from the request URL, and then appends <code>"Action"</code>. Thus, if you type
-<code>http://<i>yourServler</i>/<i>thisWebApp</i>/foo.a</code>, then it will try to
-call the <code>fooAction</code> method.
-
-<p>Each action method gets two parameters: the <code>HttpServletRequest</code>, and
-the <code>Page</code> object. The <code>Page</code> object plays the role of
-<code>HttpServletResponse</code>, but instead of calling low lever methods,
-you add objects to the data model with <code>put(<i>name</i>, <i>value</i>)</code>, and
-choose the template (the view) with <code>setTemplate(<i>templateName</i>)</code>; the
-tedious dirty work is done by <code>ControllerServlet</code>.
-
-<p>The templates are stored in the <code>WEB-INF/templates</code> directory.
-
-<p>For more details read the source code.
-
-<hr>
-<p><a href="index.a">Back to the index page</a>
-  
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/webapp2/poweredby_ffffff.png
----------------------------------------------------------------------
diff --git a/src/examples/webapp2/poweredby_ffffff.png b/src/examples/webapp2/poweredby_ffffff.png
deleted file mode 100644
index 22b3a80..0000000
Binary files a/src/examples/webapp2/poweredby_ffffff.png and /dev/null differ


[09/10] incubator-freemarker git commit: Merge remote-tracking branch 'origin/2.3-gae' into 2.3

Posted by dd...@apache.org.
Merge remote-tracking branch 'origin/2.3-gae' into 2.3

Conflicts:
	build.xml


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/e1352edd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/e1352edd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/e1352edd

Branch: refs/heads/2.3
Commit: e1352eddfdb900eb4a693a4cbf23fe8bc1379fba
Parents: c7f2ad6 31690f6
Author: ddekany <dd...@apache.org>
Authored: Sun Jan 3 00:01:26 2016 +0100
Committer: ddekany <dd...@apache.org>
Committed: Sun Jan 3 00:28:14 2016 +0100

----------------------------------------------------------------------
 build.properties.sample                         |    3 +-
 build.xml                                       |  245 +-
 src/examples/README.txt                         |   39 -
 src/examples/ant/README.txt                     |   24 -
 src/examples/ant/build.xml                      |   34 -
 src/examples/ant/src/template/faq2html.ftl      |   51 -
 src/examples/ant/src/xml/faq.xml                |  221 --
 .../WEB-INF/classes/example/AddAction.java      |   45 -
 .../example/ApplicationResources.properties     |   22 -
 .../WEB-INF/classes/example/FormAction.java     |   37 -
 .../classes/example/GuestbookAction.java        |   34 -
 .../classes/example/GuestbookActionServlet.java |   39 -
 .../WEB-INF/classes/example/GuestbookEntry.java |   45 -
 .../classes/example/GuestbookEntryForm.java     |   73 -
 .../WEB-INF/classes/example/IndexAction.java    |   42 -
 .../struts-webapp/WEB-INF/struts-config.xml     |   60 -
 .../struts-webapp/WEB-INF/struts-html.tld       | 2934 ------------------
 src/examples/struts-webapp/WEB-INF/web.xml      |  125 -
 src/examples/struts-webapp/add.ftl              |   32 -
 src/examples/struts-webapp/form.ftl             |   39 -
 src/examples/struts-webapp/help.html            |   43 -
 src/examples/struts-webapp/index.ftl            |   41 -
 src/examples/struts-webapp/lib/common.ftl       |   39 -
 src/examples/struts-webapp/poweredby_ffffff.png |  Bin 2775 -> 0 bytes
 .../WEB-INF/classes/example/HelloServlet.java   |   80 -
 src/examples/webapp1/WEB-INF/templates/test.ftl |   26 -
 src/examples/webapp1/WEB-INF/web.xml            |   38 -
 src/examples/webapp1/help.html                  |   39 -
 .../classes/example/ControllerServlet.java      |  148 -
 .../WEB-INF/classes/example/GuestbookEntry.java |   45 -
 .../classes/example/GuestbookServlet.java       |   97 -
 .../webapp2/WEB-INF/classes/example/Page.java   |   67 -
 src/examples/webapp2/WEB-INF/templates/add.ftl  |   32 -
 src/examples/webapp2/WEB-INF/templates/form.ftl |   44 -
 .../webapp2/WEB-INF/templates/index.ftl         |   42 -
 .../webapp2/WEB-INF/templates/lib/common.ftl    |   39 -
 src/examples/webapp2/WEB-INF/web.xml            |   38 -
 src/examples/webapp2/help.html                  |   84 -
 src/examples/webapp2/poweredby_ffffff.png       |  Bin 2775 -> 0 bytes
 39 files changed, 117 insertions(+), 4969 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/e1352edd/build.xml
----------------------------------------------------------------------
diff --cc build.xml
index fa4821c,c957988..6e96f8d
--- a/build.xml
+++ b/build.xml
@@@ -727,17 -652,10 +652,10 @@@
        <fileset dir="build/api" />
      </copy>
      
-     <!-- Package -->
-     <property name="bin.tar" value="build/dist/apache-freemarker-${version}-bin.tar" />
-     <property name="bin.gzip" value="${bin.tar}.gz" />
-     <delete file="${bin.tar}" />
-     <tar tarfile="${bin.tar}" basedir="${dist.dir}/bin" />
-     <delete file="${bin.gzip}" />
-     <gzip zipfile="${bin.gzip}" src="${bin.tar}" />
-     <delete file="${bin.tar}" />
- 
-     <!-- Sign and hash: -->
-     <!-- TODO -->
+     <u:packageAndSignDist
+         srcDir="${dist.dir}/bin"
 -        archiveNameWithoutExt="apache-freemarker-gae-${version}-bin"
++        archiveNameWithoutExt="apache-freemarker-${version}-bin"
+     />
  
      <!-- ..................................... -->
      <!-- Source distribution                        -->
@@@ -777,19 -695,60 +695,60 @@@
        </fileset>
      </copy>
      
-     <!-- Package -->
-     <property name="src.tar" value="build/dist/apache-freemarker-${version}-src.tar" />
-     <property name="src.gzip" value="${src.tar}.gz" />
-     <delete file="${src.tar}" />
-     <tar tarfile="${src.tar}" basedir="${dist.dir}/src" />
-     <delete file="${src.gzip}" />
-     <gzip zipfile="${src.gzip}" src="${src.tar}" />
-     <delete file="${src.tar}" />
-     
-     <!-- Sign and hash: -->
-     <!-- TODO -->
+     <u:packageAndSignDist
+         srcDir="${dist.dir}/src"
 -        archiveNameWithoutExt="apache-freemarker-gae-${version}-src"
++        archiveNameWithoutExt="apache-freemarker-${version}-src"
+     />
    </target>
  
+   <macrodef name="packageAndSignDist" uri="http://freemarker.org/util">
+     <attribute name="srcDir" />
+     <attribute name="archiveNameWithoutExt" />
+     <sequential>
+       <local name="archive.tar"/>
+       <property name="archive.tar" value="build/dist/@{archiveNameWithoutExt}.tar" />
+       <local name="archive.gzip"/>
+       <property name="archive.gzip" value="${archive.tar}.gz" />
+       <delete file="${archive.tar}" />
+       <tar tarfile="${archive.tar}" basedir="@{srcDir}" />
+       <delete file="${archive.gzip}" />
+       <gzip zipfile="${archive.gzip}" src="${archive.tar}" />
+       <delete file="${archive.tar}" />
+ 
+       <echo>Signing "${archive.gzip}"...</echo>
+       <!-- gpg may hang if it exists: -->
+       <delete file="${archive.gzip}.asc" />
+       <exec executable="${gpgCommand}" failonerror="true">
+         <arg value="--armor" />
+         <arg value="--output" />
+         <arg value="${archive.gzip}.asc" />
+         <arg value="--detach-sig" />
+         <arg value="${archive.gzip}" />
+       </exec>
+       
+       <echo>*** Signature verification: ***</echo>
+       <exec executable="${gpgCommand}" failonerror="true">
+         <arg value="--verify" />
+         <arg value="${archive.gzip}.asc" />
+         <arg value="${archive.gzip}" />
+       </exec>
+       <local name="signatureGood" />
+       <local name="signatureGood.y" />
+       <input
+          validargs="y,n"
+          addproperty="signatureGood"
+       >Is the above signer the intended one for Apache releases?</input>
+       <condition property="signatureGood.y">
+         <equals arg1="y" arg2="${signatureGood}"/>
+       </condition>
+       <fail unless="signatureGood.y" message="Task aborted by user." />
+     
+       <echo>Creating checksum files for "${archive.gzip}"...</echo>
+       <checksum file="${archive.gzip}" fileext=".md5" algorithm="MD5" forceOverwrite="yes" />
+       <checksum file="${archive.gzip}" fileext=".sha512" algorithm="SHA-512" forceOverwrite="yes" />
+     </sequential>
+   </macrodef>
+   
    <target name="maven-pom">
      <echo file="build/pom.xml"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
  <!--
@@@ -828,8 -787,9 +787,8 @@@
    
    <packaging>jar</packaging>
    
-   <name>FreeMarker</name>
+   <name>Apache FreeMarker</name>
    <description>
 -    Google App Engine compliant variation of FreeMarker.
      FreeMarker is a "template engine"; a generic tool to generate text output based on templates.
    </description>
    <url>http://freemarker.org/</url>


[03/10] incubator-freemarker git commit: Deleted examples. They weren't maintained much. Anyway, if we want examples, that should be done on GitHub for example. Putting them into the releases doesn't make much sense.

Posted by dd...@apache.org.
Deleted examples. They weren't maintained much. Anyway, if we want examples, that should be done on GitHub for example. Putting them into the releases doesn't make much sense.


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/19c2b987
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/19c2b987
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/19c2b987

Branch: refs/heads/2.3
Commit: 19c2b98739b68e5e8fc6bc463a2ddb59f3a10385
Parents: def5937
Author: ddekany <dd...@apache.org>
Authored: Sat Jan 2 16:06:30 2016 +0100
Committer: ddekany <dd...@apache.org>
Committed: Sat Jan 2 16:06:30 2016 +0100

----------------------------------------------------------------------
 build.xml                                       |   75 -
 src/examples/README.txt                         |   39 -
 src/examples/ant/README.txt                     |   24 -
 src/examples/ant/build.xml                      |   34 -
 src/examples/ant/src/template/faq2html.ftl      |   51 -
 src/examples/ant/src/xml/faq.xml                |  221 --
 .../WEB-INF/classes/example/AddAction.java      |   45 -
 .../example/ApplicationResources.properties     |   22 -
 .../WEB-INF/classes/example/FormAction.java     |   37 -
 .../classes/example/GuestbookAction.java        |   34 -
 .../classes/example/GuestbookActionServlet.java |   39 -
 .../WEB-INF/classes/example/GuestbookEntry.java |   45 -
 .../classes/example/GuestbookEntryForm.java     |   73 -
 .../WEB-INF/classes/example/IndexAction.java    |   42 -
 .../struts-webapp/WEB-INF/struts-config.xml     |   60 -
 .../struts-webapp/WEB-INF/struts-html.tld       | 2934 ------------------
 src/examples/struts-webapp/WEB-INF/web.xml      |  125 -
 src/examples/struts-webapp/add.ftl              |   32 -
 src/examples/struts-webapp/form.ftl             |   39 -
 src/examples/struts-webapp/help.html            |   43 -
 src/examples/struts-webapp/index.ftl            |   41 -
 src/examples/struts-webapp/lib/common.ftl       |   39 -
 src/examples/struts-webapp/poweredby_ffffff.png |  Bin 2775 -> 0 bytes
 .../WEB-INF/classes/example/HelloServlet.java   |   80 -
 src/examples/webapp1/WEB-INF/templates/test.ftl |   26 -
 src/examples/webapp1/WEB-INF/web.xml            |   38 -
 src/examples/webapp1/help.html                  |   39 -
 .../classes/example/ControllerServlet.java      |  148 -
 .../WEB-INF/classes/example/GuestbookEntry.java |   45 -
 .../classes/example/GuestbookServlet.java       |   97 -
 .../webapp2/WEB-INF/classes/example/Page.java   |   67 -
 src/examples/webapp2/WEB-INF/templates/add.ftl  |   32 -
 src/examples/webapp2/WEB-INF/templates/form.ftl |   44 -
 .../webapp2/WEB-INF/templates/index.ftl         |   42 -
 .../webapp2/WEB-INF/templates/lib/common.ftl    |   39 -
 src/examples/webapp2/WEB-INF/web.xml            |   38 -
 src/examples/webapp2/help.html                  |   84 -
 src/examples/webapp2/poweredby_ffffff.png       |  Bin 2775 -> 0 bytes
 38 files changed, 4913 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index 06dc5eb..1d9769e 100644
--- a/build.xml
+++ b/build.xml
@@ -69,18 +69,6 @@
     property="boot.classpath.j2se1.6.correct"
   />
   
-  <condition property="example.freemarker.jar.location"
-    value="freemarker.jar" else="build/freemarker.jar">
-    <and>
-      <available  file="freemarker.jar" />
-      <not>
-        <available  file="build/freemarker.jar" />
-      </not>
-    </and>
-  </condition>
-  
-  <available file="lib/struts" property="struts.available" />
-  
   <!-- Set up version/timestamp filters and the version property: -->
   <tstamp>
     <format property="timestampNice" pattern="yyyy-MM-dd'T'HH:mm:ss'Z'"
@@ -598,69 +586,6 @@
     <u:manual offline="false" locale="zh_CN" />
   </target>
   
-  <!-- ====================== -->
-  <!-- Examples               -->
-  <!-- ====================== -->
-
-  <macrodef name="buildExampleWebapp" uri="http://freemarker.org/util">
-    <attribute name="exampleName" />
-    <sequential>
-      <mkdir dir="build/examples/@{exampleName}/WEB-INF/classes" />
-      <ivy:cachepath conf="example.@{exampleName}" pathid="ivy.dep" />
-      <javac
-        srcdir="src/examples/@{exampleName}/WEB-INF/classes"
-        destdir="build/examples/@{exampleName}/WEB-INF/classes"
-        deprecation="off" debug="on" optimize="off" target="1.5" source="1.5"
-        encoding="utf-8"
-        includeantruntime="false"
-        classpathref="ivy.dep"
-        bootclasspath="${boot.classpath.j2se1.5}"
-      >
-        <classpath>
-          <pathelement path="${ivy.dep}" />
-          <pathelement location="${example.freemarker.jar.location}" />
-          <fileset dir="lib/struts" erroronmissingdir="false">
-            <include name="*.jar" />
-          </fileset>
-        </classpath>
-      </javac>
-      <copy toDir="build/examples/@{exampleName}">
-        <fileset dir="src/examples/@{exampleName}" excludes="**/*.java" />
-      </copy>
-      <copy file="${example.freemarker.jar.location}"
-        todir="build/examples/@{exampleName}/WEB-INF/lib" />
-      <echo message="*** Example built: build/examples/@{exampleName} ***" />
-    </sequential>
-  </macrodef>
-  
-  <target name="example-webapp1" depends="jar" description="Build example webapp 1">
-    <u:buildExampleWebapp examplename="webapp1" />
-  </target>
-
-  <target name="example-webapp2" depends="jar" description="Build example webapp 2">
-    <u:buildExampleWebapp examplename="webapp2" />
-  </target>
-
-  <target name="example-struts-webapp" depends="jar" description="Build example Struts 1 webapp">
-    <fail unless="struts.available"><!--
-      -->You have to copy the Struts 1.1 jar-s to <!--
-      -->&lt;freemarker_project>/lib/struts to build this example!<!--
-    --></fail>
-    <copy todir="build/examples/struts-webapp/WEB-INF/lib">
-      <fileset dir="lib/struts" />
-    </copy>
-    <u:buildExampleWebapp examplename="struts-webapp" />
-  </target>
-  
-  <target name="example-ant" depends="jar" description="Build Ant example">
-    <mkdir dir="build/examples/ant" />
-    <copy toDir="build/examples/ant">
-      <fileset dir="src/examples/ant" />
-    </copy>
-    <copy file="${example.freemarker.jar.location}"
-      todir="build/examples/ant/lib" />
-    <echo message="*** Example built: build/examples/ant ***" />
-  </target>
 
   <!-- ====================== -->
   <!-- Distributuion building -->

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/README.txt
----------------------------------------------------------------------
diff --git a/src/examples/README.txt b/src/examples/README.txt
deleted file mode 100644
index 437cd28..0000000
--- a/src/examples/README.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
- 
-Examples
-========
-
-Examples for using FreeMarker (FM):
-
-webapp1        Building Web app. framework around FM, step 1: Hello World!
-webapp2        Building Web app. framework around FM, step 2: Guest-book
-struts-webapp  Using FM in a Model-2 framework (Struts 1.1) with JSP taglibs
-ant            Demonstrates the FreeMarker XML transform Ant-task
-
-To build the example webapps, you need Ant (http://ant.apache.org/) and run
-the following commands from the base FreeMarker directory:
-
-  ant example-<example-name>
-
-where <example-name> is the name of the example as struts-webapp or webapp1.
-The built Web applications will be in the build/examples directory.
-
-For more information read the help.html or README.txt in the directory of
-examples.

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/ant/README.txt
----------------------------------------------------------------------
diff --git a/src/examples/ant/README.txt b/src/examples/ant/README.txt
deleted file mode 100644
index 5ac811c..0000000
--- a/src/examples/ant/README.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
- 
-Issue ant from this directory, and it will create an out directory with HTLM
-in it.
-
-You should do this in the already built example, not inside the
-src/examples/ant directory!

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/ant/build.xml
----------------------------------------------------------------------
diff --git a/src/examples/ant/build.xml b/src/examples/ant/build.xml
deleted file mode 100644
index b60a2cb..0000000
--- a/src/examples/ant/build.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project name="FreeMarker-FAQ" default="generate" basedir=".">
-  <taskdef
-      name="freemarker"
-      classname="freemarker.ext.ant.FreemarkerXmlTask"
-      classpath="lib/freemarker.jar" />
-
-  <target name="generate">
-    <mkdir dir="html" />
-    <freemarker
-        basedir="src/xml"
-        destdir="out"
-        includes="**/*.xml"
-        template="src/template/faq2html.ftl" />
-  </target>
-    
-</project>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/ant/src/template/faq2html.ftl
----------------------------------------------------------------------
diff --git a/src/examples/ant/src/template/faq2html.ftl b/src/examples/ant/src/template/faq2html.ftl
deleted file mode 100644
index fb6a8ca..0000000
--- a/src/examples/ant/src/template/faq2html.ftl
+++ /dev/null
@@ -1,51 +0,0 @@
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<#escape x as x?html>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-  <head>
-    <title>${.node.faq.@title}</title>
-    <meta name="keywords" content="FreeMarker, Java, servlet, HTML, template, free software, open source, XML" />
-  </head>
-  <body bgcolor="#ffffff">
-    <h2><a name="top">${.node.faq.@title}</a></h2>
-    <#noescape>${.node.faq.preface.@@markup}</#noescape>
-    <h3>Table of contents</h3>
-
-    <#list .node.faq.topicgroup as topicgroup>
-      <h4>${topicgroup.@name}</h4>
-      <ul>
-      <#list topicgroup.topic as topic>
-        <li><a href="#${topic.@id}">${topic.@name}</a></li>
-      </#list>
-      </ul>
-    </#list>
-
-    <p>If your question was not answered by this FAQ, write to
-    <a href="mailto:${.node.faq.@adminMailTo}">${.node.faq.@adminName}</a>
-    (the current maintainer).</p>
-    <#list .node.faq.topicgroup.topic as topic>
-      <hr />
-      <h3><a name="${topic.@id}">${topic.@name}</a></h3>
-        <#noescape>${topic.@@nested_markup}</#noescape>
-      <p><a href="#top">Back to top</a></p>
-    </#list>
-  </body>
-</html>
-</#escape>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/ant/src/xml/faq.xml
----------------------------------------------------------------------
diff --git a/src/examples/ant/src/xml/faq.xml b/src/examples/ant/src/xml/faq.xml
deleted file mode 100644
index d201a7f..0000000
--- a/src/examples/ant/src/xml/faq.xml
+++ /dev/null
@@ -1,221 +0,0 @@
-<?xml version="1.0"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<faq title="The Old FreeMarker FAQ" adminMailTo="run2000@users.sourceforge.net" adminName="Nicholas Cull">
-  <preface/>
-  <topicgroup name="Assembling template data models">
-    <topic id="basic" name="Can you give me some examples showing how to assemble a template data model?">
-<p>The easiest way is to use <tt>SimpleHash</tt>, <tt>SimpleList</tt>, and 
-<tt>SimpleScalar</tt>. For example, suppose you want to be able to use a 
-variable called <tt>foo.bar.baz.bing</tt> in your template. You could make a 
-structure of nested <tt>SimpleHash</tt> objects like this: </p>
-<pre>SimpleHash foo = new SimpleHash();
-SimpleHash bar = new SimpleHash();
-SimpleHash baz = new SimpleHash();
-SimpleScalar bing = new SimpleScalar("value of bing");
-baz.put("bing", bing);
-bar.put("baz", baz);
-foo.put("bar", bar);
-modelRoot.put("foo", foo);
-</pre>
-<p>What about nested lists? Suppose you wanted to write something like this in a 
-template: </p>
-<pre>&lt;list list1 as list2&gt;
-    &lt;list list2 as list3&gt;
-        &lt;list list3 as element&gt;
-            ${element}&lt;br&gt;
-        &lt;/list&gt;
-    &lt;/list&gt;
-&lt;/list&gt;
-</pre>
-<p>You could make nested <tt>SimpleList</tt>s like this: </p>
-<pre>SimpleList list1 = new SimpleList();
-for (int i = 0; i &lt; 3; i++) {
-    SimpleList list2 = new SimpleList();
-    for (int j = 0; j &lt; 3; j++) {
-        SimpleList list3 = new SimpleList();
-        for (int k = 0; k &lt; 3; k++) {
-            list3.add(new SimpleScalar("test " +
-                                       String.valueOf(i) +
-                                       " " +
-                                       String.valueOf(j) +
-                                       " " +
-                                       String.valueOf(k)));
-        }
-        list2.add(list3);
-    }
-    list1.add(list2);
-}
-
-modelRoot.put("list1", list1);
-</pre>
-<p>The template code above would then produce this output: </p>
-<p>test 0 0 0<br />test 0 0 1<br />test 0 0 2<br />test 0 1 0<br />test 0 1 1<br />test 0 
-1 2<br />test 0 2 0<br />test 0 2 1<br />test 0 2 2<br />test 1 0 0<br />test 1 0 
-1<br />test 1 0 2<br />test 1 1 0<br /></p>
-<p>etc.</p> 
-    </topic>
-    <topic id="xml" name="Can I use XML documents as data models?">
-      <p>Yes, you can. In particular, you have to first build a <a href="http://www.jdom.org/" target="_top">JDOM</a> tree
-      from your XML document, and afterwards you can use JDOM tree nodes as data models.
-      The extensions library has a class that can wrap a JDOM nodes to expose them to FreeMarker as
-      a template model. In order to wrap your JDOM document tree in a freemarker TemplateModel, it is 
-      sufficient to do the following:</p>
-      <pre>
-...
-org.jdom.Document document = getMyDocumentSomehow(...);
-TemplateModel model = new freemarker.ext.jdom.NodeListModel(document);
-...
-      </pre>
-      <p>In the example below, the templates will be able to access the XML document through the 
-      "document" variable. The adapter supports all kinds of tree traversals and filterings,
-      allows use of a node list as a TemplateListModel, and outputs XML fragments of contained nodes 
-      when used as a string literal. It also features full XPath support.</p>
-      <p>This FAQ page itself is created by applying a FreeMarker template to an XML document. Table
-      of contents with links, topic grouping, and "Back to top" are all generated by the template.
-      See the <tt>examples/jdom</tt> and <tt>examples/ant</tt>
-      directories in FreeMarker distribution for example on using the XML support.</p>
-    </topic>
-    <topic id="reflect" name="What's a good way to wrap an existing object so that a template can call its methods?">
-      <p>The extensions library has classes to wrap arbitrary Java objects
-      as data models. In general, all you need to do to wrap your object <tt>obj</tt> into
-      a TemplateModel is to call a single static factory method:</p>
-      <pre>
-...
-TemplateModel model = freemarker.ext.beans.ReflectionUtilities.wrap(obj);
-...
-      </pre>
-      <p>After this, you can write arbitrary method calls on the wrapped object, i.e. you
-      can write <tt>${obj.getFoo()}</tt> in a template to execute method foo and place its
-      result in the template output. Extensions library uses the JavaBeans introspector to discover available
-      methods, so you can use bean property-style invocations as well: in previous example you could 
-      have written <tt>${obj.foo}</tt> as well. If any property or method call returns an object,
-      it is automatically wrapped for you, so you can chain invocations: <tt>{$obj.bar.baz.bing}</tt>
-      would translate to what in Java would be <tt>obj.getBar().getBaz().getBing()</tt>.
-      The framework automatically recognizes arrays as well as iterators, maps and collections
-      from <tt>java.util</tt> package and provides them with additional capabilities (arrays,
-      iterators, and collections act as list models and maps act as both lists of their entries
-      and allow lookup when used as a method model). There is even a facility for invoking
-      static methods (in case you ever needed <tt>System.currentTimeMillis()</tt> in a template).</p>
-      <p>It is worth noting that the framework caches the results of introspection, so that 
-      the negative performance impact resulting from reflected method lookup is minimized.</p>
-      <p>For example on using the reflection wrapper, see the <tt>examples/webapp</tt>
-      directory in the FreeMarker distribution.</p>
-    </topic>
-  </topicgroup>
-  <topicgroup name="Integration">
-    <topic id="servlet" name="Is there a HTTP servlet for FreeMarker I can use out-of-the-box?">
-      <p>Yes, there is. The extensions library has the class <tt>freemarker.ext.servlet.FreemarkerServlet</tt>
-      that you can use to provide template processing capabilities to your webapp. There is even a sample
-      webapp under the <tt>examples/webapp</tt> directory of the distribution that should get you started.</p>
-      <p>In general, you should only place the following inside your <tt>web.xml</tt> file:</p>
-<pre>
-  &lt;servlet&gt;
-    &lt;servlet-name&gt;freemarker&lt;/servlet-name&gt;
-    &lt;servlet-class&gt;freemarker.ext.servlet.FreemarkerServlet&lt;/servlet-class&gt;
-    &lt;init-param&gt;
-      &lt;param-name&gt;TemplatePath&lt;/param-name&gt;
-      &lt;param-value&gt;/templates&lt;/param-value&gt;
-    &lt;/init-param&gt;
-    &lt;init-param&gt;
-      &lt;param-name&gt;TemplateDelay&lt;/param-name&gt;
-      &lt;param-value&gt;0&lt;/param-value&gt;
-    &lt;/init-param&gt;
-    &lt;init-param&gt;
-      &lt;param-name&gt;NoCache&lt;/param-name&gt;
-      &lt;param-value&gt;true&lt;/param-value&gt;
-    &lt;/init-param&gt;
-    &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
-  &lt;/servlet&gt;
-
-  &lt;servlet-mapping&gt;
-    &lt;servlet-name&gt;freemarker&lt;/servlet-name&gt;
-    &lt;url-pattern&gt;/templates/*&lt;/url-pattern&gt;
-  &lt;/servlet-mapping&gt;
-</pre>
-    <p>This will map all URLs beginning with /templates/ to templates in your <tt>webapp/templates</tt> directory.
-    The servlet readily provides access to ServletContext, HttpSession, HttpServletRequest and HttpServletRequest 
-    parameters in the template data model. If you need to have additional variables available in your data model, 
-    just subclass the servlet and override the <tt>preTemplateProcess()</tt> method to shove any additional data
-    you need into the model before the template gets processed.</p>
-    </topic>
-    <topic id="ant" name="Can I use FreeMarker template processing in Ant?">
-      <p>Yes, you can. In particular, there is a FreeMarker task for Ant that will get a set of XML
-      files, run them through a FreeMarker template, and output the resulting files in a target 
-      directory. This method is ideal for generating documentation, SQL scripts, or any other
-      transformation requried during your build process. It is a viable alternative to Ant's
-      <tt>xslt</tt> task. The Ant task is part of the extensions library. See the <tt>examples/ant</tt>
-      directory in FreeMarker distribution for a sample <tt>build.xml</tt> file that employs FreeMarker.</p>
-    </topic>
-  </topicgroup>
-  <topicgroup name="Features">
-    <topic id="arithmetic" name="Is it possible to do integer arithmetic in templates?">
-      <p>Yes. As of 2.0, FreeMarker supports numerics without casting in and
-      out of TemplateScalarModel. The new TemplateNumberModel intrace means
-      that numbers of any given precision are supported, not just integers.
-      </p>
-      <p>The basic arithmetic operators are supported,
-      and meaningful comparison can be made between numbers. Internally, 
-      FreeMarker uses BigDecimals to ensure that no precision is lost when 
-      performing arithmetic operations.  See the <a href="docs/manual/index.html" target="_top">manual</a> for further details.</p>
-    </topic>
-    <topic id="editorMangle" name="I'm using a visual HTML editor that mangles template tags. Will you change the template language syntax to accomodate my editor?">
-<p>I won't change the standard version, because a lot of templates depend on it. 
-However, FreeMarker is designed to make it easy for you to change the syntax to 
-suit your needs. Changing the tag delimiters, making tags case-insensitive, and 
-representing operators differently would be simple changes to make. Take a look 
-at <tt>freemarker.template.compiler.FMParser.jj</tt>, for more details.
-Let me know if you need further explanation of anything in the source code.</p>
-<p>My view is that the editors that break template code are themselves broken; 
-you'll probably have the same problem if you try to use them with other template 
-systems. A good editor should ignore, not mangle, what it doesn't understand. </p>
-     </topic>
-     <topic id="structureInfo" name="How can my Java classes ask a template for information about its structure (e.g. a list of all the variables)?">
-<p>This isn't possible, because variable names can be dynamically generated from 
-data (see the <a 
-href="docs/manual/expressions.html">manual</a>). 
-However, there's a more important reason why FreeMarker doesn't support this. 
-The design of FreeMarker is based on the idea of a separation between business 
-objects and presentation objects. This separation takes two forms: </p>
-<ol>
-  <li>The templates know what data to expect, but they don't know how it's 
-  generated. </li>
-  <li>The business objects know what data to produce, but they don't know how 
-  it's going to be displayed. Therefore, they don't know anything about 
-  templates. </li>
-</ol>
-<p>Since the business objects don't rely on the templates, if you need to use 
-them with some other presentation system, you won't have to rewrite your 
-application. </p>
-     </topic>
-  </topicgroup>
-  <topicgroup name="Legal issues">
-    <topic id="license" name="If we distribute FreeMarker with our product, do we have to release the source code for our product?">
-      <p>No. As of 2.0, FreeMarker is released under the BSD license. This 
-      means that source or binary distributions may be made freely, and
-      can be included in other products, whether commercial or open source.</p>
-      <p>The only restrictions apply to the copyright of FreeMarker itself,
-      and the use of FreeMarker or its contributors as endorsements of
-      your own product. See the <a href="LICENSE.txt">LICENSE</a> for
-      further details.</p>
-      <p>If you use FreeMarker, I hope you'll send me a link to some information about 
-      your product, but that's optional as well.</p> 
-    </topic>
-  </topicgroup>
-</faq>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/struts-webapp/WEB-INF/classes/example/AddAction.java
----------------------------------------------------------------------
diff --git a/src/examples/struts-webapp/WEB-INF/classes/example/AddAction.java b/src/examples/struts-webapp/WEB-INF/classes/example/AddAction.java
deleted file mode 100644
index f2df9a4..0000000
--- a/src/examples/struts-webapp/WEB-INF/classes/example/AddAction.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package example;
-
-import java.util.List;
-import javax.servlet.http.*;
-import org.apache.struts.action.*;
-
-
-public class AddAction extends GuestbookAction {
-
-    public ActionForward execute(
-            ActionMapping mapping,
-            ActionForm form,
-            HttpServletRequest req,
-            HttpServletResponse resp) throws Exception {
-
-        GuestbookEntryForm f = (GuestbookEntryForm) form;
-        List guestbook = getGuestbook();
-        synchronized (guestbook) {
-            guestbook.add(0, new GuestbookEntry(
-                    f.getName(), f.getEmail(), f.getMessage()));
-        }
-        
-        return mapping.findForward("success");
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/struts-webapp/WEB-INF/classes/example/ApplicationResources.properties
----------------------------------------------------------------------
diff --git a/src/examples/struts-webapp/WEB-INF/classes/example/ApplicationResources.properties b/src/examples/struts-webapp/WEB-INF/classes/example/ApplicationResources.properties
deleted file mode 100644
index 7d6f5c8..0000000
--- a/src/examples/struts-webapp/WEB-INF/classes/example/ApplicationResources.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-errors.header=<p><font color=red>Please correct the following problems:</font><ul>
-errors.prefix=<li><font color=red>
-errors.suffix=</font>
-errors.footer=</ul>
-errors.required={0} is required.

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/struts-webapp/WEB-INF/classes/example/FormAction.java
----------------------------------------------------------------------
diff --git a/src/examples/struts-webapp/WEB-INF/classes/example/FormAction.java b/src/examples/struts-webapp/WEB-INF/classes/example/FormAction.java
deleted file mode 100644
index 183fde5..0000000
--- a/src/examples/struts-webapp/WEB-INF/classes/example/FormAction.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package example;
-
-import javax.servlet.http.*;
-import org.apache.struts.action.*;
-
-
-public class FormAction extends GuestbookAction {
-
-    public ActionForward execute(
-            ActionMapping mapping,
-            ActionForm form,
-            HttpServletRequest req,
-            HttpServletResponse resp) throws Exception {
-
-        return mapping.findForward("success");
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/struts-webapp/WEB-INF/classes/example/GuestbookAction.java
----------------------------------------------------------------------
diff --git a/src/examples/struts-webapp/WEB-INF/classes/example/GuestbookAction.java b/src/examples/struts-webapp/WEB-INF/classes/example/GuestbookAction.java
deleted file mode 100644
index 6d8a7d4..0000000
--- a/src/examples/struts-webapp/WEB-INF/classes/example/GuestbookAction.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package example;
-
-import java.util.*;
-import org.apache.struts.action.*;
-
-/**
- * Defines utility methods for this application. 
- */
-public class GuestbookAction extends Action {
-    
-    ArrayList getGuestbook() {
-        return (ArrayList) servlet.getServletContext()
-                .getAttribute(GuestbookActionServlet.GUESTBOOK_KEY);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/struts-webapp/WEB-INF/classes/example/GuestbookActionServlet.java
----------------------------------------------------------------------
diff --git a/src/examples/struts-webapp/WEB-INF/classes/example/GuestbookActionServlet.java b/src/examples/struts-webapp/WEB-INF/classes/example/GuestbookActionServlet.java
deleted file mode 100644
index b7e0496..0000000
--- a/src/examples/struts-webapp/WEB-INF/classes/example/GuestbookActionServlet.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package example;
-
-import java.util.*;
-import javax.servlet.*;
-
-import org.apache.struts.action.ActionServlet;
-
-public class GuestbookActionServlet extends ActionServlet {
-    
-    static final String GUESTBOOK_KEY = "guestbook";
-    
-    public void init(ServletConfig scfg) throws ServletException {
-        super.init(scfg);
-        
-        ServletContext sctx = scfg.getServletContext();
-        
-        // Add application specific global objects
-        sctx.setAttribute(GUESTBOOK_KEY, new ArrayList()); 
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/struts-webapp/WEB-INF/classes/example/GuestbookEntry.java
----------------------------------------------------------------------
diff --git a/src/examples/struts-webapp/WEB-INF/classes/example/GuestbookEntry.java b/src/examples/struts-webapp/WEB-INF/classes/example/GuestbookEntry.java
deleted file mode 100644
index 76fa240..0000000
--- a/src/examples/struts-webapp/WEB-INF/classes/example/GuestbookEntry.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package example;
-
-public class GuestbookEntry {
-    private String name;
-    private String email;
-    private String message;
-
-    public GuestbookEntry(String name, String email, String message) {
-        this.name = name;
-        this.email = email;
-        this.message = message;
-    }
-
-    public String getEmail() {
-        return email;
-    }
-
-    public String getMessage() {
-        return message;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/struts-webapp/WEB-INF/classes/example/GuestbookEntryForm.java
----------------------------------------------------------------------
diff --git a/src/examples/struts-webapp/WEB-INF/classes/example/GuestbookEntryForm.java b/src/examples/struts-webapp/WEB-INF/classes/example/GuestbookEntryForm.java
deleted file mode 100644
index 12b4dd6..0000000
--- a/src/examples/struts-webapp/WEB-INF/classes/example/GuestbookEntryForm.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package example;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.struts.action.*;
-
-public class GuestbookEntryForm extends ActionForm {
-    private String name;
-    private String email;
-    private String message;
-    
-    public GuestbookEntryForm() {
-    }
-
-    public String getEmail() {
-        return email;
-    }
-
-    public void setEmail(String email) {
-        this.email = normalizeString(email);
-    }
-
-    public String getMessage() {
-        return message;
-    }
-
-    public void setMessage(String message) {
-        this.message = normalizeString(message);
-    }
-
-    public void setName(String name) {
-        this.name = normalizeString(name);
-    }
-
-    public String getName() {
-        return name;
-    }
-    
-    public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) {
-        ActionErrors errs = new ActionErrors();
-        if (name.length() == 0) {
-            errs.add("name", new ActionError("errors.required", "name"));
-        }
-        if (message.length() == 0) {
-            errs.add("message", new ActionError("errors.required", "message"));
-        }
-        return errs.size() == 0 ? null : errs;
-    }
-    
-    private static String normalizeString(String s) {
-        if (s == null) return "";
-        return s.trim();
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/struts-webapp/WEB-INF/classes/example/IndexAction.java
----------------------------------------------------------------------
diff --git a/src/examples/struts-webapp/WEB-INF/classes/example/IndexAction.java b/src/examples/struts-webapp/WEB-INF/classes/example/IndexAction.java
deleted file mode 100644
index 695c283..0000000
--- a/src/examples/struts-webapp/WEB-INF/classes/example/IndexAction.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package example;
-
-import java.util.*;
-import javax.servlet.http.*;
-import org.apache.struts.action.*;
-
-public class IndexAction extends GuestbookAction {
-    public ActionForward execute(
-            ActionMapping mapping,
-            ActionForm form,
-            HttpServletRequest req,
-            HttpServletResponse resp) throws Exception {
-
-        List snapShot;
-        
-        synchronized (getGuestbook()) {
-            snapShot = (List) getGuestbook().clone();
-        }
-        req.setAttribute("guestbook", snapShot);
-        
-        return mapping.findForward("success");
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/struts-webapp/WEB-INF/struts-config.xml
----------------------------------------------------------------------
diff --git a/src/examples/struts-webapp/WEB-INF/struts-config.xml b/src/examples/struts-webapp/WEB-INF/struts-config.xml
deleted file mode 100644
index 2a50399..0000000
--- a/src/examples/struts-webapp/WEB-INF/struts-config.xml
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!--
-  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.
--->
-
-<!DOCTYPE struts-config PUBLIC
-          "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
-          "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
-
-<struts-config>
-  <form-beans>
-    <form-bean name="guestbookEntry" type="example.GuestbookEntryForm"/>
-  </form-beans>
-    
-  <action-mappings>
-    <action
-          path="/index"
-          type="example.IndexAction">
-      <forward name="success" path="/index.ftl"/>
-    </action>
-
-    <action
-          path="/form"
-          type="example.FormAction"
-          name="guestbookEntry"
-          scope="request"
-          validate="false">
-      <forward name="success" path="/form.ftl"/>
-    </action>
-    
-    <action
-          path="/add"
-          type="example.AddAction"
-          name="guestbookEntry"
-          validate="true"
-          scope="request"
-          input="/form.do">
-      <forward name="success" path="/add.ftl"/>
-    </action>
-    
-  </action-mappings>
-
-  <message-resources parameter="example.ApplicationResources"/>
-
-</struts-config>
\ No newline at end of file



[04/10] incubator-freemarker git commit: Build: Added GPG signing and checksum file generation

Posted by dd...@apache.org.
Build: Added GPG signing and checksum file generation


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/17144edc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/17144edc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/17144edc

Branch: refs/heads/2.3
Commit: 17144edc0fb34302fe57c21e3fd32c788653816b
Parents: 19c2b98
Author: ddekany <dd...@apache.org>
Authored: Sat Jan 2 17:49:07 2016 +0100
Committer: ddekany <dd...@apache.org>
Committed: Sat Jan 2 17:49:07 2016 +0100

----------------------------------------------------------------------
 build.properties.sample |  3 +-
 build.xml               | 86 ++++++++++++++++++++++++++++++--------------
 2 files changed, 62 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/17144edc/build.properties.sample
----------------------------------------------------------------------
diff --git a/build.properties.sample b/build.properties.sample
index fb1d632..c5dc8ff 100644
--- a/build.properties.sample
+++ b/build.properties.sample
@@ -19,4 +19,5 @@
 # These propeties should point to the rt.jar-s of the respective J2SE versions:
 boot.classpath.j2se1.5=C:/Program Files (x86)/Java/jdk1.5.0_16/jre/lib/rt.jar
 boot.classpath.j2se1.6=C:/Program Files/Java/jdk1.6.0_24/jre/lib/rt.jar
-mvnCommand=C:/Program Files (x86)/maven3/bin/mvn.bat
\ No newline at end of file
+mvnCommand=C:/Program Files (x86)/maven3/bin/mvn.bat
+gpgCommand=C:/Program Files (x86)/GNU/GnuPG/pub/gpg.exe
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/17144edc/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index 1d9769e..ddffba2 100644
--- a/build.xml
+++ b/build.xml
@@ -602,7 +602,7 @@
     <antcall target="clean" />  <!-- To improve the reliability -->
     <antcall target="_dist" />
   </target>
-
+  
   <target name="_dist"
     depends="jar, javadoc, manualOffline"
   >
@@ -652,17 +652,10 @@
       <fileset dir="build/api" />
     </copy>
     
-    <!-- Package -->
-    <property name="bin.tar" value="build/dist/apache-freemarker-gae-${version}-bin.tar" />
-    <property name="bin.gzip" value="${bin.tar}.gz" />
-    <delete file="${bin.tar}" />
-    <tar tarfile="${bin.tar}" basedir="${dist.dir}/bin" />
-    <delete file="${bin.gzip}" />
-    <gzip zipfile="${bin.gzip}" src="${bin.tar}" />
-    <delete file="${bin.tar}" />
-
-    <!-- Sign and hash: -->
-    <!-- TODO -->
+    <u:packageAndSignDist
+        srcDir="${dist.dir}/bin"
+        archiveNameWithoutExt="apache-freemarker-gae-${version}-bin"
+    />
 
     <!-- ..................................... -->
     <!-- Source distribution                        -->
@@ -702,19 +695,60 @@
       </fileset>
     </copy>
     
-    <!-- Package -->
-    <property name="src.tar" value="build/dist/apache-freemarker-gae-${version}-src.tar" />
-    <property name="src.gzip" value="${src.tar}.gz" />
-    <delete file="${src.tar}" />
-    <tar tarfile="${src.tar}" basedir="${dist.dir}/src" />
-    <delete file="${src.gzip}" />
-    <gzip zipfile="${src.gzip}" src="${src.tar}" />
-    <delete file="${src.tar}" />
-    
-    <!-- Sign and hash: -->
-    <!-- TODO -->
+    <u:packageAndSignDist
+        srcDir="${dist.dir}/src"
+        archiveNameWithoutExt="apache-freemarker-gae-${version}-src"
+    />
   </target>
 
+  <macrodef name="packageAndSignDist" uri="http://freemarker.org/util">
+    <attribute name="srcDir" />
+    <attribute name="archiveNameWithoutExt" />
+    <sequential>
+      <local name="archive.tar"/>
+      <property name="archive.tar" value="build/dist/@{archiveNameWithoutExt}.tar" />
+      <local name="archive.gzip"/>
+      <property name="archive.gzip" value="${archive.tar}.gz" />
+      <delete file="${archive.tar}" />
+      <tar tarfile="${archive.tar}" basedir="@{srcDir}" />
+      <delete file="${archive.gzip}" />
+      <gzip zipfile="${archive.gzip}" src="${archive.tar}" />
+      <delete file="${archive.tar}" />
+
+      <echo>Signing "${archive.gzip}"...</echo>
+      <!-- gpg may hang if it exists: -->
+      <delete file="${archive.gzip}.asc" />
+      <exec executable="${gpgCommand}" failonerror="true">
+        <arg value="--armor" />
+        <arg value="--output" />
+        <arg value="${archive.gzip}.asc" />
+        <arg value="--detach-sig" />
+        <arg value="${archive.gzip}" />
+      </exec>
+      
+      <echo>*** Signature verification: ***</echo>
+      <exec executable="${gpgCommand}" failonerror="true">
+        <arg value="--verify" />
+        <arg value="${archive.gzip}.asc" />
+        <arg value="${archive.gzip}" />
+      </exec>
+      <local name="signatureGood" />
+      <local name="signatureGood.y" />
+      <input
+         validargs="y,n"
+         addproperty="signatureGood"
+      >Is the above signer the intended one for Apache releases?</input>
+      <condition property="signatureGood.y">
+        <equals arg1="y" arg2="${signatureGood}"/>
+      </condition>
+      <fail unless="signatureGood.y" message="Task aborted by user." />
+    
+      <echo>Creating checksum files for "${archive.gzip}"...</echo>
+      <checksum file="${archive.gzip}" fileext=".md5" algorithm="MD5" forceOverwrite="yes" />
+      <checksum file="${archive.gzip}" fileext=".sha512" algorithm="SHA-512" forceOverwrite="yes" />
+    </sequential>
+  </macrodef>
+  
   <target name="maven-pom">
     <echo file="build/pom.xml"><![CDATA[<?xml version="1.0" encoding="utf-8"?>
 <!--
@@ -831,7 +865,7 @@ Proceed? </input>
     <fail unless="mavenUpload.yes" message="Task aborted by user." />
     
 		<!-- Sign and deploy the main artifact -->
-		<exec executable="${mvnCommand}">
+		<exec executable="${mvnCommand}" failonerror="true">
 			<arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file" />
 			<arg value="-Durl=${maven-repository-url}" />
 			<arg value="-DrepositoryId=${maven-server-id}" />
@@ -841,7 +875,7 @@ Proceed? </input>
 		</exec>
 
 		<!-- Sign and deploy the sources artifact -->
-		<exec executable="${mvnCommand}">
+		<exec executable="${mvnCommand}" failonerror="true">
 			<arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file" />
 			<arg value="-Durl=${maven-repository-url}" />
 			<arg value="-DrepositoryId=${maven-server-id}" />
@@ -852,7 +886,7 @@ Proceed? </input>
 		</exec>
 
 		<!-- Sign and deploy the javadoc artifact -->
-		<exec executable="${mvnCommand}">
+		<exec executable="${mvnCommand}" failonerror="true">
 			<arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file" />
 			<arg value="-Durl=${maven-repository-url}" />
 			<arg value="-DrepositoryId=${maven-server-id}" />


[05/10] incubator-freemarker git commit: Build: Updated pom.xml and the Maven deployer for the ASF infrastructure

Posted by dd...@apache.org.
Build: Updated pom.xml and the Maven deployer for the ASF infrastructure


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/31690f68
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/31690f68
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/31690f68

Branch: refs/heads/2.3
Commit: 31690f68d07d4f4406322f4a2d53e4e3d13c5484
Parents: 17144ed
Author: ddekany <dd...@apache.org>
Authored: Sat Jan 2 23:53:45 2016 +0100
Committer: ddekany <dd...@apache.org>
Committed: Sat Jan 2 23:53:45 2016 +0100

----------------------------------------------------------------------
 build.xml | 84 ++++++++++++++++++++++++++++++++++++++--------------------
 1 file changed, 55 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/31690f68/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index ddffba2..c957988 100644
--- a/build.xml
+++ b/build.xml
@@ -776,9 +776,9 @@
   <modelVersion>4.0.0</modelVersion>
   
   <parent>
-    <groupId>org.sonatype.oss</groupId>
-    <artifactId>oss-parent</artifactId>
-    <version>9</version>
+    <groupId>org.apache</groupId>
+    <artifactId>apache</artifactId>
+    <version>17</version>
   </parent>
   
   <groupId>org.freemarker</groupId>
@@ -787,36 +787,57 @@
   
   <packaging>jar</packaging>
   
-  <name>FreeMarker</name>
+  <name>Apache FreeMarker</name>
   <description>
     Google App Engine compliant variation of FreeMarker.
     FreeMarker is a "template engine"; a generic tool to generate text output based on templates.
   </description>
   <url>http://freemarker.org/</url>
+  <organization>
+    <name>Apache Software Foundation</name>
+    <url>http://apache.org</url>
+  </organization>
+  
   <licenses>
     <license>
       <name>Apache License, Version 2.0</name>
-      <url>http://freemarker.org/LICENSE.txt</url>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+      <distribution>repo</distribution>      
     </license>
   </licenses>
+  
   <scm>
     <connection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-freemarker.git</connection>
-    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/maven.git</developerConnection>
-    <!-- <url>https://github.com/apache/freemarker/tree/${project.scm.tag}</url> -->
-    <tag>2.3-gae</tag>
+    <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-freemarker.git</developerConnection>
+    <url>https://git-wip-us.apache.org/repos/asf?p=incubator-freemarker.git</url>
+    <tag>${version}</tag>
   </scm>
-  <developers>
-    <developer>
-      <name>Attila Szegedi</name>
-    </developer>
-    <developer>
-      <name>Daniel Dekany</name>
-      <email>ddekany@apache.org</email>
-    </developer>
-    <developer>
-      <name>Jonathan Revusky</name>
-    </developer>
-  </developers>  
+
+  <issueManagement>
+    <system>jira</system>
+    <url>https://issues.apache.org/jira/browse/FREEMARKER/</url>
+  </issueManagement>
+
+  <mailingLists>
+    <mailingList>
+        <name>FreeMarker developer list</name>
+        <post>dev@freemarker.incubator.apache.org</post>
+        <subscribe>dev-subscribe@freemarker.incubator.apache.org</subscribe>
+        <unsubscribe>dev-unsubscribe@freemarker.incubator.apache.org</unsubscribe>
+        <archive>http://mail-archives.apache.org/mod_mbox/incubator-freemarker-dev/</archive>
+    </mailingList>
+    <mailingList>
+        <name>FreeMarker commit and Jira notifications list</name>
+        <post>notifications@freemarker.incubator.apache.org</post>
+        <subscribe>notifications-subscribe@freemarker.incubator.apache.org</subscribe>
+        <unsubscribe>notifications-unsubscribe@freemarker.incubator.apache.org</unsubscribe>
+        <archive>http://mail-archives.apache.org/mod_mbox/incubator-freemarker-notifications/</archive>
+    </mailingList>
+    <mailingList>
+      <name>FreeMarker management private</name>
+      <post>private@freemarker.incubator.apache.org</post>
+    </mailingList>
+  </mailingLists>
   
   <dependencies>
     <!-- no required dependencies -->
@@ -833,21 +854,21 @@
   <target name="maven-dist" depends="maven-pom"
       description="Releases the already built distro to a Maven repository">
     <jar destfile="build/maven-source-attachment.jar">
-      <fileset dir="${dist.dir}/source/src/main/java" />
-      <fileset dir="${dist.dir}/source/src/main/resources" />
+      <fileset dir="${dist.dir}/src/src/main/java" />
+      <fileset dir="${dist.dir}/src/src/main/resources" />
     </jar>
 
     <jar destfile="build/maven-javadoc-attachment.jar">
-      <fileset dir="${dist.dir}/documentation/_html/api" />
+      <fileset dir="${dist.dir}/bin/documentation/_html/api" />
     </jar>
 
-    <property name="maven-server-id" value="ossrh" />
-    <property name="maven-repository-url" value="https://oss.sonatype.org/service/local/staging/deploy/maven2/" />
+    <!-- These were copy-pasted from the org.apacha:apache parent POM: -->
+    <property name="maven-server-id" value="apache.releases.https" />
+    <property name="maven-repository-url" value="https://repository.apache.org/service/local/staging/deploy/maven2" />
     <!--
     Don't deploy to public snapshot repositories here!
     It isn't backward compatible as version ranges will pick them up.
     -->
-    
     <input
        validargs="y,n"
        addproperty="mavenUpload.answer"
@@ -867,10 +888,14 @@ Proceed? </input>
 		<!-- Sign and deploy the main artifact -->
 		<exec executable="${mvnCommand}" failonerror="true">
 			<arg value="org.apache.maven.plugins:maven-gpg-plugin:1.3:sign-and-deploy-file" />
+      <!--
+        As we use the gpg plugin instead of a normal Maven "deploy", sadly we can't just
+        inherit the repo URL and repositoryId from the parent POM.
+      -->
 			<arg value="-Durl=${maven-repository-url}" />
 			<arg value="-DrepositoryId=${maven-server-id}" />
 			<arg value="-DpomFile=build/pom.xml" />
-			<arg value="-Dfile=${dist.dir}/freemarker.jar" />
+			<arg value="-Dfile=${dist.dir}/bin/freemarker.jar" />
       <arg value="-Pgpg" />
 		</exec>
 
@@ -898,8 +923,9 @@ Proceed? </input>
     
     <echo>*****************************************************************</echo>
     <echo>Check the above lines for any Maven errors!</echo>
-    <echo>Now you have to release the staged repo on</echo>
-    <echo>https://oss.sonatype.org/.</echo>
+    <echo>Now you need to close and maybe release the staged repo on</echo>
+    <echo>http://repository.apache.org.</echo>
+    <echo>Note that before releasing, voting is needed!</echo>
     <echo>*****************************************************************</echo>
   </target>
   


[06/10] incubator-freemarker git commit: Build: Removed abandoned Eclipse update site generator

Posted by dd...@apache.org.
Build: Removed abandoned Eclipse update site generator


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/813dce1f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/813dce1f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/813dce1f

Branch: refs/heads/2.3
Commit: 813dce1f0557e83b1f3fc39a101e6decf0148be8
Parents: 31690f6
Author: ddekany <dd...@apache.org>
Authored: Sun Jan 3 00:20:17 2016 +0100
Committer: ddekany <dd...@apache.org>
Committed: Sun Jan 3 00:20:17 2016 +0100

----------------------------------------------------------------------
 build.xml | 133 ---------------------------------------------------------
 1 file changed, 133 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/813dce1f/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index c957988..0b15d2d 100644
--- a/build.xml
+++ b/build.xml
@@ -931,139 +931,6 @@ Proceed? </input>
   
   
   <!-- ================================================================== -->
-  <!-- Eclipse                                                            -->
-  <!-- ================================================================== -->
-
-  <property name="eclipseFeatureFileName" value="org.freemarker.freemarker.feature_${versionForOSGi}.jar" />
-  <property name="eclipseSourceFeatureFileName" value="org.freemarker.freemarker.source.feature_${versionForOSGi}.jar" />
-  <property name="eclipsePluginFileName" value="org.freemarker.freemarker_${versionForOSGi}.jar" />
-  <property name="eclipseSourcePluginFileName" value="org.freemarker.freemarker.source_${versionForOSGi}.jar" />
-  
-  <target name="eclipse-update-site" depends="jar">
-    <delete dir="build/eclipse" />
-
-    <!-- Create org.freemarker.freemarker feature: -->
-    
-    <mkdir dir="build/eclipse/freemarker/plugins" />
-    <copy
-        file="build/freemarker.jar"
-        tofile="build/eclipse/freemarker/plugins/org.freemarker.freemarker_${versionForOSGi}.jar"
-    />
-    
-    <mkdir dir="build/eclipse/freemarker/features/tmp" />
-    <echo file="build/eclipse/freemarker/features/tmp/feature.xml"><![CDATA[<?xml version="1.0"?>
-<feature
-    id="org.freemarker.freemarker"
-    label="FreeMarker"
-    version="${versionForOSGi}">
-
-  <description url="http://freemarker.org">
-    Adds barebone FreeMarker as a plug-in (OSGi bundle) to Eclipse.
-  </description>
-
-  <license><!--
-    -->Apache License, Version 2.0; see http://freemarker.org/LICENSE.txt.<!--
-  --></license>
-
-  <plugin
-      id="org.freemarker.freemarker"
-      download-size="0"
-      install-size="0"
-      version="${versionForOSGi}"
-      unpack="false"
-  />
-</feature>
-    ]]></echo>
-    <jar
-        basedir="build/eclipse/freemarker/features/tmp"
-        destfile="build/eclipse/freemarker/features/${eclipseFeatureFileName}"
-    />
-    <delete dir="build/eclipse/freemarker/features/tmp" />
-
-    <!-- Create org.freemarker.freemarker.source feature: -->
-    
-    <mkdir dir="build/eclipse/freemarker/plugins" />
-    <jar 
-        basedir="src/main/java" jarfile="build/eclipse/freemarker/plugins/org.freemarker.freemarker.source_${versionForOSGi}.jar" 
-    >
-      <manifest>
-        <attribute name="Bundle-SymbolicName" value="${moduleOrg}.${moduleName}.source" />
-        <attribute name="Bundle-Version" value="${versionForOSGi}" />
-        <attribute name="Bundle-License" value="Apache License, Version 2.0" />
-        <attribute name="Bundle-Vendor" value="freemarker.org" />
-        <attribute name="Eclipse-SourceBundle" value='org.freemarker.freemarker;version="${versionForOSGi}";roots:="."' />
-      </manifest>
-    </jar>
-    
-    <mkdir dir="build/eclipse/freemarker/features/tmp" />
-    <echo file="build/eclipse/freemarker/features/tmp/feature.xml"><![CDATA[<?xml version="1.0"?>
-<feature
-    id="org.freemarker.freemarker.source"
-    label="FreeMarker source"
-    version="${versionForOSGi}">
-
-  <description url="http://freemarker.org">
-    Adds source code attachment to the barebone FreeMarker plug-in.
-  </description>
-
-  <license><!--
-    -->Apache License, Version 2.0; see http://freemarker.org/LICENSE.txt.<!--
-  --></license>
-
-  <plugin
-      id="org.freemarker.freemarker.source"
-      download-size="0"
-      install-size="0"
-      version="${versionForOSGi}"
-      unpack="false"
-  />
-</feature>
-    ]]></echo>
-    <jar
-        basedir="build/eclipse/freemarker/features/tmp"
-        destfile="build/eclipse/freemarker/features/${eclipseSourceFeatureFileName}"
-    />
-    <delete dir="build/eclipse/freemarker/features/tmp" />
-
-    <!-- Create site: -->
-
-    <echo file="build/eclipse/freemarker/site.xml"><![CDATA[<?xml version="1.0"?>
-<site>
-  <feature url="features/${eclipseFeatureFileName}"
-      id="org.freemarker.freemarker"
-      version="${versionForOSGi}">
-    <category name="core" />
-    <category name="core-with-sources" />
-  </feature>
-  <feature url="features/${eclipseSourceFeatureFileName}"
-      id="org.freemarker.freemarker.source"
-      version="${versionForOSGi}">
-    <category name="core-with-sources" />
-  </feature>
-  <category-def name="core" label="FreeMarker core">
-    <description>
-      Features that are used as dependencies of other products, but do nothing visible themselves.
-    </description>
-  </category-def>
-  <category-def name="core-with-sources" label="FreeMarker core with sources">
-    <description>
-      Features that are used as dependencies of other products, but do nothing visible themselves.
-      Includes source code attachments.
-    </description>
-  </category-def>
-</site>
-    ]]></echo>
-    <echo message="**************************************************************" />
-    <echo message="The new Eclipse update site is created in:" />
-    <echo message="${basedir}/build/eclipse/freemarker" />
-    <echo message="You can use this directory as a local update site in Eclipse," />
-    <echo message="or if you are an admin who makes a release, you should replace" />
-    <echo message="http://freemarker.org/eclipse/freemarker with this directory." />
-    <echo message="**************************************************************" />
-  </target>
-  
-  
-  <!-- ================================================================== -->
   <!-- Dependency management (keep it exactly identical for all projects) -->
   <!-- ================================================================== -->
   


[08/10] incubator-freemarker git commit: Build: bnd license URL update

Posted by dd...@apache.org.
Build: bnd license URL update


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/40b79ee7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/40b79ee7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/40b79ee7

Branch: refs/heads/2.3
Commit: 40b79ee791a7252eae78bf9acdf7c0bd3a0227b5
Parents: 547c1eb
Author: ddekany <dd...@apache.org>
Authored: Sun Jan 3 00:27:42 2016 +0100
Committer: ddekany <dd...@apache.org>
Committed: Sun Jan 3 00:27:42 2016 +0100

----------------------------------------------------------------------
 osgi.bnd | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/40b79ee7/osgi.bnd
----------------------------------------------------------------------
diff --git a/osgi.bnd b/osgi.bnd
index 6082429..9cc8cd8 100644
--- a/osgi.bnd
+++ b/osgi.bnd
@@ -26,7 +26,7 @@
 
 Bundle-SymbolicName: ${moduleOrg}.${moduleName}
 Bundle-Version: ${versionForOSGi}
-Bundle-License: Apache License, Version 2.0; see: http://freemarker.org/LICENSE.txt
+Bundle-License: Apache License, Version 2.0; see: http://www.apache.org/licenses/LICENSE-2.0.txt
 Bundle-Vendor: freemarker.org
 
 Include-Resource: META-INF=build/classes/META-INF


[10/10] incubator-freemarker git commit: Merge remote-tracking branch 'origin/2.3-gae' into 2.3

Posted by dd...@apache.org.
Merge remote-tracking branch 'origin/2.3-gae' into 2.3


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/7515c055
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/7515c055
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/7515c055

Branch: refs/heads/2.3
Commit: 7515c055b949f9ed6f7180cce6388e8123717e3a
Parents: e1352ed 40b79ee
Author: ddekany <dd...@apache.org>
Authored: Sun Jan 3 00:29:22 2016 +0100
Committer: ddekany <dd...@apache.org>
Committed: Sun Jan 3 00:29:22 2016 +0100

----------------------------------------------------------------------
 build.xml | 137 +--------------------------------------------------------
 osgi.bnd  |   2 +-
 2 files changed, 2 insertions(+), 137 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/7515c055/build.xml
----------------------------------------------------------------------


[07/10] incubator-freemarker git commit: Build: Fixed missing META-INF/LICENSE

Posted by dd...@apache.org.
Build: Fixed missing META-INF/LICENSE


Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/547c1eb3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/547c1eb3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/547c1eb3

Branch: refs/heads/2.3
Commit: 547c1eb36f4495b5700c322a4bdae764ef1f6daa
Parents: 813dce1
Author: ddekany <dd...@apache.org>
Authored: Sun Jan 3 00:22:24 2016 +0100
Committer: ddekany <dd...@apache.org>
Committed: Sun Jan 3 00:22:24 2016 +0100

----------------------------------------------------------------------
 build.xml | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/547c1eb3/build.xml
----------------------------------------------------------------------
diff --git a/build.xml b/build.xml
index 0b15d2d..9a43a45 100644
--- a/build.xml
+++ b/build.xml
@@ -338,9 +338,7 @@
     </copy>
     <copy toDir="build/classes/META-INF">
       <fileset dir="."
-        includes="
-          LICENSE.txt,
-          NOTICE.txt"
+        includes="LICENSE"
       />
     </copy>
   </target>


[02/10] incubator-freemarker git commit: Deleted examples. They weren't maintained much. Anyway, if we want examples, that should be done on GitHub for example. Putting them into the releases doesn't make much sense.

Posted by dd...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/struts-webapp/WEB-INF/struts-html.tld
----------------------------------------------------------------------
diff --git a/src/examples/struts-webapp/WEB-INF/struts-html.tld b/src/examples/struts-webapp/WEB-INF/struts-html.tld
deleted file mode 100644
index 5586e4b..0000000
--- a/src/examples/struts-webapp/WEB-INF/struts-html.tld
+++ /dev/null
@@ -1,2934 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  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.
--->
-
-
-
-
-
-
-
-<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN" "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
-<taglib>
-<tlibversion>1.0</tlibversion>
-<jspversion>1.1</jspversion>
-<shortname>html</shortname>
-<uri>http://jakarta.apache.org/struts/tags-html-1.0</uri>
-<tag>
-<name>base</name>
-<tagclass>org.apache.struts.taglib.html.BaseTag</tagclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>target</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>button</name>
-<tagclass>org.apache.struts.taglib.html.ButtonTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>cancel</name>
-<tagclass>org.apache.struts.taglib.html.CancelTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>checkbox</name>
-<tagclass>org.apache.struts.taglib.html.CheckboxTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>errors</name>
-<tagclass>org.apache.struts.taglib.html.ErrorsTag</tagclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>bundle</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>locale</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>file</name>
-<tagclass>org.apache.struts.taglib.html.FileTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>accept</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>maxlength</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>size</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>form</name>
-<tagclass>org.apache.struts.taglib.html.FormTag</tagclass>
-<bodycontent>JSP</bodycontent>
-<attribute>
-<name>action</name>
-<required>true</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>enctype</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>focus</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>method</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onreset</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onsubmit</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>scope</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>target</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>type</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>frame</name>
-<tagclass>org.apache.struts.taglib.html.FrameTag</tagclass>
-<attribute>
-<name>anchor</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>forward</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>frameborder</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>frameName</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>href</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>longdesc</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>marginheight</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>marginwidth</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>noresize</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>page</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramName</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramProperty</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramScope</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>scope</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>scrolling</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>transaction</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>hidden</name>
-<tagclass>org.apache.struts.taglib.html.HiddenTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>write</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>html</name>
-<tagclass>org.apache.struts.taglib.html.HtmlTag</tagclass>
-<bodycontent>JSP</bodycontent>
-<attribute>
-<name>locale</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>xhtml</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>image</name>
-<tagclass>org.apache.struts.taglib.html.ImageTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>align</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>border</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>bundle</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>locale</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>page</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>pageKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>src</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>srcKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>img</name>
-<tagclass>org.apache.struts.taglib.html.ImgTag</tagclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>align</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>border</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>bundle</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>height</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>hspace</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>imageName</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>ismap</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>locale</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>lowsrc</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>page</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>pageKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramName</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramProperty</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramScope</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>scope</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>src</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>srcKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>usemap</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>vspace</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>width</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>javascript</name>
-<tagclass>org.apache.struts.taglib.html.JavascriptValidatorTag</tagclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>dynamicJavascript</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-<attribute>
-<name>formName</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>method</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>page</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>src</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>staticJavascript</name>
-<required>false</required>
-<rtexprvalue>false</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>link</name>
-<tagclass>org.apache.struts.taglib.html.LinkTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>anchor</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>forward</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>href</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>linkName</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>page</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramName</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramProperty</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramScope</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>scope</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>target</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>transaction</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>messages</name>
-<tagclass>org.apache.struts.taglib.html.MessagesTag</tagclass>
-<teiclass>org.apache.struts.taglib.html.MessagesTei</teiclass>
-<bodycontent>JSP</bodycontent>
-<attribute>
-<name>id</name>
-<required>true</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>bundle</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>locale</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>header</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>footer</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>message</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>multibox</name>
-<tagclass>org.apache.struts.taglib.html.MultiboxTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>option</name>
-<tagclass>org.apache.struts.taglib.html.OptionTag</tagclass>
-<attribute>
-<name>bundle</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>key</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>locale</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>true</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>options</name>
-<tagclass>org.apache.struts.taglib.html.OptionsTag</tagclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>collection</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>filter</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>labelName</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>labelProperty</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>optionsCollection</name>
-<tagclass>org.apache.struts.taglib.html.OptionsCollectionTag</tagclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>filter</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>label</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>password</name>
-<tagclass>org.apache.struts.taglib.html.PasswordTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>maxlength</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>readonly</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>redisplay</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>size</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>radio</name>
-<tagclass>org.apache.struts.taglib.html.RadioTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>true</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>idName</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>reset</name>
-<tagclass>org.apache.struts.taglib.html.ResetTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>rewrite</name>
-<tagclass>org.apache.struts.taglib.html.RewriteTag</tagclass>
-<bodycontent>empty</bodycontent>
-<attribute>
-<name>anchor</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>forward</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>href</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>page</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramName</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramProperty</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>paramScope</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>scope</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>transaction</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>select</name>
-<tagclass>org.apache.struts.taglib.html.SelectTag</tagclass>
-<bodycontent>JSP</bodycontent>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>multiple</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>size</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>submit</name>
-<tagclass>org.apache.struts.taglib.html.SubmitTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>text</name>
-<tagclass>org.apache.struts.taglib.html.TextTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>maxlength</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>readonly</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>size</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-<tag>
-<name>textarea</name>
-<tagclass>org.apache.struts.taglib.html.TextareaTag</tagclass>
-<attribute>
-<name>accesskey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>alt</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>altKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>cols</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>disabled</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>indexed</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>name</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onblur</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onchange</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>ondblclick</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onfocus</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeydown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeypress</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onkeyup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousedown</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmousemove</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseout</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseover</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>onmouseup</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>property</name>
-<required>true</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>readonly</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>rows</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>style</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleClass</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>styleId</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>tabindex</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>title</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>titleKey</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-<attribute>
-<name>value</name>
-<required>false</required>
-<rtexprvalue>true</rtexprvalue>
-</attribute>
-</tag>
-</taglib>
-

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/struts-webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/src/examples/struts-webapp/WEB-INF/web.xml b/src/examples/struts-webapp/WEB-INF/web.xml
deleted file mode 100644
index fa8e60b..0000000
--- a/src/examples/struts-webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,125 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-  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.
--->
-
-<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web
-Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
-
-<web-app>
-  <display-name>FreeMarker Struts Example</display-name>
-
-  <!-- Struts controller servlet -->
-  <servlet>
-    <servlet-name>action</servlet-name>
-    <servlet-class>example.GuestbookActionServlet</servlet-class>
-    <init-param>
-      <param-name>config</param-name>
-      <param-value>/WEB-INF/struts-config.xml</param-value>
-    </init-param>
-    <init-param>
-      <param-name>debug</param-name>
-      <param-value>2</param-value>
-    </init-param>
-    <init-param>
-      <param-name>detail</param-name>
-      <param-value>2</param-value>
-    </init-param>
-    <load-on-startup>2</load-on-startup>
-  </servlet>
-
-  <!-- FreeMarker view servlet (to replace JSP) -->
-  <servlet>
-    <servlet-name>freemarker</servlet-name>
-    <servlet-class>freemarker.ext.servlet.FreemarkerServlet</servlet-class>
-    
-    <!-- FreemarkerServlet settings: -->
-    <init-param>
-      <param-name>TemplatePath</param-name>
-      <param-value>/</param-value>
-    </init-param>
-    <init-param>
-      <param-name>NoCache</param-name>
-      <param-value>true</param-value>
-    </init-param>
-    <init-param>
-      <param-name>ContentType</param-name>
-      <param-value>text/html</param-value>
-    </init-param>
-    
-    <!-- FreeMarker settings: -->
-    <init-param>
-      <param-name>incompatible_improvements</param-name>
-      <param-value>2.3.21</param-value>
-    </init-param>
-    <init-param>
-      <param-name>template_exception_handler</param-name>
-      <!-- Some may prefer "html_debug" for development. -->
-      <param-value>rethrow</param-value>
-    </init-param>
-    <init-param>
-      <param-name>template_update_delay</param-name>
-      <!-- 0 is for development only! Use higher value otherwise. -->
-      <param-value>0</param-value>
-    </init-param>
-    <init-param>
-      <param-name>default_encoding</param-name>
-      <param-value>UTF-8</param-value>
-    </init-param>
-    <init-param>
-      <param-name>locale</param-name>
-      <param-value>en_US</param-value>
-    </init-param>
-    <init-param>
-      <param-name>number_format</param-name>
-      <param-value>0.####</param-value>
-    </init-param>
-    
-    <load-on-startup>1</load-on-startup>
-  </servlet>
-
-  <servlet-mapping>
-    <servlet-name>action</servlet-name>
-    <url-pattern>*.do</url-pattern>
-  </servlet-mapping>
-
-  <servlet-mapping>
-    <servlet-name>freemarker</servlet-name>
-    <url-pattern>*.ftl</url-pattern>
-  </servlet-mapping>
-
-  <welcome-file-list>
-      <welcome-file>help.html</welcome-file>
-  </welcome-file-list>
-
-  <!--
-    Prevent the visiting of MVC Views from outside the servlet container.
-    RequestDispatcher.forward/include should and will still work.
-    Removing this may open security holes!
-  -->
-  <security-constraint>
-    <web-resource-collection>
-      <web-resource-name>FreeMarker MVC Views</web-resource-name>
-      <url-pattern>*.ftl</url-pattern>
-    </web-resource-collection> 
-    <auth-constraint>
-      <!-- Nobody is allowed to visit these -->
-    </auth-constraint>
-  </security-constraint>
-  
-</web-app>

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/struts-webapp/add.ftl
----------------------------------------------------------------------
diff --git a/src/examples/struts-webapp/add.ftl b/src/examples/struts-webapp/add.ftl
deleted file mode 100644
index e1c09b9..0000000
--- a/src/examples/struts-webapp/add.ftl
+++ /dev/null
@@ -1,32 +0,0 @@
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<#import "/lib/common.ftl" as com>
-<#escape x as x?html>
-
-<@com.page title="Entry added">
-  <p>You have added the following entry to the guestbook:
-  <p><b>Name:</b> ${guestbookEntry.name}
-  <#if guestbookEntry.email?length != 0>
-    <p><b>Email:</b> ${guestbookEntry.email}
-  </#if>
-  <p><b>Message:</b> ${guestbookEntry.message}
-  <p><a href="index.do">Back to the index page...</a>
-</...@com.page>
-
-</#escape>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/struts-webapp/form.ftl
----------------------------------------------------------------------
diff --git a/src/examples/struts-webapp/form.ftl b/src/examples/struts-webapp/form.ftl
deleted file mode 100644
index ee92da1..0000000
--- a/src/examples/struts-webapp/form.ftl
+++ /dev/null
@@ -1,39 +0,0 @@
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<#import "/lib/common.ftl" as com>
-<#global html=JspTaglibs["/WEB-INF/struts-html.tld"]>
-<#escape x as x?html>
-
-<@com.page title="Add Entry">
-  <@html.errors/>
-  
-  <@html.form action="/add">
-    <p>Your name:<br>
-    <@html.text property="name" size="60"/>
-    <p>Your e-mail (optional):<br>
-    <@html.text property="email" size="60"/>
-    <p>Message:<br>
-    <@html.textarea property="message" rows="3" cols="60"/>
-    <p><@html.submit value="Submit"/>
-  </...@html.form>
-  
-  <p><a href="index.do">Back to the index page</a>
-</...@com.page>
-
-</#escape>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/struts-webapp/help.html
----------------------------------------------------------------------
diff --git a/src/examples/struts-webapp/help.html b/src/examples/struts-webapp/help.html
deleted file mode 100644
index 740bee8..0000000
--- a/src/examples/struts-webapp/help.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<html>
-<head>
-  <title>FreeMarker Struts Example - Help</title>
-  <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1">
-</head>
-<body>
-
-<h1>FreeMarker Struts Example</h1>
-
-<p>This is an example of using FreeMarker templates instead of JSP with Struts 1.1.
-This meant to demonstrate how to use FreeMarker templates in a "Model 2" framework,
-and how to use custom JSP tags as if they were user-defined FreeMarker directives.
-(You can find more information about these in the FreeMarker Manual.)
-
-<p>To try this example you should visit
-<a href="index.do"><code>http://<i>yourServer</i>/<i>thisWebApp</i>/index.do</code></a>
-
-<p><b>Note:</b> To simplify the example, the guest-book entries are not stored
-persistently. If you reload the servlet all guest-book entry will lose.
-
-<hr>
-<p><a href="index.do">Back to the index page</a>
-  
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/struts-webapp/index.ftl
----------------------------------------------------------------------
diff --git a/src/examples/struts-webapp/index.ftl b/src/examples/struts-webapp/index.ftl
deleted file mode 100644
index 531017c..0000000
--- a/src/examples/struts-webapp/index.ftl
+++ /dev/null
@@ -1,41 +0,0 @@
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<#import "/lib/common.ftl" as com>
-<#escape x as x?html>
-
-<@com.page title="Index">
-  <a href="form.do">Add new message</a> | <a href="help.html">Help</a>
-  <#if guestbook?size = 0>
-    <p>No messages.
-  <#else>
-    <p>The messages are:
-    <table border=0 cellspacing=2 cellpadding=2 width="100%">
-      <tr align=center valign=top>
-        <th bgcolor="#C0C0C0">Name
-        <th bgcolor="#C0C0C0">Message
-      <#list guestbook as e>
-        <tr align=left valign=top>
-          <td bgcolor="#E0E0E0">${e.name} <#if e.email?length != 0> (<a href="mailto:${e.email}">${e.email}</a>)</#if>
-          <td bgcolor="#E0E0E0">${e.message}
-      </#list>
-    </table>
-  </#if>
-</...@com.page>
-
-</#escape>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/struts-webapp/lib/common.ftl
----------------------------------------------------------------------
diff --git a/src/examples/struts-webapp/lib/common.ftl b/src/examples/struts-webapp/lib/common.ftl
deleted file mode 100644
index 57d11be..0000000
--- a/src/examples/struts-webapp/lib/common.ftl
+++ /dev/null
@@ -1,39 +0,0 @@
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<#macro page title>
-  <html>
-  <head>
-    <title>FreeMarker Struts Example - ${title?html}</title>
-    <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1">
-  </head>
-  <body>
-    <h1>${title?html}</h1>
-    <hr>
-    <#nested>
-    <hr>
-    <table border="0" cellspacing=0 cellpadding=0 width="100%">
-      <tr valign="middle">
-        <td align="left">
-          <i>FreeMarker Struts Example</i>
-        <td align="right">
-          <a href="http://freemarker.org"><img src="poweredby_ffffff.png" border=0></a>
-    </table>
-  </body>
-  </html>
-</#macro>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/struts-webapp/poweredby_ffffff.png
----------------------------------------------------------------------
diff --git a/src/examples/struts-webapp/poweredby_ffffff.png b/src/examples/struts-webapp/poweredby_ffffff.png
deleted file mode 100644
index 22b3a80..0000000
Binary files a/src/examples/struts-webapp/poweredby_ffffff.png and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/webapp1/WEB-INF/classes/example/HelloServlet.java
----------------------------------------------------------------------
diff --git a/src/examples/webapp1/WEB-INF/classes/example/HelloServlet.java b/src/examples/webapp1/WEB-INF/classes/example/HelloServlet.java
deleted file mode 100644
index b430338..0000000
--- a/src/examples/webapp1/WEB-INF/classes/example/HelloServlet.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- *   http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package example;
-
-import java.util.*;
-import java.io.*;
-import javax.servlet.*;
-import javax.servlet.http.*;
-import freemarker.template.*;
-
-/**
- * This Servlet does not do anything useful, just prints "Hello World!". The
- * intent is to help you to get started if you want to build your own Controller
- * servlet that uses FreeMarker for the View. For more advanced example, see the
- * 2nd Web application example.
- */
-public class HelloServlet extends HttpServlet {
-
-    // Volatile so that it's properly published according to JSR 133 (JMM).
-    // Although, the servlet container most certainly makes this unnecessarry.
-    private volatile Configuration cfg; 
-    
-    public void init() {
-        // Initialize the FreeMarker configuration;
-        // - Create a configuration instance with the defaults of FreeMarker 2.3.21
-        Configuration cfg = new Configuration(Configuration.VERSION_2_3_21);
-        // - Templates are stoted in the WEB-INF/templates directory of the Web app.
-        cfg.setServletContextForTemplateLoading(
-            getServletContext(), "WEB-INF/templates");
-        // - Give the standard error page on template errors (HTTP 500, usually):
-        cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
-        // You should set various other settings in a real app.
-        // See the "webapp2" example for them.
-        
-        // Finished modifying cfg, so let's publish it to other threads:
-        this.cfg = cfg;
-    }
-    
-    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
-        throws ServletException, IOException {
-        
-        // Build the data-model
-        Map root = new HashMap();
-        root.put("message", "Hello World!");
-        
-        // Get the templat object
-        Template t = cfg.getTemplate("test.ftl");
-        
-        // Prepare the HTTP response:
-        // - Use the charset of template for the output
-        // - Use text/html MIME-type
-        resp.setContentType("text/html; charset=" + t.getEncoding());
-        Writer out = resp.getWriter();
-        
-        // Merge the data-model and the template
-        try {
-            t.process(root, out);
-        } catch (TemplateException e) {
-            throw new ServletException(
-                    "Error while processing FreeMarker template", e);
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/webapp1/WEB-INF/templates/test.ftl
----------------------------------------------------------------------
diff --git a/src/examples/webapp1/WEB-INF/templates/test.ftl b/src/examples/webapp1/WEB-INF/templates/test.ftl
deleted file mode 100644
index 4a63c14..0000000
--- a/src/examples/webapp1/WEB-INF/templates/test.ftl
+++ /dev/null
@@ -1,26 +0,0 @@
-<#--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<html>
-<head>
-  <title>FreeMarker Example Web Application 1</title>
-</head>
-<body>
-  ${message}
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/webapp1/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/src/examples/webapp1/WEB-INF/web.xml b/src/examples/webapp1/WEB-INF/web.xml
deleted file mode 100644
index aaecc63..0000000
--- a/src/examples/webapp1/WEB-INF/web.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-  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.
--->
-
-<!DOCTYPE web-app
-    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
-    "http://java.sun.com/dtd/web-app_2_3.dtd">
-
-<web-app>
-  <display-name>FreeMarker Example Web Application 1</display-name>
-  <servlet>
-    <servlet-name>hello</servlet-name>
-    <servlet-class>example.HelloServlet</servlet-class>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>hello</servlet-name>
-    <url-pattern>/hello</url-pattern>
-  </servlet-mapping>
-  <welcome-file-list>
-      <welcome-file>help.html</welcome-file>
-  </welcome-file-list>
-</web-app>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/19c2b987/src/examples/webapp1/help.html
----------------------------------------------------------------------
diff --git a/src/examples/webapp1/help.html b/src/examples/webapp1/help.html
deleted file mode 100644
index 2b777d2..0000000
--- a/src/examples/webapp1/help.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-    http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<html>
-<head>
-  <title>FreeMarker Example Web Application 1 - Help</title>
-  <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1">
-</head>
-<body>
-
-<h1>FreeMarker Example Web Application 1</h1>
-
-<p>To try this example you should visit
-<a href="hello"><code>http://<i>yourServer</i>/<i>thisWebApp</i>/hello</code></a>
-
-<h2>What's this example about?</h2>
-
-<p>This Servlet does not do anything useful, just prints "Hello World!". The
-intent is to help you to get started if you want to build your own Controller
-servlet that uses FreeMarker for the View. For more advanced example, see the
-2nd Web application example.
-  
-</body>
-</html>
\ No newline at end of file