Eclipse Transformer とは
javax → jakarta へのネームスペース変更を行うツールで、以下のファイルの変換を行うことができる。
- Java class files
- OSGi feature manifest files
- Properties files
- Service loader configuration files
- Text files (of several types: java source, XML, TLD, HTML, and JSP)
jar や war や ear などのアーカイブを変換したり、プロジェクトディレクトリを指定してソースを変換することができる。
https://github.com/eclipse/transformer
Eclipse Transformer の準備
org.eclipse.transformer.cli-1.0.0-distribution.jar をダウンロードして アーカイブをExtract
jar -xf ./org.eclipse.transformer.cli-1.0.0-distribution.jar
以下の構成として抽出される
├ libs │ ├ biz.aQute.bnd.transform-7.0.0.jar │ ├ commons-cli-1.9.0.jar │ ├ org.eclipse.transformer.jakarta-1.0.0.jar │ ├ org.eclipse.transformer-1.0.0.jar │ ├ slf4j-api-1.7.36.jar │ └ slf4j-simple-1.7.36.jar ├ META-INF │ └ MANIFEST.MF └ org.eclipse.transformer.cli-1.0.0.jar
org.eclipse.transformer.cli-1.0.0.jar を実行すれば良い。
ヘルプは以下の通り。
$ java -jar .\org.eclipse.transformer.cli-1.0.0.jar --help
Copyright (c) Contributors to the Eclipse Foundation
org.eclipse.transformer.cli.JakartaTransformerCLI Version [ 1.0.0 ]
usage: org.eclipse.transformer.cli.JakartaTransformerCLI input [ output ] [ options ]
Options:
-d,--dryrun Dry run
-h,--help Display help
-i,--invert Invert transformation rules
-ldt,--logShowDateTime Show date and time in log statements.
Shortcut for -lp bellow with showDateTime and
dateTimeFormat.
-lf,--logFile <arg> Logging file
-ll,--logLevel <arg> Logging level
-ln,--logName <arg> Logger name
-lp,--logProperty <arg> Logging property
-lpf,--logPropertyFile <arg> Logging properties file
-o,--overwrite Overwrite
-q,--quiet Display quiet output: error level logging
-s,--stripSignatures Strips signatures from signed jar files
-t,--type <arg> Input file type
-tb,--bundles <arg> Transformation bundle updates URL
-td,--direct <arg> Transformation direct string replacements
-tf,--text <arg> Map of filenames to property files
-ti,--immediate <arg> Immediate rule data
-tp,--per-class-constant <arg> Transformation per class constant string
replacements
-tr,--renames <arg> Transformation package renames URL
-ts,--selection <arg> Transformation selections URL
-tv,--versions <arg> Transformation package versions URL
-u,--usage Display usage
-v,--verbose Display verbose output: debug level logging
-w,--widen Widen archive nesting
-x,--trace Display trace output: trace level logging
Actions:
[ RENAME ]
[ CLASS ]
[ MANIFEST ]
[ FEATURE ]
[ SERVICE_LOADER_CONFIG ]
[ PROPERTIES ]
[ TEXT ]
[ JAVA ]
[ JSP ]
[ XML ]
[ ZIP ]
[ JAR ]
[ WAR ]
[ RAR ]
[ EAR ]
[ DIRECTORY ]
Logging Properties:
[ org.slf4j.simpleLogger.logFile ]
[ org.slf4j.simpleLogger.cacheOutputStream ]
[ org.slf4j.simpleLogger.defaultLogLevel ]
[ org.slf4j.simpleLogger.log. ]
[ org.slf4j.simpleLogger.levelInBrackets ]
[ org.slf4j.simpleLogger.showDateTime ]
[ org.slf4j.simpleLogger.dateTimeFormat ]
[ org.slf4j.simpleLogger.showThreadName ]
[ org.slf4j.simpleLogger.showLogName ]
[ org.slf4j.simpleLogger.showShortLogName ]
[ org.slf4j.simpleLogger.warnLevelString ]
[main] INFO Transformer - TransformerCLI Return Code [ 0 ] [ Success ]
Eclipse Transformer による変換
example.war を変換
java -jar .\org.eclipse.transformer.cli-1.0.0.jar example.war [main] INFO Transformer - ... [main] INFO Transformer - Stop processing [ ./example.war ] using [ WAR Action ] took [ 23146ms ]: Name and content changes [main] INFO Transformer - Input [ ./example.war ] as [ ...\example.war ] [main] INFO Transformer - Output [ .../output_example.war ] as [ ...\output_example.war ] took [ 00:00:23 ] [main] INFO Transformer - [ All Resources ] [ 28907 ] Unaccepted [ 0 ] Accepted [ 28907 ] [main] INFO Transformer - [ All Unchanged ] [ 28139 ] Failed [ 0 ] Duplicated [ 8 ] [main] INFO Transformer - [ All Changed ] [ 768 ] Renamed [ 1 ] Content [ 768 ] [main] WARN Transformer - Duplicates were processed [ 8 ] [main] INFO Transformer - Transformer Return Code [ 0 ] [ Success ]
変換後のファイルとして output_example.war が生成される。
プロジェクトのディレクトリも同様に変換可能。
java -jar .\org.eclipse.transformer.cli-1.0.0.jar example
この場合はビルドの成果物など全てが変換対象になってしまうため、./gradlew clean や mvnw clean などを行ってから変換すると良い。