EfwフレーワークのTomcat10対応のメモ

## 背景
Efwがいままではtomcat7・8・9対応ですが、最近tomcat10も対応するようにしました。

Githubには、従来とjakarta対応２つフォルダに分けてソースを格納するようにしました。
https://github.com/efwGrp/efw4.X/tree/master/src
https://github.com/efwGrp/efw4.X/tree/master/src4jakarta

リリースのjarファイルも従来とjakarta対応を２つjarにしました。
```xml
<dependency><groupId>io.github.efwgrp</groupId><artifactId>efw</artifactId><version>4.07.019</version></dependency>
<dependency><groupId>io.github.efwgrp</groupId><artifactId>efw</artifactId><version>4.07.019jakarta</version></dependency>
```
修正箇所と考え方をメモします。

## jakartaに変更するjavaxクラス

基本的にjavaxのクラスをjakartaのものに変更することで対応しています。以下のように変更対象のクラスをリストします。
```java
//Servlet関連
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//Filter関連
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.annotation.WebFilter;
//jspカスタマイズタグ関連
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.TagSupport;
//メール送信関連
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
//Cookie関連
import javax.servlet.http.Cookie;
//セッション関連
import javax.servlet.http.HttpSession;
```

## 変更対象外のjavaxクラス
すべてのjavaxがjakarta対応していることではありません。一括置換はだめです。以下のjavaxクラスはjakartaなしとわかりました。
```java
//スクリプトエンジン関連
import javax.script.Invocable;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import javax.script.SimpleScriptContext;
import javax.script.ScriptContext;
//XML関連
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
//ネーミング関連
import javax.naming.InitialContext;
import javax.naming.NamingException;
//Dataリソース関連
import javax.sql.DataSource;
```
## コンテキストの変更
context.xmlファイルにもjavaxの記載があるので、このファイルの修正も必要です。注意点ですが、javax.sql.DataSourceはjakarta変更対象外で、javax.mail.Sessionはjakarta変更対象です。
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Context>
<Context>
	<Resource
		name			=	"jdbc/efw"
		auth			=	"Container"
		type			=	"javax.sql.DataSource"
		driverClassName	=	"org.postgresql.Driver"
		url				=	"jdbc:postgresql://localhost:5432/skeletonSample"
		username		=	"postgres"
		password		=	"postgres"
		maxTotal		=	"10"
		maxIdle			=	"10"
		maxWaitMillis	=	"10"
	/>
	<Resource
		name			=	"mail/efw"
		auth			=	"Container"
		type			=	"javax.mail.Session"
		username		=	"username"
		password		=	"password"
		mail.debug		=	"false"
		mail.user		=	"user"
		mail.from		=	"from@host"
		mail.transport.protocol="smtp"
		mail.smtp.host	=	"mailhost"
		mail.smtp.auth	=	"true"
		mail.smtp.port	=	"25"
		mail.smtp.starttls.enable="true"
		description		=	"E-Mail Resource"
	/>
</Context>
```
メール送信用のjarも更新します。
```xml
<!-- javaxの場合 -->
<dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.6.2</version>
</dependency>

<!-- jakartaの場合 -->
<dependency>
    <groupId>org.eclipse.angus</groupId>
    <artifactId>jakarta.mail</artifactId>
    <version>2.0.3</version>
</dependency>
```