Migrate to Java 11
org.openrewrite.java.migrate.Java8toJava11org.openrewrite.recipe:rewrite-migrate-javaThis recipe will apply changes commonly needed when upgrading to Java 11. Specifically, for those applications that are built on Java 8, this recipe will update and add dependencies on J2EE libraries that are no longer directly bundled with the JDK. This recipe will also replace deprecated API with equivalents when there is a clear migration strategy. Build files will also be updated to use Java 11 as the target/source and plugins will be also be upgraded to versions that are compatible with Java 11.
Usage
This recipe has no required configuration options. You’ll need the Moderne CLI configured before running the command below.
mod run . --recipe org.openrewrite.java.migrate.Java8toJava11If the recipe isn’t available locally, install it with:
mod config recipes jar install org.openrewrite.recipe:rewrite-migrate-java:3.41.0Definition
This recipe runs the following recipes in order.
- Migrate to Java 8
org.openrewrite.java.migrate.UpgradeToJava8 - Rename
_identifier to__org.openrewrite.java.migrate.lang.RenameUnderscoreIdentifier - Prefer
java.util.Base64instead ofsun.miscorg.openrewrite.java.migrate.UseJavaUtilBase64 - Remove explicit casts on
Arrays.asList(..).toArray()org.openrewrite.java.migrate.CastArraysAsListToList - Add explicit JAXB API dependencies and runtime
org.openrewrite.java.migrate.javax.AddJaxbDependenciesWithRuntime - Add explicit JAX-WS dependencies
org.openrewrite.java.migrate.javax.AddJaxwsDependencies - Migrate JAXB-WS Plugin
org.openrewrite.java.migrate.javax.MigrateJaxBWSPlugin - Add explicit Inject dependencies
org.openrewrite.java.migrate.javax.AddInjectDependencies - Add explicit Common Annotations dependencies
org.openrewrite.java.migrate.javax.AddCommonAnnotationsDependencies BigDecimalrounding constants toRoundingModeenumsorg.openrewrite.staticanalysis.BigDecimalRoundingConstantsToEnums- Use primitive wrapper
valueOfmethodorg.openrewrite.staticanalysis.PrimitiveWrapperClassConstructorToValueOf - Use try-with-resources
org.openrewrite.staticanalysis.UseTryWithResources - Use modernized
java.util.concurrentAPIsorg.openrewrite.java.migrate.concurrent.JavaConcurrentAPIs - Use modernized
java.langAPIsorg.openrewrite.java.migrate.lang.JavaLangAPIs - Remove method invocations
org.openrewrite.java.RemoveMethodInvocations - Remove method invocations
org.openrewrite.java.RemoveMethodInvocations - Use modernized
java.util.loggingAPIsorg.openrewrite.java.migrate.logging.JavaLoggingAPIs - Migrate Lombok to a Java 11 compatible version
org.openrewrite.java.migrate.lombok.UpdateLombokToJava11 - Use modernized
java.netAPIsorg.openrewrite.java.migrate.net.JavaNetAPIs - Replace
Paths.getwithPath.oforg.openrewrite.java.migrate.nio.file.PathsGetToPathOf - Remove redundant
StandardCharsets.UTF_8fromjava.nio.file.Filesmethod callsorg.openrewrite.java.migrate.nio.file.RedundantUtf8Charset - Use modernized
java.sqlAPIsorg.openrewrite.java.migrate.sql.JavaSqlAPIs - Use modernized
javax.lang.model.utilAPIsorg.openrewrite.java.migrate.javax.JavaxLangModelUtil - Use modernized
javax.management.monitorAPIsorg.openrewrite.java.migrate.javax.JavaxManagementMonitorAPIs - Use modernized
javax.xml.streamAPIsorg.openrewrite.java.migrate.javax.JavaxXmlStreamAPIs - Remove Cobertura Maven plugin
org.openrewrite.java.migrate.cobertura.RemoveCoberturaMavenPlugin - Upgrade build to Java 11
org.openrewrite.java.migrate.UpgradeBuildToJava11 - Prefer
Optional.isEmpty()org.openrewrite.java.migrate.util.OptionalNotPresentToIsEmpty - Prefer
Optional.isPresent()org.openrewrite.java.migrate.util.OptionalNotEmptyToIsPresent Stream<Optional>idiom recipeorg.openrewrite.java.migrate.util.OptionalStreamRecipe- Prefer
Predicate.not(..)over casting toPredicateand callingnegate()org.openrewrite.java.migrate.util.UsePredicateNot - Use
com.sun.xml.bind.*instead ofcom.sun.xml.internal.bind.*org.openrewrite.java.migrate.InternalBindPackages - Replace deprecated methods in
SecurityManagerorg.openrewrite.java.migrate.RemovedSecurityManagerMethods - Upgrade plugins to Java 11 compatible versions
org.openrewrite.java.migrate.UpgradePluginsForJava11 - Replace
javax.security.auth.Policywithjava.security.Policyorg.openrewrite.java.migrate.RemovedPolicy - Replace
java.lang.ref.Reference.clone()with constructor callorg.openrewrite.java.migrate.ReferenceCloneMethod - Remove
Thread.destroy()andThread.stop(Throwable)org.openrewrite.java.migrate.ThreadStopDestroy - Replace AWT
getPeer()methodorg.openrewrite.java.migrate.ReplaceAWTGetPeerMethod - Migrate to Scala 2.12.+
org.openrewrite.scala.migrate.UpgradeScala_2_12 - Replace
com.sun.awt.AWTUtilitiesstatic method invocationsorg.openrewrite.java.migrate.ReplaceComSunAWTUtilitiesMethods - Replace
getLocalizedInputStreamandgetLocalizedOutputStreamwith direct assignmentorg.openrewrite.java.migrate.ReplaceLocalizedStreamMethods - Catch
TypeNotPresentExceptionthrown byClass.getAnnotation()org.openrewrite.java.migrate.ArrayStoreExceptionToTypeNotPresentException - Replace
IllegalArgumentExceptionwithAlreadyConnectedExceptioninDatagramChannel.send()methodorg.openrewrite.java.migrate.IllegalArgumentExceptionToAlreadyConnectedException - Return String
jkswhenKeyStore.getDefaultType()is calledorg.openrewrite.java.migrate.ChangeDefaultKeyStore
Data tables
Structured output this recipe can produce.
- Maven metadata failuresAttempts to resolve maven metadata that failed.
org.openrewrite.maven.table.MavenMetadataFailures - Source files that had resultsSource files that were modified by the recipe run.
org.openrewrite.table.SourcesFileResults - Source files that had search resultsSearch results that were found during the recipe run.
org.openrewrite.table.SearchResults - Source files that errored on a recipeThe details of all errors produced by a recipe run.
org.openrewrite.table.SourcesFileErrors - Recipe performanceStatistics used in analyzing the performance of recipes.
org.openrewrite.table.RecipeRunStats