Update of 
/cvsroot/xdoclet-plugins/xdoclet-plugins/plugin-web/src/main/java/org/xdoclet/plugin/web
In directory 
sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv9889/plugin-web/src/main/java/org/xdoclet/plugin/web

Modified Files:
        TaglibPlugin.jelly WebPlugin.java WebPlugin.jelly 
Log Message:
reworked jelly merge, moved taglib from web plugin to generama to provide 
standard 
merge capabilities


Index: TaglibPlugin.jelly
===================================================================
RCS file: 
/cvsroot/xdoclet-plugins/xdoclet-plugins/plugin-web/src/main/java/org/xdoclet/plugin/web/TaglibPlugin.jelly,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** TaglibPlugin.jelly  4 Dec 2005 18:25:16 -0000       1.13
--- TaglibPlugin.jelly  24 Sep 2006 11:58:57 -0000      1.14
***************
*** 2,6 ****
  
  <j:jelly xmlns:j="jelly:core" xmlns:jxml="jelly:xml"
!          xmlns:x="jelly:org.xdoclet.plugin.web.jelly.XdocletTaglib">
  
      <j:if test="${plugin.needsDoctype()}">
--- 2,6 ----
  
  <j:jelly xmlns:j="jelly:core" xmlns:jxml="jelly:xml"
!          xmlns:g="jelly:org.generama.jelly.GeneramaTaglib">
  
      <j:if test="${plugin.needsDoctype()}">
***************
*** 18,25 ****
  
          <j:if test="${plugin.isMinimumJspVersion('2.0')}">
!             <x:condelement tag="description" obj="${plugin}" 
property="description"/>
!             <x:condelement tag="display-name" obj="${plugin}" 
property="displayname"/>
!             <x:condelement tag="small-icon" obj="${plugin}" 
property="smallicon"/>
!             <x:condelement tag="large-icon" obj="${plugin}" 
property="largeicon"/>
          </j:if>
  
--- 18,25 ----
  
          <j:if test="${plugin.isMinimumJspVersion('2.0')}">
!             <g:condelement tag="description" obj="${plugin}" 
property="description"/>
!             <g:condelement tag="display-name" obj="${plugin}" 
property="displayname"/>
!             <g:condelement tag="small-icon" obj="${plugin}" 
property="smallicon"/>
!             <g:condelement tag="large-icon" obj="${plugin}" 
property="largeicon"/>
          </j:if>
  
***************
*** 30,41 ****
          <short-name>${plugin.shortname}</short-name>
  
!         <x:condelement tag="uri" obj="${plugin}" property="uri"/>
          <j:if test="${plugin.isMaximumJspVersion('1.2')}">
!             <x:condelement tag="display-name" obj="${plugin}" 
property="displayname"/>
!             <x:condelement tag="small-icon" obj="${plugin}" 
property="smallicon"/>
!             <x:condelement tag="large-icon" obj="${plugin}" 
property="largeicon"/>
!             <x:condelement tag="description" obj="${plugin}" 
property="description"/>
          </j:if>
!         <x:condelement tag="validator" obj="${plugin}" property="validator"/>
  
          <!-- listeners -->
--- 30,41 ----
          <short-name>${plugin.shortname}</short-name>
  
!         <g:condelement tag="uri" obj="${plugin}" property="uri"/>
          <j:if test="${plugin.isMaximumJspVersion('1.2')}">
!             <g:condelement tag="display-name" obj="${plugin}" 
property="displayname"/>
!             <g:condelement tag="small-icon" obj="${plugin}" 
property="smallicon"/>
!             <g:condelement tag="large-icon" obj="${plugin}" 
property="largeicon"/>
!             <g:condelement tag="description" obj="${plugin}" 
property="description"/>
          </j:if>
!         <g:condelement tag="validator" obj="${plugin}" property="validator"/>
  
          <!-- listeners -->
***************
*** 53,83 ****
  
                  <j:if test="${plugin.isMinimumJspVersion('2.0')}">
!                     <x:condelement tag="description" obj="${tagtag}" 
property="description"/>
!                     <x:condelement tag="display-name" obj="${tagtag}" 
property="display-name"/>
!                     <x:condelement tag="small-icon" obj="${tagtag}" 
property="small-icon"/>
!                     <x:condelement tag="large-icon" obj="${tagtag}" 
property="large-icon"/>
                  </j:if>
                  <name>${tagtag.getNamedParameter('name')}</name>
                  <tag-class>${tag.fullyQualifiedName}</tag-class>
!                 <x:condelement tag="tei-class" doclettag="${tagtag}" 
property="tei-class"/>
!                 <x:condelement tag="body-content" doclettag="${tagtag}" 
property="body-content"/>
                  <j:if test="${plugin.isMaximumJspVersion('1.2')}">
!                     <x:condelement tag="display-name" doclettag="${tagtag}" 
property="display-name"/>
!                     <x:condelement tag="small-icon" doclettag="${tagtag}" 
property="small-icon"/>
!                     <x:condelement tag="large-icon" doclettag="${tagtag}" 
property="large-icon"/>
!                     <x:condelement tag="description" doclettag="${tagtag}" 
property="description"/>
                  </j:if>
                  <j:forEach var="var" 
items="${tag.getTagsByName('jsp.variable')}">
                      <variable>
                          <j:if test="${plugin.isMinimumJspVersion('2.0')}">
!                             <x:condelement tag="description" 
doclettag="${var}" property="description"/>
                          </j:if>
!                         <x:condelement tag="name-given" doclettag="${var}" 
property="name-given"/>
!                         <x:condelement tag="name-from-attribute" 
doclettag="${var}" property="name-from-attribute"/>
!                         <x:condelement tag="variable-class" 
doclettag="${var}" property="class"/>
!                         <x:condelement tag="declare" doclettag="${var}" 
property="declare"/>
!                         <x:condelement tag="scope" doclettag="${var}" 
property="scope"/>
                          <j:if test="${plugin.isMaximumJspVersion('1.2')}">
!                             <x:condelement tag="description" 
doclettag="${var}" property="description"/>
                          </j:if>
                      </variable>
--- 53,83 ----
  
                  <j:if test="${plugin.isMinimumJspVersion('2.0')}">
!                     <g:condelement tag="description" obj="${tagtag}" 
property="description"/>
!                     <g:condelement tag="display-name" obj="${tagtag}" 
property="display-name"/>
!                     <g:condelement tag="small-icon" obj="${tagtag}" 
property="small-icon"/>
!                     <g:condelement tag="large-icon" obj="${tagtag}" 
property="large-icon"/>
                  </j:if>
                  <name>${tagtag.getNamedParameter('name')}</name>
                  <tag-class>${tag.fullyQualifiedName}</tag-class>
!                 <g:condelement tag="tei-class" doclettag="${tagtag}" 
property="tei-class"/>
!                 <g:condelement tag="body-content" doclettag="${tagtag}" 
property="body-content"/>
                  <j:if test="${plugin.isMaximumJspVersion('1.2')}">
!                     <g:condelement tag="display-name" doclettag="${tagtag}" 
property="display-name"/>
!                     <g:condelement tag="small-icon" doclettag="${tagtag}" 
property="small-icon"/>
!                     <g:condelement tag="large-icon" doclettag="${tagtag}" 
property="large-icon"/>
!                     <g:condelement tag="description" doclettag="${tagtag}" 
property="description"/>
                  </j:if>
                  <j:forEach var="var" 
items="${tag.getTagsByName('jsp.variable')}">
                      <variable>
                          <j:if test="${plugin.isMinimumJspVersion('2.0')}">
!                             <g:condelement tag="description" 
doclettag="${var}" property="description"/>
                          </j:if>
!                         <g:condelement tag="name-given" doclettag="${var}" 
property="name-given"/>
!                         <g:condelement tag="name-from-attribute" 
doclettag="${var}" property="name-from-attribute"/>
!                         <g:condelement tag="variable-class" 
doclettag="${var}" property="class"/>
!                         <g:condelement tag="declare" doclettag="${var}" 
property="declare"/>
!                         <g:condelement tag="scope" doclettag="${var}" 
property="scope"/>
                          <j:if test="${plugin.isMaximumJspVersion('1.2')}">
!                             <g:condelement tag="description" 
doclettag="${var}" property="description"/>
                          </j:if>
                      </variable>
***************
*** 87,98 ****
                      <attribute>
                          <j:if test="${plugin.isMinimumJspVersion('2.0')}">
!                             <x:condelement tag="description" 
doclettag="${attr}" property="description"/>
                          </j:if>
                          <name>${attrMethod.propertyName}</name>
!                         <x:condelement tag="required" doclettag="${attr}" 
property="required"/>
!                         <x:condelement tag="rtexprvalue" doclettag="${attr}" 
property="rtexprvalue"/>
!                         <x:condelement tag="type" doclettag="${attr}" 
property="type"/>
                          <j:if test="${plugin.isMaximumJspVersion('1.2')}">
!                             <x:condelement tag="description" 
doclettag="${attr}" property="description"/>
                          </j:if>
                      </attribute>
--- 87,98 ----
                      <attribute>
                          <j:if test="${plugin.isMinimumJspVersion('2.0')}">
!                             <g:condelement tag="description" 
doclettag="${attr}" property="description"/>
                          </j:if>
                          <name>${attrMethod.propertyName}</name>
!                         <g:condelement tag="required" doclettag="${attr}" 
property="required"/>
!                         <g:condelement tag="rtexprvalue" doclettag="${attr}" 
property="rtexprvalue"/>
!                         <g:condelement tag="type" doclettag="${attr}" 
property="type"/>
                          <j:if test="${plugin.isMaximumJspVersion('1.2')}">
!                             <g:condelement tag="description" 
doclettag="${attr}" property="description"/>
                          </j:if>
                      </attribute>

Index: WebPlugin.java
===================================================================
RCS file: 
/cvsroot/xdoclet-plugins/xdoclet-plugins/plugin-web/src/main/java/org/xdoclet/plugin/web/WebPlugin.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -C2 -d -r1.24 -r1.25
*** WebPlugin.java      19 Jan 2006 23:49:23 -0000      1.24
--- WebPlugin.java      24 Sep 2006 11:58:57 -0000      1.25
***************
*** 19,204 ****
  
  /**
!  *
   * TODO : check qtags, xtags
!  *
!  * TODO: add getMetadataProvider() to AbstractPlugin instead of keeping the 
allClass reference ?
!  *
   * TODO : validate generated XML ?
!  *
!  * TODO : mandatory tags/attributes? (filter-name, filter-class, 
filter-mapping, ...)
!  *
!  * TODO : filter-mapping: check that a mapping has only of one url-pattern or 
servlet-name
!  * TODO : filter-mapping: check that a servlet-name mapping points to an 
existing servlet? i wouldn't do it, because
!  *                        a servlet might be declared in a merge file.
!  *
!  * @author     Gr&eacute;gory Joseph
!  * @author     Aslak Helles&oslash;y
!  * @version    $Revision$
   */
  public class WebPlugin extends QDoxPlugin {
-     private String publicId = WebUtils.WEBXML_PUBLIC_ID_2_3;
-     private String systemId = WebUtils.WEBXML_SYSTEM_ID_2_3;
  
!     private static Map filterInterface = new HashMap();
  
!     static {
!         filterInterface.put(WebUtils.SERVLET_23, new 
String[]{"javax.servlet.Filter"});
!         filterInterface.put(WebUtils.SERVLET_24, new 
String[]{"javax.servlet.Filter"});
!     }
  
!     private static String servletInterface = "javax.servlet.Servlet";
!     private static String[] allWebInterfaces = {"javax.servlet.Filter", 
servletInterface,
!                                                 
"javax.servlet.ServletContextAttributeListener", 
"javax.servlet.ServletContextListener",
!                                                 
"javax.servlet.ServletRequestAttributeListener", 
"javax.servlet.ServletRequestListener",
!                                                 
"javax.servlet.http.HttpSessionActivationListener", 
"javax.servlet.http.HttpSessionAttributeListener",
!                                                 
"javax.servlet.http.HttpSessionBindingListener", 
"javax.servlet.http.HttpSessionListener"}; // TODO avoid repeating 
listenerInterfaces
  
!     private WebUtils webUtils;
!     private String servletversion = WebUtils.SERVLET_23;
!     protected File mergeDir;
  
!     public WebPlugin(JellyTemplateEngine jellyTemplateEngine, 
QDoxCapableMetadataProvider metadataProvider, WriterMapper writerMapper) {
!         super(jellyTemplateEngine, metadataProvider, writerMapper);
  
!         setMultioutput(false);
!         setFilereplace("web.xml");
  
!         setOutputValidator(new XMLOutputValidator(WebUtils.DTDs));
  
!         new TagLibrary(metadataProvider);
  
!     }
  
!     //== plugin attributes ==
!     public String getServletversion() {
!         return servletversion;
!     }
  
!     public void setServletversion(String servletversion) {
!         this.servletversion = servletversion;
!     }
  
!     //== util methods used by jelly script ==
!     public WebUtils getWebUtils() {
!         if (webUtils == null) {
!             webUtils = new WebUtils(servletversion);
!         }
!         return webUtils;
!     }
  
!     // TODO : this is to be replaced by an XmlDocVersion class
!     public boolean needsDoctype() {
!         return !getWebUtils().isMinimumServletVersion(WebUtils.SERVLET_24);
!     }
  
!     public boolean needsSchema() {
!         return getWebUtils().isMinimumServletVersion(WebUtils.SERVLET_24);
!     }
  
!     public String getSchemaXmlNs() {
!         return needsSchema() ? "http://java.sun.com/xml/ns/j2ee"; : null;
!     }
  
!     public String getSchemaXmlNsXsi() {
!         return needsSchema() ? "http://www.w3.org/2001/XMLSchema-instance"; : 
null;
!     }
  
!     public String getSchemaXsiSchemaLocation() {
!         return needsSchema() ? "http://java.sun.com/xml/ns/j2ee " + 
WebUtils.WEBXML_SCHEMA_2_4 : null;
!     }
  
!     /**
!      * Returns an ordered collection of all the filters passed to the plugin.
!      *
!      * TODO: document the "order" attribute.
!      * TODO: more test cases with order? maybe not xmltestcases then, but 
smaller units..
!      * TODO: use "before"&"after" attributes instead of "order" ?
!      *
!      * TODO : return empty collection if servlet-api-version < 2.3
!      *
!      * @return
!      * @see ClassTagPredicate used to filter out non-filters
!      * @see ClassAttributeComparator used to sort filters
!      */
!     public Collection getFilters() {
!         // filter out non-filter classes
!         ArrayList filters = new ArrayList();
!         String[] interfaces = (String[]) filterInterface.get(servletversion);
!         if (interfaces != null) {
!             Predicate predicate = new ClassTagPredicate(interfaces, 
"web.filter");
!             CollectionUtils.select(metadataProvider.getMetadata(), predicate, 
filters);
  
!             // sort filters by the order attribute of the @web.filter tag
!             Collections.sort(filters, new 
ClassAttributeComparator("web.filter", "order"));
!         }
!         return filters;
!     }
  
!     public Collection getServlets() {
!         ArrayList servlets = new ArrayList();
!         Predicate predicate = new ClassTagPredicate(servletInterface, 
"web.servlet");
!         CollectionUtils.select(metadataProvider.getMetadata(), predicate, 
servlets);
  
!         // sort servlets by the order attribute of the @web.servlet tag
!         Collections.sort(servlets, new 
ClassAttributeComparator("web.servlet", "order"));
  
!         return servlets;
!     }
  
!     /**
!      * TODO : cache the result of this? (maybe it's one of the reasons the 
plugin is slow??)
!      */
!     public Collection getAllWebClasses() {
!         ArrayList all = new ArrayList();
!         Predicate predicate = new ClassTagPredicate(allWebInterfaces);
!         CollectionUtils.select(metadataProvider.getMetadata(), predicate, 
all);
  
!         // TODO: any order for this? maybe by classname.
  
!         return metadataProvider.getMetadata();
!     }
  
!     public boolean needsServletRunAs(DocletTag tag) {
!         return (tag.getNamedParameter("run-as") != null)
!             && (servletversion.compareTo(WebUtils.SERVLET_23)>=0);
!     }
  
!     public String getPublicId() {
!         return publicId;
!     }
  
!     public String getSystemId() {
!         return systemId;
!     }
  
!     /**
!      * Setter for mergeDir property
!      *
!      * @param mergeDir The value for the property
!      */
!     public void setMergedir(File mergeDir) {
!         this.mergeDir = mergeDir;
!     }
  
!     /**
!      * Utility method called from jelly script to resolve a mergeFile 
reference
!      *
!      * @param mergeFile The mergeFile to look for
!      *
!      * @return A File for mergeFile
!      */
!     public File getMergeFile(String mergeFile) {
!         if ((mergeFile != null) && (mergeDir != null) && 
mergeDir.isDirectory()) {
!             // The listing of mergeDir's files avoid possibly security issues 
in path resolving (paranoid?)
!             File[] files = mergeDir.listFiles();
  
!             for (int i = 0; i < files.length; i++) {
!                 if (mergeFile.trim().equals(files[i].getName())) {
!                     return files[i];
!                 }
!             }
!         }
  
!         return null;
!     }
  }
--- 19,245 ----
  
  /**
!  * 
   * TODO : check qtags, xtags
!  * 
!  * TODO: add getMetadataProvider() to AbstractPlugin instead of keeping the
!  * allClass reference ?
!  * 
   * TODO : validate generated XML ?
!  * 
!  * TODO : mandatory tags/attributes? (filter-name, filter-class, 
filter-mapping,
!  * ...)
!  * 
!  * TODO : filter-mapping: check that a mapping has only of one url-pattern or
!  * servlet-name TODO : filter-mapping: check that a servlet-name mapping 
points
!  * to an existing servlet? i wouldn't do it, because a servlet might be 
declared
!  * in a merge file.
!  * 
!  * @author Gr&eacute;gory Joseph
!  * @author Aslak Helles&oslash;y
!  * @version $Revision$
   */
  public class WebPlugin extends QDoxPlugin {
  
!       private static String[] allWebInterfaces = { "javax.servlet.Filter",
!               "javax.servlet.Servlet", 
"javax.servlet.ServletContextAttributeListener",
!                       "javax.servlet.ServletContextListener",
!                       "javax.servlet.ServletRequestAttributeListener",
!                       "javax.servlet.ServletRequestListener",
!                       "javax.servlet.http.HttpSessionActivationListener",
!                       "javax.servlet.http.HttpSessionAttributeListener",
!                       "javax.servlet.http.HttpSessionBindingListener",
!                       "javax.servlet.http.HttpSessionListener" }; // TODO 
avoid repeating
!                                                                               
                                // listenerInterfaces
  
!       private static Map filterInterface = new HashMap();
  
!       static {
!               filterInterface.put(WebUtils.SERVLET_23,
!                               new String[] { "javax.servlet.Filter" });
!               filterInterface.put(WebUtils.SERVLET_24,
!                               new String[] { "javax.servlet.Filter" });
!       }
  
!       protected String mergeDir;
  
!       private String publicId = WebUtils.WEBXML_PUBLIC_ID_2_3;
  
!       private String servletversion = WebUtils.SERVLET_23;
  
!       private String systemId = WebUtils.WEBXML_SYSTEM_ID_2_3;
  
!       private WebUtils webUtils;
  
!       public WebPlugin(JellyTemplateEngine jellyTemplateEngine,
!                       QDoxCapableMetadataProvider metadataProvider,
!                       WriterMapper writerMapper) {
!               super(jellyTemplateEngine, metadataProvider, writerMapper);
  
!               setMultioutput(false);
!               setFilereplace("web.xml");
  
!               setOutputValidator(new XMLOutputValidator(WebUtils.DTDs));
  
!               new TagLibrary(metadataProvider);
  
!       }
  
!       /**
!        * TODO : cache the result of this? (maybe it's one of the reasons the
!        * plugin is slow??)
!        */
!       public Collection getAllWebClasses() {
!               ArrayList all = new ArrayList();
!               Predicate predicate = new ClassTagPredicate(allWebInterfaces);
!               CollectionUtils.select(metadataProvider.getMetadata(), 
predicate, all);
  
!               // TODO: any order for this? maybe by classname.
  
!               return metadataProvider.getMetadata();
!       }
  
!       /**
!        * base path to resource directory containing resources to be merged 
they
!        * shall be made available on class path
!        * 
!        * @return
!        */
!       public String getMergeDir() {
!               return mergeDir;
!       }
  
!       public void setMergeDir(String mergeDir) {
!               this.mergeDir = mergeDir;
!       }
  
!       /**
!        * Returns an ordered collection of all the filters passed to the 
plugin.
!        * 
!        * TODO: document the "order" attribute. TODO: more test cases with 
order?
!        * maybe not xmltestcases then, but smaller units.. TODO: use
!        * "before"&"after" attributes instead of "order" ?
!        * 
!        * TODO : return empty collection if servlet-api-version < 2.3
!        * 
!        * @return
!        * @see ClassTagPredicate used to filter out non-filters
!        * @see ClassAttributeComparator used to sort filters
!        */
!       public Collection getFilters() {
!               // filter out non-filter classes
!               ArrayList filters = new ArrayList();
!               String[] interfaces = (String[]) 
filterInterface.get(servletversion);
!               if (interfaces != null) {
!                       Predicate predicate = new ClassTagPredicate(interfaces,
!                                       "web.filter");
!                       CollectionUtils.select(metadataProvider.getMetadata(), 
predicate,
!                                       filters);
  
!                       // sort filters by the order attribute of the 
@web.filter tag
!                       Collections.sort(filters, new ClassAttributeComparator(
!                                       "web.filter", "order"));
!               }
!               return filters;
!       }
  
!       /**
!        * Utility method called from jelly script to resolve a mergeFile 
reference
!        * 
!        * @param mergeFile
!        *            The mergeFile to look for
!        * 
!        * @return A File for mergeFile
!        */
! //    public File getMergeFile(String mergeFile) {
! //            if ((mergeFile != null) && (mergeDir != null) && 
mergeDir.isDirectory()) {
! //                    // The listing of mergeDir's files avoid possibly 
security issues in
! //                    // path resolving (paranoid?)
! //                    File[] files = mergeDir.listFiles();
! //
! //                    for (int i = 0; i < files.length; i++) {
! //                            if 
(mergeFile.trim().equals(files[i].getName())) {
! //                                    return files[i];
! //                            }
! //                    }
! //            }
! //
! //            return null;
! //    }
  
!       public String getPublicId() {
!               return publicId;
!       }
  
!       public String getSchemaXmlNs() {
!               return needsSchema() ? "http://java.sun.com/xml/ns/j2ee"; : null;
!       }
  
!       public String getSchemaXmlNsXsi() {
!               return needsSchema() ? 
"http://www.w3.org/2001/XMLSchema-instance";
!                               : null;
!       }
  
!       public String getSchemaXsiSchemaLocation() {
!               return needsSchema() ? "http://java.sun.com/xml/ns/j2ee "
!                               + WebUtils.WEBXML_SCHEMA_2_4 : null;
!       }
  
!       public Collection getServlets() {
!               ArrayList servlets = new ArrayList();
!               Predicate predicate = new 
ClassTagPredicate("javax.servlet.Servlet",
!                               "web.servlet");
!               CollectionUtils.select(metadataProvider.getMetadata(), 
predicate,
!                               servlets);
  
!               // sort servlets by the order attribute of the @web.servlet tag
!               Collections.sort(servlets, new 
ClassAttributeComparator("web.servlet",
!                               "order"));
  
!               return servlets;
!       }
  
!       // == plugin attributes ==
!       public String getServletversion() {
!               return servletversion;
!       }
  
!       public String getSystemId() {
!               return systemId;
!       }
  
!       // == util methods used by jelly script ==
!       public WebUtils getWebUtils() {
!               if (webUtils == null) {
!                       webUtils = new WebUtils(servletversion);
!               }
!               return webUtils;
!       }
  
!       // TODO : this is to be replaced by an XmlDocVersion class
!       public boolean needsDoctype() {
!               return 
!getWebUtils().isMinimumServletVersion(WebUtils.SERVLET_24);
!       }
! 
!       public boolean needsSchema() {
!               return 
getWebUtils().isMinimumServletVersion(WebUtils.SERVLET_24);
!       }
! 
!       public boolean needsServletRunAs(DocletTag tag) {
!               return (tag.getNamedParameter("run-as") != null)
!                               && 
(servletversion.compareTo(WebUtils.SERVLET_23) >= 0);
!       }
! 
!       /**
!        * Setter for mergeDir property
!        * 
!        * @param mergeDir
!        *            The value for the property
!        */
!       public void setMergedir(String mergeDir) {
!               this.mergeDir = mergeDir;
!       }
! 
!       public void setServletversion(String servletversion) {
!               this.servletversion = servletversion;
!       }
  }

Index: WebPlugin.jelly
===================================================================
RCS file: 
/cvsroot/xdoclet-plugins/xdoclet-plugins/plugin-web/src/main/java/org/xdoclet/plugin/web/WebPlugin.jelly,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** WebPlugin.jelly     19 Jan 2006 23:49:23 -0000      1.21
--- WebPlugin.jelly     24 Sep 2006 11:58:57 -0000      1.22
***************
*** 1,6 ****
  <?xml version="1.0" encoding="UTF-8"?>
  
! <j:jelly xmlns:j="jelly:core" xmlns:jxml="jelly:xml" xmlns:d="jelly:define"
!     xmlns:x="jelly:org.xdoclet.plugin.web.jelly.XdocletTaglib">
  
      <!--macros-->
--- 1,6 ----
  <?xml version="1.0" encoding="UTF-8"?>
  
! <j:jelly xmlns:j="jelly:core" xmlns:x="jelly:xml" xmlns:d="jelly:define"
!         xmlns:g="jelly:org.generama.jelly.GeneramaTaglib">
  
      <!--macros-->
***************
*** 8,17 ****
          <init-param>
              <j:if test="${plugin.webUtils.isMinimumServletVersion('2.4')}">
!             <x:condelement tag="description" doclettag="${param}" 
property="description"/>
              </j:if>
              <param-name>${param.getNamedParameter("name")}</param-name>
              <param-value>${param.getNamedParameter("value")}</param-value>
              <j:if test="${plugin.webUtils.isMaximumServletVersion('2.3')}">
!             <x:condelement tag="description" doclettag="${param}" 
property="description"/>
              </j:if>
          </init-param>
--- 8,17 ----
          <init-param>
              <j:if test="${plugin.webUtils.isMinimumServletVersion('2.4')}">
!                 <g:condelement tag="description" doclettag="${param}" 
property="description"/>
              </j:if>
              <param-name>${param.getNamedParameter("name")}</param-name>
              <param-value>${param.getNamedParameter("value")}</param-value>
              <j:if test="${plugin.webUtils.isMaximumServletVersion('2.3')}">
!                 <g:condelement tag="description" doclettag="${param}" 
property="description"/>
              </j:if>
          </init-param>
***************
*** 24,30 ****
  
      <j:if test="${plugin.needsDoctype()}">
!     <jxml:doctype name="web-app"
!         publicId="${plugin.publicId}"
!         systemId="${plugin.systemId}"/>
      </j:if>
  
--- 24,30 ----
  
      <j:if test="${plugin.needsDoctype()}">
!         <x:doctype name="web-app"
!                 publicId="${plugin.publicId}"
!                 systemId="${plugin.systemId}"/>
      </j:if>
  
***************
*** 32,259 ****
      <!-- TODO : check exactly what parameters are mandatory or not, esp. with 
ejb-reb and such -->
  
!     <jxml:element URI="${plugin.schemaXmlNs}" name="web-app">
          <j:if test="${plugin.needsSchema()}">
!             <jxml:attribute URI="${plugin.schemaXmlNsXsi}" 
name="xsi:schemaLocation" 
trim="true">${plugin.schemaXsiSchemaLocation}</jxml:attribute>
!             <jxml:attribute name="version" 
trim="true">${plugin.servletversion}</jxml:attribute>
          </j:if>
  
!         <jxml:replaceNamespace toURI="${plugin.schemaXmlNs}">
  
          <!--TODO : distributable : add this tag conditionaly/-->
  
          <!-- filters -->
!         <j:forEach var="filter" items="${plugin.filters}">
!             <filter>
!                 <j:set var="item" 
value="${filter.getTagByName('web.filter')}"/>
!                 <j:if 
test="${plugin.webUtils.isMinimumServletVersion('2.4')}">
!                     <x:condelement tag="description" doclettag="${item}" 
property="description"/>
!                     <x:condelement tag="display-name" doclettag="${item}" 
property="display-name"/>
!                 </j:if>
!                 <j:if test="${item.getNamedParameter('icon') != null}">
!                     <icon>
!                         
<small-icon>${item.getNamedParameter('icon')}</small-icon>
!                     </icon>
!                 </j:if>
!                 <filter-name>${item.getNamedParameter('name')}</filter-name>
!                 <j:if 
test="${plugin.webUtils.isMaximumServletVersion('2.3')}">
!                     <x:condelement tag="display-name" doclettag="${item}" 
property="display-name"/>
!                     <x:condelement tag="description" doclettag="${item}" 
property="description"/>
!                 </j:if>
!                 <filter-class>${filter.fullyQualifiedName}</filter-class>
!                 <j:forEach var="param" 
items="${filter.getTagsByName('web.filter-init-param')}">
!                     <d:invoke script="${init_param}"/>
!                 </j:forEach>
!             </filter>
!         </j:forEach>
!         <j:choose>
!             <j:when test="${plugin.getMergeFile('filters.xml').exists()}">
!                 <j:import file="${plugin.getMergeFile('filters.xml').path}" 
inherit="true"/>
!             </j:when>
!             <j:otherwise>
!                 <jxml:comment trim="false">To add filters that you have 
deployment descriptor info for, add a file to your XDoclet merge directory 
called filters.xml that contains the <filter></filter> markup for those 
beans.</jxml:comment>
!             </j:otherwise>
!         </j:choose>
! 
          <!-- filter-mappings -->
!         <j:forEach var="filter" items="${plugin.filters}">
!             <j:forEach var="mapping" 
items="${filter.getTagsByName('web.filter-mapping')}">
!                 <filter-mapping>
!                     
<filter-name>${filter.getNamedParameter("web.filter","name")}</filter-name>
!                     <x:condelement tag="url-pattern" doclettag="${mapping}" 
property="url-pattern"/>
!                     <x:condelement tag="servlet-name" doclettag="${mapping}" 
property="servlet-name"/>
!                 </filter-mapping>
              </j:forEach>
!         </j:forEach>
!         <j:choose>
!             <j:when 
test="${plugin.getMergeFile('filter-mappings.xml').exists()}">
!                 <j:import 
file="${plugin.getMergeFile('filter-mappings.xml').path}" inherit="true"/>
!             </j:when>
!             <j:otherwise>
!                 <jxml:comment trim="false">To add filters that you have 
deployment descriptor info for, add a file to your XDoclet merge directory 
called filter-mappings.xml that contains the 
<filter-mappings></filter-mappings> markup for those beans.</jxml:comment>
!             </j:otherwise>
!         </j:choose>
  
          <!-- listeners -->
!         <j:forEach var="listener" 
items="${plugin.webUtils.getListeners(metadata)}">
!             <listener>
!                 
<listener-class>${listener.fullyQualifiedName}</listener-class>
!             </listener>
!         </j:forEach>
  
          <!-- servlets -->
!         <j:forEach var="servlet" items="${plugin.servlets}">
!             <j:set var="item" value="${servlet.getTagByName('web.servlet')}"/>
!             <servlet>
!                 <j:if 
test="${plugin.webUtils.isMinimumServletVersion('2.4')}">
!                 <x:condelement tag="description" doclettag="${item}" 
property="description"/>
!                 <x:condelement tag="display-name" doclettag="${item}" 
property="display-name"/>
!                 </j:if>
!                 
<servlet-name>${servlet.getNamedParameter("web.servlet","name")}</servlet-name>
!                 <j:if 
test="${plugin.webUtils.isMaximumServletVersion('2.3')}">
!                 <x:condelement tag="display-name" doclettag="${item}" 
property="display-name"/>
!                 <x:condelement tag="description" doclettag="${item}" 
property="description"/>
!                 </j:if>
!                 <servlet-class>${servlet.fullyQualifiedName}</servlet-class>
!                 <j:forEach var="param" 
items="${servlet.getTagsByName('web.servlet-init-param')}">
!                     <d:invoke script="${init_param}"/>
!                 </j:forEach>
!                 <x:condelement tag="load-on-startup" doclettag="${item}" 
property="load-on-startup"/>
!                 <j:if test="${plugin.needsServletRunAs(item)}">
!                     <run-as>
!                         
<role-name>${item.getNamedParameter('run-as')}</role-name>
!                     </run-as>
!                 </j:if>
                  <!-- security-roles references -->
!                 <j:forEach var="class" items="${plugin.allWebClasses}">
!                     <j:forEach var="item" 
items="${class.getTagsByName('web.security-role-ref')}">
!                         <security-role-ref>
!                             <x:condelement tag="description" 
doclettag="${item}" property="description"/>
!                             
<role-name>${item.getNamedParameter('role-name')}</role-name>
!                             
<role-link>${item.getNamedParameter('role-link')}</role-link>
!                         </security-role-ref>
                      </j:forEach>
!                 </j:forEach>
!             </servlet>
!         </j:forEach>
!         <j:choose>
!             <j:when test="${plugin.getMergeFile('servlets.xml').exists()}">
!                 <j:import file="${plugin.getMergeFile('servlets.xml').path}" 
inherit="true"/>
!             </j:when>
!             <j:otherwise>
!                 <jxml:comment trim="false">To add filters that you have 
deployment descriptor info for, add a file to your XDoclet merge directory 
called servlets.xml that contains the <servlet></servlet> markup for those 
beans.</jxml:comment>
!             </j:otherwise>
!         </j:choose>
  
          <!-- servlet-mappings -->
!         <j:forEach var="servlet" items="${plugin.servlets}">
!             <j:forEach var="mapping" 
items="${servlet.getTagsByName('web.servlet-mapping')}">
!                 <servlet-mapping>
!                     
<servlet-name>${servlet.getNamedParameter("web.servlet","name")}</servlet-name>
!                     <x:condelement tag="url-pattern" doclettag="${mapping}" 
property="url-pattern"/>
!                 </servlet-mapping>
              </j:forEach>
!         </j:forEach>
!         <j:choose>
!             <j:when 
test="${plugin.getMergeFile('servlet-mappings.xml').exists()}">
!                 <j:import 
file="${plugin.getMergeFile('servlet-mappings.xml').path}" inherit="true"/>
!             </j:when>
!             <j:otherwise>
!                 <jxml:comment trim="false">To add filters that you have 
deployment descriptor info for, add a file to your XDoclet merge directory 
called servlet-mappings.xml that contains the 
<servlet-mappings></servlet-mappings> markup for those beans.</jxml:comment>
!             </j:otherwise>
!         </j:choose>
  
          <!-- resource env references -->
!         <j:if test="${plugin.webUtils.isMinimumServletVersion('2.3')}">
!             <j:forEach var="class" items="${plugin.allWebClasses}">
!                 <j:forEach var="item" 
items="${class.getTagsByName('web.resource-env-ref')}">
!                     <resource-env-ref>
!                         <x:condelement tag="description" doclettag="${item}" 
property="description"/>
!                         
<resource-env-ref-name>${item.getNamedParameter('name')}</resource-env-ref-name>
!                         
<resource-env-ref-type>${item.getNamedParameter('type')}</resource-env-ref-type>
!                     </resource-env-ref>
                  </j:forEach>
!             </j:forEach>
!         </j:if>
  
          <!-- resource references -->
!         <j:forEach var="class" items="${plugin.allWebClasses}">
!             <j:forEach var="item" 
items="${class.getTagsByName('web.resource-ref')}">
!                 <resource-ref>
!                     <x:condelement tag="description" doclettag="${item}" 
property="description"/>
!                     
<res-ref-name>${item.getNamedParameter('name')}</res-ref-name>
!                     <res-type>${item.getNamedParameter('type')}</res-type>
!                     <res-auth>${item.getNamedParameter('auth')}</res-auth>
!                     <j:if 
test="${plugin.webUtils.isMinimumServletVersion('2.3')}">
!                         <x:condelement tag="res-sharing-scope" 
doclettag="${item}" property="scope"/>
!                     </j:if>
!                 </resource-ref>
              </j:forEach>
!         </j:forEach>
  
          <!-- security-roles -->
!         <j:forEach var="class" items="${plugin.allWebClasses}">
!             <j:forEach var="item" 
items="${class.getTagsByName('web.security-role')}">
!                 <security-role>
!                     <x:condelement tag="description" doclettag="${item}" 
property="description"/>
!                     
<role-name>${item.getNamedParameter('role-name')}</role-name>
!                 </security-role>
              </j:forEach>
!         </j:forEach>
!         <j:choose>
!             <j:when 
test="${plugin.getMergeFile('web-security.xml').exists()}">
!                 <j:import 
file="${plugin.getMergeFile('web-security.xml').path}" inherit="true"/>
!             </j:when>
!             <j:otherwise>
!                 <jxml:comment trim="false">To add filters that you have 
deployment descriptor info for, add a file to your XDoclet merge directory 
called web-security.xml that contains the <web-security></web-security> markup 
for those beans.</jxml:comment>
!             </j:otherwise>
!         </j:choose>
  
          <!-- env entries -->
!         <j:forEach var="class" items="${plugin.allWebClasses}">
!             <j:forEach var="item" 
items="${class.getTagsByName('web.env-entry')}">
!                 <env-entry>
!                     <x:condelement tag="description" doclettag="${item}" 
property="description"/>
!                     
<env-entry-name>${item.getNamedParameter('name')}</env-entry-name>
!                     <j:if 
test="${plugin.webUtils.isMaximumServletVersion('2.3')}">
!                     
<env-entry-value>${item.getNamedParameter('value')}</env-entry-value>
!                     </j:if>
!                     
<env-entry-type>${item.getNamedParameter('type')}</env-entry-type>
!                     <j:if 
test="${plugin.webUtils.isMinimumServletVersion('2.4')}">
!                     
<env-entry-value>${item.getNamedParameter('value')}</env-entry-value>
!                     </j:if>
!                 </env-entry>
              </j:forEach>
!         </j:forEach>
  
          <!-- ejb refs -->
-         <j:forEach var="class" items="${plugin.allWebClasses}">
-             <j:forEach var="item" 
items="${class.getTagsByName('web.ejb-ref')}">
-                 <ejb-ref>
-                     <x:condelement tag="description" doclettag="${item}" 
property="description"/>
-                     
<ejb-ref-name>${item.getNamedParameter('name')}</ejb-ref-name>
-                     
<ejb-ref-type>${item.getNamedParameter('type')}</ejb-ref-type>
-                     <home>${item.getNamedParameter('home')}</home>
-                     <remote>${item.getNamedParameter('remote')}</remote>
-                     <ejb-link>${item.getNamedParameter('link')}</ejb-link>
-                 </ejb-ref>
-             </j:forEach>
-         </j:forEach>
- 
-         <!-- ejb local refs -->
-         <j:if test="${plugin.webUtils.isMinimumServletVersion('2.3')}">
              <j:forEach var="class" items="${plugin.allWebClasses}">
!                 <j:forEach var="item" 
items="${class.getTagsByName('web.ejb-local-ref')}">
!                     <ejb-local-ref>
!                         <x:condelement tag="description" doclettag="${item}" 
property="description"/>
                          
<ejb-ref-name>${item.getNamedParameter('name')}</ejb-ref-name>
                          
<ejb-ref-type>${item.getNamedParameter('type')}</ejb-ref-type>
!                         
<local-home>${item.getNamedParameter('home')}</local-home>
!                         <local>${item.getNamedParameter('local')}</local>
!                         <x:condelement tag="ejb-link" doclettag="${item}" 
property="link"/>
!                     </ejb-local-ref>
                  </j:forEach>
              </j:forEach>
!         </j:if>
!         </jxml:replaceNamespace>
!     </jxml:element>
  </j:jelly>
--- 32,308 ----
      <!-- TODO : check exactly what parameters are mandatory or not, esp. with 
ejb-reb and such -->
  
!     <x:element URI="${plugin.schemaXmlNs}" name="web-app">
          <j:if test="${plugin.needsSchema()}">
!             <x:attribute URI="${plugin.schemaXmlNsXsi}" 
name="xsi:schemaLocation" 
trim="true">${plugin.schemaXsiSchemaLocation}</x:attribute>
!             <x:attribute name="version" 
trim="true">${plugin.servletversion}</x:attribute>
          </j:if>
  
!         <x:replaceNamespace toURI="${plugin.schemaXmlNs}">
  
          <!--TODO : distributable : add this tag conditionaly/-->
  
          <!-- filters -->
!             <j:forEach var="filter" items="${plugin.filters}">
!                 <filter>
!                     <j:set var="item" 
value="${filter.getTagByName('web.filter')}"/>
!                     <j:if 
test="${plugin.webUtils.isMinimumServletVersion('2.4')}">
!                         <g:condelement tag="description" doclettag="${item}" 
property="description"/>
!                         <g:condelement tag="display-name" doclettag="${item}" 
property="display-name"/>
!                     </j:if>
!                     <j:if test="${item.getNamedParameter('icon') != null}">
!                         <icon>
!                             
<small-icon>${item.getNamedParameter('icon')}</small-icon>
!                         </icon>
!                     </j:if>
!                     
<filter-name>${item.getNamedParameter('name')}</filter-name>
!                     <j:if 
test="${plugin.webUtils.isMaximumServletVersion('2.3')}">
!                         <g:condelement tag="display-name" doclettag="${item}" 
property="display-name"/>
!                         <g:condelement tag="description" doclettag="${item}" 
property="description"/>
!                     </j:if>
!                     <filter-class>${filter.fullyQualifiedName}</filter-class>
!                     <j:forEach var="param" 
items="${filter.getTagsByName('web.filter-init-param')}">
!                         <d:invoke script="${init_param}"/>
!                     </j:forEach>
!                 </filter>
!             </j:forEach>
!             <g:merge file="filters.xml">
!                 <x:comment>
!                     To add filters that you have deployment descriptor info 
for, 
!                     add a file to your XDoclet merge directory called 
filters.xml 
!                     that contains the <filter></filter> markup for those 
beans.
!                     Define root element as &lt;j:jelly 
xmlns:j=&quot;jelly:core&quot;/&gt;
!                 </x:comment>
!             </g:merge>
!  
          <!-- filter-mappings -->
!             <j:forEach var="filter" items="${plugin.filters}">
!                 <j:forEach var="mapping" 
items="${filter.getTagsByName('web.filter-mapping')}">
!                     <filter-mapping>
!                         
<filter-name>${filter.getNamedParameter("web.filter","name")}</filter-name>
!                         <g:condelement tag="url-pattern" 
doclettag="${mapping}" property="url-pattern"/>
!                         <g:condelement tag="servlet-name" 
doclettag="${mapping}" property="servlet-name"/>
!                     </filter-mapping>
!                 </j:forEach>
              </j:forEach>
!             <g:merge file="filter-mappings.xml">
!                 <x:comment>
!                     To add filter mappings that you have deployment 
descriptor info for, 
!                     add a file to your XDoclet merge directory called 
filter-mappings.xml 
!                     that contains the <filter-mapping></filter-mapping> 
markup for those beans.
!                     Define root element as &lt;j:jelly  
xmlns:j=&quot;jelly:core&quot;&gt;
!                 </x:comment>
!             </g:merge>
  
          <!-- listeners -->
!             <j:forEach var="listener" 
items="${plugin.webUtils.getListeners(metadata)}">
!                 <listener>
!                     
<listener-class>${listener.fullyQualifiedName}</listener-class>
!                 </listener>
!             </j:forEach>
!             <g:merge file="listeners.xml">
!                 <x:comment>
!                     To add listener definitions that you have deployment 
descriptor info for, 
!                     add a file to your XDoclet merge directory called 
listeners.xml 
!                     that contains the <listener></listener> markup for those 
beans.
!                     Define root element as &lt;j:jelly  
xmlns:j=&quot;jelly:core&quot;&gt;
!                 </x:comment>
!             </g:merge>
  
          <!-- servlets -->
!             <j:forEach var="servlet" items="${plugin.servlets}">
!                 <j:set var="item" 
value="${servlet.getTagByName('web.servlet')}"/>
!                 <servlet>
!                     <j:if 
test="${plugin.webUtils.isMinimumServletVersion('2.4')}">
!                         <g:condelement tag="description" doclettag="${item}" 
property="description"/>
!                         <g:condelement tag="display-name" doclettag="${item}" 
property="display-name"/>
!                     </j:if>
!                     
<servlet-name>${servlet.getNamedParameter("web.servlet","name")}</servlet-name>
!                     <j:if 
test="${plugin.webUtils.isMaximumServletVersion('2.3')}">
!                         <g:condelement tag="display-name" doclettag="${item}" 
property="display-name"/>
!                         <g:condelement tag="description" doclettag="${item}" 
property="description"/>
!                     </j:if>
!                     
<servlet-class>${servlet.fullyQualifiedName}</servlet-class>
!                     <j:forEach var="param" 
items="${servlet.getTagsByName('web.servlet-init-param')}">
!                         <d:invoke script="${init_param}"/>
!                     </j:forEach>
!                     <g:condelement tag="load-on-startup" doclettag="${item}" 
property="load-on-startup"/>
!                     <j:if test="${plugin.needsServletRunAs(item)}">
!                         <run-as>
!                             
<role-name>${item.getNamedParameter('run-as')}</role-name>
!                         </run-as>
!                     </j:if>
                  <!-- security-roles references -->
!                     <j:forEach var="class" items="${plugin.allWebClasses}">
!                         <j:forEach var="item" 
items="${class.getTagsByName('web.security-role-ref')}">
!                             <security-role-ref>
!                                 <g:condelement tag="description" 
doclettag="${item}" property="description"/>
!                                 
<role-name>${item.getNamedParameter('role-name')}</role-name>
!                                 
<role-link>${item.getNamedParameter('role-link')}</role-link>
!                             </security-role-ref>
!                         </j:forEach>
                      </j:forEach>
!                 </servlet>
!             </j:forEach>
!             <g:merge file="servlets.xml">
!                 <x:comment>        
!                     To add servlets that you have deployment descriptor info 
for, 
!                     add a file to your XDoclet merge directory called 
servlets.xml 
!                     that contains the <servlet></servlet> markup for those 
beans.
!                     Define root element as &lt;j:jelly  
xmlns:j=&quot;jelly:core&quot;&gt;
!                 </x:comment>
!             </g:merge>
  
          <!-- servlet-mappings -->
!             <j:forEach var="servlet" items="${plugin.servlets}">
!                 <j:forEach var="mapping" 
items="${servlet.getTagsByName('web.servlet-mapping')}">
!                     <servlet-mapping>
!                         
<servlet-name>${servlet.getNamedParameter("web.servlet","name")}</servlet-name>
!                         <g:condelement tag="url-pattern" 
doclettag="${mapping}" property="url-pattern"/>
!                     </servlet-mapping>
!                 </j:forEach>
              </j:forEach>
!             <g:merge file="servlet-mapings.xml">
!                 <x:comment>
!                     To add filters that you have deployment descriptor info 
for, 
!                     add a file to your XDoclet merge directory called 
filters.xml 
!                     that contains the <servlet-mapping></servlet-mapping> 
markup for 
!                     those beans. Define root element as &lt;j:jelly  
xmlns:j=&quot;jelly:core&quot;&gt;
!                 </x:comment>
!             </g:merge>
  
          <!-- resource env references -->
!             <j:if test="${plugin.webUtils.isMinimumServletVersion('2.3')}">
!                 <j:forEach var="class" items="${plugin.allWebClasses}">
!                     <j:forEach var="item" 
items="${class.getTagsByName('web.resource-env-ref')}">
!                         <resource-env-ref>
!                             <g:condelement tag="description" 
doclettag="${item}" property="description"/>
!                             
<resource-env-ref-name>${item.getNamedParameter('name')}</resource-env-ref-name>
!                             
<resource-env-ref-type>${item.getNamedParameter('type')}</resource-env-ref-type>
!                         </resource-env-ref>
!                     </j:forEach>
                  </j:forEach>
!             </j:if>
!             <g:merge file="resource-env-ref.xml">
!                 <x:comment>
!                     To add resource env refenrences that you have deployment 
descriptor info for, 
!                     add a file to your XDoclet merge directory called 
resource-env-ref.xml 
!                     that contains the <resource-env-ref></resource-env-ref> 
markup.
!                     Define root element as &lt;j:jelly  
xmlns:j=&quot;jelly:core&quot;&gt;
!                 </x:comment>
!             </g:merge>
  
          <!-- resource references -->
!             <j:forEach var="class" items="${plugin.allWebClasses}">
!                 <j:forEach var="item" 
items="${class.getTagsByName('web.resource-ref')}">
!                     <resource-ref>
!                         <g:condelement tag="description" doclettag="${item}" 
property="description"/>
!                         
<res-ref-name>${item.getNamedParameter('name')}</res-ref-name>
!                         <res-type>${item.getNamedParameter('type')}</res-type>
!                         <res-auth>${item.getNamedParameter('auth')}</res-auth>
!                         <j:if 
test="${plugin.webUtils.isMinimumServletVersion('2.3')}">
!                             <g:condelement tag="res-sharing-scope" 
doclettag="${item}" property="scope"/>
!                         </j:if>
!                     </resource-ref>
!                 </j:forEach>
              </j:forEach>
!             <g:merge file="resource-ref.xml">
!                 <x:comment>
!                     To add filter mappings that you have deployment 
descriptor info for, 
!                     add a file to your XDoclet merge directory called 
filter-mappings.xml 
!                     that contains the <resource-ref></resource-ref> markup 
for those beans.
!                     Define root element as &lt;j:jelly  
xmlns:j=&quot;jelly:core&quot;&gt;
!                 </x:comment>
!             </g:merge>
  
          <!-- security-roles -->
!             <j:forEach var="class" items="${plugin.allWebClasses}">
!                 <j:forEach var="item" 
items="${class.getTagsByName('web.security-role')}">
!                     <security-role>
!                         <g:condelement tag="description" doclettag="${item}" 
property="description"/>
!                         
<role-name>${item.getNamedParameter('role-name')}</role-name>
!                     </security-role>
!                 </j:forEach>
              </j:forEach>
!             <g:merge file="web-security.xml">
!                 <x:comment>
!                     To add information about security roles that you have 
deployment descriptor info for, 
!                     add a file to your XDoclet merge directory called 
web-security.xml 
!                     that contains the <security-role></security-role> markup.
!                     Define root element as &lt;j:jelly  
xmlns:j=&quot;jelly:core&quot;&gt;
!                 </x:comment>
!             </g:merge>
  
          <!-- env entries -->
!             <j:forEach var="class" items="${plugin.allWebClasses}">
!                 <j:forEach var="item" 
items="${class.getTagsByName('web.env-entry')}">
!                     <env-entry>
!                         <g:condelement tag="description" doclettag="${item}" 
property="description"/>
!                         
<env-entry-name>${item.getNamedParameter('name')}</env-entry-name>
!                         <j:if 
test="${plugin.webUtils.isMaximumServletVersion('2.3')}">
!                             
<env-entry-value>${item.getNamedParameter('value')}</env-entry-value>
!                         </j:if>
!                         
<env-entry-type>${item.getNamedParameter('type')}</env-entry-type>
!                         <j:if 
test="${plugin.webUtils.isMinimumServletVersion('2.4')}">
!                             
<env-entry-value>${item.getNamedParameter('value')}</env-entry-value>
!                         </j:if>
!                     </env-entry>
!                 </j:forEach>
              </j:forEach>
!             <g:merge file="env-entries.xml">
!                 <x:comment>
!                     To add environment entries that you have deployment 
descriptor info for, 
!                     add a file to your XDoclet merge directory called 
env-entries.xml 
!                     that contains the <env-entry></env-entry> markup for 
those beans.
!                     Define root element as &lt;j:jelly  
xmlns:j=&quot;jelly:core&quot;&gt;
!                 </x:comment>
!             </g:merge>
  
          <!-- ejb refs -->
              <j:forEach var="class" items="${plugin.allWebClasses}">
!                 <j:forEach var="item" 
items="${class.getTagsByName('web.ejb-ref')}">
!                     <ejb-ref>
!                         <g:condelement tag="description" doclettag="${item}" 
property="description"/>
                          
<ejb-ref-name>${item.getNamedParameter('name')}</ejb-ref-name>
                          
<ejb-ref-type>${item.getNamedParameter('type')}</ejb-ref-type>
!                         <home>${item.getNamedParameter('home')}</home>
!                         <remote>${item.getNamedParameter('remote')}</remote>
!                         <ejb-link>${item.getNamedParameter('link')}</ejb-link>
!                     </ejb-ref>
                  </j:forEach>
              </j:forEach>
!             <g:merge file="ejb-refs.xml">
!                 <x:comment>
!                     To add EJB references that you have deployment descriptor 
info for, 
!                     add a file to your XDoclet merge directory called 
fejb-refs.xml 
!                     that contains the <ejb-ref></ejb-ref> markup for those 
beans.
!                     Define root element as &lt;j:jelly  
xmlns:j=&quot;jelly:core&quot;&gt;
!                 </x:comment>
!             </g:merge>
! 
!         <!-- ejb local refs -->
!             <j:if test="${plugin.webUtils.isMinimumServletVersion('2.3')}">
!                 <j:forEach var="class" items="${plugin.allWebClasses}">
!                     <j:forEach var="item" 
items="${class.getTagsByName('web.ejb-local-ref')}">
!                         <ejb-local-ref>
!                             <g:condelement tag="description" 
doclettag="${item}" property="description"/>
!                             
<ejb-ref-name>${item.getNamedParameter('name')}</ejb-ref-name>
!                             
<ejb-ref-type>${item.getNamedParameter('type')}</ejb-ref-type>
!                             
<local-home>${item.getNamedParameter('home')}</local-home>
!                             <local>${item.getNamedParameter('local')}</local>
!                             <g:condelement tag="ejb-link" doclettag="${item}" 
property="link"/>
!                         </ejb-local-ref>
!                     </j:forEach>
!                 </j:forEach>
!             </j:if>
!             <g:merge file="ejb-local-refs.xml">
!                 <x:comment>
!                     To add local EJB references that you have deployment 
descriptor info for, 
!                     add a file to your XDoclet merge directory called 
filter-mappings.xml 
!                     that contains the <ejb-local-ref></ejb-local-ref> markup 
for those beans.
!                     Define root element as &lt;j:jelly  
xmlns:j=&quot;jelly:core&quot;&gt;
!                 </x:comment>
!             </g:merge>
! 
!         </x:replaceNamespace>
!     </x:element>
  </j:jelly>


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
xdoclet-plugins-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/xdoclet-plugins-commits

Reply via email to