-
Notifications
You must be signed in to change notification settings - Fork 119
Expand file tree
/
Copy pathjava-version-11.yml
More file actions
251 lines (250 loc) · 10.5 KB
/
java-version-11.yml
File metadata and controls
251 lines (250 loc) · 10.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
#
# Copyright 2024 the original author or authors.
# <p>
# Licensed under the Moderne Source Available License (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# <p>
# https://docs.moderne.io/licensing/moderne-source-available-license
# <p>
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.java.migrate.Java8toJava11
displayName: Migrate to Java 11
description: >-
This 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.
tags:
- java11
- jaxb
- jaxws
- deprecated
- jakarta
preconditions:
- org.openrewrite.Singleton
recipeList:
- org.openrewrite.java.migrate.UpgradeToJava8
- org.openrewrite.java.migrate.lang.RenameUnderscoreIdentifier
- org.openrewrite.java.migrate.UseJavaUtilBase64
- org.openrewrite.java.migrate.CastArraysAsListToList
# Add an explicit JAXB/JAX-WS runtime and upgrade the dependencies to Jakarta EE 8
- org.openrewrite.java.migrate.javax.AddJaxbDependenciesWithRuntime
- org.openrewrite.java.migrate.javax.AddJaxwsDependencies
- org.openrewrite.java.migrate.javax.MigrateJaxBWSPlugin
- org.openrewrite.java.migrate.javax.AddInjectDependencies
- org.openrewrite.java.migrate.javax.AddCommonAnnotationsDependencies
# Remediate deprecations
- org.openrewrite.staticanalysis.BigDecimalRoundingConstantsToEnums
- org.openrewrite.staticanalysis.PrimitiveWrapperClassConstructorToValueOf
- org.openrewrite.staticanalysis.UseTryWithResources
- org.openrewrite.java.migrate.concurrent.JavaConcurrentAPIs
- org.openrewrite.java.migrate.lang.JavaLangAPIs
- org.openrewrite.java.RemoveMethodInvocations:
methodPattern: java.lang.Runtime runFinalizersOnExit(boolean)
- org.openrewrite.java.RemoveMethodInvocations:
methodPattern: java.lang.System runFinalizersOnExit(boolean)
- org.openrewrite.java.migrate.logging.JavaLoggingAPIs
- org.openrewrite.java.migrate.lombok.UpdateLombokToJava11
- org.openrewrite.java.migrate.net.JavaNetAPIs
- org.openrewrite.java.migrate.nio.file.PathsGetToPathOf
- org.openrewrite.java.migrate.sql.JavaSqlAPIs
- org.openrewrite.java.migrate.javax.JavaxLangModelUtil
- org.openrewrite.java.migrate.javax.JavaxManagementMonitorAPIs
- org.openrewrite.java.migrate.javax.JavaxXmlStreamAPIs
- org.openrewrite.java.migrate.cobertura.RemoveCoberturaMavenPlugin
- org.openrewrite.java.migrate.UpgradeBuildToJava11
# Disabled due to null safety issues in the current implementation
# https://github.com/openrewrite/rewrite-migrate-java/issues/250
# - org.openrewrite.java.migrate.util.JavaUtilAPIs
- org.openrewrite.java.migrate.util.OptionalNotPresentToIsEmpty
- org.openrewrite.java.migrate.util.OptionalNotEmptyToIsPresent
- org.openrewrite.java.migrate.util.OptionalStreamRecipe
# Disabled as too opinionated for general use
# https://github.com/openrewrite/rewrite-migrate-java/issues/958
# - org.openrewrite.java.migrate.util.UseEnumSetOf:
# convertEmptySet: false
- org.openrewrite.java.migrate.InternalBindPackages
- org.openrewrite.java.migrate.RemovedSecurityManagerMethods
- org.openrewrite.java.migrate.UpgradePluginsForJava11
- org.openrewrite.java.migrate.RemovedPolicy
- org.openrewrite.java.migrate.ReferenceCloneMethod
- org.openrewrite.java.migrate.ThreadStopDestroy
- org.openrewrite.java.migrate.ReplaceAWTGetPeerMethod
- org.openrewrite.scala.migrate.UpgradeScala_2_12
- org.openrewrite.java.migrate.ReplaceComSunAWTUtilitiesMethods
- org.openrewrite.java.migrate.ReplaceLocalizedStreamMethods
- org.openrewrite.java.migrate.ArrayStoreExceptionToTypeNotPresentException
- org.openrewrite.java.migrate.IllegalArgumentExceptionToAlreadyConnectedException
- org.openrewrite.java.migrate.ChangeDefaultKeyStore
---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.java.migrate.UpgradeBuildToJava11
displayName: Upgrade build to Java 11
description: Updates build files to use Java 11 as the target/source.
tags:
- java11
preconditions:
- org.openrewrite.Singleton
recipeList:
- org.openrewrite.java.migrate.UpgradeJavaVersion:
version: 11
---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.java.migrate.UpgradePluginsForJava11
displayName: Upgrade plugins to Java 11 compatible versions
description: Updates plugins to version compatible with Java 11.
tags:
- java11
preconditions:
- org.openrewrite.Singleton
recipeList:
- org.openrewrite.maven.UpgradePluginVersion:
groupId: org.apache.maven.plugins
artifactId: maven-compiler-plugin
newVersion: 3.6.2
addVersionIfMissing: true
- org.openrewrite.github.SetupJavaUpgradeJavaVersion:
minimumJavaMajorVersion: 11
- org.openrewrite.maven.UpgradePluginVersion:
groupId: ro.isdc.wro4j
artifactId: wro4j-maven-plugin
newVersion: 1.10.1
- org.openrewrite.maven.UpgradePluginVersion:
groupId: org.codehaus.mojo
artifactId: jaxb2-maven-plugin
newVersion: 2.5.x
- org.openrewrite.maven.UpgradePluginVersion:
groupId: org.jvnet.jaxb
artifactId: jaxb-maven-plugin
newVersion: 2.0.X
---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.java.migrate.javax.AddJaxwsDependencies
displayName: Add explicit JAX-WS dependencies
description: >-
This recipe will add explicit dependencies for Jakarta EE 8 when a Java 8 application is using JAX-WS. Any existing
dependencies will be upgraded to the latest version of Jakarta EE 8. The artifacts are moved to Jakarta EE 8 but the
application can continue to use the `javax.xml.bind` namespace.
tags:
- javax
- java11
- jaxb
- jakarta
- glassfish
preconditions:
- org.openrewrite.Singleton
recipeList:
# Remove the legacy jaxws-ri artifact
- org.openrewrite.java.dependencies.RemoveDependency:
groupId: com.sun.xml.ws
artifactId: jaxws-ri
- org.openrewrite.maven.RemoveManagedDependency:
groupId: com.sun.xml.ws
artifactId: jaxws-ri
# Change any existing places in the project poms that use the jaxb-api.
- org.openrewrite.java.dependencies.ChangeDependency:
oldGroupId: javax.xml.ws
oldArtifactId: jaxws-api
newGroupId: jakarta.xml.ws
newArtifactId: jakarta.xml.ws-api
newVersion: 2.3.x
# Add the jakarta JAXB artifact if it is missing but a project uses types in either javax.jws or javax.xml.ws
- org.openrewrite.java.dependencies.AddDependency:
groupId: jakarta.jws
artifactId: jakarta.jws-api
version: 2.1.x
onlyIfUsing: javax.jws..*
acceptTransitive: true
- org.openrewrite.java.dependencies.AddDependency:
groupId: jakarta.xml.ws
artifactId: jakarta.xml.ws-api
version: 2.3.x
onlyIfUsing: javax.xml.ws..*
acceptTransitive: true
# If a project already had the jakarta api, make sure it is at the latest version.
- org.openrewrite.java.dependencies.UpgradeDependencyVersion:
groupId: jakarta.xml.ws
artifactId: jakarta.xml.ws-api
newVersion: 2.3.x
# Add the jax-ws runtime to any projects that have a transitive dependency on the api
- org.openrewrite.java.migrate.javax.AddJaxwsRuntime
# Remove the version from added dependencies when a managed version exists.
- org.openrewrite.maven.RemoveRedundantDependencyVersions:
groupPattern: jakarta.xml.ws
artifactPattern: "*"
onlyIfManagedVersionIs: EQ
- org.openrewrite.maven.RemoveRedundantDependencyVersions:
groupPattern: com.sun.xml.ws
artifactPattern: "*"
onlyIfManagedVersionIs: EQ
---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.java.migrate.InternalBindPackages
displayName: Use `com.sun.xml.bind.*` instead of `com.sun.xml.internal.bind.*`
description: Do not use APIs from `com.sun.xml.internal.bind.*` packages.
tags:
- java11
preconditions:
- org.openrewrite.Singleton
recipeList:
- org.openrewrite.java.ChangePackage:
oldPackageName: com.sun.xml.internal.bind
newPackageName: com.sun.xml.bind
recursive: true
---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.java.migrate.RemovedPolicy
displayName: Replace `javax.security.auth.Policy` with `java.security.Policy`
description: The `javax.security.auth.Policy` class is not available from Java SE 11 onwards.
tags:
- java11
preconditions:
- org.openrewrite.Singleton
recipeList:
- org.openrewrite.java.ChangeType:
oldFullyQualifiedTypeName: javax.security.auth.Policy
newFullyQualifiedTypeName: java.security.Policy
ignoreDefinition: true
---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.java.migrate.ThreadStopDestroy
displayName: Remove `Thread.destroy()` and `Thread.stop(Throwable)`
description: >-
The `java.lang.Thread.destroy()` method was never implemented, and the `java.lang.Thread.stop(java.lang.Throwable)`
method has been unusable since Java SE 8. This recipe removes any usage of these methods from your application.
tags:
- java11
preconditions:
- org.openrewrite.Singleton
recipeList:
- org.openrewrite.java.RemoveMethodInvocations:
methodPattern: java.lang.Thread destroy()
- org.openrewrite.java.RemoveMethodInvocations:
methodPattern: java.lang.Thread stop(java.lang.Throwable)
---
type: specs.openrewrite.org/v1beta/recipe
name: org.openrewrite.java.migrate.nio.file.PathsGetToPathOf
displayName: Replace `Paths.get` with `Path.of`
description: >-
The `java.nio.file.Paths.get` method was introduced in Java SE 7. The `java.nio.file.Path.of` method was introduced in
Java SE 11. This recipe replaces all usages of `Paths.get` with `Path.of` for consistency.
tags:
- java11
preconditions:
- org.openrewrite.Singleton
recipeList:
- org.openrewrite.java.ChangeMethodTargetToStatic:
methodPattern: java.nio.file.Paths get(..)
fullyQualifiedTargetTypeName: java.nio.file.Path
- org.openrewrite.java.ChangeMethodName:
methodPattern: java.nio.file.Path get(..)
newMethodName: of