From 31c1d1f3bfb3282484b850582f273d8b9a80f9ea Mon Sep 17 00:00:00 2001 From: Emmanuel Hugonnet Date: Thu, 8 Sep 2022 18:54:38 +0200 Subject: [PATCH] [JBMETA-437]: Upgrade jboss-web and jboss-ejb3 schemas to JakartaEE 10. * Upgrading the schemas for jboss-web, jboss-common and jboss-ejb3 to JakartaEE 10. Jira: https://issues.redhat.com/browse/JBMETA-437 Signed-off-by: Emmanuel Hugonnet --- .../javaee/spec/JavaEEMetaDataConstants.java | 8 + .../resources/schema/jboss-common_9_0.xsd | 564 ++++++++++++++++++ .../javaee/AbstractJavaEEEverythingTest.java | 3 +- .../parser/jboss/JBossAppMetaDataParser.java | 2 +- .../metadata/ear/parser/jboss/Namespace.java | 4 +- .../ejb3/AbstractEJBBoundMetaDataParser.java | 1 + .../AbstractMethodsBoundMetaDataParser.java | 1 + ...JBossAssemblyDescriptorMetaDataParser.java | 1 + .../jboss/ejb3/JBossEjb3MetaDataParser.java | 2 + .../JBossEnterpriseBeansMetaDataParser.java | 2 + .../ejb3/JBossGenericBeanMetaDataParser.java | 2 + .../ejb/parser/jboss/ejb3/Namespace.java | 4 +- .../parser/spec/ExtendingMetaDataParser.java | 2 + .../main/resources/schema/jboss-ejb3-4_0.xsd | 43 ++ .../metadata/parser/jbossweb/Version.java | 1 + .../metadata/web/jboss/ReplicationConfig.java | 1 + .../main/resources/schema/jboss-web_15_0.xsd | 529 ++++++++++++++++ .../metadata/web/JBossWeb150UnitTestCase.java | 50 ++ .../web/JBossWeb150_testClustering.xml | 7 + .../web/JBossWeb150_testReplicationConfig.xml | 10 + 20 files changed, 1233 insertions(+), 4 deletions(-) create mode 100644 common/src/main/resources/schema/jboss-common_9_0.xsd create mode 100644 ejb/src/main/resources/schema/jboss-ejb3-4_0.xsd create mode 100644 web/src/main/resources/schema/jboss-web_15_0.xsd create mode 100644 web/src/test/java/org/jboss/test/metadata/web/JBossWeb150UnitTestCase.java create mode 100644 web/src/test/resources/org/jboss/test/metadata/web/JBossWeb150_testClustering.xml create mode 100644 web/src/test/resources/org/jboss/test/metadata/web/JBossWeb150_testReplicationConfig.xml diff --git a/common/src/main/java/org/jboss/metadata/javaee/spec/JavaEEMetaDataConstants.java b/common/src/main/java/org/jboss/metadata/javaee/spec/JavaEEMetaDataConstants.java index 6ac197f95..cf231c1f0 100644 --- a/common/src/main/java/org/jboss/metadata/javaee/spec/JavaEEMetaDataConstants.java +++ b/common/src/main/java/org/jboss/metadata/javaee/spec/JavaEEMetaDataConstants.java @@ -29,6 +29,10 @@ * @version $Revision: 8.0 $ */ public interface JavaEEMetaDataConstants { + /** + * The jakartaee namespace + */ + String JAKARTAEE_NS = "https://jakarta.ee/xml/ns/jakartaee"; /** * The javaee namespace */ @@ -52,6 +56,10 @@ public interface JavaEEMetaDataConstants { * The jboss javaee namespaces */ String JBOSS_NS = "http://www.jboss.com/xml/ns/javaee"; + /** + * The jboss jakartaee namespaces + */ + String JBOSS_JAKARTAEE_NS = "http://www.jboss.com/xml/ns/jakartaee"; /** * The jbosscmp-jdbc namespace diff --git a/common/src/main/resources/schema/jboss-common_9_0.xsd b/common/src/main/resources/schema/jboss-common_9_0.xsd new file mode 100644 index 000000000..dc6dde5af --- /dev/null +++ b/common/src/main/resources/schema/jboss-common_9_0.xsd @@ -0,0 +1,564 @@ + + + + + + + + + + + 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 jmx-name element allows one to specify the JMX ObjectName to use for + the MBean associated with the ejb-jar module. This must be a unique name and valid JMX + ObjectName string. + + + + + + + + + The security-domain element specifies the JNDI name of the security + manager that implements the EJBSecurityManager and RealmMapping for the domain. When + specified at the jboss level it specifies the security domain for all Jakarta EE components in the + deployment unit. One can override the global security-domain at the container level using + the security-domain element at the container-configuration level. + + + + + + + + + The security-role element contains the definition of a security role. + The definition consists of an the security role name and principal name element(s). + + + + + + + + + + + + The principal-name element is the name of the principal that is mapped + to the assembly role-name. + + + + + + + + + The depends element gives a JMX ObjectName of a service on which the + container or ejb depends. (default) + + + + + + + + + The JNDI name under with the local interface should be bound. If it is not + provided jboss will assume "jndi-name" = "beanClass/local" + + + + + + + + + The ejb-ref element is used to give the jndi-name of an external ejb + reference. In the case of an external ejb reference, you don't provide a ejb-link element in + ejb-jar.xml, but you provide a jndi-name in jboss.xml Used in: entity, session, + message-driven, consumer, and service + + + + + + + + + + + + + + + + + + The ejb-local-ref element is used to give the jndi-name of an external ejb + reference. In the case of an external ejb reference, you don't provide a ejb-link element in + ejb-jar.xml, but you provide a jndi-name in jboss.xml + + + + + + + + + + + + + + + + + + The resource-ref element gives a mapping between the "code name" of a + resource (res-ref-name, provided by the Bean Developer) and its "xml name" (resource-name, + provided by the Application Assembler). If no resource-ref is provided, jboss will assume + that "xml-name" = "code name" See resource-managers. + + + + + + + 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 service-ref-name element gives the ENC relative name used in the + ejb-jar.xml service-ref-name element. + + + + + + + + + + jboss.test:loader=cts-cmp2v1-sar.ear + + + dot.com:loader=unique-archive-name + + java2ParentDelegaton=true + + + + ]]> + + + + + + + + + + + + + + + + The loader-repository-config element specifies any arbitrary configuration + fragment for use in configuring the loader-repository instance. The actual content of this + element is specific to the loaderRepositoryClass and the code parsing the element. + + + + + + + + + + + + OrganizationService + file:/wsdlRepository/organization-service.wsdl + + + + OrganizationService + Secure Client Config + META-INF/jbossws-client-config.xml + META-INF/jbossws-client-handlers.xml + + + + SecureService + org.jboss.tests.ws.jaxws.webserviceref.SecureEndpointService + {http://org.jboss.ws/wsref}SecureEndpointService + + org.jboss.tests.ws.jaxws.webserviceref.SecureEndpoint + {http://org.jboss.ws/wsref}SecureEndpointPort + + javax.xml.ws.security.auth.username + kermit + + + javax.xml.ws.security.auth.password + thefrog + + + + ]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The message-destination element is used to configure the jndi-name for a + message-destination in ejb-jar.xml Used in: assembly-descriptor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 e8e261d04..3bcc604db 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 @@ -116,7 +116,8 @@ public abstract class AbstractJavaEEEverythingTest extends AbstractJavaEEMetaDat public enum Mode { JBOSS, JBOSS_DTD, - SPEC + SPEC, + JAKARTAEE } public enum Descriptor { diff --git a/ear/src/main/java/org/jboss/metadata/ear/parser/jboss/JBossAppMetaDataParser.java b/ear/src/main/java/org/jboss/metadata/ear/parser/jboss/JBossAppMetaDataParser.java index 4646d6f41..1aafc57bb 100644 --- a/ear/src/main/java/org/jboss/metadata/ear/parser/jboss/JBossAppMetaDataParser.java +++ b/ear/src/main/java/org/jboss/metadata/ear/parser/jboss/JBossAppMetaDataParser.java @@ -112,7 +112,7 @@ public JBossAppMetaData parse(final XMLStreamReader reader, final PropertyReplac while (reader.hasNext() && reader.nextTag() != END_ELEMENT) { final Element element = Element.forName(reader.getLocalName()); Namespace namespace = Namespace.forUri(reader.getNamespaceURI()); - if (namespace == Namespace.SPEC || namespace == Namespace.SPEC_7_0) { + if (namespace == Namespace.SPEC || namespace == Namespace.SPEC_7_0 || namespace == Namespace.JAKARTAEE) { super.handleElement(reader, appMetaData, propertyReplacer); } else { switch (element) { diff --git a/ear/src/main/java/org/jboss/metadata/ear/parser/jboss/Namespace.java b/ear/src/main/java/org/jboss/metadata/ear/parser/jboss/Namespace.java index 20dddbf59..d1359c63c 100644 --- a/ear/src/main/java/org/jboss/metadata/ear/parser/jboss/Namespace.java +++ b/ear/src/main/java/org/jboss/metadata/ear/parser/jboss/Namespace.java @@ -31,8 +31,10 @@ public enum Namespace { // must be first UNKNOWN(null), JBOSS("http://www.jboss.com/xml/ns/javaee"), + JBOSS_JAKARTA("http://www.jboss.com/xml/ns/jakartaee"), SPEC("http://java.sun.com/xml/ns/javaee"), - SPEC_7_0("http://xmlns.jcp.org/xml/ns/javaee"); + SPEC_7_0("http://xmlns.jcp.org/xml/ns/javaee"), + JAKARTAEE("https://jakarta.ee/xml/ns/jakartaee"); private final String uri; diff --git a/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/AbstractEJBBoundMetaDataParser.java b/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/AbstractEJBBoundMetaDataParser.java index c2c5551b2..c2e7de7e1 100644 --- a/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/AbstractEJBBoundMetaDataParser.java +++ b/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/AbstractEJBBoundMetaDataParser.java @@ -43,6 +43,7 @@ protected void processElement(MD metaData, XMLStreamReader reader, final Propert switch (namespace) { case SPEC: case SPEC_7_0: + case JAKARTAEE: final EjbJarElement ejbJarElement = EjbJarElement.forName(reader.getLocalName()); switch (ejbJarElement) { case DESCRIPTION: diff --git a/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/AbstractMethodsBoundMetaDataParser.java b/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/AbstractMethodsBoundMetaDataParser.java index 6f4a7e10b..88d4ae2f2 100644 --- a/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/AbstractMethodsBoundMetaDataParser.java +++ b/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/AbstractMethodsBoundMetaDataParser.java @@ -43,6 +43,7 @@ protected void processElement(MD metaData, XMLStreamReader reader, PropertyRepla switch (namespace) { case SPEC: case SPEC_7_0: + case JAKARTAEE: final EjbJarElement ejbJarElement = EjbJarElement.forName(reader.getLocalName()); switch (ejbJarElement) { case METHOD: diff --git a/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/JBossAssemblyDescriptorMetaDataParser.java b/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/JBossAssemblyDescriptorMetaDataParser.java index 3d7231dec..dfc77f7c0 100644 --- a/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/JBossAssemblyDescriptorMetaDataParser.java +++ b/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/JBossAssemblyDescriptorMetaDataParser.java @@ -53,6 +53,7 @@ protected void processElement(AssemblyDescriptorMetaData assemblyDescriptor, XML switch (namespace) { case SPEC: case SPEC_7_0: + case JAKARTAEE: processSpecElement(assemblyDescriptor, reader, propertyReplacer); break; default: diff --git a/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/JBossEjb3MetaDataParser.java b/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/JBossEjb3MetaDataParser.java index 72f9ff679..62414bab5 100644 --- a/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/JBossEjb3MetaDataParser.java +++ b/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/JBossEjb3MetaDataParser.java @@ -129,6 +129,7 @@ protected void processElement(EjbJarMetaData metaData, XMLStreamReader reader, f final Element element = Element.forName(reader.getLocalName()); switch (namespace) { case JBOSS: + case JBOSS_JAKARTA: switch (element) { case ENTERPRISE_BEANS: metaData.setEnterpriseBeans(parseEnterpriseBeans(reader, metaData.getEjbJarVersion(), propertyReplacer)); @@ -143,6 +144,7 @@ protected void processElement(EjbJarMetaData metaData, XMLStreamReader reader, f break; case SPEC: case SPEC_7_0: + case JAKARTAEE: switch (element) { case ASSEMBLY_DESCRIPTOR: metaData.setAssemblyDescriptor(parseAssemblyDescriptor(reader, propertyReplacer)); diff --git a/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/JBossEnterpriseBeansMetaDataParser.java b/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/JBossEnterpriseBeansMetaDataParser.java index 2587581d8..ef3230f01 100644 --- a/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/JBossEnterpriseBeansMetaDataParser.java +++ b/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/JBossEnterpriseBeansMetaDataParser.java @@ -52,10 +52,12 @@ protected void processElement(JBossEnterpriseBeansMetaData metaData, XMLStreamRe final Namespace namespace = Namespace.forUri(reader.getNamespaceURI()); switch (namespace) { case JBOSS: + case JBOSS_JAKARTA: processJBossElement(metaData, reader, propertyReplacer); break; case SPEC: case SPEC_7_0: + case JAKARTAEE: super.processElement(metaData, reader, propertyReplacer); break; case UNKNOWN: diff --git a/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/JBossGenericBeanMetaDataParser.java b/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/JBossGenericBeanMetaDataParser.java index 547e3a327..856bd7488 100644 --- a/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/JBossGenericBeanMetaDataParser.java +++ b/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/JBossGenericBeanMetaDataParser.java @@ -46,10 +46,12 @@ protected void processElement(JBossGenericBeanMetaData metaData, XMLStreamReader final Namespace namespace = Namespace.forUri(reader.getNamespaceURI()); switch (namespace) { case JBOSS: + case JBOSS_JAKARTA: processJBossElement(metaData, reader); break; case SPEC: case SPEC_7_0: + case JAKARTAEE: processSpecElement(metaData, reader, propertyReplacer); break; case UNKNOWN: diff --git a/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/Namespace.java b/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/Namespace.java index fda0c2a13..903c9eeba 100644 --- a/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/Namespace.java +++ b/ejb/src/main/java/org/jboss/metadata/ejb/parser/jboss/ejb3/Namespace.java @@ -31,8 +31,10 @@ public enum Namespace { // must be first UNKNOWN(null), JBOSS("http://www.jboss.com/xml/ns/javaee"), + JBOSS_JAKARTA("http://www.jboss.com/xml/ns/jakartaee"), SPEC("http://java.sun.com/xml/ns/javaee"), - SPEC_7_0("http://xmlns.jcp.org/xml/ns/javaee"); + SPEC_7_0("http://xmlns.jcp.org/xml/ns/javaee"), + JAKARTAEE("https://jakarta.ee/xml/ns/jakartaee"); private final String uri; diff --git a/ejb/src/main/java/org/jboss/metadata/ejb/parser/spec/ExtendingMetaDataParser.java b/ejb/src/main/java/org/jboss/metadata/ejb/parser/spec/ExtendingMetaDataParser.java index be1830720..d02096681 100644 --- a/ejb/src/main/java/org/jboss/metadata/ejb/parser/spec/ExtendingMetaDataParser.java +++ b/ejb/src/main/java/org/jboss/metadata/ejb/parser/spec/ExtendingMetaDataParser.java @@ -75,9 +75,11 @@ protected void processElement(MD metaData, XMLStreamReader reader, PropertyRepla switch (namespace) { case SPEC: case SPEC_7_0: + case JAKARTAEE: delegate.processElement(metaData, reader, propertyReplacer); break; case JBOSS: + case JBOSS_JAKARTA: case UNKNOWN: AbstractMetaDataParser parser = getParser(reader.getNamespaceURI()); metaData.addAny(parser.parse(reader, propertyReplacer)); diff --git a/ejb/src/main/resources/schema/jboss-ejb3-4_0.xsd b/ejb/src/main/resources/schema/jboss-ejb3-4_0.xsd new file mode 100644 index 000000000..c96481c7f --- /dev/null +++ b/ejb/src/main/resources/schema/jboss-ejb3-4_0.xsd @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + The distinct-name for this EJB module. + + + + diff --git a/web/src/main/java/org/jboss/metadata/parser/jbossweb/Version.java b/web/src/main/java/org/jboss/metadata/parser/jbossweb/Version.java index ce4992a30..8e5076830 100644 --- a/web/src/main/java/org/jboss/metadata/parser/jbossweb/Version.java +++ b/web/src/main/java/org/jboss/metadata/parser/jbossweb/Version.java @@ -45,6 +45,7 @@ public enum Version { JBOSS_WEB_13_0(13, 0), JBOSS_WEB_14_0(14, 0), JBOSS_WEB_14_1(14, 1), + JBOSS_WEB_15_0(15, 0), ; private final String location; diff --git a/web/src/main/java/org/jboss/metadata/web/jboss/ReplicationConfig.java b/web/src/main/java/org/jboss/metadata/web/jboss/ReplicationConfig.java index bb4743b2d..56c370e62 100644 --- a/web/src/main/java/org/jboss/metadata/web/jboss/ReplicationConfig.java +++ b/web/src/main/java/org/jboss/metadata/web/jboss/ReplicationConfig.java @@ -52,6 +52,7 @@ public void setCacheName(String cacheName) { this.cacheName = cacheName; } + @Override public String toString() { StringBuilder sb = new StringBuilder(100); sb.append("cacheName=").append(cacheName).append(";granularity=").append(granularity); diff --git a/web/src/main/resources/schema/jboss-web_15_0.xsd b/web/src/main/resources/schema/jboss-web_15_0.xsd new file mode 100644 index 000000000..abda6762e --- /dev/null +++ b/web/src/main/resources/schema/jboss-web_15_0.xsd @@ -0,0 +1,529 @@ + + + + + + + + + ... + + + + Instance documents may indicate the published version of + the schema using the xsi:schemaLocation attribute for the + Java EE namespace with the following location: + + https://www.jboss.org/schema/jbossas/jboss-web_15_0.xsd + + ]]> + + + + + + The following conventions apply to all Java 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. + + + + + + + + + + This is the root element of jboss-web deployment descriptor. + + + + + + + + + + + + + + The jboss-web element is the root element of jboss-web.xml file. It contains + all the information used by jboss but not described in the web.xml file. All of it is optional. + + + + + + + + + + + + + + + + + + + + + + + + + + + Determines the maximum number of sessions to retain in memory. If the application attempts to exceed + this limit, the resulting behavior is determined by the session manager. + + If the session manager supports passivation, then sessions accessed least recently will be + passivated to make room for new sessions. + If the session manager does not support passivation then any attempt to create more than + max-active-sessions will fail. + + If undefined, or if set to -1, then no limit is placed on the number of sessions retained in memory, + and sessions will never passivate. + + + + + + + + + + + + + + + + Defines a web container listener. The module element allows specifying from which + module in the application server the specified class will be loaded. The listener type + element defines which events the listener will receive from the web container. + + + + + + + + + + + + + + + LIFECYCLE + + ]]> + + + + + + + + + + + + + + + + + Defines a web container valve. The module element allows specifying from which + module in the application server the specified class will be loaded. A container + valve is used to intercept the request that will be processed by the servlet. It + is invoked as part of a chain, before the invocation of the webapp's filter chain. + + + + + + + + + + + + + + + Defines a web container HTTPHandler. The module element allows specifying from which + module in the application server the specified class will be loaded. A handler + is used to intercept the request that will be processed by the servlet. It + is invoked as part of a chain, before the invocation of the webapp's filter chain. + + The class specified can either be a HttpHandler that has a constructor that takes the + next HttpHandler, or can be a HandlerWrapper that produces the next handler. + + + + + + + + + + + + + + The overlay element specifies additional static files overlays for this + web application. The content of the element should be a folder in the + filesystem containing the static files that will overlay the webapp's + static files, similar to what happens with regular JAR overlays. + If a file is found in both the deployment and in the overlay folder, + the file in the deployment takes precedence. If more than one overlay + is provided, the order in which the overlay elements are declared + determines precedence for files that can be found in multiple overlay + folders. + + + + + + + + + + + The name of a security-domain that will be used to authenticate and authorize users. + + + + + + + + Whether the domain's cache should be flushed when the session invalidates. + + + + + + + + + + + The disable-cross-context element specifies if cross context + access should be enabled for this webapp, allowing it to use the + request dispatcher to access other webapps deployed in the + application server. + + + + + + + + + + + The use-jboss-authorization element specifies if the JBoss + authorization layer should be used. + + + + + + + + + + + The disable-audit element specifies if the security audit logging + should be disabled. + + + + + + + + + + + If this is set to false then authentication will not be performed unless it is required, + even if credentials are present. + + + + + + + + + + The distinct-name element specifies the EJB 3 distinct name for this + web application. + + + + + + + + + + + The symbolic-linked-allowed element specifies if symlinking is allowed in exploded deployments. + + + + + + + + + + + The jacc-star-role-allow element specifies whether the + jacc permission generating agent in the web layer needs to generate a + WebResourcePermission(url,null) permission such that the jacc provider can + make a decision as to bypass authorization or not. + + + + + + + + + + + The jacc-context-id element allows for the specification of the JACC contextID that should + be used to identify the web application when checking for permissions. If not set the deployment + unit name is used as JACC contextID. + + + + + + + + + + + The context-root element specifies the context root of a web + application. This is normally specified at the ear level using the standard + JEE application.xml descriptor, but it may be given here for standalone wars. + This should not override the application.xml level specification. + + + + + + + + + + + The servlet-container element specifies the which servlet container this application + should be using. + + + + + + + + + + + + The server-instance element specifies the which server instance configuration this application belongs to. + + + + + + + + + + + Default encoding to use for this application + + + + + + + + + + + www.jboss-store.org + + ]]> + + + + + + + + + + + The servlet element specifies servlet specific bindings. Currently this + is only the run-as principal identity. + + + + + + + + + The run-as-principal element specifies whether a specific run-as identity is + to be used. If there is a run-as role defined for a servlet, there can also + be a run-as-principal defined here. If you don't define a run-as principal + the callee will see ctx.getUserPrincipal() == 'anonymous' + + + + + + + + + + + + + + + The annotation element specifies annotation specific bindings. This allows + overriding the @ServletSecurity, @RunAs and @MultipartConfig, which apply + on a Servlet class rather than a Servlet name. They have the same structure + and element names as the corresponding annotation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Legacy enable-websockets option. Websockets are enabled by default, this option allows them to be + turned off. + + + + + + + diff --git a/web/src/test/java/org/jboss/test/metadata/web/JBossWeb150UnitTestCase.java b/web/src/test/java/org/jboss/test/metadata/web/JBossWeb150UnitTestCase.java new file mode 100644 index 000000000..26922b251 --- /dev/null +++ b/web/src/test/java/org/jboss/test/metadata/web/JBossWeb150UnitTestCase.java @@ -0,0 +1,50 @@ +/* + * JBoss, Home of Professional Open Source. + * Copyright 2018, Red Hat, Inc., and individual contributors + * as indicated by the @author tags. See the copyright.txt file in the + * distribution for a full listing of individual contributors. + * + * This is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2.1 of + * the License, or (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this software; if not, write to the Free + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. + */ + +package org.jboss.test.metadata.web; + + +import javax.xml.stream.XMLStreamException; + +import org.jboss.metadata.parser.jbossweb.JBossWebMetaDataParser; +import org.jboss.metadata.property.PropertyReplacers; +import org.jboss.metadata.web.jboss.JBossWebMetaData; +import org.jboss.test.metadata.javaee.AbstractJavaEEEverythingTest; +import org.junit.Assert; + +public class JBossWeb150UnitTestCase extends AbstractJavaEEEverythingTest { + + public void testReplicationConfig() throws Exception { + try { + JBossWebMetaDataParser.parse(getReader(), PropertyReplacers.noop()); + Assert.fail(" is no longer valid"); + } catch (XMLStreamException e) { + // Expected + } + } + + @SuppressWarnings("deprecation") + public void testClustering() throws Exception { + JBossWebMetaData metaData = JBossWebMetaDataParser.parse(getReader(), PropertyReplacers.noop()); + Assert.assertNull(metaData.getReplicationConfig()); + } +} diff --git a/web/src/test/resources/org/jboss/test/metadata/web/JBossWeb150_testClustering.xml b/web/src/test/resources/org/jboss/test/metadata/web/JBossWeb150_testClustering.xml new file mode 100644 index 000000000..2d55ed303 --- /dev/null +++ b/web/src/test/resources/org/jboss/test/metadata/web/JBossWeb150_testClustering.xml @@ -0,0 +1,7 @@ + + + + 10 + + diff --git a/web/src/test/resources/org/jboss/test/metadata/web/JBossWeb150_testReplicationConfig.xml b/web/src/test/resources/org/jboss/test/metadata/web/JBossWeb150_testReplicationConfig.xml new file mode 100644 index 000000000..df6e1fef7 --- /dev/null +++ b/web/src/test/resources/org/jboss/test/metadata/web/JBossWeb150_testReplicationConfig.xml @@ -0,0 +1,10 @@ + + + + + testCache + SESSION + + +