This is an automated email from the ASF dual-hosted git repository.
git-site-role pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/tomee-site-pub.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 70bcb66588 [site-publish] source tomee-site-generator
https://github.com/apache/tomee-site-generator
https://ci-builds.apache.org/job/Tomee/job/site-publish
70bcb66588 is described below
commit 70bcb66588346192c45c559530c403966c062551
Author: jenkins <[email protected]>
AuthorDate: Mon Nov 14 12:47:07 2022 +0000
[site-publish] source tomee-site-generator
https://github.com/apache/tomee-site-generator
https://ci-builds.apache.org/job/Tomee/job/site-publish
---
community/contributors.html | 78 +++++----
javax-to-jakarta.html | 390 ++++++++++++++++++++++++++++++++++++++++++++
sitemap.xml | 5 +
3 files changed, 439 insertions(+), 34 deletions(-)
diff --git a/community/contributors.html b/community/contributors.html
index c7ece160fd..027fb08184 100644
--- a/community/contributors.html
+++ b/community/contributors.html
@@ -145,20 +145,20 @@
<div class="col-sm-4">
<div class="photo col-sm-5">
- <img
src="https://avatars.githubusercontent.com/u/2536412?v=4" style="width:140px">
+ <img
src="https://avatars.githubusercontent.com/u/1233474?v=4" style="width:140px">
</div>
<div class="col-sm-7">
- <h5 class="contributor-name"
style="font-size:1.0em;"><a href="https://github.com/AndyGee">AndyGee</a></h5>
+ <h5 class="contributor-name"
style="font-size:1.0em;"><a href="https://github.com/jeanouii">jeanouii</a></h5>
<p></p>
</div>
</div>
<div class="col-sm-4">
<div class="photo col-sm-5">
- <img
src="https://avatars.githubusercontent.com/u/1233474?v=4" style="width:140px">
+ <img
src="https://avatars.githubusercontent.com/u/2536412?v=4" style="width:140px">
</div>
<div class="col-sm-7">
- <h5 class="contributor-name"
style="font-size:1.0em;"><a href="https://github.com/jeanouii">jeanouii</a></h5>
+ <h5 class="contributor-name"
style="font-size:1.0em;"><a href="https://github.com/AndyGee">AndyGee</a></h5>
<p></p>
</div>
</div>
@@ -215,20 +215,20 @@
<div class="col-sm-4">
<div class="photo col-sm-5">
- <img
src="https://avatars.githubusercontent.com/u/8139890?v=4" style="width:140px">
+ <img
src="https://avatars.githubusercontent.com/u/5796305?v=4" style="width:140px">
</div>
<div class="col-sm-7">
- <h5 class="contributor-name"
style="font-size:1.0em;"><a
href="https://github.com/Daniel-Dos">Daniel-Dos</a></h5>
+ <h5 class="contributor-name"
style="font-size:1.0em;"><a
href="https://github.com/radcortez">radcortez</a></h5>
<p></p>
</div>
</div>
<div class="col-sm-4">
<div class="photo col-sm-5">
- <img
src="https://avatars.githubusercontent.com/u/5796305?v=4" style="width:140px">
+ <img
src="https://avatars.githubusercontent.com/u/8139890?v=4" style="width:140px">
</div>
<div class="col-sm-7">
- <h5 class="contributor-name"
style="font-size:1.0em;"><a
href="https://github.com/radcortez">radcortez</a></h5>
+ <h5 class="contributor-name"
style="font-size:1.0em;"><a
href="https://github.com/Daniel-Dos">Daniel-Dos</a></h5>
<p></p>
</div>
</div>
@@ -375,20 +375,20 @@
<div class="col-sm-4">
<div class="photo col-sm-5">
- <img
src="https://avatars.githubusercontent.com/u/2260551?v=4" style="width:140px">
+ <img
src="https://avatars.githubusercontent.com/u/1392297?v=4" style="width:140px">
</div>
<div class="col-sm-7">
- <h5 class="contributor-name"
style="font-size:1.0em;"><a
href="https://github.com/ivanjunckes">ivanjunckes</a></h5>
+ <h5 class="contributor-name"
style="font-size:1.0em;"><a href="https://github.com/exabrial">exabrial</a></h5>
<p></p>
</div>
</div>
<div class="col-sm-4">
<div class="photo col-sm-5">
- <img
src="https://avatars.githubusercontent.com/u/1392297?v=4" style="width:140px">
+ <img
src="https://avatars.githubusercontent.com/u/2260551?v=4" style="width:140px">
</div>
<div class="col-sm-7">
- <h5 class="contributor-name"
style="font-size:1.0em;"><a href="https://github.com/exabrial">exabrial</a></h5>
+ <h5 class="contributor-name"
style="font-size:1.0em;"><a
href="https://github.com/ivanjunckes">ivanjunckes</a></h5>
<p></p>
</div>
</div>
@@ -445,30 +445,30 @@
<div class="col-sm-4">
<div class="photo col-sm-5">
- <img
src="https://avatars.githubusercontent.com/u/2213741?v=4" style="width:140px">
+ <img
src="https://avatars.githubusercontent.com/u/2485545?v=4" style="width:140px">
</div>
<div class="col-sm-7">
- <h5 class="contributor-name"
style="font-size:1.0em;"><a
href="https://github.com/BogdanStirbat">BogdanStirbat</a></h5>
+ <h5 class="contributor-name"
style="font-size:1.0em;"><a
href="https://github.com/tandraschko">tandraschko</a></h5>
<p></p>
</div>
</div>
<div class="col-sm-4">
<div class="photo col-sm-5">
- <img
src="https://avatars.githubusercontent.com/u/23589475?v=4" style="width:140px">
+ <img
src="https://avatars.githubusercontent.com/u/2213741?v=4" style="width:140px">
</div>
<div class="col-sm-7">
- <h5 class="contributor-name"
style="font-size:1.0em;"><a
href="https://github.com/marcoantoniobferreira">marcoantoniobferreira</a></h5>
+ <h5 class="contributor-name"
style="font-size:1.0em;"><a
href="https://github.com/BogdanStirbat">BogdanStirbat</a></h5>
<p></p>
</div>
</div>
<div class="col-sm-4">
<div class="photo col-sm-5">
- <img
src="https://avatars.githubusercontent.com/u/2485545?v=4" style="width:140px">
+ <img
src="https://avatars.githubusercontent.com/u/23589475?v=4" style="width:140px">
</div>
<div class="col-sm-7">
- <h5 class="contributor-name"
style="font-size:1.0em;"><a
href="https://github.com/tandraschko">tandraschko</a></h5>
+ <h5 class="contributor-name"
style="font-size:1.0em;"><a
href="https://github.com/marcoantoniobferreira">marcoantoniobferreira</a></h5>
<p></p>
</div>
</div>
@@ -575,20 +575,20 @@
<div class="col-sm-4">
<div class="photo col-sm-5">
- <img
src="https://avatars.githubusercontent.com/u/3828140?v=4" style="width:140px">
+ <img
src="https://avatars.githubusercontent.com/u/2397243?v=4" style="width:140px">
</div>
<div class="col-sm-7">
- <h5 class="contributor-name"
style="font-size:1.0em;"><a href="https://github.com/cassunde">cassunde</a></h5>
+ <h5 class="contributor-name"
style="font-size:1.0em;"><a href="https://github.com/gdiazs">gdiazs</a></h5>
<p></p>
</div>
</div>
<div class="col-sm-4">
<div class="photo col-sm-5">
- <img
src="https://avatars.githubusercontent.com/u/2397243?v=4" style="width:140px">
+ <img
src="https://avatars.githubusercontent.com/u/3828140?v=4" style="width:140px">
</div>
<div class="col-sm-7">
- <h5 class="contributor-name"
style="font-size:1.0em;"><a href="https://github.com/gdiazs">gdiazs</a></h5>
+ <h5 class="contributor-name"
style="font-size:1.0em;"><a href="https://github.com/cassunde">cassunde</a></h5>
<p></p>
</div>
</div>
@@ -725,10 +725,10 @@
<div class="col-sm-4">
<div class="photo col-sm-5">
- <img
src="https://avatars.githubusercontent.com/u/14115193?v=4" style="width:140px">
+ <img
src="https://avatars.githubusercontent.com/u/49699333?v=4" style="width:140px">
</div>
<div class="col-sm-7">
- <h5 class="contributor-name"
style="font-size:1.0em;"><a
href="https://github.com/weverthon-medeiros">weverthon-medeiros</a></h5>
+ <h5 class="contributor-name"
style="font-size:1.0em;"><a
href="https://github.com/dependabot[bot]">dependabot[bot]</a></h5>
<p></p>
</div>
</div>
@@ -743,6 +743,16 @@
</div>
</div>
+ <div class="col-sm-4">
+ <div class="photo col-sm-5">
+ <img
src="https://avatars.githubusercontent.com/u/14115193?v=4" style="width:140px">
+ </div>
+ <div class="col-sm-7">
+ <h5 class="contributor-name"
style="font-size:1.0em;"><a
href="https://github.com/weverthon-medeiros">weverthon-medeiros</a></h5>
+ <p></p>
+ </div>
+ </div>
+
<div class="col-sm-4">
<div class="photo col-sm-5">
<img
src="https://avatars.githubusercontent.com/u/98899?v=4" style="width:140px">
@@ -893,16 +903,6 @@
</div>
</div>
- <div class="col-sm-4">
- <div class="photo col-sm-5">
- <img
src="https://avatars.githubusercontent.com/u/49699333?v=4" style="width:140px">
- </div>
- <div class="col-sm-7">
- <h5 class="contributor-name"
style="font-size:1.0em;"><a
href="https://github.com/dependabot[bot]">dependabot[bot]</a></h5>
- <p></p>
- </div>
- </div>
-
<div class="col-sm-4">
<div class="photo col-sm-5">
<img
src="https://avatars.githubusercontent.com/u/7410390?v=4" style="width:140px">
@@ -1083,6 +1083,16 @@
</div>
</div>
+ <div class="col-sm-4">
+ <div class="photo col-sm-5">
+ <img
src="https://avatars.githubusercontent.com/u/8715996?v=4" style="width:140px">
+ </div>
+ <div class="col-sm-7">
+ <h5 class="contributor-name"
style="font-size:1.0em;"><a
href="https://github.com/t-gergely">t-gergely</a></h5>
+ <p></p>
+ </div>
+ </div>
+
<div class="col-sm-4">
<div class="photo col-sm-5">
<img
src="https://avatars.githubusercontent.com/u/6233921?v=4" style="width:140px">
diff --git a/javax-to-jakarta.html b/javax-to-jakarta.html
new file mode 100644
index 0000000000..fc7868e7e4
--- /dev/null
+++ b/javax-to-jakarta.html
@@ -0,0 +1,390 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+ <meta charset="UTF-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <title>Apache TomEE</title>
+ <meta name="description"
+ content="Apache TomEE is a lightweight, yet powerful, JavaEE
Application server with feature rich tooling." />
+ <meta name="keywords"
content="tomee,asf,apache,javaee,jee,shade,embedded,test,junit,applicationcomposer,maven,arquillian"
/>
+ <meta name="author" content="Luka Cvetinovic for Codrops" />
+ <link rel="icon" href="favicon.ico">
+ <link rel="icon" type="image/png" href="favicon.png">
+ <meta name="msapplication-TileColor" content="#80287a">
+ <meta name="theme-color" content="#80287a">
+ <link rel="stylesheet" type="text/css" href="css/normalize.css">
+ <link rel="stylesheet" type="text/css" href="css/bootstrap.css">
+ <link rel="stylesheet" type="text/css" href="css/owl.css">
+ <link rel="stylesheet" type="text/css" href="css/animate.css">
+ <link rel="stylesheet" type="text/css"
href="fonts/font-awesome-4.1.0/css/font-awesome.min.css">
+ <link rel="stylesheet" type="text/css"
href="fonts/eleganticons/et-icons.css">
+ <link rel="stylesheet" type="text/css" href="css/jqtree.css">
+ <link rel="stylesheet" type="text/css" href="css/idea.css">
+ <link rel="stylesheet" type="text/css" href="css/cardio.css">
+
+ <script type="text/javascript">
+ <!-- Matomo -->
+ var _paq = window._paq = window._paq || [];
+ /* tracker methods like "setCustomDimension" should be called
before "trackPageView" */
+ /* We explicitly disable cookie tracking to avoid privacy
issues */
+ _paq.push(['disableCookies']);
+ _paq.push(['trackPageView']);
+ _paq.push(['enableLinkTracking']);
+ (function () {
+ var u = "//matomo.privacy.apache.org/";
+ _paq.push(['setTrackerUrl', u + 'matomo.php']);
+ _paq.push(['setSiteId', '5']);
+ var d = document, g = d.createElement('script'), s =
d.getElementsByTagName('script')[0];
+ g.async = true;
+ g.src = u + 'matomo.js';
+ s.parentNode.insertBefore(g, s);
+ })();
+ <!-- End Matomo Code -->
+ </script>
+</head>
+
+<body>
+ <div class="preloader">
+ <img src="img/loader.gif" alt="Preloader image">
+ </div>
+ <nav class="navbar">
+ <div class="container">
+ <div class="row"> <div class="col-md-12">
+
+ <!-- Brand and toggle get grouped for better mobile
display -->
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle
collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
+ <span class="sr-only">Toggle
navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <a class="navbar-brand" href="/" title="Apache
TomEE">
+ <span>
+
+
+ <img
+
src="img/apache_tomee-logo.svg"
+
onerror="this.src='img/apache_tomee-logo.jpg'"
+ height="50"
+ >
+
+
+ </span>
+ </a>
+ </div>
+ <!-- Collect the nav links, forms, and other content
for toggling -->
+ <div class="collapse navbar-collapse"
id="bs-example-navbar-collapse-1">
+ <ul class="nav navbar-nav navbar-right
main-nav">
+ <li><a
href="docs.html">Documentation</a></li>
+ <li><a
href="community/index.html">Community</a></li>
+ <li><a
href="security/security.html">Security</a></li>
+ <li><a class="btn btn-accent
accent-orange no-shadow" href="download.html">Downloads</a></li>
+ </ul>
+ </div>
+ <!-- /.navbar-collapse -->
+ </div></div>
+ </div>
+ <!-- /.container-fluid -->
+ </nav>
+
+
+ <div id="main-block" class="container main-block">
+ <div class="row title">
+ <div class="col-md-12">
+ <div class='page-header'>
+
+ <h1>From <code>javax</code> to <code>jakarta</code>
namespace</h1>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+
+ <div class="col-md-12">
+ <div id="preamble">
+<div class="sectionbody">
+<div class="paragraph">
+<p>The <code>javax</code> to <code>jakarta</code> namespace switch is one of
the biggest change in Java of the latest 20 years. No doubt. The entire
ecosystem is impacted.
+Not only Java EE or Jakarta EE Application servers, but also libraries of any
kind (Jackson, CXF, Hibernate, Spring to name a few).</p>
+</div>
+<div class="paragraph">
+<p>Apache TomEE has been required to switch to <code>jakarta</code> namespace
and we of course tried different options.
+This page aims at sharing some of our findings from the user perspective,
because the shift from <code>javax</code> to <code>jakarta</code> is as
impacting for application
+providers than it is for libraries or application servers.</p>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_byte_code_enhancement_approach">Byte code enhancement approach</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>The first legitimate approach that comes to our mind is the byte code
approach. The goal is to keep the <code>javax</code> namespace
+as much as possible in the sources and use byte code enhancement to convert
binaries.</p>
+</div>
+<div class="sect2">
+<h3 id="_compile_time">Compile time</h3>
+<div class="paragraph">
+<p>It is possible to do a post treatment on the libraries and packages to
transform archives such as then are converted to
+<code>jakarta</code> namespace.</p>
+</div>
+<div class="sect3">
+<h4 id="_maven_shade_plugin"><a
href="https://maven.apache.org/plugins/maven-shade-plugin/">Maven Shade
plugin</a></h4>
+<div class="paragraph">
+<p>The Maven shade plugin has the ability to relocate package. While the
primary purpose isn’t to move from <code>javax</code> to
+<code>jakarta</code> package, it is possible to use it to relocate small
libraries when they aren’t ready yet. We used this approach
+in TomEE itself or in third party libraries such as Apache Johnzon (JSONB/P
implementation).</p>
+</div>
+<div class="paragraph">
+<p>This approach is not perfect, especially when you have a multimodule
library. For example if you have a project with 2
+modules. A depends on B. You can use the shade plugin to convert the 2 modules
and publish them using a classifier.
+The issue then is when you need A, you have to exclude B so that you can
include it manually with the right classifier.</p>
+</div>
+<div class="paragraph">
+<p>We’d say it works fine but for simple cases because it breaks the
dependency management in Maven, especially with
+transitive dependencies.</p>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_eclipse_transformer"><a
href="https://projects.eclipse.org/projects/technology.transformer">Eclipse
Transformer</a></h4>
+<div class="paragraph">
+<p>The Eclipse Transformer is also a generic tool, but it’s been heavily
developed for the <code>javax</code> to <code>jakarta</code> namespace
+change. It operates on resources such as</p>
+</div>
+<div class="paragraph">
+<p>Simple resources:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Java class files</p>
+</li>
+<li>
+<p>OSGi feature manifest files</p>
+</li>
+<li>
+<p>Properties files</p>
+</li>
+<li>
+<p>Service loader configuration files</p>
+</li>
+<li>
+<p>Text files (of several types: java source, XML, TLD, HTML, and JSP)</p>
+</li>
+</ul>
+</div>
+<div class="paragraph">
+<p>Container resources:</p>
+</div>
+<div class="ulist">
+<ul>
+<li>
+<p>Directories</p>
+</li>
+<li>
+<p>Java archives (JAR, WAR, RAR, and EAR files)</p>
+</li>
+<li>
+<p>ZIP archives</p>
+</li>
+</ul>
+</div>
+</div>
+<div class="sect3">
+<h4 id="_apache_tomcat_migration_tool"><a
href="https://github.com/apache/tomcat-jakartaee-migration">Apache Tomcat
Migration tool</a></h4>
+<div class="paragraph">
+<p>This tool can operate on a directory or an archive (zip, ear, jar, war),
very similar to Eclipse Transformer.
+It can migrate quite easily the set of specifications supported in Tomcat and
a few more.
+It has the notion of profile so that you can ask it to convert more, but the
configuration is very limited compared to
+the Eclipse Transformer. It is probably easier from the user perspective
though.</p>
+</div>
+<div class="paragraph">
+<p>You can run it using the ANT task (with in Maven or not), and there is also
a command line interface to run it easily.</p>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_deploy_time">Deploy time</h3>
+<div class="paragraph">
+<p>When using application server, it is sometimes possible to step in the
deployment process and do the conversion of the
+binaries prior to their deployment.</p>
+</div>
+<div class="sect3">
+<h4 id="_apache_tomcattomee_migration_tool"><a
href="https://github.com/apache/tomcat-jakartaee-migration">Apache Tomcat/TomEE
migration tool</a></h4>
+<div class="paragraph">
+<p>Mind that by default, the tool converts only what’s being supported
by Apache Tomcat and a couple of other APIs. It
+does not convert all specifications supported in TomEE, like JAX RS for
example. And Tomcat does not provide yet any
+way to configure it.</p>
+</div>
+<div class="paragraph">
+<p>One benefit compared to other approaches is that Tomcat does keep the
converted archive in the <code>webapps/</code> directory
+so it survives after a restart.</p>
+</div>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_runtime">Runtime</h3>
+<div class="paragraph">
+<p>We haven’t seen any working solution in this area. Of course, we
could imagine a JavaAgent approach that converts the
+bytecode right when it gets loaded by the JVM. The startup time is seriously
impacted, and it has to be done everytime
+the JVM restart or loads a class in a classloader. Remember that a class can
be loaded multiple times in different classloaders.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_source_code_enhancement_approach">Source code enhancement
approach</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>This may sound like the most impacting but this is probably also the most
secured one.
+We also strongly believe that embracing the change sooner is preferable rather
than later.
+As mentioned, this is one of the biggest breaking change in Java of the last
20 years.
+Since Java EE moved to Eclipse to become Jakarta, we have noticed a change in
the release cadence.
+Releases are not more frequent and more changes are going to happen. Killing
the technical depth as soon as possible is
+probably the best way to go.</p>
+</div>
+<div class="paragraph">
+<p>There are a couple of tools we tried. There are probably more in the
ecosystem, and also some in-house developments.</p>
+</div>
+<div class="admonitionblock important">
+<table>
+<tr>
+<td class="icon">
+<i class="fa icon-important" title="Important"></i>
+</td>
+<td class="content">
+This is usually a one shoot operation. It won’t be perfect and no doubt
it will require adjustment for edge cases.
+</td>
+</tr>
+</table>
+</div>
+<div class="sect2">
+<h3 id="_intellij_idea">IntelliJ IDEA</h3>
+<div class="paragraph">
+<p>IntelliJ IDEA added a refactoring capability to its IDE in order to convert
sources to the new <code>jakarta</code> namespace.
+I haven’t tested it myself, but it may help to do the first big step when you
don’t really master the scripting approach bellow.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_scripting_approach">Scripting approach</h3>
+<div class="paragraph">
+<p>For simple case, and we used that approach to do most of the conversion in
TomEE, you can create your own simple tool to
+convert sources. For instance, SmallRye does that with their MicroProfile
implementations. Here is an example
+<a href="https://github.com/smallrye/smallrye-config/blob/main/to-jakarta.sh"
class="bare">https://github.com/smallrye/smallrye-config/blob/main/to-jakarta.sh</a></p>
+</div>
+<div class="paragraph">
+<p>Using basic Linux commands, it converts from <code>javax</code> to
<code>jakarta</code> namespace and then the result is pushed to a dedicated
+branch. The benefit is that they have 2 sources trees with different
artifacts, the dependency management isn’t broken.</p>
+</div>
+</div>
+<div class="sect2">
+<h3 id="_eclipse_transformer_2"><a
href="https://projects.eclipse.org/projects/technology.transformer">Eclipse
Transformer</a></h3>
+<div class="paragraph">
+<p>Because the Eclipse Transformer can operate on text files, it can be easily
used to migrate the sources from <code>javax</code> to
+<code>jakarta</code> namespace.</p>
+</div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_conclusion">Conclusion</h2>
+<div class="sectionbody">
+<div class="paragraph">
+<p>We tried the bytecode approach ourselves in TomEE with the hope we could
avoid maintaining 2 source trees, one for <code>javax</code>
+and the other one for <code>jakarta</code> namespace. Unfortunately, as we
have seen before the risk is too important and there are
+too many edge cases not covered.
+One very important thing is the testing. No approach is gold and you need a
very good test coverage and testing to make sure
+the application works within the new <code>jakarta</code> namespace.</p>
+</div>
+</div>
+</div>
+ </div>
+
+ </div>
+ </div>
+<div style="margin-bottom: 30px;"></div>
+<footer>
+ <div class="container">
+ <div class="row">
+ <div class="col-sm-6 text-center-mobile">
+ <h3 class="white">Be simple. Be
certified. Be Tomcat.</h3>
+ <h5 class="light regular
light-white">"A good application in a good server"</h5>
+ <ul class="social-footer">
+ <li><a
href="https://www.facebook.com/ApacheTomEE/"><i class="fa
fa-facebook"></i></a></li>
+ <li><a
href="https://twitter.com/apachetomee"><i class="fa fa-twitter"></i></a></li>
+ </ul>
+ <h5 class="light regular light-white">
+ <a href="privacy-policy.html"
class="white">Privacy Policy</a>
+ </h5>
+ </div>
+ <div class="col-sm-6 text-center-mobile">
+ <div class="row opening-hours">
+ <div class="col-sm-3
text-center-mobile">
+ <h5><a
href="latest/docs/" class="white">Documentation</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="latest/docs/admin/configuration/index.html" class="regular
light-white">How to configure</a></li>
+ <li><a
href="latest/docs/admin/file-layout.html" class="regular light-white">Dir.
Structure</a></li>
+ <li><a
href="latest/docs/developer/testing/index.html" class="regular
light-white">Testing</a></li>
+ <li><a
href="latest/docs/admin/cluster/index.html" class="regular
light-white">Clustering</a></li>
+ </ul>
+ </div>
+ <div class="col-sm-3
text-center-mobile">
+ <h5><a
href="latest/examples/" class="white">Examples</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="latest/examples/simple-cdi-interceptor.html" class="regular
light-white">CDI Interceptor</a></li>
+ <li><a
href="latest/examples/rest-cdi.html" class="regular light-white">REST with
CDI</a></li>
+ <li><a
href="latest/examples/ejb-examples.html" class="regular
light-white">EJB</a></li>
+ <li><a
href="latest/examples/jsf-managedBean-and-ejb.html" class="regular
light-white">JSF</a></li>
+ </ul>
+ </div>
+ <div class="col-sm-3
text-center-mobile">
+ <h5><a
href="community/index.html" class="white">Community</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="community/contributors.html" class="regular
light-white">Contributors</a></li>
+ <li><a
href="community/social.html" class="regular light-white">Social</a></li>
+ <li><a
href="community/sources.html" class="regular light-white">Sources</a></li>
+ </ul>
+ </div>
+ <div class="col-sm-3
text-center-mobile">
+ <h5><a
href="security/index.html" class="white">Security</a></h5>
+ <ul
class="list-unstyled">
+ <li><a
href="https://apache.org/security" target="_blank" class="regular
light-white">Apache Security</a></li>
+ <li><a
href="https://apache.org/security/projects.html" target="_blank" class="regular
light-white">Security Projects</a></li>
+ <li><a
href="https://cve.mitre.org" target="_blank" class="regular
light-white">CVE</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="row bottom-footer text-center-mobile">
+ <div class="col-sm-12 light-white">
+ <p>Copyright © 1999-2022 The
Apache Software Foundation, Licensed under the Apache License, Version 2.0.
Apache TomEE, TomEE, Apache, the Apache feather logo, and the Apache TomEE
project logo are trademarks of The Apache Software Foundation. All other marks
mentioned may be trademarks or registered trademarks of their respective
owners.</p>
+ </div>
+ </div>
+ </div>
+ </footer>
+ <!-- Holder for mobile navigation -->
+ <div class="mobile-nav">
+ <ul>
+ <li><a hef="latest/docs/admin/index.html">Administrators</a>
+ <li><a hef="latest/docs/developer/index.html">Developers</a>
+ <li><a hef="latest/docs/advanced/index.html">Advanced</a>
+ <li><a hef="community/index.html">Community</a>
+ </ul>
+ <a href="#" class="close-link"><i class="arrow_up"></i></a>
+ </div>
+ <!-- Scripts -->
+ <script src="js/jquery-1.11.1.min.js"></script>
+ <script src="js/owl.carousel.min.js"></script>
+ <script src="js/bootstrap.min.js"></script>
+ <script src="js/wow.min.js"></script>
+ <script src="js/typewriter.js"></script>
+ <script src="js/jquery.onepagenav.js"></script>
+ <script src="js/tree.jquery.js"></script>
+ <script src="js/highlight.pack.js"></script>
+ <script src="js/main.js"></script>
+ </body>
+
+</html>
+
diff --git a/sitemap.xml b/sitemap.xml
index a5c96f7ab0..944b5cdb3a 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -5821,6 +5821,11 @@
</url>
+ <url>
+ <loc>http://tomee.apache.org/javax-to-jakarta.html</loc>
+
+ </url>
+
<url>
<loc>http://tomee.apache.org/latest/docs/application-composer/advanced.html</loc>