You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2005/06/08 18:06:46 UTC

svn commit: r189602 [39/50] - in /incubator/roller/trunk: ./ contrib/ contrib/lib/ contrib/plugins/ contrib/plugins/src/ contrib/plugins/src/org/ contrib/plugins/src/org/roller/ contrib/plugins/src/org/roller/presentation/ contrib/plugins/src/org/roller/presentation/velocity/ contrib/plugins/src/org/roller/presentation/velocity/plugins/ contrib/plugins/src/org/roller/presentation/velocity/plugins/acronyms/ contrib/plugins/src/org/roller/presentation/velocity/plugins/bookmarks/ contrib/plugins/src/org/roller/presentation/velocity/plugins/email/ contrib/plugins/src/org/roller/presentation/velocity/plugins/jspwiki/ contrib/plugins/src/org/roller/presentation/velocity/plugins/radeox/ contrib/plugins/src/org/roller/presentation/velocity/plugins/readmore/ contrib/plugins/src/org/roller/presentation/velocity/plugins/smileys/ contrib/plugins/src/org/roller/presentation/velocity/plugins/textile/ docs/ docs/images/ docs/installguide/ docs/installguide/old/ docs/userguide/ docs/userguide/images/ docs/userguide/old/ metadata/ metadata/database/ metadata/database/hibernate/ metadata/xdoclet/ personal/ personal/eclipse/ personal/testing/ src/ src/org/ src/org/roller/ src/org/roller/business/ src/org/roller/business/hibernate/ src/org/roller/business/utils/ src/org/roller/model/ src/org/roller/pojos/ src/org/roller/presentation/ src/org/roller/presentation/atom/ src/org/roller/presentation/bookmarks/ src/org/roller/presentation/bookmarks/actions/ src/org/roller/presentation/bookmarks/formbeans/ src/org/roller/presentation/bookmarks/tags/ src/org/roller/presentation/filters/ src/org/roller/presentation/forms/ src/org/roller/presentation/newsfeeds/ src/org/roller/presentation/pagecache/ src/org/roller/presentation/pagecache/rollercache/ src/org/roller/presentation/tags/ src/org/roller/presentation/tags/calendar/ src/org/roller/presentation/tags/menu/ src/org/roller/presentation/velocity/ src/org/roller/presentation/weblog/ src/org/roller/presentation/weblog/actions/ src/org/roller/presentation/weblog/formbeans/ src/org/roller/presentation/weblog/search/ src/org/roller/presentation/weblog/search/operations/ src/org/roller/presentation/weblog/tags/ src/org/roller/presentation/website/ src/org/roller/presentation/website/actions/ src/org/roller/presentation/website/formbeans/ src/org/roller/presentation/website/tags/ src/org/roller/presentation/xmlrpc/ src/org/roller/util/ tests/ tests/org/ tests/org/roller/ tests/org/roller/business/ tests/org/roller/model/ tests/org/roller/persistence/ tests/org/roller/presentation/ tests/org/roller/presentation/atom/ tests/org/roller/presentation/bookmarks/ tests/org/roller/presentation/velocity/ tests/org/roller/presentation/velocity/plugins/ tests/org/roller/presentation/velocity/plugins/smileys/ tests/org/roller/presentation/velocity/plugins/textile/ tests/org/roller/presentation/xmlrpc/ tests/org/roller/util/ tools/ tools/buildtime/ tools/buildtime/mockrunner-0.2.6/ tools/buildtime/mockrunner-0.2.6/lib/ tools/buildtime/tomcat-4.1.24/ tools/buildtime/xdoclet-1.2/ tools/buildtime/xdoclet-1.2/lib/ tools/hibernate-2.1/ tools/hibernate-2.1/lib/ tools/lib/ tools/standard-1.0.3/ tools/standard-1.0.3/lib/ tools/standard-1.0.3/tld/ tools/struts-1.1/ tools/struts-1.1/lib/ web/ web/WEB-INF/ web/WEB-INF/classes/ web/WEB-INF/classes/flavors/ web/WEB-INF/classes/themes/ web/bookmarks/ web/images/ web/images/editor/ web/images/midas/ web/images/preview/ web/images/smileys/ web/tags/ web/templates/ web/theme/ web/theme/images/ web/theme/lavender/ web/theme/scripts/ web/theme/scripts/classes/ web/themes/ web/themes/basic/ web/themes/berkley/ web/themes/berkley/images/ web/themes/cheb/ web/themes/cheb/images/ web/themes/cheb/scripts/ web/themes/clean/ web/themes/currency-i18n/ web/themes/currency-i18n/images/ web/themes/currency/ web/themes/currency/images/ web/themes/grey2/ web/themes/moonshine/ web/themes/pacifica/ web/themes/robot/ web/themes/rolling/ web/themes/rolling/images/ web/themes/sotto/ web/themes/sotto/images/ web/themes/sotto/styles/ web/themes/sunsets/ web/themes/sunsets/images/ web/themes/sunsets/scripts/ web/themes/sunsets/styles/ web/themes/werner/ web/themes/x2/ web/themes/x2/images/ web/themes/x2/scripts/ web/themes/x2/styles/ web/weblog/ web/website/

Added: incubator/roller/trunk/tools/struts-1.1/lib/web-app_2_2.dtd
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/tools/struts-1.1/lib/web-app_2_2.dtd?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/tools/struts-1.1/lib/web-app_2_2.dtd (added)
+++ incubator/roller/trunk/tools/struts-1.1/lib/web-app_2_2.dtd Wed Jun  8 09:06:16 2005
@@ -0,0 +1,565 @@
+
+<!--
+The web-app element is the root of the deployment descriptor for
+a web application
+-->
+
+<!ELEMENT web-app (icon?, display-name?, description?, distributable?,
+context-param*, servlet*, servlet-mapping*, session-config?,
+mime-mapping*, welcome-file-list?, error-page*, taglib*,
+resource-ref*, security-constraint*, login-config?, security-role*,
+env-entry*, ejb-ref*)>
+
+<!--
+The icon element contains a small-icon and a large-icon element
+which specify the location within the web application for a small and
+large image used to represent the web application in a GUI tool. At a
+minimum, tools must accept GIF and JPEG format images.
+-->
+
+<!ELEMENT icon (small-icon?, large-icon?)>
+
+<!--
+The small-icon element contains the location within the web
+application of a file containing a small (16x16 pixel) icon image.
+-->
+
+<!ELEMENT small-icon (#PCDATA)>
+
+<!--
+The large-icon element contains the location within the web
+application of a file containing a large (32x32 pixel) icon image.
+-->
+
+<!ELEMENT large-icon (#PCDATA)>
+
+<!--
+The display-name element contains a short name that is intended
+to be displayed by GUI tools
+-->
+
+<!ELEMENT display-name (#PCDATA)>
+
+<!--
+The description element is used to provide descriptive text about
+the parent element.
+-->
+
+<!ELEMENT description (#PCDATA)>
+
+<!--
+The distributable element, by its presence in a web application
+deployment descriptor, indicates that this web application is
+programmed appropriately to be deployed into a distributed servlet
+container
+-->
+
+<!ELEMENT distributable EMPTY>
+
+<!--
+The context-param element contains the declaration of a web
+application's servlet context initialization parameters.
+-->
+
+<!ELEMENT context-param (param-name, param-value, description?)>
+
+<!--
+The param-name element contains the name of a parameter.
+-->
+
+<!ELEMENT param-name (#PCDATA)>
+
+<!--
+The param-value element contains the value of a parameter.
+-->
+
+<!ELEMENT param-value (#PCDATA)>
+
+<!--
+The servlet element contains the declarative data of a
+servlet. If a jsp-file is specified and the load-on-startup element is
+present, then the JSP should be precompiled and loaded.
+-->
+
+<!ELEMENT servlet (icon?, servlet-name, display-name?, description?,
+(servlet-class|jsp-file), init-param*, load-on-startup?, security-role-ref*)>
+
+<!--
+The servlet-name element contains the canonical name of the
+servlet.
+-->
+
+<!ELEMENT servlet-name (#PCDATA)>
+
+<!--
+The servlet-class element contains the fully qualified class name
+of the servlet.
+-->
+
+<!ELEMENT servlet-class (#PCDATA)>
+
+<!--
+The jsp-file element contains the full path to a JSP file within
+the web application.
+-->
+
+<!ELEMENT jsp-file (#PCDATA)>
+
+<!--
+The init-param element contains a name/value pair as an
+initialization param of the servlet
+-->
+
+<!ELEMENT init-param (param-name, param-value, description?)>
+
+<!--
+The load-on-startup element indicates that this servlet should be
+loaded on the startup of the web application. The optional contents of
+these element must be a positive integer indicating the order in which
+the servlet should be loaded. Lower integers are loaded before higher
+integers. If no value is specified, or if the value specified is not a
+positive integer, the container is free to load it at any time in the
+startup sequence.
+-->
+
+<!ELEMENT load-on-startup (#PCDATA)>
+
+<!--
+The servlet-mapping element defines a mapping between a servlet
+and a url pattern
+-->
+
+<!ELEMENT servlet-mapping (servlet-name, url-pattern)>
+
+<!--
+The url-pattern element contains the url pattern of the
+mapping. Must follow the rules specified in Section 10 of the Servlet
+API Specification.
+-->
+
+<!ELEMENT url-pattern (#PCDATA)>
+
+<!--
+The session-config element defines the session parameters for
+this web application.
+-->
+
+<!ELEMENT session-config (session-timeout?)>
+
+<!--
+The session-timeout element defines the default session timeout
+interval for all sessions created in this web application. The
+specified timeout must be expressed in a whole number of minutes.
+-->
+
+<!ELEMENT session-timeout (#PCDATA)>
+
+<!--
+The mime-mapping element defines a mapping between an extension
+and a mime type.
+-->
+
+<!ELEMENT mime-mapping (extension, mime-type)>
+
+<!--
+The extension element contains a string describing an
+extension. example: "txt"
+-->
+
+<!ELEMENT extension (#PCDATA)>
+
+<!--
+The mime-type element contains a defined mime type. example:
+"text/plain"
+-->
+
+<!ELEMENT mime-type (#PCDATA)>
+
+<!--
+The welcome-file-list contains an ordered list of welcome files
+elements.
+-->
+
+<!ELEMENT welcome-file-list (welcome-file+)>
+
+<!--
+The welcome-file element contains file name to use as a default
+welcome file, such as index.html
+-->
+
+<!ELEMENT welcome-file (#PCDATA)>
+
+<!--
+The taglib element is used to describe a JSP tag library.
+-->
+
+<!ELEMENT taglib (taglib-uri, taglib-location)>
+
+<!--
+The taglib-uri element describes a URI, relative to the location
+of the web.xml document, identifying a Tag Library used in the Web
+Application.
+-->
+
+<!ELEMENT taglib-uri (#PCDATA)>
+
+<!--
+the taglib-location element contains the location (as a resource
+relative to the root of the web application) where to find the Tag
+Libary Description file for the tag library.
+-->
+
+<!ELEMENT taglib-location (#PCDATA)>
+
+<!--
+The error-page element contains a mapping between an error code
+or exception type to the path of a resource in the web application
+-->
+
+<!ELEMENT error-page ((error-code | exception-type), location)>
+
+<!--
+The error-code contains an HTTP error code, ex: 404
+-->
+
+<!ELEMENT error-code (#PCDATA)>
+
+<!--
+The exception type contains a fully qualified class name of a
+Java exception type.
+-->
+
+<!ELEMENT exception-type (#PCDATA)>
+
+<!--
+The location element contains the location of the resource in the
+web application
+-->
+
+<!ELEMENT location (#PCDATA)>
+
+<!--
+The resource-ref element contains a declaration of a Web
+Application's reference to an external resource.
+-->
+
+<!ELEMENT resource-ref (description?, res-ref-name, res-type, res-auth)>
+
+<!--
+The res-ref-name element specifies the name of the resource
+factory reference name.
+-->
+
+<!ELEMENT res-ref-name (#PCDATA)>
+
+<!--
+The res-type element specifies the (Java class) type of the data
+source.
+-->
+
+<!ELEMENT res-type (#PCDATA)>
+
+<!--
+The res-auth element indicates whether the application component
+code performs resource signon programmatically or whether the
+container signs onto the resource based on the principle mapping
+information supplied by the deployer. Must be CONTAINER or SERVLET
+-->
+
+<!ELEMENT res-auth (#PCDATA)>
+
+<!--
+The security-constraint element is used to associate security
+constraints with one or more web resource collections
+-->
+
+<!ELEMENT security-constraint (web-resource-collection+,
+auth-constraint?, user-data-constraint?)>
+
+<!--
+The web-resource-collection element is used to identify a subset
+of the resources and HTTP methods on those resources within a web
+application to which a security constraint applies. If no HTTP methods
+are specified, then the security constraint applies to all HTTP
+methods.
+-->
+
+<!ELEMENT web-resource-collection (web-resource-name, description?,
+url-pattern*, http-method*)>
+
+<!--
+The web-resource-name contains the name of this web resource
+collection
+-->
+
+<!ELEMENT web-resource-name (#PCDATA)>
+
+<!--
+The http-method contains an HTTP method (GET | POST |...)
+-->
+
+<!ELEMENT http-method (#PCDATA)>
+
+<!--
+The user-data-constraint element is used to indicate how data
+communicated between the client and container should be protected
+-->
+
+<!ELEMENT user-data-constraint (description?, transport-guarantee)>
+
+<!--
+The transport-guarantee element specifies that the communication
+between client and server should be NONE, INTEGRAL, or
+CONFIDENTIAL. NONE means that the application does not require any
+transport guarantees. A value of INTEGRAL means that the application
+requires that the data sent between the client and server be sent in
+such a way that it can't be changed in transit. CONFIDENTIAL means
+that the application requires that the data be transmitted in a
+fashion that prevents other entities from observing the contents of
+the transmission. In most cases, the presence of the INTEGRAL or
+CONFIDENTIAL flag will indicate that the use of SSL is required.
+-->
+
+<!ELEMENT transport-guarantee (#PCDATA)>
+
+<!--
+The auth-constraint element indicates the user roles that should
+be permitted access to this resource collection. The role used here
+must appear in a security-role-ref element.
+-->
+
+<!ELEMENT auth-constraint (description?, role-name*)>
+
+<!--
+The role-name element contains the name of a security role.
+-->
+
+<!ELEMENT role-name (#PCDATA)>
+
+<!--
+The login-config element is used to configure the authentication
+method that should be used, the realm name that should be used for
+this application, and the attributes that are needed by the form login
+mechanism.
+-->
+
+<!ELEMENT login-config (auth-method?, realm-name?, form-login-config?)>
+
+<!--
+The realm name element specifies the realm name to use in HTTP
+Basic authorization
+-->
+
+<!ELEMENT realm-name (#PCDATA)>
+
+<!--
+The form-login-config element specifies the login and error pages
+that should be used in form based login. If form based authentication
+is not used, these elements are ignored.
+-->
+
+<!ELEMENT form-login-config (form-login-page, form-error-page)>
+
+<!--
+The form-login-page element defines the location in the web app
+where the page that can be used for login can be found
+-->
+
+<!ELEMENT form-login-page (#PCDATA)>
+
+<!--
+The form-error-page element defines the location in the web app
+where the error page that is displayed when login is not successful
+can be found
+-->
+
+<!ELEMENT form-error-page (#PCDATA)>
+
+<!--
+The auth-method element is used to configure the authentication
+mechanism for the web application. As a prerequisite to gaining access
+to any web resources which are protected by an authorization
+constraint, a user must have authenticated using the configured
+mechanism. Legal values for this element are "BASIC", "DIGEST",
+"FORM", or "CLIENT-CERT".
+-->
+
+<!ELEMENT auth-method (#PCDATA)>
+
+<!--
+The security-role element contains the declaration of a security
+role which is used in the security-constraints placed on the web
+application.
+-->
+
+<!ELEMENT security-role (description?, role-name)>
+
+<!--
+The role-name element contains the name of a role. This element
+must contain a non-empty string.
+-->
+
+<!ELEMENT security-role-ref (description?, role-name, role-link)>
+
+<!--
+The role-link element is used to link a security role reference
+to a defined security role. The role-link element must contain the
+name of one of the security roles defined in the security-role
+elements.
+-->
+
+<!ELEMENT role-link (#PCDATA)>
+
+<!--
+The env-entry element contains the declaration of an
+application's environment entry. This element is required to be
+honored on in J2EE compliant servlet containers.
+-->
+
+<!ELEMENT env-entry (description?, env-entry-name, env-entry-value?,
+env-entry-type)>
+
+<!--
+The env-entry-name contains the name of an application's
+environment entry
+-->
+
+<!ELEMENT env-entry-name (#PCDATA)>
+
+<!--
+The env-entry-value element contains the value of an
+application's environment entry
+-->
+
+<!ELEMENT env-entry-value (#PCDATA)>
+
+<!--
+The env-entry-type element contains the fully qualified Java type
+of the environment entry value that is expected by the application
+code. The following are the legal values of env-entry-type:
+java.lang.Boolean, java.lang.String, java.lang.Integer,
+java.lang.Double, java.lang.Float.
+-->
+
+<!ELEMENT env-entry-type (#PCDATA)>
+
+<!--
+The ejb-ref element is used to declare a reference to an
+enterprise bean. 
+-->
+
+<!ELEMENT ejb-ref (description?, ejb-ref-name, ejb-ref-type, home, remote,
+ejb-link?)>
+
+<!--
+The ejb-ref-name element contains the name of an EJB
+reference. This is the JNDI name that the servlet code uses to get a
+reference to the enterprise bean.
+-->
+
+<!ELEMENT ejb-ref-name (#PCDATA)>
+
+<!--
+The ejb-ref-type element contains the expected java class type of
+the referenced EJB.
+-->
+
+<!ELEMENT ejb-ref-type (#PCDATA)>
+
+<!--
+The ejb-home element contains the fully qualified name of the
+EJB's home interface
+-->
+
+<!ELEMENT home (#PCDATA)>
+
+<!--
+The ejb-remote element contains the fully qualified name of the
+EJB's remote interface
+-->
+
+<!ELEMENT remote (#PCDATA)>
+
+<!--
+The ejb-link element is used in the ejb-ref element to specify
+that an EJB reference is linked to an EJB in an encompassing Java2
+Enterprise Edition (J2EE) application package. The value of the
+ejb-link element must be the ejb-name of and EJB in the J2EE
+application package.
+-->
+
+<!ELEMENT ejb-link (#PCDATA)>
+
+<!--
+The ID mechanism is to allow tools to easily make tool-specific
+references to the elements of the deployment descriptor. This allows
+tools that produce additional deployment information (i.e information
+beyond the standard deployment descriptor information) to store the
+non-standard information in a separate file, and easily refer from
+these tools-specific files to the information in the standard web-app
+deployment descriptor.
+-->
+
+<!ATTLIST web-app id ID #IMPLIED>
+<!ATTLIST icon id ID #IMPLIED>
+<!ATTLIST small-icon id ID #IMPLIED>
+<!ATTLIST large-icon id ID #IMPLIED>
+<!ATTLIST display-name id ID #IMPLIED>
+<!ATTLIST description id ID #IMPLIED>
+<!ATTLIST distributable id ID #IMPLIED>
+<!ATTLIST context-param id ID #IMPLIED>
+<!ATTLIST param-name id ID #IMPLIED>
+<!ATTLIST param-value id ID #IMPLIED>
+<!ATTLIST servlet id ID #IMPLIED>
+<!ATTLIST servlet-name id ID #IMPLIED>
+<!ATTLIST servlet-class id ID #IMPLIED>
+<!ATTLIST jsp-file id ID #IMPLIED>
+<!ATTLIST init-param id ID #IMPLIED>
+<!ATTLIST load-on-startup id ID #IMPLIED>
+<!ATTLIST servlet-mapping id ID #IMPLIED>
+<!ATTLIST url-pattern id ID #IMPLIED>
+<!ATTLIST session-config id ID #IMPLIED>
+<!ATTLIST session-timeout id ID #IMPLIED>
+<!ATTLIST mime-mapping id ID #IMPLIED>
+<!ATTLIST extension id ID #IMPLIED>
+<!ATTLIST mime-type id ID #IMPLIED>
+<!ATTLIST welcome-file-list id ID #IMPLIED>
+<!ATTLIST welcome-file id ID #IMPLIED>
+<!ATTLIST taglib id ID #IMPLIED>
+<!ATTLIST taglib-uri id ID #IMPLIED>
+<!ATTLIST taglib-location id ID #IMPLIED>
+<!ATTLIST error-page id ID #IMPLIED>
+<!ATTLIST error-code id ID #IMPLIED>
+<!ATTLIST exception-type id ID #IMPLIED>
+<!ATTLIST location id ID #IMPLIED>
+<!ATTLIST resource-ref id ID #IMPLIED>
+<!ATTLIST res-ref-name id ID #IMPLIED>
+<!ATTLIST res-type id ID #IMPLIED>
+<!ATTLIST res-auth id ID #IMPLIED>
+<!ATTLIST security-constraint id ID #IMPLIED>
+<!ATTLIST web-resource-collection id ID #IMPLIED>
+<!ATTLIST web-resource-name id ID #IMPLIED>
+<!ATTLIST http-method id ID #IMPLIED>
+<!ATTLIST user-data-constraint id ID #IMPLIED>
+<!ATTLIST transport-guarantee id ID #IMPLIED>
+<!ATTLIST auth-constraint id ID #IMPLIED>
+<!ATTLIST role-name id ID #IMPLIED>
+<!ATTLIST login-config id ID #IMPLIED>
+<!ATTLIST realm-name id ID #IMPLIED>
+<!ATTLIST form-login-config id ID #IMPLIED>
+<!ATTLIST form-login-page id ID #IMPLIED>
+<!ATTLIST form-error-page id ID #IMPLIED>
+<!ATTLIST auth-method id ID #IMPLIED>
+<!ATTLIST security-role id ID #IMPLIED>
+<!ATTLIST security-role-ref id ID #IMPLIED>
+<!ATTLIST role-link id ID #IMPLIED>
+<!ATTLIST env-entry id ID #IMPLIED>
+<!ATTLIST env-entry-name id ID #IMPLIED>
+<!ATTLIST env-entry-value id ID #IMPLIED>
+<!ATTLIST env-entry-type id ID #IMPLIED>
+<!ATTLIST ejb-ref id ID #IMPLIED>
+<!ATTLIST ejb-ref-name id ID #IMPLIED>
+<!ATTLIST ejb-ref-type id ID #IMPLIED>
+<!ATTLIST home id ID #IMPLIED>
+<!ATTLIST remote id ID #IMPLIED>
+<!ATTLIST ejb-link id ID #IMPLIED>

Added: incubator/roller/trunk/tools/struts-1.1/lib/web-app_2_3.dtd
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/tools/struts-1.1/lib/web-app_2_3.dtd?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/tools/struts-1.1/lib/web-app_2_3.dtd (added)
+++ incubator/roller/trunk/tools/struts-1.1/lib/web-app_2_3.dtd Wed Jun  8 09:06:16 2005
@@ -0,0 +1,1059 @@
+<!--
+Copyright 2000-2001 Sun Microsystems, Inc. 901 San Antonio Road,
+Palo Alto, CA  94303, U.S.A.  All rights reserved.
+
+This product or document is protected by copyright and distributed
+under licenses restricting its use, copying, distribution, and
+decompilation.  No part of this product or documentation may be
+reproduced in any form by any means without prior written authorization
+of Sun and its licensors, if any.
+
+Third party software, including font technology, is copyrighted and
+licensed from Sun suppliers.
+
+Sun, Sun Microsystems, the Sun Logo, Solaris, Java, JavaServer Pages, Java
+Naming and Directory Interface, JDBC, JDK, JavaMail and Enterprise JavaBeans,
+are trademarks or registered trademarks of Sun Microsystems, Inc in the U.S.
+and other countries.
+
+All SPARC trademarks are used under license and are trademarks
+or registered trademarks of SPARC International, Inc.
+in the U.S. and other countries. Products bearing SPARC
+trademarks are based upon an architecture developed by Sun Microsystems, Inc.
+
+PostScript is a registered trademark of Adobe Systems, Inc.
+
+Federal Acquisitions: Commercial Software - Government Users Subject to
+Standard License Terms and Conditions.
+
+DOCUMENTATION IS PROVIDED "AS IS" AND ALL EXPRESS OR IMPLIED
+CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY
+IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT
+TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY
+INVALID.
+
+_________________________________________________________________________
+
+Copyright 2000-2001 Sun Microsystems, Inc.,
+901 San Antonio Road, Palo Alto, CA  94303, Etats-Unis.
+Tous droits re'serve's.
+
+
+Ce produit ou document est prote'ge' par un copyright et distribue' avec
+des licences qui en restreignent l'utilisation, la copie, la distribution,
+et la de'compilation.  Aucune partie de ce produit ou de sa documentation
+associe'e ne peut e^tre reproduite sous aucune forme, par quelque moyen
+que ce soit, sans l'autorisation pre'alable et e'crite de Sun et de ses
+bailleurs de licence, s'il y en a.
+
+Le logiciel de'tenu par des tiers, et qui comprend la technologie
+relative aux polices de caracte`res, est prote'ge' par un copyright
+et licencie' par des fournisseurs de Sun.
+
+Sun, Sun Microsystems, le logo Sun, Solaris, Java, JavaServer Pages, Java
+Naming and Directory Interface, JDBC, JDK, JavaMail, et Enterprise JavaBeans,
+sont des marques de fabrique ou des marques de'pose'es de Sun
+Microsystems, Inc. aux Etats-Unis et dans d'autres pays.
+
+Toutes les marques SPARC sont utilise'es sous licence et sont
+des marques de fabrique ou des marques de'pose'es de SPARC
+International, Inc. aux Etats-Unis et  dans
+d'autres pays. Les produits portant les marques SPARC sont
+base's sur une architecture de'veloppe'e par Sun Microsystems, Inc.
+
+Postcript est une marque enregistre'e d'Adobe Systems Inc.
+
+LA DOCUMENTATION EST FOURNIE "EN L'ETAT" ET TOUTES AUTRES CONDITIONS,
+DECLARATIONS ET GARANTIES EXPRESSES OU TACITES SONT FORMELLEMENT EXCLUES,
+DANS LA MESURE AUTORISEE PAR LA LOI APPLICABLE, Y COMPRIS NOTAMMENT
+TOUTE GARANTIE IMPLICITE RELATIVE A LA QUALITE MARCHANDE, A L'APTITUDE
+A UNE UTILISATION PARTICULIERE OU A L'ABSENCE DE CONTREFACON.
+-->
+
+<!--
+This is the XML DTD for the Servlet 2.3 deployment descriptor.
+All Servlet 2.3 deployment descriptors must include a DOCTYPE
+of the following form:
+
+  <!DOCTYPE web-app PUBLIC
+	"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+	"http://java.sun.com/dtd/web-app_2_3.dtd">
+
+-->
+
+<!--
+The following conventions apply to all J2EE deployment descriptor
+elements unless indicated otherwise.
+
+- In elements that contain PCDATA, leading and trailing whitespace
+  in the data may be ignored.
+
+- In elements whose value is an "enumerated type", the value is
+  case sensitive.
+
+- In elements that specify a pathname to a file within the same
+  JAR file, relative filenames (i.e., those not starting with "/")
+  are considered relative to the root of the JAR file's namespace.
+  Absolute filenames (i.e., those starting with "/") also specify
+  names in the root of the JAR file's namespace.  In general, relative
+  names are preferred.  The exception is .war files where absolute
+  names are preferred for consistency with the servlet API.
+-->
+
+
+<!--
+The web-app element is the root of the deployment descriptor for
+a web application.
+-->
+<!ELEMENT web-app (icon?, display-name?, description?, distributable?,
+context-param*, filter*, filter-mapping*, listener*, servlet*,
+servlet-mapping*, session-config?, mime-mapping*, welcome-file-list?,
+error-page*, taglib*, resource-env-ref*, resource-ref*, security-constraint*,
+login-config?, security-role*, env-entry*, ejb-ref*,  ejb-local-ref*)>
+
+<!--
+The auth-constraint element indicates the user roles that should
+be permitted access to this resource collection. The role-name
+used here must either correspond to the role-name of one of the
+security-role elements defined for this web application, or be
+the specially reserved role-name "*" that is a compact syntax for
+indicating all roles in the web application. If both "*" and
+rolenames appear, the container interprets this as all roles.
+If no roles are defined, no user is allowed access to the portion of
+the web application described by the containing security-constraint.
+The container matches role names case sensitively when determining
+access.
+
+
+Used in: security-constraint
+-->
+<!ELEMENT auth-constraint (description?, role-name*)>
+
+<!--
+The auth-method element is used to configure the authentication
+mechanism for the web application. As a prerequisite to gaining access to any web resources which are protected by an authorization
+constraint, a user must have authenticated using the configured
+mechanism. Legal values for this element are "BASIC", "DIGEST",
+"FORM", or "CLIENT-CERT".
+
+Used in: login-config
+-->
+<!ELEMENT auth-method (#PCDATA)>
+
+<!--
+The context-param element contains the declaration of a web
+application's servlet context initialization parameters.
+
+Used in: web-app
+-->
+<!ELEMENT context-param (param-name, param-value, description?)>
+
+<!--
+The description element is used to provide text describing the parent
+element.  The description element should include any information that
+the web application war file producer wants to provide to the consumer of
+the web application war file (i.e., to the Deployer). Typically, the tools
+used by the web application war file consumer will display the description
+when processing the parent element that contains the description.
+
+Used in: auth-constraint, context-param, ejb-local-ref, ejb-ref,
+env-entry, filter, init-param, resource-env-ref, resource-ref, run-as,
+security-role, security-role-ref, servlet, user-data-constraint,
+web-app, web-resource-collection
+-->
+<!ELEMENT description (#PCDATA)>
+
+<!--
+The display-name element contains a short name that is intended to be
+displayed by tools.  The display name need not be unique.
+
+Used in: filter, security-constraint, servlet, web-app
+
+Example:
+
+<display-name>Employee Self Service</display-name>
+-->
+<!ELEMENT display-name (#PCDATA)>
+
+<!--
+The distributable element, by its presence in a web application
+deployment descriptor, indicates that this web application is
+programmed appropriately to be deployed into a distributed servlet
+container
+
+Used in: web-app
+-->
+<!ELEMENT distributable EMPTY>
+
+<!--
+The ejb-link element is used in the ejb-ref or ejb-local-ref
+elements to specify that an EJB reference is linked to an
+enterprise bean.
+
+The name in the ejb-link element is composed of a
+path name specifying the ejb-jar containing the referenced enterprise
+bean with the ejb-name of the target bean appended and separated from
+the path name by "#".  The path name is relative to the war file
+containing the web application that is referencing the enterprise bean.
+This allows multiple enterprise beans with the same ejb-name to be
+uniquely identified.
+
+Used in: ejb-local-ref, ejb-ref
+
+Examples:
+
+	<ejb-link>EmployeeRecord</ejb-link>
+
+	<ejb-link>../products/product.jar#ProductEJB</ejb-link>
+
+-->
+<!ELEMENT ejb-link (#PCDATA)>
+
+<!--
+The ejb-local-ref element is used for the declaration of a reference to
+an enterprise bean's local home. The declaration consists of:
+
+	- an optional description
+	- the EJB reference name used in the code of the web application
+	  that's referencing the enterprise bean
+	- the expected type of the referenced enterprise bean
+	- the expected local home and local interfaces of the referenced
+	  enterprise bean
+	- optional ejb-link information, used to specify the referenced
+	  enterprise bean
+
+Used in: web-app
+-->
+<!ELEMENT ejb-local-ref (description?, ejb-ref-name, ejb-ref-type,
+		local-home, local, ejb-link?)>
+
+<!--
+The ejb-ref element is used for the declaration of a reference to
+an enterprise bean's home. The declaration consists of:
+
+	- an optional description
+	- the EJB reference name used in the code of
+	  the web application that's referencing the enterprise bean
+	- the expected type of the referenced enterprise bean
+	- the expected home and remote interfaces of the referenced
+	  enterprise bean
+	- optional ejb-link information, used to specify the referenced
+	  enterprise bean
+
+Used in: web-app
+-->
+<!ELEMENT ejb-ref (description?, ejb-ref-name, ejb-ref-type,
+		home, remote, ejb-link?)>
+
+<!--
+The ejb-ref-name element contains the name of an EJB reference. The
+EJB reference is an entry in the web application's environment and is
+relative to the java:comp/env context.  The name must be unique
+within the web application.
+
+It is recommended that name is prefixed with "ejb/".
+
+Used in: ejb-local-ref, ejb-ref
+
+Example:
+
+<ejb-ref-name>ejb/Payroll</ejb-ref-name>
+-->
+<!ELEMENT ejb-ref-name (#PCDATA)>
+
+<!--
+The ejb-ref-type element contains the expected type of the
+referenced enterprise bean.
+
+The ejb-ref-type element must be one of the following:
+
+	<ejb-ref-type>Entity</ejb-ref-type>
+	<ejb-ref-type>Session</ejb-ref-type>
+
+Used in: ejb-local-ref, ejb-ref
+-->
+<!ELEMENT ejb-ref-type (#PCDATA)>
+
+<!--
+The env-entry element contains the declaration of a web application's
+environment entry. The declaration consists of an optional
+description, the name of the environment entry, and an optional
+value.  If a value is not specified, one must be supplied
+during deployment.
+-->
+<!ELEMENT env-entry (description?, env-entry-name, env-entry-value?,
+env-entry-type)>
+
+<!--
+The env-entry-name element contains the name of a web applications's
+environment entry.  The name is a JNDI name relative to the
+java:comp/env context.  The name must be unique within a web application.
+
+Example:
+
+<env-entry-name>minAmount</env-entry-name>
+
+Used in: env-entry
+-->
+<!ELEMENT env-entry-name (#PCDATA)>
+
+<!--
+The env-entry-type element contains the fully-qualified Java type of
+the environment entry value that is expected by the web application's
+code.
+
+The following are the legal values of env-entry-type:
+
+	java.lang.Boolean
+	java.lang.Byte
+	java.lang.Character
+	java.lang.String
+	java.lang.Short
+	java.lang.Integer
+	java.lang.Long
+	java.lang.Float
+	java.lang.Double
+
+Used in: env-entry
+-->
+<!ELEMENT env-entry-type (#PCDATA)>
+
+<!--
+The env-entry-value element contains the value of a web application's
+environment entry. The value must be a String that is valid for the
+constructor of the specified type that takes a single String
+parameter, or for java.lang.Character, a single character.
+
+Example:
+
+<env-entry-value>100.00</env-entry-value>
+
+Used in: env-entry
+-->
+<!ELEMENT env-entry-value (#PCDATA)>
+
+<!--
+The error-code contains an HTTP error code, ex: 404
+
+Used in: error-page
+-->
+<!ELEMENT error-code (#PCDATA)>
+
+<!--
+The error-page element contains a mapping between an error code
+or exception type to the path of a resource in the web application
+
+Used in: web-app
+-->
+<!ELEMENT error-page ((error-code | exception-type), location)>
+
+<!--
+The exception type contains a fully qualified class name of a
+Java exception type.
+
+Used in: error-page
+-->
+<!ELEMENT exception-type (#PCDATA)>
+
+<!--
+The extension element contains a string describing an
+extension. example: "txt"
+
+Used in: mime-mapping
+-->
+<!ELEMENT extension (#PCDATA)>
+
+<!--
+Declares a filter in the web application. The filter is mapped to
+either a servlet or a URL pattern in the filter-mapping element, using
+the filter-name value to reference. Filters can access the
+initialization parameters declared in the deployment descriptor at
+runtime via the FilterConfig interface.
+
+Used in: web-app
+-->
+<!ELEMENT filter (icon?, filter-name, display-name?, description?,
+filter-class, init-param*)>
+
+<!--
+The fully qualified classname of the filter.
+
+Used in: filter
+-->
+<!ELEMENT filter-class (#PCDATA)>
+
+<!--
+Declaration of the filter mappings in this web application. The
+container uses the filter-mapping declarations to decide which filters
+to apply to a request, and in what order. The container matches the
+request URI to a Servlet in the normal way. To determine which filters
+to apply it matches filter-mapping declarations either on servlet-name,
+or on url-pattern for each filter-mapping element, depending on which
+style is used. The order in which filters are invoked is the order in
+which filter-mapping declarations that match a request URI for a
+servlet appear in the list of filter-mapping elements.The filter-name
+value must be the value of the <filter-name> sub-elements of one of the
+<filter> declarations in the deployment descriptor.
+
+Used in: web-app
+-->
+<!ELEMENT filter-mapping (filter-name, (url-pattern | servlet-name))>
+
+<!--
+The logical name of the filter. This name is used to map the filter.
+Each filter name is unique within the web application.
+
+Used in: filter, filter-mapping
+-->
+<!ELEMENT filter-name (#PCDATA)>
+
+<!--
+The form-error-page element defines the location in the web app
+where the error page that is displayed when login is not successful
+can be found. The path begins with a leading / and is interpreted
+relative to the root of the WAR.
+
+Used in: form-login-config
+-->
+<!ELEMENT form-error-page (#PCDATA)>
+
+<!--
+The form-login-config element specifies the login and error pages
+that should be used in form based login. If form based authentication
+is not used, these elements are ignored.
+
+Used in: login-config
+-->
+<!ELEMENT form-login-config (form-login-page, form-error-page)>
+
+<!--
+The form-login-page element defines the location in the web app
+where the page that can be used for login can be found. The path
+begins with a leading / and is interpreted relative to the root of the WAR.
+
+Used in: form-login-config
+-->
+<!ELEMENT form-login-page (#PCDATA)>
+
+<!--
+The home element contains the fully-qualified name of the enterprise
+bean's home interface.
+
+Used in: ejb-ref
+
+Example:
+
+<home>com.aardvark.payroll.PayrollHome</home>
+-->
+<!ELEMENT home (#PCDATA)>
+
+<!--
+The http-method contains an HTTP method (GET | POST |...).
+
+Used in: web-resource-collection
+-->
+<!ELEMENT http-method (#PCDATA)>
+
+<!--
+The icon element contains small-icon and large-icon elements that
+specify the file names for small and a large GIF or JPEG icon images
+used to represent the parent element in a GUI tool.
+
+Used in: filter, servlet, web-app
+-->
+<!ELEMENT icon (small-icon?, large-icon?)>
+
+<!--
+The init-param element contains a name/value pair as an
+initialization param of the servlet
+
+Used in: filter, servlet
+-->
+<!ELEMENT init-param (param-name, param-value, description?)>
+
+<!--
+The jsp-file element contains the full path to a JSP file within
+the web application beginning with a `/'.
+
+Used in: servlet
+-->
+<!ELEMENT jsp-file (#PCDATA)>
+
+<!--
+The large-icon element contains the name of a file
+containing a large (32 x 32) icon image. The file
+name is a relative path within the web application's
+war file.
+
+The image may be either in the JPEG or GIF format.
+The icon can be used by tools.
+
+Used in: icon
+
+Example:
+
+<large-icon>employee-service-icon32x32.jpg</large-icon>
+-->
+<!ELEMENT large-icon (#PCDATA)>
+
+<!--
+The listener element indicates the deployment properties for a web
+application listener bean.
+
+Used in: web-app
+-->
+<!ELEMENT listener (listener-class)>
+
+<!--
+The listener-class element declares a class in the application must be
+registered as a web application listener bean. The value is the fully qualified classname of the listener class.
+
+
+Used in: listener
+-->
+<!ELEMENT listener-class (#PCDATA)>
+
+<!--
+The load-on-startup element indicates that this servlet should be
+loaded (instantiated and have its init() called) on the startup
+of the web application. The optional contents of
+these element must be an integer indicating the order in which
+the servlet should be loaded. If the value is a negative integer,
+or the element is not present, the container is free to load the
+servlet whenever it chooses. If the value is a positive integer
+or 0, the container must load and initialize the servlet as the
+application is deployed. The container must guarantee that
+servlets marked with lower integers are loaded before servlets
+marked with higher integers. The container may choose the order
+of loading of servlets with the same load-on-start-up value.
+
+Used in: servlet
+-->
+<!ELEMENT load-on-startup (#PCDATA)>
+
+<!--
+
+The local element contains the fully-qualified name of the
+enterprise bean's local interface.
+
+Used in: ejb-local-ref
+
+-->
+<!ELEMENT local (#PCDATA)>
+
+<!--
+
+The local-home element contains the fully-qualified name of the
+enterprise bean's local home interface.
+
+Used in: ejb-local-ref
+-->
+<!ELEMENT local-home (#PCDATA)>
+
+<!--
+The location element contains the location of the resource in the web
+application relative to the root of the web application. The value of
+the location must have a leading `/'.
+
+Used in: error-page
+-->
+<!ELEMENT location (#PCDATA)>
+
+<!--
+The login-config element is used to configure the authentication
+method that should be used, the realm name that should be used for
+this application, and the attributes that are needed by the form login
+mechanism.
+
+Used in: web-app
+-->
+<!ELEMENT login-config (auth-method?, realm-name?, form-login-config?)>
+
+<!--
+The mime-mapping element defines a mapping between an extension
+and a mime type.
+
+Used in: web-app
+-->
+<!ELEMENT mime-mapping (extension, mime-type)>
+
+<!--
+The mime-type element contains a defined mime type. example:
+"text/plain"
+
+Used in: mime-mapping
+-->
+<!ELEMENT mime-type (#PCDATA)>
+
+<!--
+The param-name element contains the name of a parameter. Each parameter
+name must be unique in the web application.
+
+
+Used in: context-param, init-param
+-->
+<!ELEMENT param-name (#PCDATA)>
+
+<!--
+The param-value element contains the value of a parameter.
+
+Used in: context-param, init-param
+-->
+<!ELEMENT param-value (#PCDATA)>
+
+<!--
+The realm name element specifies the realm name to use in HTTP
+Basic authorization.
+
+Used in: login-config
+-->
+<!ELEMENT realm-name (#PCDATA)>
+
+<!--
+The remote element contains the fully-qualified name of the enterprise
+bean's remote interface.
+
+Used in: ejb-ref
+
+Example:
+
+<remote>com.wombat.empl.EmployeeService</remote>
+-->
+<!ELEMENT remote (#PCDATA)>
+
+<!--
+The res-auth element specifies whether the web application code signs
+on programmatically to the resource manager, or whether the Container
+will sign on to the resource manager on behalf of the web application. In the
+latter case, the Container uses information that is supplied by the
+Deployer.
+
+The value of this element must be one of the two following:
+
+	<res-auth>Application</res-auth>
+	<res-auth>Container</res-auth>
+
+Used in: resource-ref
+-->
+<!ELEMENT res-auth (#PCDATA)>
+
+<!--
+The res-ref-name element specifies the name of a resource manager
+connection factory reference.  The name is a JNDI name relative to the
+java:comp/env context.  The name must be unique within a web application.
+
+Used in: resource-ref
+-->
+<!ELEMENT res-ref-name (#PCDATA)>
+
+<!--
+The res-sharing-scope element specifies whether connections obtained
+through the given resource manager connection factory reference can be
+shared. The value of this element, if specified, must be one of the
+two following:
+
+	<res-sharing-scope>Shareable</res-sharing-scope>
+	<res-sharing-scope>Unshareable</res-sharing-scope>
+
+The default value is Shareable.
+
+Used in: resource-ref
+-->
+<!ELEMENT res-sharing-scope (#PCDATA)>
+
+<!--
+The res-type element specifies the type of the data source. The type
+is specified by the fully qualified Java language class or interface
+expected to be implemented by the data source.
+
+Used in: resource-ref
+-->
+<!ELEMENT res-type (#PCDATA)>
+
+<!--
+The resource-env-ref element contains a declaration of a web application's
+reference to an administered object associated with a resource
+in the web application's environment.  It consists of an optional
+description, the resource environment reference name, and an
+indication of the resource environment reference type expected by
+the web application code.
+
+Used in: web-app
+
+Example:
+
+<resource-env-ref>
+    <resource-env-ref-name>jms/StockQueue</resource-env-ref-name>
+    <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
+</resource-env-ref>
+-->
+<!ELEMENT resource-env-ref (description?, resource-env-ref-name,
+		resource-env-ref-type)>
+
+<!--
+The resource-env-ref-name element specifies the name of a resource
+environment reference; its value is the environment entry name used in
+the web application code.  The name is a JNDI name relative to the
+java:comp/env context and must be unique within a web application.
+
+Used in: resource-env-ref
+-->
+<!ELEMENT resource-env-ref-name (#PCDATA)>
+
+<!--
+The resource-env-ref-type element specifies the type of a resource
+environment reference.  It is the fully qualified name of a Java
+language class or interface.
+
+Used in: resource-env-ref
+-->
+<!ELEMENT resource-env-ref-type (#PCDATA)>
+
+<!--
+The resource-ref element contains a declaration of a web application's
+reference to an external resource. It consists of an optional
+description, the resource manager connection factory reference name,
+the indication of the resource manager connection factory type
+expected by the web application code, the type of authentication
+(Application or Container), and an optional specification of the
+shareability of connections obtained from the resource (Shareable or
+Unshareable).
+
+Used in: web-app
+
+Example:
+
+    <resource-ref>
+	<res-ref-name>jdbc/EmployeeAppDB</res-ref-name>
+	<res-type>javax.sql.DataSource</res-type>
+	<res-auth>Container</res-auth>
+	<res-sharing-scope>Shareable</res-sharing-scope>
+    </resource-ref>
+-->
+<!ELEMENT resource-ref (description?, res-ref-name, res-type, res-auth,
+		res-sharing-scope?)>
+
+<!--
+The role-link element is a reference to a defined security role. The
+role-link element must contain the name of one of the security roles
+defined in the security-role elements.
+
+Used in: security-role-ref
+-->
+<!ELEMENT role-link (#PCDATA)>
+
+<!--
+The role-name element contains the name of a security role.
+
+The name must conform to the lexical rules for an NMTOKEN.
+
+Used in: auth-constraint, run-as, security-role, security-role-ref
+-->
+<!ELEMENT role-name (#PCDATA)>
+
+<!--
+The run-as element specifies the run-as identity to be used for the
+execution of the web application. It contains an optional description, and
+the name of a security role.
+
+Used in: servlet
+-->
+<!ELEMENT run-as (description?, role-name)>
+
+<!--
+The security-constraint element is used to associate security
+constraints with one or more web resource collections
+
+Used in: web-app
+-->
+<!ELEMENT security-constraint (display-name?, web-resource-collection+,
+auth-constraint?, user-data-constraint?)>
+
+<!--
+The security-role element contains the definition of a security
+role. The definition consists of an optional description of the
+security role, and the security role name.
+
+Used in: web-app
+
+Example:
+
+    <security-role>
+	<description>
+	    This role includes all employees who are authorized
+	    to access the employee service application.
+	</description>
+	<role-name>employee</role-name>
+    </security-role>
+-->
+<!ELEMENT security-role (description?, role-name)>
+
+<!--
+The security-role-ref element contains the declaration of a security
+role reference in the web application's code. The declaration consists
+of an optional description, the security role name used in the code,
+and an optional link to a security role. If the security role is not
+specified, the Deployer must choose an appropriate security role.
+
+The value of the role-name element must be the String used as the
+parameter to the EJBContext.isCallerInRole(String roleName) method
+or the HttpServletRequest.isUserInRole(String role) method.
+
+Used in: servlet
+
+-->
+<!ELEMENT security-role-ref (description?, role-name, role-link?)>
+
+<!--
+The servlet element contains the declarative data of a
+servlet. If a jsp-file is specified and the load-on-startup element is
+present, then the JSP should be precompiled and loaded.
+
+Used in: web-app
+-->
+<!ELEMENT servlet (icon?, servlet-name, display-name?, description?,
+(servlet-class|jsp-file), init-param*, load-on-startup?, run-as?, security-role-ref*)>
+
+<!--
+The servlet-class element contains the fully qualified class name
+of the servlet.
+
+Used in: servlet
+-->
+<!ELEMENT servlet-class (#PCDATA)>
+
+<!--
+The servlet-mapping element defines a mapping between a servlet
+and a url pattern
+
+Used in: web-app
+-->
+<!ELEMENT servlet-mapping (servlet-name, url-pattern)>
+
+<!--
+The servlet-name element contains the canonical name of the
+servlet. Each servlet name is unique within the web application.
+
+Used in: filter-mapping, servlet, servlet-mapping
+-->
+<!ELEMENT servlet-name (#PCDATA)>
+
+<!--
+The session-config element defines the session parameters for
+this web application.
+
+Used in: web-app
+-->
+<!ELEMENT session-config (session-timeout?)>
+
+<!--
+The session-timeout element defines the default session timeout
+interval for all sessions created in this web application. The
+specified timeout must be expressed in a whole number of minutes.
+If the timeout is 0 or less, the container ensures the default
+behaviour of sessions is never to time out.
+
+Used in: session-config
+-->
+<!ELEMENT session-timeout (#PCDATA)>
+
+<!--
+The small-icon element contains the name of a file
+containing a small (16 x 16) icon image. The file
+name is a relative path within the web application's
+war file.
+
+The image may be either in the JPEG or GIF format.
+The icon can be used by tools.
+
+Used in: icon
+
+Example:
+
+<small-icon>employee-service-icon16x16.jpg</small-icon>
+-->
+<!ELEMENT small-icon (#PCDATA)>
+
+<!--
+The taglib element is used to describe a JSP tag library.
+
+Used in: web-app
+-->
+<!ELEMENT taglib (taglib-uri, taglib-location)>
+
+<!--
+the taglib-location element contains the location (as a resource
+relative to the root of the web application) where to find the Tag
+Libary Description file for the tag library.
+
+Used in: taglib
+-->
+<!ELEMENT taglib-location (#PCDATA)>
+
+<!--
+The taglib-uri element describes a URI, relative to the location
+of the web.xml document, identifying a Tag Library used in the Web
+Application.
+
+Used in: taglib
+-->
+<!ELEMENT taglib-uri (#PCDATA)>
+
+<!--
+The transport-guarantee element specifies that the communication
+between client and server should be NONE, INTEGRAL, or
+CONFIDENTIAL. NONE means that the application does not require any
+transport guarantees. A value of INTEGRAL means that the application
+requires that the data sent between the client and server be sent in
+such a way that it can't be changed in transit. CONFIDENTIAL means
+that the application requires that the data be transmitted in a
+fashion that prevents other entities from observing the contents of
+the transmission. In most cases, the presence of the INTEGRAL or
+CONFIDENTIAL flag will indicate that the use of SSL is required.
+
+Used in: user-data-constraint
+-->
+<!ELEMENT transport-guarantee (#PCDATA)>
+
+<!--
+The url-pattern element contains the url pattern of the mapping. Must
+follow the rules specified in Section 11.2 of the Servlet API
+Specification.
+
+Used in: filter-mapping, servlet-mapping, web-resource-collection
+-->
+<!ELEMENT url-pattern (#PCDATA)>
+
+<!--
+The user-data-constraint element is used to indicate how data
+communicated between the client and container should be protected.
+
+Used in: security-constraint
+-->
+<!ELEMENT user-data-constraint (description?, transport-guarantee)>
+
+<!--
+The web-resource-collection element is used to identify a subset
+of the resources and HTTP methods on those resources within a web
+application to which a security constraint applies. If no HTTP methods
+are specified, then the security constraint applies to all HTTP
+methods.
+
+Used in: security-constraint
+-->
+<!ELEMENT web-resource-collection (web-resource-name, description?,
+url-pattern*, http-method*)>
+
+<!--
+The web-resource-name contains the name of this web resource
+collection.
+
+Used in: web-resource-collection
+-->
+<!ELEMENT web-resource-name (#PCDATA)>
+
+<!--
+The welcome-file element contains file name to use as a default
+welcome file, such as index.html
+
+Used in: welcome-file-list
+-->
+<!ELEMENT welcome-file (#PCDATA)>
+
+<!--
+The welcome-file-list contains an ordered list of welcome files
+elements.
+
+Used in: web-app
+-->
+<!ELEMENT welcome-file-list (welcome-file+)>
+
+<!--
+The ID mechanism is to allow tools that produce additional deployment
+information (i.e., information beyond the standard deployment
+descriptor information) to store the non-standard information in a
+separate file, and easily refer from these tool-specific files to the
+information in the standard deployment descriptor.
+
+Tools are not allowed to add the non-standard information into the
+standard deployment descriptor.
+-->
+
+<!ATTLIST auth-constraint id ID #IMPLIED>
+<!ATTLIST auth-method id ID #IMPLIED>
+<!ATTLIST context-param id ID #IMPLIED>
+<!ATTLIST description id ID #IMPLIED>
+<!ATTLIST display-name id ID #IMPLIED>
+<!ATTLIST distributable id ID #IMPLIED>
+<!ATTLIST ejb-link id ID #IMPLIED>
+<!ATTLIST ejb-local-ref id ID #IMPLIED>
+<!ATTLIST ejb-ref id ID #IMPLIED>
+<!ATTLIST ejb-ref-name id ID #IMPLIED>
+<!ATTLIST ejb-ref-type id ID #IMPLIED>
+<!ATTLIST env-entry id ID #IMPLIED>
+<!ATTLIST env-entry-name id ID #IMPLIED>
+<!ATTLIST env-entry-type id ID #IMPLIED>
+<!ATTLIST env-entry-value id ID #IMPLIED>
+<!ATTLIST error-code id ID #IMPLIED>
+<!ATTLIST error-page id ID #IMPLIED>
+<!ATTLIST exception-type id ID #IMPLIED>
+<!ATTLIST extension id ID #IMPLIED>
+<!ATTLIST filter id ID #IMPLIED>
+<!ATTLIST filter-class id ID #IMPLIED>
+<!ATTLIST filter-mapping id ID #IMPLIED>
+<!ATTLIST filter-name id ID #IMPLIED>
+<!ATTLIST form-error-page id ID #IMPLIED>
+<!ATTLIST form-login-config id ID #IMPLIED>
+<!ATTLIST form-login-page id ID #IMPLIED>
+<!ATTLIST home id ID #IMPLIED>
+<!ATTLIST http-method id ID #IMPLIED>
+<!ATTLIST icon id ID #IMPLIED>
+<!ATTLIST init-param id ID #IMPLIED>
+<!ATTLIST jsp-file id ID #IMPLIED>
+<!ATTLIST large-icon id ID #IMPLIED>
+<!ATTLIST listener id ID #IMPLIED>
+<!ATTLIST listener-class id ID #IMPLIED>
+<!ATTLIST load-on-startup id ID #IMPLIED>
+<!ATTLIST local id ID #IMPLIED>
+<!ATTLIST local-home id ID #IMPLIED>
+<!ATTLIST location id ID #IMPLIED>
+<!ATTLIST login-config id ID #IMPLIED>
+<!ATTLIST mime-mapping id ID #IMPLIED>
+<!ATTLIST mime-type id ID #IMPLIED>
+<!ATTLIST param-name id ID #IMPLIED>
+<!ATTLIST param-value id ID #IMPLIED>
+<!ATTLIST realm-name id ID #IMPLIED>
+<!ATTLIST remote id ID #IMPLIED>
+<!ATTLIST res-auth id ID #IMPLIED>
+<!ATTLIST res-ref-name id ID #IMPLIED>
+<!ATTLIST res-sharing-scope id ID #IMPLIED>
+<!ATTLIST res-type id ID #IMPLIED>
+<!ATTLIST resource-env-ref id ID #IMPLIED>
+<!ATTLIST resource-env-ref-name id ID #IMPLIED>
+<!ATTLIST resource-env-ref-type id ID #IMPLIED>
+<!ATTLIST resource-ref id ID #IMPLIED>
+<!ATTLIST role-link id ID #IMPLIED>
+<!ATTLIST role-name id ID #IMPLIED>
+<!ATTLIST run-as id ID #IMPLIED>
+<!ATTLIST security-constraint id ID #IMPLIED>
+<!ATTLIST security-role id ID #IMPLIED>
+<!ATTLIST security-role-ref id ID #IMPLIED>
+<!ATTLIST servlet id ID #IMPLIED>
+<!ATTLIST servlet-class id ID #IMPLIED>
+<!ATTLIST servlet-mapping id ID #IMPLIED>
+<!ATTLIST servlet-name id ID #IMPLIED>
+<!ATTLIST session-config id ID #IMPLIED>
+<!ATTLIST session-timeout id ID #IMPLIED>
+<!ATTLIST small-icon id ID #IMPLIED>
+<!ATTLIST taglib id ID #IMPLIED>
+<!ATTLIST taglib-location id ID #IMPLIED>
+<!ATTLIST taglib-uri id ID #IMPLIED>
+<!ATTLIST transport-guarantee id ID #IMPLIED>
+<!ATTLIST url-pattern id ID #IMPLIED>
+<!ATTLIST user-data-constraint id ID #IMPLIED>
+<!ATTLIST web-app id ID #IMPLIED>
+<!ATTLIST web-resource-collection id ID #IMPLIED>
+<!ATTLIST web-resource-name id ID #IMPLIED>
+<!ATTLIST welcome-file id ID #IMPLIED>
+<!ATTLIST welcome-file-list id ID #IMPLIED>

Added: incubator/roller/trunk/web/WEB-INF/classes/blacklist.txt
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/WEB-INF/classes/blacklist.txt?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/blacklist.txt (added)
+++ incubator/roller/trunk/web/WEB-INF/classes/blacklist.txt Wed Jun  8 09:06:16 2005
@@ -0,0 +1,480 @@
+	
+#
+#   MT-Blacklist Master Copy
+#
+#   Last update:        2003/11/11 03:08:30
+#   Number of entries:  463
+#
+#   This is the master copy of the MT-Blacklist plugin
+#   spammer blacklist. You can import this file through
+#   the Add screen in the plugin web interface.
+#
+#   You can find out more about this file at:
+#    http://www.jayallen.org/comment_spam/
+#
+#   You can find out more about MT-Blacklist at
+#   http://www.jayallen.org/projects/mt-blacklist
+#
+([\w\-_.]+\.)?(l(so|os)tr)\.[a-z]{2,}     # Catchall regex for lsotr.xxx and lostr.xxx with or without a subdomain
+(blow)[\w\-_.]*job[\w\-_.]*\.[a-z]{2,}
+(buy)[\w\-_.]*online[\w\-_.]*\.[a-z]{2,}     # Catchall regexp for many spam sites
+(diet|penis)[\w\-_.]*(pills|enlargement)[\w\-_.]*\.[a-z]{2,}     # Catchall regexp for many spam sites
+(lolita|phentermine|viagra|vig-?rx|zyban|valtex|xenical|adipex|meridia\b)[\w\-_.]*\.[a-z]{2,}     # Super regexp for domains containing lolita, phentermine, viagra, vigrx, vig-rx, zyban, valtex, xenical, adipex and meridia
+(ragazze)-?\w+\.[a-z]{2,}     # Catchall regexp for many spam sites
+00000-online-casino.com
+0adult-cartoon.com
+0adult-manga.com
+0cartoon-porn.com
+0cartoon-sex.com
+0cartoon.com
+0casino-online.com
+0casinoonline.com
+0free-hentai.com
+0freehentai.com
+0hentai-anime.com
+0hentai-manga.com
+0hentaimanga.com
+0internet-casino.com
+0livesex.com
+0manga-porno.com
+0manga-sesso.com
+0manga.com
+0sesso-amatoriale.com
+0sesso-orale.biz
+0sesso.biz
+0sesso.us
+0sessoanale.com
+0sessogratis.us
+0sex-toons.com
+0sfondi-desktop.com
+0sfondi.com
+0suonerie.com
+0tatuaggi.com
+0toons.com
+0video-porno.com
+0virtual-casino.com
+0xxx-cartoon.com
+101pills.com
+123sessogratis.com
+1concerttickets.com
+1footballtickets.com
+1st-shemale-sex.com
+accompagnatrici.cc
+adult-manga.org
+adultfriendfindersite.com
+adultlingerieuk.com
+adultserviceproviders.com
+all-gay-porn.us
+allmagic.ru
+amateur-porn-gallery.com
+amateur-site.us
+anal-sex-pictures.us
+anime-manga.us
+anmichelle-22.da.ru
+annunci-coppie.net
+annunci-erotici.net
+annunci-erotici.org
+annunci-personali.org
+annunci-sesso.org
+annunci-sesso.us
+annuncisesso.us
+aquatyca.net
+autofinanzierung-zum-festzins.de
+autokredit-tipp.de
+autumn-jade.com
+banialoba3w.150m.com
+barcodes.cn
+basi-musicali.com
+bast3.ru
+beauty-farm.net
+belle-donne.biz
+belle-ragazze.net
+belle-ragazze.org
+belleragazze.biz
+belleragazze.org
+bellissime-donne.com
+bellissime-donne.net
+bellissimedonne.com
+bellissimedonne.org
+benessere.us
+besthandever.com
+big-black-butts.net
+big-hooters.net
+big-natural-boobs.us
+bigbras-club.com
+bigmoms.com
+bigtitchaz.com
+blackbusty.com
+blackjack-homepage.com
+blogspam.org
+bon-referencement.com
+boobmorning.com
+boobspost.com
+breast-augmentation.top-big-tits.com
+btd-online-casino.com
+busty-models.us
+bustyangelique.com
+bustydustystash.com
+bustykerrymarie.com
+buy-adult-sex-toys.com
+buy-sex-toys.net
+buy-sexy-lingerie-online.com
+buycheappills.net
+calendari-donne.com
+calendari-donne.net
+calendaridonne.com
+calendaridonne.net
+canzoni-italiane.com
+canzoni-italiane.net
+canzoni-italiane.org
+canzoni-karaoke.com
+canzoni-mp3.com
+canzoni-mp3.us
+canzoni-musica.com
+canzoni.cc
+canzonisanremo.com
+canzonistraniere.com
+cartoni-animati.com
+cartoni-hentai.com
+cartoni-hentai.net
+cartoni-hentai.org
+cartoni-porno.com
+cartonierotici.com
+cartonigiapponesi.com
+cartonihentai.net
+casino-en-ligne.fr.vu
+casino-in-linea.it.st
+certificationking.net
+cheap-adult-sex-toys.com
+cheap-online-pharmacy.org
+cheap-pills-online.com
+cherrybrady.com
+chickz.com
+chloesworld.com
+cialis.incredishop.com
+classifiche-italiane.org
+classifiche-musicali.com
+classifiche-musicali.net
+classifiche-musicali.org
+classifichemusicali.com
+computer-und-erotische-spiele-download.com
+cycatki.com
+danni.com
+dedichepersonali.com
+desiraesworld.com
+devon-daniels.com
+dianepoppos.com
+dieta-dimagrante.net
+dieta-mediterranea.net
+dieta-zona.com
+dieta.cc
+diete-dimagranti.com
+diete.bz
+dieting-review.com
+discount-airfares-guide.com
+discount-life-insurance.us
+disney-hentai.org
+donne-belle.net
+donne-famose.biz
+donne-muscolose.net
+donne-muscolose.org
+donne-nere.net
+donne-nere.org
+donne-nude.biz
+donne-porche.com
+donne-vogliose.com
+donne.bz
+donnebelle.net
+donnefamose.biz
+donnegrasse.org
+donnemature.biz
+donnemuscolose.com
+donnenere.com
+donnenere.net
+donnenude.biz
+donneporche.org
+donnesexy.org
+donnevogliose.net
+donnevogliose.org
+dr\.ag
+dragonball-porno.com
+dragonball-x.biz
+dragonball-xxx.biz
+dragonballporno.net
+dragonballx.cc
+dragonballxxx.biz
+drugstore-online.us
+drugstore.st
+drunk-girls-flashing.com
+e-discus.com
+e-order-propecia.com
+e-order-xenical.com
+ebaybusiness.net
+ecblast.com
+elcenter-s.ru
+envoyer-des-fleurs.com
+eonsystems.com
+erotische-geschichten-portal.com
+esesso-gratis.com
+evromaster.ru
+evrostroyka.narod.ru
+exoticmoms.com
+fat-cash.com
+fat-lesbians.net
+figa.nu
+film-porno.us
+final-fantasy-hentai.org
+find-lesbian-porn.com
+fioricet.st
+fitnessx.net
+forex.inc.ru
+foto-gay.us
+foto-porno.us
+foto-porno.ws
+free-adult-check.com
+free-debt-consolidation-online.us
+free-net-sex.com
+fumetti-porno.org
+fumettiporno.org
+gagnerargent.com
+gambling-homepage.com
+gamblingguidance.co.uk
+gayx.us
+generic-propecia.net
+genimat.220v.org
+genimat.cjb.net
+genimut.dr.ag
+get-hardcore-sex.com
+getaprescription.net
+giochi-hentai.com
+giochi-online.us
+giochix.com
+godere.org
+gogito.com
+grannysexthumbs.com
+guardami.org
+hardcore-porn-links.com
+hardcore-sex.bz
+hardcorecash.net
+hautesavoieimmobilier.com
+hentai-gratis.us
+hentai-hard.com
+hentai-xxx.us
+hentaigratis.net
+hentaimanga.us
+hentaix.net
+hentaixxx.us
+hentay.us
+hgh-online.com
+hobbs-farm.com
+homelivecams.com
+hornymoms.net
+hotel-bordeaux.cjb.net
+immagini-hentai.org
+immobilierdessavoie.com
+inescudna.com
+inter-ross.ru
+inviare-mms.net
+invio-mms.us
+ipharmacy.com     # Catchall for many spam sites
+itramadol.com
+juliamiles.co.uk
+karmicdebtconsolidation.com
+kcufrecnac.com
+koihoo.com
+kraskidliavas.ru
+kredite-portal.de
+kredite-sofortzusage.de
+kupibuket.ru
+las-vegas-real-estate-1.com
+lasvegasrealtor.com
+legalblonde.com
+lesbichex.com
+levitraguide.com
+link-dir.com
+linseysworld.com
+lizziemills.com
+logos-logos.be
+mainjob.ru
+manga-free.net
+manga-free.org
+manga-x.biz
+manga-xxx.org
+mature-big-tits.net
+mediaaustralia.com.au
+megapornstation.com
+menguma.com
+menzyme.com
+mmsanimati.com
+mneuron.com
+moltobene.ru
+mortgage-rates-guide.net
+mp3download.bz
+mp3x.biz
+musica-da-scaricare.net
+musica-gratis.biz
+musica-gratis.org
+musica-karaoke.net
+musica-mp3.biz
+musicamp3.us
+musicenergy.com
+my-sex-toys-store.com
+mybestcasinos.net
+mydatingagency.com
+naturalknockers.net
+net-mature.com
+netizen.org
+nichehit.com
+nicolepeters.com
+offseasonelves.com
+oldgrannyfucking.com
+onepiecex.net
+online--pharmacy.us
+online-prescription.st
+online-prescriptions-internet-pharmacy.com
+operazione-trionfo.net
+partnersuche-partnervermittlung.com
+partybingo.com
+partypoker.com
+peepissing.com
+penisenlargementmagazine.com
+penisimprovement.com
+penisresearch.com
+perfect-dedicated-server.com
+pharmacyprices.net
+picsfreesex.com
+piercingx.com
+pillinc.com
+pilltip.com
+pj-city.com
+pokemon-hentai.com
+pokemon-hentai.org
+pokemonhentai.net
+pokemonx.biz
+poker-homepage.com
+pompini.nu
+porn-4u.net
+porn-house.us
+pornogratis.bz
+pornostars.cc
+pornwww.com
+pregnant-sex-free.us
+prescription-drugs.st
+prescriptions.md
+preteen-young.net
+propecia-store.com
+prozac.st
+racconti-gay.org
+raf-ranking.com
+ragazze.bz
+rampantrabbitvibrator.co.uk
+ratenkredit-center.de
+ratenkredit-shop.de
+real-sex.us
+ricettegolose.com
+rx-store.com     # Catchall for many spam sites
+sailor-moon-hentai.org
+sailor-moon-hentai.us
+salute-bellezza.net
+salute-bellezza.org
+salute-benessere.org
+salute-e-benessere.net
+salute-igiene.com
+salute-malattie.com
+salute-malattie.net
+sarennasworld.com
+scarica-mp3.biz
+scarica-mp3.com
+scarica-musica-mp3.org
+scarica-musica.com
+scarica-musica.org
+scaricamp3.us
+scaricare-canzoni.com
+scaricare-canzoni.net
+scaricare-canzoni.org
+scaricare-mp3.org
+seitensprung-gratis.com
+selena-u.ru
+sesso-gratis.cc
+sesso-online.net
+sessoanalex.com
+sessox.biz
+sex-4you.org
+sex-lover.org
+sex-manga.us
+sexe.vc
+sexo9.com
+sexshop-sexeshop.com
+sextoysportal.com
+sexwebclub.com
+sfondi-desktop-gratis.com
+shop-opyt.com
+siti-porno.us
+ski-resorts-guide.com
+slot-machines-slots.com
+sms-sms-sms.org
+soma.st
+sonnerie-hifi-sms.com
+sonnerie-logos.be
+sonnerie-portable-composer.com
+sonnerie-portable.be
+sonneries-gsm-sms.com
+sorglos-kredit.de
+spiele-kostenlose.com
+spiele-planet.com
+sting.cc
+suonerie-loghi-gratis.com
+suonerieloghix.com
+suoneriex.net
+susiewildin.com
+svitonline.com
+sylviapanda.com
+tatuaggi-gratis.com
+tatuaggi-piercing.org
+tatuaggi-tribali.com
+tatuaggi.cc
+tatuaggi.us
+tatuaggitribali.com
+terminator-sales.com
+testi-canzoni.com
+testi-canzoni.net
+testi-musicali.com
+testi-musicali.net
+testi.cc
+tette.bz
+tettone.cc
+theceleb.com
+themadpiper.net
+tiffany-towers.com
+tits-center.com
+tits-cumshots.net
+top-dedicated-servers.com
+tramadol.st
+troie.bz
+trucchi-giochi.us
+u-w-m.ru
+ultram.st
+ultrampharmacy.com
+unbeatablerx.com
+underage-pussy.net
+uni-card.ru
+us-cash.com
+us-meds.com
+vacation-rentals-guide.com
+viaggix.com
+viapaxton.com
+video-porno.nu
+videohentai.org
+web-revenue.com
+webcam-erotiche.com
+webcopywizard.net
+wet-4all.com
+wethorny.com
+www-sesso     # Catchall for many spam sites
+x-ring-tones.com
+xlboobs.net
+xsesso.biz
+yaninediaz.com
+yukka.inc.ru
+zipcodedownload.com
+zipcodesmap.com
\ No newline at end of file

Added: incubator/roller/trunk/web/WEB-INF/classes/bookmark.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/WEB-INF/classes/bookmark.vm?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/bookmark.vm (added)
+++ incubator/roller/trunk/web/WEB-INF/classes/bookmark.vm Wed Jun  8 09:06:16 2005
@@ -0,0 +1,112 @@
+#**
+ * Macros to display Bookmark Folders and Bookmarks.
+ * @author Lance Lavandowska (conversion to Velocimacros)
+ *#
+
+#**
+ * Shows a single bookmark with image if bookmark has one,
+ * with RSS feed link if bookmark has one, and with HREF title
+ * if bookmark has a description.
+ * @param bookmark BookmarkData object to be displayed.
+ *#
+#macro( showOneBookmark2 $bookmark $useCSS)
+    #if( $useCSS )<li class="rFolderItem">#end
+    #if( $utilities.isNotEmpty( $bookmark.Image ) )
+        <a href="$bookmark.url"><img alt="$bookmark.description"
+        src="$baseURL#showResourcePath()/$bookmark.image" class="rBookmark" /></a>
+    #else
+        #if( $utilities.isNotEmpty( $bookmark.FeedUrl ) )
+        <a href="$bookmark.feedUrl"><img class="smrssbadge"
+        src="$baseURL/images/smrssbadge.gif"
+        alt="$text.get( "macro.bookmark.urlFeed" )"
+        /></a>#end
+        <a href="$bookmark.url"
+        title="$bookmark.description"
+        class="rBookmark$bookmark.weight">$bookmark.name</a>
+    #end
+    #if( $useCSS )</li>
+    #else<br />
+    #end
+#end
+## backwards-compatibility
+#macro( showOneBookmark $bookmark )
+    #showOneBookmark2( $bookmark false )
+#end
+
+#**
+ * Displays the Bookmarks in a Folder instance.
+ *#
+#macro( showFolder2 $folder $showFolderName $expandingFolder $useCSS )
+    #set( $container = "div" )
+    #if ( $useCSS ) #set( $container = "ul" ) #end
+    #set( $bookmarks = $pageModel.getBookmarks($folder) )
+##    #if ( $bookmarks.isEmpty() )
+##        #set( $showFolderName = false ) ## don't show Folder name if empty
+##    #end
+    #set( $divId = $utilities.stringReplace( $folder.Name, " ", "_" ) )
+
+    #if ( $showFolderName && $expandingFolder )
+        <div class="rFolder">
+        <a href="javascript:toggleFolder('$divId')">
+        <span id="i$divId">+</span> $folder.Name</a>
+        <$container id="$divId" style="display:none">
+    #elseif ( $showFolderName )
+        <$container class="rFolder">$folder.Name
+    #end
+    #foreach( $bookmark in $bookmarks )
+        #showOneBookmark2( $bookmark $useCSS )
+    #end
+
+    ## show sub-folders
+    #foreach( $sFolder in $folder.folders )
+        #showFolder2($sFolder $showFolderName $expandingFolder $useCSS)
+    #end
+
+    #if( $showFolderName ) </$container> #end
+    #if( $showFolderName && $expandingFolder )
+        </div>
+        <script type="text/javascript">
+        <!--
+            folderPreference("$divId");
+        // -->
+        </script>
+    #end
+#end
+## backwards compatibility
+#macro( showFolder $folder $showFolderName $expandingFolder )
+    #showFolder2( $folder $showFolderName $expandingFolder false )
+#end
+
+#**
+ * Displays a bookmark folder as named.
+ * @param folderName Name of the folder to be displayed.
+ * @param showFolderName True if folder's name is to be displayed.
+ * @param expandingFolder True if folder is to be displayed as a expanding folder.
+ *#
+#macro( showBookmarks $folderName $showFolderName $expandingFolder )
+    #if ( $pageModel.getFolder($folderName) )
+        #showFolder2($pageModel.getFolder($folderName) $showFolderName $expandingFolder true)
+    #elseif ($showFolderName)
+        <span class="error">$text.get( "macro.bookmark.error", [$folderName])</span>
+        <!--p class="rFolder">$folderName</p-->
+    #end
+#end
+
+#**
+ * Display all Bookmarks (from all Folders) for user.
+**#
+#macro( showAllBookmarks $expandingFolder )
+    #set( $root = $pageModel.getFolderByPath("/") )
+    #showFolder2($root true $expandingFolder true)
+#end
+
+#macro( showOpmlLink $folderName )
+    #if ( $pageModel.getFolder( $folderName ) )
+        <a href="$ctxPath/flavor/$userName?flavor=opml&path=$folder.path">
+            <img src="$ctxPath/images/opml.png" alt="OPML for $folderName" />
+        </a>
+    #else
+        <span class="error">$text.get( "macro.bookmark.error", [$folderName])</span>
+    #end
+#end
+

Added: incubator/roller/trunk/web/WEB-INF/classes/comments.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/WEB-INF/classes/comments.vm?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/comments.vm (added)
+++ incubator/roller/trunk/web/WEB-INF/classes/comments.vm Wed Jun  8 09:06:16 2005
@@ -0,0 +1,356 @@
+
+#**
+ * Display the pop-up comments link for a weblog entry.
+ * Use the URL for the href attribute for those who have disabled
+ * javascript or who desire to open the comments window in another (Mozilla) tab.
+ * @param entry WeblogEntry object.
+ *#
+#macro( showCommentsLink $entry )
+    #set( $commentCount = $pageModel.getCommentCount($entry.Id) )
+    #if (($entry.commentsStillAllowed && $website.allowComments) || $commentCount > 0)
+        #set( $link = "$ctxPath/comment.do?method=edit&amp;entryid=$entry.Id" )
+        <a href="$link " onclick="window.open('$link', 'comments',
+            'width=480,height=480,scrollbars=yes,status=yes,resizable'); return false;"
+            class="entrycommentslink">$text.get( "macro.weblog.comments" ) [$commentCount]</a>
+    #end
+#end
+
+#**
+ * Display the in-page comments link for a weblog entry.
+ * @param entry WeblogEntry object.
+ *#
+#macro( showCommentsPageLink $entry )
+    #set( $commentCount = $pageModel.getCommentCount($entry.Id) )
+    #if (($entry.commentsStillAllowed && $website.allowComments) || $commentCount > 0)
+        #set( $link = "$ctxPath/comments/$userName/$page.link/$utilities.encode($entry.anchor)#comments" )
+        <a href="$link" class="entrycommentslink">$text.get( "macro.weblog.comments" ) [$commentCount]</a>
+    #end
+#end
+
+#**
+ * Display link for comments that renders a dynamically (DHTML) generated
+ * comments form - Matt Raible style.
+ * @param entry WeblogEntry object.
+ *#
+#macro( showCommentsDiv $entry )
+    #set( $commentCount = $pageModel.getCommentCount($entry.Id) )
+    #if (($entry.commentsStillAllowed && $website.allowComments) || $commentCount > 0)
+        <div class="comments" id="comments">
+            <div id="commentTwisty$entry.Id" class="commentTwisty"
+                onclick="toggleComments('$entry.Id', '$ctxPath/page/$userName'); return false;">
+            <a href="$ctxPath/comments/$userName/$page.link/$utilities.encode($entry.anchor)" class="plain">
+            #if($commentCount == 0)
+                $text.get( "macro.weblog.addcomment" )
+            #elseif($commentCount == 1)
+                $commentCount $text.get( "macro.weblog.comment" )
+            #else
+                $commentCount $text.get( "macro.weblog.comments" )
+            #end</a></div>
+        </div>
+    #end
+#end
+
+#**
+ * PRIVATE. Macro for displaying Comment details (not content).
+**#
+#macro( showCommentDetails $comment $showPermalink )
+    $dateFormatter.applyPattern($text.get( "macro.weblog.datepattern" ))
+    #set($email = $utilities.hexEncode($comment.email))
+    <p class="comment-details">
+    $text.get("macro.weblog.postedby")
+    #if (!$stringUtils.isEmpty($comment.name) && !$stringUtils.isEmpty($email) && !$stringUtils.isEmpty($comment.remoteHost))
+        <a href="mailto:$email" title="$comment.remoteHost">$comment.name</a>
+    #elseif (!$stringUtils.isEmpty($comment.name) && !$stringUtils.isEmpty($email))
+        <a href="mailto:$email">$comment.name</a>
+    #elseif (!$stringUtils.isEmpty($email) && !$stringUtils.isEmpty($comment.remoteHost))
+        <a href="mailto:$email">$comment.remoteHost</a>
+    #elseif (!$stringUtils.isEmpty($comment.name) && !$stringUtils.isEmpty($comment.remoteHost))
+        <b>$comment.name</b> ($comment.remoteHost)
+    #elseif (!$stringUtils.isEmpty($comment.name))
+        <b>$comment.name</b>
+    #end
+    $text.get("macro.weblog.on") $dateFormatter.format($comment.postTime)
+    #if( $stringUtils.isNotEmpty($comment.url) )
+        $text.get( "macro.weblog.postedbywebsite", [$comment.url, $comment.url] )
+    #end
+    #if( $showPermalink )
+    <a href="${ctxPath}/comments/${userName}/${page.link}/${entry.anchor}#comment${velocityCount}"
+       class="entrypermalink"
+       title="$text.get( "macro.weblog.commentpermalink.title" )">#</a>
+    #end
+    </p>
+#end
+
+#**
+ * Display comments for an entry.
+ * @param entry WeblogEntry object.
+ *#
+#macro( showComments $entry )
+    <div class="comments" id="comments">
+    #if( $previewComments )
+        #set( $comments = $previewComments )
+        <div class="comments-head">$text.get( "macro.weblog.preview" ):</div>
+    #else
+        <div class="comments-head">$text.get( "macro.weblog.comments" ):</div>
+        #set( $comments = $entry.comments )
+    #end
+    #showStatusMessage()
+    <br/>
+    #foreach( $comment in $comments )
+        #set($content = $utilities.encodeEmail($comment.content))
+        #if($escapeHtml)
+            #set($content = $utilities.escapeHTML($content))
+        #end
+        #if($autoformat)
+            #set($content = $utilities.autoformat($content))
+        #end
+        <div class="comment" id="comment${velocityCount}">
+        ${content}
+
+        #showCommentDetails($comment true)
+        </div>
+    #end
+    </div>
+#end
+
+#**
+ * Display recent comments for whole blog (not just one entry).
+**#
+#macro( showRecentComments $numComments )
+    #if( !$numComments ) #set( $numComments = 20 ) #end
+    #if( $numComments > 100 ) #set( $numComments = 50 ) #end
+    #set( $comments = $pageModel.getRecentComments($numComments) )
+    <div class="comments" id="comments">
+    #foreach( $comment in $comments )
+        #set($content = $utilities.encodeEmail($comment.content))
+        #if($escapeHtml)
+            #set($content = $utilities.escapeHTML($content))
+        #end
+        #if($autoformat)
+            #set($content = $stringUtils.replace($content,"\n","<br />"))
+        #end
+        <div class="comment" style="border: 1px solid #dadada; padding-left: 3px; padding-right: 5px;" >
+        <p>Commenting on <a class="entrypermalink"
+            href="${ctxPath}${comment.weblogEntry.permaLink}">${comment.weblogEntry.title}</a>:</p>
+        ${content}
+        #showCommentDetails($comment false)
+        </div>
+    #end
+    </div>
+#end
+
+#**
+ * Display list of recent comments.  $maxWidth determines the amount of text
+ * from the comment to display in the list.
+**#
+#macro( showRecentCommentsListWidth $numComments $maxWidth )
+    #if( !$numComments ) #set( $numComments = 20 ) #end
+    #if( $numComments > 100 ) #set( $numComments = 100 ) #end
+    #set( $minWidth = $maxWidth - 5 )
+    #set( $comments = $pageModel.getRecentComments($numComments) )
+    <ul class="commentsList">Recent Comments
+    #foreach( $comment in $comments )
+        #set($content = $utilities.encodeEmail($comment.content))
+        <li class="commentsListItem"><a
+           href="${ctxPath}/comments/${userName}/${page.link}/${comment.weblogEntry.anchor}#comments"
+           class="entrypermalink"
+           title="$text.get( "macro.weblog.commentpermalink.title" ) to
+               '$utilities.removeHTML($comment.weblogEntry.title)'"
+           >$utilities.truncateNicely($utilities.removeHTML($content), $minWidth, $maxWidth, "...")</a>
+        </li>
+    #end
+    </ul>
+#end
+#**
+ * Convenience method. Show list with 25 character width.
+**#
+#macro( showRecentCommentsList $numComments )
+#showRecentCommentsListWidth( $numComments 25 )
+#end
+
+#**
+ * Display comment form for a weblog entry.
+ * @param entry WeblogEntry object.
+ *#
+#macro( showCommentForm $entry )
+    <div class="comments-form">
+    <div class="comments-head">$text.get("macro.weblog.postcommentHeader")</div><br/>
+    <form method="post" action="$ctxPath/comment.do" focus="name"
+        name="form" onsubmit="fixURL(this); return validateComments(this)">
+
+        <!-- is this a publish or a preview -->
+        <input type="hidden" name="method" value="updateFromPage" />
+        <input type="hidden" name="entryid" value="$entry.id" />
+
+        <table cellspacing="0" cellpadding="1" border="0" width="95%">
+        <tr><th>$text.get( "macro.weblog.name" )</th>
+            <td><input type="text" name="name" value="$commentForm.name" size="50" maxlength="255" /></td>
+        </tr>
+
+        <tr><th>$text.get( "macro.weblog.email" )</th>
+            <td><input type="text" name="email" value="$commentForm.email" size="50" maxlength="255" /></td>
+        </tr>
+
+        <tr><th>$text.get( "macro.weblog.url" )</th>
+            <td><input type="text" name="url" value="$commentForm.url" size="50" maxlength="255" /></td>
+        </tr>
+        <tr>
+            <td></td>
+            <td>
+                <input type="checkbox" id="rememberInfo" name="rememberInfo" />
+                <label for="rememberInfo">$text.get( "macro.weblog.rememberinfo" )</label>
+            </td>
+        </tr>
+        </table>
+        <br/>
+
+        <table>
+        <tr><th>$text.get( "macro.weblog.yourcomment" )</th></tr>
+        <tr>
+            <td>
+            <textarea name="content" cols="50" rows="10">$commentForm.content</textarea><br />
+            <span style="comments-syntax-indicator">
+            $text.get( "macro.weblog.htmlsyntax" )
+            #if( $escapeHtml )
+                <span class="disabled">$text.get( "macro.weblog.htmldisabled" )</span>
+            #else
+                <span class="enabled">$text.get( "macro.weblog.htmlenabled" )</span>
+            #end
+            </span>
+            </td>
+        </tr>
+        </table>
+
+        <table cellspacing="0" cellpadding="1" border="0" width="95%">
+        <tr>
+            <td align="left" nowrap="nowrap">
+               <input type="button" name="post" value="&nbsp;$text.get( "macro.weblog.preview" )&nbsp;"
+                  onClick="this.form.method.value='previewFromPage';this.form.submit()" />
+               <input type="submit" name="post" value="&nbsp;$text.get( "macro.weblog.post" )&nbsp;" />
+            </td>
+            <td align="right">
+               <!-- <input type="button" value="&nbsp;$text.get( "macro.weblog.clear" )&nbsp;" /> -->
+            </td>
+        </tr>
+        </table>
+
+    </form>
+
+    <script type="text/javascript" src="$ctxPath/theme/scripts/roller.js"></script>
+    <script type="text/javascript">
+    var author = getCookie("commentAuthor");
+    var email = getCookie("commentEmail");
+    var url = getCookie("commentUrl");
+    // check each field - IE will render "null"
+    if (author) {
+        theForm.name.value = author;
+    }
+    if (email) {
+        theForm.email.value = email;
+    }
+    if (url) {
+        theForm.url.value = url;
+    }
+
+    if (author || email || url) {
+        theForm.rememberInfo.checked = true;
+    }
+
+    function fixURL(theForm) {
+        if (theForm.url.value != "" &&
+            theForm.url.value.indexOf("http://") == -1) { //prepend http://
+            theForm.url.value = "http://"+theForm.url.value;
+        }
+        saveUserInformation(theForm);
+    }
+
+    function saveUserInformation(theForm) {
+        if (theForm.rememberInfo.checked) {
+            rememberUser(theForm);
+        } else {
+            forgetUser(theForm);
+        }
+    }
+
+    function validateComments(theForm) {
+        if (theForm.content.value == "") {
+            alert("$text.get( "macro.weblog.commentwarning" )");
+            theForm.content.focus();
+            return false;
+        }
+    }
+    </script>
+    </div>
+#end
+
+#**
+ * Display hidden comment form for a weblog entry.
+ * @param entry WeblogEntry object.
+ *#
+#macro( showHiddenCommentForm )
+  <div style="display: none" class="comments">
+    <div id="commentBoxTemplate" class="commentBox">
+    <form class="commentFormBox" id="commentForm"
+        method="post" action="$ctxPath/comment.do"
+        onsubmit="onSubmitComments(this.entryid.value);fixURL(this);return validateComments(this)">
+
+        <table>
+            <tr class="commentFormRow">
+                <td>$text.get( "macro.weblog.name" )</td>
+                <td>
+                    <input name="name" type="text" class="commentFormInput" size="50"/>
+                    <input type="hidden" name="method" value="updateFromPage" />
+                    <input type="hidden" name="entryid" value="" id="entryid" />
+                </td>
+            </tr>
+            <tr class="commentFormRow">
+                <td>$text.get( "macro.weblog.email" )</td>
+                <td><input name="email" type="text" class="commentFormInput" size="50"/></td>
+            </tr>
+            <tr class="commentFormRow">
+                <td>$text.get( "macro.weblog.url" )</td>
+                <td><input name="url" type="text" class="commentFormInput" size="50"/></td>
+            </tr>
+            <tr>
+                <td></td>
+                <td>
+                    <input type="checkbox" id="rememberInfo" name="rememberInfo" />
+                    <label for="rememberInfo">$text.get( "macro.weblog.rememberinfo" )</label>
+                </td>
+        </tr>
+        </table>
+        <div class="commentFormRow">
+            <textarea name="content" class="commentFormTextarea" rows="4" cols="60"></textarea>
+            <div class="htmlSyntax">
+            $text.get( "macro.weblog.htmlsyntax" )
+            #if( $escapeHtml )
+                <span class="disabled">$text.get( "macro.weblog.htmldisabled" )</span>
+            #else
+                <span class="enabled">$text.get( "macro.weblog.htmlenabled" )</span>
+            #end
+            </div>
+        </div>
+        <div class="commentFormRow">
+           <input type="submit" name="post" value="&nbsp;$text.get( "macro.weblog.postcomment" )&nbsp;" />
+        </div>
+      </form>
+    </div>
+    <script type="text/javascript">
+        // add a target to the iframe on the commentForm
+        var commentForm = document.getElementById("commentForm");
+        commentForm.target = "commentFrame";
+    </script>
+
+    <div id="commentTemplate" class="comment">
+      <div class="commentBody" id="commentBody"></div>
+      <div class="commentByline">
+        <a class="commentAuthor" id="commentAuthorLink"></a>
+        <span>&nbsp;on&nbsp;</span><span id="commentTimestamp"></span>
+      </div>
+    </div>
+
+    <iframe name="commentFrame" src="about:blank"></iframe>
+
+    <script type="text/javascript" src="$ctxPath/theme/scripts/roller.js"></script>
+  </div>
+#end

Added: incubator/roller/trunk/web/WEB-INF/classes/commons-logging.properties
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/WEB-INF/classes/commons-logging.properties?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/commons-logging.properties (added)
+++ incubator/roller/trunk/web/WEB-INF/classes/commons-logging.properties Wed Jun  8 09:06:16 2005
@@ -0,0 +1 @@
+org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.Log4jFactory
\ No newline at end of file

Added: incubator/roller/trunk/web/WEB-INF/classes/flavors/atom.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/WEB-INF/classes/flavors/atom.vm?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/flavors/atom.vm (added)
+++ incubator/roller/trunk/web/WEB-INF/classes/flavors/atom.vm Wed Jun  8 09:06:16 2005
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding='utf-8'?>
+$pageHelper.setContentType("application/atom+xml;charset=utf-8")
+<feed version="0.2" xmlns="http://purl.org/atom/ns#">
+    <title>$utilities.textToHTML($website.name,true)</title>
+    <tagline>$utilities.textToHTML($website.description,true)</tagline>
+    <link>$websiteURL</link>
+    <modified>$utilities.formatIso8601Date($updateTime)</modified>
+    <generator name="RollerWeblogger 0.9.9">http://www.rollerweblogger.org</generator>
+
+    #set( $entries = $pageModel.getRecentWeblogEntriesArray($entryCount, 'nil') )
+    #foreach( $entry in $entries )
+    <entry xmlns="http://example.com/newformat#" >
+        <title>$utilities.textToHTML($entry.title,true)</title>
+        <summary>#showEntryDescription($entry)</summary>
+
+        <author>
+          <name>$fullName</name>
+          <url>$websiteURL</url>
+          <email>$emailAddress</email>
+        </author>
+
+        <issued>$utilities.formatIso8601Date($entry.pubTime)</issued>
+        <created>$utilities.formatIso8601Date($entry.pubTime)</created>
+        <modified>$utilities.formatIso8601Date($entry.updateTime)</modified>
+
+        <link>$absBaseURL$entry.permaLink</link>
+        <id>urn:rollerweblogger.org:entry:$entry.id</id>
+
+        <content type="application/xhtml+xml" xml:lang="en-us">
+          #showEntryText($entry)
+        </content>
+        <!--
+        #if( $entry.website.allowComments )
+           #if( ! $website.allowComments )
+           ## if the $entry.website is different than the $website then we are
+           ## producing an aggregated feed and we need to form the full URL.
+           <comment>$absBaseURL/page/$entry.website.user.userName?anchor=$entry.anchor</comment>
+           #else
+           <comment>$absBaseURL?anchor=$entry.anchor</comment>
+           #end
+        #end
+        -->
+    </entry>
+    #end
+</feed>
\ No newline at end of file

Added: incubator/roller/trunk/web/WEB-INF/classes/flavors/foaf.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/WEB-INF/classes/flavors/foaf.vm?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/flavors/foaf.vm (added)
+++ incubator/roller/trunk/web/WEB-INF/classes/flavors/foaf.vm Wed Jun  8 09:06:16 2005
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+         xmlns:foaf="http://xmlns.com/foaf/0.1/">
+  <foaf:Person>
+    <foaf:name>$fullName</foaf:name>
+    #if ($shaEmail)
+      <foaf:mbox_sha1sum>$shaEmail</foaf:mbox_sha1sum>
+    #elseif ($encodedEmail)
+      <foaf:mbox rdf:resource="mailto:$encodedEmail" />
+    #end
+    <foaf:homepage rdf:resource="$websiteURL" />
+    #if ($weblog)
+      <foaf:weblog rdf:resource="$weblog" />
+    #end
+  </foaf:Person>
+</rdf:RDF>
\ No newline at end of file

Added: incubator/roller/trunk/web/WEB-INF/classes/flavors/opml.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/WEB-INF/classes/flavors/opml.vm?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/flavors/opml.vm (added)
+++ incubator/roller/trunk/web/WEB-INF/classes/flavors/opml.vm Wed Jun  8 09:06:16 2005
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding='utf-8'?>
+$pageHelper.setContentType("text/xml")
+<opml version="1.1">
+<head>
+<title>Roller-generated OPML</title>
+</head>
+#macro( spaces $depth )#foreach( $i in [0..$depth] )    #end#end
+#**
+* Recursive VelociMacro to render OPML for folder.
+* @param folder Folder to be rendered as OPML or null to render from top.
+*#
+#macro( genOpml $folder $depth )
+    #set( $depth = $depth + 1 )
+    #if( !$folder )
+        <outline text="Roller-generated OPML">
+        #set( $topfolders = $pageModel.getTopLevelFolders() )
+        #foreach( $topfolder in $topfolders )
+            #genOpml( $topfolder $depth )
+        #end
+        </outline>
+    #else
+        #spaces($depth)<outline text="$utilities.textToXML($folder.name)">
+        #set( $bookmarks = $folder.getBookmarks() )
+        #foreach( $bookmark in $bookmarks )
+            #if( $bookmark.feedUrl && $bookmark.feedUrl.trim().length()>0 )
+                #set($feedUrl = $bookmark.feedUrl)
+            #end
+            #spaces($depth)<outline #if($bookmark.url)text="$utilities.textToXML($bookmark.name)"#end
+            #spaces($depth)   #if($feedUrl)type="rss"#end
+            #spaces($depth)   #if($bookmark.url)htmlUrl="$utilities.textToXML($bookmark.url)"#end
+            #spaces($depth)   #if($feedUrl)xmlUrl="$utilities.textToXML($feedUrl)"#end
+            #spaces($depth) />
+        #end
+        #set( $subfolders = $folder.getFolders() )
+        #foreach( $subfolder in $subfolders )
+            #genOpml( $subfolder $depth )
+        #end
+        #spaces($depth)</outline>
+    #end
+    #set( $depth = $depth - 1 )
+#end
+<body>
+#set( $folderPath = $pageModel.getRequestParameter("path") )
+#if( $folderPath )
+    #set( $folder = $pageModel.getFolderByPath($folderPath) )
+#end
+#genOpml( $folder 0 )
+</body>
+</opml>
\ No newline at end of file

Added: incubator/roller/trunk/web/WEB-INF/classes/flavors/rss.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/WEB-INF/classes/flavors/rss.vm?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/flavors/rss.vm (added)
+++ incubator/roller/trunk/web/WEB-INF/classes/flavors/rss.vm Wed Jun  8 09:06:16 2005
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+$pageHelper.setContentType("application/rss+xml;charset=utf-8")
+<rss version="2.0">
+<channel>
+  <title>$utilities.textToHTML($website.name,true)</title>
+  <link>$websiteURL</link>
+  <description>$utilities.textToHTML($website.description,true)</description>
+  <language>en-us</language>
+  <copyright>Copyright #formatDate("yyyy" $now)</copyright>
+  <lastBuildDate>$utilities.formatRfc822Date($updateTime)</lastBuildDate>
+  <generator>Roller Weblogger #showVersion() ($rollerBuildTime:$rollerBuildUser)</generator>
+  <managingEditor>$emailAddress</managingEditor>
+  <webMaster>$emailAddress</webMaster>
+  #set( $entries = $pageModel.getRecentWeblogEntriesArray($entryCount, 'nil') )
+  #foreach( $entry in $entries )
+  <item>
+    <title>$utilities.textToHTML($entry.title,true)</title>
+    #if( $entry.link && !$entry.link.trim().equals("") )
+    <link>$utilities.textToHTML($entry.link)</link>
+    #end
+    <description>#showEntryDescription($entry)</description>
+    <category>$entry.category.name</category>
+    <guid isPermaLink="true">$absBaseURL$entry.permaLink</guid>
+    #if( $website.allowComments )
+    <comments>$absBaseURL/page/$entry.website.user.userName?anchor=$entry.anchor</comments>
+    #end
+    <pubDate>$utilities.formatRfc822Date($entry.pubTime)</pubDate>
+  </item>
+  #end
+</channel>
+</rss>
\ No newline at end of file

Added: incubator/roller/trunk/web/WEB-INF/classes/flavors/rss091.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/WEB-INF/classes/flavors/rss091.vm?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/WEB-INF/classes/flavors/rss091.vm (added)
+++ incubator/roller/trunk/web/WEB-INF/classes/flavors/rss091.vm Wed Jun  8 09:06:16 2005
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+$pageHelper.setContentType("text/xml;charset=utf-8")
+<rss version="0.91">
+    <channel>
+    <title>$utilities.textToHTML($website.name,true)</title>
+    <link>$websiteURL</link>
+    <description>$utilities.textToHTML($website.description,true)</description>
+    <language>en-us</language>
+    <copyright>Copyright #formatDate("yyyy" $now)</copyright>
+    <managingEditor>$emailAddress</managingEditor>
+    <webMaster>$emailAddress</webMaster>
+    #set( $entries = $pageModel.getRecentWeblogEntriesArray($entryCount, 'nil') )
+    #foreach( $entry in $entries )
+    <item>
+        <title>$utilities.textToHTML($entry.title,true)</title>
+        <link>$absBaseURL$entry.permaLink</link>
+        <description>#showEntryDescription($entry)</description>
+    </item>
+    #end
+    </channel>
+</rss>
\ No newline at end of file