diff --git a/appserver/appclient/client/acc-standalone/fixup.xml b/appserver/appclient/client/acc-standalone/fixup.xml
index a4ada58..dba2e13 100644
--- a/appserver/appclient/client/acc-standalone/fixup.xml
+++ b/appserver/appclient/client/acc-standalone/fixup.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 <!--
 
-    Copyright (c) 2010, 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2010, 2020 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
@@ -30,15 +30,15 @@
     <property name="derby.jar.classpath.additions" value="../../javadb/lib/derby.jar ../../javadb/lib/derbyclient.jar ../../javadb/lib/derbynet.jar ../../javadb/lib/derbytools.jar ../../javadb/lib/derbyrun.jar"/>
     <property name="jaxr-ra.classpath.additions" value="../lib/install/applications/jaxr-ra/jaxr-ra.jar"/>
     <property name="resources-runtime.classpath.additions" value="../modules/resources-runtime.jar"/>
-    <property name="javamail-connector.classpath.additions" value="../modules/javamail-connector.jar"/>
-    <property name="javamail-runtime.classpath.additions" value="../modules/javamail-runtime.jar"/>
+    <property name="mail-connector.classpath.additions" value="../modules/mail-connector.jar"/>
+    <property name="mail-runtime.classpath.additions" value="../modules/mail-runtime.jar"/>
     <property name="jdbc-runtime.classpath.additions" value="../modules/jdbc-runtime.jar"/>
     <property name="jdbc-config.classpath.additions" value="../modules/jdbc-config.jar"/>
     <property name="aix.additions" value="../modules/aixporting-repackaged.jar"/>
     <property name="entitybean-container.additions" value="../modules/entitybean-container.jar"/>
     <property name="weld.classpath.additions" value="../modules/weld-osgi-bundle.jar"/>
     
-    <property name="classpath.additions" value=" ${resources-runtime.classpath.additions} ${javamail-connector.classpath.additions} ${javamail-runtime.classpath.additions} ${mq.classpath.additions} ${ds-jdbcra.classpath.additions} ${cp-jdbcra.classpath.additions} ${xa-jdbcra.classpath.additions} ${dm-jdbcra.classpath.additions} ${derby.jar.classpath.additions} ${jaxr-ra.classpath.additions} ${entitybean-container.additions} ${jdbc-runtime.classpath.additions} ${jdbc-config.classpath.additions} ${weld.classpath.additions}"/>
+    <property name="classpath.additions" value=" ${resources-runtime.classpath.additions} ${mail-connector.classpath.additions} ${mail-runtime.classpath.additions} ${mq.classpath.additions} ${ds-jdbcra.classpath.additions} ${cp-jdbcra.classpath.additions} ${xa-jdbcra.classpath.additions} ${dm-jdbcra.classpath.additions} ${derby.jar.classpath.additions} ${jaxr-ra.classpath.additions} ${entitybean-container.additions} ${jdbc-runtime.classpath.additions} ${jdbc-config.classpath.additions} ${weld.classpath.additions}"/>
     <property name="classpath.conditional.additions" value="${aix.additions}"/>
     <target name="fixup.library">
         <unzip src="${output.dir}/${output.file}" dest="${stage.dir}">
@@ -60,7 +60,7 @@
             <replacefilter token="../modules/weld-se-shaded.jar" value="../lib/appclient/weld-se-shaded.jar"/>
 
             <!--
-                The javax.mail JAR will reference activation.jar, because it is
+                The jakarta.mail JAR will reference activation.jar, because it is
                 built to work with Java SE 1.4 and later. Prior to Java SE 6
                 activation was separate from the Java SE libraries and so
                 mail must refer to it explicitly.  But GlassFish requires 
@@ -68,7 +68,13 @@
                 So remove it so jar indexing (which would help
                 optimize Java Web Start) will not fail due to a missing JAR.
             -->
-            <replacefilter token=" ../modules/activation.jar" value=""/>
+            <!--
+                As of Jakarta Mail 2.0 and Jakarta EE 9, Jakarta Mail
+                references jakarta.activation.jar, which is NOT included
+                in Java SE, but IS included in GlassFish, so we don't
+                need to remove it here.
+            &lt;replacefilter token=" ../modules/activation.jar" value=""/&gt;>
+            -->
         </replace>
 
         <!-- define the classpath property -->
diff --git a/appserver/appclient/client/acc/pom.xml b/appserver/appclient/client/acc/pom.xml
index 1bb851b..3b0f30b 100755
--- a/appserver/appclient/client/acc/pom.xml
+++ b/appserver/appclient/client/acc/pom.xml
@@ -294,13 +294,13 @@
             and use from clients. -->
         <dependency>
             <groupId>org.glassfish.main.resources</groupId>
-            <artifactId>javamail-connector</artifactId>
+            <artifactId>mail-connector</artifactId>
             <version>${project.version}</version>
             <scope>runtime</scope>
         </dependency>
         <dependency>
             <groupId>org.glassfish.main.resources</groupId>
-            <artifactId>javamail-runtime</artifactId>
+            <artifactId>mail-runtime</artifactId>
             <version>${project.version}</version>
             <scope>runtime</scope>
         </dependency>
diff --git a/appserver/connectors/connectors-runtime/pom.xml b/appserver/connectors/connectors-runtime/pom.xml
index 1738492..533af03 100644
--- a/appserver/connectors/connectors-runtime/pom.xml
+++ b/appserver/connectors/connectors-runtime/pom.xml
@@ -168,7 +168,7 @@
         </dependency>
         <dependency>
             <groupId>org.glassfish.main.resources</groupId>
-            <artifactId>javamail-connector</artifactId>
+            <artifactId>mail-connector</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
diff --git a/appserver/connectors/connectors-runtime/src/main/java/com/sun/enterprise/resource/deployer/MailSessionDeployer.java b/appserver/connectors/connectors-runtime/src/main/java/com/sun/enterprise/resource/deployer/MailSessionDeployer.java
index 478e3b9..d05cf8e 100644
--- a/appserver/connectors/connectors-runtime/src/main/java/com/sun/enterprise/resource/deployer/MailSessionDeployer.java
+++ b/appserver/connectors/connectors-runtime/src/main/java/com/sun/enterprise/resource/deployer/MailSessionDeployer.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2020 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
@@ -29,7 +29,7 @@
 import org.glassfish.deployment.common.RootDeploymentDescriptor;
 import org.glassfish.javaee.services.CommonResourceProxy;
 import org.glassfish.resourcebase.resources.api.ResourceInfo;
-import org.glassfish.resources.javamail.config.MailResource;
+import org.glassfish.resources.mail.config.MailResource;
 import org.glassfish.resourcebase.resources.api.ResourceConflictException;
 import org.glassfish.resourcebase.resources.api.ResourceDeployer;
 import org.glassfish.resourcebase.resources.api.ResourceDeployerInfo;
diff --git a/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/glassfish-resources_1_5.dtd b/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/glassfish-resources_1_5.dtd
index 81c01d4..ec50aee 100644
--- a/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/glassfish-resources_1_5.dtd
+++ b/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/glassfish-resources_1_5.dtd
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2010, 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2010, 2020 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
@@ -139,7 +139,7 @@
 
 
 <!-- mail-resource
-    The mail-resource element describes a javax.mail.Session resource 
+    The mail-resource element describes a jakarta.mail.Session resource 
 
   attributes
     host                                                                       
diff --git a/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_0.dtd b/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_0.dtd
index c701f75..56f1c09 100644
--- a/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_0.dtd
+++ b/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_0.dtd
@@ -1,24 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2018 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
-
--->
-
-<!--
-
+    Copyright (c) 2018, 2020 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
@@ -214,7 +197,7 @@
 
 
 <!-- mail-resource
-    The mail-resource element describes a javax.mail.Session resource 
+    The mail-resource element describes a jakarta.mail.Session resource 
 
   attributes
     host                                                                       
diff --git a/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_1.dtd b/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_1.dtd
index c701f75..56f1c09 100644
--- a/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_1.dtd
+++ b/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_1.dtd
@@ -1,24 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2018 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
-
--->
-
-<!--
-
+    Copyright (c) 2018, 2020 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
@@ -214,7 +197,7 @@
 
 
 <!-- mail-resource
-    The mail-resource element describes a javax.mail.Session resource 
+    The mail-resource element describes a jakarta.mail.Session resource 
 
   attributes
     host                                                                       
diff --git a/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_2.dtd b/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_2.dtd
index 28d0c64..7c63ff2 100644
--- a/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_2.dtd
+++ b/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_2.dtd
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2006, 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2006, 2020 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
@@ -206,7 +206,7 @@
 
 
 <!-- mail-resource
-    The mail-resource element describes a javax.mail.Session resource 
+    The mail-resource element describes a jakarta.mail.Session resource 
 
   attributes
     host                                                                       
diff --git a/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_3.dtd b/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_3.dtd
index c6c34b9..bf5f6b0 100644
--- a/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_3.dtd
+++ b/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_3.dtd
@@ -1,24 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2018 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
-
--->
-
-<!--
-
+    Copyright (c) 2018, 2020 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
@@ -156,7 +139,7 @@
 
 
 <!-- mail-resource
-    The mail-resource element describes a javax.mail.Session resource 
+    The mail-resource element describes a jakarta.mail.Session resource 
 
   attributes
     host                                                                       
diff --git a/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_4.dtd b/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_4.dtd
index b7cde87..5adad2c 100644
--- a/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_4.dtd
+++ b/appserver/connectors/descriptors/src/main/resources/glassfish/lib/dtds/sun-resources_1_4.dtd
@@ -1,24 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2018 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
-
--->
-
-<!--
-
+    Copyright (c) 2018, 2020 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
@@ -156,7 +139,7 @@
 
 
 <!-- mail-resource
-    The mail-resource element describes a javax.mail.Session resource 
+    The mail-resource element describes a jakarta.mail.Session resource 
 
   attributes
     host                                                                       
diff --git a/appserver/core/api-exporter-fragment/pom.xml b/appserver/core/api-exporter-fragment/pom.xml
index 46cfc34..41f32c0 100755
--- a/appserver/core/api-exporter-fragment/pom.xml
+++ b/appserver/core/api-exporter-fragment/pom.xml
@@ -155,11 +155,11 @@
 javax.lang.model.element; \
 javax.lang.model.type; \
 javax.lang.model.util; \
-javax.mail; \
-javax.mail.event; \
-javax.mail.internet; \
-javax.mail.search; \
-javax.mail.util; \
+jakarta.mail; \
+jakarta.mail.event; \
+jakarta.mail.internet; \
+jakarta.mail.search; \
+jakarta.mail.util; \
 javax.management; \
 javax.management.j2ee; \
 javax.management.j2ee.statistics; \
diff --git a/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/ResourceReferenceDescriptor.java b/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/ResourceReferenceDescriptor.java
index cd32908..9c90c4f 100644
--- a/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/ResourceReferenceDescriptor.java
+++ b/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/ResourceReferenceDescriptor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2020 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
@@ -55,7 +55,7 @@
     //START OF IASRI 4633229
     private static final String CONNECTOR_RESOURCE_TYPE = "javax.resource.cci.ConnectionFactory";    
     //END OF IASRI 4633229
-    private static final String MAIL_RESOURCE_TYPE = "javax.mail.Session";    
+    private static final String MAIL_RESOURCE_TYPE = "jakarta.mail.Session";    
 
     // start IASRI 4734197
     private static final String JDBC_RESOURCE_TYPE = "javax.sql.DataSource";    
@@ -266,8 +266,8 @@
     }
 
     /**
-     * Return true if this resource is to a JavaMail session object.
-     * @return true if the resource is a JavaMail session object.
+     * Return true if this resource is to a Jakarta Mail session object.
+     * @return true if the resource is a Jakarta Mail session object.
      */
     public boolean isMailResource() {
         //START OF IASRI 4650786
diff --git a/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/annotation/handlers/ResourceHandler.java b/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/annotation/handlers/ResourceHandler.java
index bf0f2a3..2fd71eb 100644
--- a/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/annotation/handlers/ResourceHandler.java
+++ b/appserver/deployment/dol/src/main/java/com/sun/enterprise/deployment/annotation/handlers/ResourceHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2020 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
@@ -291,7 +291,7 @@
                 resourceType.getName().equals("javax.jms.QueueConnectionFactory") ||
                 resourceType.getName().equals("javax.jms.TopicConnectionFactory") ||
                 resourceType == webServiceContext ||
-                resourceType.getName().equals("javax.mail.Session") || 
+                resourceType.getName().equals("jakarta.mail.Session") || 
                 resourceType.getName().equals("java.net.URL") ||
                 resourceType.getName().equals("javax.resource.cci.ConnectionFactory") ||
                 resourceType == org.omg.CORBA_2_3.ORB.class || 
diff --git a/appserver/extras/embedded/all/pom.xml b/appserver/extras/embedded/all/pom.xml
index 89a4f1f..54b9e1c 100644
--- a/appserver/extras/embedded/all/pom.xml
+++ b/appserver/extras/embedded/all/pom.xml
@@ -399,6 +399,11 @@
          <optional>true</optional>
      </dependency>
      <dependency>
+         <groupId>com.sun.activation</groupId>
+         <artifactId>jakarta.activation</artifactId>
+         <optional>true</optional>
+     </dependency>
+     <dependency>
          <groupId>jakarta.servlet</groupId>
          <artifactId>jakarta.servlet-api</artifactId>
          <optional>true</optional>
@@ -828,13 +833,13 @@
         </dependency>
         <dependency>
             <groupId>org.glassfish.main.resources</groupId>
-            <artifactId>javamail-connector</artifactId>
+            <artifactId>mail-connector</artifactId>
             <version>${project.version}</version>
             <optional>true</optional>
         </dependency>
         <dependency>
             <groupId>org.glassfish.main.resources</groupId>
-            <artifactId>javamail-runtime</artifactId>
+            <artifactId>mail-runtime</artifactId>
             <version>${project.version}</version>
             <optional>true</optional>
         </dependency>
diff --git a/appserver/extras/embedded/shell/glassfish-embedded-static-shell/pom.xml b/appserver/extras/embedded/shell/glassfish-embedded-static-shell/pom.xml
index ea224d4..59611d4 100755
--- a/appserver/extras/embedded/shell/glassfish-embedded-static-shell/pom.xml
+++ b/appserver/extras/embedded/shell/glassfish-embedded-static-shell/pom.xml
@@ -657,13 +657,13 @@
         </dependency>
         <dependency>
             <groupId>org.glassfish.main.resources</groupId>
-            <artifactId>javamail-connector</artifactId>
+            <artifactId>mail-connector</artifactId>
             <version>${project.version}</version>
             <optional>true</optional>
         </dependency>
         <dependency>
             <groupId>org.glassfish.main.resources</groupId>
-            <artifactId>javamail-runtime</artifactId>
+            <artifactId>mail-runtime</artifactId>
             <version>${project.version}</version>
             <optional>true</optional>
         </dependency>
diff --git a/appserver/extras/embedded/web/pom.xml b/appserver/extras/embedded/web/pom.xml
index 26fead8..0fad148 100644
--- a/appserver/extras/embedded/web/pom.xml
+++ b/appserver/extras/embedded/web/pom.xml
@@ -721,6 +721,11 @@
         <optional>true</optional>
     </dependency>
     <dependency>
+        <groupId>com.sun.activation</groupId>
+        <artifactId>jakarta.activation</artifactId>
+        <optional>true</optional>
+    </dependency>
+    <dependency>
         <groupId>jakarta.servlet</groupId>
         <artifactId>jakarta.servlet-api</artifactId>
         <optional>true</optional>
@@ -779,13 +784,13 @@
     </dependency>
     <dependency>
         <groupId>org.glassfish.main.resources</groupId>
-        <artifactId>javamail-connector</artifactId>
+        <artifactId>mail-connector</artifactId>
         <version>${project.version}</version>
         <optional>true</optional>
     </dependency>
     <dependency>
         <groupId>org.glassfish.main.resources</groupId>
-        <artifactId>javamail-runtime</artifactId>
+        <artifactId>mail-runtime</artifactId>
         <version>${project.version}</version>
         <optional>true</optional>
     </dependency>
diff --git a/appserver/extras/javaee/manifest-jar/pom.xml b/appserver/extras/javaee/manifest-jar/pom.xml
index c636f02..e99a3f8 100644
--- a/appserver/extras/javaee/manifest-jar/pom.xml
+++ b/appserver/extras/javaee/manifest-jar/pom.xml
@@ -34,7 +34,7 @@
                 <configuration>
                     <archive>
                         <manifestEntries>
-                            <Class-Path>../modules/jakarta.servlet-api.jar ../modules/endorsed/jakarta.annotation-api.jar ../modules/jakarta.ejb-api.jar ../modules/jakarta.transaction-api.jar ../modules/jakarta.enterprise.deploy-api.jar ../modules/jakarta.management.j2ee-api.jar ../modules/jakarta.resource-api.jar ../modules/jakarta.security.auth.message-api.jar ../modules/jakarta.authorization-api.jar ../modules/webservices-osgi.jar ../modules/jaxb-osgi.jar ../modules/endorsed/jakarta.xml.bind-api.jar ../modules/endorsed/webservices-api-osgi.jar ../modules/jakarta.xml.rpc-api.jar ../modules/jakarta.xml.registry-api.jar ../modules/jakarta.mail.jar ../modules/jakarta.faces.jar ../modules/jakarta.servlet.jsp-api.jar ../modules/jakarta.el.jar ../modules/jakarta.servlet.jsp.jstl-api.jar ../modules/jakarta.persistence.jar ../modules/jakarta.jms-api.jar ../modules/bean-validator.jar ../modules/cdi-api.jar ../../mq/lib/jaxm-api.jar ../modules/jakarta.ws.rs-api.jar ../modules/jakarta.json.jar ../modules/jakarta.json.bind-api.jar ../modules/jakarta.websocket-api.jar ../modules/jakarta.enterprise.concurrent-api.jar ../modules/jakarta.batch-api.jar ../modules/jakarta.inject.jar</Class-Path>
+                            <Class-Path>../modules/jakarta.servlet-api.jar ../modules/endorsed/jakarta.annotation-api.jar ../modules/jakarta.ejb-api.jar ../modules/jakarta.transaction-api.jar ../modules/jakarta.enterprise.deploy-api.jar ../modules/jakarta.management.j2ee-api.jar ../modules/jakarta.resource-api.jar ../modules/jakarta.security.auth.message-api.jar ../modules/jakarta.authorization-api.jar ../modules/webservices-osgi.jar ../modules/jaxb-osgi.jar ../modules/endorsed/jakarta.xml.bind-api.jar ../modules/endorsed/webservices-api-osgi.jar ../modules/jakarta.xml.rpc-api.jar ../modules/jakarta.xml.registry-api.jar ../modules/jakarta.mail.jar ../modules/jakarta.activation.jar ../modules/jakarta.faces.jar ../modules/jakarta.servlet.jsp-api.jar ../modules/jakarta.el.jar ../modules/jakarta.servlet.jsp.jstl-api.jar ../modules/jakarta.persistence.jar ../modules/jakarta.jms-api.jar ../modules/bean-validator.jar ../modules/cdi-api.jar ../../mq/lib/jaxm-api.jar ../modules/jakarta.ws.rs-api.jar ../modules/jakarta.json.jar ../modules/jakarta.json.bind-api.jar ../modules/jakarta.websocket-api.jar ../modules/jakarta.enterprise.concurrent-api.jar ../modules/jakarta.batch-api.jar ../modules/jakarta.inject.jar</Class-Path>
                             <GlassFish-ServerExcluded>true</GlassFish-ServerExcluded>
                         </manifestEntries>
                     </archive>
diff --git a/appserver/featuresets/web/pom.xml b/appserver/featuresets/web/pom.xml
index f6bb18f..424c062 100644
--- a/appserver/featuresets/web/pom.xml
+++ b/appserver/featuresets/web/pom.xml
@@ -631,6 +631,16 @@
             </exclusions>
         </dependency>
         <dependency>
+            <groupId>com.sun.activation</groupId>
+            <artifactId>jakarta.activation</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>*</groupId>
+                    <artifactId>*</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
             <groupId>jakarta.servlet</groupId>
             <artifactId>jakarta.servlet-api</artifactId>
             <exclusions>
@@ -781,7 +791,7 @@
         </dependency>
         <dependency>
             <groupId>org.glassfish.main.resources</groupId>
-            <artifactId>javamail-connector</artifactId>
+            <artifactId>mail-connector</artifactId>
             <version>${project.version}</version>
             <exclusions>
                 <exclusion>
@@ -792,7 +802,7 @@
         </dependency>
         <dependency>
             <groupId>org.glassfish.main.resources</groupId>
-            <artifactId>javamail-runtime</artifactId>
+            <artifactId>mail-runtime</artifactId>
             <version>${project.version}</version>
             <exclusions>
                 <exclusion>
diff --git a/appserver/logging/logging.properties b/appserver/logging/logging.properties
index e7e22ab..e11faf3 100644
--- a/appserver/logging/logging.properties
+++ b/appserver/logging/logging.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1997, 2020 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
@@ -19,7 +19,7 @@
 javax.enterprise.system.webservices.saaj.level=INFO
 javax.enterprise.system.container.ejb.level=INFO
 javax.enterprise.system.container.ejb.mdb.level=INFO
-javax.enterprise.resource.javamail.level=INFO
+javax.enterprise.resource.mail.level=INFO
 javax.enterprise.system.webservices.rpc.level=INFO
 javax.enterprise.system.container.web.level=INFO
 javax.enterprise.resource.jms.level=INFO
@@ -36,7 +36,7 @@
 javax.enterprise.resource.webcontainer.jsf.timing.level=INFO
 javax.org.glassfish.persistence.level=INFO
 javax.enterprise.system.tools.backup.level=INFO
-javax.mail.level=INFO
+jakarta.mail.level=INFO
 org.glassfish.admingui.level=INFO
 org.glassfish.naming.level=INFO
 org.eclipse.persistence.session.level=INFO
diff --git a/appserver/pom.xml b/appserver/pom.xml
index 48864ea..4f984d0 100644
--- a/appserver/pom.xml
+++ b/appserver/pom.xml
@@ -176,9 +176,9 @@
                                 <version>${mail.version}</version>
                             </artifact>
                             <jarType>impl</jarType>
-                            <specVersion>1.6</specVersion>
-                            <implVersion>1.6.3</implVersion>
-                            <apiPackage>javax.mail</apiPackage>
+                            <specVersion>2.0</specVersion>
+                            <implVersion>2.0.0</implVersion>
+                            <apiPackage>jakarta.mail</apiPackage>
                             <implNamespace>com.sun.mail</implNamespace>
                         </spec>
                         <spec>
diff --git a/appserver/resources/javamail/javamail-runtime/osgi.bundle b/appserver/resources/javamail/javamail-runtime/osgi.bundle
deleted file mode 100644
index 8a4a802..0000000
--- a/appserver/resources/javamail/javamail-runtime/osgi.bundle
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Copyright (c) 2011, 2018 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
-#
-
--exportcontents: org.glassfish.resources.javamail.annotation.handler; \
-                 org.glassfish.resources.javamail.naming; version=${project.osgi.version}
diff --git a/appserver/resources/javamail/javamail-connector/osgi.bundle b/appserver/resources/mail/mail-connector/osgi.bundle
similarity index 75%
rename from appserver/resources/javamail/javamail-connector/osgi.bundle
rename to appserver/resources/mail/mail-connector/osgi.bundle
index 6f17648..eb9bc29 100644
--- a/appserver/resources/javamail/javamail-connector/osgi.bundle
+++ b/appserver/resources/mail/mail-connector/osgi.bundle
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2010, 2018 Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2020 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
@@ -14,5 +14,5 @@
 # SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 #
 
--exportcontents: org.glassfish.resources.javamail; \
-                 org.glassfish.resources.javamail.config; version=${project.osgi.version}
+-exportcontents: org.glassfish.resources.mail; \
+                 org.glassfish.resources.mail.config; version=${project.osgi.version}
diff --git a/appserver/resources/javamail/javamail-connector/pom.xml b/appserver/resources/mail/mail-connector/pom.xml
similarity index 94%
rename from appserver/resources/javamail/javamail-connector/pom.xml
rename to appserver/resources/mail/mail-connector/pom.xml
index 79265e0..cb67b28 100644
--- a/appserver/resources/javamail/javamail-connector/pom.xml
+++ b/appserver/resources/mail/mail-connector/pom.xml
@@ -19,15 +19,15 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <parent>
         <groupId>org.glassfish.main.resources</groupId>
-        <artifactId>javamail</artifactId>
+        <artifactId>mail</artifactId>
         <version>6.0.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-    <artifactId>javamail-connector</artifactId>
+    <artifactId>mail-connector</artifactId>
     <packaging>glassfish-jar</packaging>
     
-    <name>JavaMail Connector</name>
-    <description>Connector (glue) for GlassFish JavaMail Support</description>
+    <name>Jakarta Mail Connector</name>
+    <description>Connector (glue) for GlassFish Jakarta Mail Support</description>
 
     <developers>
         <developer>
diff --git a/appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/LogOutputStream.java b/appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/LogOutputStream.java
similarity index 96%
rename from appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/LogOutputStream.java
rename to appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/LogOutputStream.java
index 200dd1e..2628688 100644
--- a/appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/LogOutputStream.java
+++ b/appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/LogOutputStream.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2020 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.resources.javamail;
+package org.glassfish.resources.mail;
 
 import java.io.IOException;
 import java.io.OutputStream;
diff --git a/appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/MailLogOutputStream.java b/appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/MailLogOutputStream.java
similarity index 78%
rename from appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/MailLogOutputStream.java
rename to appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/MailLogOutputStream.java
index 01ef340..3225e7c 100644
--- a/appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/MailLogOutputStream.java
+++ b/appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/MailLogOutputStream.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2020 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
@@ -14,20 +14,20 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.resources.javamail;
+package org.glassfish.resources.mail;
 
 import java.util.logging.Level;
 import org.glassfish.logging.annotation.LoggerInfo;
 
 /**
- * Capture JavaMail debug output.
+ * Capture Jakarta Mail debug output.
  */
 public class MailLogOutputStream extends LogOutputStream {
-    @LoggerInfo(subsystem = "MAIL", description = "Java Mail Logger", publish=true)
-    private static final String JAVAMAIL_DOMAIN = "javax.mail";
+    @LoggerInfo(subsystem = "MAIL", description = "Jakarta Mail Logger", publish=true)
+    private static final String MAIL_DOMAIN = "jakarta.mail";
 
     public MailLogOutputStream() {
-        super(JAVAMAIL_DOMAIN, Level.FINE);
+        super(MAIL_DOMAIN, Level.FINE);
     }
 
     /**
diff --git a/appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/MailSessionAuthenticator.java b/appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/MailSessionAuthenticator.java
similarity index 92%
rename from appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/MailSessionAuthenticator.java
rename to appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/MailSessionAuthenticator.java
index e47dbea..4a4b057 100644
--- a/appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/MailSessionAuthenticator.java
+++ b/appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/MailSessionAuthenticator.java
@@ -14,11 +14,11 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.resources.javamail;
+package org.glassfish.resources.mail;
 
 import java.util.Properties;
-import javax.mail.Authenticator;
-import javax.mail.PasswordAuthentication;
+import jakarta.mail.Authenticator;
+import jakarta.mail.PasswordAuthentication;
 
 /**
  *
diff --git a/appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/admin/cli/CreateJavaMailResource.java b/appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/admin/cli/CreateMailResource.java
similarity index 90%
rename from appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/admin/cli/CreateJavaMailResource.java
rename to appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/admin/cli/CreateMailResource.java
index cf12b60..57a4a66 100644
--- a/appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/admin/cli/CreateJavaMailResource.java
+++ b/appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/admin/cli/CreateMailResource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2020 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.resources.javamail.admin.cli;
+package org.glassfish.resources.mail.admin.cli;
 
 import com.sun.enterprise.config.serverbeans.Domain;
 import com.sun.enterprise.config.serverbeans.Resources;
@@ -45,17 +45,17 @@
 @RestEndpoints({
         @RestEndpoint(configBean=Resources.class,
                 opType=RestEndpoint.OpType.POST,
-                path="create-javamail-resource",
-                description="create-javamail-resource")
+                path="create-mail-resource",
+                description="create-mail-resource")
 })
 @org.glassfish.api.admin.ExecuteOn(RuntimeType.ALL)
-@Service(name="create-javamail-resource")
+@Service(name="create-mail-resource")
 @PerLookup
-@I18n("create.javamail.resource")
-public class CreateJavaMailResource implements AdminCommand {
+@I18n("create.mail.resource")
+public class CreateMailResource implements AdminCommand {
 
     final private static LocalStringManagerImpl localStrings =
-            new LocalStringManagerImpl(CreateJavaMailResource.class);
+            new LocalStringManagerImpl(CreateMailResource.class);
 
     @Param(name="mailhost", alias="host")
     private String mailHost;
@@ -102,7 +102,7 @@
     private Domain domain;
 
     @Inject
-    private org.glassfish.resources.javamail.admin.cli.JavaMailResourceManager mailResMgr;
+    private org.glassfish.resources.mail.admin.cli.MailResourceManager mailResMgr;
 
     /**
      * Executes the command with the command parameters passed as Properties
@@ -132,7 +132,7 @@
         try {
             rs = mailResMgr.create(domain.getResources(), attributes, properties, target);
         } catch(Exception e) {
-            Logger.getLogger(CreateJavaMailResource.class.getName()).log(Level.SEVERE,
+            Logger.getLogger(CreateMailResource.class.getName()).log(Level.SEVERE,
                     "Unable to create Mail Resource " + jndiName, e);
             String def = "Mail resource: {0} could not be created";
             report.setMessage(localStrings.getLocalString("create.mail.resource.fail",
diff --git a/appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/admin/cli/DeleteJavaMailResource.java b/appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/admin/cli/DeleteMailResource.java
similarity index 91%
rename from appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/admin/cli/DeleteJavaMailResource.java
rename to appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/admin/cli/DeleteMailResource.java
index dfa1939..079ec18 100644
--- a/appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/admin/cli/DeleteJavaMailResource.java
+++ b/appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/admin/cli/DeleteMailResource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2020 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.resources.javamail.admin.cli;
+package org.glassfish.resources.mail.admin.cli;
 
 import com.sun.enterprise.config.serverbeans.Domain;
 import com.sun.enterprise.config.serverbeans.Resources;
@@ -27,7 +27,7 @@
 import org.glassfish.config.support.CommandTarget;
 import org.glassfish.config.support.TargetType;
 import org.glassfish.hk2.api.PerLookup;
-import org.glassfish.resources.javamail.config.MailResource;
+import org.glassfish.resources.mail.config.MailResource;
 import org.glassfish.resourcebase.resources.util.ResourceUtil;
 import org.jvnet.hk2.annotations.Service;
 import org.jvnet.hk2.config.ConfigSupport;
@@ -46,18 +46,18 @@
 @RestEndpoints({
         @RestEndpoint(configBean = Resources.class,
                 opType = RestEndpoint.OpType.DELETE,
-                path = "delete-javamail-resource",
-                description = "delete-javamail-resource")
+                path = "delete-mail-resource",
+                description = "delete-mail-resource")
 })
 
 @org.glassfish.api.admin.ExecuteOn(value={RuntimeType.ALL})
-@Service(name = "delete-javamail-resource")
+@Service(name = "delete-mail-resource")
 @PerLookup
-@I18n("delete.javamail.resource")
-public class DeleteJavaMailResource implements AdminCommand {
+@I18n("delete.mail.resource")
+public class DeleteMailResource implements AdminCommand {
 
     final private static LocalStringManagerImpl localStrings =
-            new LocalStringManagerImpl(DeleteJavaMailResource.class);
+            new LocalStringManagerImpl(DeleteMailResource.class);
 
     @Param(optional = true, defaultValue = SystemPropertyConstants.DAS_SERVER_NAME)
     private String target;
diff --git a/appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/admin/cli/ListJavaMailResources.java b/appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/admin/cli/ListMailResources.java
similarity index 86%
rename from appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/admin/cli/ListJavaMailResources.java
rename to appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/admin/cli/ListMailResources.java
index 71f065b..c0ad73c 100644
--- a/appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/admin/cli/ListJavaMailResources.java
+++ b/appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/admin/cli/ListMailResources.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2020 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.resources.javamail.admin.cli;
+package org.glassfish.resources.mail.admin.cli;
 
 import com.sun.enterprise.config.serverbeans.Domain;
 import com.sun.enterprise.config.serverbeans.Resources;
@@ -27,7 +27,7 @@
 import org.glassfish.config.support.CommandTarget;
 import org.glassfish.config.support.TargetType;
 import org.glassfish.hk2.api.PerLookup;
-import org.glassfish.resources.javamail.config.MailResource;
+import org.glassfish.resources.mail.config.MailResource;
 import org.glassfish.resourcebase.resources.util.BindableResourcesHelper;
 import org.jvnet.hk2.annotations.Service;
 
@@ -42,20 +42,20 @@
  */
 @TargetType(value={CommandTarget.DAS,CommandTarget.DOMAIN, CommandTarget.CLUSTER, CommandTarget.STANDALONE_INSTANCE, CommandTarget.CLUSTERED_INSTANCE })
 @ExecuteOn(value={RuntimeType.DAS})
-@Service(name="list-javamail-resources")
+@Service(name="list-mail-resources")
 @PerLookup
 @CommandLock(CommandLock.LockType.NONE)
-@I18n("list.javamail.resources")
+@I18n("list.mail.resources")
 @RestEndpoints({
     @RestEndpoint(configBean=Resources.class,
         opType=RestEndpoint.OpType.GET, 
-        path="list-javamail-resources", 
-        description="List JavaMail Resources")
+        path="list-mail-resources", 
+        description="List Jakarta Mail Resources")
 })
-public class ListJavaMailResources implements AdminCommand {
+public class ListMailResources implements AdminCommand {
 
     final private static LocalStringManagerImpl localStrings =
-            new LocalStringManagerImpl(ListJavaMailResources.class);
+            new LocalStringManagerImpl(ListMailResources.class);
 
     @Param(primary = true, optional = true, defaultValue = SystemPropertyConstants.DAS_SERVER_NAME)
     private String targetOperand;
@@ -97,7 +97,7 @@
             report.setActionExitCode(ActionReport.ExitCode.SUCCESS);
         } catch (Exception e) {
             report.setMessage(localStrings.getLocalString(
-                    "list.javamail.resources.failed",
+                    "list.mail.resources.failed",
                     "Unable to list mail resources") + " " +
                     e.getLocalizedMessage());
             report.setActionExitCode(ActionReport.ExitCode.FAILURE);
diff --git a/appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/admin/cli/LocalStrings.properties b/appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/admin/cli/LocalStrings.properties
similarity index 91%
rename from appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/admin/cli/LocalStrings.properties
rename to appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/admin/cli/LocalStrings.properties
index c9bcbea..aaab176 100644
--- a/appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/admin/cli/LocalStrings.properties
+++ b/appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/admin/cli/LocalStrings.properties
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2010, 2018 Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2010, 2020 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
@@ -22,8 +22,8 @@
 create.mail.resource.noFrom=From not defined for Mail Resource.
 create.mail.resource.success=Mail Resource {0} created.
 create.mail.resource.fail=Unable to create Mail Resource {0}.
-list.javamail.resources.empty=Nothing to list.
-list.javamail.resources.failed=Unable to list mail resources.
+list.mail.resources.empty=Nothing to list.
+list.mail.resources.failed=Unable to list mail resources.
 delete.mail.resource.noJndiName=No JNDI name defined for Mail Resource.
 delete.mail.resource.notfound=A Mail resource named {0} does not exist.
 delete.mail.resource.success=Mail resource {0} deleted.
diff --git a/appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/admin/cli/JavaMailResourceManager.java b/appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/admin/cli/MailResourceManager.java
similarity index 95%
rename from appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/admin/cli/JavaMailResourceManager.java
rename to appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/admin/cli/MailResourceManager.java
index fb0d4ee..21cf00e 100644
--- a/appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/admin/cli/JavaMailResourceManager.java
+++ b/appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/admin/cli/MailResourceManager.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2020 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.resources.javamail.admin.cli;
+package org.glassfish.resources.mail.admin.cli;
 
 import com.sun.enterprise.config.serverbeans.Resource;
 import com.sun.enterprise.config.serverbeans.Resources;
@@ -23,7 +23,7 @@
 import org.glassfish.api.I18n;
 import org.glassfish.resourcebase.resources.api.ResourceStatus;
 import org.glassfish.resourcebase.resources.util.BindableResourcesHelper;
-import org.glassfish.resources.javamail.config.MailResource;
+import org.glassfish.resources.mail.config.MailResource;
 import org.glassfish.resourcebase.resources.util.ResourceUtil;
 import org.jvnet.hk2.annotations.Service;
 import org.jvnet.hk2.config.ConfigSupport;
@@ -42,10 +42,10 @@
 
 @Service(name = ServerTags.MAIL_RESOURCE)
 @I18n("add.resources")
-public class JavaMailResourceManager implements org.glassfish.resources.admin.cli.ResourceManager {
+public class MailResourceManager implements org.glassfish.resources.admin.cli.ResourceManager {
 
     final private static LocalStringManagerImpl localStrings =
-            new LocalStringManagerImpl(JavaMailResourceManager.class);
+            new LocalStringManagerImpl(MailResourceManager.class);
     private static final String DESCRIPTION = ServerTags.DESCRIPTION;
 
     private String mailHost = null;
diff --git a/appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/config/MailResource.java b/appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/config/MailResource.java
similarity index 95%
rename from appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/config/MailResource.java
rename to appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/config/MailResource.java
index 526e8e5..32f6f8d 100644
--- a/appserver/resources/javamail/javamail-connector/src/main/java/org/glassfish/resources/javamail/config/MailResource.java
+++ b/appserver/resources/mail/mail-connector/src/main/java/org/glassfish/resources/mail/config/MailResource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2020 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.resources.javamail.config;
+package org.glassfish.resources.mail.config;
 
 import com.sun.enterprise.config.serverbeans.BindableResource;
 import com.sun.enterprise.config.serverbeans.Resource;
@@ -46,15 +46,15 @@
 }) */
 
 @Configured
-@ResourceConfigCreator(commandName="create-javamail-resource")
+@ResourceConfigCreator(commandName="create-mail-resource")
 @RestRedirects({
- @RestRedirect(opType = RestRedirect.OpType.POST, commandName = "create-javamail-resource"),
- @RestRedirect(opType = RestRedirect.OpType.DELETE, commandName = "delete-javamail-resource")
+ @RestRedirect(opType = RestRedirect.OpType.POST, commandName = "create-mail-resource"),
+ @RestRedirect(opType = RestRedirect.OpType.DELETE, commandName = "delete-mail-resource")
 })
 @ResourceTypeOrder(deploymentOrder= ResourceDeploymentOrder.MAIL_RESOURCE)
 @UniqueResourceNameConstraint(message="{resourcename.isnot.unique}", payload=MailResource.class)
 /**
- * The mail-resource element describes a javax.mail.Session resource 
+ * The mail-resource element describes a jakarta.mail.Session resource 
  */
 public interface MailResource extends ConfigBeanProxy, Resource, PropertyBag, BindableResource {
 
diff --git a/appserver/resources/javamail/javamail-connector/src/test/java/org/glassfish/resources/javamail/admin/cli/CreateJavaMailResourceTest.java b/appserver/resources/mail/mail-connector/src/test/java/org/glassfish/resources/mail/admin/cli/CreateMailResourceTest.java
similarity index 76%
rename from appserver/resources/javamail/javamail-connector/src/test/java/org/glassfish/resources/javamail/admin/cli/CreateJavaMailResourceTest.java
rename to appserver/resources/mail/mail-connector/src/test/java/org/glassfish/resources/mail/admin/cli/CreateMailResourceTest.java
index da9636a..cf2f1b1 100644
--- a/appserver/resources/javamail/javamail-connector/src/test/java/org/glassfish/resources/javamail/admin/cli/CreateJavaMailResourceTest.java
+++ b/appserver/resources/mail/mail-connector/src/test/java/org/glassfish/resources/mail/admin/cli/CreateMailResourceTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2020 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.resources.javamail.admin.cli;
+package org.glassfish.resources.mail.admin.cli;
 
 import com.sun.enterprise.config.serverbeans.*;
 import com.sun.enterprise.util.SystemPropertyConstants;
@@ -30,7 +30,7 @@
 import com.sun.enterprise.config.serverbeans.Resource;
 import com.sun.enterprise.config.serverbeans.ResourceRef;
 import com.sun.enterprise.config.serverbeans.Resources;
-import org.glassfish.resources.javamail.config.MailResource;
+import org.glassfish.resources.mail.config.MailResource;
 import org.glassfish.tests.utils.ConfigApiTest;
 import org.junit.After;
 
@@ -43,7 +43,7 @@
 import org.jvnet.hk2.config.TransactionFailure;
 
 
-public class CreateJavaMailResourceTest extends ConfigApiTest {
+public class CreateMailResourceTest extends ConfigApiTest {
 
     private ServiceLocator habitat;
     private Resources resources;
@@ -66,7 +66,7 @@
         assertTrue(resources != null);
         parameters = new ParameterMap();
         context = new AdminCommandContextImpl(
-                LogDomains.getLogger(CreateJavaMailResourceTest.class, LogDomains.ADMIN_LOGGER),
+                LogDomains.getLogger(CreateMailResourceTest.class, LogDomains.ADMIN_LOGGER),
                 new PropsFileActionReporter());
         cr = habitat.getService(CommandRunner.class);
         assertTrue(cr != null);
@@ -74,19 +74,19 @@
 
     @After
     public void tearDown() throws TransactionFailure {
-        org.glassfish.resources.javamail.admin.cli.DeleteJavaMailResource deleteCommand = habitat.getService(org.glassfish.resources.javamail.admin.cli.DeleteJavaMailResource.class);
+        org.glassfish.resources.mail.admin.cli.DeleteMailResource deleteCommand = habitat.getService(org.glassfish.resources.mail.admin.cli.DeleteMailResource.class);
         parameters = new ParameterMap();
         parameters.set("jndi_name", "mail/MyMailSession");
 
-        cr.getCommandInvocation("delete-javamail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(deleteCommand);
+        cr.getCommandInvocation("delete-mail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(deleteCommand);
         parameters = new ParameterMap();
         parameters.set("jndi_name", "dupRes");
-        cr.getCommandInvocation("delete-javamail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(deleteCommand);
+        cr.getCommandInvocation("delete-mail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(deleteCommand);
     }
 
     /**
-     * Test of execute method, of class CreateJavaMailResource.
-     * asadmin create-javamail-resource --mailuser=test --mailhost=localhost
+     * Test of execute method, of class CreateMailResource.
+     * asadmin create-mail-resource --mailuser=test --mailhost=localhost
      * --fromaddress=test@sun.com mail/MyMailSession
      */
     @Test
@@ -95,9 +95,9 @@
         parameters.set("mailuser", "test");
         parameters.set("fromaddress", "test@sun.com");
         parameters.set("jndi_name", "mail/MyMailSession");
-        org.glassfish.resources.javamail.admin.cli.CreateJavaMailResource command = habitat.getService(org.glassfish.resources.javamail.admin.cli.CreateJavaMailResource.class);
+        org.glassfish.resources.mail.admin.cli.CreateMailResource command = habitat.getService(org.glassfish.resources.mail.admin.cli.CreateMailResource.class);
         assertTrue(command != null);
-        cr.getCommandInvocation("create-javamail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(command);
+        cr.getCommandInvocation("create-mail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(command);
         assertEquals(ActionReport.ExitCode.SUCCESS, context.getActionReport().getActionExitCode());
         boolean isCreated = false;
         for (Resource resource : resources.getResources()) {
@@ -138,10 +138,10 @@
     }
 
     /**
-     * Test of execute method, of class CreateJavaMailResource.
-     * asadmin create-javamail-resource --mailuser=test --mailhost=localhost
+     * Test of execute method, of class CreateMailResource.
+     * asadmin create-mail-resource --mailuser=test --mailhost=localhost
      * --fromaddress=test@sun.com dupRes
-     * asadmin create-javamail-resource --mailuser=test --mailhost=localhost
+     * asadmin create-mail-resource --mailuser=test --mailhost=localhost
      * --fromaddress=test@sun.com dupRes
      */
     @Test
@@ -150,9 +150,9 @@
         parameters.set("mailuser", "test");
         parameters.set("fromaddress", "test@sun.com");
         parameters.set("jndi_name", "dupRes");
-        org.glassfish.resources.javamail.admin.cli.CreateJavaMailResource command1 = habitat.getService(org.glassfish.resources.javamail.admin.cli.CreateJavaMailResource.class);
+        org.glassfish.resources.mail.admin.cli.CreateMailResource command1 = habitat.getService(org.glassfish.resources.mail.admin.cli.CreateMailResource.class);
         assertTrue(command1 != null);
-        cr.getCommandInvocation("create-javamail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(command1);
+        cr.getCommandInvocation("create-mail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(command1);
         assertEquals(ActionReport.ExitCode.SUCCESS, context.getActionReport().getActionExitCode());
         boolean isCreated = false;
         for (Resource resource : resources.getResources()) {
@@ -167,8 +167,8 @@
         }
         assertTrue(isCreated);
 
-        org.glassfish.resources.javamail.admin.cli.CreateJavaMailResource command2 = habitat.getService(org.glassfish.resources.javamail.admin.cli.CreateJavaMailResource.class);
-        cr.getCommandInvocation("create-javamail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(command2);
+        org.glassfish.resources.mail.admin.cli.CreateMailResource command2 = habitat.getService(org.glassfish.resources.mail.admin.cli.CreateMailResource.class);
+        cr.getCommandInvocation("create-mail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(command2);
         assertEquals(ActionReport.ExitCode.FAILURE, context.getActionReport().getActionExitCode());
         int numDupRes = 0;
         for (Resource resource : resources.getResources()) {
@@ -184,8 +184,8 @@
     }
 
     /**
-     * Test of execute method, of class CreateJavaMailResource when enabled has no value
-     * asadmin create-javamail-resource --mailuser=test --mailhost=localhost
+     * Test of execute method, of class CreateMailResource when enabled has no value
+     * asadmin create-mail-resource --mailuser=test --mailhost=localhost
      * --fromaddress=test@sun.com  --enabled=false --debug=true
      * --storeprotocol=pop
      * --storeprotocolclass=com.sun.mail.pop.POPStore
@@ -205,9 +205,9 @@
         parameters.set("transprotocol", "lmtp");
         parameters.set("transprotocolclass", "com.sun.mail.lmtp.LMTPTransport");
         parameters.set("jndi_name", "mail/MyMailSession");
-        org.glassfish.resources.javamail.admin.cli.CreateJavaMailResource command = habitat.getService(org.glassfish.resources.javamail.admin.cli.CreateJavaMailResource.class);
+        org.glassfish.resources.mail.admin.cli.CreateMailResource command = habitat.getService(org.glassfish.resources.mail.admin.cli.CreateMailResource.class);
         assertTrue(command != null);
-        cr.getCommandInvocation("create-javamail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(command);
+        cr.getCommandInvocation("create-mail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(command);
         assertEquals(ActionReport.ExitCode.SUCCESS, context.getActionReport().getActionExitCode());
         boolean isCreated = false;
         for (Resource resource : resources.getResources()) {
diff --git a/appserver/resources/javamail/javamail-connector/src/test/java/org/glassfish/resources/javamail/admin/cli/DeleteJavaMailResourceTest.java b/appserver/resources/mail/mail-connector/src/test/java/org/glassfish/resources/mail/admin/cli/DeleteMailResourceTest.java
similarity index 75%
rename from appserver/resources/javamail/javamail-connector/src/test/java/org/glassfish/resources/javamail/admin/cli/DeleteJavaMailResourceTest.java
rename to appserver/resources/mail/mail-connector/src/test/java/org/glassfish/resources/mail/admin/cli/DeleteMailResourceTest.java
index 32b5570..4e93a62 100644
--- a/appserver/resources/javamail/javamail-connector/src/test/java/org/glassfish/resources/javamail/admin/cli/DeleteJavaMailResourceTest.java
+++ b/appserver/resources/mail/mail-connector/src/test/java/org/glassfish/resources/mail/admin/cli/DeleteMailResourceTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2020 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.resources.javamail.admin.cli;
+package org.glassfish.resources.mail.admin.cli;
 
 import com.sun.enterprise.config.serverbeans.*;
 import com.sun.enterprise.util.SystemPropertyConstants;
@@ -30,7 +30,7 @@
 import com.sun.enterprise.config.serverbeans.Resource;
 import com.sun.enterprise.config.serverbeans.ResourceRef;
 import com.sun.enterprise.config.serverbeans.Resources;
-import org.glassfish.resources.javamail.config.MailResource;
+import org.glassfish.resources.mail.config.MailResource;
 import org.glassfish.tests.utils.ConfigApiTest;
 import org.junit.After;
 import static org.junit.Assert.assertEquals;
@@ -45,7 +45,7 @@
 import java.beans.PropertyVetoException;
 
 
-public class DeleteJavaMailResourceTest extends ConfigApiTest {
+public class DeleteMailResourceTest extends ConfigApiTest {
     private ServiceLocator habitat;
     private Resources resources;
     private ParameterMap parameters;
@@ -59,7 +59,7 @@
         cr = habitat.getService(CommandRunner.class);
         resources = habitat.<Domain>getService(Domain.class).getResources();
         context = new AdminCommandContextImpl(
-                LogDomains.getLogger(DeleteJavaMailResourceTest.class, LogDomains.ADMIN_LOGGER),
+                LogDomains.getLogger(DeleteMailResourceTest.class, LogDomains.ADMIN_LOGGER),
                 new PropsFileActionReporter());
     }
 
@@ -95,10 +95,10 @@
     }
 
     /**
-     * Test of execute method, of class DeleteJavaMailResource.
-     * asadmin create-javamail-resource --mailuser=test --mailhost=localhost
+     * Test of execute method, of class DeleteMailResource.
+     * asadmin create-mail-resource --mailuser=test --mailhost=localhost
      * --fromaddress=test@sun.com mail/MyMailSession
-     * delete-javamail-resource mail/MyMailSession
+     * delete-mail-resource mail/MyMailSession
      */
     @Test
     public void testExecuteSuccessDefaultTarget() {
@@ -106,16 +106,16 @@
         parameters.set("mailuser", "test");
         parameters.set("fromaddress", "test@sun.com");
         parameters.set("jndi_name", "mail/MyMailSession");
-        org.glassfish.resources.javamail.admin.cli.CreateJavaMailResource createCommand = habitat.getService(org.glassfish.resources.javamail.admin.cli.CreateJavaMailResource.class);
+        org.glassfish.resources.mail.admin.cli.CreateMailResource createCommand = habitat.getService(org.glassfish.resources.mail.admin.cli.CreateMailResource.class);
         assertTrue(createCommand != null);
-        cr.getCommandInvocation("create-javamail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(createCommand);
+        cr.getCommandInvocation("create-mail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(createCommand);
         assertEquals(ActionReport.ExitCode.SUCCESS, context.getActionReport().getActionExitCode());
 
         parameters = new ParameterMap();
         parameters.set("jndi_name", "mail/MyMailSession");
-        org.glassfish.resources.javamail.admin.cli.DeleteJavaMailResource deleteCommand = habitat.getService(org.glassfish.resources.javamail.admin.cli.DeleteJavaMailResource.class);
+        org.glassfish.resources.mail.admin.cli.DeleteMailResource deleteCommand = habitat.getService(org.glassfish.resources.mail.admin.cli.DeleteMailResource.class);
         assertTrue(deleteCommand != null);
-        cr.getCommandInvocation("delete-javamail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(deleteCommand);
+        cr.getCommandInvocation("delete-mail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(deleteCommand);
         assertEquals(ActionReport.ExitCode.SUCCESS, context.getActionReport().getActionExitCode());
         boolean isDeleted = true;
         for (Resource resource : resources.getResources()) {
@@ -123,7 +123,7 @@
                 MailResource jr = (MailResource) resource;
                 if (jr.getJndiName().equals("mail/MyMailSession")) {
                     isDeleted = false;
-                    logger.fine("JavaMailResource config bean mail/MyMailSession is deleted.");
+                    logger.fine("MailResource config bean mail/MyMailSession is deleted.");
                     break;
                 }
             }
@@ -147,14 +147,14 @@
     }
 
     /**
-     * Test of execute method, of class DeleteJavaMailResource.
-     * delete-javamail-resource doesnotexist
+     * Test of execute method, of class DeleteMailResource.
+     * delete-mail-resource doesnotexist
      */
     @Test
     public void testExecuteFailDoesNotExist() {
         parameters.set("jndi_name", "doesnotexist");
-        org.glassfish.resources.javamail.admin.cli.DeleteJavaMailResource deleteCommand = habitat.getService(org.glassfish.resources.javamail.admin.cli.DeleteJavaMailResource.class);
-        cr.getCommandInvocation("delete-javamail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(deleteCommand);
+        org.glassfish.resources.mail.admin.cli.DeleteMailResource deleteCommand = habitat.getService(org.glassfish.resources.mail.admin.cli.DeleteMailResource.class);
+        cr.getCommandInvocation("delete-mail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(deleteCommand);
         assertEquals(ActionReport.ExitCode.FAILURE, context.getActionReport().getActionExitCode());
         logger.fine("msg: " + context.getActionReport().getMessage());
     }
diff --git a/appserver/resources/javamail/javamail-connector/src/test/java/org/glassfish/resources/javamail/admin/cli/ListJavaMailResourcesTest.java b/appserver/resources/mail/mail-connector/src/test/java/org/glassfish/resources/mail/admin/cli/ListMailResourcesTest.java
similarity index 66%
rename from appserver/resources/javamail/javamail-connector/src/test/java/org/glassfish/resources/javamail/admin/cli/ListJavaMailResourcesTest.java
rename to appserver/resources/mail/mail-connector/src/test/java/org/glassfish/resources/mail/admin/cli/ListMailResourcesTest.java
index dbeec2c..4f0f260 100644
--- a/appserver/resources/javamail/javamail-connector/src/test/java/org/glassfish/resources/javamail/admin/cli/ListJavaMailResourcesTest.java
+++ b/appserver/resources/mail/mail-connector/src/test/java/org/glassfish/resources/mail/admin/cli/ListMailResourcesTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2020 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.resources.javamail.admin.cli;
+package org.glassfish.resources.mail.admin.cli;
 
 
 import com.sun.enterprise.config.serverbeans.Domain;
@@ -29,7 +29,7 @@
 import org.glassfish.api.admin.CommandRunner;
 import org.glassfish.api.admin.ParameterMap;
 import org.glassfish.hk2.api.ServiceLocator;
-import org.glassfish.resources.javamail.config.MailResource;
+import org.glassfish.resources.mail.config.MailResource;
 import org.glassfish.tests.utils.ConfigApiTest;
 import org.junit.After;
 import static org.junit.Assert.*;
@@ -40,7 +40,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-public class ListJavaMailResourcesTest extends ConfigApiTest {
+public class ListMailResourcesTest extends ConfigApiTest {
 
     private ServiceLocator habitat;
     private int origNum = 0;
@@ -65,7 +65,7 @@
         assertTrue(cr != null);
         Resources resources = habitat.<Domain>getService(Domain.class).getResources();
         context = new AdminCommandContextImpl(
-                LogDomains.getLogger(ListJavaMailResourcesTest.class, LogDomains.ADMIN_LOGGER),
+                LogDomains.getLogger(ListMailResourcesTest.class, LogDomains.ADMIN_LOGGER),
                 new PropsFileActionReporter());
         for (Resource resource : resources.getResources()) {
             if (resource instanceof MailResource) {
@@ -79,13 +79,13 @@
     }
 
     /**
-     * Test of execute method, of class ListJavaMailResources.
-     * list-javamail-resources
+     * Test of execute method, of class ListMailResources.
+     * list-mail-resources
      */
     @Test
     public void testExecuteSuccessListOriginal() {
-        org.glassfish.resources.javamail.admin.cli.ListJavaMailResources listCommand = habitat.getService(org.glassfish.resources.javamail.admin.cli.ListJavaMailResources.class);
-        cr.getCommandInvocation("list-javamail-resources", context.getActionReport(), adminSubject()).parameters(parameters).execute(listCommand);
+        org.glassfish.resources.mail.admin.cli.ListMailResources listCommand = habitat.getService(org.glassfish.resources.mail.admin.cli.ListMailResources.class);
+        cr.getCommandInvocation("list-mail-resources", context.getActionReport(), adminSubject()).parameters(parameters).execute(listCommand);
         List<MessagePart> list = context.getActionReport().getTopMessagePart().getChildren();
         if (origNum == 0) {
             //Nothing to list
@@ -97,19 +97,19 @@
 
 
     /**
-     * Test of execute method, of class ListJavaMailResource.
-     * create-javamail-resource --mailuser=test --mailhost=localhost
+     * Test of execute method, of class ListMailResource.
+     * create-mail-resource --mailuser=test --mailhost=localhost
      * --fromaddress=test@sun.com mailresource
-     * list-javamail-resources
+     * list-mail-resources
      */
     @Test
     public void testExecuteSuccessListMailResource() {
-        createJavaMailResource();
+        createMailResource();
 
         parameters = new ParameterMap();
-        org.glassfish.resources.javamail.admin.cli.ListJavaMailResources listCommand = habitat.getService(org.glassfish.resources.javamail.admin.cli.ListJavaMailResources.class);
+        org.glassfish.resources.mail.admin.cli.ListMailResources listCommand = habitat.getService(org.glassfish.resources.mail.admin.cli.ListMailResources.class);
         assertTrue(listCommand != null);
-        cr.getCommandInvocation("list-javamail-resources", context.getActionReport(), adminSubject()).parameters(parameters).execute(listCommand);
+        cr.getCommandInvocation("list-mail-resources", context.getActionReport(), adminSubject()).parameters(parameters).execute(listCommand);
         List<MessagePart> list = context.getActionReport().getTopMessagePart().getChildren();
         assertEquals(origNum + 1, list.size());
         List<String> listStr = new ArrayList<String>();
@@ -118,46 +118,46 @@
         }
         assertTrue(listStr.contains("mailresource"));
         assertEquals(ActionReport.ExitCode.SUCCESS, context.getActionReport().getActionExitCode());
-        deleteJavaMailResource();
+        deleteMailResource();
     }
 
-    private void createJavaMailResource() {
+    private void createMailResource() {
         parameters = new ParameterMap();
         parameters.set("mailhost", "localhost");
         parameters.set("mailuser", "test");
         parameters.set("fromaddress", "test@sun.com");
         parameters.set("jndi_name", "mailresource");
-        CreateJavaMailResource createCommand = habitat.getService(CreateJavaMailResource.class);
+        CreateMailResource createCommand = habitat.getService(CreateMailResource.class);
         assertTrue(createCommand != null);
-        cr.getCommandInvocation("create-javamail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(createCommand);
+        cr.getCommandInvocation("create-mail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(createCommand);
         assertEquals(ActionReport.ExitCode.SUCCESS, context.getActionReport().getActionExitCode());
     }
 
 
     /**
      * Test of execute method, of class ListJdbcResource.
-     * delete-javamail-resource mailresource
-     * list-javamail-resources
+     * delete-mail-resource mailresource
+     * list-mail-resources
      */
     @Test
     public void testExecuteSuccessListNoMailResource() {
-        createJavaMailResource();
+        createMailResource();
 
         parameters = new ParameterMap();
-        org.glassfish.resources.javamail.admin.cli.ListJavaMailResources listCommand = habitat.getService(org.glassfish.resources.javamail.admin.cli.ListJavaMailResources.class);
-        cr.getCommandInvocation("list-javamail-resources", context.getActionReport(), adminSubject()).parameters(parameters).execute(listCommand);
+        org.glassfish.resources.mail.admin.cli.ListMailResources listCommand = habitat.getService(org.glassfish.resources.mail.admin.cli.ListMailResources.class);
+        cr.getCommandInvocation("list-mail-resources", context.getActionReport(), adminSubject()).parameters(parameters).execute(listCommand);
 
         List<ActionReport.MessagePart> list = context.getActionReport().getTopMessagePart().getChildren();
         assertEquals(origNum + 1, list.size());
         origNum = origNum + 1; //as we newly created a resource after test "setup".
 
-        deleteJavaMailResource();
+        deleteMailResource();
         parameters = new ParameterMap();
-        listCommand = habitat.getService(org.glassfish.resources.javamail.admin.cli.ListJavaMailResources.class);
+        listCommand = habitat.getService(org.glassfish.resources.mail.admin.cli.ListMailResources.class);
         context = new AdminCommandContextImpl(
-                LogDomains.getLogger(ListJavaMailResourcesTest.class, LogDomains.ADMIN_LOGGER),
+                LogDomains.getLogger(ListMailResourcesTest.class, LogDomains.ADMIN_LOGGER),
                 new PropsFileActionReporter());
-        cr.getCommandInvocation("list-javamail-resources", context.getActionReport(), adminSubject()).parameters(parameters).execute(listCommand);
+        cr.getCommandInvocation("list-mail-resources", context.getActionReport(), adminSubject()).parameters(parameters).execute(listCommand);
         list = context.getActionReport().getTopMessagePart().getChildren();
         if ((origNum - 1) == 0) {
             //Nothing to list.
@@ -172,12 +172,12 @@
         assertEquals(ActionReport.ExitCode.SUCCESS, context.getActionReport().getActionExitCode());
     }
 
-    private void deleteJavaMailResource() {
+    private void deleteMailResource() {
         parameters = new ParameterMap();
         parameters.set("jndi_name", "mailresource");
-        DeleteJavaMailResource deleteCommand = habitat.getService(DeleteJavaMailResource.class);
+        DeleteMailResource deleteCommand = habitat.getService(DeleteMailResource.class);
         assertTrue(deleteCommand != null);
-        cr.getCommandInvocation("delete-javamail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(deleteCommand);
+        cr.getCommandInvocation("delete-mail-resource", context.getActionReport(), adminSubject()).parameters(parameters).execute(deleteCommand);
         assertEquals(ActionReport.ExitCode.SUCCESS, context.getActionReport().getActionExitCode());
     }
 }
diff --git a/appserver/resources/javamail/javamail-connector/src/test/java/org/glassfish/resources/javamail/admin/cli/TestDocument.java b/appserver/resources/mail/mail-connector/src/test/java/org/glassfish/resources/mail/admin/cli/TestDocument.java
similarity index 92%
rename from appserver/resources/javamail/javamail-connector/src/test/java/org/glassfish/resources/javamail/admin/cli/TestDocument.java
rename to appserver/resources/mail/mail-connector/src/test/java/org/glassfish/resources/mail/admin/cli/TestDocument.java
index 9a7cb16..9f3c7ba 100644
--- a/appserver/resources/javamail/javamail-connector/src/test/java/org/glassfish/resources/javamail/admin/cli/TestDocument.java
+++ b/appserver/resources/mail/mail-connector/src/test/java/org/glassfish/resources/mail/admin/cli/TestDocument.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2020 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.resources.javamail.admin.cli;
+package org.glassfish.resources.mail.admin.cli;
 
 import org.glassfish.config.support.GlassFishConfigBean;
 import org.glassfish.hk2.api.ServiceLocator;
diff --git a/appserver/resources/javamail/javamail-connector/src/test/resources/DomainTest.xml b/appserver/resources/mail/mail-connector/src/test/resources/DomainTest.xml
similarity index 100%
rename from appserver/resources/javamail/javamail-connector/src/test/resources/DomainTest.xml
rename to appserver/resources/mail/mail-connector/src/test/resources/DomainTest.xml
diff --git a/appserver/resources/javamail/javamail-connector/osgi.bundle b/appserver/resources/mail/mail-runtime/osgi.bundle
similarity index 74%
copy from appserver/resources/javamail/javamail-connector/osgi.bundle
copy to appserver/resources/mail/mail-runtime/osgi.bundle
index 6f17648..bdee874 100644
--- a/appserver/resources/javamail/javamail-connector/osgi.bundle
+++ b/appserver/resources/mail/mail-runtime/osgi.bundle
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2010, 2018 Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2020 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
@@ -14,5 +14,5 @@
 # SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 #
 
--exportcontents: org.glassfish.resources.javamail; \
-                 org.glassfish.resources.javamail.config; version=${project.osgi.version}
+-exportcontents: org.glassfish.resources.mail.annotation.handler; \
+                 org.glassfish.resources.mail.naming; version=${project.osgi.version}
diff --git a/appserver/resources/javamail/javamail-runtime/pom.xml b/appserver/resources/mail/mail-runtime/pom.xml
similarity index 94%
rename from appserver/resources/javamail/javamail-runtime/pom.xml
rename to appserver/resources/mail/mail-runtime/pom.xml
index ac00da0..e6727dc 100644
--- a/appserver/resources/javamail/javamail-runtime/pom.xml
+++ b/appserver/resources/mail/mail-runtime/pom.xml
@@ -19,15 +19,15 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
     <parent>
         <groupId>org.glassfish.main.resources</groupId>
-        <artifactId>javamail</artifactId>
+        <artifactId>mail</artifactId>
         <version>6.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-    <artifactId>javamail-runtime</artifactId>
+    <artifactId>mail-runtime</artifactId>
     <packaging>glassfish-jar</packaging>
     
-    <name>GlassFish JavaMail runtime</name>
+    <name>GlassFish Jakarta Mail runtime</name>
 
     <developers>
         <developer>
@@ -78,7 +78,7 @@
         </dependency>
          <dependency>
             <groupId>org.glassfish.main.resources</groupId>
-            <artifactId>javamail-connector</artifactId>
+            <artifactId>mail-connector</artifactId>
             <version>${project.version}</version>
         </dependency>
         <dependency>
diff --git a/appserver/resources/javamail/javamail-runtime/src/main/java/org/glassfish/resources/javamail/annotation/handler/MailSessionDefinitionHandler.java b/appserver/resources/mail/mail-runtime/src/main/java/org/glassfish/resources/mail/annotation/handler/MailSessionDefinitionHandler.java
similarity index 98%
rename from appserver/resources/javamail/javamail-runtime/src/main/java/org/glassfish/resources/javamail/annotation/handler/MailSessionDefinitionHandler.java
rename to appserver/resources/mail/mail-runtime/src/main/java/org/glassfish/resources/mail/annotation/handler/MailSessionDefinitionHandler.java
index adde7a3..0ce92fd 100644
--- a/appserver/resources/javamail/javamail-runtime/src/main/java/org/glassfish/resources/javamail/annotation/handler/MailSessionDefinitionHandler.java
+++ b/appserver/resources/mail/mail-runtime/src/main/java/org/glassfish/resources/mail/annotation/handler/MailSessionDefinitionHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2020 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.resources.javamail.annotation.handler;
+package org.glassfish.resources.mail.annotation.handler;
 
 import com.sun.enterprise.deployment.*;
 import com.sun.enterprise.deployment.annotation.context.*;
@@ -31,7 +31,7 @@
 import javax.interceptor.AroundInvoke;
 import javax.interceptor.AroundTimeout;
 import javax.interceptor.Interceptors;
-import javax.mail.MailSessionDefinition;
+import jakarta.mail.MailSessionDefinition;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Method;
 import java.util.Collection;
diff --git a/appserver/resources/javamail/javamail-runtime/src/main/java/org/glassfish/resources/javamail/annotation/handler/MailSessionDefinitionsHandler.java b/appserver/resources/mail/mail-runtime/src/main/java/org/glassfish/resources/mail/annotation/handler/MailSessionDefinitionsHandler.java
similarity index 93%
rename from appserver/resources/javamail/javamail-runtime/src/main/java/org/glassfish/resources/javamail/annotation/handler/MailSessionDefinitionsHandler.java
rename to appserver/resources/mail/mail-runtime/src/main/java/org/glassfish/resources/mail/annotation/handler/MailSessionDefinitionsHandler.java
index 468d666..6549155 100644
--- a/appserver/resources/javamail/javamail-runtime/src/main/java/org/glassfish/resources/javamail/annotation/handler/MailSessionDefinitionsHandler.java
+++ b/appserver/resources/mail/mail-runtime/src/main/java/org/glassfish/resources/mail/annotation/handler/MailSessionDefinitionsHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2020 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.resources.javamail.annotation.handler;
+package org.glassfish.resources.mail.annotation.handler;
 
 import com.sun.enterprise.deployment.MailSessionDescriptor;
 import com.sun.enterprise.deployment.annotation.context.ResourceContainerContext;
@@ -26,8 +26,8 @@
 import org.glassfish.apf.HandlerProcessingResult;
 import org.jvnet.hk2.annotations.Service;
 
-import javax.mail.MailSessionDefinition;
-import javax.mail.MailSessionDefinitions;
+import jakarta.mail.MailSessionDefinition;
+import jakarta.mail.MailSessionDefinitions;
 import java.lang.annotation.Annotation;
 import java.util.HashSet;
 import java.util.Set;
diff --git a/appserver/resources/javamail/javamail-runtime/src/main/java/org/glassfish/resources/javamail/beans/MailResource.java b/appserver/resources/mail/mail-runtime/src/main/java/org/glassfish/resources/mail/beans/MailResource.java
similarity index 96%
rename from appserver/resources/javamail/javamail-runtime/src/main/java/org/glassfish/resources/javamail/beans/MailResource.java
rename to appserver/resources/mail/mail-runtime/src/main/java/org/glassfish/resources/mail/beans/MailResource.java
index 7461c5e..0238fbf 100755
--- a/appserver/resources/javamail/javamail-runtime/src/main/java/org/glassfish/resources/javamail/beans/MailResource.java
+++ b/appserver/resources/mail/mail-runtime/src/main/java/org/glassfish/resources/mail/beans/MailResource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2020 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.resources.javamail.beans;
+package org.glassfish.resources.mail.beans;
 
 import com.sun.enterprise.deployment.interfaces.MailResourceIntf;
 import org.glassfish.resources.api.JavaEEResource;
diff --git a/appserver/resources/javamail/javamail-runtime/src/main/java/org/glassfish/resources/javamail/deployer/MailResourceDeployer.java b/appserver/resources/mail/mail-runtime/src/main/java/org/glassfish/resources/mail/deployer/MailResourceDeployer.java
similarity index 92%
rename from appserver/resources/javamail/javamail-runtime/src/main/java/org/glassfish/resources/javamail/deployer/MailResourceDeployer.java
rename to appserver/resources/mail/mail-runtime/src/main/java/org/glassfish/resources/mail/deployer/MailResourceDeployer.java
index 97817d7..228e5a5 100644
--- a/appserver/resources/javamail/javamail-runtime/src/main/java/org/glassfish/resources/javamail/deployer/MailResourceDeployer.java
+++ b/appserver/resources/mail/mail-runtime/src/main/java/org/glassfish/resources/mail/deployer/MailResourceDeployer.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2020 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
@@ -14,7 +14,7 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.resources.javamail.deployer;
+package org.glassfish.resources.mail.deployer;
 
 
 import com.sun.enterprise.config.serverbeans.Application;
@@ -25,8 +25,8 @@
 import com.sun.enterprise.util.i18n.StringManager;
 import com.sun.logging.LogDomains;
 import org.glassfish.resources.api.*;
-import org.glassfish.resources.javamail.config.MailResource;
-import org.glassfish.resources.javamail.naming.MailNamingObjectFactory;
+import org.glassfish.resources.mail.config.MailResource;
+import org.glassfish.resources.mail.naming.MailNamingObjectFactory;
 import org.glassfish.resources.naming.SerializableObjectRefAddr;
 import org.glassfish.resourcebase.resources.api.ResourceDeployer;
 import org.glassfish.resourcebase.resources.api.ResourceDeployerInfo;
@@ -90,7 +90,7 @@
             /* TODO Not needed any more ?
             /*ManagementObjectManager mgr =
                 getAppServerSwitchObject().getManagementObjectManager();
-            mgr.registerJavaMailResource(mailRes.getJndiName());*/
+            mgr.registerMailResource(mailRes.getJndiName());*/
 
             installResource(mailRes, resourceInfo);
 
@@ -121,7 +121,7 @@
         // and adds it to a collection in the installer
         org.glassfish.resources.api.JavaEEResource j2eeRes = toMailJavaEEResource(mailResource, resourceInfo);
         //ResourceInstaller installer = runtime.getResourceInstaller();
-        installMailResource((org.glassfish.resources.javamail.beans.MailResource) j2eeRes, resourceInfo);
+        installMailResource((org.glassfish.resources.mail.beans.MailResource) j2eeRes, resourceInfo);
     }
 
     /**
@@ -156,7 +156,7 @@
         /* TODO Not needed any more ?
             ManagementObjectManager mgr =
                     getAppServerSwitchObject().getManagementObjectManager();
-            mgr.unregisterJavaMailResource(mailRes.getJndiName());
+            mgr.unregisterMailResource(mailRes.getJndiName());
         */
 
     }
@@ -212,13 +212,13 @@
      *
      * @param mailResource mail resource
      */
-    public void installMailResource(org.glassfish.resources.javamail.beans.MailResource mailResource, ResourceInfo resourceInfo) {
+    public void installMailResource(org.glassfish.resources.mail.beans.MailResource mailResource, ResourceInfo resourceInfo) {
 
         try {
 
             MailConfiguration config = new MailConfiguration(mailResource);
 
-            javax.naming.Reference ref = new javax.naming.Reference(javax.mail.Session.class.getName(),
+            javax.naming.Reference ref = new javax.naming.Reference(jakarta.mail.Session.class.getName(),
                     MailNamingObjectFactory.class.getName(), null);
             SerializableObjectRefAddr serializableRefAddr = new SerializableObjectRefAddr("jndiName", config);
             ref.add(serializableRefAddr);
@@ -243,8 +243,8 @@
     public static org.glassfish.resources.api.JavaEEResource toMailJavaEEResource(
             MailResource mailResourceConfig, ResourceInfo resourceInfo) {
 
-        org.glassfish.resources.javamail.beans.MailResource mailResource =
-                new org.glassfish.resources.javamail.beans.MailResource(resourceInfo);
+        org.glassfish.resources.mail.beans.MailResource mailResource =
+                new org.glassfish.resources.mail.beans.MailResource(resourceInfo);
 
         //jr.setDescription(rbean.getDescription()); // FIXME: getting error
         mailResource.setEnabled(Boolean.valueOf(mailResourceConfig.getEnabled()));
diff --git a/appserver/resources/javamail/javamail-runtime/src/main/java/org/glassfish/resources/javamail/naming/MailNamingObjectFactory.java b/appserver/resources/mail/mail-runtime/src/main/java/org/glassfish/resources/mail/naming/MailNamingObjectFactory.java
similarity index 83%
rename from appserver/resources/javamail/javamail-runtime/src/main/java/org/glassfish/resources/javamail/naming/MailNamingObjectFactory.java
rename to appserver/resources/mail/mail-runtime/src/main/java/org/glassfish/resources/mail/naming/MailNamingObjectFactory.java
index d60fa4e..75a735d 100644
--- a/appserver/resources/javamail/javamail-runtime/src/main/java/org/glassfish/resources/javamail/naming/MailNamingObjectFactory.java
+++ b/appserver/resources/mail/mail-runtime/src/main/java/org/glassfish/resources/mail/naming/MailNamingObjectFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2008, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2020 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
@@ -14,12 +14,12 @@
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
  */
 
-package org.glassfish.resources.javamail.naming;
+package org.glassfish.resources.mail.naming;
 
 import com.sun.enterprise.deployment.MailConfiguration;
 import com.sun.logging.LogDomains;
-import org.glassfish.resources.javamail.MailLogOutputStream;
-import org.glassfish.resources.javamail.MailSessionAuthenticator;
+import org.glassfish.resources.mail.MailLogOutputStream;
+import org.glassfish.resources.mail.MailSessionAuthenticator;
 
 import javax.naming.Context;
 import javax.naming.Name;
@@ -49,10 +49,10 @@
         }
         MailConfiguration config = (MailConfiguration) ref.get(0).getContent();
 
-        // Note: javax.mail.Session is not serializable,
+        // Note: jakarta.mail.Session is not serializable,
         // but we need to get a new instance on every lookup.
         Properties props = config.getMailProperties();
-        javax.mail.Session s = javax.mail.Session.getInstance(props, new MailSessionAuthenticator(props));
+        jakarta.mail.Session s = jakarta.mail.Session.getInstance(props, new MailSessionAuthenticator(props));
         if("smtps".equals(props.getProperty("mail.transport.protocol"))) {
             s.setProtocolForAddress("rfc822", "smtps");
         }
diff --git a/appserver/resources/javamail/pom.xml b/appserver/resources/mail/pom.xml
similarity index 81%
rename from appserver/resources/javamail/pom.xml
rename to appserver/resources/mail/pom.xml
index fafca97..42ba6d5 100644
--- a/appserver/resources/javamail/pom.xml
+++ b/appserver/resources/mail/pom.xml
@@ -23,17 +23,17 @@
         <artifactId>resources</artifactId>
         <version>6.0.0-SNAPSHOT</version>
     </parent>
-    <artifactId>javamail</artifactId>
+    <artifactId>mail</artifactId>
     <packaging>pom</packaging>
-    <name>JavaMail Resources Support related modules</name>
+    <name>Jakarta Mail Resources Support related modules</name>
     <modules>
-        <module>javamail-connector</module>
-        <module>javamail-runtime</module>
+        <module>mail-connector</module>
+        <module>mail-runtime</module>
   </modules>
   <dependencies>
 	<dependency>
-            <groupId>jakarta.mail</groupId>
-            <artifactId>jakarta.mail-api</artifactId>
+            <groupId>com.sun.mail</groupId>
+            <artifactId>jakarta.mail</artifactId>
         </dependency>
   </dependencies>
 </project>
diff --git a/appserver/resources/pom.xml b/appserver/resources/pom.xml
index 9784cdc..8c57bf5 100644
--- a/appserver/resources/pom.xml
+++ b/appserver/resources/pom.xml
@@ -31,6 +31,6 @@
     <modules>
         <module>resources-connector</module>
         <module>resources-runtime</module>
-        <module>javamail</module>
+        <module>mail</module>
   </modules>
 </project>
diff --git a/appserver/tests/appserv-tests/devtests/cdi/smoke-tests/optional-unbundled-beans/foo.txt b/appserver/tests/appserv-tests/devtests/cdi/smoke-tests/optional-unbundled-beans/foo.txt
index 23573ab..3a8bbf1 100644
--- a/appserver/tests/appserv-tests/devtests/cdi/smoke-tests/optional-unbundled-beans/foo.txt
+++ b/appserver/tests/appserv-tests/devtests/cdi/smoke-tests/optional-unbundled-beans/foo.txt
@@ -17,7 +17,7 @@
 Property "build.classes.dir" has not been set
  [macrodef] creating macro  run-test
 Build sequence for target(s) `clean' is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean]
-Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-javamail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-javamail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
+Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-mail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-mail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
 
 setToolWin:
 Skipped because property 'isWindows' not set.
@@ -148,10 +148,10 @@
 Override ignored for property "target-to-run"
  [macrodef] creating macro  run-test
 Build sequence for target(s) `clean-common' is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-common]
-Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-javamail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-javamail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
+Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-mail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-mail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
   [antcall] Entering /export/work/workspaces/gfv3/appserv-tests/devtests/cdi/smoke-tests/optional-unbundled-beans/build.xml...
 Build sequence for target(s) `clean-common' is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-common]
-Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-javamail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-javamail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
+Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-mail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-mail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
 
 setOSConditions:
 Override ignored for property "isUnix"
@@ -399,10 +399,10 @@
 Override ignored for property "target-to-run"
  [macrodef] creating macro  run-test
 Build sequence for target(s) `clean-classes-common' is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-classes-common]
-Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-classes-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-javamail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-javamail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
+Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-classes-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-mail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-mail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
   [antcall] Entering /export/work/workspaces/gfv3/appserv-tests/devtests/cdi/smoke-tests/optional-unbundled-beans/build.xml...
 Build sequence for target(s) `clean-classes-common' is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-classes-common]
-Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-classes-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-javamail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-javamail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
+Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-classes-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-mail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-mail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
 
 setOSConditions:
 Override ignored for property "isUnix"
@@ -661,10 +661,10 @@
 Override ignored for property "target-to-run"
  [macrodef] creating macro  run-test
 Build sequence for target(s) `clean-jars-common' is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-jars-common]
-Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-jars-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-javamail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-javamail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
+Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-jars-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-mail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-mail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
   [antcall] Entering /export/work/workspaces/gfv3/appserv-tests/devtests/cdi/smoke-tests/optional-unbundled-beans/build.xml...
 Build sequence for target(s) `clean-jars-common' is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-jars-common]
-Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-jars-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-javamail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-javamail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
+Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-jars-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-mail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-mail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
 
 setOSConditions:
 Override ignored for property "isUnix"
@@ -804,7 +804,7 @@
   [antcall] Exiting /export/work/workspaces/gfv3/appserv-tests/devtests/cdi/smoke-tests/optional-unbundled-beans/build.xml.
   [antcall] Exiting /export/work/workspaces/gfv3/appserv-tests/devtests/cdi/smoke-tests/optional-unbundled-beans/build.xml.
 Build sequence for target(s) `compile' is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean, compile]
-Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean, compile, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-javamail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-javamail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
+Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean, compile, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-mail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-mail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
 
 setOSConditions:
 Override ignored for property "isUnix"
@@ -1052,10 +1052,10 @@
 Override ignored for property "target-to-run"
  [macrodef] creating macro  run-test
 Build sequence for target(s) `clean-common' is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-common]
-Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-javamail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-javamail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
+Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-mail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-mail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
   [antcall] Entering /export/work/workspaces/gfv3/appserv-tests/devtests/cdi/smoke-tests/optional-unbundled-beans/build.xml...
 Build sequence for target(s) `clean-common' is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-common]
-Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-javamail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-javamail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
+Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-mail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-mail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
 
 setOSConditions:
 Override ignored for property "isUnix"
@@ -1303,10 +1303,10 @@
 Override ignored for property "target-to-run"
  [macrodef] creating macro  run-test
 Build sequence for target(s) `clean-classes-common' is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-classes-common]
-Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-classes-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-javamail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-javamail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
+Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-classes-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-mail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-mail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
   [antcall] Entering /export/work/workspaces/gfv3/appserv-tests/devtests/cdi/smoke-tests/optional-unbundled-beans/build.xml...
 Build sequence for target(s) `clean-classes-common' is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-classes-common]
-Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-classes-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-javamail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-javamail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
+Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-classes-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-mail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-mail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
 
 setOSConditions:
 Override ignored for property "isUnix"
@@ -1556,10 +1556,10 @@
 Override ignored for property "target-to-run"
  [macrodef] creating macro  run-test
 Build sequence for target(s) `clean-jars-common' is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-jars-common]
-Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-jars-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-javamail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-javamail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
+Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-jars-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-mail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-mail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
   [antcall] Entering /export/work/workspaces/gfv3/appserv-tests/devtests/cdi/smoke-tests/optional-unbundled-beans/build.xml...
 Build sequence for target(s) `clean-jars-common' is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-jars-common]
-Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-jars-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-javamail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-javamail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
+Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, clean-jars-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-mail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, compile-common, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-mail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
 
 setOSConditions:
 Override ignored for property "isUnix"
@@ -1809,10 +1809,10 @@
 Override ignored for property "target-to-run"
  [macrodef] creating macro  run-test
 Build sequence for target(s) `compile-common' is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, compile-common]
-Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, compile-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-javamail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-javamail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
+Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, compile-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-mail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-mail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
   [antcall] Entering /export/work/workspaces/gfv3/appserv-tests/devtests/cdi/smoke-tests/optional-unbundled-beans/build.xml...
 Build sequence for target(s) `compile-common' is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, compile-common]
-Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, compile-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-javamail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-javamail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
+Complete build sequence is [setOSConditions, setToolWin, setToolUnix, setToolProperty, setS1ASclassPath, init-common, compile-common, restart-instance-common, execute-sql-common, deploy-rar-common, undeploy, deploy-jdbc-common, undeploy-rar-common, set-derby-connpool-props, create-sql-common, deploy-war-no-context-root-pe, verifier-common, start-server-unix, test-tagfiles-exist, create-PermSize, execute-ejb-sql-common, undeploy-client-common, prepare-keystore-common, deploy-verify-common-ee, startDerby, confirmMissingReport-common, create-connector-resource-common, asadmin-common, create-connector-connpool, delete-connector-connpool-common, verifier, start-clean-server, runwebclient-common, deploy-common-ee, startDerbyNonMac, webclient-war-common, flush-connpool-common, stopDerby, clean-webapps-common, delete-jdbc-connpool-common, prepare-truststore-common, deploy-verify-common, run, test-tlds-exist, deploy-verify-common-pe, undeploy-common, undeploy-jar-common, deploy-client-common, enterprise-common, create-mail-resource-common, package-persistence-common, deploy-war-commonee, startDomainWindows, set-derby-driver-connpool-props, deploy-war-no-context-root, undeploy-jdbc-common, deploy-common-pe, clear, copy-tagfiles, clean, compile, build, deploy, restart-server-instance-common, deploy-jar-common, delete-domain-common, stopPB, compile-common-with-endorsed-dir, import-wsdl, deploy-war-commonpe, restart-server, runclient-common, package-appclientjar-common, ee-common, copy-tlds, delete-persistence-resource-common, undeploy-jms-common, asadmin-common-ignore-fail, startDomainUnix, startDomain, fixFiles, ejb-jar-common, appclient-jar-common, build-ear-common, publish-war-common, build-publish-war, stop-server-unix, clean-classes-common, clean-common, create-jdbc-connpool-common, dev-report, startDerbyMac, deploy-jms-common, package-war-common, package-ejbjar-common, delete-connector-resource-common, deploy-jsp-common, unsetupTimer, undeploy-war-common, change-orb-port, delete-mail-resource-common, deploy-common, create-jms-resource-common, setup-mq-common, delete-jdbc-resource-common, start-server-windows, dumpThreadStack, setupTimer, deploy-war-common, start-server, ee, checkReporting-common, testTimer, stop-server, create-jdbc-driver-connpool-common, all, platform-common, create-jms-connection-common, undeploy-war-name, cleanAS, deploy-dir, preparePB, stop-server-windows, confirmReportPresent-common, delete-jms-resource-common, pb, runtest, create-jvm-options, clean-jars-common, restart-instance, stopDomain, create-connector-connpool-common, set-pointbase-driver-connpool-props, delete-sql-common, deploy-jdbc-driver-common, create-domain-common, delete-jvm-options, create-jdbc-resource-common, prepare-truststore-certutil-common, create-user-common, asadmin-batch-common, delete-user-common, prepare-truststore-keytool-common, convWin, create-persistence-resource-common, get-version-common, startPB, delete-jms-connection-common, usage-common, deploy-war-no-context-root-ee, set-pointbase-connpool-props, usage, convUnix, staticCheck-common, ear-common, deploy-war-name, ]
 
 setOSConditions:
 Override ignored for property "isUnix"
diff --git a/appserver/tests/v2-tests/appserv-tests/config/common.xml b/appserver/tests/v2-tests/appserv-tests/config/common.xml
index 8c5c02d..09c846c 100644
--- a/appserver/tests/v2-tests/appserv-tests/config/common.xml
+++ b/appserver/tests/v2-tests/appserv-tests/config/common.xml
@@ -1,6 +1,6 @@
 <!--
 
-    Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2018, 2020 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
@@ -894,19 +894,19 @@
 </target>
 
 <!-- ================================================================ -->
-<!-- Target to create/delete javamail resources  -->
+<!-- Target to create/delete mail resources  -->
 <!-- 
     Properties required: 
     mailhost
     fromaddress
     debug
     enabled
-    javamail.resource.name (e.g. mail/MySession)
+    mail.resource.name (e.g. mail/MySession)
 -->
 <!-- ================================================================ -->
-<target name="create-javamail-resource-common">
+<target name="create-mail-resource-common">
   <exec executable="${ASADMIN}">
-    <arg line="create-javamail-resource"/>
+    <arg line="create-mail-resource"/>
     <arg line="--port ${admin.port}"/>
     <arg line="--mailhost ${mailhost}"/>
     <arg line="--mailuser ${mailuser}"/>
@@ -919,17 +919,17 @@
     <arg line="--enabled=${enabled}"/>
     <arg line="--target ${appserver.instance.name}"/>
     <arg line="${as.props}"/>
-    <arg line="${javamail.resource.name}"/>
+    <arg line="${mail.resource.name}"/>
   </exec>
 </target>
 
-<target name="delete-javamail-resource-common">
+<target name="delete-mail-resource-common">
   <exec executable="${ASADMIN}">
-    <arg line="delete-javamail-resource"/>
+    <arg line="delete-mail-resource"/>
     <arg line="--port ${admin.port}"/>
     <arg line="--target ${appserver.instance.name}"/>
     <arg line="${as.props}"/>
-    <arg line="${javamail.resource.name}"/>
+    <arg line="${mail.resource.name}"/>
   </exec>
 </target>
 
diff --git a/appserver/tests/v2-tests/appserv-tests/devtests/admin/framework/testfiles/test.dtd b/appserver/tests/v2-tests/appserv-tests/devtests/admin/framework/testfiles/test.dtd
index d8e62eb..1b7e5a7 100755
--- a/appserver/tests/v2-tests/appserv-tests/devtests/admin/framework/testfiles/test.dtd
+++ b/appserver/tests/v2-tests/appserv-tests/devtests/admin/framework/testfiles/test.dtd
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2006, 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2006, 2020 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
@@ -561,7 +561,7 @@
 
 
 <!-- mail-resource
-    The mail-resource element describes a javax.mail.Session resource 
+    The mail-resource element describes a jakarta.mail.Session resource 
 
   attributes
     host                                                                       
diff --git a/appserver/tests/v2-tests/appserv-tests/devtests/appserv-commons/com/sun/enterprise/config/domain.dtd b/appserver/tests/v2-tests/appserv-tests/devtests/appserv-commons/com/sun/enterprise/config/domain.dtd
index 297c509..b3561c2 100644
--- a/appserver/tests/v2-tests/appserv-tests/devtests/appserv-commons/com/sun/enterprise/config/domain.dtd
+++ b/appserver/tests/v2-tests/appserv-tests/devtests/appserv-commons/com/sun/enterprise/config/domain.dtd
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2002, 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2002, 2020 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
@@ -480,7 +480,7 @@
 
 
 <!-- mail-resource
-    The mail-resource element describes a javax.mail.Session resource 
+    The mail-resource element describes a jakarta.mail.Session resource 
 
   Used in:
     resources                                                         
diff --git a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/notification/lookup/build.properties b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/notification/lookup/build.properties
index 9c74073..08b67db 100644
--- a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/notification/lookup/build.properties
+++ b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/notification/lookup/build.properties
@@ -1,6 +1,6 @@
 <!--
 
-    Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2018, 2020 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
@@ -43,7 +43,7 @@
 <property name="app.type" value="application"/>
 <property name="client.jar.location" value="${admin.domain.dir}/${admin.domain}/applications/j2ee-apps/${appname}Client.jar"/>
 
-<property name="javamail.resource.name" value="javamail/s1qeMail"/>
+<property name="mail.resource.name" value="mail/s1qeMail"/>
 <property name="mailhost" value="localhost"/>
 <property name="mailuser" value="nazrul.islam@sun.com"/>
 <property name="fromaddress" value="nazrul.islam@sun.com"/>
diff --git a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/notification/lookup/build.xml b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/notification/lookup/build.xml
index c739747..ed94e69 100644
--- a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/notification/lookup/build.xml
+++ b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/notification/lookup/build.xml
@@ -2,7 +2,7 @@
 <!DOCTYPE project [
 <!--
 
-    Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2018, 2020 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
@@ -245,8 +245,8 @@
     </target>
 
     <target name="run-test-9" depends="init-common">
-        <!-- antcall target="create-javamail-res"/ -->
-        <antcall target="create-javamail-res"/>
+        <!-- antcall target="create-mail-res"/ -->
+        <antcall target="create-mail-res"/>
 
         <!-- antcall target="runclient-common"/ -->
         <antcall target="run-standalone-client">
@@ -260,8 +260,8 @@
     </target>
 
     <target name="run-test-10" depends="init-common">
-        <!-- antcall target="delete-javamail-res-reference"/ -->
-        <antcall target="delete-javamail-res"/>
+        <!-- antcall target="delete-mail-res-reference"/ -->
+        <antcall target="delete-mail-res"/>
 
         <!-- antcall target="runclient-common"/ -->
         <antcall target="run-standalone-client">
@@ -329,14 +329,14 @@
         </antcall>
     </target>
 
-    <target name="create-javamail-res" depends="init-common">
-        <antcall target="create-javamail-resource-common">
+    <target name="create-mail-res" depends="init-common">
+        <antcall target="create-mail-resource-common">
             <param name="appserver.instance.name" value="ee-event-cluster"/>
         </antcall>
     </target>
 
-    <target name="delete-javamail-res" depends="init-common">
-        <antcall target="delete-javamail-resource-common">
+    <target name="delete-mail-res" depends="init-common">
+        <antcall target="delete-mail-resource-common">
             <param name="appserver.instance.name" value="ee-event-cluster"/>
         </antcall>
     </target>
@@ -365,7 +365,7 @@
     <target name="delete-mail-res-reference" depends="init-common">
         <antcall target="delete-mail-reference-common">
             <param name="target.name" value="ee-event-cluster"/>
-            <param name="resource.name" value="${javamail.resource.name}"/>
+            <param name="resource.name" value="${mail.resource.name}"/>
         </antcall>
     </target>
 
diff --git a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/notification/lookup/descriptor/ejb-jar.xml b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/notification/lookup/descriptor/ejb-jar.xml
index 466d9bb..c29c587 100644
--- a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/notification/lookup/descriptor/ejb-jar.xml
+++ b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/notification/lookup/descriptor/ejb-jar.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2018, 2020 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
@@ -56,8 +56,8 @@
         <res-sharing-scope>Shareable</res-sharing-scope>
       </resource-ref>
       <resource-ref>
-        <res-ref-name>javaMailRes</res-ref-name>
-        <res-type>javax.mail.Session</res-type>
+        <res-ref-name>mailRes</res-ref-name>
+        <res-type>jakarta.mail.Session</res-type>
         <res-auth>Container</res-auth>
         <res-sharing-scope>Shareable</res-sharing-scope>
       </resource-ref>
diff --git a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/notification/lookup/descriptor/sun-ejb-jar.xml b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/notification/lookup/descriptor/sun-ejb-jar.xml
index 04f1386..27884bc 100644
--- a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/notification/lookup/descriptor/sun-ejb-jar.xml
+++ b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/notification/lookup/descriptor/sun-ejb-jar.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2018, 2020 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
@@ -55,8 +55,8 @@
         </resource-ref>
 
         <resource-ref>
-            <res-ref-name>javaMailRes</res-ref-name>
-            <jndi-name>javamail/s1qeMail</jndi-name>
+            <res-ref-name>mailRes</res-ref-name>
+            <jndi-name>mail/s1qeMail</jndi-name>
             <default-resource-principal>
                 <name>DBUSER</name>
                 <password>DBPASSWORD</password>
diff --git a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/synchronization/cleaner/application/build.properties b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/synchronization/cleaner/application/build.properties
index 4a83703..a9bf4da 100644
--- a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/synchronization/cleaner/application/build.properties
+++ b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/synchronization/cleaner/application/build.properties
@@ -1,6 +1,6 @@
 <!--
 
-    Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2018, 2020 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
@@ -43,7 +43,7 @@
 <property name="app.type" value="application"/>
 <property name="client.jar.location" value="${admin.domain.dir}/${admin.domain}/applications/j2ee-apps/${appname}Client.jar"/>
 
-<property name="javamail.resource.name" value="javamail/s1qeMail"/>
+<property name="mail.resource.name" value="mail/s1qeMail"/>
 <property name="mailhost" value="localhost"/>
 <property name="mailuser" value="nazrul.islam@sun.com"/>
 <property name="fromaddress" value="nazrul.islam@sun.com"/>
diff --git a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/synchronization/cleaner/application/descriptor/ejb-jar.xml b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/synchronization/cleaner/application/descriptor/ejb-jar.xml
index 466d9bb..c29c587 100644
--- a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/synchronization/cleaner/application/descriptor/ejb-jar.xml
+++ b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/synchronization/cleaner/application/descriptor/ejb-jar.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2018, 2020 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
@@ -56,8 +56,8 @@
         <res-sharing-scope>Shareable</res-sharing-scope>
       </resource-ref>
       <resource-ref>
-        <res-ref-name>javaMailRes</res-ref-name>
-        <res-type>javax.mail.Session</res-type>
+        <res-ref-name>mailRes</res-ref-name>
+        <res-type>jakarta.mail.Session</res-type>
         <res-auth>Container</res-auth>
         <res-sharing-scope>Shareable</res-sharing-scope>
       </resource-ref>
diff --git a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/synchronization/cleaner/application/descriptor/sun-ejb-jar.xml b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/synchronization/cleaner/application/descriptor/sun-ejb-jar.xml
index 04f1386..27884bc 100644
--- a/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/synchronization/cleaner/application/descriptor/sun-ejb-jar.xml
+++ b/appserver/tests/v2-tests/appserv-tests/devtests/ee/admin/synchronization/cleaner/application/descriptor/sun-ejb-jar.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 
-    Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 2018, 2020 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
@@ -55,8 +55,8 @@
         </resource-ref>
 
         <resource-ref>
-            <res-ref-name>javaMailRes</res-ref-name>
-            <jndi-name>javamail/s1qeMail</jndi-name>
+            <res-ref-name>mailRes</res-ref-name>
+            <jndi-name>mail/s1qeMail</jndi-name>
             <default-resource-principal>
                 <name>DBUSER</name>
                 <password>DBPASSWORD</password>
diff --git a/appserver/tests/v2-tests/appserv-tests/devtests/resources/mail-session/client/Client.java b/appserver/tests/v2-tests/appserv-tests/devtests/resources/mail-session/client/Client.java
index a3e2247..2a5d637 100644
--- a/appserver/tests/v2-tests/appserv-tests/devtests/resources/mail-session/client/Client.java
+++ b/appserver/tests/v2-tests/appserv-tests/devtests/resources/mail-session/client/Client.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2020 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
@@ -18,8 +18,8 @@
 
 import com.sun.ejte.ccl.reporter.SimpleReporterAdapter;
 
-import javax.mail.MailSessionDefinition;
-import javax.mail.MailSessionDefinitions;
+import jakarta.mail.MailSessionDefinition;
+import jakarta.mail.MailSessionDefinitions;
 import javax.naming.InitialContext;
 import java.io.BufferedReader;
 import java.io.InputStream;
diff --git a/appserver/tests/v2-tests/appserv-tests/devtests/resources/mail-session/ejb/HelloEJB.java b/appserver/tests/v2-tests/appserv-tests/devtests/resources/mail-session/ejb/HelloEJB.java
index f6d76af..77a4d14 100644
--- a/appserver/tests/v2-tests/appserv-tests/devtests/resources/mail-session/ejb/HelloEJB.java
+++ b/appserver/tests/v2-tests/appserv-tests/devtests/resources/mail-session/ejb/HelloEJB.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2020 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
@@ -16,8 +16,8 @@
 
 package com.sun.s1asdev.ejb.ejb30.hello.session3;
 
-import javax.mail.MailSessionDefinition;
-import javax.mail.MailSessionDefinitions;
+import jakarta.mail.MailSessionDefinition;
+import jakarta.mail.MailSessionDefinitions;
 import javax.ejb.Stateless;
 import javax.naming.InitialContext;
 
diff --git a/appserver/tests/v2-tests/appserv-tests/devtests/resources/mail-session/ejb/HelloStatefulEJB.java b/appserver/tests/v2-tests/appserv-tests/devtests/resources/mail-session/ejb/HelloStatefulEJB.java
index d3f5337..975b8ba 100644
--- a/appserver/tests/v2-tests/appserv-tests/devtests/resources/mail-session/ejb/HelloStatefulEJB.java
+++ b/appserver/tests/v2-tests/appserv-tests/devtests/resources/mail-session/ejb/HelloStatefulEJB.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2020 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
@@ -17,8 +17,8 @@
 package com.sun.s1asdev.ejb.ejb30.hello.session3;
 
 import javax.annotation.PostConstruct;
-import javax.mail.MailSessionDefinition;
-import javax.mail.MailSessionDefinitions;
+import jakarta.mail.MailSessionDefinition;
+import jakarta.mail.MailSessionDefinitions;
 import javax.ejb.Stateful;
 import javax.naming.InitialContext;
 
diff --git a/appserver/tests/v2-tests/appserv-tests/devtests/resources/mail-session/servlet/Servlet.java b/appserver/tests/v2-tests/appserv-tests/devtests/resources/mail-session/servlet/Servlet.java
index 2aee0fc..60171e5 100644
--- a/appserver/tests/v2-tests/appserv-tests/devtests/resources/mail-session/servlet/Servlet.java
+++ b/appserver/tests/v2-tests/appserv-tests/devtests/resources/mail-session/servlet/Servlet.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2020 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
@@ -17,8 +17,8 @@
 package com.sun.s1asdev.ejb.ejb30.hello.session3;
 
 import javax.annotation.Resource;
-import javax.mail.MailSessionDefinition;
-import javax.mail.MailSessionDefinitions;
+import jakarta.mail.MailSessionDefinition;
+import jakarta.mail.MailSessionDefinitions;
 import javax.ejb.EJB;
 import javax.ejb.EJBException;
 import javax.ejb.EJBs;
diff --git a/appserver/web/web-naming/src/main/java/org/apache/naming/factory/MailSessionFactory.java b/appserver/web/web-naming/src/main/java/org/apache/naming/factory/MailSessionFactory.java
index 8eda3a3..af3b40e 100644
--- a/appserver/web/web-naming/src/main/java/org/apache/naming/factory/MailSessionFactory.java
+++ b/appserver/web/web-naming/src/main/java/org/apache/naming/factory/MailSessionFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997-2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2020 Oracle and/or its affiliates. All rights reserved.
  * Copyright 2004 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,7 +22,7 @@
 import java.util.Enumeration;
 import java.util.Hashtable;
 import java.util.Properties;
-import javax.mail.Session;
+import jakarta.mail.Session;
 import javax.naming.Name;
 import javax.naming.Context;
 import javax.naming.RefAddr;
@@ -30,10 +30,10 @@
 import javax.naming.spi.ObjectFactory;
 
 /**
- * <p>Factory class that creates a JNDI named JavaMail Session factory,
+ * <p>Factory class that creates a JNDI named Jakarta Mail Session factory,
  * which can be used for managing inbound and outbound electronic mail
- * messages via JavaMail APIs.  All messaging environment properties
- * described in the JavaMail Specification may be passed to the Session
+ * messages via Jakarta Mail APIs.  All messaging environment properties
+ * described in the Jakarta Mail Specification may be passed to the Session
  * factory; however the following properties are the most commonly used:</p>
  * <ul>
  * <li>
@@ -46,7 +46,7 @@
  * configuration file.  An example of factory configuration is:</p>
  * <pre>
  * &lt;Resource name="mail/smtp" auth="CONTAINER"
- *           type="javax.mail.Session"/&gt;
+ *           type="jakarta.mail.Session"/&gt;
  * &lt;ResourceParams name="mail/smtp"&gt;
  *   &lt;parameter&gt;
  *     &lt;name&gt;factory&lt;/name&gt;
@@ -69,7 +69,7 @@
     /**
      * The Java type for which this factory knows how to create objects.
      */
-    protected static final String factoryType = "javax.mail.Session";
+    protected static final String factoryType = "jakarta.mail.Session";
 
 
     /**
@@ -95,13 +95,13 @@
         if (!ref.getClassName().equals(factoryType))
             return (null);
 
-        // Create a new Session inside a doPrivileged block, so that JavaMail
-        // can read its default properties without throwing Security
+        // Create a new Session inside a doPrivileged block, so that Jakarta
+        // Mail can read its default properties without throwing Security
         // exceptions
         return AccessController.doPrivileged( new PrivilegedAction<Session>() {
 		public Session run() {
 
-                    // Create the JavaMail properties we will use
+                    // Create the Jakarta Mail properties we will use
                     Properties props = new Properties();
                     props.put("mail.transport.protocol", "smtp");
                     props.put("mail.smtp.host", "localhost");
diff --git a/appserver/web/web-naming/src/main/java/org/apache/naming/factory/ResourceFactory.java b/appserver/web/web-naming/src/main/java/org/apache/naming/factory/ResourceFactory.java
index 7db23fb..49c5022 100644
--- a/appserver/web/web-naming/src/main/java/org/apache/naming/factory/ResourceFactory.java
+++ b/appserver/web/web-naming/src/main/java/org/apache/naming/factory/ResourceFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997-2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2020 Oracle and/or its affiliates. All rights reserved.
  * Copyright 2004 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -113,13 +113,13 @@
                     } catch(Throwable t) {
 
                     }
-                } else if (ref.getClassName().equals("javax.mail.Session")) {
-                    String javaxMailSessionFactoryClassName =
-                        System.getProperty("javax.mail.Session.Factory",
+                } else if (ref.getClassName().equals("jakarta.mail.Session")) {
+                    String mailSessionFactoryClassName =
+                        System.getProperty("jakarta.mail.Session.Factory",
                                            "org.apache.naming.factory.MailSessionFactory");
                     try {
                         factory = (ObjectFactory) 
-                            Class.forName(javaxMailSessionFactoryClassName)
+                            Class.forName(mailSessionFactoryClassName)
                             .newInstance();
                     } catch(Throwable t) {
                     }
diff --git a/appserver/web/web-naming/src/main/java/org/apache/naming/factory/SendMailFactory.java b/appserver/web/web-naming/src/main/java/org/apache/naming/factory/SendMailFactory.java
index ca2b76e..b31b057 100644
--- a/appserver/web/web-naming/src/main/java/org/apache/naming/factory/SendMailFactory.java
+++ b/appserver/web/web-naming/src/main/java/org/apache/naming/factory/SendMailFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997-2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997-2020 Oracle and/or its affiliates. All rights reserved.
  * Copyright 2004 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,11 +22,11 @@
 import java.util.Hashtable;
 import java.util.Properties;
 import java.util.Enumeration;
-import javax.mail.Session;
-import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimePart;
-import javax.mail.internet.MimePartDataSource;
+import jakarta.mail.Session;
+import jakarta.mail.internet.InternetAddress;
+import jakarta.mail.internet.MimeMessage;
+import jakarta.mail.internet.MimePart;
+import jakarta.mail.internet.MimePartDataSource;
 import javax.naming.Name;
 import javax.naming.Context;
 import javax.naming.Reference;
@@ -34,7 +34,7 @@
 import javax.naming.spi.ObjectFactory;
 
 /**
- * Factory class that creates a JNDI named javamail MimePartDataSource
+ * Factory class that creates a JNDI named Jakarta Mail MimePartDataSource
  * object which can be used for sending email using SMTP.
  * <p>
  * Can be configured in the DefaultContext or Context scope
@@ -44,7 +44,7 @@
  * <p>
  * <pre>
  * &lt;Resource name="mail/send" auth="CONTAINER"
- *           type="javax.mail.internet.MimePartDataSource"/>
+ *           type="jakarta.mail.internet.MimePartDataSource"/>
  * &lt;ResourceParams name="mail/send">
  *   &lt;parameter>&lt;name>factory&lt;/name>
  *     &lt;value>org.apache.naming.factory.SendMailFactory&lt;/value>
@@ -77,7 +77,7 @@
 {
     // The class name for the javamail MimeMessageDataSource
     protected static final String DataSourceClassName =
-	"javax.mail.internet.MimePartDataSource";
+	"jakarta.mail.internet.MimePartDataSource";
 
     public Object getObjectInstance(Object RefObj, Name Nm, Context Ctx,
 				    Hashtable<?,?> Env) throws Exception 
@@ -85,7 +85,7 @@
 	final Reference Ref = (Reference)RefObj;
 
 	// Creation of the DataSource is wrapped inside a doPrivileged
-	// so that javamail can read its default properties without
+	// so that Jakarta Mail can read its default properties without
 	// throwing Security Exceptions
 	if (Ref.getClassName().equals(DataSourceClassName)) {
 	    return AccessController.doPrivileged(
diff --git a/docs/application-deployment-guide/src/main/jbake/content/dd-elements.adoc b/docs/application-deployment-guide/src/main/jbake/content/dd-elements.adoc
index 18ce8f4..9c2c116 100644
--- a/docs/application-deployment-guide/src/main/jbake/content/dd-elements.adoc
+++ b/docs/application-deployment-guide/src/main/jbake/content/dd-elements.adoc
@@ -6795,7 +6795,7 @@
 `mail-resource`
 ~~~~~~~~~~~~~~~
 
-Defines a JavaMail (`javax.mail.Session`) resource.
+Defines a Jakarta Mail (`jakarta.mail.Session`) resource.
 
 [[GSDPG957]][[sthref147]]
 
@@ -6919,14 +6919,14 @@
 ^^^^^^^^^^
 
 You can set properties for the `mail-resource` element and then get
-these properties in a JavaMail `Session` object later. Every property
+these properties in a Jakarta Mail `Session` object later. Every property
 name must start with a `mail-` prefix. The GlassFish Server changes the
 dash (`-`) character to a period (`.`) in the name of the property, then
-saves the property to the `MailConfiguration` and JavaMail `Session`
+saves the property to the `MailConfiguration` and Jakarta Mail `Session`
 objects. If the name of the property doesn't start with `mail-`, the
 property is ignored.
 
-For example, to define the property `mail.password` in a JavaMail
+For example, to define the property `mail.password` in a Jakarta Mail
 Session object, first edit `glassfish-resources.xml` as follows:
 
 [source,oac_no_warn]
@@ -6938,7 +6938,7 @@
  ...
 ----
 
-After getting the JavaMail `Session` object, get the `mail.password`
+After getting the Jakarta Mail `Session` object, get the `mail.password`
 property to retrieve the value `adminadmin`, as follows:
 
 [source,oac_no_warn]
@@ -6946,9 +6946,9 @@
 String password = session.getProperty("mail.password");
 ----
 
-For more information about JavaMail properties, see
-http://javamail.kenai.com/nonav/javadocs/index.html[JavaMail API
-Documentation] (`http://javamail.kenai.com/nonav/javadocs/index.html`).
+For more information about Jakarta Mail properties, see
+https://jakarta.ee/specifications/mail[Jakarta Mail API
+Documentation] (`https://jakarta.ee/specifications/mail`).
 
 [[beaum]][[GSDPG00192]][[manager-properties]]
 
@@ -9642,7 +9642,7 @@
 link:#giyik[`mail-resource`]
 
 
- |zero or more |Defines a JavaMail resource.
+ |zero or more |Defines a Jakarta Mail resource.
 
 a|
 link:#giyhw[`admin-object-resource`]
diff --git a/docs/application-development-guide/src/main/jbake/content/javamail.adoc b/docs/application-development-guide/src/main/jbake/content/javamail.adoc
deleted file mode 100644
index 8e672d6..0000000
--- a/docs/application-development-guide/src/main/jbake/content/javamail.adoc
+++ /dev/null
@@ -1,246 +0,0 @@
-type=page
-status=published
-title=Using the JavaMail API
-prev=jms.html
-~~~~~~
-Using the JavaMail API
-======================
-
-[[GSDVG00021]][[beaow]]
-
-
-[[using-the-javamail-api]]
-18 Using the JavaMail API
--------------------------
-
-This chapter describes how to use the JavaMail API, which provides a set
-of abstract classes defining objects that comprise a mail system.
-
-The following topics are addressed here:
-
-* link:#beaox[Introducing JavaMail]
-* link:#beaoy[Creating a JavaMail Session]
-* link:#beaoz[JavaMail Session Properties]
-* link:#beapa[Looking Up a JavaMail Session]
-* link:#fwfiy[Sending and Reading Messages Using JavaMail]
-* link:#gkpfg[Using Application-Scoped JavaMail Resources]
-
-
-[NOTE]
-=======================================================================
-
-JavaMail resources are supported only in the full OracleGlassFish
-Server, not in the Web Profile.
-
-=======================================================================
-
-
-[[beaox]][[GSDVG00200]][[introducing-javamail]]
-
-Introducing JavaMail
-~~~~~~~~~~~~~~~~~~~~
-
-The JavaMail API defines classes such as `Message`, `Store`, and
-`Transport`. The API can be extended and can be subclassed to provide
-new protocols and to add functionality when necessary. In addition, the
-API provides concrete subclasses of the abstract classes. These
-subclasses, including `MimeMessage` and `MimeBodyPart`, implement widely
-used Internet mail protocols and conform to the RFC822 and RFC2045
-specifications. The JavaMail API includes support for the IMAP4, POP3,
-and SMTP protocols.
-
-The JavaMail architectural components are as follows:
-
-* The abstract layer declares classes, interfaces, and abstract methods
-intended to support mail handling functions that all mail systems
-support.
-* The internet implementation layer implements part of the abstract
-layer using the RFC822 and MIME internet standards.
-* JavaMail uses the JavaBeans Activation Framework (JAF) to encapsulate
-message data and to handle commands intended to interact with that data.
-
-For more information, see "link:../administration-guide/javamail.html#GSADG00019[Administering the JavaMail
-Service]" in GlassFish Server Open Source Edition Administration Guide
-and the JavaMail specification at
-`http://www.oracle.com/technetwork/java/javamail/index.html`.
-
-[[beaoy]][[GSDVG00201]][[creating-a-javamail-session]]
-
-Creating a JavaMail Session
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You can create a JavaMail session in the following ways:
-
-* In the Administration Console, open the Resources component and select
-JavaMail Sessions. For details, click the Help button in the
-Administration Console.
-* Use the `asadmin create-javamail-resource` command. For details, see
-the link:../reference-manual/toc.html#GSRFM[GlassFish Server Open Source Edition Reference Manual].
-
-[[beaoz]][[GSDVG00202]][[javamail-session-properties]]
-
-JavaMail Session Properties
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You can set properties for a JavaMail `Session` object. Every property
-name must start with a `mail-` prefix. The GlassFish Server changes the
-dash (`-`) character to a period (`.`) in the name of the property and
-saves the property to the `MailConfiguration` and JavaMail `Session`
-objects. If the name of the property doesn't start with `mail-`, the
-property is ignored.
-
-For example, if you want to define the property `mail.from` in a
-JavaMail `Session` object, first define the property as follows:
-
-* Name - `mail-from`
-* Value - `john.doe@sun.com`
-
-[[beapa]][[GSDVG00203]][[looking-up-a-javamail-session]]
-
-Looking Up a JavaMail Session
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The standard Java Naming and Directory Interface (JNDI) subcontext for
-JavaMail sessions is `java:comp/env/mail`.
-
-Registering JavaMail sessions in the `mail` naming subcontext of a JNDI
-namespace, or in one of its child subcontexts, is standard. The JNDI
-namespace is hierarchical, like a file system's directory structure, so
-it is easy to find and nest references. A JavaMail session is bound to a
-logical JNDI name. The name identifies a subcontext, `mail`, of the root
-context, and a logical name. To change the JavaMail session, you can
-change its entry in the JNDI namespace without having to modify the
-application.
-
-The resource lookup in the application code looks like this:
-
-[source,oac_no_warn]
-----
-InitialContext ic = new InitialContext();
-String snName = "java:comp/env/mail/MyMailSession";
-Session session = (Session)ic.lookup(snName);
-----
-
-For more information about the JNDI API, see link:jndi.html#beanr[Using
-the Java Naming and Directory Interface].
-
-[[fwfiy]][[GSDVG00204]][[sending-and-reading-messages-using-javamail]]
-
-Sending and Reading Messages Using JavaMail
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The following topics are addressed here:
-
-* link:#beapb[To Send a Message Using JavaMail]
-* link:#beapc[To Read a Message Using JavaMail]
-
-[[beapb]][[GSDVG00079]][[to-send-a-message-using-javamail]]
-
-To Send a Message Using JavaMail
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-1.  Import the packages that you need. +
-[source,oac_no_warn]
-----
-import java.util.*;
-import javax.activation.*;
-import javax.mail.*;
-import javax.mail.internet.*;
-import javax.naming.*;
-----
-2.  Look up the JavaMail session. +
-[source,oac_no_warn]
-----
-InitialContext ic = new InitialContext();
-String snName = "java:comp/env/mail/MyMailSession";
-Session session = (Session)ic.lookup(snName);
-----
-For more information, see link:#beapa[Looking Up a JavaMail Session].
-3.  Override the JavaMail session properties if necessary. +
-For example: +
-[source,oac_no_warn]
-----
-Properties props = session.getProperties();
-props.put("mail.from", "user2@mailserver.com");
-----
-4.  Create a `MimeMessage`. +
-The msgRecipient, msgSubject, and msgTxt variables in the following
-example contain input from the user: +
-[source,oac_no_warn]
-----
-Message msg = new MimeMessage(session);
-msg.setSubject(msgSubject);
-msg.setSentDate(new Date());
-msg.setFrom();
-msg.setRecipients(Message.RecipientType.TO, 
-   InternetAddress.parse(msgRecipient, false));
-msg.setText(msgTxt);
-----
-5.  Send the message. +
-[source,oac_no_warn]
-----
-Transport.send(msg);
-----
-
-[[beapc]][[GSDVG00080]][[to-read-a-message-using-javamail]]
-
-To Read a Message Using JavaMail
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-1.  Import the packages that you need. +
-[source,oac_no_warn]
-----
-import java.util.*;
-import javax.activation.*;
-import javax.mail.*;
-import javax.mail.internet.*;
-import javax.naming.*;
-----
-2.  Look up the JavaMail session. +
-[source,oac_no_warn]
-----
-InitialContext ic = new InitialContext();
-String snName = "java:comp/env/mail/MyMailSession";
-Session session = (javax.mail.Session)ic.lookup(snName);
-----
-For more information, see link:#beapa[Looking Up a JavaMail Session].
-3.  Override the JavaMail session properties if necessary. +
-For example: +
-[source,oac_no_warn]
-----
-Properties props = session.getProperties();
-props.put("mail.from", "user2@mailserver.com");
-----
-4.  Get a `Store` object from the `Session`, then connect to the mail
-server using the Store object's `connect` method. +
-You must supply a mail server name, a mail user name, and a password. +
-[source,oac_no_warn]
-----
-Store store = session.getStore();
-store.connect("MailServer", "MailUser", "secret");
-----
-5.  Get the INBOX folder. +
-[source,oac_no_warn]
-----
-Folder folder = store.getFolder("INBOX");
-----
-6.  It is efficient to read the `Message` objects (which represent
-messages on the server) into an array. +
-[source,oac_no_warn]
-----
-Message[] messages = folder.getMessages();
-----
-
-[[gkpfg]][[GSDVG00205]][[using-application-scoped-javamail-resources]]
-
-Using Application-Scoped JavaMail Resources
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You can define an application-scoped JavaMail or other resource for an
-enterprise application, web module, EJB module, connector module, or
-application client module by supplying a `glassfish-resources.xml`
-deployment descriptor file. For details, see
-"link:../application-deployment-guide/deploying-applications.html#GSDPG00075[Application-Scoped Resources]" in GlassFish Server
-Open Source Edition Application Deployment Guide.
-
-
diff --git a/docs/application-development-guide/src/main/jbake/content/jms.adoc b/docs/application-development-guide/src/main/jbake/content/jms.adoc
index 36cffae..201cf3a 100644
--- a/docs/application-development-guide/src/main/jbake/content/jms.adoc
+++ b/docs/application-development-guide/src/main/jbake/content/jms.adoc
@@ -1,7 +1,7 @@
 type=page
 status=published
 title=Using the Java Message Service
-next=javamail.html
+next=mail.html
 prev=jndi.html
 ~~~~~~
 Using the Java Message Service
diff --git a/docs/application-development-guide/src/main/jbake/content/mail.adoc b/docs/application-development-guide/src/main/jbake/content/mail.adoc
new file mode 100644
index 0000000..a4781c2
--- /dev/null
+++ b/docs/application-development-guide/src/main/jbake/content/mail.adoc
@@ -0,0 +1,247 @@
+type=page
+status=published
+title=Using the Jakarta Mail API
+prev=jms.html
+~~~~~~
+Using the Jakarta Mail API
+==========================
+
+[[GSDVG00021]][[beaow]]
+
+
+[[using-the-jakarta-mail-api]]
+18 Using the Jakarta Mail API
+-----------------------------
+
+This chapter describes how to use the Jakarta Mail API, which provides a set
+of abstract classes defining objects that comprise a mail system.
+
+The following topics are addressed here:
+
+* link:#beaox[Introducing Jakarta Mail]
+* link:#beaoy[Creating a Jakarta Mail Session]
+* link:#beaoz[Jakarta Mail Session Properties]
+* link:#beapa[Looking Up a Jakarta Mail Session]
+* link:#fwfiy[Sending and Reading Messages Using Jakarta Mail]
+* link:#gkpfg[Using Application-Scoped Jakarta Mail Resources]
+
+
+[NOTE]
+=======================================================================
+
+Jakarta Mail resources are supported only in the full Eclipse GlassFish
+Server, not in the Web Profile.
+
+=======================================================================
+
+
+[[beaox]][[GSDVG00200]][[introducing-jakarta-mail]]
+
+Introducing Jakarta Mail
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+The Jakarta Mail API defines classes such as `Message`, `Store`, and
+`Transport`. The API can be extended and can be subclassed to provide
+new protocols and to add functionality when necessary. In addition, the
+API provides concrete subclasses of the abstract classes. These
+subclasses, including `MimeMessage` and `MimeBodyPart`, implement widely
+used Internet mail protocols and conform to the RFC822 and RFC2045
+specifications. The Jakarta Mail API includes support for the IMAP4, POP3,
+and SMTP protocols.
+
+The Jakarta Mail architectural components are as follows:
+
+* The abstract layer declares classes, interfaces, and abstract methods
+intended to support mail handling functions that all mail systems
+support.
+* The internet implementation layer implements part of the abstract
+layer using the RFC822 and MIME internet standards.
+* Jakarta Mail uses the JavaBeans Activation Framework (JAF) to encapsulate
+message data and to handle commands intended to interact with that data.
+
+For more information, see
+"link:../administration-guide/mail.html#GSADG00019[Administering the Jakarta Mail Service]"
+in GlassFish Server Administration Guide
+and the Jakarta Mail specification at
+`https://jakarta.ee/specifications/mail`.
+
+[[beaoy]][[GSDVG00201]][[creating-a-jakarta-mail-session]]
+
+Creating a Jakarta Mail Session
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can create a Jakarta Mail session in the following ways:
+
+* In the Administration Console, open the Resources component and select
+Jakarta Mail Sessions. For details, click the Help button in the
+Administration Console.
+* Use the `asadmin create-mail-resource` command. For details, see
+the link:../reference-manual/toc.html#GSRFM[GlassFish Server Reference Manual].
+
+[[beaoz]][[GSDVG00202]][[jakarta-mail-session-properties]]
+
+Jakarta Mail Session Properties
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can set properties for a Jakarta Mail `Session` object. Every property
+name must start with a `mail-` prefix. The GlassFish Server changes the
+dash (`-`) character to a period (`.`) in the name of the property and
+saves the property to the `MailConfiguration` and Jakarta Mail `Session`
+objects. If the name of the property doesn't start with `mail-`, the
+property is ignored.
+
+For example, if you want to define the property `mail.from` in a
+Jakarta Mail `Session` object, first define the property as follows:
+
+* Name - `mail-from`
+* Value - `john.doe@sun.com`
+
+[[beapa]][[GSDVG00203]][[looking-up-a-jakarta-mail-session]]
+
+Looking Up a Jakarta Mail Session
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The standard Java Naming and Directory Interface (JNDI) subcontext for
+Jakarta Mail sessions is `java:comp/env/mail`.
+
+Registering Jakarta Mail sessions in the `mail` naming subcontext of a JNDI
+namespace, or in one of its child subcontexts, is standard. The JNDI
+namespace is hierarchical, like a file system's directory structure, so
+it is easy to find and nest references. A Jakarta Mail session is bound to a
+logical JNDI name. The name identifies a subcontext, `mail`, of the root
+context, and a logical name. To change the Jakarta Mail session, you can
+change its entry in the JNDI namespace without having to modify the
+application.
+
+The resource lookup in the application code looks like this:
+
+[source,oac_no_warn]
+----
+InitialContext ic = new InitialContext();
+String snName = "java:comp/env/mail/MyMailSession";
+Session session = (Session)ic.lookup(snName);
+----
+
+For more information about the JNDI API, see link:jndi.html#beanr[Using
+the Java Naming and Directory Interface].
+
+[[fwfiy]][[GSDVG00204]][[sending-and-reading-messages-using-jakarta-mail]]
+
+Sending and Reading Messages Using Jakarta Mail
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The following topics are addressed here:
+
+* link:#beapb[To Send a Message Using Jakarta Mail]
+* link:#beapc[To Read a Message Using Jakarta Mail]
+
+[[beapb]][[GSDVG00079]][[to-send-a-message-using-jakarta-mail]]
+
+To Send a Message Using Jakarta Mail
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+1.  Import the packages that you need. +
+[source,oac_no_warn]
+----
+import java.util.*;
+import jakarta.activation.*;
+import jakarta.mail.*;
+import jakarta.mail.internet.*;
+import javax.naming.*;
+----
+2.  Look up the Jakarta Mail session. +
+[source,oac_no_warn]
+----
+InitialContext ic = new InitialContext();
+String snName = "java:comp/env/mail/MyMailSession";
+Session session = (Session)ic.lookup(snName);
+----
+For more information, see link:#beapa[Looking Up a Jakarta Mail Session].
+3.  Override the Jakarta Mail session properties if necessary. +
+For example: +
+[source,oac_no_warn]
+----
+Properties props = session.getProperties();
+props.put("mail.from", "user2@mailserver.com");
+----
+4.  Create a `MimeMessage`. +
+The msgRecipient, msgSubject, and msgTxt variables in the following
+example contain input from the user: +
+[source,oac_no_warn]
+----
+Message msg = new MimeMessage(session);
+msg.setSubject(msgSubject);
+msg.setSentDate(new Date());
+msg.setFrom();
+msg.setRecipients(Message.RecipientType.TO, 
+   InternetAddress.parse(msgRecipient, false));
+msg.setText(msgTxt);
+----
+5.  Send the message. +
+[source,oac_no_warn]
+----
+Transport.send(msg);
+----
+
+[[beapc]][[GSDVG00080]][[to-read-a-message-using-jakarta-mail]]
+
+To Read a Message Using Jakarta Mail
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+1.  Import the packages that you need. +
+[source,oac_no_warn]
+----
+import java.util.*;
+import jakarta.activation.*;
+import jakarta.mail.*;
+import jakarta.mail.internet.*;
+import javax.naming.*;
+----
+2.  Look up the Jakarta Mail session. +
+[source,oac_no_warn]
+----
+InitialContext ic = new InitialContext();
+String snName = "java:comp/env/mail/MyMailSession";
+Session session = (jakarta.mail.Session)ic.lookup(snName);
+----
+For more information, see link:#beapa[Looking Up a Jakarta Mail Session].
+3.  Override the Jakarta Mail session properties if necessary. +
+For example: +
+[source,oac_no_warn]
+----
+Properties props = session.getProperties();
+props.put("mail.from", "user2@mailserver.com");
+----
+4.  Get a `Store` object from the `Session`, then connect to the mail
+server using the Store object's `connect` method. +
+You must supply a mail server name, a mail user name, and a password. +
+[source,oac_no_warn]
+----
+Store store = session.getStore();
+store.connect("MailServer", "MailUser", "secret");
+----
+5.  Get the INBOX folder. +
+[source,oac_no_warn]
+----
+Folder folder = store.getFolder("INBOX");
+----
+6.  It is efficient to read the `Message` objects (which represent
+messages on the server) into an array. +
+[source,oac_no_warn]
+----
+Message[] messages = folder.getMessages();
+----
+
+[[gkpfg]][[GSDVG00205]][[using-application-scoped-jakarta-mail-resources]]
+
+Using Application-Scoped Jakarta Mail Resources
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+You can define an application-scoped Jakarta Mail or other resource for an
+enterprise application, web module, EJB module, connector module, or
+application client module by supplying a `glassfish-resources.xml`
+deployment descriptor file. For details, see
+"link:../application-deployment-guide/deploying-applications.html#GSDPG00075[Application-Scoped Resources]" in GlassFish Server
+Open Source Edition Application Deployment Guide.
+
+
diff --git a/nucleus/deployment/dtds/src/main/resources/lib/dtds/sun-server_1_0.dtd b/nucleus/deployment/dtds/src/main/resources/lib/dtds/sun-server_1_0.dtd
index 7a19eac..6c1cc53 100644
--- a/nucleus/deployment/dtds/src/main/resources/lib/dtds/sun-server_1_0.dtd
+++ b/nucleus/deployment/dtds/src/main/resources/lib/dtds/sun-server_1_0.dtd
@@ -1,6 +1,6 @@
 <!--
 
-    Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
+    Copyright (c) 1997, 2020 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
@@ -568,7 +568,7 @@
                                 fail-all-connections               %boolean;  "false">
                                   
 
-<!-- The mail-resource element describes a javax.mail.Session resource -->
+<!-- The mail-resource element describes a jakarta.mail.Session resource -->
 <!ELEMENT mail-resource (description?, property*)> 
 <!ATTLIST mail-resource jndi-name                CDATA        #REQUIRED 
                         store-protocol           CDATA        "imap" 
diff --git a/nucleus/parent/pom.xml b/nucleus/parent/pom.xml
index cc8c903..33fd6f9 100644
--- a/nucleus/parent/pom.xml
+++ b/nucleus/parent/pom.xml
@@ -119,7 +119,8 @@
         <logging-annotation-processor.version>1.9</logging-annotation-processor.version>
         <command-security-plugin.version>1.0.10</command-security-plugin.version>
         <command.security.maven.plugin.isFailureFatal>false</command.security.maven.plugin.isFailureFatal>
-        <mail.version>1.6.4</mail.version>
+        <mail.version>2.0.0-RC4</mail.version>
+        <activation.version>2.0.0-RC3</activation.version>
         <jakarta.annotation-api.version>1.3.4</jakarta.annotation-api.version>
         <copyright-plugin.version>1.50</copyright-plugin.version>
         <testng.version>7.1.0</testng.version>
@@ -826,6 +827,11 @@
                 <version>${mail.version}</version>
             </dependency>
             <dependency>
+                <groupId>com.sun.activation</groupId>
+                <artifactId>jakarta.activation</artifactId>
+                <version>${activation.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>org.glassfish.pfl</groupId>
                 <artifactId>pfl-basic</artifactId>
                 <version>${pfl.version}</version>
