diff --git a/common/src/main/java/org/jboss/metadata/javaee/spec/ContextServiceMetaData.java b/common/src/main/java/org/jboss/metadata/javaee/spec/ContextServiceMetaData.java index 330ea085e..eede0efdb 100644 --- a/common/src/main/java/org/jboss/metadata/javaee/spec/ContextServiceMetaData.java +++ b/common/src/main/java/org/jboss/metadata/javaee/spec/ContextServiceMetaData.java @@ -6,6 +6,7 @@ import org.jboss.metadata.javaee.support.NamedMetaDataWithDescriptions; +import java.util.List; import java.util.Set; /** @@ -30,6 +31,10 @@ public class ContextServiceMetaData extends NamedMetaDataWithDescriptions { * */ private PropertiesMetaData properties; + /** + * + */ + private List qualifier; /** * */ @@ -90,6 +95,22 @@ public void setProperties(PropertiesMetaData properties) { this.properties = properties; } + /** + * + * @return the value of qualifier + */ + public List getQualifier() { + return qualifier; + } + + /** + * + * @param qualifier the qualifier to set + */ + public void setQualifier(List qualifier) { + this.qualifier = qualifier; + } + /** * * @return unchanged, may be null diff --git a/common/src/main/java/org/jboss/metadata/javaee/spec/ManagedExecutorMetaData.java b/common/src/main/java/org/jboss/metadata/javaee/spec/ManagedExecutorMetaData.java index 5711ac882..de38b1bab 100644 --- a/common/src/main/java/org/jboss/metadata/javaee/spec/ManagedExecutorMetaData.java +++ b/common/src/main/java/org/jboss/metadata/javaee/spec/ManagedExecutorMetaData.java @@ -6,6 +6,8 @@ import org.jboss.metadata.javaee.support.NamedMetaDataWithDescriptions; +import java.util.List; + /** * * @author emmartins @@ -36,6 +38,16 @@ public class ManagedExecutorMetaData extends NamedMetaDataWithDescriptions { */ private PropertiesMetaData properties; + /** + * + */ + private List qualifier; + + /** + * + */ + private Boolean virtual; + /** * */ @@ -107,4 +119,35 @@ public void setProperties(PropertiesMetaData properties) { this.properties = properties; } + /** + * + * @return the value of qualifier + */ + public List getQualifier() { + return qualifier; + } + + /** + * + * @param qualifier the qualifier to set + */ + public void setQualifier(List qualifier) { + this.qualifier = qualifier; + } + + /** + * + * @return the value of virtual + */ + public Boolean getVirtual() { + return virtual; + } + + /** + * + * @param virtual the virtual to set + */ + public void setVirtual(Boolean virtual) { + this.virtual = virtual; + } } diff --git a/common/src/main/java/org/jboss/metadata/javaee/spec/ManagedThreadFactoryMetaData.java b/common/src/main/java/org/jboss/metadata/javaee/spec/ManagedThreadFactoryMetaData.java index 574d8ddd0..7124f3806 100644 --- a/common/src/main/java/org/jboss/metadata/javaee/spec/ManagedThreadFactoryMetaData.java +++ b/common/src/main/java/org/jboss/metadata/javaee/spec/ManagedThreadFactoryMetaData.java @@ -6,6 +6,8 @@ import org.jboss.metadata.javaee.support.NamedMetaDataWithDescriptions; +import java.util.List; + /** * * @author emmartins @@ -31,6 +33,16 @@ public class ManagedThreadFactoryMetaData extends NamedMetaDataWithDescriptions */ private PropertiesMetaData properties; + /** + * + */ + private List qualifier; + + /** + * + */ + private Boolean virtual; + /** * */ @@ -89,4 +101,35 @@ public void setProperties(PropertiesMetaData properties) { this.properties = properties; } + /** + * + * @return the value of qualifier + */ + public List getQualifier() { + return qualifier; + } + + /** + * + * @param qualifier the qualifier to set + */ + public void setQualifier(List qualifier) { + this.qualifier = qualifier; + } + + /** + * + * @return the value of virtual + */ + public Boolean getVirtual() { + return virtual; + } + + /** + * + * @param virtual the virtual to set + */ + public void setVirtual(Boolean virtual) { + this.virtual = virtual; + } } diff --git a/common/src/main/java/org/jboss/metadata/merge/javaee/spec/ContextServiceMetaDataMerger.java b/common/src/main/java/org/jboss/metadata/merge/javaee/spec/ContextServiceMetaDataMerger.java index 17569807d..0616570f7 100644 --- a/common/src/main/java/org/jboss/metadata/merge/javaee/spec/ContextServiceMetaDataMerger.java +++ b/common/src/main/java/org/jboss/metadata/merge/javaee/spec/ContextServiceMetaDataMerger.java @@ -50,5 +50,10 @@ else if (original != null && original.getUnchanged() != null) dest.setProperties(override.getProperties()); else if (original != null && original.getProperties() != null) dest.setProperties(original.getProperties()); + + if (override != null && override.getQualifier() != null) + dest.setQualifier(override.getQualifier()); + else if (original != null && original.getQualifier() != null) + dest.setQualifier(original.getQualifier()); } } diff --git a/common/src/main/java/org/jboss/metadata/merge/javaee/spec/JavaEEVersion.java b/common/src/main/java/org/jboss/metadata/merge/javaee/spec/JavaEEVersion.java index 759c6f11d..4c5bcfb70 100644 --- a/common/src/main/java/org/jboss/metadata/merge/javaee/spec/JavaEEVersion.java +++ b/common/src/main/java/org/jboss/metadata/merge/javaee/spec/JavaEEVersion.java @@ -29,4 +29,5 @@ public enum JavaEEVersion { V10, + V11, } diff --git a/common/src/main/java/org/jboss/metadata/merge/javaee/spec/ManagedExecutorMetaDataMerger.java b/common/src/main/java/org/jboss/metadata/merge/javaee/spec/ManagedExecutorMetaDataMerger.java index 01bd9768d..143607686 100644 --- a/common/src/main/java/org/jboss/metadata/merge/javaee/spec/ManagedExecutorMetaDataMerger.java +++ b/common/src/main/java/org/jboss/metadata/merge/javaee/spec/ManagedExecutorMetaDataMerger.java @@ -49,6 +49,16 @@ else if (original != null && original.getMaxAsync() != null) dest.setProperties(override.getProperties()); else if (original != null && original.getProperties() != null) dest.setProperties(original.getProperties()); + + if (override != null && override.getQualifier() != null) + dest.setQualifier(override.getQualifier()); + else if (original != null && original.getQualifier() != null) + dest.setQualifier(original.getQualifier()); + + if (override != null && override.getVirtual() != null) + dest.setVirtual(override.getVirtual()); + else if (original != null && original.getVirtual() != null) + dest.setVirtual(original.getVirtual()); } } diff --git a/common/src/main/java/org/jboss/metadata/merge/javaee/spec/ManagedThreadFactoryMetaDataMerger.java b/common/src/main/java/org/jboss/metadata/merge/javaee/spec/ManagedThreadFactoryMetaDataMerger.java index 4040cbd33..974e1ea02 100644 --- a/common/src/main/java/org/jboss/metadata/merge/javaee/spec/ManagedThreadFactoryMetaDataMerger.java +++ b/common/src/main/java/org/jboss/metadata/merge/javaee/spec/ManagedThreadFactoryMetaDataMerger.java @@ -44,6 +44,16 @@ else if (original != null) dest.setProperties(override.getProperties()); else if (original != null && original.getProperties() != null) dest.setProperties(original.getProperties()); + + if (override != null && override.getQualifier() != null) + dest.setQualifier(override.getQualifier()); + else if (original != null && original.getQualifier() != null) + dest.setQualifier(original.getQualifier()); + + if (override != null && override.getVirtual() != null) + dest.setVirtual(override.getVirtual()); + else if (original != null && original.getVirtual() != null) + dest.setVirtual(original.getVirtual()); } } diff --git a/common/src/main/java/org/jboss/metadata/parser/ee/ContextServiceMetaDataParser.java b/common/src/main/java/org/jboss/metadata/parser/ee/ContextServiceMetaDataParser.java index 46ea90bc0..031c63c4d 100644 --- a/common/src/main/java/org/jboss/metadata/parser/ee/ContextServiceMetaDataParser.java +++ b/common/src/main/java/org/jboss/metadata/parser/ee/ContextServiceMetaDataParser.java @@ -12,7 +12,9 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; +import java.util.ArrayList; import java.util.HashSet; +import java.util.List; /** * @author emmartins @@ -68,6 +70,14 @@ public static ContextServiceMetaData parse(XMLStreamReader reader, PropertyRepla } properties.add(PropertyMetaDataParser.parse(reader, propertyReplacer)); break; + case QUALIFIER: + List qualifier = metaData.getQualifier(); + if (qualifier == null) { + qualifier = new ArrayList<>(); + metaData.setQualifier(qualifier); + } + qualifier.add(getElementText(reader, propertyReplacer)); + break; default: throw unexpectedElement(reader); } diff --git a/common/src/main/java/org/jboss/metadata/parser/ee/Element.java b/common/src/main/java/org/jboss/metadata/parser/ee/Element.java index 57c0a81d6..b7cefe700 100644 --- a/common/src/main/java/org/jboss/metadata/parser/ee/Element.java +++ b/common/src/main/java/org/jboss/metadata/parser/ee/Element.java @@ -133,6 +133,8 @@ public enum Element { PROPERTY("property"), PROTOCOL_BINDINGS("protocol-bindings"), + QUALIFIER("qualifier"), + REMOTE("remote"), REQUIRED("required"), RES_AUTH("res-auth"), @@ -177,6 +179,7 @@ public enum Element { USER("user"), VALUE("value"), + VIRTUAL("virtual"), WSDL_FILE("wsdl-file"), WSDL_OVERRIDE("wsdl-override"),; diff --git a/common/src/main/java/org/jboss/metadata/parser/ee/ManagedExecutorMetaDataParser.java b/common/src/main/java/org/jboss/metadata/parser/ee/ManagedExecutorMetaDataParser.java index 9a25c37e9..dc01f6d26 100644 --- a/common/src/main/java/org/jboss/metadata/parser/ee/ManagedExecutorMetaDataParser.java +++ b/common/src/main/java/org/jboss/metadata/parser/ee/ManagedExecutorMetaDataParser.java @@ -12,6 +12,8 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; +import java.util.ArrayList; +import java.util.List; /** * @author emmartins @@ -60,6 +62,17 @@ public static void parse(XMLStreamReader reader, PropertyReplacer propertyReplac } properties.add(PropertyMetaDataParser.parse(reader, propertyReplacer)); break; + case QUALIFIER: + List qualifier = metaData.getQualifier(); + if (qualifier == null) { + qualifier = new ArrayList<>(); + metaData.setQualifier(qualifier); + } + qualifier.add(getElementText(reader, propertyReplacer)); + break; + case VIRTUAL: + metaData.setVirtual(Boolean.valueOf(getElementText(reader, propertyReplacer))); + break; default: throw unexpectedElement(reader); } diff --git a/common/src/main/java/org/jboss/metadata/parser/ee/ManagedThreadFactoryMetaDataParser.java b/common/src/main/java/org/jboss/metadata/parser/ee/ManagedThreadFactoryMetaDataParser.java index d1acc860d..33c156b47 100644 --- a/common/src/main/java/org/jboss/metadata/parser/ee/ManagedThreadFactoryMetaDataParser.java +++ b/common/src/main/java/org/jboss/metadata/parser/ee/ManagedThreadFactoryMetaDataParser.java @@ -12,6 +12,8 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; +import java.util.ArrayList; +import java.util.List; /** * @author emmartins @@ -52,6 +54,17 @@ public static ManagedThreadFactoryMetaData parse(XMLStreamReader reader, Propert } properties.add(PropertyMetaDataParser.parse(reader, propertyReplacer)); break; + case QUALIFIER: + List qualifier = metaData.getQualifier(); + if (qualifier == null) { + qualifier = new ArrayList<>(); + metaData.setQualifier(qualifier); + } + qualifier.add(getElementText(reader, propertyReplacer)); + break; + case VIRTUAL: + metaData.setVirtual(Boolean.valueOf(getElementText(reader, propertyReplacer))); + break; default: throw unexpectedElement(reader); } diff --git a/common/src/main/resources/schema/jakartaee_11.xsd b/common/src/main/resources/schema/jakartaee_11.xsd new file mode 100644 index 000000000..9eac61e42 --- /dev/null +++ b/common/src/main/resources/schema/jakartaee_11.xsd @@ -0,0 +1,3648 @@ + + + + + + Copyright (c) 2009, 2024 Oracle and/or its affiliates. All rights reserved. + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License v. 2.0, which is available at + http://www.eclipse.org/legal/epl-2.0. + + This Source Code may also be made available under the following Secondary + Licenses when the conditions for such availability set forth in the + Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + version 2 with the GNU Classpath Exception, which is available at + https://www.gnu.org/software/classpath/license.html. + + SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + + + + + + + + The following definitions that appear in the common + shareable schema(s) of Jakarta EE deployment descriptors should be + interpreted with respect to the context they are included: + + Deployment Component may indicate one of the following: + Jakarta 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 Jakarta 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 Jakarta 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 ContextService. + + + + + + + + + Description of this ContextService. + + + + + + + + + JNDI name of the ContextService instance being defined. + The JNDI name must be in a valid Jakarta EE namespace, + such as java:comp, java:module, java:app, or java:global. + + + + + + + + + A ContextService injection point annotated with these qualifier annotations + injects a bean that is produced by this context-service element. + Applications can define their own Producers for ContextService injection points + as long as the qualifier annotations on the producer do not conflict with the + non-empty qualifier list of a context-service. + + You can specify a single qualifier element with no value to indicate an + empty list of qualifier annotation classes. + + + + + + + + + Types of context to clear whenever a thread runs a + contextual task or action. The thread's previous context + is restored afterward. Context types that are defined by + the Jakarta EE Concurrency specification include: + Application, Security, Transaction, + and Remaining, which means all available thread context + types that are not specified elsewhere. You can also specify + vendor-specific context types. Absent other configuration, + cleared context defaults to Transaction. You can specify + a single cleared element with no value to indicate an + empty list of context types to clear. If neither + propagated nor unchanged specify (or default to) Remaining, + then Remaining is automatically appended to the list of + cleared context types. + + + + + + + + + Types of context to capture from the requesting thread + and propagate to a thread that runs a contextual task + or action. The captured context is re-established + when threads run the contextual task or action, + with the respective thread's previous context being + restored afterward. Context types that are defined by + the Jakarta EE Concurrency specification include: + Application, Security, + and Remaining, which means all available thread context + types that are not specified elsewhere. You can also specify + vendor-specific context types. Absent other configuration, + propagated context defaults to Remaining. You can specify + a single propagated element with no value to indicate that + no context types should be propagated. + + + + + + + + + Types of context that are left alone when a thread runs a + contextual task or action. Context types that are defined + by the Jakarta EE Concurrency specification include: + Application, Security, Transaction, + and Remaining, which means all available thread context + types that are not specified elsewhere. You can also specify + vendor-specific context types. Absent other configuration, + unchanged context defaults to empty. You can specify + a single unchanged element with no value to indicate that + no context types should be left unchanged. + + + + + + + + + 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 enterprise bean's 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 enterprise bean's 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 + Jakarta 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 Messaging Connection Factory. + + + + + + + + + Description of this Messaging Connection Factory. + + + + + + + + + The name element specifies the JNDI name of the + messaging connection factory being defined. + + + + + + + + + Fully-qualified name of the messaging connection factory + interface. Permitted values are jakarta.jms.ConnectionFactory, + jakarta.jms.QueueConnectionFactory, or + jakarta.jms.TopicConnectionFactory. If not specified, + jakarta.jms.ConnectionFactory will be used. + + + + + + + + + Fully-qualified name of the messaging 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. + + + + + + + + + Messaging 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 Messaging Destination. + + + + + + + + + Description of this Messaging Destination. + + + + + + + + + The name element specifies the JNDI name of the + messaging destination being defined. + + + + + + + + + Fully-qualified name of the messaging destination interface. + Permitted values are jakarta.jms.Queue and jakarta.jms.Topic + + + + + + + + + Fully-qualified name of the messaging 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. + + + + + + + + + Messaging 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. + + + + + + + + + + + + + + + + Configuration of a ManagedExecutorService. + + + + + + + + + Description of this ManagedExecutorService. + + + + + + + + + JNDI name of the ManagedExecutorService instance being defined. + The JNDI name must be in a valid Jakarta EE namespace, + such as java:comp, java:module, java:app, or java:global. + + + + + + + + + Refers to the name of a ContextServiceDefinition or + context-service deployment descriptor element, + which determines how context is applied to tasks and actions + that run on this executor. + The name must be in a valid Jakarta EE namespace, + such as java:comp, java:module, java:app, or java:global. + In the absence of a configured value, + java:comp/DefaultContextService is used. + + + + + + + + + A ManagedExecutorService injection point annotated with these qualifier annotations + injects a bean that is produced by this managed-executor element. + Applications can define their own Producers for ManagedExecutorService injection points + as long as the qualifier annotations on the producer do not conflict with the + non-empty qualifier list of a managed-executor. + + You can specify a single qualifier element with no value to indicate an + empty list of qualifier annotation classes. + + + + + + + + + Upper bound on contextual tasks and actions that this executor + will simultaneously execute asynchronously. This constraint does + not apply to tasks and actions that the executor runs inline, + such as when a thread requests CompletableFuture.join and the + action runs inline if it has not yet started. + The default is unbounded, although still subject to + resource constraints of the system. + + + + + + + + + The amount of time in milliseconds that a task or action + can execute before it is considered hung. + + + + + + + + + Indicates whether this executor is requested to + create virtual threads for tasks that do not run inline. + When true, the executor can create + virtual threads if it is capable of doing so + and if the request is not overridden by vendor-specific + configuration that restricts the use of virtual threads. + + + + + + + + + Vendor-specific property. + + + + + + + + + + + + + + + + Configuration of a ManagedScheduledExecutorService. + + + + + + + + + Description of this ManagedScheduledExecutorService. + + + + + + + + + JNDI name of the ManagedScheduledExecutorService instance + being defined. + The JNDI name must be in a valid Jakarta EE namespace, + such as java:comp, java:module, java:app, or java:global. + + + + + + + + + Refers to the name of a ContextServiceDefinition or + context-service deployment descriptor element, + which determines how context is applied to tasks and actions + that run on this executor. + The name must be in a valid Jakarta EE namespace, + such as java:comp, java:module, java:app, or java:global. + In the absence of a configured value, + java:comp/DefaultContextService is used. + + + + + + + + + A ManagedScheduledExecutorService injection point annotated with these qualifier annotations + injects a bean that is produced by this managed-scheduled-executor element. + Applications can define their own Producers for ManagedScheduledExecutorService injection points + as long as the qualifier annotations on the producer do not conflict with the + non-empty qualifier list of a managed-scheduled-executor. + + You can specify a single qualifier element with no value to indicate an + empty list of qualifier annotation classes. + + + + + + + + + Upper bound on contextual tasks and actions that this executor + will simultaneously execute asynchronously. This constraint does + not apply to tasks and actions that the executor runs inline, + such as when a thread requests CompletableFuture.join and the + action runs inline if it has not yet started. This constraint also + does not apply to tasks that are scheduled via the schedule methods. + The default is unbounded, although still subject to + resource constraints of the system. + + + + + + + + + The amount of time in milliseconds that a task or action + can execute before it is considered hung. + + + + + + + + + Indicates whether this executor is requested to + create virtual threads for tasks that do not run inline. + When true, the executor can create + virtual threads if it is capable of doing so + and if the request is not overridden by vendor-specific + configuration that restricts the use of virtual threads. + + + + + + + + + Vendor-specific property. + + + + + + + + + + + + + + + + Configuration of a ManagedThreadFactory. + + + + + + + + + Description of this ManagedThreadFactory. + + + + + + + + + JNDI name of the ManagedThreadFactory instance being defined. + The JNDI name must be in a valid Jakarta EE namespace, + such as java:comp, java:module, java:app, or java:global. + + + + + + + + + Refers to the name of a ContextServiceDefinition or + context-service deployment descriptor element, + which determines how context is applied to threads + from this thread factory. + The name must be in a valid Jakarta EE namespace, + such as java:comp, java:module, java:app, or java:global. + In the absence of a configured value, + java:comp/DefaultContextService is used. + + + + + + + + + A ManagedThreadFactory injection point annotated with these qualifier annotations + injects a bean that is produced by this managed-thread-factory element. + Applications can define their own Producers for ManagedThreadFactory injection points + as long as the qualifier annotations on the producer do not conflict with the + non-empty qualifier list of a managed-thread-factory. + + You can specify a single qualifier element with no value to indicate an + empty list of qualifier annotation classes. + + + + + + + + + Priority for threads created by this thread factory. + The default is 5 (java.lang.Thread.NORM_PRIORITY). + + + + + + + + + Indicates whether this executor is requested to + create virtual threads for tasks that do not run inline. + When true, the executor can create + virtual threads if it is capable of doing so + and if the request is not overridden by vendor-specific + configuration that restricts the use of virtual threads. + + + + + + + + + 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 Jakarta 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 jakarta.persistence and its subnamespaces must not + be used for vendor-specific properties. The namespace + jakarta.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 thread priority value in the range of + 1 (java.lang.Thread.MIN_PRIORITY) to 10 (java.lang.Thread.MAX_PRIORITY). + + + + + + + + + + + + + + + + + + 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 Jakarta 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 + + jakarta.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 Jakarta 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 + + jakarta.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 + + + + + + + + + + + + + + + + + + + jakarta.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 Jakarta 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 + + + + + + + + + + + + + diff --git a/common/src/test/java/org/jboss/test/metadata/javaee/AbstractJavaEEEverythingTest.java b/common/src/test/java/org/jboss/test/metadata/javaee/AbstractJavaEEEverythingTest.java index 428bb1cfc..3a779ba6b 100644 --- a/common/src/test/java/org/jboss/test/metadata/javaee/AbstractJavaEEEverythingTest.java +++ b/common/src/test/java/org/jboss/test/metadata/javaee/AbstractJavaEEEverythingTest.java @@ -4,6 +4,7 @@ */ package org.jboss.test.metadata.javaee; +import java.util.List; import java.util.Set; import org.jboss.annotation.javaee.Description; @@ -965,6 +966,7 @@ protected void assertContextServices(String prefix, ContextServicesMetaData meta final Set propagated = metaData.getPropagated(); final Set unchanged = metaData.getUnchanged(); final PropertiesMetaData properties = metaData.getProperties(); + final List qualifier = metaData.getQualifier(); assertEquals(metaDataPrefix + "-name", name); if (count<3) { @@ -988,12 +990,17 @@ protected void assertContextServices(String prefix, ContextServicesMetaData meta assertEquals(metaDataPrefix + "-unchanged", unchanged.iterator().next()); // properties assertProperties(metaDataPrefix,2,properties); + if (version.ordinal() > JavaEEVersion.V10.ordinal()) { + // qualifier + assertQualifier(metaDataPrefix, 2, qualifier); + } } else { assertNull(desc); assertNull(cleared); assertNull(propagated); assertNull(unchanged); assertNull(properties); + assertNull(qualifier); } ++count; } @@ -1019,6 +1026,8 @@ protected void assertManagedExecutors(String prefix, ManagedExecutorsMetaData me final Integer hungTaskThreshold = metaData.getHungTaskThreshold(); final Integer maxAsync = metaData.getMaxAsync(); final PropertiesMetaData properties = metaData.getProperties(); + final List qualifier = metaData.getQualifier(); + final Boolean virtual = metaData.getVirtual(); assertEquals(metaDataPrefix + "-name", name); if (count<3) { @@ -1039,12 +1048,20 @@ protected void assertManagedExecutors(String prefix, ManagedExecutorsMetaData me assertEquals(count, maxAsync.intValue()); // properties assertProperties(metaDataPrefix,2,properties); + if (version.ordinal() > JavaEEVersion.V10.ordinal()) { + // qualifier + assertQualifier(metaDataPrefix, 2, qualifier); + // virtual + assertVirtual(count, virtual); + } } else { assertNull(desc); assertNull(contextServiceRef); assertNull(hungTaskThreshold); assertNull(maxAsync); assertNull(properties); + assertNull(qualifier); + assertNull(virtual); } ++count; } @@ -1070,6 +1087,8 @@ protected void assertManagedScheduledExecutors(String prefix, ManagedScheduledEx final Integer hungTaskThreshold = metaData.getHungTaskThreshold(); final Integer maxAsync = metaData.getMaxAsync(); final PropertiesMetaData properties = metaData.getProperties(); + final List qualifier = metaData.getQualifier(); + final Boolean virtual = metaData.getVirtual(); assertEquals(metaDataPrefix + "-name", name); if (count<3) { @@ -1090,12 +1109,20 @@ protected void assertManagedScheduledExecutors(String prefix, ManagedScheduledEx assertEquals(count, maxAsync.intValue()); // properties assertProperties(metaDataPrefix,2,properties); + if (version.ordinal() > JavaEEVersion.V10.ordinal()) { + // qualifier + assertQualifier(metaDataPrefix, 2, qualifier); + // virtual + assertVirtual(count, virtual); + } } else { assertNull(desc); assertNull(contextServiceRef); assertNull(hungTaskThreshold); assertNull(maxAsync); assertNull(properties); + assertNull(qualifier); + assertNull(virtual); } ++count; } @@ -1120,6 +1147,8 @@ protected void assertManagedThreadFactories(String prefix, ManagedThreadFactorie final String contextServiceRef = metaData.getContextServiceRef(); final int priority = metaData.getPriority(); final PropertiesMetaData properties = metaData.getProperties(); + final List qualifier = metaData.getQualifier(); + final Boolean virtual = metaData.getVirtual(); assertEquals(metaDataPrefix + "-name", name); if (count<3) { @@ -1136,11 +1165,19 @@ protected void assertManagedThreadFactories(String prefix, ManagedThreadFactorie assertEquals(count, priority); // properties assertProperties(metaDataPrefix,2,properties); + if (version.ordinal() > JavaEEVersion.V10.ordinal()) { + // qualifier + assertQualifier(metaDataPrefix, 2, qualifier); + // virtual + assertVirtual(count, virtual); + } } else { assertNull(desc); assertNull(contextServiceRef); assertEquals(priority, Thread.NORM_PRIORITY); assertNull(properties); + assertNull(qualifier); + assertNull(virtual); } ++count; } @@ -1172,6 +1209,25 @@ protected void assertProperties(String prefix, int size, PropertiesMetaData prop } } + protected void assertQualifier(String prefix, int size, List qualifierMetaData) { + assertNotNull(qualifierMetaData); + assertEquals(size, qualifierMetaData.size()); + int count = 1; + for (String qualifier : qualifierMetaData) { + assertEquals(prefix + "Qualifier" + count, qualifier); + ++count; + } + } + + protected void assertVirtual(int count, Boolean virtual) { + assertNotNull(virtual); + if (count == 1) { + assertTrue(virtual); + } else { + assertFalse(virtual); + } + } + protected void assertResourceGroupNoJndiName(String prefix, ResourceInjectionMetaData resourceInjectionMetaData, boolean full, boolean first) { assertNotNull(resourceInjectionMetaData); assertResourceInjectionTargets(prefix, 2, resourceInjectionMetaData.getInjectionTargets()); diff --git a/ear/src/main/resources/schema/application_11.xsd b/ear/src/main/resources/schema/application_11.xsd new file mode 100644 index 000000000..15cfc8d7b --- /dev/null +++ b/ear/src/main/resources/schema/application_11.xsd @@ -0,0 +1,406 @@ + + + + + + Copyright (c) 2009, 2024 Oracle and/or its affiliates. All rights reserved. + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License v. 2.0, which is available at + http://www.eclipse.org/legal/epl-2.0. + + This Source Code may also be made available under the following Secondary + Licenses when the conditions for such availability set forth in the + Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + version 2 with the GNU Classpath Exception, which is available at + https://www.gnu.org/software/classpath/license.html. + + SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + + + + + + + + ... + + + The instance documents may indicate the published version of + the schema using the xsi:schemaLocation attribute for Jakarta EE + namespace with the following location: + + https://jakarta.ee/xml/ns/jakartaee/application_11.xsd + + ]]> + + + + + + + The following conventions apply to all Jakarta EE + deployment descriptor elements unless indicated otherwise. + + - 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 Jakarta EE + application deployment descriptor. + + + + + + + + The context-root element content must be unique + in the ear. + + + + + + + + + + + The security-role-name element content + must be unique in the ear. + + + + + + + + + + + + + + + + The applicationType defines the structure of the + application. + + + + + + + + + + + If initialize-in-order is true, modules must be initialized + in the order they're listed in this deployment descriptor, + with the exception of application client modules, which can + be initialized in any order. + If initialize-in-order is not set or set to false, the order + of initialization is unspecified and may be product-dependent. + + + + + + + + + The application deployment descriptor must have one + module element for each Jakarta EE module in the + application package. A module element is defined + by moduleType definition. + + + + + + + + + + The library-directory element specifies the pathname + of a directory within the application package, relative + to the top level of the application package. All files + named "*.jar" in this directory must be made available + in the class path of all components included in this + application package. If this element isn't specified, + the directory named "lib" is searched. An empty element + may be used to disable searching. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The required value for the version is 11. + + + + + + + + + + + + + + + The moduleType defines a single Jakarta EE 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 connector element specifies the URI of a + resource adapter archive file, relative to the + top level of the application package. + + + + + + + + + The ejb element specifies the URI of an ejb-jar, + relative to the top level of the application + package. + + + + + + + + + The java element specifies the URI of a java + application client module, relative to the top + level of the application package. + + + + + + + + + + + The alt-dd element specifies an optional URI to the + post-assembly version of the deployment descriptor + file for a particular Jakarta EE 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. + + + + + + + + + + + + + + + + The webType defines the web-uri and context-root of + a web application module. + + + + + + + + + The web-uri element specifies the URI of a web + application file, relative to the top level of the + application package. + + + + + + + + + The context-root element specifies the context root + of a web application. + + + + + + + + + diff --git a/ear/src/test/resources/org/jboss/test/metadata/ear/Ear11xEverything_testEverything.xml b/ear/src/test/resources/org/jboss/test/metadata/ear/Ear11xEverything_testEverything.xml new file mode 100644 index 000000000..89392524d --- /dev/null +++ b/ear/src/test/resources/org/jboss/test/metadata/ear/Ear11xEverything_testEverything.xml @@ -0,0 +1,1052 @@ + + + + + + ApplicationName + + en-app-desc + fr-app-desc + de-app-desc + en-app-disp + fr-app-disp + de-app-disp + + en-app-small-icon + en-app-large-icon + + + fr-app-small-icon + fr-app-large-icon + + + de-app-small-icon + de-app-large-icon + + + true + + + rar0.rar + META-INF/alt-ra.xml + + + client0.jar + META-INF/alt-application-client.xml + + + ejb-jar0.jar + META-INF/alt-ejb-jar.xml + + + ejb-jar1.jar + META-INF/alt-ejb-jar.xml + + + + web-app0.war + /web0 + + WEB-INF/alt-web.xml + + + + web-app1.war + /web1 + + WEB-INF/alt-web.xml + + + + en-securityRole1-desc + fr-securityRole1-desc + de-securityRole1-desc + securityRoleRef1RoleLink + + + en-securityRole2-desc + fr-securityRole2-desc + de-securityRole2-desc + securityRoleRef2RoleLink + + + lib0 + + + en-appEnvEntry1-desc + fr-appEnvEntry1-desc + + de-appEnvEntry1-desc + + appEnvEntry1Name + java.lang.String + appEnvEntry1Value + appEnvEntry1MappedName + + appEnvEntry1Injection1Class + + appEnvEntry1Injection1Name + + + + appEnvEntry1Injection2Class + + appEnvEntry1Injection2Name + + + + + en-appEnvEntry2-desc + fr-appEnvEntry2-desc + + de-appEnvEntry2-desc + + appEnvEntry2Name + java.lang.String + appEnvEntry2Value + appEnvEntry2MappedName + + appEnvEntry2Injection1Class + + appEnvEntry2Injection1Name + + + + appEnvEntry2Injection2Class + + appEnvEntry2Injection2Name + + + + + en-appEjbRef1-desc + fr-appEjbRef1-desc + de-appEjbRef1-desc + appEjbRef1Name + Session + appEjbRef1Home + appEjbRef1Remote + appEjbRef1EjbLink + appEjbRef1MappedName + + appEjbRef1Injection1Class + + appEjbRef1Injection1Name + + + + appEjbRef1Injection2Class + + appEjbRef1Injection2Name + + + + + en-appEjbRef2-desc + fr-appEjbRef2-desc + de-appEjbRef2-desc + appEjbRef2Name + Entity + appEjbRef2Home + appEjbRef2Remote + appEjbRef2EjbLink + appEjbRef2MappedName + + appEjbRef2Injection1Class + + appEjbRef2Injection1Name + + + + appEjbRef2Injection2Class + + appEjbRef2Injection2Name + + + + + en-appEjbLocalRef1-desc + fr-appEjbLocalRef1-desc + + de-appEjbLocalRef1-desc + + appEjbLocalRef1Name + Session + appEjbLocalRef1LocalHome + appEjbLocalRef1Local + appEjbLocalRef1EjbLink + appEjbLocalRef1MappedName + + appEjbLocalRef1Injection1Class + + appEjbLocalRef1Injection1Name + + + + appEjbLocalRef1Injection2Class + + appEjbLocalRef1Injection2Name + + + + + en-appEjbLocalRef2-desc + fr-appEjbLocalRef2-desc + + de-appEjbLocalRef2-desc + + appEjbLocalRef2Name + Entity + appEjbLocalRef2LocalHome + appEjbLocalRef2Local + appEjbLocalRef2EjbLink + appEjbLocalRef2MappedName + + appEjbLocalRef2Injection1Class + + appEjbLocalRef2Injection1Name + + + + appEjbLocalRef2Injection2Class + + appEjbLocalRef2Injection2Name + + + + + + + + en-appServiceRef1-desc + fr-appServiceRef1-desc + + de-appServiceRef1-desc + + appServiceRef1Name + appServiceRef1Iface + + + en-appServiceRef2-desc + fr-appServiceRef2-desc + + de-appServiceRef2-desc + + appServiceRef2Name + appServiceRef2Iface + + + + en-appResourceRef1-desc + fr-appResourceRef1-desc + + de-appResourceRef1-desc + + appResourceRef1Name + appResourceRef1Type + Application + Shareable + appResourceRef1MappedName + + appResourceRef1Injection1Class + + appResourceRef1Injection1Name + + + + appResourceRef1Injection2Class + + appResourceRef1Injection2Name + + + + + en-appResourceRef2-desc + fr-appResourceRef2-desc + + de-appResourceRef2-desc + + appResourceRef2Name + appResourceRef2Type + Container + Unshareable + appResourceRef2MappedName + + appResourceRef2Injection1Class + + appResourceRef2Injection1Name + + + + appResourceRef2Injection2Class + + appResourceRef2Injection2Name + + + + + en-appResourceEnvRef1-desc + fr-appResourceEnvRef1-desc + + de-appResourceEnvRef1-desc + + appResourceEnvRef1Name + + appResourceEnvRef1Type + + appResourceEnvRef1MappedName + + appResourceEnvRef1Injection1Class + + appResourceEnvRef1Injection1Name + + + + appResourceEnvRef1Injection2Class + + appResourceEnvRef1Injection2Name + + + + + en-appResourceEnvRef2-desc + fr-appResourceEnvRef2-desc + + de-appResourceEnvRef2-desc + + appResourceEnvRef2Name + + appResourceEnvRef2Type + + appResourceEnvRef2MappedName + + appResourceEnvRef2Injection1Class + + appResourceEnvRef2Injection1Name + + + + appResourceEnvRef2Injection2Class + + appResourceEnvRef2Injection2Name + + + + + en-appMessageDestinationRef1-desc + fr-appMessageDestinationRef1-desc + + de-appMessageDestinationRef1-desc + + appMessageDestinationRef1Name + + appMessageDestinationRef1Type + + Consumes + appMessageDestinationRef1Link + + appMessageDestinationRef1MappedName + + appMessageDestinationRef1Injection1Class + + appMessageDestinationRef1Injection1Name + + + + appMessageDestinationRef1Injection2Class + + appMessageDestinationRef1Injection2Name + + + + + en-appMessageDestinationRef2-desc + fr-appMessageDestinationRef2-desc + + de-appMessageDestinationRef2-desc + + appMessageDestinationRef2Name + + appMessageDestinationRef2Type + + Produces + appMessageDestinationRef2Link + + appMessageDestinationRef2MappedName + + appMessageDestinationRef2Injection1Class + + appMessageDestinationRef2Injection1Name + + + + appMessageDestinationRef2Injection2Class + + appMessageDestinationRef2Injection2Name + + + + + en-appMessageDestinationRef3-desc + fr-appMessageDestinationRef3-desc + + de-appMessageDestinationRef3-desc + + appMessageDestinationRef3Name + + appMessageDestinationRef3Type + + ConsumesProduces + appMessageDestinationRef3Link + + appMessageDestinationRef3MappedName + + appMessageDestinationRef3Injection1Class + + appMessageDestinationRef3Injection1Name + + + + appMessageDestinationRef3Injection2Class + + appMessageDestinationRef3Injection2Name + + + + + en-appPersistenceContextRef1-desc + fr-appPersistenceContextRef1-desc + + de-appPersistenceContextRef1-desc + + appPersistenceContextRef1Name + + appPersistenceContextRef1Unit + + Transaction + + appPersistenceContextRef1Property1Name + appPersistenceContextRef1Property1Value + + + appPersistenceContextRef1Property2Name + appPersistenceContextRef1Property2Value + + appPersistenceContextRef1MappedName + + appPersistenceContextRef1Injection1Class + + appPersistenceContextRef1Injection1Name + + + + appPersistenceContextRef1Injection2Class + + appPersistenceContextRef1Injection2Name + + + + + en-appPersistenceContextRef2-desc + fr-appPersistenceContextRef2-desc + + de-appPersistenceContextRef2-desc + + appPersistenceContextRef2Name + + appPersistenceContextRef2Unit + + Extended + Unsynchronized + + + appPersistenceContextRef2Property1Name + appPersistenceContextRef2Property1Value + + + appPersistenceContextRef2Property2Name + appPersistenceContextRef2Property2Value + + appPersistenceContextRef2MappedName + + appPersistenceContextRef2Injection1Class + + appPersistenceContextRef2Injection1Name + + + + appPersistenceContextRef2Injection2Class + + appPersistenceContextRef2Injection2Name + + + + + en-appPersistenceUnitRef1-desc + fr-appPersistenceUnitRef1-desc + + de-appPersistenceUnitRef1-desc + + appPersistenceUnitRef1Name + + appPersistenceUnitRef1Unit + + appPersistenceUnitRef1MappedName + + appPersistenceUnitRef1Injection1Class + + appPersistenceUnitRef1Injection1Name + + + + appPersistenceUnitRef1Injection2Class + + appPersistenceUnitRef1Injection2Name + + + + + en-appPersistenceUnitRef2-desc + fr-appPersistenceUnitRef2-desc + + de-appPersistenceUnitRef2-desc + + appPersistenceUnitRef2Name + + appPersistenceUnitRef2Unit + + appPersistenceUnitRef2MappedName + + appPersistenceUnitRef2Injection1Class + + appPersistenceUnitRef2Injection1Name + + + + appPersistenceUnitRef2Injection2Class + + appPersistenceUnitRef2Injection2Name + + + + + + en-messageDestination1-desc + fr-messageDestination1-desc + + de-messageDestination1-desc + + en-messageDestination1-disp + fr-messageDestination1-disp + + de-messageDestination1-disp + + + en-messageDestination1-small-icon + en-messageDestination1-large-icon + + + fr-messageDestination1-small-icon + fr-messageDestination1-large-icon + + + de-messageDestination1-small-icon + de-messageDestination1-large-icon + + messageDestination1Name + + messageDestination1MappedName + messageDestination1LookupName + + + en-messageDestination2-desc + fr-messageDestination2-desc + + de-messageDestination2-desc + + en-messageDestination2-disp + fr-messageDestination2-disp + + de-messageDestination2-disp + + + en-messageDestination2-small-icon + en-messageDestination2-large-icon + + + fr-messageDestination2-small-icon + fr-messageDestination2-large-icon + + + de-messageDestination2-small-icon + de-messageDestination2-large-icon + + messageDestination2Name + + messageDestination2MappedName + messageDestination2LookupName + + + + en-appDataSource1-desc + appDataSource1Name + appDataSource1ClassName + appDataSource1ServerName + 1 + appDataSource1DatabaseName + jdbc:appDataSource1:url + appDataSource1User + appDataSource1Password + + appDataSource1Property1Name + appDataSource1Property1Value + + + appDataSource1Property2Name + appDataSource1Property2Value + + 1 + false + TRANSACTION_READ_UNCOMMITTED + 1 + 1 + 1 + 1 + 1 + + + en-appDataSource2-desc + appDataSource2Name + appDataSource2ClassName + appDataSource2ServerName + 2 + appDataSource2DatabaseName + jdbc:appDataSource2:url + appDataSource2User + appDataSource2Password + + appDataSource2Property1Name + appDataSource2Property1Value + + + appDataSource2Property2Name + appDataSource2Property2Value + + 2 + true + TRANSACTION_READ_COMMITTED + 2 + 2 + 2 + 2 + 2 + + + + + appJmsConnectionFactory1Desc + appJmsConnectionFactory1Name + javax.jms.QueueConnectionFactory + appJmsConnectionFactory1ClassName + appJmsConnectionFactory1ResourceAdapter + + appJmsConnectionFactory1User + appJmsConnectionFactory1Password + appJmsConnectionFactory1ClientId + + appJmsConnectionFactory1Property1Name + appJmsConnectionFactory1Property1Value + + + appJmsConnectionFactory1Property2Name + appJmsConnectionFactory1Property2Value + + true + 1 + 1 + + + appJmsConnectionFactory2Desc + appJmsConnectionFactory2Name + javax.jms.TopicConnectionFactory + appJmsConnectionFactory2ClassName + appJmsConnectionFactory2ResourceAdapter + + appJmsConnectionFactory2User + appJmsConnectionFactory2Password + appJmsConnectionFactory2ClientId + + appJmsConnectionFactory2Property1Name + appJmsConnectionFactory2Property1Value + + + appJmsConnectionFactory2Property2Name + appJmsConnectionFactory2Property2Value + + false + 2 + 2 + + + appJmsConnectionFactory3Name + + + + appJmsDestination1Desc + appJmsDestination1Name + javax.jms.Queue + appJmsDestination1ClassName + appJmsDestination1ResourceAdapter + + appJmsDestination1DestinationName + + + appJmsDestination1Property1Name + appJmsDestination1Property1Value + + + appJmsDestination1Property2Name + appJmsDestination1Property2Value + + + + appJmsDestination2Desc + appJmsDestination2Name + javax.jms.Queue + appJmsDestination2ClassName + appJmsDestination2ResourceAdapter + + appJmsDestination2DestinationName + + + appJmsDestination2Property1Name + appJmsDestination2Property1Value + + + appJmsDestination2Property2Name + appJmsDestination2Property2Value + + + + appJmsDestination3Name + javax.jms.Topic + + + + appMailSession1Desc + appMailSession1Name + appMailSession1StoreProtocol + appMailSession1StoreProtocolClass + + appMailSession1TransportProtocol + + appMailSession1TransportProtocolClass + + appMailSession1Host + appMailSession1User + appMailSession1Password + appMailSession1From + + appMailSession1Property1Name + appMailSession1Property1Value + + + appMailSession1Property2Name + appMailSession1Property2Value + + + + appMailSession2Desc + appMailSession2Name + appMailSession2StoreProtocol + appMailSession2StoreProtocolClass + + appMailSession2TransportProtocol + + appMailSession2TransportProtocolClass + + appMailSession2Host + appMailSession2User + appMailSession2Password + appMailSession2From + + appMailSession2Property1Name + appMailSession2Property1Value + + + appMailSession2Property2Name + appMailSession2Property2Value + + + + appMailSession3Name + + + + appConnectionFactory1Desc + appConnectionFactory1Name + appConnectionFactory1InterfaceName + appConnectionFactory1ResourceAdapter + + 1 + 1 + NoTransaction + + appConnectionFactory1Property1Name + appConnectionFactory1Property1Value + + + appConnectionFactory1Property2Name + appConnectionFactory1Property2Value + + + + appConnectionFactory2Desc + appConnectionFactory2Name + appConnectionFactory2InterfaceName + appConnectionFactory2ResourceAdapter + + 2 + 2 + LocalTransaction + + appConnectionFactory2Property1Name + appConnectionFactory2Property1Value + + + appConnectionFactory2Property2Name + appConnectionFactory2Property2Value + + + + appConnectionFactory3Desc + appConnectionFactory3Name + appConnectionFactory3InterfaceName + appConnectionFactory3ResourceAdapter + + 3 + 3 + XATransaction + + appConnectionFactory3Property1Name + appConnectionFactory3Property1Value + + + appConnectionFactory3Property2Name + appConnectionFactory3Property2Value + + + + appConnectionFactory4Name + appConnectionFactory4InterfaceName + appConnectionFactory4ResourceAdapter + + + + + appAdministeredObject1Desc + appAdministeredObject1Name + appAdministeredObject1InterfaceName + + appAdministeredObject1ClassName + appAdministeredObject1ResourceAdapter + + + appAdministeredObject1Property1Name + appAdministeredObject1Property1Value + + + appAdministeredObject1Property2Name + appAdministeredObject1Property2Value + + + + appAdministeredObject2Desc + appAdministeredObject2Name + appAdministeredObject2InterfaceName + + appAdministeredObject2ClassName + appAdministeredObject2ResourceAdapter + + + appAdministeredObject2Property1Name + appAdministeredObject2Property1Value + + + appAdministeredObject2Property2Name + appAdministeredObject2Property2Value + + + + appAdministeredObject3Name + appAdministeredObject3ClassName + appAdministeredObject3ResourceAdapter + + + + + + appContextService1-desc + appContextService1-name + appContextService1Qualifier1 + appContextService1Qualifier2 + appContextService1-cleared + appContextService1-propagated + appContextService1-unchanged + + appContextService1Property1Name + appContextService1Property1Value + + + appContextService1Property2Name + appContextService1Property2Value + + + + appContextService2-desc + appContextService2-name + appContextService2Qualifier1 + appContextService2Qualifier2 + appContextService2-cleared + appContextService2-propagated + appContextService2-unchanged + + appContextService2Property1Name + appContextService2Property1Value + + + appContextService2Property2Name + appContextService2Property2Value + + + + appContextService3-name + + + + + appManagedExecutor1-desc + appManagedExecutor1-name + appManagedExecutor1-contextServiceRef + appManagedExecutor1Qualifier1 + appManagedExecutor1Qualifier2 + 1 + 1 + true + + appManagedExecutor1Property1Name + appManagedExecutor1Property1Value + + + appManagedExecutor1Property2Name + appManagedExecutor1Property2Value + + + + appManagedExecutor2-desc + appManagedExecutor2-name + appManagedExecutor2-contextServiceRef + appManagedExecutor2Qualifier1 + appManagedExecutor2Qualifier2 + 2 + 2 + false + + appManagedExecutor2Property1Name + appManagedExecutor2Property1Value + + + appManagedExecutor2Property2Name + appManagedExecutor2Property2Value + + + + appManagedExecutor3-name + + + + + appManagedScheduledExecutor1-desc + appManagedScheduledExecutor1-name + appManagedScheduledExecutor1-contextServiceRef + appManagedScheduledExecutor1Qualifier1 + appManagedScheduledExecutor1Qualifier2 + 1 + 1 + true + + appManagedScheduledExecutor1Property1Name + appManagedScheduledExecutor1Property1Value + + + appManagedScheduledExecutor1Property2Name + appManagedScheduledExecutor1Property2Value + + + + appManagedScheduledExecutor2-desc + appManagedScheduledExecutor2-name + appManagedScheduledExecutor2-contextServiceRef + appManagedScheduledExecutor2Qualifier1 + appManagedScheduledExecutor2Qualifier2 + 2 + 2 + false + + appManagedScheduledExecutor2Property1Name + appManagedScheduledExecutor2Property1Value + + + appManagedScheduledExecutor2Property2Name + appManagedScheduledExecutor2Property2Value + + + + appManagedScheduledExecutor3-name + + + + + appManagedThreadFactory1-desc + appManagedThreadFactory1-name + appManagedThreadFactory1-contextServiceRef + appManagedThreadFactory1Qualifier1 + appManagedThreadFactory1Qualifier2 + 1 + true + + appManagedThreadFactory1Property1Name + appManagedThreadFactory1Property1Value + + + appManagedThreadFactory1Property2Name + appManagedThreadFactory1Property2Value + + + + appManagedThreadFactory2-desc + appManagedThreadFactory2-name + appManagedThreadFactory2-contextServiceRef + appManagedThreadFactory2Qualifier1 + appManagedThreadFactory2Qualifier2 + 2 + false + + appManagedThreadFactory2Property1Name + appManagedThreadFactory2Property1Value + + + appManagedThreadFactory2Property2Name + appManagedThreadFactory2Property2Value + + + + appManagedThreadFactory3-name + + diff --git a/web/src/main/resources/schema/jsp_4_0.xsd b/web/src/main/resources/schema/jsp_4_0.xsd new file mode 100644 index 000000000..ef4460b30 --- /dev/null +++ b/web/src/main/resources/schema/jsp_4_0.xsd @@ -0,0 +1,378 @@ + + + + + + Copyright (c) 2009, 2021 Oracle and/or its affiliates. All rights reserved. + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License v. 2.0, which is available at + http://www.eclipse.org/legal/epl-2.0. + + This Source Code may also be made available under the following Secondary + Licenses when the conditions for such availability set forth in the + Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + version 2 with the GNU Classpath Exception, which is available at + https://www.gnu.org/software/classpath/license.html. + + SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + + + + + + + + This is the XML Schema for the JSP 4.0 deployment descriptor + types. The JSP 4.0 schema contains all the special + structures and datatypes that are necessary to use JSP files + from a web application. + + The contents of this schema is used by the web-common_6_1.xsd + file to define JSP specific content. + + + + + + + + The following conventions apply to all Jakarta EE + deployment descriptor elements unless indicated otherwise. + + - 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 jsp-configType is used to provide global configuration + information for the JSP files in a web application. It has + two subelements, taglib and jsp-property-group. + + + + + + + + + + + + + + + + + + The jsp-file element contains the full path to a JSP file + within the web application beginning with a `/'. + + + + + + + + + + + + + + + + The jsp-property-groupType is used to group a number of + files so they can be given global property information. + All files so described are deemed to be JSP files. The + following additional properties can be described: + + - Control whether EL is ignored. + - Control whether scripting elements are invalid. + - Indicate pageEncoding information. + - Indicate that a resource is a JSP document (XML). + - Prelude and Coda automatic includes. + - Control whether the character sequence #{ is allowed + when used as a String literal. + - Control whether template text containing only + whitespaces must be removed from the response output. + - Indicate the default contentType information. + - Indicate the default buffering model for JspWriter + - Control whether error should be raised for the use of + undeclared namespaces in a JSP page. + + + + + + + + + + + Can be used to easily set the isELIgnored + property of a group of JSP pages. By default, the + EL evaluation is enabled for Web Applications using + a Servlet 2.4 or greater web.xml, and disabled + otherwise. + + + + + + + + + Can be used to easily set the errorOnELNotFound + property of a group of JSP pages. By default, this + property is false. + + + + + + + + + The valid values of page-encoding are those of the + pageEncoding page directive. It is a + translation-time error to name different encodings + in the pageEncoding attribute of the page directive + of a JSP page and in a JSP configuration element + matching the page. It is also a translation-time + error to name different encodings in the prolog + or text declaration of a document in XML syntax and + in a JSP configuration element matching the document. + It is legal to name the same encoding through + mulitple mechanisms. + + + + + + + + + Can be used to easily disable scripting in a + group of JSP pages. By default, scripting is + enabled. + + + + + + + + + If true, denotes that the group of resources + that match the URL pattern are JSP documents, + and thus must be interpreted as XML documents. + If false, the resources are assumed to not + be JSP documents, unless there is another + property group that indicates otherwise. + + + + + + + + + The include-prelude element is a context-relative + path that must correspond to an element in the + Web Application. When the element is present, + the given path will be automatically included (as + in an include directive) at the beginning of each + JSP page in this jsp-property-group. + + + + + + + + + The include-coda element is a context-relative + path that must correspond to an element in the + Web Application. When the element is present, + the given path will be automatically included (as + in an include directive) at the end of each + JSP page in this jsp-property-group. + + + + + + + + + The character sequence #{ is reserved for EL expressions. + Consequently, a translation error occurs if the #{ + character sequence is used as a String literal, unless + this element is enabled (true). Disabled (false) by + default. + + + + + + + + + Indicates that template text containing only whitespaces + must be removed from the response output. It has no + effect on JSP documents (XML syntax). Disabled (false) + by default. + + + + + + + + + The valid values of default-content-type are those of the + contentType page directive. It specifies the default + response contentType if the page directive does not include + a contentType attribute. + + + + + + + + + The valid values of buffer are those of the + buffer page directive. It specifies if buffering should be + used for the output to response, and if so, the size of the + buffer to use. + + + + + + + + + The default behavior when a tag with unknown namespace is used + in a JSP page (regular syntax) is to silently ignore it. If + set to true, then an error must be raised during the translation + time when an undeclared tag is used in a JSP page. Disabled + (false) by default. + + + + + + + + + + + + + + + + The taglibType defines the syntax for declaring in + the deployment descriptor that a tag library is + available to the application. This can be done + to override implicit map entries from TLD files and + from the container. + + + + + + + + + A taglib-uri element describes a URI identifying a + tag library used in the web application. The body + of the taglib-uri element may be either an + absolute URI specification, or a relative URI. + There should be no entries in web.xml with the + same taglib-uri value. + + + + + + + + + the taglib-location element contains the location + (as a resource relative to the root of the web + application) where to find the Tag Library + Description file for the tag library. + + + + + + + + + diff --git a/web/src/main/resources/schema/web-app_6_1.xsd b/web/src/main/resources/schema/web-app_6_1.xsd new file mode 100644 index 000000000..5b8861d4e --- /dev/null +++ b/web/src/main/resources/schema/web-app_6_1.xsd @@ -0,0 +1,342 @@ + + + + + + Copyright (c) 2009, 2021 Oracle and/or its affiliates. All rights reserved. + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License v. 2.0, which is available at + http://www.eclipse.org/legal/epl-2.0. + + This Source Code may also be made available under the following Secondary + Licenses when the conditions for such availability set forth in the + Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + version 2 with the GNU Classpath Exception, which is available at + https://www.gnu.org/software/classpath/license.html. + + SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + + + + + + + + ... + + + The instance documents may indicate the published version of + the schema using the xsi:schemaLocation attribute for Jakarta EE + namespace with the following location: + + https://jakarta.ee/xml/ns/jakartaee/web-app_6_1.xsd + + ]]> + + + + + + + The following conventions apply to all Jakarta EE + deployment descriptor elements unless indicated otherwise. + + - In elements that specify a pathname to a file within the + same JAR file, relative filenames (i.e., those not + starting with "/") are considered relative to the root of + the JAR file's namespace. Absolute filenames (i.e., those + starting with "/") also specify names in the root of the + JAR file's namespace. In general, relative names are + preferred. The exception is .war files where absolute + names are preferred for consistency with the Servlet API. + + + + + + + + + + + + + + The web-app element is the root of the deployment + descriptor for a web application. Note that the sub-elements + of this element can be in the arbitrary order. Because of + that, the multiplicity of the elements of distributable, + session-config, welcome-file-list, jsp-config, login-config, + and locale-encoding-mapping-list was changed from "?" to "*" + in this schema. However, the deployment descriptor instance + file must not contain multiple elements of session-config, + jsp-config, and login-config. When there are multiple elements of + welcome-file-list or locale-encoding-mapping-list, the container + must concatenate the element contents. The multiple occurence + of the element distributable is redundant and the container + treats that case exactly in the same way when there is only + one distributable. + + + + + + + + The servlet element contains the name of a servlet. + The name must be unique within the web application. + + + + + + + + + + + The filter element contains the name of a filter. + The name must be unique within the web application. + + + + + + + + + + + The ejb-local-ref-name element contains the name of an + enterprise bean reference. The enterprise + bean reference is an entry in the web + application's environment and is relative to the + java:comp/env context. The name must be unique within + the web application. + + It is recommended that name is prefixed with "ejb/". + + + + + + + + + + + The ejb-ref-name element contains the name of an + enterprise bean reference. The enterprise bean + reference is an entry in the web application's environment + and is relative to the java:comp/env context. + The name must be unique within the web application. + + It is recommended that name is prefixed with "ejb/". + + + + + + + + + + + The resource-env-ref-name element specifies the name of + a resource environment reference; its value is the + environment entry name used in the web application code. + The name is a JNDI name relative to the java:comp/env + context and must be unique within a web application. + + + + + + + + + + + The message-destination-ref-name element specifies the name of + a message destination reference; its value is the + environment entry name used in the web application code. + The name is a JNDI name relative to the java:comp/env + context and must be unique within a web application. + + + + + + + + + + + The res-ref-name element specifies the name of a + resource manager connection factory reference. The name + is a JNDI name relative to the java:comp/env context. + The name must be unique within a web application. + + + + + + + + + + + The env-entry-name element contains the name of a web + application's environment entry. The name is a JNDI + name relative to the java:comp/env context. The name + must be unique within a web application. + + + + + + + + + + + A role-name-key is specified to allow the references + from the security-role-refs. + + + + + + + + + + + The keyref indicates the references from + security-role-ref to a specified role-name. + + + + + + + + + + + + + + + + + + + + When specified, this element provides a default context path + of the web application. An empty value for this element must cause + the web application to be deployed at the root for the container. + Otherwise, the default context path must start with + a "/" character but not end with a "/" character. + Servlet containers may provide vendor specific configuration + options that allows specifying a value that overrides the value + specified here. + + + + + + + + + When specified, this element provides a default request + character encoding of the web application. + + + + + + + + + When specified, this element provides a default response + character encoding of the web application. + + + + + + + + + When specified, this element causes uncovered http methods + to be denied. For every url-pattern that is the target of a + security-constrant, this element causes all HTTP methods that + are NOT covered (by a security constraint) at the url-pattern + to be denied. + + + + + + + + + + + + + + + + + Please see section 8.2.2 of the specification for details. + + + + + + + + + + diff --git a/web/src/main/resources/schema/web-common_6_1.xsd b/web/src/main/resources/schema/web-common_6_1.xsd new file mode 100644 index 000000000..de8ecef01 --- /dev/null +++ b/web/src/main/resources/schema/web-common_6_1.xsd @@ -0,0 +1,1507 @@ + + + + + + Copyright (c) 2009, 2021 Oracle and/or its affiliates. All rights reserved. + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License v. 2.0, which is available at + http://www.eclipse.org/legal/epl-2.0. + + This Source Code may also be made available under the following Secondary + Licenses when the conditions for such availability set forth in the + Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + version 2 with the GNU Classpath Exception, which is available at + https://www.gnu.org/software/classpath/license.html. + + SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + + + + + + + + ... + + + The instance documents may indicate the published version of + the schema using the xsi:schemaLocation attribute for Jakarta EE + namespace with the following location: + + https://jakarta.ee/xml/ns/jakartaee/web-common_6_1.xsd + + ]]> + + + + + + + The following conventions apply to all Jakarta EE + deployment descriptor elements unless indicated otherwise. + + - 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 context-param element contains the declaration + of a web application's servlet context + initialization parameters. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The metadata-complete attribute defines whether this + deployment descriptor and other related deployment + descriptors for this module (e.g., web service + descriptors) are complete, or whether the class + files available to this module and packaged with + this application should be examined for annotations + that specify deployment information. + + If metadata-complete is set to "true", the deployment + tool must ignore any annotations that specify deployment + information, which might be present in the class files + of the application. + + If metadata-complete is not specified or is set to + "false", the deployment tool must examine the class + files of the application for annotations, as + specified by the specifications. + + + + + + + + + + + + + + This type is a general type that can be used to declare + attribute/value lists. + + + + + + + + + + The attribute-name element contains the name of an + attribute. + + + + + + + + + The attribute-value element contains the value of a + attribute. + + + + + + + + + + + + + + + + The auth-constraintType indicates the user roles that + should be permitted access to this resource + collection. The role-name used here must either correspond + to the role-name of one of the security-role elements + defined for this web application, or be the specially + reserved role-name "*" that is a compact syntax for + indicating all roles in the web application. If both "*" + and rolenames appear, the container interprets this as all + roles. If no roles are defined, no user is allowed access + to the portion of the web application described by the + containing security-constraint. The container matches + role names case sensitively when determining access. + + + + + + + + + + + + + + + + + + The auth-methodType 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 are "BASIC", + "DIGEST", "FORM", "CLIENT-CERT", or a vendor-specific + authentication scheme. + + Used in: login-config + + + + + + + + + + + + + + + + The dispatcher has five legal values: FORWARD, REQUEST, + INCLUDE, ASYNC, and ERROR. + + A value of FORWARD means the Filter will be applied under + RequestDispatcher.forward() calls. + A value of REQUEST means the Filter will be applied under + ordinary client calls to the path or servlet. + A value of INCLUDE means the Filter will be applied under + RequestDispatcher.include() calls. + A value of ASYNC means the Filter will be applied under + calls dispatched from an AsyncContext. + A value of ERROR means the Filter will be applied under the + error page mechanism. + + The absence of any dispatcher elements in a filter-mapping + indicates a default of applying filters only under ordinary + client calls to the path or servlet. + + + + + + + + + + + + + + + + + + + + + + The error-code contains an HTTP error code, ex: 404 + + Used in: error-page + + + + + + + + + + + + + + + + + + + The error-pageType contains a mapping between an error code + or exception type to the path of a resource in the web + application. + + Error-page declarations using the exception-type element in + the deployment descriptor must be unique up to the class name of + the exception-type. Similarly, error-page declarations using the + error-code element must be unique in the deployment descriptor + up to the status code. + + If an error-page element in the deployment descriptor does not + contain an exception-type or an error-code element, the error + page is a default error page. + + Used in: web-app + + + + + + + + + + + The exception-type contains a fully qualified class + name of a Java exception type. + + + + + + + + + + The location element contains the location of the + resource in the web application relative to the root of + the web application. The value of the location must have + a leading `/'. + + + + + + + + + + + + + + + + The filterType is used to declare a filter in the web + application. The filter is mapped to either a servlet or a + URL pattern in the filter-mapping element, using the + filter-name value to reference. Filters can access the + initialization parameters declared in the deployment + descriptor at runtime via the FilterConfig interface. + + Used in: web-app + + + + + + + + + + + The fully qualified classname of the filter. + + + + + + + + + + The init-param element contains a name/value pair as + an initialization param of a servlet filter + + + + + + + + + + + + + + + + Declaration of the filter mappings in this web + application is done by using filter-mappingType. + The container uses the filter-mapping + declarations to decide which filters to apply to a request, + and in what order. The container matches the request URI to + a Servlet in the normal way. To determine which filters to + apply it matches filter-mapping declarations either on + servlet-name, or on url-pattern for each filter-mapping + element, depending on which style is used. The order in + which filters are invoked is the order in which + filter-mapping declarations that match a request URI for a + servlet appear in the list of filter-mapping elements.The + filter-name value must be the value of the filter-name + sub-elements of one of the filter declarations in the + deployment descriptor. + + + + + + + + + + + + + + + + + + + + + + This type defines a string which contains at least one + character. + + + + + + + + + + + + + + + + + + The logical name of the filter is declare + by using filter-nameType. This name is used to map the + filter. Each filter name is unique within the web + application. + + Used in: filter, filter-mapping + + + + + + + + + + + + + + + + The form-login-configType specifies the login and error + pages that should be used in form based login. If form based + authentication is not used, these elements are ignored. + + Used in: login-config + + + + + + + + + The form-login-page element defines the location in the web + app where the page that can be used for login can be + found. The path begins with a leading / and is interpreted + relative to the root of the WAR. + + + + + + + + + The form-error-page element defines the location in + the web app where the error page that is displayed + when login is not successful can be found. + The path begins with a leading / and is interpreted + relative to the root of the WAR. + + + + + + + + + + + + + A HTTP method type as defined in HTTP 1.1 section 2.2. + + + + + + + + + + + + + + + + + + + + + + + + + + The login-configType is used to configure the authentication + method that should be used, the realm name that should be + used for this application, and the attributes that are + needed by the form login mechanism. + + Used in: web-app + + + + + + + + + + The realm name element specifies the realm name to + use in HTTP Basic authorization. + + + + + + + + + + + + + + + + + The mime-mappingType defines a mapping between an extension + and a mime type. + + Used in: web-app + + + + + + + + The extension element contains a string describing an + extension. example: "txt" + + + + + + + + + + + + + + + + + The mime-typeType is used to indicate a defined mime type. + + Example: + "text/plain" + + Used in: mime-mapping + + + + + + + + + + + + + + + + + + The security-constraintType is used to associate + security constraints with one or more web resource + collections + + Used in: web-app + + + + + + + + + + + + + + + + + + + + The servletType is used to declare a servlet. + It contains the declarative data of a + servlet. If a jsp-file is specified and the load-on-startup + element is present, then the JSP should be precompiled and + loaded. + + Used in: web-app + + + + + + + + + + + + The servlet-class element contains the fully + qualified class name of the servlet. + + + + + + + + + + + + The load-on-startup element indicates that this + servlet should be loaded (instantiated and have + its init() called) on the startup of the web + application. The optional contents of these + element must be an integer indicating the order in + which the servlet should be loaded. If the value + is a negative integer, or the element is not + present, the container is free to load the servlet + whenever it chooses. If the value is a positive + integer or 0, the container must load and + initialize the servlet as the application is + deployed. The container must guarantee that + servlets marked with lower integers are loaded + before servlets marked with higher integers. The + container may choose the order of loading of + servlets with the same load-on-start-up value. + + + + + + + + + + + + + + + + + + + + + The servlet-mappingType defines a mapping between a + servlet and a url pattern. + + Used in: web-app + + + + + + + + + + + + + + + + + + The servlet-name element contains the canonical name of the + servlet. Each servlet name is unique within the web + application. + + + + + + + + + + + + + + + + The session-configType defines the session parameters + for this web application. + + Used in: web-app + + + + + + + + + The session-timeout element defines the default + session timeout interval for all sessions created + in this web application. The specified timeout + must be expressed in a whole number of minutes. + If the timeout is 0 or less, the container ensures + the default behaviour of sessions is never to time + out. If this element is not specified, the container + must set its default timeout period. + + + + + + + + + The cookie-config element defines the configuration of the + session tracking cookies created by this web application. + + + + + + + + + The tracking-mode element defines the tracking modes + for sessions created by this web application + + + + + + + + + + + + + + + + The cookie-configType defines the configuration for the + session tracking cookies of this web application. + + Used in: session-config + + + + + + + + + The name that will be assigned to any session tracking + cookies created by this web application. + The default is JSESSIONID + + + + + + + + + The domain name that will be assigned to any session tracking + cookies created by this web application. + + + + + + + + + The path that will be assigned to any session tracking + cookies created by this web application. + + + + + + + + + The comment that will be assigned to any session tracking + cookies created by this web application. + + + + + + + + + Specifies whether any session tracking cookies created + by this web application will be marked as HttpOnly + + + + + + + + + Specifies whether any session tracking cookies created + by this web application will be marked as secure. + When true, all session tracking cookies must be marked + as secure independent of the nature of the request that + initiated the corresponding session. + When false, the session cookie should only be marked secure + if the request that initiated the session was secure. + + + + + + + + + The lifetime (in seconds) that will be assigned to any + session tracking cookies created by this web application. + Default is -1 + + + + + + + + + The attribute-param element contains a name/value pair to + be added as an attribute to every session cookie. + + + + + + + + + + + + + + + + The name that will be assigned to any session tracking + cookies created by this web application. + The default is JSESSIONID + + Used in: cookie-config + + + + + + + + + + + + + + + + The domain name that will be assigned to any session tracking + cookies created by this web application. + + Used in: cookie-config + + + + + + + + + + + + + + + + The path that will be assigned to any session tracking + cookies created by this web application. + + Used in: cookie-config + + + + + + + + + + + + + + + + The comment that will be assigned to any session tracking + cookies created by this web application. + + Used in: cookie-config + + + + + + + + + + + + + + + + The tracking modes for sessions created by this web + application + + Used in: session-config + + + + + + + + + + + + + + + + + + + + The transport-guaranteeType specifies that the communication + between client and server should be NONE, INTEGRAL, or + CONFIDENTIAL. NONE means that the application does not + require any transport guarantees. A value of INTEGRAL means + that the application requires that the data sent between the + client and server be sent in such a way that it can't be + changed in transit. CONFIDENTIAL means that the application + requires that the data be transmitted in a fashion that + prevents other entities from observing the contents of the + transmission. In most cases, the presence of the INTEGRAL or + CONFIDENTIAL flag will indicate that the use of SSL is + required. + + Used in: user-data-constraint + + + + + + + + + + + + + + + + + + + + The user-data-constraintType is used to indicate how + data communicated between the client and container should be + protected. + + Used in: security-constraint + + + + + + + + + + + + + + + + + + The elements that use this type designate a path starting + with a "/" and interpreted relative to the root of a WAR + file. + + + + + + + + + + + + + + + This type contains the recognized versions of + web-application supported. It is used to designate the + version of the web application. + + + + + + + + + + + + + + + + The web-resource-collectionType is used to identify the + resources and HTTP methods on those resources to which a + security constraint applies. If no HTTP methods are specified, + then the security constraint applies to all HTTP methods. + If HTTP methods are specified by http-method-omission + elements, the security constraint applies to all methods + except those identified in the collection. + http-method-omission and http-method elements are never + mixed in the same collection. + + Used in: security-constraint + + + + + + + + + The web-resource-name contains the name of this web + resource collection. + + + + + + + + + + + + Each http-method names an HTTP method to which the + constraint applies. + + + + + + + + + Each http-method-omission names an HTTP method to + which the constraint does not apply. + + + + + + + + + + + + + + + + + The welcome-file-list contains an ordered list of welcome + files elements. + + Used in: web-app + + + + + + + + + The welcome-file element contains file name to use + as a default welcome file, such as index.html + + + + + + + + + + + + + The localeType defines valid locale defined by ISO-639-1 + and ISO-3166. + + + + + + + + + + + + + The encodingType defines IANA character sets. + + + + + + + + + + + + + + + + The locale-encoding-mapping-list contains one or more + locale-encoding-mapping(s). + + + + + + + + + + + + + + + + + The locale-encoding-mapping contains locale name and + encoding name. The locale name must be either "Language-code", + such as "ja", defined by ISO-639 or "Language-code_Country-code", + such as "ja_JP". "Country code" is defined by ISO-3166. + + + + + + + + + + + + + + + + + + This element indicates that the ordering sub-element in which + it was placed should take special action regarding the ordering + of this application resource relative to other application + configuration resources. + See section 8.2.2 of the specification for details. + + + + + + + + + + + + + + This element specifies configuration information related to the + handling of multipart/form-data requests. + + + + + + + + + The directory location where uploaded files will be stored + + + + + + + + + The maximum size limit of uploaded files in bytes + + + + + + + + + The maximum size limit of multipart/form-data requests in bytes + + + + + + + + + The size threshold (in bytes) after which an uploaded file will be + written to disk + + + + + + + + diff --git a/web/src/main/resources/schema/web-fragment_6_1.xsd b/web/src/main/resources/schema/web-fragment_6_1.xsd new file mode 100644 index 000000000..633b1d69f --- /dev/null +++ b/web/src/main/resources/schema/web-fragment_6_1.xsd @@ -0,0 +1,316 @@ + + + + + + Copyright (c) 2009, 2021 Oracle and/or its affiliates. All rights reserved. + + This program and the accompanying materials are made available under the + terms of the Eclipse Public License v. 2.0, which is available at + http://www.eclipse.org/legal/epl-2.0. + + This Source Code may also be made available under the following Secondary + Licenses when the conditions for such availability set forth in the + Eclipse Public License v. 2.0 are satisfied: GNU General Public License, + version 2 with the GNU Classpath Exception, which is available at + https://www.gnu.org/software/classpath/license.html. + + SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 + + + + + + + + ... + + + The instance documents may indicate the published version of + the schema using the xsi:schemaLocation attribute for Jakarta EE + namespace with the following location: + + https://jakarta.ee/xml/ns/jakartaee/web-fragment_6_1.xsd + + ]]> + + + + + + + The following conventions apply to all Jakarta EE + deployment descriptor elements unless indicated otherwise. + + - In elements that specify a pathname to a file within the + same JAR file, relative filenames (i.e., those not + starting with "/") are considered relative to the root of + the JAR file's namespace. Absolute filenames (i.e., those + starting with "/") also specify names in the root of the + JAR file's namespace. In general, relative names are + preferred. The exception is .war files where absolute + names are preferred for consistency with the Servlet API. + + + + + + + + + + + + + + The web-fragment element is the root of the deployment + descriptor for a web fragment. Note that the sub-elements + of this element can be in the arbitrary order. Because of + that, the multiplicity of the elements of distributable, + session-config, welcome-file-list, jsp-config, login-config, + and locale-encoding-mapping-list was changed from "?" to "*" + in this schema. However, the deployment descriptor instance + file must not contain multiple elements of session-config, + jsp-config, and login-config. When there are multiple elements of + welcome-file-list or locale-encoding-mapping-list, the container + must concatenate the element contents. The multiple occurence + of the element distributable is redundant and the container + treats that case exactly in the same way when there is only + one distributable. + + + + + + + + The servlet element contains the name of a servlet. + The name must be unique within the web application. + + + + + + + + + + + The filter element contains the name of a filter. + The name must be unique within the web application. + + + + + + + + + + + The ejb-local-ref-name element contains the name of an + enterprise bean reference. The enterprise bean reference + is an entry in the web application's environment and is relative + to the java:comp/env context. The name must be unique within + the web application. + + It is recommended that name is prefixed with "ejb/". + + + + + + + + + + + The ejb-ref-name element contains the name of an + enterprise bean reference. The enterprise bean reference + is an entry in the web application's environment and is relative + to the java:comp/env context. The name must be unique within + the web application. + + It is recommended that name is prefixed with "ejb/". + + + + + + + + + + + The resource-env-ref-name element specifies the name of + a resource environment reference; its value is the + environment entry name used in the web application code. + The name is a JNDI name relative to the java:comp/env + context and must be unique within a web application. + + + + + + + + + + + The message-destination-ref-name element specifies the name of + a message destination reference; its value is the + environment entry name used in the web application code. + The name is a JNDI name relative to the java:comp/env + context and must be unique within a web application. + + + + + + + + + + + The res-ref-name element specifies the name of a + resource manager connection factory reference. The name + is a JNDI name relative to the java:comp/env context. + The name must be unique within a web application. + + + + + + + + + + + The env-entry-name element contains the name of a web + application's environment entry. The name is a JNDI + name relative to the java:comp/env context. The name + must be unique within a web application. + + + + + + + + + + + A role-name-key is specified to allow the references + from the security-role-refs. + + + + + + + + + + + The keyref indicates the references from + security-role-ref to a specified role-name. + + + + + + + + + + + + + + + + + + + + + + + + + + + + Please see section 8.2.2 of the specification for details. + + + + + + + + + + + + + + + + + This element contains a sequence of "name" elements, each of + which + refers to an application configuration resource by the "name" + declared on its web.xml fragment. This element can also contain + a single "others" element which specifies that this document + comes + before or after other documents within the application. + See section 8.2.2 of the specification for details. + + + + + + + + + + diff --git a/web/src/test/resources/org/jboss/test/metadata/web/WebApp11Everything_testEverything.xml b/web/src/test/resources/org/jboss/test/metadata/web/WebApp11Everything_testEverything.xml new file mode 100644 index 000000000..4b1f385dc --- /dev/null +++ b/web/src/test/resources/org/jboss/test/metadata/web/WebApp11Everything_testEverything.xml @@ -0,0 +1,1283 @@ + + + + + + foo + + + foo1 + foo2 + + foo3 + + + + en-web-app-desc + fr-web-app-desc + de-web-app-desc + en-web-app-disp + fr-web-app-disp + de-web-app-disp + + en-web-app-small-icon + en-web-app-large-icon + + + en-web-app-small-icon + en-web-app-large-icon + + + fr-web-app-small-icon + fr-web-app-large-icon + + + de-web-app-small-icon + de-web-app-large-icon + + + + + + context-param0-description + context-param0-name + context-param0-value + + + + filter0-description + filter0-display-name + + filter0-small-icon + filter0-large-icon + + filter0Name + filter0Class + + + filter1-description + filter1-display-name + + filter1-small-icon + filter1-large-icon + + filter1Name + filter1Class + true + + + filter0Name + /filter0/* + /* + FORWARD + REQUEST + + + filter1Name + servlet0 + servlet1 + FORWARD + REQUEST + + + + listener0-description + listener0-dipslay-name + + listener0-small-icon + listener0-icon + + + listener0.class + + + + + servlet0-name + + servlet0.class + + + init-param0-name + init-param0-value + + + init-param1-name + init-param1-value + + 1 + + run-as-role0 + + + servlet0-role-ref + role0 + + + + servlet1-name + servlet1.class + + init-param0-name + init-param0-value + + + init-param1-name + init-param1-value + + 1 + false + true + + run-as-role1 + + + servlet1-role-ref + role1 + + + + servlet0-name + /servlet0/* + + + servlet0-name + /servlet0/*.s + /servlet0/*.sx + + + servlet1-name + /servlet1/* + + + servlet1-name + /servlet1/*.s + /servlet1/*.sx + + + + -1 + + session + .jboss.org + / + Test + true + true + 10 + + SameSite + None + + + foo + bar + + + COOKIE + + + + ext0 + x/type0 + + + ext1 + x/type1 + + + + index.html + *.welcome + + + + 404 + /error-page0 + + + java.lang.Throwable + /error-page1 + + + + + jsp-config0 + /WEB-INF/tlds/jsp-config0.tld + + + Property group for common configuration for all the JSP's + *.jsp + *.jspx + false + false + ISO-8859-1 + false + false + /common-jsps/prelude.jsp + /common-jsps/coda.jsp + true + true + text/plain + 1024 + true + + + + + security-constraint0-display-name + + web-resource0-name + /resource0/* + + + web-resource1-name + /resource1/* + + + + role0 + + + NONE + + + + security-constraint-excluded-name + + web-resource-excluded-name + /resource-excluded/* + + + + + security-constraint-unchecked-name + + web-resource-unchecked-name + /resource-unchecked/* + + + + + FORM + + /login.jsp + /login-error.jsp + + + + + role0 + + + role1 + + + + en-webAppEnvEntry1-desc + fr-webAppEnvEntry1-desc + + de-webAppEnvEntry1-desc + + webAppEnvEntry1Name + java.lang.String + webAppEnvEntry1Value + webAppEnvEntry1MappedName + + webAppEnvEntry1Injection1Class + + webAppEnvEntry1Injection1Name + + + + webAppEnvEntry1Injection2Class + + webAppEnvEntry1Injection2Name + + + + + en-webAppEnvEntry2-desc + fr-webAppEnvEntry2-desc + + de-webAppEnvEntry2-desc + + webAppEnvEntry2Name + java.lang.String + webAppEnvEntry2Value + webAppEnvEntry2MappedName + + webAppEnvEntry2Injection1Class + + webAppEnvEntry2Injection1Name + + + + webAppEnvEntry2Injection2Class + + webAppEnvEntry2Injection2Name + + + + + en-webAppEjbRef1-desc + fr-webAppEjbRef1-desc + de-webAppEjbRef1-desc + webAppEjbRef1Name + Session + webAppEjbRef1Home + webAppEjbRef1Remote + webAppEjbRef1EjbLink + webAppEjbRef1MappedName + + webAppEjbRef1Injection1Class + + webAppEjbRef1Injection1Name + + + + webAppEjbRef1Injection2Class + + webAppEjbRef1Injection2Name + + + + + en-webAppEjbRef2-desc + fr-webAppEjbRef2-desc + de-webAppEjbRef2-desc + webAppEjbRef2Name + Entity + webAppEjbRef2Home + webAppEjbRef2Remote + webAppEjbRef2EjbLink + webAppEjbRef2MappedName + + webAppEjbRef2Injection1Class + + webAppEjbRef2Injection1Name + + + + webAppEjbRef2Injection2Class + + webAppEjbRef2Injection2Name + + + + + en-webAppEjbLocalRef1-desc + fr-webAppEjbLocalRef1-desc + + de-webAppEjbLocalRef1-desc + + webAppEjbLocalRef1Name + Session + webAppEjbLocalRef1LocalHome + webAppEjbLocalRef1Local + webAppEjbLocalRef1EjbLink + webAppEjbLocalRef1MappedName + + webAppEjbLocalRef1Injection1Class + + webAppEjbLocalRef1Injection1Name + + + + webAppEjbLocalRef1Injection2Class + + webAppEjbLocalRef1Injection2Name + + + + + en-webAppEjbLocalRef2-desc + fr-webAppEjbLocalRef2-desc + + de-webAppEjbLocalRef2-desc + + webAppEjbLocalRef2Name + Entity + webAppEjbLocalRef2LocalHome + webAppEjbLocalRef2Local + webAppEjbLocalRef2EjbLink + webAppEjbLocalRef2MappedName + + webAppEjbLocalRef2Injection1Class + + webAppEjbLocalRef2Injection1Name + + + + webAppEjbLocalRef2Injection2Class + + webAppEjbLocalRef2Injection2Name + + + + + + + + en-webAppServiceRef1-desc + fr-webAppServiceRef1-desc + + de-webAppServiceRef1-desc + + webAppServiceRef1Name + webAppServiceRef1Iface + + + en-webAppServiceRef2-desc + fr-webAppServiceRef2-desc + + de-webAppServiceRef2-desc + + webAppServiceRef2Name + webAppServiceRef2Iface + + + + en-webAppResourceRef1-desc + fr-webAppResourceRef1-desc + + de-webAppResourceRef1-desc + + webAppResourceRef1Name + webAppResourceRef1Type + Application + Shareable + webAppResourceRef1MappedName + + webAppResourceRef1Injection1Class + + webAppResourceRef1Injection1Name + + + + webAppResourceRef1Injection2Class + + webAppResourceRef1Injection2Name + + + + + en-webAppResourceRef2-desc + fr-webAppResourceRef2-desc + + de-webAppResourceRef2-desc + + webAppResourceRef2Name + webAppResourceRef2Type + Container + Unshareable + webAppResourceRef2MappedName + + webAppResourceRef2Injection1Class + + webAppResourceRef2Injection1Name + + + + webAppResourceRef2Injection2Class + + webAppResourceRef2Injection2Name + + + + + en-webAppResourceEnvRef1-desc + fr-webAppResourceEnvRef1-desc + + de-webAppResourceEnvRef1-desc + + webAppResourceEnvRef1Name + + webAppResourceEnvRef1Type + + webAppResourceEnvRef1MappedName + + webAppResourceEnvRef1Injection1Class + + webAppResourceEnvRef1Injection1Name + + + + webAppResourceEnvRef1Injection2Class + + webAppResourceEnvRef1Injection2Name + + + + + en-webAppResourceEnvRef2-desc + fr-webAppResourceEnvRef2-desc + + de-webAppResourceEnvRef2-desc + + webAppResourceEnvRef2Name + + webAppResourceEnvRef2Type + + webAppResourceEnvRef2MappedName + + webAppResourceEnvRef2Injection1Class + + webAppResourceEnvRef2Injection1Name + + + + webAppResourceEnvRef2Injection2Class + + webAppResourceEnvRef2Injection2Name + + + + + en-webAppMessageDestinationRef1-desc + fr-webAppMessageDestinationRef1-desc + + de-webAppMessageDestinationRef1-desc + + webAppMessageDestinationRef1Name + + webAppMessageDestinationRef1Type + + Consumes + webAppMessageDestinationRef1Link + + webAppMessageDestinationRef1MappedName + + webAppMessageDestinationRef1Injection1Class + + webAppMessageDestinationRef1Injection1Name + + + + webAppMessageDestinationRef1Injection2Class + + webAppMessageDestinationRef1Injection2Name + + + + + en-webAppMessageDestinationRef2-desc + fr-webAppMessageDestinationRef2-desc + + de-webAppMessageDestinationRef2-desc + + webAppMessageDestinationRef2Name + + webAppMessageDestinationRef2Type + + Produces + webAppMessageDestinationRef2Link + + webAppMessageDestinationRef2MappedName + + webAppMessageDestinationRef2Injection1Class + + webAppMessageDestinationRef2Injection1Name + + + + webAppMessageDestinationRef2Injection2Class + + webAppMessageDestinationRef2Injection2Name + + + + + en-webAppMessageDestinationRef3-desc + fr-webAppMessageDestinationRef3-desc + + de-webAppMessageDestinationRef3-desc + + webAppMessageDestinationRef3Name + + webAppMessageDestinationRef3Type + + ConsumesProduces + + webAppMessageDestinationRef3Link + + webAppMessageDestinationRef3MappedName + + webAppMessageDestinationRef3Injection1Class + + webAppMessageDestinationRef3Injection1Name + + + + webAppMessageDestinationRef3Injection2Class + + webAppMessageDestinationRef3Injection2Name + + + + + en-webAppPersistenceContextRef1-desc + fr-webAppPersistenceContextRef1-desc + + de-webAppPersistenceContextRef1-desc + + webAppPersistenceContextRef1Name + + webAppPersistenceContextRef1Unit + + Transaction + + webAppPersistenceContextRef1Property1Name + webAppPersistenceContextRef1Property1Value + + + webAppPersistenceContextRef1Property2Name + webAppPersistenceContextRef1Property2Value + + webAppPersistenceContextRef1MappedName + + webAppPersistenceContextRef1Injection1Class + + webAppPersistenceContextRef1Injection1Name + + + + webAppPersistenceContextRef1Injection2Class + + webAppPersistenceContextRef1Injection2Name + + + + + en-webAppPersistenceContextRef2-desc + fr-webAppPersistenceContextRef2-desc + + de-webAppPersistenceContextRef2-desc + + webAppPersistenceContextRef2Name + + webAppPersistenceContextRef2Unit + + Extended + Unsynchronized + + + webAppPersistenceContextRef2Property1Name + webAppPersistenceContextRef2Property1Value + + + webAppPersistenceContextRef2Property2Name + webAppPersistenceContextRef2Property2Value + + webAppPersistenceContextRef2MappedName + + webAppPersistenceContextRef2Injection1Class + + webAppPersistenceContextRef2Injection1Name + + + + webAppPersistenceContextRef2Injection2Class + + webAppPersistenceContextRef2Injection2Name + + + + + en-webAppPersistenceUnitRef1-desc + fr-webAppPersistenceUnitRef1-desc + + de-webAppPersistenceUnitRef1-desc + + webAppPersistenceUnitRef1Name + + webAppPersistenceUnitRef1Unit + + webAppPersistenceUnitRef1MappedName + + webAppPersistenceUnitRef1Injection1Class + + webAppPersistenceUnitRef1Injection1Name + + + + webAppPersistenceUnitRef1Injection2Class + + webAppPersistenceUnitRef1Injection2Name + + + + + en-webAppPersistenceUnitRef2-desc + fr-webAppPersistenceUnitRef2-desc + + de-webAppPersistenceUnitRef2-desc + + webAppPersistenceUnitRef2Name + + webAppPersistenceUnitRef2Unit + + webAppPersistenceUnitRef2MappedName + + webAppPersistenceUnitRef2Injection1Class + + webAppPersistenceUnitRef2Injection1Name + + + + webAppPersistenceUnitRef2Injection2Class + + webAppPersistenceUnitRef2Injection2Name + + + + + webAppPostConstruct1Class + + webAppPostConstruct1Method + + + + webAppPostConstruct2Class + + webAppPostConstruct2Method + + + + webAppPreDestroy1Class + + webAppPreDestroy1Method + + + + webAppPreDestroy2Class + + webAppPreDestroy2Method + + + + + en-webAppDataSource1-desc + webAppDataSource1Name + webAppDataSource1ClassName + webAppDataSource1ServerName + 1 + webAppDataSource1DatabaseName + jdbc:webAppDataSource1:url + webAppDataSource1User + webAppDataSource1Password + + webAppDataSource1Property1Name + webAppDataSource1Property1Value + + + webAppDataSource1Property2Name + webAppDataSource1Property2Value + + 1 + false + TRANSACTION_READ_UNCOMMITTED + 1 + 1 + 1 + 1 + 1 + + + en-webAppDataSource2-desc + webAppDataSource2Name + webAppDataSource2ClassName + webAppDataSource2ServerName + 2 + webAppDataSource2DatabaseName + jdbc:webAppDataSource2:url + webAppDataSource2User + webAppDataSource2Password + + webAppDataSource2Property1Name + webAppDataSource2Property1Value + + + webAppDataSource2Property2Name + webAppDataSource2Property2Value + + 2 + true + TRANSACTION_READ_COMMITTED + 2 + 2 + 2 + 2 + 2 + + + + webAppJmsConnectionFactory1Desc + webAppJmsConnectionFactory1Name + javax.jms.QueueConnectionFactory + webAppJmsConnectionFactory1ClassName + webAppJmsConnectionFactory1ResourceAdapter + + webAppJmsConnectionFactory1User + webAppJmsConnectionFactory1Password + webAppJmsConnectionFactory1ClientId + + webAppJmsConnectionFactory1Property1Name + webAppJmsConnectionFactory1Property1Value + + + webAppJmsConnectionFactory1Property2Name + webAppJmsConnectionFactory1Property2Value + + true + 1 + 1 + + + webAppJmsConnectionFactory2Desc + webAppJmsConnectionFactory2Name + javax.jms.TopicConnectionFactory + webAppJmsConnectionFactory2ClassName + webAppJmsConnectionFactory2ResourceAdapter + + webAppJmsConnectionFactory2User + webAppJmsConnectionFactory2Password + webAppJmsConnectionFactory2ClientId + + webAppJmsConnectionFactory2Property1Name + webAppJmsConnectionFactory2Property1Value + + + webAppJmsConnectionFactory2Property2Name + webAppJmsConnectionFactory2Property2Value + + false + 2 + 2 + + + webAppJmsConnectionFactory3Name + + + + webAppJmsDestination1Desc + webAppJmsDestination1Name + javax.jms.Queue + webAppJmsDestination1ClassName + webAppJmsDestination1ResourceAdapter + + webAppJmsDestination1DestinationName + + + webAppJmsDestination1Property1Name + webAppJmsDestination1Property1Value + + + webAppJmsDestination1Property2Name + webAppJmsDestination1Property2Value + + + + webAppJmsDestination2Desc + webAppJmsDestination2Name + javax.jms.Queue + webAppJmsDestination2ClassName + webAppJmsDestination2ResourceAdapter + + webAppJmsDestination2DestinationName + + + webAppJmsDestination2Property1Name + webAppJmsDestination2Property1Value + + + webAppJmsDestination2Property2Name + webAppJmsDestination2Property2Value + + + + webAppJmsDestination3Name + javax.jms.Topic + + + + webAppMailSession1Desc + webAppMailSession1Name + webAppMailSession1StoreProtocol + webAppMailSession1StoreProtocolClass + + webAppMailSession1TransportProtocol + + webAppMailSession1TransportProtocolClass + + webAppMailSession1Host + webAppMailSession1User + webAppMailSession1Password + webAppMailSession1From + + webAppMailSession1Property1Name + webAppMailSession1Property1Value + + + webAppMailSession1Property2Name + webAppMailSession1Property2Value + + + + webAppMailSession2Desc + webAppMailSession2Name + webAppMailSession2StoreProtocol + webAppMailSession2StoreProtocolClass + + webAppMailSession2TransportProtocol + + webAppMailSession2TransportProtocolClass + + webAppMailSession2Host + webAppMailSession2User + webAppMailSession2Password + webAppMailSession2From + + webAppMailSession2Property1Name + webAppMailSession2Property1Value + + + webAppMailSession2Property2Name + webAppMailSession2Property2Value + + + + webAppMailSession3Name + + + + webAppConnectionFactory1Desc + webAppConnectionFactory1Name + webAppConnectionFactory1InterfaceName + webAppConnectionFactory1ResourceAdapter + + 1 + 1 + NoTransaction + + webAppConnectionFactory1Property1Name + webAppConnectionFactory1Property1Value + + + webAppConnectionFactory1Property2Name + webAppConnectionFactory1Property2Value + + + + webAppConnectionFactory2Desc + webAppConnectionFactory2Name + webAppConnectionFactory2InterfaceName + webAppConnectionFactory2ResourceAdapter + + 2 + 2 + LocalTransaction + + webAppConnectionFactory2Property1Name + webAppConnectionFactory2Property1Value + + + webAppConnectionFactory2Property2Name + webAppConnectionFactory2Property2Value + + + + webAppConnectionFactory3Desc + webAppConnectionFactory3Name + webAppConnectionFactory3InterfaceName + webAppConnectionFactory3ResourceAdapter + + 3 + 3 + XATransaction + + webAppConnectionFactory3Property1Name + webAppConnectionFactory3Property1Value + + + webAppConnectionFactory3Property2Name + webAppConnectionFactory3Property2Value + + + + webAppConnectionFactory4Name + webAppConnectionFactory4InterfaceName + webAppConnectionFactory4ResourceAdapter + + + + + webAppAdministeredObject1Desc + webAppAdministeredObject1Name + webAppAdministeredObject1InterfaceName + + webAppAdministeredObject1ClassName + webAppAdministeredObject1ResourceAdapter + + + webAppAdministeredObject1Property1Name + webAppAdministeredObject1Property1Value + + + webAppAdministeredObject1Property2Name + webAppAdministeredObject1Property2Value + + + + webAppAdministeredObject2Desc + webAppAdministeredObject2Name + webAppAdministeredObject2InterfaceName + + webAppAdministeredObject2ClassName + webAppAdministeredObject2ResourceAdapter + + + webAppAdministeredObject2Property1Name + webAppAdministeredObject2Property1Value + + + webAppAdministeredObject2Property2Name + webAppAdministeredObject2Property2Value + + + + webAppAdministeredObject3Name + webAppAdministeredObject3ClassName + webAppAdministeredObject3ResourceAdapter + + + + + + en-messageDestination1-desc + fr-messageDestination1-desc + + de-messageDestination1-desc + + en-messageDestination1-disp + fr-messageDestination1-disp + + de-messageDestination1-disp + + + en-messageDestination1-small-icon + en-messageDestination1-large-icon + + + fr-messageDestination1-small-icon + fr-messageDestination1-large-icon + + + de-messageDestination1-small-icon + de-messageDestination1-large-icon + + messageDestination1Name + + messageDestination1MappedName + messageDestination1LookupName + + + en-messageDestination2-desc + fr-messageDestination2-desc + + de-messageDestination2-desc + + en-messageDestination2-disp + fr-messageDestination2-disp + + de-messageDestination2-disp + + + en-messageDestination2-small-icon + en-messageDestination2-large-icon + + + fr-messageDestination2-small-icon + fr-messageDestination2-large-icon + + + de-messageDestination2-small-icon + de-messageDestination2-large-icon + + messageDestination2Name + + messageDestination2MappedName + messageDestination2LookupName + + + + + en + en + + + + + + webAppContextService1-desc + webAppContextService1-name + webAppContextService1Qualifier1 + webAppContextService1Qualifier2 + webAppContextService1-cleared + webAppContextService1-propagated + webAppContextService1-unchanged + + webAppContextService1Property1Name + webAppContextService1Property1Value + + + webAppContextService1Property2Name + webAppContextService1Property2Value + + + + webAppContextService2-desc + webAppContextService2-name + webAppContextService2Qualifier1 + webAppContextService2Qualifier2 + webAppContextService2-cleared + webAppContextService2-propagated + webAppContextService2-unchanged + + webAppContextService2Property1Name + webAppContextService2Property1Value + + + webAppContextService2Property2Name + webAppContextService2Property2Value + + + + webAppContextService3-name + + + + + webAppManagedExecutor1-desc + webAppManagedExecutor1-name + webAppManagedExecutor1-contextServiceRef + webAppManagedExecutor1Qualifier1 + webAppManagedExecutor1Qualifier2 + 1 + 1 + true + + webAppManagedExecutor1Property1Name + webAppManagedExecutor1Property1Value + + + webAppManagedExecutor1Property2Name + webAppManagedExecutor1Property2Value + + + + webAppManagedExecutor2-desc + webAppManagedExecutor2-name + webAppManagedExecutor2-contextServiceRef + webAppManagedExecutor2Qualifier1 + webAppManagedExecutor2Qualifier2 + 2 + 2 + false + + webAppManagedExecutor2Property1Name + webAppManagedExecutor2Property1Value + + + webAppManagedExecutor2Property2Name + webAppManagedExecutor2Property2Value + + + + webAppManagedExecutor3-name + + + + + webAppManagedScheduledExecutor1-desc + webAppManagedScheduledExecutor1-name + webAppManagedScheduledExecutor1-contextServiceRef + webAppManagedScheduledExecutor1Qualifier1 + webAppManagedScheduledExecutor1Qualifier2 + 1 + 1 + true + + webAppManagedScheduledExecutor1Property1Name + webAppManagedScheduledExecutor1Property1Value + + + webAppManagedScheduledExecutor1Property2Name + webAppManagedScheduledExecutor1Property2Value + + + + webAppManagedScheduledExecutor2-desc + webAppManagedScheduledExecutor2-name + webAppManagedScheduledExecutor2-contextServiceRef + webAppManagedScheduledExecutor2Qualifier1 + webAppManagedScheduledExecutor2Qualifier2 + 2 + 2 + false + + webAppManagedScheduledExecutor2Property1Name + webAppManagedScheduledExecutor2Property1Value + + + webAppManagedScheduledExecutor2Property2Name + webAppManagedScheduledExecutor2Property2Value + + + + webAppManagedScheduledExecutor3-name + + + + + webAppManagedThreadFactory1-desc + webAppManagedThreadFactory1-name + webAppManagedThreadFactory1-contextServiceRef + webAppManagedThreadFactory1Qualifier1 + webAppManagedThreadFactory1Qualifier2 + 1 + true + + webAppManagedThreadFactory1Property1Name + webAppManagedThreadFactory1Property1Value + + + webAppManagedThreadFactory1Property2Name + webAppManagedThreadFactory1Property2Value + + + + webAppManagedThreadFactory2-desc + webAppManagedThreadFactory2-name + webAppManagedThreadFactory2-contextServiceRef + webAppManagedThreadFactory2Qualifier1 + webAppManagedThreadFactory2Qualifier2 + 2 + false + + webAppManagedThreadFactory2Property1Name + webAppManagedThreadFactory2Property1Value + + + webAppManagedThreadFactory2Property2Name + webAppManagedThreadFactory2Property2Value + + + + webAppManagedThreadFactory3-name + + diff --git a/web/src/test/resources/org/jboss/test/metadata/web/WebApp11Fragment_testEverything.xml b/web/src/test/resources/org/jboss/test/metadata/web/WebApp11Fragment_testEverything.xml new file mode 100644 index 000000000..ce1a10af0 --- /dev/null +++ b/web/src/test/resources/org/jboss/test/metadata/web/WebApp11Fragment_testEverything.xml @@ -0,0 +1,1264 @@ + + + + + + + + foo4 + + + foo1 + foo2 + foo3 + + + + + + en-web-app-desc + fr-web-app-desc + de-web-app-desc + en-web-app-disp + fr-web-app-disp + de-web-app-disp + + en-web-app-small-icon + en-web-app-large-icon + + + en-web-app-small-icon + en-web-app-large-icon + + + fr-web-app-small-icon + fr-web-app-large-icon + + + de-web-app-small-icon + de-web-app-large-icon + + + + + + context-param0-description + context-param0-name + context-param0-value + + + + filter0-description + filter0-display-name + + filter0-small-icon + filter0-large-icon + + filter0Name + filter0Class + + + filter1-description + filter1-display-name + + filter1-small-icon + filter1-large-icon + + filter1Name + filter1Class + + + filter0Name + /filter0/* + /* + FORWARD + REQUEST + + + filter1Name + servlet0 + servlet1 + FORWARD + REQUEST + + + + listener0-description + listener0-dipslay-name + + listener0-small-icon + listener0-icon + + + listener0.class + + + + + servlet0-name + + servlet0.class + + + init-param0-name + init-param0-value + + + init-param1-name + init-param1-value + + 1 + + run-as-role0 + + + servlet0-role-ref + role0 + + + + servlet1-name + servlet1.class + + init-param0-name + init-param0-value + + + init-param1-name + init-param1-value + + 1 + + run-as-role1 + + + servlet1-role-ref + role1 + + + + servlet0-name + /servlet0/* + + + servlet0-name + /servlet0/*.s + /servlet0/*.sx + + + servlet1-name + /servlet1/* + + + servlet1-name + /servlet1/*.s + /servlet1/*.sx + + + + 30 + + + + ext0 + x/type0 + + + ext1 + x/type1 + + + + index.html + *.welcome + + + + 404 + /error-page0 + + + java.lang.Throwable + /error-page1 + + + + + jsp-config0 + /WEB-INF/tlds/jsp-config0.tld + + + Property group for common configuration for all the JSP's + *.jsp + *.jspx + false + false + ISO-8859-1 + false + false + /common-jsps/prelude.jsp + /common-jsps/coda.jsp + true + true + + + + + security-constraint0-display-name + + web-resource0-name + /resource0/* + + + web-resource1-name + /resource1/* + + + + role0 + + + NONE + + + + security-constraint-excluded-name + + web-resource-excluded-name + /resource-excluded/* + + + + + security-constraint-unchecked-name + + web-resource-unchecked-name + /resource-unchecked/* + + + + + FORM + + /login.jsp + /login-error.jsp + + + + + role0 + + + role1 + + + + en-webAppEnvEntry1-desc + fr-webAppEnvEntry1-desc + + de-webAppEnvEntry1-desc + + webAppEnvEntry1Name + java.lang.String + webAppEnvEntry1Value + webAppEnvEntry1MappedName + + webAppEnvEntry1Injection1Class + + webAppEnvEntry1Injection1Name + + + + webAppEnvEntry1Injection2Class + + webAppEnvEntry1Injection2Name + + + + + en-webAppEnvEntry2-desc + fr-webAppEnvEntry2-desc + + de-webAppEnvEntry2-desc + + webAppEnvEntry2Name + java.lang.String + webAppEnvEntry2Value + webAppEnvEntry2MappedName + + webAppEnvEntry2Injection1Class + + webAppEnvEntry2Injection1Name + + + + webAppEnvEntry2Injection2Class + + webAppEnvEntry2Injection2Name + + + + + en-webAppEjbRef1-desc + fr-webAppEjbRef1-desc + de-webAppEjbRef1-desc + webAppEjbRef1Name + Session + webAppEjbRef1Home + webAppEjbRef1Remote + webAppEjbRef1EjbLink + webAppEjbRef1MappedName + + webAppEjbRef1Injection1Class + + webAppEjbRef1Injection1Name + + + + webAppEjbRef1Injection2Class + + webAppEjbRef1Injection2Name + + + + + en-webAppEjbRef2-desc + fr-webAppEjbRef2-desc + de-webAppEjbRef2-desc + webAppEjbRef2Name + Entity + webAppEjbRef2Home + webAppEjbRef2Remote + webAppEjbRef2EjbLink + webAppEjbRef2MappedName + + webAppEjbRef2Injection1Class + + webAppEjbRef2Injection1Name + + + + webAppEjbRef2Injection2Class + + webAppEjbRef2Injection2Name + + + + + en-webAppEjbLocalRef1-desc + fr-webAppEjbLocalRef1-desc + + de-webAppEjbLocalRef1-desc + + webAppEjbLocalRef1Name + Session + webAppEjbLocalRef1LocalHome + webAppEjbLocalRef1Local + webAppEjbLocalRef1EjbLink + webAppEjbLocalRef1MappedName + + webAppEjbLocalRef1Injection1Class + + webAppEjbLocalRef1Injection1Name + + + + webAppEjbLocalRef1Injection2Class + + webAppEjbLocalRef1Injection2Name + + + + + en-webAppEjbLocalRef2-desc + fr-webAppEjbLocalRef2-desc + + de-webAppEjbLocalRef2-desc + + webAppEjbLocalRef2Name + Entity + webAppEjbLocalRef2LocalHome + webAppEjbLocalRef2Local + webAppEjbLocalRef2EjbLink + webAppEjbLocalRef2MappedName + + webAppEjbLocalRef2Injection1Class + + webAppEjbLocalRef2Injection1Name + + + + webAppEjbLocalRef2Injection2Class + + webAppEjbLocalRef2Injection2Name + + + + + + + + en-webAppServiceRef1-desc + fr-webAppServiceRef1-desc + + de-webAppServiceRef1-desc + + webAppServiceRef1Name + webAppServiceRef1Iface + + + en-webAppServiceRef2-desc + fr-webAppServiceRef2-desc + + de-webAppServiceRef2-desc + + webAppServiceRef2Name + webAppServiceRef2Iface + + + + en-webAppResourceRef1-desc + fr-webAppResourceRef1-desc + + de-webAppResourceRef1-desc + + webAppResourceRef1Name + webAppResourceRef1Type + Application + Shareable + webAppResourceRef1MappedName + + webAppResourceRef1Injection1Class + + webAppResourceRef1Injection1Name + + + + webAppResourceRef1Injection2Class + + webAppResourceRef1Injection2Name + + + + + en-webAppResourceRef2-desc + fr-webAppResourceRef2-desc + + de-webAppResourceRef2-desc + + webAppResourceRef2Name + webAppResourceRef2Type + Container + Unshareable + webAppResourceRef2MappedName + + webAppResourceRef2Injection1Class + + webAppResourceRef2Injection1Name + + + + webAppResourceRef2Injection2Class + + webAppResourceRef2Injection2Name + + + + + en-webAppResourceEnvRef1-desc + fr-webAppResourceEnvRef1-desc + + de-webAppResourceEnvRef1-desc + + webAppResourceEnvRef1Name + + webAppResourceEnvRef1Type + + webAppResourceEnvRef1MappedName + + webAppResourceEnvRef1Injection1Class + + webAppResourceEnvRef1Injection1Name + + + + webAppResourceEnvRef1Injection2Class + + webAppResourceEnvRef1Injection2Name + + + + + en-webAppResourceEnvRef2-desc + fr-webAppResourceEnvRef2-desc + + de-webAppResourceEnvRef2-desc + + webAppResourceEnvRef2Name + + webAppResourceEnvRef2Type + + webAppResourceEnvRef2MappedName + + webAppResourceEnvRef2Injection1Class + + webAppResourceEnvRef2Injection1Name + + + + webAppResourceEnvRef2Injection2Class + + webAppResourceEnvRef2Injection2Name + + + + + en-webAppMessageDestinationRef1-desc + fr-webAppMessageDestinationRef1-desc + + de-webAppMessageDestinationRef1-desc + + webAppMessageDestinationRef1Name + + webAppMessageDestinationRef1Type + + Consumes + webAppMessageDestinationRef1Link + + webAppMessageDestinationRef1MappedName + + webAppMessageDestinationRef1Injection1Class + + webAppMessageDestinationRef1Injection1Name + + + + webAppMessageDestinationRef1Injection2Class + + webAppMessageDestinationRef1Injection2Name + + + + + en-webAppMessageDestinationRef2-desc + fr-webAppMessageDestinationRef2-desc + + de-webAppMessageDestinationRef2-desc + + webAppMessageDestinationRef2Name + + webAppMessageDestinationRef2Type + + Produces + webAppMessageDestinationRef2Link + + webAppMessageDestinationRef2MappedName + + webAppMessageDestinationRef2Injection1Class + + webAppMessageDestinationRef2Injection1Name + + + + webAppMessageDestinationRef2Injection2Class + + webAppMessageDestinationRef2Injection2Name + + + + + en-webAppMessageDestinationRef3-desc + fr-webAppMessageDestinationRef3-desc + + de-webAppMessageDestinationRef3-desc + + webAppMessageDestinationRef3Name + + webAppMessageDestinationRef3Type + + ConsumesProduces + + webAppMessageDestinationRef3Link + + webAppMessageDestinationRef3MappedName + + webAppMessageDestinationRef3Injection1Class + + webAppMessageDestinationRef3Injection1Name + + + + webAppMessageDestinationRef3Injection2Class + + webAppMessageDestinationRef3Injection2Name + + + + + en-webAppPersistenceContextRef1-desc + fr-webAppPersistenceContextRef1-desc + + de-webAppPersistenceContextRef1-desc + + webAppPersistenceContextRef1Name + + webAppPersistenceContextRef1Unit + + Transaction + + webAppPersistenceContextRef1Property1Name + webAppPersistenceContextRef1Property1Value + + + webAppPersistenceContextRef1Property2Name + webAppPersistenceContextRef1Property2Value + + webAppPersistenceContextRef1MappedName + + webAppPersistenceContextRef1Injection1Class + + webAppPersistenceContextRef1Injection1Name + + + + webAppPersistenceContextRef1Injection2Class + + webAppPersistenceContextRef1Injection2Name + + + + + en-webAppPersistenceContextRef2-desc + fr-webAppPersistenceContextRef2-desc + + de-webAppPersistenceContextRef2-desc + + webAppPersistenceContextRef2Name + + webAppPersistenceContextRef2Unit + + Extended + Unsynchronized + + + webAppPersistenceContextRef2Property1Name + webAppPersistenceContextRef2Property1Value + + + webAppPersistenceContextRef2Property2Name + webAppPersistenceContextRef2Property2Value + + webAppPersistenceContextRef2MappedName + + webAppPersistenceContextRef2Injection1Class + + webAppPersistenceContextRef2Injection1Name + + + + webAppPersistenceContextRef2Injection2Class + + webAppPersistenceContextRef2Injection2Name + + + + + en-webAppPersistenceUnitRef1-desc + fr-webAppPersistenceUnitRef1-desc + + de-webAppPersistenceUnitRef1-desc + + webAppPersistenceUnitRef1Name + + webAppPersistenceUnitRef1Unit + + webAppPersistenceUnitRef1MappedName + + webAppPersistenceUnitRef1Injection1Class + + webAppPersistenceUnitRef1Injection1Name + + + + webAppPersistenceUnitRef1Injection2Class + + webAppPersistenceUnitRef1Injection2Name + + + + + en-webAppPersistenceUnitRef2-desc + fr-webAppPersistenceUnitRef2-desc + + de-webAppPersistenceUnitRef2-desc + + webAppPersistenceUnitRef2Name + + webAppPersistenceUnitRef2Unit + + webAppPersistenceUnitRef2MappedName + + webAppPersistenceUnitRef2Injection1Class + + webAppPersistenceUnitRef2Injection1Name + + + + webAppPersistenceUnitRef2Injection2Class + + webAppPersistenceUnitRef2Injection2Name + + + + + webAppPostConstruct1Class + + webAppPostConstruct1Method + + + + webAppPostConstruct2Class + + webAppPostConstruct2Method + + + + webAppPreDestroy1Class + + webAppPreDestroy1Method + + + + webAppPreDestroy2Class + + webAppPreDestroy2Method + + + + + en-webAppDataSource1-desc + webAppDataSource1Name + webAppDataSource1ClassName + webAppDataSource1ServerName + 1 + webAppDataSource1DatabaseName + jdbc:webAppDataSource1:url + webAppDataSource1User + webAppDataSource1Password + + webAppDataSource1Property1Name + webAppDataSource1Property1Value + + + webAppDataSource1Property2Name + webAppDataSource1Property2Value + + 1 + false + TRANSACTION_READ_UNCOMMITTED + 1 + 1 + 1 + 1 + 1 + + + en-webAppDataSource2-desc + webAppDataSource2Name + webAppDataSource2ClassName + webAppDataSource2ServerName + 2 + webAppDataSource2DatabaseName + jdbc:webAppDataSource2:url + webAppDataSource2User + webAppDataSource2Password + + webAppDataSource2Property1Name + webAppDataSource2Property1Value + + + webAppDataSource2Property2Name + webAppDataSource2Property2Value + + 2 + true + TRANSACTION_READ_COMMITTED + 2 + 2 + 2 + 2 + 2 + + + + webAppJmsConnectionFactory1Desc + webAppJmsConnectionFactory1Name + javax.jms.QueueConnectionFactory + webAppJmsConnectionFactory1ClassName + webAppJmsConnectionFactory1ResourceAdapter + + webAppJmsConnectionFactory1User + webAppJmsConnectionFactory1Password + webAppJmsConnectionFactory1ClientId + + webAppJmsConnectionFactory1Property1Name + webAppJmsConnectionFactory1Property1Value + + + webAppJmsConnectionFactory1Property2Name + webAppJmsConnectionFactory1Property2Value + + true + 1 + 1 + + + webAppJmsConnectionFactory2Desc + webAppJmsConnectionFactory2Name + javax.jms.TopicConnectionFactory + webAppJmsConnectionFactory2ClassName + webAppJmsConnectionFactory2ResourceAdapter + + webAppJmsConnectionFactory2User + webAppJmsConnectionFactory2Password + webAppJmsConnectionFactory2ClientId + + webAppJmsConnectionFactory2Property1Name + webAppJmsConnectionFactory2Property1Value + + + webAppJmsConnectionFactory2Property2Name + webAppJmsConnectionFactory2Property2Value + + false + 2 + 2 + + + webAppJmsConnectionFactory3Name + + + + webAppJmsDestination1Desc + webAppJmsDestination1Name + javax.jms.Queue + webAppJmsDestination1ClassName + webAppJmsDestination1ResourceAdapter + + webAppJmsDestination1DestinationName + + + webAppJmsDestination1Property1Name + webAppJmsDestination1Property1Value + + + webAppJmsDestination1Property2Name + webAppJmsDestination1Property2Value + + + + webAppJmsDestination2Desc + webAppJmsDestination2Name + javax.jms.Queue + webAppJmsDestination2ClassName + webAppJmsDestination2ResourceAdapter + + webAppJmsDestination2DestinationName + + + webAppJmsDestination2Property1Name + webAppJmsDestination2Property1Value + + + webAppJmsDestination2Property2Name + webAppJmsDestination2Property2Value + + + + webAppJmsDestination3Name + javax.jms.Topic + + + + webAppMailSession1Desc + webAppMailSession1Name + webAppMailSession1StoreProtocol + webAppMailSession1StoreProtocolClass + + webAppMailSession1TransportProtocol + + webAppMailSession1TransportProtocolClass + + webAppMailSession1Host + webAppMailSession1User + webAppMailSession1Password + webAppMailSession1From + + webAppMailSession1Property1Name + webAppMailSession1Property1Value + + + webAppMailSession1Property2Name + webAppMailSession1Property2Value + + + + webAppMailSession2Desc + webAppMailSession2Name + webAppMailSession2StoreProtocol + webAppMailSession2StoreProtocolClass + + webAppMailSession2TransportProtocol + + webAppMailSession2TransportProtocolClass + + webAppMailSession2Host + webAppMailSession2User + webAppMailSession2Password + webAppMailSession2From + + webAppMailSession2Property1Name + webAppMailSession2Property1Value + + + webAppMailSession2Property2Name + webAppMailSession2Property2Value + + + + webAppMailSession3Name + + + + webAppConnectionFactory1Desc + webAppConnectionFactory1Name + webAppConnectionFactory1InterfaceName + webAppConnectionFactory1ResourceAdapter + + 1 + 1 + NoTransaction + + webAppConnectionFactory1Property1Name + webAppConnectionFactory1Property1Value + + + webAppConnectionFactory1Property2Name + webAppConnectionFactory1Property2Value + + + + webAppConnectionFactory2Desc + webAppConnectionFactory2Name + webAppConnectionFactory2InterfaceName + webAppConnectionFactory2ResourceAdapter + + 2 + 2 + LocalTransaction + + webAppConnectionFactory2Property1Name + webAppConnectionFactory2Property1Value + + + webAppConnectionFactory2Property2Name + webAppConnectionFactory2Property2Value + + + + webAppConnectionFactory3Desc + webAppConnectionFactory3Name + webAppConnectionFactory3InterfaceName + webAppConnectionFactory3ResourceAdapter + + 3 + 3 + XATransaction + + webAppConnectionFactory3Property1Name + webAppConnectionFactory3Property1Value + + + webAppConnectionFactory3Property2Name + webAppConnectionFactory3Property2Value + + + + webAppConnectionFactory4Name + webAppConnectionFactory4InterfaceName + webAppConnectionFactory4ResourceAdapter + + + + + webAppAdministeredObject1Desc + webAppAdministeredObject1Name + webAppAdministeredObject1InterfaceName + + webAppAdministeredObject1ClassName + webAppAdministeredObject1ResourceAdapter + + + webAppAdministeredObject1Property1Name + webAppAdministeredObject1Property1Value + + + webAppAdministeredObject1Property2Name + webAppAdministeredObject1Property2Value + + + + webAppAdministeredObject2Desc + webAppAdministeredObject2Name + webAppAdministeredObject2InterfaceName + + webAppAdministeredObject2ClassName + webAppAdministeredObject2ResourceAdapter + + + webAppAdministeredObject2Property1Name + webAppAdministeredObject2Property1Value + + + webAppAdministeredObject2Property2Name + webAppAdministeredObject2Property2Value + + + + webAppAdministeredObject3Name + webAppAdministeredObject3ClassName + webAppAdministeredObject3ResourceAdapter + + + + + + en-messageDestination1-desc + fr-messageDestination1-desc + + de-messageDestination1-desc + + en-messageDestination1-disp + fr-messageDestination1-disp + + de-messageDestination1-disp + + + en-messageDestination1-small-icon + en-messageDestination1-large-icon + + + fr-messageDestination1-small-icon + fr-messageDestination1-large-icon + + + de-messageDestination1-small-icon + de-messageDestination1-large-icon + + messageDestination1Name + + messageDestination1MappedName + messageDestination1LookupName + + + en-messageDestination2-desc + fr-messageDestination2-desc + + de-messageDestination2-desc + + en-messageDestination2-disp + fr-messageDestination2-disp + + de-messageDestination2-disp + + + en-messageDestination2-small-icon + en-messageDestination2-large-icon + + + fr-messageDestination2-small-icon + fr-messageDestination2-large-icon + + + de-messageDestination2-small-icon + de-messageDestination2-large-icon + + messageDestination2Name + + messageDestination2MappedName + messageDestination2LookupName + + + + + en + en + + + + + + webAppContextService1-desc + webAppContextService1-name + webAppContextService1Qualifier1 + webAppContextService1Qualifier2 + webAppContextService1-cleared + webAppContextService1-propagated + webAppContextService1-unchanged + + webAppContextService1Property1Name + webAppContextService1Property1Value + + + webAppContextService1Property2Name + webAppContextService1Property2Value + + + + webAppContextService2-desc + webAppContextService2-name + webAppContextService2Qualifier1 + webAppContextService2Qualifier2 + webAppContextService2-cleared + webAppContextService2-propagated + webAppContextService2-unchanged + + webAppContextService2Property1Name + webAppContextService2Property1Value + + + webAppContextService2Property2Name + webAppContextService2Property2Value + + + + webAppContextService3-name + + + + + webAppManagedExecutor1-desc + webAppManagedExecutor1-name + webAppManagedExecutor1-contextServiceRef + webAppManagedExecutor1Qualifier1 + webAppManagedExecutor1Qualifier2 + 1 + 1 + true + + webAppManagedExecutor1Property1Name + webAppManagedExecutor1Property1Value + + + webAppManagedExecutor1Property2Name + webAppManagedExecutor1Property2Value + + + + webAppManagedExecutor2-desc + webAppManagedExecutor2-name + webAppManagedExecutor2-contextServiceRef + webAppManagedExecutor1Qualifier1 + webAppManagedExecutor1Qualifier2 + 2 + 2 + false + + webAppManagedExecutor2Property1Name + webAppManagedExecutor2Property1Value + + + webAppManagedExecutor2Property2Name + webAppManagedExecutor2Property2Value + + + + webAppManagedExecutor3-name + + + + + webAppManagedScheduledExecutor1-desc + webAppManagedScheduledExecutor1-name + webAppManagedScheduledExecutor1-contextServiceRef + webAppManagedScheduledExecutor1Qualifier1 + webAppManagedScheduledExecutor1Qualifier2 + 1 + 1 + true + + webAppManagedScheduledExecutor1Property1Name + webAppManagedScheduledExecutor1Property1Value + + + webAppManagedScheduledExecutor1Property2Name + webAppManagedScheduledExecutor1Property2Value + + + + webAppManagedScheduledExecutor2-desc + webAppManagedScheduledExecutor2-name + webAppManagedScheduledExecutor2-contextServiceRef + webAppManagedScheduledExecutor2Qualifier1 + webAppManagedScheduledExecutor2Qualifier2 + 2 + 2 + false + + webAppManagedScheduledExecutor2Property1Name + webAppManagedScheduledExecutor2Property1Value + + + webAppManagedScheduledExecutor2Property2Name + webAppManagedScheduledExecutor2Property2Value + + + + webAppManagedScheduledExecutor3-name + + + + + webAppManagedThreadFactory1-desc + webAppManagedThreadFactory1-name + webAppManagedThreadFactory1-contextServiceRef + webAppManagedThreadFactory1Qualifier1 + webAppManagedThreadFactory1Qualifier2 + 1 + true + + webAppManagedThreadFactory1Property1Name + webAppManagedThreadFactory1Property1Value + + + webAppManagedThreadFactory1Property2Name + webAppManagedThreadFactory1Property2Value + + + + webAppManagedThreadFactory2-desc + webAppManagedThreadFactory2-name + webAppManagedThreadFactory2-contextServiceRef + webAppManagedThreadFactory2Qualifier1 + webAppManagedThreadFactory2Qualifier2 + 2 + false + + webAppManagedThreadFactory2Property1Name + webAppManagedThreadFactory2Property1Value + + + webAppManagedThreadFactory2Property2Name + webAppManagedThreadFactory2Property2Value + + + + webAppManagedThreadFactory3-name + +