Consume more javax.* bundles from Maven Central

* javax.jms,
* javax.websocket and
* javax.security.auth.message-api

Note: Contains a work-around for Gemini Web jaspic fragment issue

The Gemini Web bundle 'org.eclipse.gemini.web.jaspic.fragment'
refers to the "old" name of the auth.message-api bundle.

This commit provides a Virgo version of the fragment to allow the use
of the version from Maven Central.

Change-Id: Ie90deeb8345cd7f0594408ed50467aaa08bbce0c
diff --git a/build.gradle b/build.gradle
index c404f2a..9180421 100644
--- a/build.gradle
+++ b/build.gradle
@@ -127,6 +127,8 @@
             project(':web:org.eclipse.virgo.web.spring.integration'),
             project(':web:org.eclipse.virgo.web.war.deployer'),
 
+            project(':web:org.eclipse.virgo.web.jaspic.integration'),
+
             project(':apps:org.eclipse.virgo.apps.splash'),
             project(':kernel:org.eclipse.virgo.management.console'),
             project(':kernel:org.eclipse.virgo.management.fragment'),
@@ -252,17 +254,14 @@
             'JAVAX.ACTIVATION'             : javaxActivationVersion,
             'JAVAX.EJB'                    : javaxEjbVersion,
             'JAVAX.INJECT'                 : javaxInjectVersion,
-            'JAVAX.JMS'                    : javaxJmsVersion,
             'JAVAX.MAIL'                   : javaxMailVersion,
             'JAVAX.PERSISTENCE'            : javaxPersistenceVersion,
             'JAVAX.RESOURCE'               : javaxResourceVersion,
-            'JAVAX.SECURITY.AUTH'          : javaxSecurityAuthMessageVersion,
             'JAVAX.SECURITY.JACC'          : javaxSecurityJaccVersion,
             'JAVAX.SERVLET.VERSION'        : javaxServletVersion,
             'JAVAX.SERVLET.JSTL.VERSION'   : javaxServletJspJstlVersion,
             'JSTL.IMPL'                    : javaxServletJspJstlImplOsgiVersion,
             'JAVAX.VALIDATION'             : javaxValidationVersion,
-            'JAVAX.WEBSOCKET'              : javaxWebsocketVersion,
             'JAVAX.WSDL'                   : javaxWsdlVersion,
             'JAVAX.WS.RS'                  : javaxWsRsVersion,
 
@@ -536,14 +535,16 @@
             dependency "javax.ejb:javax.ejb-api:${javaxEjbVersion}"
             dependency "javax.el:javax.el-api:${javaxElVersion}"
             dependency "javax.enterprise:cdi-api:${cdiApiVersion}"
+            dependency "javax.jms:javax.jms-api:${javaxJmsVersion}"
             dependency "javax.resource:javax.resource-api:${javaxResourceVersion}"
+            dependency "javax.security.auth.message:javax.security.auth.message-api:${javaxSecurityAuthMessageVersion}"
             dependency "javax.servlet:javax.servlet-api:${javaxServletVersion}"
             dependency "javax.servlet.jsp:javax.servlet.jsp-api:${javaxServletJspVersion}"
             dependency "javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api:${javaxServletJspJstlVersion}"
             dependency "javax.transaction:javax.transaction-api:${javaxTransactionVersion}"
+            dependency "javax.websocket:javax.websocket-api:${javaxWebsocketVersion}"
             dependency "javax.xml.rpc:javax.xml.rpc-api:${javaxXmlRpcVersion}"
 
-
             dependency "org.aspectj:aspectjrt:${aspectjVersion}" // used by AspectJ compiler
             dependency "org.aspectj:aspectjtools:${aspectjVersion}" // used by AspectJ compiler -> configuration ajtools
 
diff --git a/gradle.properties b/gradle.properties
index 1dfe746..9b2f82a 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -247,7 +247,8 @@
 # Glassfish bundle version that packages javax.inject 1
 glassfishJavaxInjectVersion = 2.5.0-b62
 
-javaxJmsVersion=1.1.0.v201205091237
+# CQ ?! - 1.1.0.v201205091237
+javaxJmsVersion=2.0.1
 # CQ12547 (PB CQ11275) - 1.5.5
 javaxMailVersion = 1.5.6
 # TODO create CQ?
@@ -256,7 +257,7 @@
 # CQ3940
 javaxPortletVersion=2.0.0
 javaxResourceVersion=1.7.1
-javaxSecurityAuthMessageVersion=1.1.0.20180730
+javaxSecurityAuthMessageVersion=1.1.1
 # TODO - check if a CQ is missing
 javaxSecurityJaccVersion=1.4.0.v201205031350
 
@@ -281,7 +282,7 @@
 # CQ6095 Bean Validation API Version: 1.0.0 GA (PB CQ3570)
 javaxValidationVersion=1.0.0.GA_v201205091237
 # Covered by Tomcat CQ
-javaxWebsocketVersion=1.1.0.20180730
+javaxWebsocketVersion=1.1
 javaxWsdlVersion=1.6.2.v201012040545
 javaxWsRsVersion=1.1.1.v20101004-1200
 # Note: Version 1.1.2 requires javax.servlet-api 4.+
diff --git a/org.eclipse.virgo.site/build.gradle b/org.eclipse.virgo.site/build.gradle
index a156238..0eca681 100644
--- a/org.eclipse.virgo.site/build.gradle
+++ b/org.eclipse.virgo.site/build.gradle
@@ -112,6 +112,8 @@
     localPlugin project(':web:org.eclipse.virgo.web.spring.integration')
     localPlugin project(':web:org.eclipse.virgo.web.war.deployer')
 
+    localPlugin project(':web:org.eclipse.virgo.web.jaspic.integration')
+
     // TODO - review if all those signedExternalPlugins are signed
     signedExternalPlugin 'org.slf4j:slf4j-api'
     signedExternalPlugin 'org.slf4j:jul-to-slf4j'
@@ -264,9 +266,9 @@
     signedExternalPlugin 'javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api'
 
     signedExternalPlugin 'org.glassfish.hk2.external:javax.inject'
-    signedExternalPlugin group: "org.eclipse.virgo.mirrored", name: "javax.jms", version: javaxJmsVersion, configuration: "compile", ext: "jar"
+    signedExternalPlugin 'javax.jms:javax.jms-api'
     signedExternalPlugin group: "org.eclipse.virgo.mirrored", name: "javax.persistence", version: javaxPersistenceVersion, configuration: "compile", ext: "jar"
-    signedExternalPlugin group: "org.eclipse.virgo.mirrored", name: "javax.security.auth.message", version: javaxSecurityAuthMessageVersion, configuration: "compile", ext: "jar"
+    signedExternalPlugin 'javax.security.auth.message:javax.security.auth.message-api'
     signedExternalPlugin group: "org.eclipse.virgo.mirrored", name: "javax.security.jacc", version: javaxSecurityJaccVersion, configuration: "compile", ext: "jar"
     signedExternalPlugin group: "org.glassfish.web", name: "javax.servlet.jsp.jstl", version: javaxServletJspJstlImplVersion
     signedExternalPlugin group: "org.eclipse.virgo.mirrored", name: "javax.validation", version: javaxValidationVersion, configuration: "compile", ext: "jar"
@@ -319,7 +321,7 @@
     signedExternalPlugin group: "org.eclipse.virgo.mirrored", name: "javax.activation", version: '1.1.0.v201211130549', configuration: "compile", ext: "jar"
 
     signedExternalPlugin 'javax.servlet.jsp:javax.servlet.jsp-api'
-    signedExternalPlugin group: "org.eclipse.virgo.mirrored", name: "javax.websocket", version: javaxWebsocketVersion, configuration: "compile", ext: "jar"
+    signedExternalPlugin 'javax.websocket:javax.websocket-api'
     signedExternalPlugin 'javax.xml.rpc:javax.xml.rpc-api'
     signedExternalPlugin group: "org.eclipse.virgo.mirrored", name: "org.apache.catalina", version: apacheCatalinaVersion, configuration: "compile", ext: "jar"
     signedExternalPlugin group: "org.eclipse.virgo.mirrored", name: "org.apache.catalina.ha", version: apacheCatalinaVersion, configuration: "compile", ext: "jar"
diff --git a/org.eclipse.virgo.site/org.eclipse.gemini.web.feature/feature.xml b/org.eclipse.virgo.site/org.eclipse.gemini.web.feature/feature.xml
index 300f3ae..f2dbe34 100755
--- a/org.eclipse.virgo.site/org.eclipse.gemini.web.feature/feature.xml
+++ b/org.eclipse.virgo.site/org.eclipse.gemini.web.feature/feature.xml
@@ -42,11 +42,13 @@
          unpack="false"
          autostart="true"/>
 
+   <!-- Note: The original Gemini Web fragment contains: "Fragment-Host: javax.security.auth.message" -->
+   <!-- Note: With the switch to Maven Central we need: "Fragment-Host: javax.security.auth.message-api" -->
    <plugin
-         id="org.eclipse.gemini.web.jaspic.fragment"
+         id="org.eclipse.virgo.web.jaspic.integration"
          download-size="0"
          install-size="0"
-         version="@GEMINI.WEB.VERSION@"
+         version="@VIRGO.VERSION@"
          unpack="false"/>
     
     <plugin
@@ -78,10 +80,10 @@
         unpack="false"/>
     
     <plugin
-        id="javax.websocket"
+        id="javax.websocket-api"
         download-size="0"
         install-size="0"
-        version="@JAVAX.WEBSOCKET@"
+        version="0.0.0"
         unpack="false"/>
 
 </feature>
diff --git a/org.eclipse.virgo.site/org.eclipse.virgo.enterprise.feature/feature.xml b/org.eclipse.virgo.site/org.eclipse.virgo.enterprise.feature/feature.xml
index 3eed1a4..8a3ca07 100755
--- a/org.eclipse.virgo.site/org.eclipse.virgo.enterprise.feature/feature.xml
+++ b/org.eclipse.virgo.site/org.eclipse.virgo.enterprise.feature/feature.xml
Binary files differ
diff --git a/packaging/build.gradle b/packaging/build.gradle
index 2ef9933..9992714 100644
--- a/packaging/build.gradle
+++ b/packaging/build.gradle
@@ -96,7 +96,7 @@
         repositoryExt project(':web:org.eclipse.virgo.web.dm')
 
         // 3rd party dependencies from Spring Framework
-        repositoryExt group: "org.eclipse.virgo.mirrored", name: "javax.jms", version: javaxJmsVersion, configuration: "compile", ext: "jar"
+        repositoryExt 'javax.jms:javax.jms-api'
         repositoryExt 'javax.servlet:javax.servlet-api'
 
         // missing Spring Framework dependencies
@@ -121,14 +121,6 @@
         repositoryExt 'javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api'
         repositoryExt group: "org.glassfish.web", name: "javax.servlet.jsp.jstl", version: javaxServletJspJstlImplVersion
 
-        nanoPickup project(':apps:org.eclipse.virgo.apps.splash')
-    }
-}
-
-configure([
-        project(':packaging:tomcat-server'),
-]) {
-    dependencies {
         repositoryExt project(':web:org.eclipse.virgo.web.core')
         repositoryExt project(':web:org.eclipse.virgo.web.tomcat.support')
         repositoryExt project(':web:org.eclipse.virgo.web.servlet.adapter')
@@ -141,10 +133,10 @@
         repositoryExt group: "org.eclipse.virgo.mirrored", name: "javax.persistence", version: javaxPersistenceVersion, configuration: "compile", ext: "jar"
 
         repositoryExt 'javax.servlet.jsp:javax.servlet.jsp-api'
-        repositoryExt group: "org.eclipse.virgo.mirrored", name: "javax.security.auth.message", version: javaxSecurityAuthMessageVersion, configuration: "compile", ext: "jar"
+        repositoryExt 'javax.security.auth.message:javax.security.auth.message-api'
 
         repositoryExt 'javax.xml.rpc:javax.xml.rpc-api'
-        repositoryExt group: "org.eclipse.virgo.mirrored", name: "javax.websocket", version: javaxWebsocketVersion, configuration: "compile", ext: "jar"
+        repositoryExt 'javax.websocket:javax.websocket-api'
         repositoryExt group: "org.eclipse.virgo.mirrored", name: "org.eclipse.equinox.event", version: equinoxEventVersion, configuration: "compile", ext: "jar"
 
         repositoryExt group: "commons-io", name: "commons-io", version: commonsIoVersion, ext: "jar"
@@ -162,8 +154,6 @@
 
         repositoryExt group: "org.eclipse.virgo.mirrored", name: "org.eclipse.jdt.core.compiler.batch", version: eclipseJdtCoreCompilerBatchVersion, configuration: "compile", ext: "jar"
 
-        repositoryExt group: "org.eclipse.virgo.mirrored", name: "javax.websocket", version: javaxWebsocketVersion, configuration: "compile", ext: "jar"
-
         repositoryExt group: "org.eclipse.virgo.mirrored", name: "org.apache.catalina", version: apacheCatalinaVersion, configuration: "compile", ext: "jar"
         repositoryExt group: "org.eclipse.virgo.mirrored", name: "org.apache.catalina.ha", version: apacheCatalinaVersion, configuration: "compile", ext: "jar"
         repositoryExt group: "org.eclipse.virgo.mirrored", name: "org.apache.catalina.tribes", version: apacheCatalinaVersion, configuration: "compile", ext: "jar"
@@ -190,5 +180,7 @@
 //        repositoryExt 'javax.interceptor:javax.interceptor-api:1.2.2'
 //        repositoryExt 'javax.enterprise:cdi-api'
 //        repositoryExt 'javax.transaction:javax.transaction-api'
+
+        nanoPickup project(':apps:org.eclipse.virgo.apps.splash')
     }
 }
diff --git a/packaging/tomcat-server/src/main/filtered/repository/ext/org.springframework.spring-library.libd b/packaging/tomcat-server/src/main/filtered/repository/ext/org.springframework.spring-library.libd
index 961299b..04a3ed7 100644
--- a/packaging/tomcat-server/src/main/filtered/repository/ext/org.springframework.spring-library.libd
+++ b/packaging/tomcat-server/src/main/filtered/repository/ext/org.springframework.spring-library.libd
@@ -18,4 +18,4 @@
  oevm.org.springframework.webflux;version="[@SPRING.VERSION@, @SPRING.VERSION@]",
  oevm.org.springframework.webmvc;version="[@SPRING.VERSION@, @SPRING.VERSION@]",
  oevm.org.springframework.websocket;version="[@SPRING.VERSION@, @SPRING.VERSION@]",
- javax.jms;version="[1.1,2)"
+ javax.jms-api;version="[2,3)"
diff --git a/settings.gradle b/settings.gradle
index 116f015..064edfe 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -100,6 +100,8 @@
 include ':web:org.eclipse.virgo.web.enterprise.javax.persistence.provider.initializer'
 include ':web:org.eclipse.virgo.web.enterprise.openejb.tomcat.factory'
 
+include ':web:org.eclipse.virgo.web.jaspic.integration'
+
 include ':web:test-apps:osgi-webapp'
 include ':web:test-apps:spring-capability-tests'
 
diff --git a/web/org.eclipse.virgo.web.jaspic.integration/build.gradle b/web/org.eclipse.virgo.web.jaspic.integration/build.gradle
new file mode 100644
index 0000000..5f115a9
--- /dev/null
+++ b/web/org.eclipse.virgo.web.jaspic.integration/build.gradle
@@ -0,0 +1,3 @@
+dependencies {
+    implementation 'javax.security.auth.message:javax.security.auth.message-api'
+}
diff --git a/web/org.eclipse.virgo.web.jaspic.integration/bundle.bnd b/web/org.eclipse.virgo.web.jaspic.integration/bundle.bnd
new file mode 100644
index 0000000..4b80139
--- /dev/null
+++ b/web/org.eclipse.virgo.web.jaspic.integration/bundle.bnd
@@ -0,0 +1,5 @@
+Bundle-ManifestVersion: 2
+Bundle-Name: Virgo Web Gemini Web JASPIC Integration
+Bundle-SymbolicName: org.eclipse.virgo.web.jaspic.integration
+Fragment-Host: javax.security.auth.message-api
+Import-Package: org.apache.catalina.authenticator.jaspic
diff --git a/web/org.eclipse.virgo.web.jaspic.integration/src/main/java/.gitignore b/web/org.eclipse.virgo.web.jaspic.integration/src/main/java/.gitignore
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/web/org.eclipse.virgo.web.jaspic.integration/src/main/java/.gitignore
diff --git a/web/org.eclipse.virgo.web.jaspic.integration/src/main/resources/about.html b/web/org.eclipse.virgo.web.jaspic.integration/src/main/resources/about.html
new file mode 100644
index 0000000..c258ef5
--- /dev/null
+++ b/web/org.eclipse.virgo.web.jaspic.integration/src/main/resources/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+ 
+<p>June 5, 2006</p>	
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;).  A copy of the EPL is available 
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is 
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was 
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/web/org.eclipse.virgo.web.test/build.gradle b/web/org.eclipse.virgo.web.test/build.gradle
index a31f60d..493b0b8 100644
--- a/web/org.eclipse.virgo.web.test/build.gradle
+++ b/web/org.eclipse.virgo.web.test/build.gradle
@@ -81,18 +81,18 @@
     repositoryExt 'javax.annotation:javax.annotation-api'
     repositoryExt 'javax.ejb:javax.ejb-api:3.2.2'
     repositoryExt 'javax.el:javax.el-api'
-    repositoryExt group: "org.eclipse.virgo.mirrored", name: "javax.jms", version: javaxJmsVersion, configuration: "compile", ext: "jar"
+    repositoryExt 'javax.jms:javax.jms-api'
     repositoryExt group: "com.sun.mail", name: "javax.mail", version: javaxMailVersion
     repositoryExt group: "org.eclipse.virgo.mirrored", name: "javax.persistence", version: javaxPersistenceVersion, configuration: "compile", ext: "jar"
     repositoryExt 'javax.portlet:portlet-api:3.0.1'
-    repositoryExt group: "org.eclipse.virgo.mirrored", name: "javax.security.auth.message", version: javaxSecurityAuthMessageVersion, configuration: "compile", ext: "jar"
+    repositoryExt 'javax.security.auth.message:javax.security.auth.message-api'
     repositoryExt 'javax.servlet:javax.servlet-api'
     repositoryExt 'javax.servlet.jsp:javax.servlet.jsp-api'
     repositoryExt group: "org.glassfish.web", name: "javax.servlet.jsp.jstl", version: javaxServletJspJstlImplVersion
     repositoryExt 'javax.servlet.jsp.jstl:javax.servlet.jsp.jstl-api'
     // TODO - think about removing portlet-api from standard VTS
 
-    repositoryExt group: "org.eclipse.virgo.mirrored", name: "javax.websocket", version: javaxWebsocketVersion, configuration: "compile", ext: "jar"
+    repositoryExt 'javax.websocket:javax.websocket-api'
     repositoryExt 'javax.xml.rpc:javax.xml.rpc-api'
 
     repositoryExt group: "org.eclipse.virgo.mirrored", name: "org.eclipse.jdt.core.compiler.batch", version: eclipseJdtCoreCompilerBatchVersion, configuration: "compile", ext: "jar"
@@ -172,7 +172,8 @@
 
     repositoryExt group: "org.eclipse.gemini", name: "org.eclipse.gemini.web.core", version: geminiWebVersion, configuration: "compile", ext: "jar"
     repositoryExt group: "org.eclipse.gemini", name: "org.eclipse.gemini.web.tomcat", version: geminiWebVersion, configuration: "compile", ext: "jar"
-    repositoryExt group: "org.eclipse.gemini", name: "org.eclipse.gemini.web.jaspic.fragment", version: geminiWebVersion, configuration: "compile", ext: "jar"
+    repositoryExt project(':web:org.eclipse.virgo.web.jaspic.integration')
+//    repositoryExt group: "org.eclipse.gemini", name: "org.eclipse.gemini.web.jaspic.fragment", version: geminiWebVersion, configuration: "compile", ext: "jar"
 
     repositoryExt project(':web:org.eclipse.virgo.web.core')
     repositoryExt project(':web:org.eclipse.virgo.web.tomcat.support')