PR: MPEAR-44

Move resolver tag from j2ee to ear.


git-svn-id: https://svn.apache.org/repos/asf/maven/maven-1/plugins/trunk@375525 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
ltheussl
2006-02-07 07:16:31 +00:00
parent f9c9040c83
commit 3907493bc8
16 changed files with 4907 additions and 11 deletions

View File

@@ -338,6 +338,11 @@
${context.setVariable(var,'parent',thePath)}
</define:tag>
<define:tag name="resolver">
<j:new var="resolver" className="org.apache.maven.ear.j2ee.J2EEEntityResolver" />
<j:set var="${var}" value="${resolver}" scope="parent" />
</define:tag>
</define:taglib>

View File

@@ -128,5 +128,13 @@
<comment>This library is already loaded by maven's core. Be careful to use the same version number as in the core.</comment>
</properties>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.0.4</version>
<properties>
<comment>This library is already loaded by maven's core. Be careful to use the same version number as in the core.</comment>
</properties>
</dependency>
</dependencies>
</project>

View File

@@ -0,0 +1,129 @@
package org.apache.maven.ear.j2ee;
/* ====================================================================
* Copyright 2001-2006 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ====================================================================
*/
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.xml.sax.EntityResolver;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
/**
* A class to resolve external entity definitions for j2ee artifacts.
*
* @author dion
*/
public class J2EEEntityResolver implements EntityResolver
{
/** log for debug output */
private static final Log LOG =
LogFactory.getLog( J2EEEntityResolver.class );
/** list of j2ee dtds that are being made available */
public static final String[] J2EE_DTDS =
new String[]
{
"-//Sun Microsystems, Inc.//DTD J2EE Application Client 1.3//EN",
"-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN",
"-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN",
"-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN",
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN",
"-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
};
/** list of j2ee resources that are being made available */
public static final String[] J2EE_RESOURCES =
new String[]
{
"/plugin-resources/application-client_1_3.dtd",
"/plugin-resources/application_1_3.dtd",
"/plugin-resources/ejb-jar_2_0.dtd",
"/plugin-resources/web-app_2.2.dtd",
"/plugin-resources/web-app_2_3.dtd",
"/plugin-resources/web-jsptaglibrary_1_2.dtd"
};
/** map of ids to resource names */
private Map idToResource = new HashMap();
/** Creates a new instance of EntityResolver */
public J2EEEntityResolver()
{
for ( int i = 0; i < J2EE_DTDS.length; i++ )
{
idToResource.put( J2EE_DTDS[i], J2EE_RESOURCES[i] );
}
}
/** resolve the entity given by the provided Ids
* @param publicId the public id of the entity
* @param systemId the 'system location' (typically a URL) of the entity
* @return an {@link InputSource input source} for retrieval of the entity
* @throws IOException when an I/O error occurs retrieving the entity
* @throws SAXException if there are any problems
*/
public InputSource resolveEntity( String publicId, String systemId )
throws SAXException, IOException
{
LOG.debug( "resolving entity with publicId='" + publicId
+ ", systemId='" + systemId + "'" );
if ( publicId != null )
{
String resource = (String) idToResource.get( publicId );
LOG.debug( "resource found in map ='" + resource + "'" );
if ( resource != null )
{
InputStream in = getClass().getResourceAsStream( resource );
LOG.debug( "input stream ='" + in + "'" );
if ( in != null )
{
return new InputSource( in );
}
}
}
return null;
}
/** Getter for publicId to resource name map.
* @return Value of property idToResource.
*/
protected Map getIdToResource()
{
return idToResource;
}
/** Setter for publicId to resource name map.
* @param newIdToResource New value of property idToResource.
*/
protected void setIdToResource( Map newIdToResource )
{
this.idToResource = newIdToResource;
}
}

View File

@@ -0,0 +1,11 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>org.apache.maven.ear.j2ee</title>
</head>
<body>
<p>
Utility classes for working with j2ee artifacts.
</p>
</body>
</html>

View File

@@ -0,0 +1,506 @@
<!--
Copyright (c) 2000 Sun Microsystems, Inc.,
901 San Antonio Road,
Palo Alto, California 94303, U.S.A.
All rights reserved.
Sun Microsystems, Inc. has intellectual property rights relating to
technology embodied in the product that is described in this document.
In particular, and without limitation, these intellectual property
rights may include one or more of the U.S. patents listed at
http://www.sun.com/patents and one or more additional patents or
pending patent applications in the U.S. and in other countries.
This document and the product to which it pertains are distributed
under licenses restricting their use, copying, distribution, and
decompilation. This document may be reproduced and distributed but may
not be changed 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, Java, JavaServer Pages, Java
Naming and Directory Interface, JDBC, JDK, JavaMail and and
Enterprise JavaBeans are trademarks or registered trademarks of Sun
Microsystems, Inc. in the U.S. and other countries.
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 FOR A PARTICULAR PURPOSE OR
NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH
DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.
_________________________________________________________________________
Copyright (c) 2000 Sun Microsystems, Inc.,
901 San Antonio Road,
Palo Alto, California 94303, E'tats-Unis.
Tous droits re'serve's.
Sun Microsystems, Inc. a les droits de proprie'te' intellectuels
relatants a` la technologie incorpore'e dans le produit qui est de'crit
dans ce document. En particulier, et sans la limitation, ces droits de
proprie'te' intellectuels peuvent inclure un ou plus des brevets
ame'ricains e'nume're's a` http://www.sun.com/patents et un ou les
brevets plus supple'mentaires ou les applications de brevet en attente
dans les E'tats-Unis et dans les autres pays.
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. Ce documention associe n peut
e^tre reproduite et distribuer, par quelque moyen que ce soit, sans
l'autorisation pre'alable et e'crite de Sun et de ses bailleurs de
licence, le cas e'che'ant.
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, Java, JavaServer Pages, Java
Naming and Directory Interface, JDBC, JDK, JavaMail et and
Enterprise JavaBeans sont des marques de fabrique ou des marques
de'pose'es de Sun Microsystems, Inc. aux E'tats-Unis et dans d'autres
pays.
LA DOCUMENTATION EST FOURNIE "EN L'E'TAT" 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
CONTREFAC,ON.
-->
<!--
This is the XML DTD for the J2EE 1.3 application client deployment
descriptor. All J2EE 1.3 application client deployment descriptors
must include a DOCTYPE of the following form:
<!DOCTYPE application-client PUBLIC
"-//Sun Microsystems, Inc.//DTD J2EE Application Client 1.3//EN"
"http://java.sun.com/dtd/application-client_1_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 application-client element is the root element of an application
client deployment descriptor. The application client deployment
descriptor describes the EJB components and external resources
referenced by the application client.
-->
<!ELEMENT application-client (icon?, display-name, description?,
env-entry*, ejb-ref*, resource-ref*, resource-env-ref*,
callback-handler?)>
<!--
The callback-handler element names a class provided by the
application. The class must have a no args constructor and must
implement the javax.security.auth.callback.CallbackHandler interface.
The class will be instantiated by the application client container and
used by the container to collect authentication information from the
user.
Used in: application-client
-->
<!ELEMENT callback-handler (#PCDATA)>
<!--
The description element is used to provide text describing the parent
element. The description element should include any information that
the application client jar file producer wants to provide to the consumer of
the application client jar file (i.e., to the Deployer). Typically, the tools
used by the application client jar file consumer will display the description
when processing the parent element that contains the description.
Used in: application-client, ejb-ref, env-entry, resource-env-ref,
resource-ref
-->
<!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: application-client
Example:
<display-name>Employee Self Service</display-name>
-->
<!ELEMENT display-name (#PCDATA)>
<!--
The ejb-link element is used in the ejb-ref element
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 jar file
containing the application client that is referencing the enterprise bean.
This allows multiple enterprise beans with the same ejb-name to be
uniquely identified.
Used in: ejb-ref
Examples:
<ejb-link>EmployeeRecord</ejb-link>
<ejb-link>../products/product.jar#ProductEJB</ejb-link>
-->
<!ELEMENT ejb-link (#PCDATA)>
<!--
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 application client 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: application-client
-->
<!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 application client's environment and is
relative to the java:comp/env context. The name must be unique
within the application client.
It is recommended that name is prefixed with "ejb/".
Used in: 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-ref
-->
<!ELEMENT ejb-ref-type (#PCDATA)>
<!--
The env-entry element contains the declaration of an application client'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.
Used in: application-client
-->
<!ELEMENT env-entry (description?, env-entry-name, env-entry-type,
env-entry-value?)>
<!--
The env-entry-name element contains the name of an application client's
environment entry. The name is a JNDI name relative to the
java:comp/env context. The name must be unique within an application client.
Used in: env-entry
Example:
<env-entry-name>minAmount</env-entry-name>
-->
<!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 application client'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
Example:
<env-entry-type>java.lang.Boolean</env-entry-type>
-->
<!ELEMENT env-entry-type (#PCDATA)>
<!--
The env-entry-value element contains the value of an application client'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.
Used in: env-entry
Example:
<env-entry-value>100.00</env-entry-value>
-->
<!ELEMENT env-entry-value (#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 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: application-client
-->
<!ELEMENT icon (small-icon?, large-icon?)>
<!--
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 application client's
jar 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 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 application client code signs
on programmatically to the resource manager, or whether the Container
will sign on to the resource manager on behalf of the application client. 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 an application client.
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 an application client's
reference to an administered object associated with a resource
in the application client'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 application client code.
Used in: application-client
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 application client code. The name is a JNDI name relative to the
java:comp/env context and must be unique within an application client.
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 an application client'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 application client 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: application-client
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 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 application client's
jar 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 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 application-client id ID #IMPLIED>
<!ATTLIST callback-handler id ID #IMPLIED>
<!ATTLIST description id ID #IMPLIED>
<!ATTLIST display-name id ID #IMPLIED>
<!ATTLIST ejb-link 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 home id ID #IMPLIED>
<!ATTLIST icon id ID #IMPLIED>
<!ATTLIST large-icon 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 small-icon id ID #IMPLIED>

View File

@@ -0,0 +1,312 @@
<!--
Copyright (c) 2000 Sun Microsystems, Inc.,
901 San Antonio Road,
Palo Alto, California 94303, U.S.A.
All rights reserved.
Sun Microsystems, Inc. has intellectual property rights relating to
technology embodied in the product that is described in this document.
In particular, and without limitation, these intellectual property
rights may include one or more of the U.S. patents listed at
http://www.sun.com/patents and one or more additional patents or
pending patent applications in the U.S. and in other countries.
This document and the product to which it pertains are distributed
under licenses restricting their use, copying, distribution, and
decompilation. This document may be reproduced and distributed but may
not be changed 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, Java, JavaServer Pages, Java
Naming and Directory Interface, JDBC, JDK, JavaMail and and
Enterprise JavaBeans are trademarks or registered trademarks of Sun
Microsystems, Inc. in the U.S. and other countries.
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 FOR A PARTICULAR PURPOSE OR
NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH
DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.
_________________________________________________________________________
Copyright (c) 2000 Sun Microsystems, Inc.,
901 San Antonio Road,
Palo Alto, California 94303, E'tats-Unis.
Tous droits re'serve's.
Sun Microsystems, Inc. a les droits de proprie'te' intellectuels
relatants a` la technologie incorpore'e dans le produit qui est de'crit
dans ce document. En particulier, et sans la limitation, ces droits de
proprie'te' intellectuels peuvent inclure un ou plus des brevets
ame'ricains e'nume're's a` http://www.sun.com/patents et un ou les
brevets plus supple'mentaires ou les applications de brevet en attente
dans les E'tats-Unis et dans les autres pays.
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. Ce documention associe n peut
e^tre reproduite et distribuer, par quelque moyen que ce soit, sans
l'autorisation pre'alable et e'crite de Sun et de ses bailleurs de
licence, le cas e'che'ant.
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, Java, JavaServer Pages, Java
Naming and Directory Interface, JDBC, JDK, JavaMail et and
Enterprise JavaBeans sont des marques de fabrique ou des marques
de'pose'es de Sun Microsystems, Inc. aux E'tats-Unis et dans d'autres
pays.
LA DOCUMENTATION EST FOURNIE "EN L'E'TAT" 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
CONTREFAC,ON.
-->
<!--
This is the XML DTD for the J2EE 1.3 application deployment
descriptor. All J2EE 1.3 application deployment descriptors
must include a DOCTYPE of the following form:
<!DOCTYPE application PUBLIC
"-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
"http://java.sun.com/dtd/application_1_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 application element is the root element of a J2EE application
deployment descriptor.
-->
<!ELEMENT application (icon?, display-name, description?, module+,
security-role*)>
<!--
The alt-dd element specifies an optional URI to the post-assembly
version of the deployment descriptor file for a particular J2EE module.
The URI must specify the full pathname of the deployment descriptor
file relative to the application's root directory. If alt-dd is not
specified, the deployer must read the deployment descriptor from the
default location and file name required by the respective component
specification.
Used in: module
-->
<!ELEMENT alt-dd (#PCDATA)>
<!--
The connector element specifies the URI of a resource adapter archive
file, relative to the top level of the application package.
Used in: module
-->
<!ELEMENT connector (#PCDATA)>
<!--
The context-root element specifies the context root of a web
application.
Used in: web
-->
<!ELEMENT context-root (#PCDATA)>
<!--
The description element is used to provide text describing the parent
element. The description element should include any information that
the application ear file producer wants to provide to the consumer of
the application ear file (i.e., to the Deployer). Typically, the tools
used by the application ear file consumer will display the description
when processing the parent element that contains the description.
Used in: application, security-role
-->
<!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: application
Example:
<display-name>Employee Self Service</display-name>
-->
<!ELEMENT display-name (#PCDATA)>
<!--
The ejb element specifies the URI of an ejb-jar, relative to the top
level of the application package.
Used in: module
-->
<!ELEMENT ejb (#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: application
-->
<!ELEMENT icon (small-icon?, large-icon?)>
<!--
The java element specifies the URI of a java application client module,
relative to the top level of the application package.
Used in: module
-->
<!ELEMENT java (#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 application's
ear 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 module element represents a single J2EE module and contains a
connector, ejb, java, or web element, which indicates the module type
and contains a path to the module file, and an optional alt-dd element,
which specifies an optional URI to the post-assembly version of the
deployment descriptor.
The application deployment descriptor must have one module element for
each J2EE module in the application package.
Used in: application
-->
<!ELEMENT module ((connector | ejb | java | web), alt-dd?)>
<!--
The role-name element contains the name of a security role.
The name must conform to the lexical rules for an NMTOKEN.
Used in: security-role
-->
<!ELEMENT role-name (#PCDATA)>
<!--
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: application
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 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 application's
ear 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 web element contains the web-uri and context-root of a web
application module.
Used in: module
-->
<!ELEMENT web (web-uri, context-root)>
<!--
The web-uri element specifies the URI of a web application file,
relative to the top level of the application package.
Used in: web
-->
<!ELEMENT web-uri (#PCDATA)>
<!--
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 alt-dd id ID #IMPLIED>
<!ATTLIST application id ID #IMPLIED>
<!ATTLIST connector id ID #IMPLIED>
<!ATTLIST context-root id ID #IMPLIED>
<!ATTLIST description id ID #IMPLIED>
<!ATTLIST display-name id ID #IMPLIED>
<!ATTLIST ejb id ID #IMPLIED>
<!ATTLIST icon id ID #IMPLIED>
<!ATTLIST java id ID #IMPLIED>
<!ATTLIST large-icon id ID #IMPLIED>
<!ATTLIST module id ID #IMPLIED>
<!ATTLIST role-name id ID #IMPLIED>
<!ATTLIST security-role id ID #IMPLIED>
<!ATTLIST small-icon id ID #IMPLIED>
<!ATTLIST web id ID #IMPLIED>
<!ATTLIST web-uri id ID #IMPLIED>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,639 @@
<!--
Copyright 1999 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 1999 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.
-->
<!--
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>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,462 @@
<!--
This is the DTD defining the JavaServer Pages 1.2 Tag Library
descriptor (.tld) (XML) file format/syntax.
A Tag Library is a JAR file containing a valid instance of a Tag Library
Descriptor (taglib.tld) file in the META-INF subdirectory, along with the
appropriate implementing classes, and other resources required to
implement the tags defined therein.
Use is subject to license terms.
-->
<!NOTATION WEB-JSPTAGLIB.1_2 PUBLIC
"-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN">
<!--
This is the XML DTD for the JSP 1.2 Tag Library Descriptor.
All JSP 1.2 tag library descriptors must include a DOCTYPE
of the following form:
<!DOCTYPE taglib
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
-->
<!--
The taglib tag is the document root, it defines:
tlib-version the version of the tag library implementation
jsp-version the version of JSP the tag library depends upon
short-name a simple default short name that could be used by
a JSP authoring tool to create names with a mnemonic
value; for example, the it may be used as the prefered
prefix value in taglib directives
uri a uri uniquely identifying this taglib
display-name the display-name element contains a short name that
is intended to be displayed by tools
small-icon optional small-icon that can be used by tools
large-icon optional large-icon that can be used by tools
description a simple string describing the "use" of this taglib,
should be user discernable
validator optional TagLibraryValidator information
listener optional event listener specification
-->
<!ELEMENT taglib (tlib-version, jsp-version, short-name, uri?,
display-name?, small-icon?, large-icon?, description?,
validator?, listener*, tag+) >
<!ATTLIST taglib id ID #IMPLIED
xmlns CDATA #FIXED
"http://java.sun.com/JSP/TagLibraryDescriptor"
>
<!--
Describes this version (number) of the taglibrary (dewey decimal)
#PCDATA ::= [0-9]*{ "."[0-9] }0..3
-->
<!ELEMENT tlib-version (#PCDATA) >
<!--
Describes the JSP version (number) this taglibrary requires in
order to function (dewey decimal)
The default is 1.2
#PCDATA ::= [0-9]*{ "."[0-9] }0..3
-->
<!ELEMENT jsp-version (#PCDATA) >
<!--
Defines a short (default) short-name to be used for tags and
variable names used/created by this tag library. Do not use
white space, and do not start with digits or underscore.
#PCDATA ::= NMTOKEN
-->
<!ELEMENT short-name (#PCDATA) >
<!--
Defines a public URI that uniquely identifies this version of
the taglibrary. Leave it empty if it does not apply.
-->
<!ELEMENT uri (#PCDATA) >
<!--
Defines an arbitrary text string descirbing the tag library
-->
<!ELEMENT description (#PCDATA) >
<!--
Defines an optional validator that can be used to
validate the conformance of a JSP page to using this tag library.
-->
<!ELEMENT validator (validator-class, init-param*, description?) >
<!--
Defines the TagLibraryValidator class that can be used to
validate the conformance of a JSP page to using this tag library.
-->
<!ELEMENT validator-class (#PCDATA) >
<!--
The init-param element contains a name/value pair as an
initialization param
-->
<!ELEMENT init-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)>
<!--
Defines an optional event listener object to be instantiated and
registered automatically.
-->
<!ELEMENT listener (listener-class) >
<!--
The listener-class element declares a class in the application that
must be registered as a web application listener bean. See the
Servlet 2.3 specification for details.
-->
<!ELEMENT listener-class (#PCDATA) >
<!--
The tag defines a unique tag in this tag library. It has one
attribute, id.
The tag element may have several subelements defining:
name The unique action name
tag-class The tag handler class implementing
javax.servlet.jsp.tagext.Tag
tei-class An optional subclass of
javax.servlet.jsp.tagext.TagExtraInfo
body-content The body content type
display-name A short name that is intended to be displayed
by tools
small-icon Optional small-icon that can be used by tools
large-icon Optional large-icon that can be used by tools
description Optional tag-specific information
variable Optional scripting variable information
attribute All attributes of this action
example Optional informal description of an example of a
use of this tag
-->
<!ELEMENT tag (name, tag-class, tei-class?, body-content?, display-name?,
small-icon?, large-icon?, description?, variable*, attribute*,
example?) >
<!--
Defines the subclass of javax.serlvet.jsp.tagext.Tag that implements
the request time semantics for this tag. (required)
#PCDATA ::= fully qualified Java class name
-->
<!ELEMENT tag-class (#PCDATA) >
<!--
Defines the subclass of javax.servlet.jsp.tagext.TagExtraInfo for
this tag. (optional)
If this is not given, the class is not consulted at translation time.
#PCDATA ::= fully qualified Java class name
-->
<!ELEMENT tei-class (#PCDATA) >
<!--
Provides a hint as to the content of the body of this tag. Primarily
intended for use by page composition tools.
There are currently three values specified:
tagdependent The body of the tag is interpreted by the tag
implementation itself, and is most likely in a
different "langage", e.g embedded SQL statements.
JSP The body of the tag contains nested JSP syntax
empty The body must be empty
The default (if not defined) is JSP
#PCDATA ::= tagdependent | JSP | empty
-->
<!ELEMENT body-content (#PCDATA) >
<!--
The display-name element contains a short name that is intended
to be displayed by tools.
-->
<!ELEMENT display-name (#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
tag library. The image must be either in the JPEG or GIF format, and
the file name must end with the suffix ".jpg" or ".gif" respectively.
The icon can be used by tools.
-->
<!ELEMENT large-icon (#PCDATA) >
<!--
The small-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
tag library. The image must be either in the JPEG or GIF format, and
the file name must end with the suffix ".jpg" or ".gif" respectively.
The icon can be used by tools.
-->
<!ELEMENT small-icon (#PCDATA) >
<!--
The example element contains an informal description of an example
of the use of a tag.
-->
<!ELEMENT example (#PCDATA) >
<!--
The variable tag provides information on the scripting variables
defined by this tag. It is a (translation time) error for a tag
that has one or more variable subelements to have a TagExtraInfo
class that returns a non-null object.
The subelements of variable are of the form:
name-given The variable name as a constant
name-from-attribute The name of an attribute whose (translation
time) value will give the name of the
variable. One of name-given or
name-from-attribute is required.
variable-class Name of the class of the variable.
java.lang.String is default.
declare Whether the variable is declared or not.
True is the default.
scope The scope of the scripting varaible
defined. NESTED is default.
description Optional description of this variable
-->
<!ELEMENT variable ( (name-given | name-from-attribute), variable-class?,
declare?, scope?, description?) >
<!--
The name for the scripting variable. One of name-given or
name-from-attribute is required.
-->
<!ELEMENT name-given (#PCDATA) >
<!--
The name of an attribute whose (translation-time) value will give
the name of the variable. One of name-given or name-from-attribute
is required.
-->
<!ELEMENT name-from-attribute (#PCDATA) >
<!--
The optional name of the class for the scripting variable. The
default is java.lang.String.
-->
<!ELEMENT variable-class (#PCDATA) >
<!--
Whether the scripting variable is to be defined or not. See
TagExtraInfo for details. This element is optional and "true"
is the default.
-->
<!ELEMENT declare (#PCDATA) >
<!--
The scope of the scripting variable. See TagExtraInfo for details.
The element is optional and "NESTED" is the default. Other legal
values are "AT_BEGIN" and "AT_END".
-->
<!ELEMENT scope (#PCDATA) >
<!--
The attribute tag defines an attribute for the nesting tag
An attribute definition is composed of:
- the attributes name (required)
- if the attribute is required or optional (optional)
- if the attributes value may be dynamically calculated at runtime
by a scriptlet expression (optional)
- the type of the attributes value (optional)
- an informal description of the meaning of the attribute (optional)
-->
<!--
The attribute tag defines an attribute for the nesting tag
An attribute definition is composed of:
- the attributes name (required)
- if the attribute is required or optional (optional)
- if the attributes value may be dynamically calculated at runtime
by a scriptlet expression (optional)
- the type of the attributes value (optional)
- an informal description of the meaning of the attribute (optional)
-->
<!ELEMENT attribute (name, required? , rtexprvalue?, type?, description?) >
<!--
Defines the canonical name of a tag or attribute being defined
#PCDATA ::= NMTOKEN
-->
<!ELEMENT name (#PCDATA) >
<!--
Defines if the nesting attribute is required or optional.
#PCDATA ::= true | false | yes | no
If not present then the default is "false", i.e the attribute
is optional.
-->
<!ELEMENT required (#PCDATA) >
<!--
Defines if the nesting attribute can have scriptlet expressions as
a value, i.e the value of the attribute may be dynamically calculated
at request time, as opposed to a static value determined at translation
time.
#PCDATA ::= true | false | yes | no
If not present then the default is "false", i.e the attribute
has a static value
-->
<!ELEMENT rtexprvalue (#PCDATA) >
<!--
Defines the Java type of the attributes value. For static values
(those determined at translation time) the type is always
java.lang.String.
-->
<!ELEMENT type (#PCDATA) >
<!-- ID attributes -->
<!ATTLIST tlib-version id ID #IMPLIED>
<!ATTLIST jsp-version id ID #IMPLIED>
<!ATTLIST short-name id ID #IMPLIED>
<!ATTLIST uri id ID #IMPLIED>
<!ATTLIST description id ID #IMPLIED>
<!ATTLIST example id ID #IMPLIED>
<!ATTLIST tag id ID #IMPLIED>
<!ATTLIST tag-class id ID #IMPLIED>
<!ATTLIST tei-class id ID #IMPLIED>
<!ATTLIST body-content id ID #IMPLIED>
<!ATTLIST attribute id ID #IMPLIED>
<!ATTLIST name id ID #IMPLIED>
<!ATTLIST required id ID #IMPLIED>
<!ATTLIST rtexprvalue id ID #IMPLIED>
<!ATTLIST param-name id ID #IMPLIED>
<!ATTLIST param-value id ID #IMPLIED>
<!ATTLIST listener id ID #IMPLIED>
<!ATTLIST listener-class id ID #IMPLIED>

View File

@@ -15,7 +15,6 @@
# -------------------------------------------------------------------
maven.deployable.component=${maven.final.name}.ear
maven.j2ee.ear.appxml=${maven.conf.dir}/application.xml
maven.ear.appxml.generate=true
# note the override below is needed, as the ear plugin redefines the licenseFile in
# it's own project.properties, and running plugin:test would otherwise fail

View File

@@ -19,7 +19,7 @@
xmlns:u="jelly:util"
xmlns:x="jelly:xml"
xmlns:assert="assert"
xmlns:j2ee="j2ee"
xmlns:ear="ear"
default="testPlugin">
<goal name="testPlugin" prereqs="ear,test-ear">
@@ -47,7 +47,7 @@
<!-- check application.xml got a java module in it -->
<u:file var="appXml" name="${unzipDir}/META-INF/application.xml"/>
<j:new var="saxReader" className="org.dom4j.io.SAXReader" />
<j2ee:resolver var="resolver" />
<ear:resolver var="resolver" />
${saxReader.setEntityResolver(resolver)}
<x:parse var="applicationDoc" xml="${appXml.toURL()}" SAXReader="${saxReader}" />
<x:set var="firstJavaModule" select="string($applicationDoc/application/module/java)"/>

View File

@@ -15,7 +15,6 @@
# -------------------------------------------------------------------
maven.deployable.component=${maven.final.name}.ear
maven.j2ee.ear.appxml=${maven.conf.dir}/application.xml
maven.ear.appxml.generate=true
# note the override below is needed, as the ear plugin redefines the licenseFile in
# it's own project.properties, and running plugin:test would otherwise fail

View File

@@ -65,13 +65,6 @@ http://maven.apache.org/maven-v3_0_0.xsd">
<artifactId>commons-jelly-tags-xml</artifactId>
<version>1.1</version>
</dependency>
<!-- Needed for the entity resolver -->
<dependency>
<groupId>maven</groupId>
<artifactId>maven-j2ee-plugin</artifactId>
<version>1.5.1</version>
<type>plugin</type>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>

View File

@@ -0,0 +1,88 @@
package org.apache.maven.ear.j2ee;
/* ====================================================================
* Copyright 2001-2006 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ====================================================================
*/
import junit.framework.TestCase;
import org.xml.sax.InputSource;
/**
* Test cases for the {@link J2EEEntityResolver}
*
* @author <a href="mailto:dion@multitask.com.au">dIon Gillard</a>
*/
public class J2EEEntityResolverTest extends TestCase
{
/** instance for unit testing */
private J2EEEntityResolver instance;
/**
* Creates a new instance of J2EEEntityResolverTest
* @param testName the name of the test
*/
public J2EEEntityResolverTest( String testName )
{
super( testName );
}
/**
* Initialize per test data
* @throws Exception when there is an unexpected problem
*/
public void setUp() throws Exception
{
instance = new J2EEEntityResolver();
}
/**
* Test that all public ids are available and being found
*/
public void testAllAvailable()
{
assertNotNull( "id to resource map not available",
instance.getIdToResource() );
int numDTDs = J2EEEntityResolver.J2EE_DTDS.length;
assertEquals( "wrong number of entries", numDTDs,
instance.getIdToResource().size() );
for ( int i = 0; i < numDTDs; i++ )
{
assertNotNull( "Can't find resource for publicId",
instance.getIdToResource().get( J2EEEntityResolver.J2EE_DTDS[i] ) );
}
}
/**
* Test that the resolver is getting resources locally
*/
public void testResolvingLocally()
throws Exception
{
int numDTDs = J2EEEntityResolver.J2EE_DTDS.length;
for ( int i = 0; i < numDTDs; i++ )
{
String publicId = J2EEEntityResolver.J2EE_DTDS[i];
assertNotNull( "Can't find resource for publicId " + publicId,
instance.resolveEntity( publicId, null ) );
}
}
}

View File

@@ -0,0 +1,11 @@
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>org.apache.maven.ear.j2ee</title>
</head>
<body>
<p>
Test classes for org.apache.maven.ear.j2ee.
</p>
</body>
</html>