DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. Copyright (c) 2009-2017 Oracle and/or its affiliates. All rights reserved. The contents of this file are subject to the terms of either the GNU General Public License Version 2 only ("GPL") or the Common Development and Distribution License("CDDL") (collectively, the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html or packager/legal/LICENSE.txt. See the License for the specific language governing permissions and limitations under the License. When distributing the software, include this License Header Notice in each file and include the License file at packager/legal/LICENSE.txt. GPL Classpath Exception: Oracle designates this particular file as subject to the "Classpath" exception as provided by Oracle in the GPL Version 2 section of the License file that accompanied this code. Modifications: If applicable, add the following below the License Header, with the fields enclosed by brackets [] replaced by your own identifying information: "Portions Copyright [year] [name of copyright owner]" Contributor(s): If you wish your version of this file to be governed by only the CDDL or only the GPL Version 2, indicate your decision by adding "[Contributor] elects to include this software in this distribution under the [CDDL or GPL Version 2] license." If you don't indicate a single choice of license, a recipient has the option to distribute your version of this file under either the CDDL, the GPL Version 2 or to extend the choice of license to its licensees as provided above. However, if you add GPL Version 2 code and therefore, elected the GPL Version 2 license, then the option applies only if the new code is made subject to such option by the copyright holder. The following definitions that appear in the common shareable schema(s) of Java EE deployment descriptors should be interpreted with respect to the context they are included: Deployment Component may indicate one of the following: java ee application; application client; web application; enterprise bean; resource adapter; Deployment File may indicate one of the following: ear file; war file; jar file; rar file; This group keeps the usage of the contained description related elements consistent across Java EE deployment descriptors. All elements may occur multiple times with different languages, to support localization of the content. This group keeps the usage of the contained JNDI environment reference elements consistent across Java EE deployment descriptors. This group collects elements that are common to most JNDI resource elements. The JNDI name to be looked up to resolve a resource reference. This group collects elements that are common to all the JNDI resource elements. It does not include the lookup-name element, that is only applicable to some resource elements. A product specific name that this resource should be mapped to. The name of this resource, as defined by the resource's name element or defaulted, is a name that is local to the application component using the resource. (It's a name in the JNDI java:comp/env namespace.) Many application servers provide a way to map these local names to names of resources known to the application server. This mapped name is often a global JNDI name, but may be a name of any form. Application servers are not required to support any particular form or type of mapped name, nor the ability to use mapped names. The mapped name is product-dependent and often installation-dependent. No use of a mapped name is portable. Configuration of an administered object. Description of this administered object. The name element specifies the JNDI name of the administered object being defined. The administered object's interface type. The administered object's class name. Resource adapter name. Property of the administered object property. This may be a vendor-specific property. Configuration of a Connector Connection Factory resource. Description of this resource. The name element specifies the JNDI name of the resource being defined. The fully qualified class name of the connection factory interface. Resource adapter name. Maximum number of connections that should be concurrently allocated for a connection pool. Minimum number of connections that should be concurrently allocated for a connection pool. The level of transaction support the connection factory needs to support. Resource property. This may be a vendor-specific property. Configuration of a DataSource. Description of this DataSource. The name element specifies the JNDI name of the data source being defined. DataSource, XADataSource or ConnectionPoolDataSource implementation class. Database server name. Port number where a server is listening for requests. Name of a database on a server. url property is specified along with other standard DataSource properties such as serverName, databaseName and portNumber, the more specific properties will take precedence and url will be ignored. ]]> User name to use for connection authentication. Password to use for connection authentication. JDBC DataSource property. This may be a vendor-specific property or a less commonly used DataSource property. Sets the maximum time in seconds that this data source will wait while attempting to connect to a database. Set to false if connections should not participate in transactions. Isolation level for connections. Number of connections that should be created when a connection pool is initialized. Maximum number of connections that should be concurrently allocated for a connection pool. Minimum number of connections that should be concurrently allocated for a connection pool. The number of seconds that a physical connection should remain unused in the pool before the connection is closed for a connection pool. The total number of statements that a connection pool should keep open. The description type is used by a description element to provide text describing the parent element. The elements that use this type should include any information that the Deployment Component's Deployment File file producer wants to provide to the consumer of the Deployment Component's Deployment File (i.e., to the Deployer). Typically, the tools used by such a Deployment File consumer will display the description when processing the parent element that contains the description. The lang attribute defines the language that the description is provided in. The default value is "en" (English). This type defines a dewey decimal that is used to describe versions of documents. Employee Self Service The value of the xml:lang attribute is "en" (English) by default. ]]> EmployeeRecord ../products/product.jar#ProductEJB ]]> The ejb-local-refType is used by ejb-local-ref elements for the declaration of a reference to an enterprise bean's local home or to the local business interface of a 3.0 bean. The declaration consists of: - an optional description - the EJB reference name used in the code of the Deployment Component that's referencing the enterprise bean. - the optional expected type of the referenced enterprise bean - the optional expected local interface of the referenced enterprise bean or the local business interface of the referenced enterprise bean. - the optional expected local home interface of the referenced enterprise bean. Not applicable if this ejb-local-ref refers to the local business interface of a 3.0 bean. - optional ejb-link information, used to specify the referenced enterprise bean - optional elements to define injection of the named enterprise bean into a component field or property. ejb/Payroll ]]> The ejb-refType is used by ejb-ref elements for the declaration of a reference to an enterprise bean's home or to the remote business interface of a 3.0 bean. The declaration consists of: - an optional description - the EJB reference name used in the code of the Deployment Component that's referencing the enterprise bean. - the optional expected type of the referenced enterprise bean - the optional remote interface of the referenced enterprise bean or the remote business interface of the referenced enterprise bean - the optional expected home interface of the referenced enterprise bean. Not applicable if this ejb-ref refers to the remote business interface of a 3.0 bean. - optional ejb-link information, used to specify the referenced enterprise bean - optional elements to define injection of the named enterprise bean into a component field or property The ejb-ref-typeType contains the expected type of the referenced enterprise bean. The ejb-ref-type designates a value that must be one of the following: Entity Session This type is used to designate an empty element when used. The env-entryType is used to declare an application's environment entry. The declaration consists of an optional description, the name of the environment entry, a type (optional if the value is injected, otherwise required), and an optional value. It also includes optional elements to define injection of the named resource into fields or JavaBeans properties. If a value is not specified and injection is requested, no injection will occur and no entry of the specified name will be created. This allows an initial value to be specified in the source code without being incorrectly changed when no override has been specified. If a value is not specified and no injection is requested, a value must be supplied during deployment. This type is used by env-entry elements. minAmount ]]> java.lang.Integer ]]> 100.00 ]]> java.lang.Boolean java.lang.Class com.example.Color ]]> The elements that use this type designate the name of a Java class or interface. The name is in the form of a "binary name", as defined in the JLS. This is the form of name used in Class.forName(). Tools that need the canonical name (the name used in source code) will need to convert this binary name to the canonical name. This type defines four different values which can designate boolean values. This includes values yes and no which are not designated by xsd:boolean The icon type contains small-icon and large-icon elements that specify the file names for small and large GIF, JPEG, or PNG icon images used to represent the parent element in a GUI tool. The xml:lang attribute defines the language that the icon file names are provided in. Its value is "en" (English) by default. employee-service-icon16x16.jpg ]]> employee-service-icon32x32.jpg ]]> An injection target specifies a class and a name within that class into which a resource should be injected. The injection target class specifies the fully qualified class name that is the target of the injection. The Java EE specifications describe which classes can be an injection target. The injection target name specifies the target within the specified class. The target is first looked for as a JavaBeans property name. If not found, the target is looked for as a field name. The specified resource will be injected into the target during initialization of the class by either calling the set method for the target property or by setting a value into the named field. The following transaction isolation levels are allowed (see documentation for the java.sql.Connection interface): TRANSACTION_READ_UNCOMMITTED TRANSACTION_READ_COMMITTED TRANSACTION_REPEATABLE_READ TRANSACTION_SERIALIZABLE The java-identifierType defines a Java identifier. The users of this type should further verify that the content does not contain Java reserved keywords. This is a generic type that designates a Java primitive type or a fully qualified name of a Java interface/type, or an array of such types. : Example: jdbc:mysql://localhost:3307/testdb ]]> Configuration of a JMS Connection Factory. Description of this JMS Connection Factory. The name element specifies the JNDI name of the JMS connection factory being defined. Fully-qualified name of the JMS connection factory interface. Permitted values are javax.jms.ConnectionFactory, javax.jms.QueueConnectionFactory, or javax.jms.TopicConnectionFactory. If not specified, javax.jms.ConnectionFactory will be used. Fully-qualified name of the JMS connection factory implementation class. Ignored if a resource adapter is used. Resource adapter name. If not specified, the application server will define the default behavior, which may or may not involve the use of a resource adapter. User name to use for connection authentication. Password to use for connection authentication. Client id to use for connection. JMS Connection Factory property. This may be a vendor-specific property or a less commonly used ConnectionFactory property. Set to false if connections should not participate in transactions. Maximum number of connections that should be concurrently allocated for a connection pool. Minimum number of connections that should be concurrently allocated for a connection pool. Configuration of a JMS Destination. Description of this JMS Destination. The name element specifies the JNDI name of the JMS destination being defined. Fully-qualified name of the JMS destination interface. Permitted values are javax.jms.Queue and javax.jms.Topic Fully-qualified name of the JMS destination implementation class. Ignored if a resource adapter is used unless the resource adapter defines more than one destination implementation class for the specified interface. Resource adapter name. If not specified, the application server will define the default behavior, which may or may not involve the use of a resource adapter. Name of the queue or topic. JMS Destination property. This may be a vendor-specific property or a less commonly used Destination property. The jndi-nameType type designates a JNDI name in the Deployment Component's environment and is relative to the java:comp/env context. A JNDI name must be unique within the Deployment Component. com.aardvark.payroll.PayrollHome ]]> The lifecycle-callback type specifies a method on a class to be called when a lifecycle event occurs. Note that each class may have only one lifecycle callback method for any given event and that the method may not be overloaded. If the lifefycle-callback-class element is missing then the class defining the callback is assumed to be the component class in scope at the place in the descriptor in which the callback definition appears. The listenerType indicates the deployment properties for a web application listener bean. The listener-class element declares a class in the application must be registered as a web application listener bean. The value is the fully qualified classname of the listener class. The localType defines the fully-qualified name of an enterprise bean's local interface. The local-homeType defines the fully-qualified name of an enterprise bean's local home interface. Configuration of a Mail Session resource. Description of this Mail Session resource. The name element specifies the JNDI name of the Mail Session resource being defined. Storage protocol. Service provider store protocol implementation class Transport protocol. Service provider transport protocol implementation class Mail server host name. Mail server user name. Password. Email address to indicate the message sender. Mail server property. This may be a vendor-specific property. This type is a general type that can be used to declare parameter/value lists. The param-name element contains the name of a parameter. The param-value element contains the value of a parameter. The elements that use this type designate either a relative path or an absolute path starting with a "/". In elements that specify a pathname to a file within the same Deployment File, relative filenames (i.e., those not starting with "/") are considered relative to the root of the Deployment File's namespace. Absolute filenames (i.e., those starting with "/") also specify names in the root of the Deployment 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. myPersistenceContext myPersistenceContext PersistenceUnit1 Extended ]]> The persistence-context-ref-name element specifies the name of a persistence context reference; its value is the environment entry name used in Deployment Component code. The name is a JNDI name relative to the java:comp/env context. The Application Assembler(or BeanProvider) may use the following syntax to avoid the need to rename persistence units to have unique names within a Java EE application. The Application Assembler specifies the pathname of the root of the persistence.xml file for the referenced persistence unit and appends the name of the persistence unit separated from the pathname by #. The pathname is relative to the referencing application component jar file. In this manner, multiple persistence units with the same persistence unit name may be uniquely identified when the Application Assembler cannot change persistence unit names. Used to specify properties for the container or persistence provider. Vendor-specific properties may be included in the set of properties. Properties that are not recognized by a vendor must be ignored. Entries that make use of the namespace javax.persistence and its subnamespaces must not be used for vendor-specific properties. The namespace javax.persistence is reserved for use by the specification. The persistence-context-synchronizationType specifies whether a container-managed persistence context is automatically synchronized with the current transaction. The value of the persistence-context-synchronization element must be one of the following: Synchronized Unsynchronized The persistence-context-typeType specifies the transactional nature of a persistence context reference. The value of the persistence-context-type element must be one of the following: Transaction Extended Specifies a name/value pair. myPersistenceUnit myPersistenceUnit PersistenceUnit1 ]]> The persistence-unit-ref-name element specifies the name of a persistence unit reference; its value is the environment entry name used in Deployment Component code. The name is a JNDI name relative to the java:comp/env context. The Application Assembler(or BeanProvider) may use the following syntax to avoid the need to rename persistence units to have unique names within a Java EE application. The Application Assembler specifies the pathname of the root of the persistence.xml file for the referenced persistence unit and appends the name of the persistence unit separated from the pathname by #. The pathname is relative to the referencing application component jar file. In this manner, multiple persistence units with the same persistence unit name may be uniquely identified when the Application Assembler cannot change persistence unit names. com.wombat.empl.EmployeeService ]]> jms/StockQueue javax.jms.Queue ]]> The resource-env-ref-name element specifies the name of a resource environment reference; its value is the environment entry name used in the Deployment Component code. The name is a JNDI name relative to the java:comp/env context and must be unique within a Deployment Component. 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. jdbc/EmployeeAppDB javax.sql.DataSource Container Shareable ]]> The res-ref-name element specifies the name of a resource manager connection factory reference. The name is a JNDI name relative to the java:comp/env context. The name must be unique within a Deployment File. 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. The res-authType specifies whether the Deployment Component code signs on programmatically to the resource manager, or whether the Container will sign on to the resource manager on behalf of the Deployment Component. In the latter case, the Container uses information that is supplied by the Deployer. The value must be one of the two following: Application Container The res-sharing-scope type specifies whether connections obtained through the given resource manager connection factory reference can be shared. The value, if specified, must be one of the two following: Shareable Unshareable The default value is Shareable. The run-asType specifies the run-as identity to be used for the execution of a component. It contains an optional description, and the name of a security role. The role-nameType designates the name of a security role. The name must conform to the lexical rules for a token. This role includes all employees who are authorized to access the employee service application. employee ]]> The security-role-refType contains the declaration of a security role reference in a component's or a Deployment Component's code. The declaration consists of an optional description, the security role name used in the code, and an optional link to a security role. If the security role is not specified, the Deployer must choose an appropriate security role. The value of the role-name element must be the String used as the parameter to the EJBContext.isCallerInRole(String roleName) method or the HttpServletRequest.isUserInRole(String role) method. The role-link element is a reference to a defined security role. The role-link element must contain the name of one of the security roles defined in the security-role elements. This type adds an "id" attribute to xsd:QName. This type adds an "id" attribute to xsd:boolean. This type adds an "id" attribute to xsd:NMTOKEN. This type adds an "id" attribute to xsd:anyURI. This type adds an "id" attribute to xsd:integer. This type adds an "id" attribute to xsd:positiveInteger. This type adds an "id" attribute to xsd:nonNegativeInteger. This type adds an "id" attribute to xsd:string. This is a special string datatype that is defined by Java EE as a base type for defining collapsed strings. When schemas require trailing/leading space elimination as well as collapsing the existing whitespace, this base type may be used. This simple type designates a boolean with only two permissible values - true - false The url-patternType contains the url pattern of the mapping. It must follow the rules specified in Section 11.2 of the Servlet API Specification. This pattern is assumed to be in URL-decoded form and must not contain CR(#xD) or LF(#xA). If it contains those characters, the container must inform the developer with a descriptive error message. The container must preserve all characters including whitespaces. CorporateStocks ]]> The message-destination-name element specifies a name for a message destination. This name must be unique among the names of message destinations within the Deployment File. A product specific name that this message destination should be mapped to. Each message-destination-ref element that references this message destination will define a name in the namespace of the referencing component or in one of the other predefined namespaces. Many application servers provide a way to map these local names to names of resources known to the application server. This mapped name is often a global JNDI name, but may be a name of any form. Each of the local names should be mapped to this same global name. Application servers are not required to support any particular form or type of mapped name, nor the ability to use mapped names. The mapped name is product-dependent and often installation-dependent. No use of a mapped name is portable. The JNDI name to be looked up to resolve the message destination. jms/StockQueue javax.jms.Queue Consumes CorporateStocks ]]> The message-destination-ref-name element specifies the name of a message destination reference; its value is the environment entry name used in Deployment Component code. The message-destination-usageType specifies the use of the message destination indicated by the reference. The value indicates whether messages are consumed from the message destination, produced for the destination, or both. The Assembler makes use of this information in linking producers of a destination with its consumers. The value of the message-destination-usage element must be one of the following: Consumes Produces ConsumesProduces javax.jms.Queue ]]> The message-destination-linkType is used to link a message destination reference or message-driven bean to a message destination. The Assembler sets the value to reflect the flow of messages between producers and consumers in the application. The value must be the message-destination-name of a message destination in the same Deployment File or in another Deployment File in the same Java EE application unit. Alternatively, the value may be composed of a path name specifying a Deployment File containing the referenced message destination with the message-destination-name of the destination appended and separated from the path name by "#". The path name is relative to the Deployment File containing Deployment Component that is referencing the message destination. This allows multiple message destinations with the same name to be uniquely identified. The transaction-supportType specifies the level of transaction support provided by the resource adapter. It is used by transaction-support elements. The value must be one of the following: NoTransaction LocalTransaction XATransaction