Recipe index
8,209 recipes across 94 artifactsEvery recipe in the newest release of each package, by package.
mod config recipes csv sync https:// artifacts.codegenomeproject.org/ recipes.csv@openrewrite/recipes-angular1.17.0 · Proprietary
- Migrate @angular/http to @angular/common/http
- Add defaultConfiguration to build targets
- Add ChangeDetectionStrategy.Eager to components
- Add istanbul-lib-instrument for Karma code coverage
- Add @angular/localize/init polyfill import
- Add generic type to ModuleWithProviders
- Add withNoIncrementalHydration() to provideClientHydration()
- Add static: false to view queries
- Add strictTemplates: false to tsconfig.json
- Add TestBed module teardown
- Add trustProxyHeaders to the Angular app engine
- Add withXhr() to provideHttpClient()
- Enable AOT compilation in angular.json
- Make standalone flag explicit
- Migrate constructor injection to inject()
- Migrate @Input() to signal-based input()
- Split a model() that has a matching explicit output
- Migrate @Output() to signal-based output()
- Migrate query decorators to signal-based functions
- Migrate to solution-style tsconfig
- Move DOCUMENT import to @angular/core
- Remove aotSummaries from TestBed
- Remove BrowserModule.withServerTransition
- Remove ComponentFactoryResolver
- Remove defaultProject from angular.json
- Remove empty ngOnInit lifecycle hooks
- Remove enableIvy compiler option
- Remove entryComponents
- Remove es5BrowserSupport from angular.json
- Remove extractCss from angular.json
- Remove IE11 polyfills
- Remove moduleId
- Remove relativeLinkResolution
- Remove redundant standalone: true
- Remove static: false from view queries
- Remove withFetch() from provideHttpClient()
- Remove zone.js polyfill from angular.json
- Rename afterRender to afterEveryRender
- Rename getAngularLib/setAngularLib to getAngularJSGlobal/setAngularJSGlobal
- Rename provideExperimentalCheckNoChangesForDebug to provideCheckNoChangesConfig
- Rename ChangeDetectionStrategy.Default to ChangeDetectionStrategy.Eager
- Rename file
- Rename ExperimentalPendingTasks to PendingTasks
- Rename ssr.experimentalPlatform to ssr.platform in angular.json
- Rename provideExperimentalZonelessChangeDetection to provideZonelessChangeDetection
- Replace async with waitForAsync
- Replace createNgModuleRef with createNgModule
- Replace deep zone.js imports
- Replace HttpClientModule with provideHttpClient()
- Replace initialNavigation option values
- Replace InjectFlags with options object
- Replace string-based loadChildren with dynamic import()
- Replace node-sass with sass
- Replace RouterLinkWithHref with RouterLink
- Replace TestBed.get() with TestBed.inject()
- Replace form classes with untyped variants
- Replace validator/asyncValidator with plural forms
- Replace ViewEncapsulation.Native with ViewEncapsulation.ShadowDom
- Suppress the safe navigation extended diagnostics
- Update component templateUrl
- Update tsconfig.json module settings for Ivy
- Update tsconfig.json target to es2017
- Find deprecated ANALYZE_FOR_ENTRY_COMPONENTS usage
- Find Angular decorators
- Find removed @angular/http usage
- Find AnimationDriver.matchesElement usage
- Find deprecated async test helper usage
- Find ModuleWithProviders without generic type
- Find BrowserTransferStateModule usage
- Find two argument canMatch guard calls
- Find ChangeDetectorRef.checkNoChanges usage
- Find CommonModule usage
- Find View Engine API usage
- Find DATE_PIPE_DEFAULT_TIMEZONE usage
- Find effect() usage affected by Angular 19 timing changes
- Find createComponent calls with empty projectableNodes
- Find zone.js-dependent test helper usage
- Find HammerJS usage
- Find HttpXhrBackend usage
- Find i18n usage
- Find router configuration relying on the default paramsInheritanceStrategy
- Find Karma test runner usage
- Find deprecated string-based loadChildren usage
- Find classes with DI dependencies but missing @Injectable()
- Find NgClass usage
- Find NgStyle usage
- Find pathMatch route properties that may need type narrowing
- Find platformDynamicServer usage
- Find removed @angular/platform-webworker usage
- Find isPlatformWorkerUi and isPlatformWorkerApp usage
- Find deprecated preserveFragment usage
- Find deprecated preserveQueryParams usage
- Find provideRoutes usage
- Find deprecated providedIn values
- Find ReflectiveInjector usage
- Find renderApplication usage
- Find deprecated RenderComponentType usage
- Find renderModuleFactory usage
- Find deprecated Renderer usage
- Find RESOURCE_CACHE_PROVIDER usage
- Find deprecated RootRenderer usage
- Find RxJS 5-style imports requiring rxjs-compat
- Find ServerTransferStateModule usage
- Find setupTestingRouter usage
- Find safe navigation in Angular templates
- Find removed Testability pending request methods
- Find undecorated classes with Angular features
- Find withNoDomReuse usage
- Find deprecated WrappedValue usage
- Find zone.js usage
- Upgrade to Angular 10
- Upgrade to Angular 11
- Upgrade to Angular 12
- Upgrade to Angular 13
- Upgrade to Angular 14
- Upgrade to Angular 15
- Upgrade to Angular 16
- Upgrade to Angular 17
- Upgrade to Angular 18
- Upgrade to Angular 19
- Upgrade to Angular 20
- Upgrade to Angular 21
- Upgrade to Angular 22
- Upgrade to Angular 8
- Upgrade to Angular 9
- Add providePrimeNG with a detected theme preset to the root NgModule
- Mark deprecated PrimeNG components with TODO comments
- Mark deprecated PrimeNG CSS classes with TODO comments
- Mark <p-drawer> / <p-sidebar> size usages with TODO comments
- Mark imports of removed PrimeNG modules with TODO stubs
- Migrate <p-messages> to <p-message> with @for loop
- Migrate .p-fluid to <p-fluid> wrapper
- Migrate PrimeNGConfig to PrimeNG
- Migrate PrimeNG config field assignments to .set()
- Rename Calendar to DatePicker
- Rename Dropdown to Select
- Rename InputSwitch to ToggleSwitch
- Rename Message interface to ToastMessageOptions
- Rename OverlayPanel to Popover
- Rename Sidebar to Drawer
- Rename PrimeNG selectors in HTML templates to their v18 equivalents
- Upgrade PrimeNG components to 18
- Upgrade to PrimeNG 18
@openrewrite/recipes-date-libraries0.6.0 · Proprietary
@openrewrite/recipes-nodejs0.55.0 · Proprietary
- Find legacy @angular/animations usage
- Migrate off the deprecated @angular/animations package
- Remove unneeded @angular/animations providers
- Replace deprecated Buffer() constructor with Buffer.alloc() and Buffer.from()
- Replace deprecated Buffer.slice() with Buffer.subarray()
- Replace deprecated SlowBuffer with Buffer.allocUnsafeSlow()
- Find crypto.createDecipheriv() for AEAD ciphers without authTagLength
- Find deprecated crypto.createCipher() and crypto.createDecipher() usage
- Replace deprecated crypto.fips with crypto.getFips() and crypto.setFips()
- Replace deprecated new crypto.Hash() and new crypto.Hmac() with factory methods
- Replace removed RSA-PSS hash and mgf1Hash key pair options
- Migrate express-request-id to an inline middleware
- Remove the express-request-id dependency
- Replace express-request-id with an inline middleware
- Find deprecated crypto.DEFAULT_ENCODING usage
- Find module.register() usage
- Find deprecated process.assert() usage
- Find deprecated punycode module usage
- Find fs-extra usages that need manual migration
- Migrate fs-extra to Node.js fs
- Remove the fs-extra dependency
- Replace fs-extra copy with fs.cp
- Replace fs-extra emptyDir with mkdir and rm of each entry
- Replace fs-extra ensureFile with fs.mkdir and fs.writeFile
- Replace fs-extra ensureDir/mkdirp/mkdirs with fs.mkdir
- Replace fs-extra move with a generated helper
- Replace fs-extra's re-exported fs methods with node:fs
- Replace fs-extra outputFile and outputJson with mkdir + writeFile
- Replace fs-extra pathExists with fs.access/fs.existsSync
- Replace fs-extra readJson with JSON.parse of readFile
- Replace fs-extra remove with fs.rm
- Replace fs-extra writeJson with fs.writeFile
- Find fs.rmdir() calls with the removed recursive option
- Replace dirent.path with dirent.parentPath
- Replace deprecated fs.F_OK, fs.R_OK, fs.W_OK, fs.X_OK with fs.constants.*
- Replace fs.truncate() with file descriptor to fs.ftruncate()
- Replace deprecated fs.Stats constructor with object literal
- Find hpagent usages that need manual migration
- Migrate hpagent to https-proxy-agent
- Replace hpagent with https-proxy-agent
- Swap the hpagent dependency for https-proxy-agent
- Replace OutgoingMessage._headers and ._headerNames with public methods
- Replace ServerResponse.writeHeader() with writeHead()
- Increase Node.js engine version
- Increase Node.js version in GitHub Actions
- Remove deprecated net._setSimultaneousAccepts()
- Remove the redundant path npm package
- Coerce process.exit() and process.exitCode to integer
- Remove usage of deprecated process.features.tls_* properties
- Remove propTypes that no longer check anything
- Enable native source maps at launch and drop source-map-support
- Find source-map-support usages that need manual migration
- Migrate source-map-support to Node.js native source maps
- Remove the source-map-support dependency
- Replace source-map-support's API with functions written into the file
- Replace source-map-support with process.setSourceMapsEnabled()
- Replace source-map-support/register with enable-source-maps in mocha config
- Replace source-map-support/register with --enable-source-maps in package.json
- Find Duplex.toWeb() calls passing options.type
- Replace deprecated node:_stream_* with node:stream
- Find deprecated timers.active() and timers._unrefActive() usage
- Find deprecated tls.SecurePair and tls.createSecurePair() usage
- Replace deprecated node:_tls_common and node:_tls_wrap with node:tls
- Upgrade to Node.js 20
- Upgrade to Node.js 22
- Upgrade to Node.js 24
- Upgrade to Node.js 26
- Remove unnecessary util.promisify() on Promise-returning functions
- Replace deprecated util.types.isWebAssemblyCompiledModule()
- Replace deprecated util._extend() with Object.assign()
- Replace deprecated util.log() with console.log()
- Replace deprecated util.isX() methods with native JavaScript
- Replace deprecated zlib.bytesRead with zlib.bytesWritten
@openrewrite/recipes-react0.11.0 · Proprietary
- Simplify object pattern properties
- Rename unstable_handleError to componentDidCatch
- Replace getDOMNode() with React.findDOMNode()
- Replace React.DOM factories with createElement
- Move React.PropTypes to prop-types package
- Split React DOM methods to ReactDOM
- Replace React.createFactory with React.createElement
- Remove event.persist() calls
- Add UNSAFE_ prefix to deprecated lifecycle methods
- Remove unnecessary React imports
- Remove unstable_batchedUpdates
- Replace ReactDOM.render with createRoot
- Remove ReactDOM.render callback argument
- Replace unmountComponentAtNode with createRoot().unmount()
- Replace deprecated React types
- Find Context.Consumer usage
- Find deprecated ReactDOM APIs
- Find element.ref access
- Find legacy Context API usage
- Remove implicit ref callback returns
- Remove Context.Provider wrapper
- Remove React.forwardRef wrapper
- Remove propTypes assignments
- Remove React.FC type annotation
- Replace act import from react-dom/test-utils
- Replace defaultProps with default parameter values
- Replace react-test-renderer/shallow import
- Replace ReactDOM.hydrate with hydrateRoot
- Replace string refs with callback refs
- Replace useFormState with useActionState
- Import the scoped React JSX namespace
- Replace useContext with use
- Add initial value to useRef() calls
- Upgrade to React 16
- Upgrade to React 17
- Upgrade to React 18
- Upgrade to React 19
- Change React component prop value
- Replace View.propTypes with ViewPropTypes
- Convert class components to functional components
- Convert createClass to ES6 class
- Convert createElement to JSX
- Convert manual .bind(this) to arrow functions
- Remove PureRenderMixin
- Sort React component methods
- Find React hook usage
- Find React prop usage
- Find React component
- Find server-side rendering API usage
- Simplify React.xxx to direct imports
@openrewrite/rewrite8.96.2 · MSAL
- Change import
- Add radix to parseInt
- Detect async callbacks in synchronous array methods
- Order imports
- Prefer optional chaining
- Use object property shorthand
- Find Node.js dependency
- Auto-format JavaScript/TypeScript code
- Modernize octal escape sequences
- Modernize octal literals
- Remove duplicate object keys
- Convert export = to export default
github.com/moderneinc/recipes-gov0.15.0 · Proprietary
- Add import
- Change method name
- Change type
- Add exported func comment
- Remove if/else with identical branches
- Allocate map outside loop
- Allocate outside loop
- Audit binding to all interfaces
- Audit channel close
- Audit context.Background
- Audit error string format
- Audit exec.Command calls
- Audit goroutine closure
- Audit HTTP redirect
- Audit json.Number
- Audit json.RawMessage
- Replace extra %w verbs with %v in fmt.Errorf
- Audit Must* function calls
- Audit recover() calls
- Audit test fatal
- Audit TestMain
- Audit yaml.Unmarshal
- Avoid channel length check
- Avoid context.WithValue
- Avoid defer in loop
- Avoid dot imports
- Avoid empty interface parameters
- Avoid fallthrough
- Avoid fmt in loop
- Avoid format string variable
- Avoid global variables
- Avoid goto
- Avoid hardcoded credentials
- Avoid init functions
- Avoid label
- Avoid lock in loop
- Avoid log.Fatal
- Avoid nested goroutine
- Avoid os.Exit
- Avoid panic
- Avoid ReadAll in loop
- Avoid reflection
- Avoid SQL string concatenation
- Avoid time.Sleep
- Avoid unsafe package
- Batch HTTP calls
- Check Close() error
- Check context error
- Check template execute error
- Compile regex outside loop
- Create channel outside loop
- Enforce TLS verification
- Ensure file closed
- Ensure HTTP body closed
- Ensure prepared statement closed
- Ensure SQL connection closed
- Ensure SQL rows closed
- Ensure temp cleaned up
- Ensure ticker stopped
- Ensure timer stopped
- Ensure transaction finalized
- Find deprecated sync/atomic functions
- Remove empty fmt.Sprintf
- Replace map range-delete with clear()
- Fix error string format
- Handle checked error
- Handle deferred Close() error
- Handle error return value
- Handle swallowed error
- Keep functions short
- Keep interfaces small
- Limit function parameters
- Limit goroutines in loop
- Limit return values
- Merge collapsible if statements
- Merge identical branches
- Open file outside loop
- Optimize copy in loop
- Preallocate slice
- Prefer buf.String() over string(buf.Bytes())
- Prefer bytes.Contains over bytes.Index comparison
- Prefer bytes.ContainsAny
- Prefer bytes.ContainsRune
- Prefer bytes.Equal
- Prefer bytes.HasPrefix
- Prefer copy from string
- Prefer empty string check
- Prefer %w over %s in fmt.Errorf for error wrapping
- Prefer errors.Is for context error comparison
- Prefer errors.Is for io.EOF comparison
- Prefer errors.Is for package-qualified sentinel comparison
- Prefer errors.Is for os existence checks
- Prefer errors.Is for os permission checks
- Prefer errors.Is for http.ErrServerClosed comparison
- Prefer errors.Is for net.ErrClosed comparison
- Prefer errors.Is for os.ErrInvalid comparison
- Prefer errors.Is over == for error comparison
- Prefer errors.Is for sql.ErrNoRows comparison
- Prefer filepath.Clean over redundant filepath.Join
- Prefer hex.EncodeToString over fmt.Sprintf
- Prefer io.Discard
- Prefer io.NopCloser
- Prefer io.ReadAll
- Prefer io.WriteString
- Prefer canonical len check
- Prefer make() for empty maps
- Prefer min/max builtins
- Prefer os.CreateTemp
- Prefer errors.Is for os timeout checks
- Prefer os.MkdirTemp
- Prefer os.ReadDir
- Prefer os.ReadFile
- Prefer os.WriteFile
- Prefer raw string literals for regex patterns
- Prefer regexp.MustCompile for unchecked patterns
- Prefer slices.Sort over sort type helpers
- Prefer sort.Ints over sort.Sort(sort.IntSlice)
- Prefer strconv.Atoi
- Prefer strconv.FormatBool over fmt.Sprintf
- Prefer strconv.Itoa over fmt.Sprintf
- Prefer strconv.Quote over fmt.Sprintf
- Prefer string comparison operators
- Prefer strings.Builder WriteString
- Prefer strings.Contains over strings.Index comparison
- Prefer strings.ContainsAny
- Prefer strings.Contains over strings.Count
- Prefer strings.ContainsRune
- Prefer strings.EqualFold
- Prefer strings.EqualFold (single-sided)
- Prefer strings.HasPrefix
- Prefer strings.NewReader
- Prefer strings.ToLower over strings.Map
- Prefer strings.ToUpper over strings.Map
- Reduce error check nesting
- Reduce nesting depth
- Remove constant if condition
- Remove debug print statements
- Remove deprecated rand.Seed
- Remove redundant *& (deref of address-of)
- Remove duplicate conditions
- Remove empty default case
- Remove empty functions
- Remove empty goroutine
- Remove empty for loop
- Remove empty switch
- Remove getter prefix
- Remove package prefix from name
- Remove redundant break
- Remove redundant break in select
- Remove redundant else after return
- Remove redundant type assertion to empty interface
- Remove redundant range blank
- Remove redundant return
- Remove redundant fmt.Sprintf
- Remove redundant type conversion
- Remove self-assignment
- Remove switch true tag
- Remove unconditional value overwrite
- Remove unreachable code
- Replace time.Now().Sub(t) with time.Since(t)
- Replace t.Sub(time.Now()) with time.Until(t)
- Resolve context.TODO
- Reuse JSON codec in loop
- Simplify boolean expression
- Simplify bytes.NewBuffer roundtrip
- Simplify bytes.Equal nil check
- Simplify bytes.SplitN with -1
- Simplify complex switch
- Simplify double negation
- Simplify errors.Is nil check
- Simplify fmt.Sprintf with %%v
- Simplify goroutine closure
- Simplify if-return-bool
- Simplify nil check before Close
- Simplify redundant bytes.TrimSpace
- Simplify redundant error wrap
- Simplify redundant len check before range
- Simplify redundant logical expression
- Simplify redundant nil check
- Simplify redundant TrimSpace
- Simplify select default only
- Simplify single-case select
- Simplify slice range
- Simplify strings.SplitN with -1
- Simplify fmt.Sprintf %c to string conversion
- Simplify fmt.Sprintf string concat
- Simplify no-op TrimLeft/TrimRight
- Use buffered channel
- Use bytes.ReplaceAll
- Use comma-ok type assertion
- Use crypto/rand
- Use ctx for context.Context parameter
- Use custom HTTP client
- Use descriptive package name
- Use descriptive variable names
- Use documented blank imports
- Use .Error() method
- Use errors.As
- Use errors.Is over string comparison
- Use errors.New for simple errors
- Use Err prefix for errors
- Use http.NewRequestWithContext
- Use http.Server with timeouts
- Use meaningful return values
- Use MixedCaps
- Use MixedCaps for constants
- Use named constants
- Use package-level error sentinel
- Use parameterized SQL queries
- Use restrictive file permissions
- Use short receiver name
- Use skip with reason
- Use strings.Builder in loop
- Use strings.ReplaceAll
- Use strong hash functions
- Use structured logging
- Use TLS for HTTP
- Wrap error before return
- Wrap error with context
- Add a missing go directive
- Add missing go.mod requirements
- Add v1-preserving format tags to time.Duration and [N]byte fields
- Change the go directive version
- Find aws-sdk-go v1 usage
- Find encoding/json usage for the v2 migration
- Find github.com/golang/mock usage
- Find mapstructure.Error usage
- Find missing go.mod requirements
- Find newrelic-telemetry-sdk-go usage
- Find go.mod files that could not be fully resolved offline
- Find unused go.mod requirements
- Find golang.org/x/exp usage the standard library covers
- Fix go.mod // indirect markers
- Format go.mod
- Tidy go.mod
- Migrate a module from aws-sdk-go to aws-sdk-go-v2
- Migrate aws-sdk-go to aws-sdk-go-v2
- Record New Relic metrics through OpenTelemetry
- Migrate newrelic-telemetry-sdk-go to the OpenTelemetry Go SDK
- Migrate from mitchellh/mapstructure to go-viper/mapstructure/v2
- Migrate encoding/json to encoding/json/v2 (all mechanical rewrites)
- Migrate encoding/json to encoding/json/v2, preserving v1 semantics
- Migrate from github.com/golang/mock to go.uber.org/mock
- Migrate golang.org/x/exp/constraints to cmp
- Migrate golang.org/x/exp/maps to maps
- Migrate golang.org/x/exp/slices to slices
- Migrate golang.org/x/exp/slog to log/slog
- Migrate golang.org/x/exp to the standard library
- Preserve v1 semantics on encoding/json/v2 calls
- Remove redundant defer ctrl.Finish()
- Remove unused go.mod requirements
- Remove the golang.org/x/exp requirement once unused
- Swap github.com/golang/mock imports to go.uber.org/mock
- Swap mitchellh/mapstructure imports to go-viper/mapstructure/v2
- Require aws-sdk-go-v2 instead of aws-sdk-go
- Require go.uber.org/mock instead of github.com/golang/mock
- Require go-viper/mapstructure/v2 instead of mitchellh/mapstructure
- Point //go:generate mockgen at go.uber.org/mock
- Require the OpenTelemetry Go SDK instead of newrelic-telemetry-sdk-go
- Upgrade Go to 1.18
- Upgrade Go to 1.19
- Upgrade Go to 1.20
- Upgrade Go to 1.21
- Upgrade Go to 1.22
- Upgrade Go to 1.23
- Upgrade Go to 1.24
- Upgrade Go to 1.25
- Upgrade Go to 1.26
- Order imports
- Remove import
- Remove unused imports
- Rename package
- Find methods
- Find types
- Rename x to flag (test)
- Wrap error with context (test)
- Add the testify dependency to go.mod
- Adopt stretchr/testify
- Adopt testify assert.Equal
- Adopt testify assert.Error
- Adopt testify assert.Len
- Adopt testify assert.Nil
- Adopt testify assert.NoError
- Adopt testify assert.True
- Adopt testify require.Equal
- Adopt testify require.Error
- Adopt testify require.Len
- Adopt testify require.Nil
- Adopt testify require.NoError
- Adopt testify require.True
io.moderne.recipe:recipes-kotlin0.9.0 · Proprietary
- Find Android smells
- Find AlertDialog.Builder(this) constructions
- Find Android lifecycle / LiveData smells
- Find Android logging smells
- Find android.util.Log.v/d/i/w/e(...) calls
- Find Android modernization candidates
- Find Android-specific performance smells
- Find Android permissions / security smells
- Find Android storage / data-layer smells
- Find ViewModelProvider(...) direct constructions
- Find Android WebView smells
- Find AsyncTask instantiations
- Find AsyncTask.execute / executeOnExecutor calls
- Find Handler() constructor calls without an explicit Looper
- Find BitmapFactory.decode* calls
- Find ContentResolver.query(...) calls
- Find Context.registerReceiver(...) calls
- Find deprecated Android APIs
- Find kotlinx.android.parcel imports
- Find deprecated Context.getColor/getDrawable/getColorStateList calls
- Find findViewById call sites
- Find findViewById inside onDraw / onMeasure / onLayout
- Find FragmentManager.executePendingTransactions() calls
- Find Fragment.onActivityCreated overrides
- Find Fragment.onAttach(Activity) overrides
- Find Fragment.setRetainInstance(true) calls
- Find Handler.postDelayed(...) calls
- Find legacy Intent.ACTION_PICK / ACTION_GET_CONTENT references
- Find kotlinx.android.synthetic.* imports
- Find LiveData.observe(this, observer) calls inside Fragment
- Find MutableLiveData.postValue(...) calls inside coroutine main-thread contexts
- Find LocalBroadcastManager.getInstance(...) usage
- Find Dagger*Component.builder().build() patterns
- Find Thread { }.start() calls inside Activity / Fragment
- Find MODE_WORLD_READABLE / MODE_WORLD_WRITEABLE references
- Find MutableLiveData allocations
- Find ObjectAnimator.ofInt/ofFloat(...) calls
- Find onActivityResult overrides
- Find onRequestPermissionsResult overrides
- Find Kotlin classes implementing Parcelable without @Parcelize
- Find PreferenceManager.getDefaultSharedPreferences(...) calls
- Find android.preference.PreferenceManager imports
- Find public MutableLiveData properties
- Find Realm.getDefaultInstance() calls
- Find direct requestPermissions(...) calls
- Find resources.getColor(...) (one-arg) calls
- Find resources.getDrawable(...) (one-arg) calls
- Find @Query DAO methods returning a synchronous result
- Find Activity.runOnUiThread { } / View.post { } calls
- Find Runtime.exec(...) / ProcessBuilder.start() calls
- Find io.reactivex.* imports
- Find Kotlin classes implementing java.io.Serializable
- Find SharedPreferences.Editor.commit() calls
- Find sharedPrefs.edit() calls
- Find startActivityForResult calls
- Find startService(...) calls
- Find System.out.println(...) calls
- Find Vibrator.vibrate(long) (one-arg) calls
- Find WebSettings.setJavaScriptEnabled(true) calls
- Find WebView.loadUrl(...) calls
- Apply Kotlin best-practice idioms
- Collapse redundant collection / string conversions
- Find abstract class declarations without abstract members
- Find .also { println(it) } debug patterns
- Find x.also { } calls with an empty body
- Find anonymous object : Interface { override fun … } with a single override
- Find throw Exception("…") calls
- Find throw RuntimeException("…") calls
- Find best-practice candidates
- Find Boolean-conditional smells
- Find fun f(): Boolean = true|false literal-returning functions
- Find try { … } catch (e: Exception) { null } patterns
- Find class Foo : Any() declarations
- Find class-declaration smells
- Find classes that could be data class
- Find x.compareTo(y) <op> 0 patterns
- Find data class declarations with var properties
- Find marker object declarations that could be data object
- Find chained !! assertions in a single expression
- Find if (x) { return … } else { … } patterns
- Find class Foo {} declarations with an empty body
- Find empty companion object declarations
- Find empty init { } blocks
- Find equality / comparison smells
- Find b == true / b == false comparisons
- Find exception-handling smells
- Find functions with explicit : Unit return type
- Find !! inside a ?.let { } body
- Find xs.forEach { ys.add(it) } patterns
- Find forEach { println(it) } patterns
- Find function-declaration smells
- Find functions returning Pair<A, B>
- Find functions returning Triple<A, B, C>
- Find if (x == null) null else x.foo() patterns
- Find if (x) false else true patterns
- Find if (x) true else false patterns
- Find x.isNotEmpty() on String where isNotBlank() might be wanted
- Find lambda / functional smells
- Find lazy { } calls without an explicit LazyThreadSafetyMode
- Find if (x != null) x.foo() patterns
- Find classes with manual toString/equals/hashCode overrides
- Find classes with multiple overloaded secondary constructors
- Find mutableListOf<T>().also { it.add(x) } patterns
- Find mutableMapOf<K,V>().also { it.put(...) } patterns
- Find mutableSetOf<T>().also { it.add(x) } patterns
- Find named companion object Constants patterns
- Find !x.isBlank() calls
- Find !x.isEmpty() calls
- Find !x.isNotBlank() calls
- Find !x.isNotEmpty() calls
- Find object declarations with var properties
- Find open class declarations without overridable members
- Find return Unit / return kotlin.Unit statements
- Find forEach { it.toString() } patterns
- Find map { it.toString() } / map { x -> x.toString() } patterns
- Find === / !== referential-equality comparisons
- Find functions declared with : Nothing return type
- Find run { } calls with an empty body
- Find scope-function smells
- Find sealed class declarations that could be sealed interface
- Find fun foo(): T { return x } block bodies
- Find top-level run { … } whose body never uses this
- Find "" + x patterns
- Find x + "" patterns
- Find string-construction smells
- Find trivial String.format("%s", x) calls
- Find suspend fun declarations returning Job / Deferred
- Find Throwable.printStackTrace() calls
- Find xs.toList().forEach { … } patterns
- Find when (x) { … } used as a statement
- Find when-statement smells
- Find when (b: Boolean) selectors
- Find when with two or more branches having identical bodies
- Find when (x) expressions without an else branch
- Find when (x) { A -> … } with a single branch
- Find wildcard import a.b.* statements
- Apply Kotlin best-practice rewrites
- Use first() instead of get(0)
- Use length instead of String.count()
- Use size instead of Collection.count()
- Use stdlib accessors for size / first
- Use toList() instead of toMutableList().toList()
- Use distinct() instead of toSet().toList()
- Use toSet() instead of distinct().toSet()
- Use toSet() instead of toList().toSet()
- Drop redundant String.toString()
- Use toTypedArray() instead of toList().toTypedArray()
- Use trim() instead of trimEnd().trimStart()
- Use trim() instead of trimStart().trimEnd()
- Find Compose stability and recomposition issues
- Find Array<T> parameters on @Composable functions
- Find Box { … } with a single child
- Find by remember { … } delegations whose body isn't a mutableStateOf
- Find Canvas { … } blocks inside a @Composable
- Find Card { OneChild() } patterns
- Find Column { … } with a single child
- Find @Composable calls inside non-@Composable lambda parameters
- Find Compose function-naming conventions
- Find @Composable functions with a content lambda parameter not defaulted to {}
- Find @Composable functions without a Modifier parameter
- Find @Composable fun … (): X functions returning a non-Unit value
- Find Compose API design issues
- Find Compose effect handler issues
- Find Compose layout hierarchy smells
- Find Compose Modifier smells
- Find Compose navigation / coroutine misuse
- Find Compose remember key issues
- Find Compose stability issues
- Find Compose state read/write issues
- Find Compose ViewModel wiring issues
- Find if (x) Modifier.foo() else Modifier patterns
- Find android.content.Context parameters on @Composable functions
- Find scope.launch { … } calls inside a @Composable body
- Find for (...) { LaunchedEffect(...) { … } } patterns
- Find data class declarations with List<T> properties
- Find remember { mutableStateOf(expensiveCall()) } patterns
- Find DisposableEffect { … } blocks missing an onDispose { }
- Find n.dp allocations inside a @Composable body
- Find Flow.collectAsState() calls — prefer collectAsStateWithLifecycle()
- Find Flow<T> / StateFlow<T> parameters on @Composable functions
- Find Color(0xFF…) / Color.X literals inside @Composable
- Find hardcoded color literals inside @Composable
- Find hiltViewModel<X>() calls inside @Composable
- Find @Immutable on classes with var properties
- Find Modifier.xxx() allocations inside a @Composable body
- Find lambda parameters on @Composable functions
- Find lazy-list items(...) { … } content lambdas that read a MutableState from the enclosing scope
- Find LaunchedEffect bodies with several distinct suspend calls
- Find LaunchedEffect { … } calls with no key argument
- Find LaunchedEffect(true) { … } blocks
- Find LaunchedEffect(Unit) { … } blocks
- Find LazyColumn { … } calls — verify items use stable keys
- Find LazyColumn/LazyRow items(...) calls missing a key = { … } argument
- Find LazyRow { … } calls — verify items use stable keys
- Find LazyVerticalGrid { … } calls — verify items use stable keys
- Find lifecycle-naive flow / LiveData collection in Composables
- Find @Composable functions with List/Map/Set parameters
- Find listOf(...) / mapOf(...) / setOf(...) calls inside a @Composable
- Find LiveData.observe(...) calls inside @Composable
- Find Modifier.xxx().yyy()... chains longer than five operations
- Find @Composable functions whose name starts with a lowercase letter
- Find Modifier.clickable { }.background(...) chains
- Find Modifier.fillMaxXxx().padding(...) chains
- Find Modifier.fillMaxSize().fillMaxWidth() chains
- Find Compose Modifier ordering smells
- Find Modifier.fillMaxWidth().padding(...) chains
- Find padding(start = x, end = x, top = x, bottom = x) shorthand opportunities
- Find padding(start = x, end = x, top = y, bottom = y) shorthand opportunities
- Find zero-valued Modifier.padding(...) calls
- Find Modifier.padding(...) shorthand opportunities
- Find Modifier.weight(...) calls outside a Row/Column scope
- Find @Composable functions with MutableList/MutableMap/MutableSet parameters
- Find mutableStateOf(...) stored in a class field
- Find bare mutableStateOf(...) inside @Composable without remember { }
- Find NavController.navigate(...) calls in a @Composable body
- Find non-@Composable functions calling @Composable-only APIs
- Find LiveData.observeAsState() calls — prefer collectAsStateWithLifecycle()
- Find non-private MutableStateFlow properties
- Find Compose recomposition smells
- Find rememberCoroutineScope() calls inside a lambda
- Find remember { mutableListOf<T>() } patterns
- Find remember { … } calls with no keys
- Find remember(mutableListOf(...), …) and similar unstable-key calls
- Find Row { … } with a single child
- Find java.io.File(...) allocations inside a @Composable body
- Find logging calls in @Composable bodies
- Find Compose effect-handler misuse
- Find SideEffect(key) { … } calls
- Find @Stable classes holding mutable-collection properties
- Find @Stable on classes with var properties
- Find Compose state + remember misuse
- Find viewModel.uiState.collectAsState() calls — confirm lifecycle-aware collection
- Find state.value reads inside a @Composable
- Find Surface { OneChild() } patterns
- Find single-child wrapper composables (Material 3)
- Find viewModel<X>() calls inside @Composable
- Apply Compose autofix rewrites
- Find remember { mutableStateOf(emptyList<T>()) } candidates for mutableStateListOf
- Find remember { mutableStateOf(emptyMap<K, V>()) } candidates for mutableStateMapOf
- Find remember { mutableStateOf(emptyList/Map()) } candidates for snapshot-aware containers
- Modernize Kotlin coroutines code
- Find async { ... }.await() patterns
- Find raw CoroutineScope(...) constructions
- Find blocking calls inside coroutine contexts
- Find callbackFlow { } blocks without an awaitClose { } terminator
- Find coroutineScope { launch { ... } } with a single child
- Find coroutine sequencing smells
- Find debounce(...).distinctUntilChanged() patterns
- Find Flow operator antipatterns
- Find Flow.collect calls inside a @Composable
- Find Flow.filter { } .filter { } chains
- Find Flow.map { } .map { } chains
- Find flowOf(...) calls — verify size
- Find Flow.flowOn placed after a terminal operator
- Find forEach { it.join() } over List<Job>
- Find GlobalScope.actor calls
- Find GlobalScope.async calls
- Find GlobalScope.launch calls
- Find GlobalScope.produce calls
- Find raw Job() allocations
- Find map { it.await() } over List<Deferred<T>>
- Find MutableStateFlow<T?>(null) declarations
- Find Object.notify / notifyAll calls inside suspend functions
- Find Object.wait calls inside suspend functions
- Find runBlocking calls inside a launch/async lambda
- Find runBlocking calls inside suspend functions
- Find shareIn calls without a timeout-parameterized start
- Find stateIn with SharingStarted.Eagerly or unparameterized start
- Find structured-concurrency leaks
- Find suspendCoroutine calls
- Find Thread.sleep calls inside suspend functions
- Find nested withContext calls
- Find broad catch (e: Exception) / catch (e: Throwable) clauses
- Find catch (e: Exception) { throw OtherException(...) } without e as cause
- Find catch (e: Exception) { throw e } patterns
- Find catch (e: Exception) clauses whose body never references e
- Find non-empty catch blocks that neither log nor rethrow
- Find try { } catch { } nested inside another try { } catch { }
- Find nullability idiom opportunities
- Find e.printStackTrace() calls inside a catch block
- Find Result<T> API ergonomics opportunities
- Find if (result.isSuccess) … else … patterns
- Find Result.getOrElse { } whose lambda ignores the failure parameter
- Find .getOrThrow() calls on a Result<T>
- Find Result.map { }.getOrThrow() chains
- Find runCatching { }.onFailure { log… } chains with no further handling
- Find runCatching { }.getOrNull() chains
- Find runCatching { }.onSuccess { … } chains with no failure handler
- Find runCatching { } smells
- Find runCatching { } blocks that may swallow CancellationException
- Find runCatching { } calls whose result is discarded
- Find throw/catch shape smells
- Find try { x } catch (e: Exception) { default } patterns
- Find try { x } catch (e: Exception) { null } patterns
- Find raw try/catch smells
- Find empty catch blocks
- Find if (x == null) throw IllegalStateException(...) patterns
- Find if (x != null) x else default patterns
- Find if (x != null) f(x) else null patterns
- Find if (x == null) throw IllegalArgumentException(...) patterns
- Find if (predicate(x)) x else null patterns
- Find throw RuntimeException(e) inside a catch block
- Modernize Kotlin functional / Result ergonomics
- Find also { } blocks that mutate the receiver
- Find ?.apply { } whose result is discarded
- Find redundant this. inside apply { } blocks
- Find apply { } blocks that perform no mutation
- Find cast and nullable-shape idioms
- Find checkNotNull(x) without an explanatory message
- Find collection null-safety idioms
- Find x ?: throw SomeException() without a message
- Find filter { it != null }.map { it!! } chains
- Find firstOrNull { } ?: error(...) patterns
- Find x?.firstOrNull() calls
- Find if (cond) value else null patterns
- Find if (x != null) y = x.foo() patterns
- Find if (x != null) x.foo() that could use ?.
- Find if (x == null) return ... early-exit patterns
- Find if (x == null) throw ... patterns
- Find ?.let { } calls at statement position
- Find x?.let { } ?: y patterns
- Find let { } ergonomics
- Find ?.let { it.foo() } that could use ?.foo()
- Find ?.let { it } no-ops
- Find obj.let { fn(it) } where obj is non-null
- Find listOf(a, b, c).filterNotNull() patterns
- Find map { ... }.filterNotNull() chains
- Find nested let { } chains
- Find !! non-null assertions
- Find !! passed as a function argument
- Find null-assertion polish opportunities
- Find manual null-check idioms
- Find x?.something.orEmpty() patterns
- Find requireNotNull(x) without an explanatory message
- Find return null in functions with nullable returns
- Find x.run { ... } that doesn't use the receiver
- Find long ?. safe-call chains
- Find scope-function correctness swaps
- Find setOf(a, b, c).filterNotNull() patterns
- Find x.takeIf { p }?.let { ... } patterns
- Find takeUnless { !p } (double-negative) patterns
- Find unsafe as casts
- Find with(x) { ... } used as an expression
- Apply Kotlin null-safety and scope-function idioms
- Find bufferedReader().lines() calls
- Find inner class Builder classes — default-args candidate
- Find non-injected clock / I/O calls (testability)
- Find functions returning CompletableFuture<T>
- Find CompletableFuture usage in Kotlin
- Find Java↔Kotlin interop friction points
- Find Java-style iterable.forEach(Consumer) calls
- Find Java-style getX() calls in Kotlin source
- Find Java-style call shapes inside Kotlin source
- Find Arrays.asList(...) calls
- Find Collections.emptyList/Set/Map() calls
- Find java.util.Collections / Arrays factory usage inside Kotlin
- Find Collections.singletonList/Set/Map(...) calls
- Find Collections.unmodifiableList/Set/Map(...) wrappers
- Find interface declarations with default-method bodies
- Find LocalDateTime.now() / Instant.now() calls
- Find classes with manual equals/hashCode overrides — data class candidate
- Find manual getX() / setX(v) pairs in Kotlin classes
- Find Kotlin declarations missing @Jvm* interop annotations
- Find const val / companion val declarations missing @JvmField
- Find top-level functions missing @JvmName
- Find val isX Boolean properties missing @get:JvmName
- Find functions with default parameters missing @JvmOverloads
- Find companion object functions missing @JvmStatic
- Find functions with throw of a checked exception missing @Throws
- Find java.util.Optional friction inside Kotlin
- Find Optional.get() / orElseThrow() calls
- Find Optional.isPresent / isEmpty checks
- Find Optional.ofNullable(...) calls
- Find Optional.orElse(...) calls
- Find function parameters typed Optional<T>
- Find functions returning Optional<T>
- Find java.util.Optional usage in Kotlin
- Find reactive-framework return types in Kotlin
- Find Reactor Mono/Flux returns in Kotlin
- Find requireNotNull(javaCall()) patterns
- Find @RequiresOptIn annotation declarations
- Find io.reactivex.Observable/Flowable/Single/Maybe usage in Kotlin
- Find object Constants { const val A = ... } static-constants holders
- Find object Utils { fun foo() = ... } static-utility holders
- Find stream.collect(Collectors.toList()) calls
- Find stream.filter(...).map(...) chains
- Find java.util.stream.Stream friction inside Kotlin
- Find Stream.of(...) calls
- Find functions returning java.util.stream.Stream<T>
- Find System.currentTimeMillis() calls
- Apply Java↔Kotlin interop rewrites
- Improve Java↔Kotlin interop ergonomics
- Use x instead of Optional.of(x).get()
- Find companion-object loggers missing private
- Find eager log-message construction
- Find eager string interpolation in log.debug(...)
- Find eager string interpolation in log.error(...)
- Find eager string interpolation in log.info(...)
- Find eager string interpolation in log.trace(...)
- Find eager string interpolation in log.warn(...)
- Find if (log.isDebugEnabled) ... guards
- Find if (log.isErrorEnabled) ... guards
- Find if (log.isInfoEnabled) ... guards
- Find if (log.isTraceEnabled) ... guards
- Find if (log.isWarnEnabled) ... guards
- Find java.util.logging.Logger.getLogger(...) calls
- Find julLogger.log(level, msg) and level-specific julLogger.fine/info/severe/... calls
- Find legacy logger-library usage
- Find org.apache.log4j.Logger references
- Find logger declaration smells
- Find LoggerFactory.getLogger(SomeClass::class.java) calls
- Find LoggerFactory.getLogger("some-name") calls
- Find LoggerFactory.getLogger(this::class.java) calls
- Find LoggerFactory.getLogger migration candidates
- Find top-level/companion logger fields named log
- Find redundant logger level-check guards
- Find loggers declared as instance fields (one per object)
- Find println / System.err.println / printStackTrace
- Find System.err.println(...) calls
- Find println(...) calls
- Find Throwable.printStackTrace() calls
- Find string concatenation in log.debug(...)
- Find string concatenation in log.error(...)
- Find string concatenation in log.info(...)
- Find string concatenation in log.trace(...)
- Find string concatenation in log.warn(...)
- Find e.printStackTrace(out) calls
- Find Kotlin logging smells
- Migrate to Kotlin 2.x
- Remove redundant @OptIn annotations
- Use appendLine() instead of appendln()
- Use appendLine(value) instead of appendln(value) (Any?)
- Use appendLine(char) instead of appendln(char)
- Use appendLine(cs) instead of appendln(cs) (CharSequence)
- Use appendLine(value) instead of appendln(value)
- Use Array.contentDeepEquals() instead of Arrays.deepEquals(a, b)
- Use Array.contentDeepHashCode() instead of Arrays.deepHashCode(arr)
- Use Array.contentDeepToString() instead of Arrays.deepToString(arr)
- Use Array.contentEquals() instead of Arrays.equals(a, b)
- Use Array.contentHashCode() instead of Arrays.hashCode(arr)
- Use Array.contentToString() instead of Arrays.toString(arr)
- Use BooleanArray.contentEquals() instead of Arrays.equals(a, b)
- Use BooleanArray.contentHashCode() instead of Arrays.hashCode(arr)
- Use BooleanArray.contentToString() instead of Arrays.toString(arr)
- Use BooleanArray.copyOf() instead of Arrays.copyOf(arr, newLength)
- Use BooleanArray.fill() instead of Arrays.fill(arr, value)
- Use ByteArray.binarySearch() instead of Arrays.binarySearch(arr, key)
- Use ByteArray.contentEquals() instead of Arrays.equals(a, b)
- Use ByteArray.contentHashCode() instead of Arrays.hashCode(arr)
- Use ByteArray.contentToString() instead of Arrays.toString(arr)
- Use ByteArray.copyOf() instead of Arrays.copyOf(arr, newLength)
- Use ByteArray.fill() instead of Arrays.fill(arr, value)
- Use ByteArray.sort() instead of Arrays.sort(arr)
- Use replaceFirstChar { … } instead of capitalize()
- Use CharArray.binarySearch() instead of Arrays.binarySearch(arr, key)
- Use CharArray.contentEquals() instead of Arrays.equals(a, b)
- Use CharArray.contentHashCode() instead of Arrays.hashCode(arr)
- Use CharArray.contentToString() instead of Arrays.toString(arr)
- Use CharArray.copyOf() instead of Arrays.copyOf(arr, newLength)
- Use CharArray.fill() instead of Arrays.fill(arr, value)
- Use CharArray.sort() instead of Arrays.sort(arr)
- Use Char.code instead of Char.toInt()
- Use Char.code.toByte() instead of Char.toByte()
- Use Char.code.toDouble() instead of Char.toDouble()
- Use Char.code.toFloat() instead of Char.toFloat()
- Use Char.code.toLong() instead of Char.toLong()
- Use Char.code.toShort() instead of Char.toShort()
- Use Char.compareTo instead of java.lang.Character.compare
- Use Char(int) instead of Int.toChar()
- Use Char.digitToInt(radix) instead of Character.digit(c, radix)
- Use Char.isDefined() instead of Character.isDefined(c)
- Use Char.isDigit() instead of Character.isDigit(c)
- Use Char.isHighSurrogate() instead of Character.isHighSurrogate(c)
- Use Char.isISOControl() instead of Character.isISOControl(c)
- Use Char.isLetter() instead of Character.isLetter(c)
- Use Char.isLetterOrDigit() instead of Character.isLetterOrDigit(c)
- Use Char.isLowerCase() instead of Character.isLowerCase(c)
- Use Char.isLowSurrogate() instead of Character.isLowSurrogate(c)
- Use Char.isTitleCase() instead of Character.isTitleCase(c)
- Use Char.isUpperCase() instead of Character.isUpperCase(c)
- Use Char.isWhitespace() instead of Character.isWhitespace(c)
- Use Char.lowercaseChar() instead of Character.toLowerCase(c)
- Use Char.toString() instead of Character.toString(c)
- Use Char.uppercaseChar() instead of Character.toUpperCase(c)
- Use Collection.max() instead of Collections.max(coll)
- Use Collection.min() instead of Collections.min(coll)
- Use CharArray.concatToString() instead of String(charArray)
- Use replaceFirstChar { it.lowercase() } instead of decapitalize()
- Use ByteArray.decodeToString() instead of String(byteArray)
- Use DoubleArray.binarySearch() instead of Arrays.binarySearch(arr, key)
- Use DoubleArray.contentEquals() instead of Arrays.equals(a, b)
- Use DoubleArray.contentHashCode() instead of Arrays.hashCode(arr)
- Use DoubleArray.contentToString() instead of Arrays.toString(arr)
- Use DoubleArray.copyOf() instead of Arrays.copyOf(arr, newLength)
- Use DoubleArray.fill() instead of Arrays.fill(arr, value)
- Use DoubleArray.sort() instead of Arrays.sort(arr)
- Use Double.IEEErem instead of java.lang.Math.IEEEremainder
- Use Double.nextDown() instead of java.lang.Math.nextDown
- Use Double.nextTowards() instead of java.lang.Math.nextAfter
- Use Double.nextUp() instead of java.lang.Math.nextUp
- Use Double.pow instead of java.lang.Math.pow
- Use Double.roundToLong() instead of java.lang.Math.round
- Use Double.withSign instead of java.lang.Math.copySign
- Use enumEntries<T>() instead of enumValues<T>()
- Use FloatArray.binarySearch() instead of Arrays.binarySearch(arr, key)
- Use FloatArray.contentEquals() instead of Arrays.equals(a, b)
- Use FloatArray.contentHashCode() instead of Arrays.hashCode(arr)
- Use FloatArray.contentToString() instead of Arrays.toString(arr)
- Use FloatArray.copyOf() instead of Arrays.copyOf(arr, newLength)
- Use FloatArray.fill() instead of Arrays.fill(arr, value)
- Use FloatArray.sort() instead of Arrays.sort(arr)
- Use Float.roundToInt() instead of java.lang.Math.round
- Use IntArray.binarySearch() instead of Arrays.binarySearch(arr, key)
- Use IntArray.contentEquals() instead of Arrays.equals(a, b)
- Use IntArray.contentHashCode() instead of Arrays.hashCode(arr)
- Use IntArray.contentToString() instead of Arrays.toString(arr)
- Use IntArray.copyOf() instead of Arrays.copyOf(arr, newLength)
- Use IntArray.fill() instead of Arrays.fill(arr, value)
- Use IntArray.sort() instead of Arrays.sort(arr)
- Use Int.compareTo instead of java.lang.Integer.compare
- Use Int.countLeadingZeroBits() instead of Integer.numberOfLeadingZeros
- Use Int.countOneBits() instead of java.lang.Integer.bitCount
- Use Int.countTrailingZeroBits() instead of Integer.numberOfTrailingZeros
- Use Int.digitToChar(radix) instead of Character.forDigit(digit, radix)
- Use Int.floorDiv instead of java.lang.Math.floorDiv
- Use Int.mod() instead of java.lang.Math.floorMod
- Use Int.rotateLeft(n) instead of Integer.rotateLeft(i, n)
- Use Int.rotateRight(n) instead of Integer.rotateRight(i, n)
- Use Int.toString() instead of Integer.toString(i)
- Use Int.toString(2) instead of Integer.toBinaryString
- Use Int.toString(16) instead of Integer.toHexString
- Use Int.toString(8) instead of Integer.toOctalString
- Use Int.toString(radix) instead of Integer.toString(i, radix)
- Use Kotlin array extensions instead of java.util.Arrays
- Use Char extensions instead of java.lang.Character
- Use Kotlin collection extensions instead of java.util.Collections
- Use Int.MAX_VALUE instead of java.lang.Integer.MAX_VALUE
- Use Int.MIN_VALUE instead of java.lang.Integer.MIN_VALUE
- Use kotlin.math instead of java.lang.Math
- Use kotlin.math.abs instead of java.lang.Math.abs
- Use kotlin.math.acos instead of java.lang.Math.acos
- Use kotlin.math.asin instead of java.lang.Math.asin
- Use kotlin.math.atan instead of java.lang.Math.atan
- Use kotlin.math.atan2 instead of java.lang.Math.atan2
- Use kotlin.math.cbrt instead of java.lang.Math.cbrt
- Use kotlin.math.ceil instead of java.lang.Math.ceil
- Use kotlin.math.cos instead of java.lang.Math.cos
- Use kotlin.math.cosh instead of java.lang.Math.cosh
- Use kotlin.math.E instead of java.lang.Math.E
- Use kotlin.math.exp instead of java.lang.Math.exp
- Use kotlin.math.expm1 instead of java.lang.Math.expm1
- Use kotlin.math.floor instead of java.lang.Math.floor
- Use kotlin.math.hypot instead of java.lang.Math.hypot
- Use kotlin.math.ln instead of java.lang.Math.log
- Use kotlin.math.ln1p instead of java.lang.Math.log1p
- Use kotlin.math.log10 instead of java.lang.Math.log10
- Use kotlin.math.max instead of java.lang.Math.max
- Use kotlin.math.min instead of java.lang.Math.min
- Use kotlin.math.PI instead of java.lang.Math.PI
- Use kotlin.math.sign instead of java.lang.Math.signum
- Use kotlin.math.sin instead of java.lang.Math.sin
- Use kotlin.math.sinh instead of java.lang.Math.sinh
- Use kotlin.math.sqrt instead of java.lang.Math.sqrt
- Use kotlin.math.tan instead of java.lang.Math.tan
- Use kotlin.math.tanh instead of java.lang.Math.tanh
- Use Kotlin number extensions instead of java.lang.Integer/Long/Double/Float/Boolean
- Use kotlin.text.Regex instead of java.util.regex.Pattern
- Use listOf(x) instead of Collections.singletonList(x)
- Use MutableList.reverse() instead of Collections.reverse(list)
- Use MutableList.shuffle() instead of Collections.shuffle(list)
- Use MutableList.sort() instead of Collections.sort(list)
- Use Throwable.localizedMessage instead of Throwable.message
- Use LongArray.binarySearch() instead of Arrays.binarySearch(arr, key)
- Use LongArray.contentEquals() instead of Arrays.equals(a, b)
- Use LongArray.contentHashCode() instead of Arrays.hashCode(arr)
- Use LongArray.contentToString() instead of Arrays.toString(arr)
- Use LongArray.copyOf() instead of Arrays.copyOf(arr, newLength)
- Use LongArray.fill() instead of Arrays.fill(arr, value)
- Use LongArray.sort() instead of Arrays.sort(arr)
- Use Long.countOneBits() instead of java.lang.Long.bitCount
- Use Long.floorDiv instead of java.lang.Math.floorDiv
- Use Long.mod() instead of java.lang.Math.floorMod
- Use Long.mod(Int) instead of java.lang.Math.floorMod
- Use Long.rotateLeft(n) instead of Long.rotateLeft(l, n)
- Use Long.rotateRight(n) instead of Long.rotateRight(l, n)
- Use Long.toString() instead of Long.toString(l)
- Use Long.toString(radix) instead of Long.toString(l, radix)
- Use lowercase() instead of toLowerCase()
- Use Char.lowercaseChar() instead of Char.toLowerCase()
- Use lowercase(locale) instead of toLowerCase(locale)
- Use modern Kotlin stdlib idioms
- Use ..< instead of until
- Use readln() instead of readLine()!!
- Use readlnOrNull() instead of readLine()
- Use Regex.escape(s) instead of Pattern.quote(s)
- Use removeAt(lastIndex) instead of removeLast()
- Use removeAt(0) instead of removeFirst()
- Use setOf(x) instead of Collections.singleton(x)
- Use ShortArray.binarySearch() instead of Arrays.binarySearch(arr, key)
- Use ShortArray.contentEquals() instead of Arrays.equals(a, b)
- Use ShortArray.contentHashCode() instead of Arrays.hashCode(arr)
- Use ShortArray.contentToString() instead of Arrays.toString(arr)
- Use ShortArray.copyOf() instead of Arrays.copyOf(arr, newLength)
- Use ShortArray.fill() instead of Arrays.fill(arr, value)
- Use ShortArray.sort() instead of Arrays.sort(arr)
- Use String.toBoolean() instead of java.lang.Boolean.parseBoolean(s)
- Use String.toDouble() instead of java.lang.Double.parseDouble(s)
- Use String.toFloat() instead of java.lang.Float.parseFloat(s)
- Use String.toInt() instead of Integer.parseInt(s)
- Use String.toInt(radix) instead of Integer.parseInt(s, radix)
- Use String.toLong() instead of java.lang.Long.parseLong(s)
- Use String.toLong(radix) instead of Long.parseLong(s, radix)
- Use String.toRegex() instead of Pattern.compile(s)
- Use sumOf instead of sumBy
- Use sumOf instead of sumByDouble
- Use uppercase() instead of toUpperCase()
- Use Char.uppercaseChar() instead of Char.toUpperCase()
- Use uppercase(locale) instead of toUpperCase(locale)
- Use @JvmInline value class instead of inline class
- Collapse filter { p }.<terminal>() chains
- Collapse sorted().first/last() and reversed().first/last() chains
- Find expensive allocations inside collection lambdas
- Find expensive allocations on hot paths
- Find graphics allocations inside View.onDraw
- Find graphics allocations inside View.onLayout
- Find graphics allocations inside View.onMeasure
- Find Base64.getDecoder() calls inside loops
- Find BigDecimal("...") allocations inside loops
- Find BigInteger("...") allocations inside loops
- Find BigInteger.valueOf(long) calls inside loops
- Find Calendar.getInstance() calls inside loops
- Find Charset.forName(...) calls inside loops
- Find Class.forName calls inside loops
- Find DateTimeFormatter.ofPattern allocations inside loops
- Find seq.toList().map { ... } patterns
- Find File(...).bufferedReader() calls inside loops
- Find for (i in xs.indices) { val x = xs[i] } patterns
- Find Gson() allocations inside collection lambdas
- Find Gson() allocations inside loops
- Find iteration-shape smells
- Find long List pipelines that should use Sequence
- Find listOf(...) calls inside loops
- Find Locale(...) allocations inside loops
- Find LoggerFactory.getLogger calls inside collection lambdas
- Find LoggerFactory.getLogger calls inside loops
- Find collection construction inside loops
- Find MessageDigest.getInstance calls inside loops
- Find mutableListOf<T>() allocations inside loops
- Find mutableMapOf<K, V>() allocations inside loops
- Find Jackson ObjectMapper() allocations inside collection lambdas
- Find Jackson ObjectMapper() allocations inside loops
- Find Optional.get() calls inside loops
- Find Pattern.compile calls inside collection lambdas
- Find Pattern.compile allocations inside loops
- Find Regex allocations inside collection lambdas
- Find Regex allocations inside loops
- Find Sequence/List pipeline shape smells
- Find SimpleDateFormat allocations inside loops
- Find string-allocation smells
- Find String.format calls inside collection lambdas
- Find String.format calls inside loops
- Find s = s + "..." string concatenation inside loops
- Find URI("...") allocations inside loops
- Find URL("...") allocations inside loops
- Improve performance of Kotlin code
- Apply Kotlin performance idioms
- Use any { predicate } instead of filter { predicate }.isNotEmpty()
- Use any { predicate } instead of filter { predicate }.any()
- Use primitive mutable<Int|Long|Float|Double>StateOf in Compose
- Use count { predicate } instead of filter { predicate }.count()
- Use filterNotTo(mutableListOf(), p) instead of filterNot(p).toMutableList()
- Use filterTo(mutableListOf(), p) instead of filter(p).toMutableList()
- Use first() instead of reversed().last()
- Use firstNotNullOf { f } instead of mapNotNull { f }.first()
- Use firstNotNullOfOrNull { f } instead of mapNotNull { f }.firstOrNull()
- Use firstOrNull { predicate } instead of filter { predicate }.firstOrNull()
- Use first { predicate } instead of filter { predicate }.first()
- Use flatMapTo(mutableListOf(), f) instead of flatMap(f).toMutableList()
- Use last() instead of reversed().first()
- Use lastOrNull { predicate } instead of filter { predicate }.lastOrNull()
- Use last { predicate } instead of filter { predicate }.last()
- Use sb.length instead of sb.toString().length
- Use mapNotNull { f } instead of map { f }.filterNotNull()
- Use mapTo(mutableListOf(), f) instead of map(f).toMutableList()
- Use maxBy { selector } instead of sortedBy { selector }.last()
- Use max() instead of sortedDescending().first()
- Use max() instead of sorted().last()
- Use maxOf { selector } instead of map { selector }.max()
- Use minBy { selector } instead of sortedBy { selector }.first()
- Use min() instead of sortedDescending().last()
- Use min() instead of sorted().first()
- Use minOf { selector } instead of map { selector }.min()
- Use mutableDoubleStateOf instead of mutableStateOf<Double> in Compose
- Use mutableFloatStateOf instead of mutableStateOf<Float> in Compose
- Use mutableIntStateOf instead of mutableStateOf<Int> in Compose
- Use mutableLongStateOf instead of mutableStateOf<Long> in Compose
- Use none { predicate } instead of filter { predicate }.isEmpty()
- Use none { predicate } instead of filter { predicate }.none()
- Use singleOrNull { predicate } instead of filter { predicate }.singleOrNull()
- Use single { predicate } instead of filter { predicate }.single()
- Use sortedByDescending { f } instead of sortedBy { f }.reversed()
- Use sortedDescending() instead of sorted().reversed()
- Use sumOf { selector } instead of map { selector }.sum()
- Find public-API and binary-stability surface
- Find AssertJ assertThat(...) assertion chains
- Find AtomicReference/AtomicInteger/AtomicLong/AtomicBoolean allocations
- Find build- and source-hygiene smells
- Find Class.forName(...) calls
- Find Android ClipboardManager access
- Find process-execution sinks (Runtime.exec, ProcessBuilder.start)
- Find concurrency primitives
- Find cryptographic primitive entries (KeyGenerator.generateKey, Cipher.getInstance, etc.)
- Find database-query seeds
- Find data-flow sink positions
- Find data-flow source positions
- Find functions with nesting depth greater than 4
- Find declarations annotated @Deprecated
- Find catch blocks with empty bodies
- Find functions with empty bodies
- Find EntityManager.createQuery(...) calls
- Find System.getenv(...) / System.getProperty(...) reads
- Find Executors.newXxxThreadPool factory calls
- Find java.lang.reflect.Field.get/set calls
- Find File.readBytes() calls
- Find filesystem read calls (File.readText, Files.readString, etc.)
- Find File.readText() calls
- Find Files.copy(...) calls
- Find Files.delete(...) / Files.deleteIfExists(...) calls
- Find Files.newBufferedWriter(...) calls
- Find Files.writeString(...) calls
- Find filesystem-operation seeds
- Find filesystem write calls (File.writeText, Files.write, etc.)
- Find File.writeText(...) calls
- Find CompletableFuture / FutureTask allocations
- Find catch (e: Exception) and catch (e: Throwable) clauses
- Find classes with more than 25 methods
- Find Color(0xFF...) color-literal constructions
- Find hardcoded literals and error-handling smells
- Find hotspots and complexity points
- Find HTTP client construction sites
- Find HttpServletRequest.getParameter/getHeader/getCookies reads
- Find HttpURLConnection references
- Find @Disabled / @Ignore test annotations
- Find non-cryptographic random sources (Math.random, kotlin.random.Random, java.util.Random)
- Find Jackson ObjectMapper.readValue(...) calls
- Find Jackson ObjectMapper.writeValue*(...) calls
- Find @JvmField annotations
- Find @JvmOverloads annotations
- Find @JvmStatic annotations
- Find KClass.constructors access
- Find KClass.declaredFunctions / declaredMemberFunctions access
- Find KClass.members / memberFunctions / memberProperties access
- Find Kotlin reflection (KClass.memberFunctions, KClass.members, etc.)
- Find Kotest spec classes
- Find classes with more than 200 statements
- Find when expressions with more than 10 branches
- Find logger write calls (info/warn/error/debug)
- Find functions with more than 30 statements
- Find numeric literals other than 0, 1, -1
- Find functions with more than 5 parameters
- Find java.lang.reflect.Method.invoke(...) calls
- Find mockk<X>() / mockk(...) calls
- Find outbound-networking seeds
- Find outbound-network sinks (URL.openConnection, OkHttpClient.newCall, etc.)
- Find !! not-null assertions
- Find ObjectOutputStream.writeObject(...) calls
- Find okhttp3.OkHttpClient constructions
- Find okhttp3.Request.Builder() constructions
- Find @OptIn(...) annotations
- Find @ParameterizedTest annotations
- Find public const val declarations
- Find public lateinit var declarations
- Find recursive functions not marked tailrec
- Find ReentrantLock() / ReentrantReadWriteLock() allocations
- Find Class.getDeclaredField / Class.getField calls
- Find reflection seeds
- Find reflection and runtime introspection
- Find declarations annotated @RequiresOptIn
- Find Semaphore / CountDownLatch / CyclicBarrier allocations
- Find serialization seeds
- Find ServiceLoader.load(...) calls
- Find AccessibleObject.setAccessible(true) calls
- Find SQL execution sinks (Statement.execute*, prepareStatement, createNativeQuery)
- Find Statement.executeQuery(sql) calls
- Find Statement.executeUpdate(sql) calls
- Find readLine() / Scanner.next*() calls
- Find synchronized(lock) { ... } calls
- Find @DisplayName(...) test annotations
- Find tests tagged @Tag("slow")
- Find test-surface positions
- Find Thread(...) constructor calls
- Find ThreadLocal() allocations
- Find throw Exception(...) and throw RuntimeException(...) calls
- Find bare as casts (unsafe)
- Find @Volatile properties
- Find import x.* wildcard imports
- Surface impact-analysis findings
- Find Cipher.getInstance("AES") calls without a mode
- Find HostnameVerifier { _, _ -> true } lambdas
- Find android.util.Log.{d,i,v,w,e} calls with sensitive content
- Find Android-specific security smells
- Find AWS Access Key literals (AKIA…)
- Find "Basic <base64>" literals in source
- Find Cipher.getInstance("AES/CBC/...") calls — verify integrity
- Find Cipher.getInstance("AES/ECB/...") calls
- Find two-argument Cipher.init(opmode, key) calls
- Find Class.forName(...) calls with non-literal arguments
- Find Cookie.setHttpOnly(false) calls
- Find Cookie.setSecure(false) calls
- Find File("..." + input) constructions
- Find GitHub PAT literals (ghp_…)
- Find Google API key literals (AIza…)
- Find hard-coded secret literals
- Find URL("http://...") literal constructions
- Find injection vectors
- Find insecure cookie / session configuration
- Find insecure TLS configuration
- Find Intent("some.implicit.action") constructions
- Find java.util.Random() allocations
- Find JwtBuilder.setSigningKey("literal".toByteArray()) patterns
- Find JwtBuilder.signWith(SignatureAlgorithm.NONE, ...) patterns
- Find InitialContext.lookup(input) calls with non-literal arguments
- Find "alg":"none" literal strings
- Find JWT literals (eyJ…-prefixed three-segment tokens)
- Find JWT misuse
- Find KeyGenerator.getInstance("DES") calls
- Find kotlin.random.Random.Default references
- Find MODE_WORLD_READABLE references
- Find NullCipher() allocations
- Find ObjectInputStream(...) constructions
- Find Paths.get("..." + input) calls
- Find PBEKeySpec(..., iterations, ...) with low iteration counts
- Find IvParameterSpec(byteArrayOf(...)) constructions with a literal IV
- Find prepareStatement("... " + x) calls
- Find println("... password ...") patterns
- Find -----BEGIN ... PRIVATE KEY----- literals
- Find ProcessBuilder(varargs) constructions whose first arg is non-literal
- Find HttpServletResponse.sendRedirect(input) calls with non-literal arguments
- Find KeyPairGenerator.getInstance("RSA") callers — verify 2048+ key size
- Find Runtime.getRuntime().exec(...) calls with non-literal arguments
- Find ScriptEngine.eval(...) calls
- Find ScriptEngineManager.getEngineByName(...) calls
- Find SecretKeySpec(_, "DES") constructions
- Find SecureRandom.setSeed(...) with a literal seed
- Find sensitive data in log calls
- Find variables named password/secret/token/apiKey with a non-empty literal default
- Find setHostnameVerifier(ALLOW_ALL) calls
- Find getSharedPreferences(_, MODE_PRIVATE) callers
- Find Slack token literals (xoxb-/xoxp-/xoxa-/xoxr-/xoxs-)
- Find SLF4J log calls with sensitive field names in the format string
- Find Statement.executeQuery("... " + x) calls
- Find Statement.execute("... " + x) / executeUpdate calls
- Find String.toByteArray() calls without an explicit charset
- Find Stripe API key literals (sk_live_… / sk_test_…)
- Find X509TrustManager implementations with empty checkServerTrusted
- Find unsafe Java deserialization
- Find Cipher.getInstance("Blowfish") calls
- Find Cipher.getInstance("DES...") calls
- Find Cipher.getInstance("RC2") calls
- Find Cipher.getInstance("RC4"/"ARCFOUR") calls
- Find Cipher.getInstance("DESede"/"TripleDES") calls
- Find weak cryptographic primitives
- Find MessageDigest.getInstance("MD2") calls
- Find MessageDigest.getInstance("MD5") calls
- Find MessageDigest.getInstance("SHA-1") calls
- Find SSLContext.getInstance("SSL"/"TLSv1"/"TLSv1.1") calls
- Find WebView.addJavascriptInterface(...) calls
- Find WebView.settings.javaScriptEnabled = true / setJavaScriptEnabled(true)
- Find WebView.loadUrl("http://...") calls
- Find WebView.settings.setSavePassword(true) calls
- Find WebView.settings.setAllowFileAccessFromFileURLs(true) calls
- Find WebView.settings.mixedContentMode = MIXED_CONTENT_ALWAYS_ALLOW settings
- Find security smells in Kotlin code
- Find @Async methods on classes that aren't open
- Find @Async on private functions
- Find @Autowired lateinit var Logger fields
- Find @Autowired on a single constructor
- Find @Autowired lateinit var field injection
- Find @Autowired lateinit var properties (ctor-injection candidate)
- Find @Autowired var properties (not lateinit)
- Find @Bean fun foo(): X = X() candidates for the beans { } DSL
- Find @Cacheable on private functions
- Find @Lazy annotations on @Autowired properties
- Find @ConfigurationProperties classes that aren't data class
- Find @Controller classes whose methods all return data (consider @RestController)
- Find @RestController methods returning ResponseEntity<T>
- Find @GetMapping/@PostMapping/... methods returning Mono<T>
- Find repository interfaces extending CrudRepository instead of JpaRepository
- Find Spring Data / repository access smells
- Find @EnableWebMvc on a Spring Boot application
- Find Environment.getProperty(...) calls
- Find @EventListener methods with non-Unit return types
- Find @Inject lateinit var field injection
- Find @Autowired val field declarations (not in ctor)
- Find findByIdOrNull(id!!) calls
- Find Flux.blockFirst() calls outside @Test methods
- Find Flux.blockLast() calls outside @Test methods
- Find Flux.flatMap { x -> Mono.just(f(x)) } patterns
- Find Flux.fromIterable(listOf(...)) patterns
- Find Flux.subscribe { ... } without an error consumer
- Find HttpServletRequest parameters in controllers
- Find @Entity classes with var properties only
- Find repo.findById(id).get() chains
- Find any lateinit var injected field (@Autowired / @Inject / @Value)
- Find top-level main functions wrapping SpringApplication.run
- Find @PostMapping methods missing @ResponseStatus(HttpStatus.CREATED)
- Find @MockBean on lateinit var fields
- Find MockMvcBuilders.standaloneSetup(...) calls
- Find mono.awaitSingle() calls inside Flux/Flow collectors
- Find Mono.block() calls outside @Test methods
- Find throw ... statements inside Mono/Flux operator lambdas
- Find Mono.block() calls in non-test code
- Find Mono.flatMap { x -> Mono.just(f(x)) } patterns
- Find Mono/Flux ergonomic smells
- Find Mono.zip(...) calls
- Find @Entity data class declarations (verify kotlin-jpa plugin)
- Find Spring stereotype classes not declared open
- Find @PathVariable parameters without an explicit name
- Find @PropertySource on classes that lack @Configuration
- Find @Qualifier on lateinit var fields
- Find reactive / coroutine interop hazards
- Find WebTestClient test classes that don't use StepVerifier
- Find Mono.deferContextual { ... } inside suspend fun
- Find Spring Data repository methods returning Optional<T>
- Find @RequestBody on primitive parameters
- Find @RequestMapping(method = [RequestMethod.GET]) candidates for @GetMapping
- Find @RequestMapping(...) without an HTTP method
- Find @Required annotations
- Find ResponseEntity(body, HttpStatus.OK) constructor calls
- Find RestTemplate allocations
- Find Spring annotation-shape smells
- Find SpringApplication.run(MyApp::class.java, ...) calls
- Find @Bean methods without @Scope
- Find Spring Boot bootstrapping smells
- Find @Component / @Service / @Repository on data class
- Find Spring configuration smells
- Find Spring coroutine-migration candidates
- Find Spring Data smells
- Find Spring dependency-injection smells
- Find Spring legacy / deprecated API smells
- Find Spring proxied-annotation smells
- Find @Service object Foo declarations
- Find Spring testing smells
- Find Spring Web / WebFlux smells
- Find @SpyBean on lateinit var fields
- Find @Transactional methods on classes that aren't open
- Find @Transactional on private functions
- Find @Value on lateinit var properties
- Find webClient...bodyToMono(X::class).block() chains
- Find WebClient.create() / WebClient.create(url) calls
- Find WebClient / RestTemplate / ResponseEntity smells
- Find WebClient.bodyToMono(X::class.java) calls
- Find Mono.block / Flux.blockFirst / Flux.blockLast calls
- Modernize Spring Boot Kotlin code
- Apply Kotlin collection shorthands
- Prefer emptyList() / emptySet() / emptyMap() over zero-arg builders
- Apply Kotlin standard-library idioms
- Apply Kotlin string shorthands
- Use toList() instead of asSequence().toList()
- Use distinct() instead of toHashSet().toList()
- Use distinct() instead of toSet().toList()
- Use distinct().toMutableList() instead of toSet().toMutableList()
- Use emptyList<T>() instead of listOf<T>()
- Use emptyMap<K, V>() instead of mapOf<K, V>()
- Use emptySet<T>() instead of setOf<T>()
- Use toSet() instead of toMutableSet().toSet()
- Use drop(n) instead of substring(n) on a String
- Use isBlank() instead of trim().isEmpty() on a String
- Use isNotBlank() instead of trim().isNotEmpty() on a String
- Use take(n) instead of substring(0, n) on a String
- Use take(n) instead of subList(0, n)
- Use toList() instead of toMutableList().toList()
- Use toSet() instead of toList().toSet()
- Find assertEquals(...) calls — Kotest migration candidate
- Find assertFalse(...) calls — Kotest migration candidate
- Find assertion-library smells
- Find AssertJ .extracting(...).contains(...) chains
- Find assertNotNull(...) calls — Kotest migration candidate
- Find assertNull(...) calls — Kotest migration candidate
- Find assertThrows<X> { ... } calls — Kotest migration candidate
- Find assertTrue(...) calls — Kotest migration candidate
- Find @BeforeEach methods that reassign val properties
- Find JUnit 4 coroutine-test @Rule fields
- Find coroutine-test patterns
- Find delay(...) calls inside test methods running on a real dispatcher
- Find @Disabled annotations
- Find @Test methods with empty bodies
- Find test functions named with snake_case
- Find MatcherAssert.assertThat(...) (Hamcrest) calls
- Find public modifier on JUnit 5 test functions
- Find Kotest migration candidates
- Find ArgumentCaptor.forClass(X::class.java) allocations
- Find Mockito argument-matcher any() / eq() / isA() calls
- Find Mockito @InjectMocks fields
- Find Mockito.mock(...) / mock<X>() calls
- Find Mockito @Mock fields
- Find mockito-kotlin / Mockito patterns
- Find Mockito.spy(...) / spy(...) calls
- Find Mockito verify(mock).method(...) calls
- Find Mockito whenever(...).thenReturn(...) chains
- Find @ValueSource(strings = [...]) annotations
- Find @RepeatedTest(N) annotations
- Find runBlocking { ... } calls inside test methods
- Find runBlockingTest { ... } calls
- Find @Tag(...) annotations
- Find TestCoroutineDispatcher allocations
- Find test fixture / setup smells
- Find JUnit 5 setup smells (informational)
- Find @Test methods with no recognized assertion calls
- Find @Test methods with many assertions
- Modernize Kotlin test code
io.moderne.recipe:recipes-mainframe0.3.0 · Proprietary
- Find the control flow between paragraphs and sections
- Find PERFORM THRU range pathology
- Find unreachable paragraphs and sections
- Find copybook drift
- Find CICS and IMS migration blockers
- Find the relationships of a program
- Measure program complexity
- Find references to a name
- Build the resource CRUD matrix
- Build the resource side of the CRUD matrix
- List relationship kinds
- List every data set the portfolio names
- List how far each job step can be read
- List each job step and the data sets it allocates
- Build the batch CRUD matrix
- Find batch data set relationships
- Find every data set the portfolio names
- Find how far each job step can be read
- Find every data set a job step allocates
- Build the call tree
- Find CICS commands
- Find CICS resource access
- Say what each control card deck is and what it defines
- Find what each control card deck is
- Say when each job runs, what has to end first, and on which days
- Say which build orders the scheduler does not enforce, and which jobs nobody orders
- Find what the scheduler runs, in what order, and on which days
- Find what the scheduler does not enforce
- Join each plan to the packages and programs bound under it
- Read the schema the DDL creates, and who reaches each table
- List the Db2 unloads and what each would cost to move
- Find the plans and packages the bind decks declare
- Find the tables the DDL creates and who reaches them
- Find the Db2 unloads and what it would take to run them on the base utility
- Migrate a Db2 unload job to the base UNLOAD utility
- Analyze what the run books document
- Find what the run books document
- Join each IMS transaction and job step to the segments behind it
- Find what each IMS transaction and job step reaches
- Find IMS DL/I calls
- Check parse quality
- Find parse problems
- Compare the copies of a member across environments
- Count each application's files by type
- Find members held in more than one environment
- Find components and identifiers by name
- Analyze the mainframe a Java source reaches
- Find the mainframe a Java source reaches
- Compare each record with the other language that describes it
- Find records described in two languages that disagree
- List what runs a variable
- Find column lineage
- Assess the impact of a copybook change
- Trace field lineage across programs
- Find dead data
- Trace field lineage
- Find sensitive data leaving the program
- Find what runs a variable
- Join each load module to the programs bound into it
- Analyze the relationships of a load module
- Find what each load module is built from
- Expand copybooks and procedures
- Analyze the business rules a portfolio applies
- Lay out the portfolio's call trees
- Record the control flow of each program
- Analyze the portfolio's copybooks
- Analyze how the portfolio reaches its data
- Index the portfolio's components and identifiers
- Analyze the mainframe architecture
- Analyze the mainframe migration blockers
- Measure each program and its control flow
- Generate OpenLineage column lineage
- Generate the mainframe findings report
- Generate mainframe CALM architecture
- Update mainframe Prethink context
- Find business rules as decision tables
- Join every screen field to the COBOL behind it
- Find every screen field and the COBOL behind it
- Find a search term in the source or by name
io.moderne.recipe:recipes-scala0.9.0 · Proprietary
- Avoid empty catch blocks
- Avoid System.exit in library code
- Encapsulate public mutable fields
- Externalize hardcoded credentials
- Externalize hardcoded timeouts
- Extract magic numbers to named constants
- Inventory scala-logging usage
- Inventory Typesafe Config usage
- Keep classes small (max 30 members)
- Keep methods short (max 20 statements)
- Ensure Log4j is patched against CVE-2021-44228
- Prefer explicit imports over wildcards
- Prefer immutable collections
- Prefer val over var
- Prefer Option over null
- Prefer pattern matching over asInstanceOf casts
- Prefer pattern matching over isInstanceOf/asInstanceOf chains
- Prefer Scala-style property access over Java getters
- Prefer specific types over Any
- Prefer string interpolation over concatenation
- Reduce deep nesting by extracting methods
- Reduce parameter count (max 5 parameters)
- Remove explicit return statements
- Remove redundant toString on String
- Remove unnecessary : Unit return type
- Remove unused variable bindings
- Resolve TODO/FIXME comments
- Review deprecated API declarations
- Simplify boolean expression
- Replace Option pattern matching with combinators
- Replace JavaConverters with CollectionConverters
- Replace unnecessary intermediate collection before .toSet
- Use logging framework instead of println
- Use logging framework instead of printStackTrace
- Use Option safely
- Replace .getOrElse(null) with .orNull
- Avoid blocking calls (Await.result/Await.ready)
- Avoid Thread.sleep
- Prefer custom ExecutionContext over global
- Synchronize mutable shared state
- Prefer direct Either operations over projections
- Prefer functional error handling over throw expressions
- Use NonFatal matcher for broad catch patterns
- Use Try safely without calling .get
- Migrate classic actor tell to typed ActorRef
- Migrate classic Actor to Akka Typed Behavior
- Migrate akka.actor.ActorSystem to akka.actor.typed.ActorSystem
- Remove deprecated Akka imports
- Migrate Anorm to Doobie, Quill, or Skunk
- Migrate Phantom DSL to Datastax driver or quill-cassandra
- Migrate ScalikeJDBC to Doobie or Quill
- Ensure parameterized SQL queries
- Avoid blocking Slick database calls
- Migrate Cats Effect 2 to Cats Effect 3
- Migrate Scalaz to Cats
- Use circe derives for Scala 3
- Find Akka HTTP imports to migrate to Apache Pekko
- Migrate Dispatch to sttp or http4s-client
- Migrate Finagle to http4s, tapir, or pekko-http
- Migrate Scalatra to http4s, tapir, or Play
- Remove Jackson Scala module imports
- Remove json4s imports
- Remove lift-json imports
- Remove spray-json imports
- Migrate implicit to given/using (Scala 3)
- Migrate deprecated procedure syntax
- Inject WSClient instead of using deprecated WS
- Migrate GlobalSettings to dependency injection (Play 2.6+)
- Use Action.async with Future instead of blocking
- Use Play JSON JsValue directly
- Remove deprecated any2stringadd usage
- Remove existential types (removed in Scala 3)
- Remove deprecated symbol literals
- Review abstract override for Scala 3
- Review trait var initialization for Scala 3
- Migrate from DelayedInit/App to @main
- Migrate XML literals to scala-xml interpolation
- Remove auto-tupling (not available in Scala 3)
- Replace do-while loops (removed in Scala 3)
- Upgrade sbt version
- Use ? instead of _ for wildcard types (Scala 3)
- Prefer Vector or prepend for append-heavy workloads
- Prefer .view.mapValues for Scala 2.13+
- Replace filter then size with count
- Replace map then flatten with flatMap
- Replace .head with .headOption
- Use isEmpty instead of size == 0
- Replace .last with .lastOption
- Use nonEmpty instead of size > 0
- Avoid throwing in finally blocks
- Narrow catch clauses that catch Throwable
- Prefer java.util.concurrent over synchronized
- Remove potentially unused imports (heuristic)
- Migrate specs2 to ScalaTest or MUnit
- Migrate from FlatSpec to AnyFlatSpec
- Migrate to org.scalatest.matchers.should.Matchers
- Use ScalaTest matchers instead of assert(x == y)
io.moderne.recipe:rewrite-ai0.8.0 · Proprietary
io.moderne.recipe:rewrite-angular1.17.0 · Proprietary
io.moderne.recipe:rewrite-cryptography0.20.0 · Proprietary
- Build cryptographic cipher inventory
- Find insecure C# cryptography
- Find insecure Java cryptography
- Find insecure C/C++ cryptography
- Build a joined cryptography inventory
- Find cryptographic vulnerability chains
- Find direct SSL configuration editing
- Find hardcoded algorithm choices
- Find hardcoded algorithm-specific parameters
- Find hardcoded certificates
- Find hardcoded cipher suite choices
- Find hardcoded cryptographic key lengths
- Find hardcoded private keys
- Find hardcoded SSL/TLS protocol choices
- Find hardcoded cryptographic provider names
- Find programmatic security provider editing
- Find RSA key generation parameters
- Find Security class modifications
- Find Security.setProperty(..) calls for certain properties
- Find SSLContext.setDefault() usage
- Find SSL socket configuration parameters
- Post quantum cryptography
- Offer a hybrid ML-KEM key exchange group first
- Offer a hybrid ML-KEM key exchange group first in properties files
- Build post-quantum TLS readiness inventory
- Build TLS protocol configuration inventory
- Build TLS key exchange inventory
- Enable hybrid TLS key exchange
- Enforce a TLS 1.3 floor
- Enforce a TLS 1.3 floor in Java sources
- Enforce a TLS 1.3 floor in properties files
- Enforce a TLS 1.3 floor in YAML files
- Find TLS key exchange sites that cannot be made hybrid automatically
- Find TLS key exchange (named groups) configuration
- Find TLS protocol configuration in properties and YAML
- Find TLS protocol configuration
- Audit post-quantum TLS readiness of build files
- Post-quantum TLS readiness report
- Upgrade to post-quantum ready TLS
io.moderne.recipe:rewrite-devcenter1.36.0 · MSAL
- Move to a later Angular version
- DevCenter for Apache
- Apache Maven best practices
- DevCenter for Apache Maven
- DevCenter card from a data table column
- Build tool
- DevCenter for Gradle and Maven
- Class cohesion DevCenter
- Move to a later .NET version
- Vulnerabilities status
- DevCenter for Angular
- DevCenter for C#
- DevCenter for Go
- DevCenter Kotlin
- DevCenter for JavaScript and TypeScript
- DevCenter for Python
- DevCenter for React
- DevCenter Starter
- Move to ECMAScript 6
- Find active committers on repositories
- Find organization statistics
- Move to a later Go version
- Move to a later Groovy version
- Move to a later Java version
- Move to JUnit 6
- Move to a later Kotlin version
- Library upgrade
- Move to a later Node.js version
- Package migration
- Package upgrade
- Parent POM upgrade
- Move to a later Python version
- DevCenter for Quarkus
- Report as security issues
- Move to a later Scala version
- OWASP top ten
- Upgrade Apache Parent POM
- Upgrade Apache Maven Parent
- Upgrade Maven Plugins Parent
- Upgrade Maven Shared Parent
- Upgrade Quarkus Universe BOM
- DevCenter for Vulnerability Management
io.moderne.recipe:rewrite-dropwizard0.11.0 · Proprietary
- Add annotation if target annotation exists
- Add annotation if target supertype exists
- Migrate Dropwizard MultiPartBundle to Spring multipart configuration
- Replace DataSourceFactory build chain with @Autowired DataSource
- Remove Dropwizard lifecycle.manage() calls
- Remove methods referencing specified package
- Remove class variables matching package filter
- Migrate Dropwizard health check Result calls and wrap exceptions
- Replace Jackson.newObjectMapper() with new ObjectMapper().findAndRegisterModules()
- Add lifecycle annotations to Dropwizard Managed methods
- Change supertype
- Remove supertype by fully qualified name
- Remove unnecessary @Override annotations
- Remove super calls when the class does not extend another class
- Migrate Dropwizard Application.run() to SpringApplication.run()
- Migrate Dropwizard to Spring Boot 3
- Add @SpringBootTest to classes using DropwizardAppExtension
- Replace Dropwizard rules with Spring Boot test configuration
- Inline lambda body from matched method invocations
- Convert Mockito mock() to @MockBean
- Replace DropwizardAppExtension.getApplication() with @Autowired application field
- Replace DropwizardAppExtension.getConfiguration() with @Autowired configuration field
- Replace a method invocation with a reference to an annotated field
- Convert Dropwizard test rule calls to RestTemplate
- Migrate Jetty AbstractHandler to Jetty 12 Handler.Abstract
- Migrate to Dropwizard 5.0.x from 4.x
io.moderne.recipe:rewrite-elastic0.12.0 · Proprietary
- Change numeric field type with conversion
- Change numeric field types for Elasticsearch 9
- Migrate DenseVectorProperty.elementType from String to DenseVectorElementType enum
- Migrate DenseVectorProperty.similarity from String to DenseVectorSimilarity enum
- Migrate matchedQueries from List to Map
- Migrate script source from String to Script/ScriptSource
- Migrate SpanTermQuery.value() from String to FieldValue
- Migrate from Elasticsearch 8 to 9
- Migrate from Elasticsearch 8 to 9 (API renames, transport-agnostic)
- Migrate from Elasticsearch 8 to 9 (legacy Apache HttpClient 4.x transport)
- Rename Elasticsearch valueBody() methods
- Rename API fields for Elasticsearch 9
- Use NamedValue parameters instead of Map
io.moderne.recipe:rewrite-hibernate0.33.0 · Proprietary
- Migrate to Hibernate 4.0.x
- Migrate to Hibernate 6.0.x
- Migrate to Hibernate 6.6.x
- Migrate to Hibernate 7.0.x
- Migrate to Hibernate 7.1.x
- Migrate to Hibernate 7.2.x
- Find JPQL definitions
- Index HQL/JPQL positional parameters in annotations
- Index HQL/JPQL positional parameters in method calls
- Migrate @JoinTable to @CollectionTable for element collections
- Migrate Hibernate Criteria API to JPA Criteria API
- Migrate removed Hibernate UUID @Type to @JdbcTypeCode
- Fix conflicting class type annotation Hibernate 6.6
- Migrate Hibernate CascadeType constants
- Remove table from single table inherited entity
- Migrate implicit cascade=PERSIST for @Id and @MapsId associations
- Remove leaking of SessionFactoryImplementor from org.hibernate.usertype.CompositeUserType invocations and implementations
- Find native queries with enum parameters requiring SpEL conversion
- Migrate Configurable.configure() to use GeneratorCreationContext
- Migrate Hibernate Integrator#integrate method
- Migrate jackson-datatype-hibernate6 to jackson-datatype-hibernate7
- Migrate @JdbcType and legacy @Type to @JdbcTypeCode
- Migrate JPQL trunc() to cast(... as date)
- Migrate LockOptions to direct parameters
- Migrate MetamodelImplementor to Hibernate 7.0
- Migrate NaturalIdLoadAccess method calls
- Migrate NaturalIdMultiLoadAccess method calls
- Migrate @Query to @NativeQuery for unsupported JPQL
- Migrate Session interface method calls
- Migrate Session save/update/delete method calls
- Migrate setFlushMode() to setQueryFlushMode()
- Migrate to Hibernate 7 JFR APIs
- Migrate to @TargetEmbeddable
- Remove unnecessary cast to Session for SessionFactory.createEntityManager()
- Replace hibernate annotations with Jakarta variants
- Replace Session.buildLockRequest with LockOptions
- Null safe Transaction#getTimeout()
- Remove leaking of SharedSessionContractImplementor from org.hibernate.usertype.UserType invocations
- Remove leaking of SharedSessionContractImplementor from org.hibernate.usertype.UserType implementations
io.moderne.recipe:rewrite-jasperreports0.10.0 · Proprietary
io.moderne.recipe:rewrite-java-application-server0.14.0 · Proprietary
- Configure Gradle application plugin main class
- Configure Gradle jar task for fat JAR
- Create Jetty environment XML
- Migrate JBoss to Jetty
- Create Jetty server source file
- JBoss to Jetty migration
- JBoss to Jetty migration scanner
- Migrate JBoss to Jetty
- Module has JBoss descriptor
- Move web.xml to resources
- Plan JBoss migration
- Create Tomcat context XML
- Migrate JBoss to Tomcat
- Create Tomcat server source file
- JBoss to Tomcat migration
- JBoss to Tomcat migration scanner
- Migrate JBoss to Tomcat
io.moderne.recipe:rewrite-kafka0.11.0 · Proprietary
- Migrate Admin.listConsumerGroups() to listGroups()
- Migrate AdminClient.alterConfigs() to incrementalAlterConfigs()
- Migrate KafkaConsumer.committed(TopicPartition) to committed(Set<TopicPartition>)
- Migrate ConsumerGroupState to GroupState
- Migrate KafkaConsumer.poll(long) to poll(Duration)
- Migrate deprecated sendOffsetsToTransaction to use ConsumerGroupMetadata
- Migrate to Kafka 2.3
- Migrate to Kafka 2.4
- Migrate to Kafka 2.5
- Migrate to Kafka 2.6
- Migrate to Kafka 2.7
- Migrate to Kafka 2.8
- Migrate to Kafka 3.0
- Migrate to Kafka 3.1
- Migrate to Kafka 3.2
- Migrate to Kafka 3.3
- Migrate to Kafka 4.0
- Migrate to Kafka 4.1
- Remove deprecated Kafka property
- Migrate Joined.named() to Joined.as()
- Migrate deprecated KafkaStreams#store method
- Migrate KStream to KTable conversion to use toTable() method
- Migrate deprecated retry configuration to task timeout
- Migrate to StreamsUncaughtExceptionHandler API
- Migrate TaskMetadata and ThreadMetadata
- Migrate TaskMetadata.taskId() to return TaskId
- Migrate WindowStore.put() to include timestamp
- Migrate exactly_once to exactly_once_beta
- Migrate exactly_once and exactly_once_beta to exactly_once_v2
- Remove PartitionGrouper configuration
- Upgrade Java to 17+ for Kafka broker/tools
- Upgrade Java to 11+ for Kafka clients
io.moderne.recipe:rewrite-nullability0.10.0 · Proprietary
- Add @MonotonicNonNull to a lazily-initialized field
- Add @MonotonicNonNull to an uninitialized field
- Add a @Nullable upper bound to a pass-through type parameter fed a null-returning lambda
- Add @Nullable to Java returns from Kotlin call sites
- Add @Nullable to array element types that can hold null
- Add @Nullable to fields that can hold null
- Add @Nullable to a functional-interface return type argument fed a null-returning lambda
- Add @Nullable to a mismatched generic type argument
- Add @Nullable to a field assigned a nullable value
- Add @Nullable to a method that can return null
- Add @Nullable to method parameters that can receive null
- Add @Nullable to methods that can return null
- Add @Nullable to collection and map type arguments that hold null elements
- Add @NullMarked to every package
- Add @NullMarked to package-info.java for an allowlist of packages
- Add a @Contract nullness contract to a validation helper
- Align override nullability with the supertype
- Add @Nullable to generated Thrift getters of optional fields
- Route a guarded raw accessor through its present Optional
- Compose JSpecify best practices (intra-body nullability inference)
- Extract a repeated @Nullable invocation into a local variable
- Hoist a guarded @Nullable field read into a local variable
- Migrate @NonNullApi/ParametersAreNonnullByDefault to JSpecify @NullMarked
- Move a leading @Nullable to the type-use position
- Make a codebase null-safe
- Propagate @Nullable across override relationships
- Relax Optional.of to Optional.ofNullable on nullable values
- Relocate a misplaced leading @Nullable on a primitive array to the array reference
- Remove a provably-dead if (x == null) guard
- Remove a redundant @NonNull annotation under @NullMarked
- Remove a redundant declaration-position @Nullable on a method return
- Replace nullable x.toString() with String.valueOf(x)
- Replace @Nullable with @MonotonicNonNull on a lazily-initialized field
- Return an empty collection instead of null
- Make a nullable Boolean condition null-safe with Boolean.TRUE.equals(...)
- Wrap nullable arguments passed to non-null parameters in requireNonNull
- Wrap nullable dereferenced values in requireNonNull
- Wrap a nullable for-each iterable in requireNonNull
- Wrap nullable switch selectors in requireNonNull
- Wrap nullable thrown expressions in requireNonNull
- Wrap nullable values that are auto-unboxed in requireNonNull
io.moderne.recipe:rewrite-prethink0.20.0 · Proprietary
- Find ActiveRecord models
- Find ASP.NET Core endpoints
- Find ASP.NET Framework endpoints (Web API 2 and MVC 5)
- Find CALM relationships
- Find data assets
- Find database connections
- Find deployment artifacts
- Find Django endpoints
- Find .NET data assets
- Find .NET DTO field schemas
- Find .NET endpoint contracts
- Find .NET endpoint security
- Find .NET exception handlers
- Find .NET GraphQL endpoints
- Find .NET gRPC services
- Find .NET HTTP clients
- Find .NET messaging connections
- Find .NET project metadata
- Find .NET scheduled tasks
- Find .NET security configuration
- Find .NET server configuration
- Find .NET service components
- Find .NET test coverage
- Find DTO field schemas
- Find endpoint contracts
- Find endpoint security
- Find Entity Framework / Dapper / ADO.NET database access
- Find exception handlers
- Find Express endpoints
- Find external service calls
- Find FastAPI endpoints
- Find field examples from JSON fixtures
- Find Flask endpoints
- Find Go data assets
- Find Go database connections
- Find Go gRPC services
- Find Go HTTP clients
- Find Go messaging connections
- Find Go project metadata
- Find Go scheduled tasks
- Find Go security configuration
- Find Go service endpoints
- Find Go test coverage
- Find GraphQL endpoints
- Find gRPC services
- Find messaging connections
- Find Mongoose schemas
- Find NestJS endpoints
- Find Node.js error patterns
- Find Node.js HTTP clients
- Find Node.js messaging
- Find Node.js project metadata
- Find Node.js security configuration
- Find Node.js test coverage
- Find Prisma usage
- Find project metadata
- Find Python gRPC services
- Find Python project metadata
- Find Python test coverage
- Find Rails data assets
- Find Rails endpoints
- Find Ruby HTTP clients
- Find Ruby messaging
- Find Sinatra and Grape endpoints
- Find Ruby project metadata
- Find Ruby scheduled tasks
- Find Ruby security configuration
- Find Ruby test coverage
- Find scheduled tasks
- Find security configuration
- Find server configuration
- Find service components
- Find service endpoints
- Find ASP.NET Core SignalR hubs
- Find SQLAlchemy and Django ORM models
- Find SQL usage
- Find TypeORM entities
- Find WCF service endpoints
- Find ASP.NET Web Forms endpoints
- Find WebSocket endpoints
- Generate architecture mermaid diagram
- Extract coding conventions
- Extract dependency usage patterns
- Extract error handling patterns
- Extract Go dependencies and usage
- Extract Node.js dependencies and usage
- Extract Ruby dependencies
- Find Go coding conventions
- Find Go error handling patterns
- Find JavaScript and TypeScript coding conventions
- Find Python error handling patterns
- Find Ruby coding conventions
- Find Ruby error handling patterns
- Find transaction declarations
- Python dependency report
- Find class quality metrics
- Find code smells
- Find .NET error patterns
- Find duplicate code
- Find Go code smells
- Find Go package quality metrics
- Find Go type quality metrics
- Find method complexity
- Find package quality metrics
- Find Ruby method complexity
- Find Ruby package quality metrics
- Find Ruby type quality metrics
- Find similar code
- Find test coverage mapping
- Find test coverage gaps
- Find .NET flaky test patterns
- Find .NET fragile test data
- Find .NET ghost tests
- Find overly broad mocks in .NET tests
- Find .NET silent test failures
- Find .NET test code smells
- Find unmocked external calls in .NET tests
- Find flaky test patterns
- Find fragile test data
- Find ghost tests
- Find Go flaky test patterns
- Find Go fragile test data
- Find Go ghost tests
- Find Go overly broad mocks
- Find Go silent test failures
- Find Go test code smells
- Find Go unmocked external calls
- Find Node.js flaky test patterns
- Find Node.js fragile test data
- Find Node.js ghost tests
- Find Node.js silent test failures
- Find Node.js test code smells
- Find unmocked external calls in Node.js tests
- Find overly broad mocks
- Find silent test failures
- Find test code smells
- Find unmocked external calls in tests
- Update Prethink context (no AI)
- Update Prethink context
io.moderne.recipe:rewrite-program-analysis0.22.0 · Proprietary
- Inline deprecated delegating methods
- Find unused variable definitions
- Find cyclomatic complexity
- Find unreachable code
- Find dead stores
- Find unclosed resources (S2095)
- Parameterize raw Collection-typed local variables
- Track data lineage
- Find null pointer issues
- Find PII exposure in logs and external APIs
- Find improper validation of array index
- Find command injection vulnerabilities
- Find non-constant-time comparison of cryptographic digests
- Find JNDI injection vulnerabilities
- Find LDAP injection vulnerabilities
- Find log injection vulnerabilities
- Find path traversal vulnerabilities
- Find process control vulnerabilities
- Find security vulnerabilities using taint analysis
- Find SQL injection vulnerabilities
- Find unencrypted PII storage
- Find unsafe reflection vulnerabilities
- Find XSS vulnerabilities
- Find XXE vulnerabilities
- Fix XSS vulnerabilities in Java sources
- Sanitize log injection vulnerabilities
io.moderne.recipe:rewrite-react0.11.0 · Proprietary
io.moderne.recipe:rewrite-spring0.47.0 · Proprietary
- Migrate to JSF 2.3
- Convert height/width attributes to extendedDataTable style
- Migrate RichFaces 3.x to 4.5
- Migrate RichFaces tags in xhtml files
- Add @EnableJdbcJobRepository alongside @EnableBatchProcessing
- Add setJobRegistry(..) to manually configured TaskExecutorJobOperator
- Flag deprecated ChunkListener callbacks for manual migration to ChunkListener<I, O>
- Use constructor injection for StoredProcedureItemReader
- Add @SpringBootApplication class
- Convert field injection to constructor injection
- Find @SpringBootApplication or @ComponentScan in the default package
- Is likely not a Spring Boot project
- Is likely a Spring Boot project
- Mark embedded server as provided for WAR projects
- Migrate Spring Framework dependencies to Spring Boot
- Replace Spring Framework dependencies with Spring Boot starters
- Migrate Spring Framework to Spring Boot
- Add @Valid annotation to fields
- Comment deprecated methods in Spring 3.4
- Comment on @MockitoSpyBean and @MockitoBean in @Configuration
- Migrate ConditionalOnAvailableEndpoint for Spring Boot 3.4
- Migrate AbstractDiscoveredEndpoint deprecated constructor
- Migrate AbstractExposableEndpoint deprecated constructor
- Migrate @Endpoints defaultAccess value
- Migrate EndpointDiscoverer deprecated constructor
- Migrate EntityManagerFactoryBuilder deprecated constructor
- Migrate JmxEndpointDiscoverer deprecated constructor
- Migrate RestTemplateBuilder to RestClient.Builder
- Migrate RestTemplate configuration to RestClient
- Migrate RestTemplateCustomizer to RestClientCustomizer
- Migrate RestTemplate to RestClient
- Migrate ServiceBusChannelProvisioner template hooks to their 6.x replacements
- Migrate AzureServiceBusJmsConnectionFactoryCustomizer.customize parameter type
- Migrate RestTemplate API calls to RestClient
- Migrate RestTemplate constructor calls to RestClient
- Migrate WebEndpointDiscoverer 6-parameter constructor to 8-parameter
- Remove Spring Boot 3.5 deprecated conditions
- Remove Replace.NONE from @AutoConfigureTestDatabase
- Remove TestRestTemplate.HttpClientOption.ENABLE_REDIRECTS option
- Replace ConditionOutcome.inverse() with constructor
- Replace deprecated KafkaConnectionDetails bootstrap server methods
- Replace deprecated ThreadPoolTaskSchedulerBuilder 5-argument constructor
- Use kafkaAwareTransactionManager setter
- Replace @MockitoBean and @MockitoSpyBean with @Bean methods in @Configuration classes
- Use bean name applicationTaskExecutor instead of taskExecutor
- Resolve Deprecations in Spring Boot 3.3
- Replace taskExecutor with applicationTaskExecutor
- Migrate Spring Boot 3.4 deprecated classes and methods
- Migrate Spring Boot 3.5 deprecated classes and methods
- Spring Boot 3.5 best practices
- Migrate @Endpoint Security properties to 3.4
- Update OpenTelemetry resource attributes
- Upgrade Gradle to 7.6.4+ for Spring Boot 3.4
- Upgrade Gradle 8 to 8.4+ for Spring Boot 3.4
- Upgrade MyBatis to Spring Boot 3.4
- Upgrade MyBatis to Spring Boot 3.5
- Migrate to Spring Boot 3.0
- Migrate to Spring Boot 3.4
- Migrate to Spring Boot 3.5
- Upgrade Spring Cloud AWS to Spring Boot 3.4 compatible version
- Migrate Spring Cloud Azure to 6.x
- Migrate to Spring Kafka 3.3
- Add @AutoConfigureMockMvc to @SpringBootTest classes using MockMvc
- Add Flyway starters
- Add Spring Boot 4.1 gRPC starters to modules using Spring gRPC
- Add Jackson2 for Jersey using JSON
- Add @MockitoSettings(strictness = Strictness.LENIENT) for @MockitoBean tests
- Add Liquibase starters
- Add Spring Boot 4.0 starters for the libraries in use
- Add the Spring Boot 4.0 modules of the Spring Boot types in use
- Add MongoDB representation properties for UUID and BigDecimal
- Add useDefaultJaasConfig=true to MSSQL Kerberos JDBC URLs
- Co-exclude UserDetailsServiceAutoConfiguration where SecurityAutoConfiguration is excluded
- Co-exclude UserDetailsServiceAutoConfiguration on auto-configuration exclusion annotations
- Co-exclude UserDetailsServiceAutoConfiguration in spring.autoconfigure.exclude
- Add spring-boot-starter-validation dependency
- Preserve Reactor HTTP client defaults when upgrading to Spring Boot 4.1
- Adopt Jackson 3
- Flag deprecated ReactorNettyHttpClientMapper for migration
- Flag gRPC client stub injections that need @ImportGrpcClients
- Inline maxAttemptsExpression constants ahead of the Spring Framework 7 migration
- Preserve PropertyMapper null-passing behavior
- Find MockMvc usages that can all migrate to MockMvcTester
- Migrate @AutoConfigureMockMvc HtmlUnit attributes to nested @HtmlUnit
- Migrate awspring SQS default converter setObjectMapper to constructor injection
- Migrate Spring Session Hazelcast to Hazelcast Spring Session
- Migrate JsonFactoryDecorator to TokenStreamFactoryBuilderDecorator
- Migrate layertools jarmode to tools
- Migrate MockMvc to AssertJ assertions
- Migrate the monolithic Spring Boot starters
- Migrate PropertyMapper API for Spring Boot 4.0
- Add explicit version for REST Assured
- Migrate from standalone Spring gRPC 1.0 to Spring Boot 4.1 (Spring gRPC 1.1)
- Migrate Spring gRPC client channel properties to 1.1
- Migrate Spring Retry to Spring Resilience
- Migrate imperative spring-retry usage to Spring Framework 7
- Migrate @Retryable(recover=...) + @Recover to programmatic RetryTemplate
- Migrate spring-retry RetryTemplate configuration to Spring Framework 7 RetryPolicy.builder()
- Migrate remaining spring-retry usages to a generated compatibility class
- Migrate spring-retry to Spring Framework resilience
- Migrate to Spring Boot 4.0 modular starters
- Migrate to Spring Boot 4.1 modular starters
- Migrate MockMvc andExpect() chains to AssertJ assertions
- Migrate MockMvcRequestBuilders to MockMvcTester request methods
- Migrate MockMvc to MockMvcTester
- Modularize legacy raw Spring Data Redis dependency
- Module has monolithic Spring Boot starter
- Spring Boot 4.0 Module Starter Relocations
- Spring Boot 4.1 type relocations
- Module uses Flyway
- Module uses Liquibase
- Module uses Spring gRPC
- Preserve Reactor HTTP client defaults when upgrading to Spring Boot 4.1
- Expand split spring.autoconfigure.exclude entries for Spring Boot 4.0
- Remove ContentNegotiationConfigurer.favorPathExtension() calls
- Comment out deprecated DevTools LiveReload properties
- Remove loaderImplementation from Gradle
- Remove HttpMessageConvertersAutoConfiguration references
- Remove @Bean methods for modules built-in to Jackson 3
- Remove SslBundles parameter from KafkaProperties build methods
- Remove Spring Pulsar Reactive support
- Remove spring-retry once nothing references it
- Remove the orphaned Spring Retry version pin
- Remove ZipkinAutoConfiguration
- Replace deprecated org.springframework.boot.autoconfigure.mongo API
- Replace deprecated DockerApi
- Replace deprecated RequestMatcherProvider with new API
- Replace deprecated ThreadPoolTaskSchedulerBuilder constructor
- Replace removed RedisCacheConfiguration.getTtl()
- Read servlet web server factory settings through getSettings()
- Simplify null checks on Optional @ConfigurationProperties parameters
- Split the combined Spring gRPC starter into server and client starters
- Split the Spring gRPC test starter into server-test and client-test starters
- Split spring.grpc.server.address into address and port
- Spring Boot 4.0 best practices
- Migrate Spring Boot properties to 4.1
- Migrate Spring Boot properties to 4.2
- Migrate Spring Cloud AWS (awspring) to 4.0
- Upgrade MyBatis to Spring Boot 4.0
- Migrate to Spring Boot 4.0
- Migrate to Spring Boot 4.1
- Migrate to Spring Boot 4.2
- Migrate Spring Cloud Azure to 7.x
- Migrate to Spring for GraphQL 2.0
- Migrate to Spring HATEOAS 3.0
- Migrate to Spring Kafka 4.0
- Migrate to Spring Kafka 4.1
- Upgrade to Java 21 when using jOOQ
- Migrate @AutoConfigureWireMock to @EnableWireMock
- Migrate WireMockConfigurationCustomizer beans to @ConfigureWireMock
- Migrate from spring-cloud-contract-wiremock to wiremock-spring-boot
- Migrate Spring Cloud properties to 2020
- Migrate Spring Cloud properties to 2021
- Migrate Spring Cloud properties to 2022
- Migrate Spring Cloud properties to 2023
- Migrate Spring Cloud properties to 2024
- Migrate Spring Cloud properties to 2025
- Migrate Spring Cloud properties to 2025.1
- Upgrade to Spring Cloud 2025.1
- Add @ProjectedPayload to web projection interfaces
- Add setUseSuffixPatternMatch(true) in Spring MVC configuration
- Add setUseSuffixPatternMatch(true) for pre-Spring Framework 5.3 projects
- Migrate beans.xml to Spring Framework configuration class
- Find deprecated PathMatcher usage
- Find multiple @Autowired constructors
- Find @Controller classes that use @SessionAttributes without calling setComplete()
- Flag deprecated suffix pattern matching usage for manual review
- Is likely a Spring Framework project
- Convert JAX-RS annotations to Spring Web
- Migrate JSF variable-resolver to el-resolver
- Migrate web.xml to Servlet 4.0
- Replace ChannelInterceptorAdapter with ChannelInterceptor
- Pass a JsonMapper to JacksonJsonHttpMessageConverter
- Replace setObjectMapper with constructor injection
- Migrate DefaultResponseErrorHandler.handleError method signature
- Migrate Bean XML properties deprecated in Spring Framework 3.0
- Migrate Filter to OncePerRequestFilter
- Migrate handleError method invocations to new signature
- Migrate HttpHeaders methods removed when MultiValueMap contract was dropped
- Register a UrlHandlerFilter to preserve trailing slash matching
- Add Spring Framework modular dependencies
- Add @Nullable to optional Spring web parameters
- Migrate deprecated path mapping options
- Remove empty path match configuration methods
- Remove path extension content negotiation methods
- Remove deprecated setPathMatcher() calls
- Replace @Controller with @RestController
- Migrate to Spring Framework 3.x
- Migrate to Spring Framework 4.0
- Migrate to Spring Framework 5.0
- Migrate to Spring Framework 5.3
- Migrate to Spring Framework 6.0
- Add landing page controller for welcome file configuration
- Migrate web.xml to WebApplicationInitializer
- Explicitly set DynamicDestinationResolver on JmsTemplate
- Add @SpringExtensionConfig for nested tests
- Find Spring OkHttp3 integration usage
- Find removed APIs in Spring Framework 7.0
- Find removed Spring servlet view classes
- Find Spring Theme support usage
- Migrate AbstractClientHttpResponse to ClientHttpResponse
- Migrate CookieLocaleResolver#setCookieMaxAge(Integer) to Duration
- Migrate CookieLocaleResolver#setCookieName(String) to the constructor
- Migrate deprecated APIs removed in Spring Framework 7.0
- Migrate HttpStatus enum values to RFC 9110 names
- Migrate Jackson2ObjectMapperBuilder to mapper builder pattern
- Preserve DynamicDestinationResolver behavior for JmsTemplate
- Migrate ListenableFuture to CompletableFuture
- Migrate NoResourceFoundException constructor for Spring Framework 7.0
- Migrate ResponseEntity#getStatusCodeValue() to getStatusCode().value()
- Remove Kotlin nullability from Spring HTTP entity type arguments
- Remove spring-jcl dependency
- Rename MemberCategory field constants for Spring Framework 7.0
- Rename RequestContext.jstPresent to JSTL_PRESENT
- Replace JUnit 4 Spring test base classes with JUnit Jupiter annotations
- Simplify reflection hint registrations for Spring Framework 7.0
- Update GraalVM native reflection hints for Spring Framework 7.0
- Migrate to Spring Framework 7.0
- Wrap GenericMessage map argument in MessageHeaders
- Migrate defaultScrollSubrange(ScrollSubrange) to defaultScrollSubrange(int, Function)
- Migrate GraphQlArgumentBinder constructors to GraphQlArgumentBinder.Options
- Migrate setFallBackOnDirectFieldAccess to configureBinder
- Migrate HibernateDaoSupport#getSession() usage
- Migrate HibernateDaoSupport#getHibernateTemplate#saveOrUpdateAll
- Migrate Spring Integration XML attributes deprecated by Spring Integration 6.x
- Find @KafkaListener methods without error handling
- Find @RetryableTopic without @DltHandler
- Is likely a Kafka consumer module
- Migrate setExplicitShareAcknowledgment to setShareAckMode
- Find KafkaTemplate.send() with custom key
- Is likely a Kafka producer module
- Replace Kotlin property assignment with setter call
- Migrate to Spring ORM to 5
- Migrate from Acegi Security 1.0.x to Spring Security 5.0
- Migrate OAuth2RestTemplate beans to RestTemplate with an OAuth2 interceptor
- Migrate ResourceServerConfigurerAdapter to a SecurityFilterChain bean
- Migrate from Spring Security OAuth to Spring Security
- Migrate Spring Security OAuth clients to Spring Security
- Migrate Spring Security OAuth resource servers to Spring Security
- Migrate antPathRequestMatcher to pathPatternRequestMatcher
- Migrate to Spring Security 6.5
- Comment on Kotlin usages of SecurityContext.getAuthentication()
- Use constructor injection for DaoAuthenticationProvider
- Migrate MvcRequestMatcher to PathPatternRequestMatcher
- Migrate OAuth2AccessTokenResponseClient from RestOperations to RestClient based implementations
- Migrate OAuth2 token response client from RestOperations to RestClient
- Migrate requiresChannel() to redirectToHttps()
- Spring Security 7 modularization
- Migrate Spring WS Axiom to SAAJ
- Replace WsConfigurerAdapter with WsConfigurer
- Migrate to Spring WS 4.0
- Migrate to Spring WS 5.0
- Use Rfc6265CookieProcessor instead of LegacyCookieProcessor
io.moderne.recipe:rewrite-static-analysis0.4.0 · Proprietary
io.moderne.recipe:rewrite-tapestry0.10.0 · Proprietary
- Change Tapestry 4 packages to Tapestry 5
- Change Tapestry 4 types to Tapestry 5 equivalents
- Convert annotated abstract method to field
- Convert Tapestry 4 @Bean to @Property
- Convert Tapestry 4 listener interfaces to Tapestry 5 annotations
- Migrate Tapestry 4 to Tapestry 5
- Remove IRequestCycle parameters
- Remove obsolete Tapestry form types
- Remove Tapestry 4 base classes
- Replace ReverseComparator with Collections.reverseOrder()
- Update Tapestry dependencies
openrewrite8.96.2 · Proprietary
openrewrite-migrate-python0.19.0 · Proprietary
- Use a conditional expression for a simple if/else assignment
- Use augmented assignment
- Collapse self-cancelling ^ / - with duplicate operands to 0
- Collapse boolean ternary to bare condition
- Use chained comparison syntax
- Standardize @classmethod first parameter to cls
- Use comprehension syntax instead of list()/set() around generators
- Prefer set literals in in membership tests
- Substitute constant collection condition with boolean
- Use generator expression instead of list comprehension in iterable-accepting calls
- Rewrite any(v == literal ...) as literal in collection
- Migrate removed DataFrame.append() to pd.concat()
- Flatten negated logic via De Morgan's identities
- Use {} literal instead of dict() constructor
- Fold same-literal ==/!= comparisons to boolean constants
- Simplify identity comprehension to list()/set() call
- Standardize instance method first parameter to self
- Swap not all()/not any() by negating the comparison
- Apply De Morgan's law to any(not ...)/all(not ...)
- Use [] literal instead of list() constructor
- Consolidate repeated == with or into in
- Convert else: if to elif
- Merge isinstance() calls
- Merge nested with statements into one
- Merge multiple startswith()/endswith() calls into one
- Compare to None with identity operators (is / is not)
- Replace self-referencing ternary with or
- Python cleanup suite
- Chain exceptions with raise ... from in except blocks
- Delete no-op assert True statements
- Drop redundant .keys() on dict iteration
- Deduplicate repeated keys in dict literals
- Deduplicate repeated elements in set literals
- Delete if blocks whose body is only pass
- Remove redundant None default from dict.get()
- Drop a pass-only elif by negating its condition
- Eliminate boolean literal from and/or
- Unwrap unnecessary dict() from union operands
- Strip trailing continue from loop body
- Drop f prefix from strings without placeholders
- Simplify a negated elif to else
- Drop exists() check paired with is_dir()/is_file()
- Drop default slice boundaries
- Strip str() from f-string placeholders
- Unwrap str() from print() arguments
- Remove trailing return None from functions
- Drop unnecessary step 1 argument from range()
- Remove unnecessary assignment before return
- Drop else after an early-exit if branch
- Strip dead code after terminal statements
- Remove useless object inheritance
- Drop unnecessary 0 start argument from range()
- Convert apply('name') to a direct method invocation
- Replace getattr(x, 'attr') with x.attr
- Replace logger.warn() with logger.warning()
- Replace not x in y with x not in y
- Use is not instead of not ... is
- Replace setattr() with constant attribute assignment
- Replace Yoda conditions with normal comparisons
- Collapse if/else returning boolean literals
- Simplify sum(1 for x in items if cond) to sum(bool(cond) for x in items)
- Convert one-item dict.update() to bracket assignment
- Fold constants into f-string text
- Pass iterable directly to any()/all() instead of identity generator
- Replace len() emptiness check with truthiness
- Use negative index instead of len() offset
- Unwrap one-element exception tuple in except
- Replace .find() check with in / not in
- Rewrite self-multiplication as ** 2
- Prefer startswith/endswith over slice comparison
- Flip an empty if body by negating the condition
- Swap conditional expression branches to drop a negated condition
- Swap variables with tuple unpacking
- Replace the and/or idiom with a conditional expression
- Use () literal instead of tuple() constructor
- Unwrap tuple(), list() or set() around a collection literal
- Use datetime.now() instead of datetime.today()
- Use the | dict union instead of ** unpacking
- Use bracket access for re.Match groups
- Replace zip(d.keys(), d.values()) with d.items()
- Flatten for/else when the loop has no break
- Replace del x[:] with x.clear()
- Replace string slicing with removeprefix/removesuffix
- Remove conditional with identical branches
- Boolean checks should not be inverted
- Code quality
- Merge collapsible if statements
- Find suspicious chained comparisons
- Merge consecutive branches with identical bodies
- Remove duplicate conditions in if/elif chains
- Remove self-assignments
- Remove unconditional value overwrites
- Simplify boolean literal comparisons
- Simplify redundant logical expressions
OpenRewrite.Recipes.CSharp.CodeQuality0.12.0 · Proprietary
- Code quality
- Add newline after opening brace
- Add newline before return
- Add paragraph to documentation comment
- Add parameter name to documentation comment
- Add summary to documentation comment
- Add summary element to documentation comment
- Add 'typeparam' element to documentation comment
- Fix documentation comment tag
- Format accessor list
- Format documentation summary
- Format switch section
- Formatting code quality
- Invalid reference in a documentation comment
- Normalize whitespace
- Order elements in documentation comment
- Combine LINQ methods
- Find Count() comparison that could be optimized
- Use Where before OrderBy
- LINQ code quality
- Optimize LINQ Select().Average()
- Optimize LINQ Select().Max()
- Optimize LINQ Select().Min()
- Optimize LINQ Select().Sum()
- Optimize LINQ Where().Any()
- Optimize LINQ Where().Count()
- Optimize LINQ Where().LongCount()
- Optimize LINQ Where().First()
- Optimize LINQ Where().FirstOrDefault()
- Optimize LINQ Where().Last()
- Optimize LINQ Where().LastOrDefault()
- Optimize LINQ Where().Single()
- Optimize LINQ Where().SingleOrDefault()
- Remove useless OrderBy call
- Use Any() instead of Count() > 0
- Use Cast<T>() instead of Select with cast
- Use OrderByDescending().ThenByDescending()
- Use ThenBy instead of second OrderBy
- Use OrderBy().ThenByDescending()
- Use Order() instead of OrderBy() with identity
- Async method name should end with Async
- Attribute name should end with 'Attribute'
- EventArgs name should end with 'EventArgs'
- Exception name should end with 'Exception'
- Find TODO/HACK/FIXME comments
- Naming code quality
- Non-async method should not end with Async
- Parameter name should match base definition
- Rename parameter to camelCase
- Rename private field according to _camelCase convention
- Use nameof operator
- Avoid boxing of value type
- Avoid locking on publicly accessible instance
- Avoid NullReferenceException
- Bitwise operation on enum without Flags attribute
- Convert HasFlag to bitwise operation
- Do not pass non-read-only struct by read-only reference
- Do not use async void
- Find closure in GetOrAdd that could use factory argument
- Avoid closure when using ConcurrentDictionary
- Find closure in GetOrAdd/AddOrUpdate factory
- Find blocking calls in async methods
- Do not use blocking calls on tasks
- Do not use ToString on GetType result
- Find EqualityComparer<string>.Default usage
- Find GetType() called on System.Type
- Find implicit culture-sensitive string methods
- Find implicit culture-sensitive ToString calls
- Find LINQ methods replaceable with direct methods
- Find methods that could be static
- Find methods not forwarding CancellationToken
- Find structs without StructLayout attribute
- Add timeout to Regex
- Find missing WithCancellation on async enumerables
- Do not use NaN in comparisons
- Find LINQ Count() on materialized collection
- Find Guid.Parse with constant string
- Use char overload for single-character string methods
- Find Span<char> equality that should use SequenceEqual
- Find simplifiable string.Create calls
- Find unused Stream.Read return value
- Find FormattableString that could use string.Create
- String.Format format string should be constant
- Find string.GetHashCode() without StringComparer
- Find Dictionary/HashSet with struct key type
- Find GetCustomAttributes that could use Attribute.IsDefined
- Use ContainsKey instead of TryGetValue with discard
- Use RegexOptions.ExplicitCapture
- Find LINQ methods replaceable with indexer
- Find Regex that could use source generator
- Find calls that could use TimeProvider
- Find Values.Contains() instead of ContainsValue()
- Make parameter ref read-only
- Optimize method call
- Optimize StringBuilder.Append usage
- Performance code quality
- Replace Enum.ToString() with nameof
- Return completed task instead of null
- Throwing of new NotImplementedException
- Remove unnecessary explicit enumerator
- Use Array.Empty<T>() instead of new T[0]
- Use ContainsKey instead of Keys.Contains
- Use Count/Length property instead of Count()
- Use Regex.IsMatch
- Use StringBuilder.AppendLine
- Use StringComparison
- Use string.Concat instead of string.Join
- Remove if/else with identical branches
- File contains no code
- Find internal types that may be unused
- Redundancy code quality
- Remove argument list from attribute
- Remove braces from record declaration
- Remove duplicate conditions
- Find empty catch clause
- Remove empty destructor
- Remove empty finally clause
- Flag empty for loop body
- Remove empty foreach body
- Find empty syntax
- Remove empty while body
- Remove enum default underlying type
- Remove explicit 'class' from record
- Remove partial modifier from single-part type
- Remove redundant as operator
- Remove redundant assignment
- Remove redundant async/await
- Remove redundant constructor
- Remove redundant auto-property initialization
- Remove redundant base constructor call
- Remove redundant base interface
- Remove redundant cast
- Remove redundant catch block
- Remove redundant comma
- Remove redundant default field initialization
- Remove redundant default switch section
- Remove redundant delegate creation
- Remove redundant Dispose/Close call
- Remove redundant overriding member
- Remove redundant parentheses
- Remove redundant region
- Remove redundant sealed modifier
- Remove redundant 'sealed' modifier from override
- Remove redundant statement
- Remove redundant ToCharArray() call
- Remove redundant ToString() call
- Remove self-assignment
- Remove unconditional value overwrite
- Remove unnecessary case label
- Remove unnecessary else clause
- Remove unnecessary semicolon at end of declaration
- Unused element in documentation comment
- Remove unused member declaration
- Unused 'this' parameter
- Resource can be disposed asynchronously
- Unnecessary enum flag
- Remove unnecessary interpolated string
- Unnecessary interpolation
- Remove unnecessary null check
- Remove unnecessary null-forgiving operator
- Remove unnecessary raw string literal
- Remove unnecessary unsafe context
- Remove unnecessary verbatim string literal
- Use rethrow instead of throw ex
- Combine 'Enumerable.Where' method chain
- Convert anonymous method to lambda
- Convert 'if' to assignment
- Convert interpolated string to concatenation
- Expression is always true or false
- Inline lazy initialization
- Inline local variable
- Join string expressions
- Merge else with nested if
- Merge identical branches
- Merge if with parent if
- Merge switch sections with equivalent content
- Remove redundant boolean literal
- Remove unnecessary braces
- Simplification code quality
- Simplify argument null check
- Simplify boolean comparison
- Simplify coalesce expression
- Simplify code branching
- Simplify conditional expression
- Simplify do-while(true) to while(true)
- Simplify lazy initialization
- Simplify logical negation
- Simplify negated is null pattern
- Simplify nested using statement
- Simplify Nullable<T>.HasValue
- Simplify Nullable<T> to T?
- Simplify numeric comparison
- Simplify redundant logical expression
- Merge consecutive Where calls
- Unconstrained type parameter checked for null
- Operator is unnecessary
- Use anonymous function or method group
- Use coalesce expression
- Use coalesce expression instead of 'if'
- Use compound assignment
- Use conditional access
- Use conditional access instead of conditional expression
- Use conditional expression in declaration
- Use conditional return expression
- Use conditional throw expression
- Use DateTimeOffset.UnixEpoch
- Use DateTime.UnixEpoch
- Use default literal
- Use exception filter
- Use expression-bodied lambda
- Use for statement instead of while
- Use Guid.Empty
- Use 'is' operator instead of 'as' operator
- Use 'is' pattern instead of SequenceEqual
- Use 'not' pattern instead of negation
- Use pattern matching for equality comparison
- Use pattern matching for inequality comparison
- Use pattern matching instead of as
- Use pattern matching instead of HasValue
- Use pattern matching instead of is
- Use pattern matching for null check
- Use postfix increment/decrement
- Use range operator
- Use short-circuit operator
- Use string.EndsWith
- Use string.Equals instead of == for string comparison
- Use string interpolation instead of string.Format
- Use string interpolation instead of concatenation
- Use string.StartsWith instead of IndexOf comparison
- Use switch expression
- Use throw expression
- Use TimeSpan.Zero
- Use ^ operator for boolean inequality
- Abstract type should not have public constructors
- Add parentheses for clarity
- Add parentheses to conditional expression condition
- Add trailing comma to last enum member
- Add static modifier to all members of static class
- Add trailing comma
- Avoid chain of assignments
- Avoid nested ternary operator
- Call extension method as instance method
- Composite enum value contains undefined flag
- Place constant values on right side of comparisons
- Convert comment to documentation comment
- Declare each attribute separately
- Declare each type in separate file
- Declare each type in separate file
- Declare enum member with zero value
- Declare enum value as combination of names
- Declare using directive on top level
- Default label should be last
- Flag duplicate enum value
- Duplicate word in a comment
- Enum should declare explicit values
- ArgumentException should specify argument name
- Find async void method
- Find async void delegate
- Do not use anonymous delegates to unsubscribe from events
- Find unawaited task return in using block
- Find binary expression with identical sides
- Find class with Equals(T) but no IEquatable<T>
- Find CompareTo without IComparable
- Do not use dangerous threading methods
- Find [DefaultParameterValue] without [Optional]
- Find virtual method call in constructor
- Find comparison with NaN
- Find type with BCL name
- Find static members on generic types
- Find overwritten parameter values
- Find null passed for CancellationToken
- Do not raise ApplicationException
- Do not throw NotImplementedException
- Do not raise reserved exception types
- Find throw statements in finalizer
- Do not throw from finally block
- Do not write custom certificate validation
- Find EqualityComparer<string>.Default
- Find GetType() on Type instance
- Find ToString on object-typed parameter
- Find Thread.Sleep usage
- Find string.GetHashCode() usage
- Embed caught exception as inner exception
- Find explicit zero initialization in enum
- Find Equals without [NotNullWhen(true)]
- Find event raised with null EventArgs
- Find await foreach without CancellationToken
- Find IComparable without comparison operators
- Find IComparable<T> without IEquatable<T>
- Find IEquatable<T> without Equals(object) override
- Find if/else with identical branches
- Find ILogger<T> type parameter mismatch
- Find missing non-generic interface implementation
- Find implicit culture-sensitive ToString in concatenation
- Find implicit DateTime to DateTimeOffset conversion
- Find interpolated string without parameters
- Find potentially invalid attribute argument type
- Find IAsyncEnumerable method without Async suffix
- Find method that is too long
- Find async call missing CancellationToken
- Find boolean literal arguments without parameter name
- Find override method missing params keyword
- Find string method missing StringComparison
- Find missing string equality comparer
- Find multi-line XML doc comments
- Non-constant static fields should not be visible
- Find non-deterministic end-of-line in strings
- Find non-flags enum with [Flags]
- Find missing NotNullIfNotNull attribute
- Find unobserved async call result
- Obsolete attribute should include explanation
- Find overrides that change parameter defaults
- Find concrete collection in public API
- Find reassigned primary constructor parameter
- Find raw string with implicit end of line
- Find struct member that could be readonly
- Find redundant default argument values
- Find static event with non-null sender
- Find multi-line XML doc comment style
- Find equality operator on Span<T>
- Find Stream.Read() return value ignored
- Find non-constant string.Format format string
- Find unawaited task in using statement
- Do not use ThreadStatic on instance fields
- Find ThrowIfNull with value type argument
- Find type name matching namespace
- Types should not extend ApplicationException
- Find redundant nameof with CallerArgumentExpression
- Find DateTime.Now/UtcNow usage
- Find ToString override without DebuggerDisplay
- Find [DefaultValue] on parameter
- Find ElementAt() that could use indexer
- Find == comparison that should use Equals()
- Find integer 0 used instead of named enum value
- Find Parse/ToString without IFormatProvider
- Find Parse/TryParse without IFormatProvider
- Find missing langword in XML comment
- Find Interlocked.CompareExchange lazy init pattern
- Find collection emptiness check
- Find boolean literal argument without name
- Use OperatingSystem methods instead of RuntimeInformation
- Find Process.Start with string argument
- Find implicit record class declaration
- Find Regex without ExplicitCapture option
- Find redirect without UseShellExecute=false
- Find ProcessStartInfo without UseShellExecute
- Find Dictionary/HashSet without StringComparer
- Find FormattableString usage
- Find 'is' pattern with string literal
- Use System.Threading.Lock instead of object for locking
- Find double await pattern
- Find custom time abstraction
- Find argument validation in iterator method
- Implement exception constructors
- Implement non-generic counterpart
- Fix invalid argument null check
- Make class sealed
- Make class static
- Make field read-only
- Make method an extension method
- Mark local variable as const
- Mark type with DebuggerDisplay attribute
- Merge preprocessor directives
- Normalize format of enum flag value
- Order modifiers
- Order named arguments by parameters
- Order type parameter constraints
- Overriding member should not change 'params' modifier
- Parameter name differs from base
- Parenthesize not pattern for clarity
- Prefer null check over type check
- Simplify boolean logic with constants
- Sort enum members
- Split variable declaration
- Static member in generic type should use a type parameter
- Style code quality
- Remove unused parameter
- Remove unused type parameter
- Use async/await when necessary
- Use AttributeUsageAttribute
- Use auto property
- Use block body or expression body
- Use coalesce expression
- Use collection expression
- Use constant instead of field
- Use element access
- Use enum field explicitly
- Use EventArgs.Empty
- Use EventArgs.Empty instead of null
- Use EventHandler<T>
- Use explicitly typed array
- Use explicit type instead of var
- Use file-scoped namespace
- Use method chaining
- Use method group conversion
- Use predefined type
- Use primary constructor
- Use read-only auto property
- Use string.Contains instead of IndexOf comparison
- Use string.IsNullOrEmpty method
- Use string.Length instead of comparison with empty string
- Use 'this' for event sender
- Use using declaration
- Use var instead of explicit type in foreach
- Use 'var' or explicit type
- Validate arguments correctly
- Value type is never equal to null
- Add [AttachedPropertyBrowsableForType]
- Add [ConstructorArgument]
- Add default field to converter
- Add MarkupExtensionReturnType attribute
- Add [TemplatePart] for a looked-up template part
- Add ValueConversion attribute
- XmlnsDefinitions should map all namespaces with public types
- Cast the sender of a dependency property callback to the containing type
- Cast the sender of a dependency property callback to the correct type
- Cast the value of a dependency property callback to the correct type
- Cast the value of a dependency property callback to the exact type
- Convert an auto-property to a dependency property
- Convert a dependency property to a read-only dependency property
- Convert a CLR event to a routed event
- Convert a trivial dependency property callback to a lambda
- DependencyPropertyKey member must be declared before DependencyProperty member
- Accessor method for attached property should have standard documentation text
- Backing member for DependencyProperty should have standard documentation text
- Property changed callback should have standard documentation text
- Backing member for RoutedEvent should have standard documentation text
- Use containing type
- Default value type must match registered type
- Target of [DependsOn] should exist
- Call AddHandler in add
- Use same event in add and remove
- Use the registered handler type
- Call RemoveHandler in remove
- ContentProperty should name an existing property
- StyleTypedProperty should be specified for a Style property
- Metadata must be of the same type or a super type
- Registered owner type must inherit DependencyObject
- SetValue must use the registered type
- Default value is a shared reference type
- Avoid side effects in attached property CLR accessors
- Avoid side effects in CLR accessors
- Add ValueConversion attribute (unknown types)
- XmlnsDefinition must map to an existing namespace
- XmlnsPrefix must map to the same url as XmlnsDefinition
- Declare the coerce and validate callback value parameter nullable
- Backing member for a DependencyProperty should be static and readonly
- Backing member for a RoutedCommand should be static and readonly
- Backing member for a RoutedEvent should be static and readonly
- Containing type should be used as registered owner
- Register a name and an owning type for a RoutedCommand
- Name the AddHandler/RemoveHandler callback OnEventName
- CLR method for a DependencyProperty must match registered name
- CLR property for a DependencyProperty should match registered name
- Name the CoerceValueCallback CoerceName
- Backing member for a DependencyProperty should match registered name
- Backing member for a DependencyPropertyKey should match registered name
- Name of the event should match registered name
- Name the PropertyChangedCallback OnNameChanged
- Name the RegisterClassHandler callback OnEventName
- Backing member for a RoutedEvent should match registered name
- Name the ValidateValueCallback ValidateName
- Use the declared [TemplatePart] type
- StyleTypedProperty.Property must exist
- Use the PART_ prefix for template part names
- Use same dependency property in get and set
- StyleTypedProperty.Property should name a Style property
- StyleTypedProperty.Property should be specified
- StyleTypedProperty.StyleTargetType should be specified
- StyleTypedProperty.StyleTargetType should support styling
- StyleTypedProperty.Property should be specified only once
- Register the containing member as the name for a RoutedCommand
- Use the containing member as the key when creating a ComponentResourceKey
- Containing type should be used as registered owner
- Register the containing type as the owner for a RoutedCommand
- Use the containing type when creating a ComponentResourceKey
- Use containing type
- Use correct argument for [AttachedPropertyBrowsableForType]
- [ConstructorArgument] must match
- MarkupExtensionReturnType must use correct return type
- ValueConversion must use correct types
- Set a readonly DependencyProperty using its DependencyPropertyKey
- Use nameof() instead of a constant
- Use nameof() instead of a string literal
- Use the registered routed event handler type
- CLR accessor for attached property must match registered type
- CLR property type should match registered type
- Set a mutable dependency property using SetCurrentValue
- Do not set DataContext or Style using SetCurrentValue
- Use SetValue in setter
- WPF code quality
- Target of [XamlSetMarkupExtension] should exist and have correct signature
- Target of [XamlSetTypeConverter] should exist and have correct signature
OpenRewrite.Recipes.CSharp.Core0.12.0 · Proprietary
- Add framework reference
- Add NuGet package reference
- Change .NET target framework
- Convert packages.config to <PackageReference>
- Ensure csproj attestation
- Find NuGet package reference
- List .NET dependencies (SBOM)
- Remove DotNetCliToolReference
- Remove MSBuild property
- Remove NuGet package reference
- Upgrade NuGet package version
- Change XML attribute value
- Change XML CharData text
OpenRewrite.Recipes.CSharp.Migration.Dotnet0.12.0 · Proprietary
- Add NuGet package reference when namespace is used
- Migrate ASP.NET Framework to ASP.NET Core
- Find BuildWebHost method
- Find IAuthenticationManager usage
- Find SetCompatibilityVersion() calls
- Find UseKestrel() with configuration
- Migrate to ASP.NET Core 2.0
- Migrate to ASP.NET Core 2.1
- Migrate to ASP.NET Core 2.2
- Use GetExternalAuthenticationSchemesAsync()
- Use HttpContext authentication extensions
- Replace UseIdentity() with UseAuthentication()
- Find AddMvc() calls
- Find IApplicationLifetime usage
- Find IHostingEnvironment usage
- Find Newtonsoft.Json usage in ASP.NET Core
- Find UseMvc()/UseSignalR() calls
- Find WebHostBuilder usage
- Migrate to ASP.NET Core 3.0
- Use LoggerFactory.Create(...) instead of new LoggerFactory()
- Change method name
- Change type
- Delete method argument
- Find csproj MSBuildProject marker presence
- Find obsolete IActionContextAccessor/ActionContextAccessor (ASPDEPR006)
- Find ActivitySamplingResult.PropagationData behavior change
- Find BackgroundService.ExecuteAsync behavior change
- Find BufferedStream.WriteByte implicit flush behavior change
- Find obsolete Clipboard.GetData calls (WFDEV005)
- Find DistributedContextPropagator default propagator change
- Find DllImportSearchPath.AssemblyDirectory behavior change
- Find DriveInfo.DriveFormat behavior change
- Find obsolete Form.OnClosing/OnClosed usage (WFDEV004)
- Find GnuTarEntry/PaxTarEntry default timestamp change
- Find obsolete IPNetwork/KnownNetworks (ASPDEPR005)
- Find KeyedService.AnyKey behavior change
- Find Type.MakeGenericSignatureType validation change
- Find obsolete Queryable.MaxBy/MinBy with IComparer<TSource> (SYSLIB0061)
- Find obsolete AddRazorRuntimeCompilation calls (ASPDEPR003)
- Find obsolete Rfc2898DeriveBytes constructors (SYSLIB0060)
- Find obsolete SSL authentication enum types
- Find obsolete SslStream cipher properties (SYSLIB0058)
- Find catch (OutOfMemoryException) that may need ExternalException
- Find obsolete SystemEvents.EventsThreadShutdown (SYSLIB0059)
- Find obsolete WebHostBuilder/IWebHost/WebHost usage (ASPDEPR004/ASPDEPR008)
- Find obsolete Windows Forms APIs (WFDEV004/005/006)
- Find deprecated WithOpenApi calls (ASPDEPR002)
- Find X500DistinguishedName string constructor stricter validation
- Find obsolete XsltSettings.EnableScript (SYSLIB0062)
- Rename Form.OnClosing/OnClosed to OnFormClosing/OnFormClosed (WFDEV004)
- Rename orient parameter to orientation in HtmlElement.InsertAdjacentElement
- Rename KnownNetworks to KnownIPNetworks (ASPDEPR005)
- Rename MLDsa/SlhDsa SecretKey members to PrivateKey
- Remove obsolete AddRazorRuntimeCompilation calls (ASPDEPR003)
- Migrate to .NET 10
- Remove deprecated WithOpenApi calls (ASPDEPR002)
- Find CompactOnMemoryPressure usage (removed in ASP.NET Core 3.0)
- Find IConnectionAdapter usage (removed in ASP.NET Core 3.0)
- Find HttpContext.Authentication usage (removed in ASP.NET Core 3.0)
- Find Newtonsoft.Json usage
- Find obsolete localization APIs (ASP.NET Core 3.0)
- Find SpaServices/NodeServices usage (obsolete in ASP.NET Core 3.0)
- Find synchronous IO usage (disabled in ASP.NET Core 3.0)
- Find UseMvc/AddMvc usage (replaced in ASP.NET Core 3.0)
- Find WebHostBuilder/WebHost.CreateDefaultBuilder usage (replaced in ASP.NET Core 3.0)
- Migrate to .NET Core 3.0
- Migrate ApiController to ControllerBase
- Replace PlatformServices with AppContext
- Find SameSiteMode.None usage (behavior changed in .NET Core 3.1)
- Migrate to .NET Core 3.1
- Convert static Main entry point to top-level statements
- Find Code Access Security usage (obsolete in .NET 5)
- Find PrincipalPermissionAttribute usage (SYSLIB0003)
- Find Encoding.UTF7 usage (SYSLIB0001)
- Find WinHttpHandler usage (removed in .NET 5)
- Find WinRT interop usage (removed in .NET 5)
- Migrate to .NET 5
- Cast RedisValue to string for JsonSerializer.Deserialize
- Find Assembly.CodeBase/EscapedCodeBase usage (SYSLIB0012)
- Find JsonSerializerOptions.IgnoreNullValues usage (SYSLIB0020)
- Find Thread.Abort usage (SYSLIB0006)
- Find WebRequest/HttpWebRequest/WebClient usage (SYSLIB0014)
- Find X509Certificate2.PrivateKey usage (SYSLIB0028)
- Replace internal FormattedLogValues with a type alias
- Migrate to .NET 6
- Use factory method for abstract cryptographic types
- Use Environment.CurrentManagedThreadId
- Use Environment.ProcessId
- Use Environment.ProcessPath
- Use LINQ DistinctBy()
- Use LINQ MaxBy() and MinBy()
- Use Random.Shared
- Use string.Contains(char) overload
- Use string.StartsWith(char)/EndsWith(char) overload
- Use ArgumentNullException.ThrowIfNull()
- Find obsolete SslProtocols.Tls/Tls11 usage (SYSLIB0039)
- Find insecure Rfc2898DeriveBytes constructors (SYSLIB0041)
- Migrate to .NET 7
- Use LINQ Order() and OrderDescending()
- Use ArgumentOutOfRangeException.ThrowIfNegative()
- Use ArgumentOutOfRangeException.ThrowIfNegativeOrZero()
- Use ArgumentException.ThrowIfNullOrEmpty()
- Find JsonSerializerOptions.AddContext usage (SYSLIB0049)
- Find AesGcm constructor without tag size (SYSLIB0053)
- Find formatter-based serialization types (SYSLIB0050/0051)
- Find ToImmutable*() that could use Frozen collections
- Find Regex.CompileToAssembly usage (SYSLIB0052)
- Find legacy serialization constructors (SYSLIB0051)
- Find DateTime.Now/UtcNow usage (TimeProvider in .NET 8)
- Migrate to .NET 8
- Use ArgumentOutOfRangeException.ThrowIfGreaterThan()
- Use ArgumentOutOfRangeException.ThrowIfLessThan()
- Use ArgumentException.ThrowIfNullOrWhiteSpace()
- Use ArgumentOutOfRangeException.ThrowIfZero()
- Use TimeProvider instead of DateTime/DateTimeOffset static properties
- Find LINQ ambiguities introduced by .NET 9 IAsyncEnumerable extensions
- Find AuthenticationManager usage (SYSLIB0009)
- Find BinaryFormatter usage (removed in .NET 9)
- Find BinaryReader.ReadString behavior change
- Find IDistributedCache usage (HybridCache in .NET 9)
- Find EnumConverter constructor validation change
- Find synchronous ExecuteUpdate/ExecuteDelete (EF Core 9)
- Find HttpClientHandler usage (HttpClientFactory default change)
- Find HttpListenerRequest.UserAgent nullable change
- Find implicit authentication default scheme (ASP.NET Core 9)
- Find IncrementingPollingCounter async callback change
- Find InMemoryDirectoryInfo rootDir prepend change
- Find JsonSerializer.Deserialize nullable JsonDocument change
- Find non-generic JsonStringEnumConverter
- Find RuntimeHelpers.GetSubArray return type change
- Find SafeEvpPKeyHandle.DuplicateHandle up-ref change
- Find ServicePointManager usage (SYSLIB0014)
- Find Swashbuckle usage (ASP.NET Core 9 built-in OpenAPI)
- Find obsolete X509Certificate2/X509Certificate constructors (SYSLIB0057)
- Find ZipArchive.CreateEntry with CompressionLevel (bit flag change)
- Find ZipArchiveEntry name/comment UTF-8 encoding change
- Migrate Swashbuckle to built-in OpenAPI
- Remove ConfigureAwait(false)
- Migrate to .NET 9
- Use \e escape sequence
- Use Frozen collections instead of Immutable
- Use Guid.CreateVersion7()
- Use LINQ AggregateBy()
- Use LINQ CountBy()
- Use LINQ Index()
- Use System.Threading.Lock for lock fields
- Use MapStaticAssets()
- Use Task.CompletedTask
- Use Volatile.Read/Write (SYSLIB0054)
- Use X509CertificateLoader (SYSLIB0057)
- Add override to DbParameter.Precision/Scale
- Find CurrentCulture/CurrentUICulture async flow change
- Find ClaimsIdentity Actor clone-on-copy change
- Find DataContractJsonSerializer usage (control-char escaping change)
- Find DataObject usage (HTML clipboard now UTF-8)
- Find DeflateStream/GZipStream usage (native decompression)
- Find managed crypto classes (FIPS mode behavior change)
- Find HttpRuntime.AppDomainAppPath (exception type change)
- Find Icon.ToBitmap usage (PNG-frame behavior change)
- Find List<T>.ForEach modification-during-enumeration change
- Find obsolete 5-argument EncoderParameter constructor
- Find obsolete MachineKey.Encode/Decode
- Find obsolete System.Workflow.* (WF 3.x) usage
- Find System.IO.Path normalization change
- Find RSACng usage (non-standard key size behavior)
- Find SerialPort usage (background-thread exception behavior)
- Find ServiceBase.Run usage (OnStart exception propagation)
- Find ServicePointManager TLS configuration
- Find SignedXml/CmsSigner usage (default hash SHA-1 → SHA-256)
- Find SslStream usage (TLS alert behavior change)
- Find System.Uri construction (RFC 3986/3987 parsing change)
- Find WPF Grid usage (star-column allocation change)
- Find XmlWriter invalid-surrogate-pair change
- Find ZipFile/ZipArchiveEntry usage (path separator change)
- Retarget .NET Framework 4.0 to 4.5
- Retarget .NET Framework 4.5 to 4.5.1
- Retarget .NET Framework 4.5.1 to 4.5.2
- Retarget .NET Framework 4.5.2 to 4.6
- Retarget .NET Framework 4.6 to 4.6.1
- Retarget .NET Framework 4.6.1 to 4.6.2
- Retarget .NET Framework 4.6.2 to 4.7
- Retarget .NET Framework 4.7 to 4.7.1
- Retarget .NET Framework 4.7.1 to 4.7.2
- Retarget to .NET Framework 4.8
- Retarget to .NET Framework 4.8.1
- Convert classic csproj to SDK-style (net48)
- Find Entity Framework usage
- Find WCF (System.ServiceModel) usage
- Find ASP.NET Web Forms usage
- Migrate packages.config to <PackageReference> (net48)
- Modernize .NET Framework 4.8 project (SDK + PackageReference)
- Remove method invocations
- Remove .njsproj projects from solution
OpenRewrite.Recipes.CSharp.Migration.TUnit0.12.0 · Proprietary
- Add async Task to methods containing await
- Find IAsyncLifetime needing TUnit migration
- Change xUnit using directives to TUnit
- Find IClassFixture<T> needing TUnit migration
- Replace ICollectionFixture<T> with [ClassDataSource<T>]
- Replace [Collection] with [NotInParallel]
- Find test constructors needing [Before(Test)]
- Replace IDisposable with [After(Test)]
- Extract Skip into [Skip] attribute
- Extract Timeout into [Timeout] attribute
- Replace [Fact] with [Test]
- Replace [InlineData] with [Arguments]
- Replace [MemberData] with [MethodDataSource]
- Migrate from xUnit to TUnit
- Migrate xUnit attributes to TUnit
- Migrate xUnit assertions to TUnit
- Migrate xUnit NuGet dependencies to TUnit
- Find ITestOutputHelper needing TUnit migration
- Replace [Theory] with [Test]
- Replace [Trait("Category", ...)] with [Category]
- Replace [Trait] with [Property]
org.openrewrite.recipe:rewrite-all1.33.0 · Apache 2.0
org.openrewrite.recipe:rewrite-android0.23.0 · Proprietary
- Change Android SDK version
- Migrate to Android Gradle Plugin 7.2
- Migrate to Android Gradle Plugin 7.3
- Migrate to Android Gradle Plugin 7.4
- Migrate to Android Gradle Plugin 8.0
- Migrate to Android Gradle Plugin 8.1
- Migrate to Android Gradle Plugin 8.10
- Migrate to Android Gradle Plugin 8.11
- Migrate to Android Gradle Plugin 8.12
- Migrate to Android Gradle Plugin 8.13
- Migrate to Android Gradle Plugin 8.2
- Migrate to Android Gradle Plugin 8.3
- Migrate to Android Gradle Plugin 8.4
- Migrate to Android Gradle Plugin 8.5
- Migrate to Android Gradle Plugin 8.6
- Migrate to Android Gradle Plugin 8.7
- Migrate to Android Gradle Plugin 8.8
- Migrate to Android Gradle Plugin 8.9
- Migrate to Android Gradle Plugin 9.0
- Migrate to Android Gradle Plugin 9.1
- Migrate to Android Gradle Plugin 9.2
- Remove buildToolsVersion
- Rename aaptOptions to androidResources
- Rename lintOptions to lint
- Upgrade to Android SDK 33
- Upgrade to Android SDK 34
- Upgrade to Android SDK 35
- Upgrade to Android SDK 36
org.openrewrite.recipe:rewrite-apache2.37.0 · MSAL
- Apache best practices
- Apache Commons best practices
- Prefer java.util.Base64
- Replace CollectionUtils.cardinality with IterableUtils.frequency
- Migrates to Apache Commons Collections 4.x
- ApacheCommonsFileUtils Refaster recipes
- Replace FileUtils.getFile(String...) with JDK provided API
- Replace FileUtils.readFileToString(File) with FileUtils.readFileToString(File, StandardCharsets.UTF_8)
- Replace FileUtils.readLines(File) with FileUtils.readLines(File, StandardCharsets.UTF_8)
- Replace FileUtils.write(File, CharSequence, boolean) with FileUtils.write(File, CharSequence, StandardCharsets.UTF_8, boolean)
- Replace FileUtils.writeStringToFile(File, String, boolean) with FileUtils.writeStringToFile(File, String, StandardCharsets.UTF_8, boolean)
- Replace FileUtils.writeStringToFile(File, String) with JDK provided API
- Replace FileUtils.write(File, CharSequence) with FileUtils.write(File, CharSequence, StandardCharsets.UTF_8, false)
- Prefer java.nio.file.Files
- Use IOUtils method that include their charset encoding
- Relocate org.apache.commons:commons-io to commons-io:commons-io
- Prefer java.nio.charset.StandardCharsets
- Prefer System.lineSeparator()
- ApacheCommonsStringUtils Refaster recipes
- Replace StringUtils.abbreviate(String, int) with JDK provided API
- Replace StringUtils.capitalize(String) with JDK provided API
- Replace StringUtils.defaultString(String, String) with JDK provided API
- Replace StringUtils.defaultString(String) with JDK provided API
- Replace StringUtils.deleteWhitespace(String) with JDK provided API
- Replace StringUtils.equalsIgnoreCase(CharSequence, CharSequence) with JDK provided API
- Replace StringUtils.equals(CharSequence, CharSequence) with JDK provided API
- Replace StringUtils.lowerCase(String) with JDK provided API
- Replace StringUtils.removeEnd(String, String) with JDK provided API
- Remove redundant null check when using StringUtils.isNotBlank(String)
- Replace StringUtils.replace(String, String, String) with JDK provided API
- Replace StringUtils.reverse(String) with JDK provided API
- Replace StringUtils.split(String) with JDK provided API
- Replace StringUtils.join(Iterable<? extends CharSequence>, String) with JDK provided API
- Replace StringUtils.strip(String) with JDK provided API
- Replace StringUtils.trim(String) with JDK provided API
- Replace StringUtils.trimToEmpty(String) with JDK provided API
- Replace StringUtils.trimToNull(String) with JDK provided API
- Replace StringUtils.upperCase(String) with JDK internals
- Replace StringUtils#defaultIfBlank(String, String) with JDK equivalent
- Replace any StringUtils#isBlank(String) and #isNotBlank(String)
- Replace any StringUtils#isEmpty(String) and #isNotEmpty(String)
- Parameterize raw StrLookup subclasses
- Replace SystemUtils#isJavaVersionAtLeast(float) and (int) with the JavaVersion overload
- Migrates to Apache Commons Lang 3.x
- Migrate WordUtils to Apache Commons Text
- Migrate deprecated SystemUtils constants
- Prefer java.nio.charset.StandardCharsets
- Migrates to Apache Commons Math 3.x
- Prefer the Java standard library instead of Apache Commons
- Maps deprecated classes from Apache HttpClient 4.5.x to suggested replacements
- Migrates deprecated DefaultHttpClient
- Migrates to ApacheHttpClient 4.5.x
- Adds a TimeUnit argument to the matched method invocations
- Changes an argument (or pair of arguments) to a TimeValue for matched method invocations
- Migrate clear to ApacheHttpClient 5.x CredentialsStore
- Migrate setCredentials to ApacheHttpClient 5.x CredentialsStore
- Inline hoisted locals used by new BasicAsyncRequestProducer(...)
- Adds offset and length arguments to the read method of SharedInputBuffer
- Migrate AuthScheme credential handling
- Replaces AuthScope.ANY
- Migrate AuthState to AuthExchange
- Migrate BasicAsyncRequestProducer to AsyncRequestBuilder
- Migrate HttpAsyncMethods factory calls to HttpClient 5.x
- Migrate PoolingNHttpClientConnectionManager to PoolingAsyncClientConnectionManager
- Migrate RequestConfig to httpclient5
- Migrate deprecated SSLConnectionSocketFactory to DefaultClientTlsStrategy
- Move StringEntity content encoding into its constructor
- Replace new StringEntity(String, String) with new StringEntity(String, Charset)
- Replaces deprecated HttpRequestBase::getRequestLine()
- Replaces deprecated HttpResponse::getStatusLine()
- Adds offset and length arguments to the write method of SharedOutputBuffer
- Remove ByteBufferAllocator implementations
- Migrate to ApacheHttpClient 5.x deprecated methods from 4.x
- Migrate to ApacheHttpClient 5.x
- Migrate Apache HttpAsyncClient 4.x classes to HttpClient 5.x
- Migrate to ApacheHttpClient 5.x Classes Namespace from 4.x
- Migrate to ApacheHttpClient 5.x deprecated methods from 4.x
- Adds TimeUnit to timeouts and duration methods
- Migrate from org.apache.httpcomponents to ApacheHttpClient 5.x dependencies
- Migrate to Apache HttpCore Nio Classes to Apache HttpCore 5.x
- Migrate Apache HttpCore Nio Input Buffer classes to Apache HttpCore 5.x
- Migrate Apache HttpCore Nio Output Buffer classes to Apache HttpCore 5.x
- Migrate to Apache HttpCore Nio Util Classes to Apache HttpCore 5.x
- Migrate from httpcore-nio to ApacheHttpClient 5.x core dependency
- Use PoolingAsyncClientConnectionManagerBuilder for configuration
- Migrate UsernamePasswordCredentials to httpclient5
- MavenSharedStringUtils Refaster recipes
- Replace StringUtils.abbreviate(String, int) with JDK provided API
- Replace StringUtils.capitalise(String) with JDK provided API
- Replace StringUtils.defaultString(Object, String) with JDK provided API
- Replace StringUtils.defaultString(Object) with JDK provided API
- Replace StringUtils.deleteWhitespace(String) with JDK provided API
- Replace StringUtils.equalsIgnoreCase(String, String) with JDK provided API
- Replace StringUtils.equals(String, String) with JDK provided API
- Replace StringUtils.lowerCase(String) with JDK provided API
- Replace StringUtils.replace(String, String, String) with JDK provided API
- Replace StringUtils.reverse(String) with JDK provided API
- Replace StringUtils.split(String) with JDK provided API
- Replace StringUtils.strip(String) with JDK provided API
- Replace StringUtils.trim(String) with JDK provided API
- Replace StringUtils.upperCase(String) with JDK provided API
- Replace Font.setBoldweight(short) with Font.setBold(boolean)
- Apache POI use Cell.setCellType(CellType)
- Migrates to Apache POI 3.17
- Migrates to Apache POI 4.1.2
- Migrates to Apache POI 5.x
- Migrate from Plexus AbstractLogEnabled to SLF4J
- PlexusFileUtils Refaster recipes
- Replace FileUtils.deleteDirectory(File) with JDK provided API
- Replace FileUtils.deleteDirectory(String) with JDK provided API
- Replace FileUtils.fileExists(String) with JDK provided API
- Replace FileUtils.getFile(String) with JDK provided API
- PlexusStringUtils Refaster recipes
- Replace StringUtils.abbreviate(String, int) with JDK provided API
- Replace StringUtils.capitalise(String) with JDK provided API
- Replace StringUtils.defaultString(Object, String) with JDK provided API
- Replace StringUtils.defaultString(Object) with JDK provided API
- Replace StringUtils.deleteWhitespace(String) with JDK provided API
- Replace StringUtils.equalsIgnoreCase(String, String) with JDK provided API
- Replace StringUtils.equals(String, String) with JDK provided API
- Replace StringUtils.lowerCase(String) with JDK provided API
- Replace StringUtils.replace(String, String, String) with JDK provided API
- Replace StringUtils.reverse(String) with JDK provided API
- Replace StringUtils.split(String) with JDK provided API
- Replace StringUtils.strip(String) with JDK provided API
- Replace StringUtils.trim(String) with JDK provided API
- Replace StringUtils.upperCase(String) with JDK provided API
org.openrewrite.recipe:rewrite-circleci3.16.0 · Proprietary
org.openrewrite.recipe:rewrite-compiled-analysis0.19.0 · Proprietary
org.openrewrite.recipe:rewrite-concourse3.15.0 · Proprietary
org.openrewrite.recipe:rewrite-cucumber-jvm2.23.0 · MSAL
- Collapse @CucumberOptions tags into a single tag expression
- Replace @Cucumber with @Suite
- Migrate cucumber.api to io.cucumber
- Replace cucumber-java8 hook definition with cucumber-java
- Replace cucumber-java8 step definitions with cucumber-java
- Migrate cucumber-java8 to cucumber-java
- Replace cucumber-java8 type definitions with cucumber-java
- Migrate the cucumber.options property
- Migrate cucumber.api.CucumberOptions to io.cucumber.testng.CucumberOptions
- Cucumber JUnit 4 @RunWith(Cucumber.class) to JUnit Platform @Suite
- Cucumber to JUnit test @Suite
- Drop StrictAware
- Drop the strict option
- Drop SummaryPrinter
- Drop the timeout attribute
- Fix the Telugu language code
- Migrate io.cucumber.java8.Scenario and io.cucumber.java8.Status
- Migrate RuntimeOptionsBuilder
- Migrate Scenario.write and Scenario.embed
- Replace cucumber-java step definition regexes with Cucumber expressions
- Remove cucumber-java8 once nothing is left needing it
- Replace TypeRegistryConfigurer with cucumber-java annotations
- Upgrade to Cucumber-JVM 2.x
- Upgrade to Cucumber-JVM 5.x
- Upgrade to Cucumber-JVM 6.x
- Upgrade to Cucumber-JVM 7.x
org.openrewrite.recipe:rewrite-dotnet0.21.0 · Proprietary
- Migrate .NET install URLs from retiring Azure CDN domains
- Upgrade to .NET 6.0 using upgrade-assistant
- Upgrade to .NET 7.0 using upgrade-assistant
- Upgrade to .NET 8.0 using upgrade-assistant
- Upgrade to .NET 9.0 using upgrade-assistant
- Upgrade a .NET project using upgrade-assistant
- Analyze a .NET project using upgrade-assistant
org.openrewrite.recipe:rewrite-github-actions3.36.0 · MSAL
- Add cron workflow trigger
- Add cooldown periods to Dependabot configuration
- Add open-pull-requests-limit to Dependabot configuration
- Add manual workflow trigger
- Add merge_group workflow trigger
- Cancel in-progress workflow when it is triggered again
- Change GitHub Action
- Change GitHub Action version
- Change dependabot schedule interval
- Check for github-actions updates daily
- Check for github-actions updates weekly
- Find GitHub action secret references
- Find jobs missing timeout
- GitHub Actions best practices
- Rename gradle/gradle-build-action to gradle/actions/setup-gradle
- Rename gradle/wrapper-validation-action to gradle/actions/wrapper-validation
- Is GitHub Action definition
- Is GitHub Actions workflow or action definition
- Is GitHub Actions Workflow
- Migrate astral-sh/setup-uv from v6 to v7
- Migrate from tibdex/github-app-token to actions/create-github-app-token
- Prefer block style for job dependencies
- Use actions/setup-java temurin distribution as they are cached in hosted runners
- Remove all cron triggers
- Remove a runner from a job
- Remove unused workflow dispatch inputs
- Remove workflow input argument
- Replace always() with success() || failure()
- Replace Dependabot reviewers with CODEOWNERS
- Replace OSSRH secrets with Sonatype secrets
- Replace runners for a job
- Replace secret key names in GitHub Actions
- Replace GitHub Action secret names
- Find jobs without descriptive names
- Find credential persistence through GitHub Actions artifacts
- Find spoofable bot actor checks
- Find cache poisoning vulnerabilities
- Find dangerous workflow triggers
- Find excessive permissions
- Find forbidden action usage
- GitHub Actions security insights
- Find dangerous GITHUB_ENV usage
- Find hardcoded container credentials
- Find insecure commands configuration
- Find obfuscated GitHub Actions features
- Pin GitHub Actions to commit SHAs
- Find commit SHAs with potentially mismatched version comments
- Find unconditional secrets inheritance
- Find usage of self-hosted runners
- Find template injection vulnerabilities
- Find manual credentials instead of trusted publishing
- Document permissions usage
- Pin GitHub Actions to specific commits
- Pin Docker images to digests
- Upgrade actions/setup-go go-version
- Use actions/setup-java IBM semeru distribution
- Use actions/setup-java temurin distribution
- Setup Java dependency caching
- Upgrade actions/setup-java java-version
- Upgrade actions/setup-node node-version
- Replace actions/setup-python with astral-sh/setup-uv
- Upgrade actions/setup-python python-version
- Upgrade official GitHub Actions to their latest versions
- Upgrade slackapi/slack-github-action
org.openrewrite.recipe:rewrite-gitlab0.28.0 · MSAL
- Add artifacts expire_in
- Add cache configuration
- Add GitLab component
- Add default keyword
- Add interruptible
- Add retry configuration
- Add GitLab stages
- Add GitLab template
- Add job timeout
- Add workflow rules
- GitLab CI best practices
- Change GitLab Component
- Change GitLab template
- Migrate GitLab template to component
- Migrate GitLab Terraform template to OpenTofu component
- Migrate only/except to rules
- Remove GitLab template
- Find GitLab Component
- Find deprecated except keyword
- Find deprecated only keyword
- Find deprecated GitLab CI syntax
- Find GitLab Template
org.openrewrite.recipe:rewrite-hibernate2.30.0 · MSAL
- AddScalarPreferStandardBasicTypesForHibernate5
- Change Hibernate dialect
- Replace extends EmptyInterceptor with implements Interceptor and potentially StatementInspector
- Replace boolean type mappings with converters
- Migrate Hibernate dialect to the generic dialect
- Migrate persistence.xml to Jakarta Persistence 3.2
- Migrate dialects removed in Hibernate 7.0 to their generic equivalents
- Migration of ResultCheckStyle to Expectation
- Migrate to Hibernate 6.0.x
- Migrate to Hibernate 6.1.x
- Migrate to Hibernate 6.2.x
- Migrate to Hibernate 6.3.x
- Migrate to Hibernate 6.4.x
- Migrate to Hibernate 6.5.x
- Migrate to Hibernate 6.6.x
- Migrate to Hibernate 7.0.x
- Migrate to Hibernate 7.1.x
- Migrate Hibernate dependencies to 6.0.x
- Migrate Hibernate Types to Hypersistence Utils 6.0
- Migrate Hibernate Types to Hypersistence Utils 6.2
- Migrate Hibernate Types to Hypersistence Utils 6.3
- Migrate Hibernate Types to Hypersistence Utils for Hibernate 7.0
- Migrate Hibernate Types to Hypersistence Utils for Hibernate 7.1
- Migrate UserType to Hibernate 6
- Remove @GeneratedValue strategy when a custom @GenericGenerator is used
- Remove invalid @GeneratedValue annotation
- Replace @LazyCollection with jakarta.persistence.FetchType
- @Type annotation type parameter migration
- Rename JavaTypeDescriptor and SqlTypeDescriptor to JavaType and SqlType
- Migrate to Hibernate Validator 8.0.x
- Migrate to Hibernate Validator 9.1.x
- Move @Valid from the container to its element type
org.openrewrite.recipe:rewrite-jackson1.34.0 · Apache 2.0
- Add @JsonCreator to non-public constructors
- Add missing Jackson dataformat dependencies
- Migrate dependencies from Jackson Codehaus (legacy) to FasterXML
- Migrate to Jackson @JsonInclude
- Remove Codehaus Jackson annotations if doubly annotated
- Migrate serialization annotation processor
- Transfer @JsonSerialize arguments from Codehaus to FasterXML
- Migrate classes from Jackson Codehaus (legacy) to Jackson FasterXML
- Migrate from Jackson Codehaus (legacy) to Jackson FasterXML
- Add comment to SimpleModule method calls on modules that no longer extend SimpleModule
- Find @JsonSetter(nulls = Nulls.AS_EMPTY) on empty collection fields
- Replace IOException with JacksonException in catch clauses
- Migrate JSONNode field iterator for Jackson 3
- Jackson best practices
- Replace JsonNode.textValue() with stringValue(null)
- Migrate deprecated @JsonSerialize(include = ...) to @JsonInclude
- Update lombok.config for Jackson 3 compatibility
- Migrate factory setter calls to builder pattern
- Migrate mapper setter calls to builder pattern
- Find modules still on Jackson 2
- Declare ObjectCodec variables as ObjectReadContext or ObjectWriteContext
- Migrate ObjectMapper.readValue(URL, ...) to use openStream()
- Remove Spring beans for modules built-in to Jackson 3
- Remove registrations of modules built-in to Jackson 3
- Remove dead throws declarations for unchecked Jackson exceptions
- Remove redundant Jackson 3 feature flag configurations
- Remove redundant @JsonProperty argument
- Replace throw new IOException(..) inside Jackson serializer / deserializer overrides
- Replace ObjectMapper.copy() with rebuild().build()
- Replace deprecated PropertyNamingStrategy inner classes and constants
- Replace removed JsonGenerator capability methods with StreamWriteCapability
- Simplify catch clauses for Jackson exceptions
- Replace null type in StdDeserializer constructor with actual type
- Replace disable(MapperFeature.AUTO_DETECT_*) with changeDefaultVisibility() for Jackson 3
- Update configuration of serialization inclusion in ObjectMapper for Jackson 3
- Migrates from Jackson 2.x to Jackson 3.x
- Add Jackson 3 jackson-databind for sources that use it transitively
- Add Jackson 3 jackson-dataformat-avro for sources that use it transitively
- Add Jackson 3 jackson-dataformat-cbor for sources that use it transitively
- Add Jackson 3 jackson-dataformat-csv for sources that use it transitively
- Add Jackson 3 jackson-dataformat-ion for sources that use it transitively
- Add Jackson 3 jackson-dataformat-protobuf for sources that use it transitively
- Add Jackson 3 jackson-dataformat-smile for sources that use it transitively
- Add Jackson 3 jackson-dataformat-xml for sources that use it transitively
- Add Jackson 3 jackson-dataformat-yaml for sources that use it transitively
- Upgrade Jackson 2.x dependencies to 3.x
- Rename Jackson 2.x methods to 3.x equivalents for JsonGenerator
- Rename Jackson 2.x methods to 3.x equivalents for JsonNode
- Rename Jackson 2.x methods to 3.x equivalents for JsonParser
- Rename Jackson 2.x methods to 3.x equivalents
- Modernize legacy jackson-core feature constants
- Rename Jackson 2.x methods to 3.x equivalents for ObjectNode
- Update Jackson package names from 2.x to 3.x
- Migrate relocated feature constants to DateTimeFeature and EnumFeature
- Remove redundant Jackson 3 feature flag configurations
- Use the Jackson 3 object mapper factory of REST Assured
- Update Jackson 2.x types to 3.x
- Use format alignment ObjectMappers
- Use JsonFactory.builder() over new JsonFactoryBuilder()
- Use modern date/time serialization defaults
- Use DeserializationContext.readTreeAsValue() instead of ObjectCodec.treeToValue()
org.openrewrite.recipe:rewrite-java-dependencies1.67.0 · Apache 2.0
- Add Gradle or Maven dependency
- Change Gradle or Maven dependency
- Gradle or Maven dependency insight
- Dependency report
- Dependency resolution diagnostic
- Exclude a Gradle or Maven dependency
- Find Gradle or Maven dependencies
- Gradle or Maven repository order
- Find relocated dependencies
- Remove a Gradle or Maven dependency
- Remove a Gradle or Maven dependency exclusion
- Remove redundant explicit dependencies
- Does not include Gradle or Maven dependency
- Find duplicate classes on the classpath
- Find the oldest matching dependency version in use
- Find minimum JUnit version
- Module has dependency
- Repository has dependency
- Upgrade Gradle or Maven dependency versions
- Upgrade transitive Gradle or Maven dependencies
org.openrewrite.recipe:rewrite-java-security3.46.0 · Proprietary
- Find LLM freeform output flowing into a structured parser (OWASP LLM01)
- Find prompt injection (OWASP LLM01)
- Find unguarded RAG content flowing into an LLM prompt (OWASP LLM01)
- Find unrestricted prompt selection (OWASP LLM01)
- OWASP LLM01 — Prompt Injection
- Remediate the OWASP Top 10 for LLM Applications
- Dependency insight for C#
- Find and fix vulnerable Nuget dependencies
- Find end-of-life NuGet dependencies
- Software bill of materials for C#
- Upgrade C# dependency versions
- Find end-of-life dependencies (defaults)
- Find and fix vulnerable Go dependencies
- Software bill of materials for Go
- Go security best practices
- Find command execution vectors in Go
- Find use of insecure random number generation in Go
- Find insecure TLS configuration in Go
- Find SQL injection vectors in Go
- Find use of weak cryptographic algorithms in Go
- Add explicit transitive dependencies
- Find licenses in use in third-party dependencies
- Find and fix vulnerable Maven/Gradle dependencies
- Find end-of-life dependencies
- Software bill of materials for Java
- Remove unused dependencies
- Software bill of materials
- Find text-direction changes
- Replace Runtime.exec(String) with Runtime.exec(String[])
- Fix CWE-338 with SecureRandom
- Remediate server-side request forgery (SSRF)
- Fix permissive HostnameVerifier implementations
- Fix permissive X509TrustManager implementations
- Replace SQL string concatenation with a PreparedStatement
- Improper privilege management
- Java security best practices
- Restrict deserialized classes for JMS ObjectMessage
- Insecure JMS deserialization
- Secure the use of Jackson default typing
- Secure the use of SnakeYAML's constructor
- Remediate OWASP A01:2025 Broken access control
- Remediate OWASP A02:2025 Security misconfiguration
- Remediate OWASP A03:2025 Software supply chain failures
- Remediate OWASP A04:2025 Cryptographic failures
- Remediate OWASP A05:2025 Injection
- Remediate OWASP A07:2025 Identification and authentication failures
- Remediate OWASP A08:2025 Software or data integrity failures
- Remediate OWASP A09:2025 Security logging and alerting failures
- Remediate OWASP A10:2025 Mishandling of exceptional conditions
- Remediate OWASP A01:2021 Broken access control
- Remediate OWASP A02:2021 Cryptographic failures
- Remediate OWASP A03:2021 Injection
- Remediate OWASP A05:2021 Security misconfiguration
- Remediate OWASP A06:2021 Vulnerable and outdated components
- Remediate OWASP A07:2021 Identification and authentication failures
- Remediate OWASP A08:2021 Software and data integrity failures
- Remediate vulnerabilities from the OWASP Top Ten
- Remediate vulnerabilities from the OWASP Top Ten 2025
- Partial path traversal vulnerability
- Regular Expression Denial of Service (ReDOS)
- Find anonymous LDAP binds
- Find Apache Commons BeanUtils property assignments
- Find OS command injection vectors
- Find double-checked locking on a non-volatile field
- Find Expression Language injection vectors
- Find hardcoded authentication credentials
- Find hardcoded initialization vectors
- Find HTTP response splitting vectors
- Find inadequate cryptographic key sizes
- Find insecure cipher modes and padding schemes
- Find insecure Spring Security RememberMe configuration
- Find Spring Security configurations that disable session fixation protection
- Find writes to static fields from instance methods
- Find invalid JDBC indices
- Find Jackson default type mapping enablement
- Find JDBC connections with empty passwords
- Find log injection vulnerabilities
- Find long or disabled HTTP session timeout
- Find mass assignment
- Find Spring MVC handlers missing authorization
- Find permissive CORS configuration
- Find predictable cryptographic salts
- Find process control vectors
- Find publicly writable temporary directories
- Find resource injection vectors
- Find RSA encryption without OAEP padding
- Find script engine code injection vectors
- Find sensitive API endpoints
- Find sensitive data in log statements
- Find potential SQL injection
- Find Thread.sleep(...) calls while holding a monitor
- Find unsafe reflection vectors
- Find unsigned JWT usage
- Find User.withDefaultPasswordEncoder() usage
- Find vulnerable uses of Jackson @JsonTypeInfo
- Find wait/notify/notifyAll called on a Thread instance
- Find weak cryptographic algorithms
- Find weak message digests used inside custom PasswordEncoder implementations
- Find weak password encoder strength
- Find weak password hashing
- Find weak Spring Security password encoders
- Find weak SSL/TLS protocols
- Find XPath injection vectors
- Find Artifactory secrets
- Find AWS secrets
- Find Azure secrets
- Find HTTP Basic authentication secrets
- Find Bearer token secrets
- Find Discord secrets
- Find Facebook secrets
- Find generic secrets
- Find GitHub secrets
- Find Google secrets
- Find Heroku secrets
- Find JWT secrets
- Find MailChimp secrets
- Find Mailgun secrets
- Find NPM secrets
- Find passwords used in URLs
- Find PayPal secrets
- Find PGP secrets
- Find Picatic secrets
- Find RSA private keys
- Find secrets
- Find secrets with regular expressions
- Find SendGrid secrets
- Find Slack secrets
- Find Square secrets
- Find SSH secrets
- Find Stripe secrets
- Find Telegram secrets
- Find Twilio secrets
- Find Twitter secrets
- Secure random
- SecureRandom seeds are not constant or predictable
- Use secure temporary file creation
- Cookies missing HttpOnly flag
- Insecure cookies
- Enable CSRF attack prevention
- Secure Spring service exporters
- Prevent clickjacking
- Remove debug mode from Spring Security
- Upgrade inadequate cryptographic key sizes
- Use Files#createTempDirectory
- XML parser XXE vulnerability
- Fix XSS vulnerabilities
- Replace XSS-prone JSP scriptlets with <c:out>
- Replace th:utext with th:text in Thymeleaf templates
- Zip slip
- Find end-of-life npm dependencies
- Software bill of materials for JavaScript
- Find and fix vulnerable PyPI dependencies
- Software bill of materials for Python
- Inline deprecated delegating methods
- Find hard-coded loopback IPv4 addresses
- Find hard-coded private IPv4 addresses
- Remove hard-coded IP addresses from comments
org.openrewrite.recipe:rewrite-jenkins0.41.0 · MSAL
- Migrate to HtmlUnit 3.x
- Add XML declaration to Jelly files
- Add or correct Jenkins plugins BOM
- Use commons-lang3 API Plugin
- Create index.jelly if it doesn't exist
- Create Jenkinsfile
- Disables local file resolution for parent POM
- Add plugin developer team to CODEOWNERS
- Is the project a Jenkins plugin?
- Migrate javax.annotations to SpotBugs annotations
- Parse Jenkinsfile as Groovy
- Replace hudson.Util.getPastTimeString with getTimeSpanString
- Modernize Jenkinsfile
- Modernize a Jenkins plugin to the latest recommended versions
- Modernize a Jenkins plugin to the latest versions supported by Java 8
- Recover Jenkinsfile parse errors caused by a misplaced shebang
- Use Jenkins API plugin instead of libraries
- Upgrade jenkins java version
- Upgrade property's value to version
org.openrewrite.recipe:rewrite-joda0.15.0 · MSAL
- Migrate Joda-Time AbstractInstant to Java time
- Migrate Joda-Time DateMidnight to Java time
- Migrate Joda-Time DateTime to java.time.ZonedDateTime
- Migrate Joda-Time DateTimeZone to Java time
- Migrate Joda-Time Duration to Java time
- Migrate Joda-Time formatter to Java time
- Migrate Joda-Time Instant to Java time
- Migrate Joda-Time Interval to Java time
- Migrate Joda-Time LocalDate to java.time.LocalDate
- Migrate Joda-Time LocalTime to java.time.LocalTime
- Migrate Joda-Time property idioms to Java time
- Migrate Joda-Time Days, Hours, Minutes, Seconds to Java time
- Prefer the Java standard library instead of Joda-Time
org.openrewrite.recipe:rewrite-kubernetes3.23.0 · Proprietary
- Find what blocks a Das Schiff BGPPeering from moving to the Sylva network connector API
- Find Das Schiff resources that have to move to Sylva
- Find drift between Das Schiff and Sylva intent network resources
- Find legacy T-CaaS network resources
- Find VRFRouteConfiguration and Layer2NetworkConfiguration to migrate
- Find Das Schiff traffic mirror configuration
- Find Das Schiff network operator ConfigMaps
- Find unclassified Das Schiff export ranges
- Generate Inbound and Outbound from export ranges
- Migrate VRFRouteConfiguration and Layer2NetworkConfiguration to Sylva
- Migrate Das Schiff traffic mirror configuration to intent resources
- Migrate T-CaaS network resources to the Sylva network connector API
- Migrate VRFRouteConfiguration community to communities
- Add Kubernetes configuration
- Add Kubernetes pod spec configuration
- Change Kubernetes API version
- Migrate Cluster API Provider AWS resources to v1beta2
- Migrate the Cluster API core group to v1beta2
- Migrate the Cluster API core group to v1beta2
- Migrate ClusterClass to cluster.x-k8s.io/v1beta2
- Migrate Cluster to cluster.x-k8s.io/v1beta2
- Migrate MachineDeployment to cluster.x-k8s.io/v1beta2
- Migrate MachineDrainRule to cluster.x-k8s.io/v1beta2
- Migrate MachineHealthCheck to cluster.x-k8s.io/v1beta2
- Migrate MachinePool to cluster.x-k8s.io/v1beta2
- Migrate MachineSet to cluster.x-k8s.io/v1beta2
- Migrate Machine to cluster.x-k8s.io/v1beta2
- Migrate Cluster API Provider Metal3 resources to v1beta2
- Migrate Cluster API Provider OpenStack resources to v1beta2
- Migrate Cluster API resources to v1beta2
- Find custom resources using deprecated CRD fields
- Change Helm chart version
- Ensure image pull policy is Always
- Change k0rdent template version
- Migrate deprecated k0rdent serviceSpec fields
- Kubernetes best practices
- Update kustomize image
- Ensure lifecycle rule on StorageBucket
- Limit root capabilities in a container
- Migrate to current MetalLB Service configuration
- Migrate Service spec.loadBalancerIP to the MetalLB annotation
- Migrate MetalLB annotations to the metallb.io domain
- Migrate HorizontalPodAutoscaler to autoscaling/v2
- Migrate Ingress to networking.k8s.io/v1
- Migrate PodDisruptionBudget to policy/v1
- Migrate to Kubernetes API v1.16
- Migrate to Kubernetes API v1.17
- Migrate to Kubernetes API v1.18
- Migrate to Kubernetes API v1.19
- Migrate to Kubernetes API v1.20
- Migrate to Kubernetes API v1.21
- Migrate to Kubernetes API v1.22
- Migrate to Kubernetes API v1.23
- Migrate to Kubernetes API v1.24
- Migrate to Kubernetes API v1.25
- Migrate to Kubernetes API v1.26
- Migrate to Kubernetes API v1.27
- Migrate to Kubernetes API v1.28
- Migrate to Kubernetes API v1.29
- Migrate to Kubernetes API v1.30
- Migrate to Kubernetes API v1.31
- Migrate to Kubernetes API v1.32
- Migrate to Kubernetes API v1.33
- Migrate to Kubernetes API v1.34
- Migrate to Kubernetes API v1.35
- Migrate to Kubernetes API v1.36
- Ensure CPU limits are set
- Ensure CPU request is set
- Ensure memory limits are set
- Ensure memory request is set
- Ensure liveness probe is configured
- Ensure readiness probe is configured
- No host IPC sharing
- No host network sharing
- No host process ID sharing
- No privileged containers
- No privilege escalation
- No root containers
- Add RBAC rules
- Read-only root filesystem
- Cap exceeds resource value
- Find exceeds resource ratio
- Find exceeds resource limit
- Find admissionregistration.k8s.io/v1beta1 webhook configurations
- Find annotation
- Find containers with missing configuration
- Find container resource coverage
- Find apiextensions.k8s.io/v1beta1 CustomResourceDefinitions
- Find dangling Kubernetes resource references
- Find disallowed image tags
- Find hardcoded IP addresses
- Find autoscaling/v2beta1 and autoscaling/v2beta2 HorizontalPodAutoscalers
- Find image by name
- Find networking.k8s.io/v1beta1 Ingresses
- Find Kubernetes resources
- Find kustomize images
- Find Kubernetes manifest flavors
- Find missing image digest
- Find annotation
- Find label
- Find non-TLS Ingresses
- Find PodDisruptionBudget resources selecting every pod
- Find missing configuration
- Find uses of externalIP
- Service type
- Update Service externalIP
- Update image name
org.openrewrite.recipe:rewrite-liberty1.31.0 · Apache 2.0
- Migrate from WebSphere traditional to Liberty
- Removes invalid JNDI properties
- Replace WSPrincipal.getCredential() with WSSubject lookup
- Use getProperty("wlp.server.name")
- Replace revokeSSOCookies with logout
- Use getSSOCookieFromSSOToken and logout
- Add Liberty Maven plugin
- Use correct application namespace values
- Use correct connector namespace values
- Use correct ejb-jar namespace values
- Move persistence.xml file
- Replace beans.xml file
- Use correct web-app namespace values
org.openrewrite.recipe:rewrite-logging-frameworks3.37.0 · MSAL
- Inline log4j-api-2 methods annotated with @InlineMe
- Unpack Logger method new Object[] {...} into varargs
- Catch block log level
- Change logger fields to private
- Replace any Lombok log annotations with target logging framework annotation
- Replace deprecated JBoss Logging Logger formatted message invocations with the v-version of methods
- Refaster template FormattedArgumentsToVMethod.DebugToVDebug
- Refaster template FormattedArgumentsToVMethod.DebugToVDebugWithThrowable
- Refaster template FormattedArgumentsToVMethod.ErrorToVError
- Refaster template FormattedArgumentsToVMethod.ErrorToVErrorWithThrowable
- Refaster template FormattedArgumentsToVMethod.FatalToVFatal
- Refaster template FormattedArgumentsToVMethod.FatalToVFatalWithThrowable
- Refaster template FormattedArgumentsToVMethod.InfoToVInfo
- Refaster template FormattedArgumentsToVMethod.InfoToVInfoWithThrowable
- Refaster template FormattedArgumentsToVMethod.TraceToVTrace
- Refaster template FormattedArgumentsToVMethod.TraceToVTraceWithThrowable
- Refaster template FormattedArgumentsToVMethod.WarnToVWarn
- Refaster template FormattedArgumentsToVMethod.WarnToVWarnWithThrowable
- JBoss Logging Best Practices
- Replace JBoss Logging Level arguments with the corresponding eponymous level method calls
- Replace JUL Level arguments with the corresponding method calls
- Replace JUL Logger.log(Level.CONFIG, Supplier<String>) with Logger.config(Supplier<String>)
- Replace JUL Logger.log(Level.CONFIG, String) with Logger.config(String)
- Replace JUL Logger.log(Level.FINER, Supplier<String>) with Logger.finer(Supplier<String>)
- Replace JUL Logger.log(Level.FINER, String) with Logger.finer(String)
- Replace JUL Logger.log(Level.FINEST, Supplier<String>) with Logger.finest(Supplier<String>)
- Replace JUL Logger.log(Level.FINEST, String) with Logger.finest(String)
- Replace JUL Logger.log(Level.FINE, Supplier<String>) with Logger.fine(Supplier<String>)
- Replace JUL Logger.log(Level.FINE, String) with Logger.fine(String)
- Replace JUL Logger.log(Level.INFO, Supplier<String>) with Logger.info(Supplier<String>)
- Replace JUL Logger.log(Level.INFO, String) with Logger.info(String)
- Replace JUL Logger.log(Level.SEVERE, Supplier<String>) with Logger.severe(Supplier<String>)
- Replace JUL Logger.log(Level.SEVERE, String) with Logger.severe(String)
- Replace JUL Logger.log(Level.WARNING, Supplier<String>) with Logger.warning(Supplier<String>)
- Replace JUL Logger.log(Level.WARNING, String) with Logger.warning(String)
- Migrate JCL to Log4j 2.x API
- Rewrites JUL's Logger#entering method to Log4j API
- Rewrites JUL's Logger#exiting method to Log4j API
- Migrate JUL to Log4j 2.x API
- Migrate Log4j 1.x to Log4j 2.x
- Convert Log4j Logger.setLevel to Log4j2 Configurator.setLevel
- Log exceptions as parameters rather than as string concatenations
- Parameterize Log4j 2.x logging statements
- Prepend a random name to each Log4J statement
- Migrate SLF4J to Log4j 2.x API
- Upgrade Log4j 2.x dependency version
- Replace the Logback condition attribute with the condition element
- Configure logback logger level
- Migrate Log4j 2.x Appender to logback-classic equivalents
- Migrate Log4j 2.x Layout to logback-classic equivalents
- Migrate Log4j 2.x to Logback
- Parameterize logging statements
- Use logger instead of printStackTrace()
- Add JBoss LogManager's SLF4J provider
- Change SLF4J log level
- Migrate Apache Commons Logging 1.x to SLF4J 1.x
- Enhances logging of exceptions by including the full stack trace in addition to the exception message
- Migrate JBoss Logging to SLF4J
- Replace JUL Logger creation with SLF4J LoggerFactory
- Replace JUL active Level check with corresponding SLF4J method calls
- Replace JUL Logger.isLoggable(Level.ALL) with SLF4J's Logger.isTraceEnabled
- Replace JUL Logger.isLoggable(Level.CONFIG) with SLF4J's Logger.isInfoEnabled()
- Replace JUL Logger.isLoggable(Level.FINE) with SLF4J's Logger.isDebugEnabled()
- Replace JUL Logger.isLoggable(Level.FINER) with SLF4J's Logger.isTraceEnabled()
- Replace JUL Logger.isLoggable(Level.FINEST) with SLF4J's Logger.isTraceEnabled
- Replace JUL Logger.isLoggable(Level.INFO) with SLF4J's Logger.isInfoEnabled()
- Replace JUL Logger.isLoggable(Level.SEVERE) with SLF4J's Logger.isErrorEnabled()
- Replace JUL Logger.isLoggable(Level.WARNING) with SLF4J's Logger.isWarnEnabled()
- Replace JUL Level.ALL logging with SLF4J's trace level
- Replace parameterized JUL level call with corresponding SLF4J method calls
- Migrate JUL to SLF4J
- Replace JUL active Level check with corresponding SLF4J method calls
- Replace JUL Logger.config(Supplier<String>) with SLF4J's Logger.atInfo().log(Supplier<String>)
- Replace JUL Logger.fine(Supplier<String>) with SLF4J's Logger.atDebug().log(Supplier<String>)
- Replace JUL Logger.finer(Supplier<String>) with SLF4J's Logger.atTrace().log(Supplier<String>)
- Replace JUL Logger.finest(Supplier<String>) with SLF4J's Logger.atTrace().log(Supplier<String>)
- Replace JUL Logger.info(Supplier<String>) with SLF4J's Logger.atInfo().log(Supplier<String>)
- Replace JUL Logger.log(Level.ALL, Supplier<String>) with SLF4J's Logger.atInfo().log(Supplier<String>)
- Replace JUL Logger.log(Level.CONFIG, Supplier<String>) with SLF4J's Logger.atInfo().log(Supplier<String>)
- Replace JUL Logger.log(Level.FINE, Supplier<String>) with SLF4J's Logger.atInfo().log(Supplier<String>)
- Replace JUL Logger.log(Level.FINER, Supplier<String>) with SLF4J's Logger.atInfo().log(Supplier<String>)
- Replace JUL Logger.log(Level.FINEST, Supplier<String>) with SLF4J's Logger.atInfo().log(Supplier<String>)
- Replace JUL Logger.log(Level.INFO, Supplier<String>) with SLF4J's Logger.atInfo().log(Supplier<String>)
- Replace JUL Logger.log(Level.SEVERE, Supplier<String>) with SLF4J's Logger.atInfo().log(Supplier<String>)
- Replace JUL Logger.log(Level.WARNING, Supplier<String>) with SLF4J's Logger.atInfo().log(Supplier<String>)
- Replace JUL Logger.severe(Supplier<String>) with SLF4J's Logger.atError().log(Supplier<String>)
- Replace JUL Logger.warning(Supplier<String>) with SLF4J's Logger.atWarn().log(Supplier<String>)
- Replace JUL log(Level, Throwable, Supplier<String>) with corresponding SLF4J method calls
- Replace JUL logger.log(Level.ALL, e, Supplier<String>) with SLF4J's Logger.atTrace().log(Supplier<String>)
- Replace JUL logger.log(Level.CONFIG, e, Supplier<String>) with SLF4J's Logger.atInfo().log(Supplier<String>)
- Replace JUL logger.log(Level.FINE, e, Supplier<String>) with SLF4J's Logger.atDebug().log(Supplier<String>)
- Replace JUL logger.log(Level.FINER, e, Supplier<String>) with SLF4J's Logger.atTrace().log(Supplier<String>)
- Replace JUL logger.log(Level.FINEST, e, Supplier<String>) with SLF4J's Logger.atTrace().log(Supplier<String>)
- Replace JUL logger.log(Level.INFO, e, Supplier<String>) with SLF4J's Logger.atInfo().log(Supplier<String>)
- Replace JUL logger.log(Level.SEVERE, e, Supplier<String>) with SLF4J's Logger.atError().log(Supplier<String>)
- Replace JUL logger.log(Level.WARNING, e, Supplier<String>) with SLF4J's Logger.atWarn().log(Supplier<String>)
- Replace JUL log(Level, String, Throwable) with corresponding SLF4J method calls
- Replace JUL logger.log(Level.ALL, String message, Throwable e) with SLF4J's Logger.trace(message, e)
- Replace JUL logger.log(Level.CONFIG, String message, Throwable e) with SLF4J's Logger.info(message, e)
- Replace JUL logger.log(Level.FINE, String message, Throwable e) with SLF4J's Logger.debug(message, e)
- Replace JUL logger.log(Level.FINER, String message, Throwable e) with SLF4J's Logger.trace(message, e)
- Replace JUL logger.log(Level.FINEST, String message, Throwable e) with SLF4J's Logger.trace(message, e)
- Replace JUL logger.log(Level.INFO, String message, Throwable e) with SLF4J's Logger.info(message, e)
- Replace JUL logger.log(Level.SEVERE, String message, Throwable e) with SLF4J's Logger.error(message, e)
- Replace JUL logger.log(Level.WARNING, String message, Throwable e) with SLF4J's Logger.warn(message, e)
- Convert Log4j 1.x MDC.getContext() to getCopyOfContextMap()
- Migrate Log4j 1.x to SLF4J 1.x
- Migrate Log4j 1.x MDC to SLF4J MDC
- Replace Log4j 2.x active Level check with corresponding SLF4J method calls
- Replace Log4j 2.x Logger.isEnabled(Level.DEBUG) with SLF4J's Logger.isDebugEnabled()
- Replace Log4j 2.x Logger.isEnabled(Level.ERROR) with SLF4J's Logger.isErrorEnabled()
- Replace Log4j 2.x Logger.isEnabled(Level.INFO) with SLF4J's Logger.isInfoEnabled()
- Replace Log4j 2.x Logger.isEnabled(Level.TRACE) with SLF4J's Logger.isTraceEnabled()
- Replace Log4j 2.x Logger.isEnabled(Level.WARN) with SLF4J's Logger.isWarnEnabled()
- Migrate Log4j 2.x to SLF4J 1.x
- Migrate Log4j to SLF4J
- Loggers should be named for their enclosing classes
- Match if (is*Enabled()) with logging statements
- MessageFormat.format() in logging statements should use SLF4J parameterized logging
- Parameterize SLF4J's logging statements
- Remove unnecessary log level guards
- SLF4J best practices
- SLF4J logging statements should begin with constants
- String.format() in logging statements should use SLF4J parameterized logging
- Strip toString() from arguments
- Optimize log statements
- Wrap Log4j 1.x MDC.put values in String.valueOf(...)
- Use logger instead of System.err print statements
- Use logger instead of System.out print statements
- Use logger instead of system print statements
org.openrewrite.recipe:rewrite-micrometer0.34.0 · MSAL
org.openrewrite.recipe:rewrite-micronaut2.42.0 · Apache 2.0
- Add Maven annotation processor path
- Add HttpRequest type parameter for implemented interfaces
- Update the Micronaut Retry support
- Add missing Micronaut validation dependency versions
- Add the Micronaut validation processor to Gradle source sets
- Update the Micronaut Websocket support
- Add snakeyaml dependency if needed
- Add micronaut-test-resources-client if needed
- De-capitalize BeanIntrospection getProperty(..) and getRequiredProperty(..) name arguments
- Change Maven annotation processor path
- Copy non-inherited annotations from super class
- Find Micronaut properties config
- Find Micronaut yaml config
- Fix deprecated no-arg ExceptionHandler constructors
- Migrate from Micronaut 2.x to 3.x
- Migrate from Micronaut 3.x to 4.x
- Migrate from Micronaut 4.x to 5.x
- Convert OncePerRequestServerFilter extensions to HttpServerFilter
- Provider implementation beans to Micronaut @Factory
- Remove Maven annotation processor path
- Remove unused YAML keys in config files
- Remove withJansi Logback configuration
- Change factory method return types to reflect their resolved return type
- Add @Introspected to classes requiring a map representation
- Migrate the use of TaskExecutors with blocking IO
- Add Micronaut build plugins to 4.x
- Update Micronaut Gradle build plugins to 5.x
- Update the Micronaut version to 4.x
- Update jakarta annotations dependency
- Update the version of core annotation processors
- Update the Micronaut Data library
- Update to Micronaut Email 2.x
- Update to Micronaut 4.x platform BOM
- Update the Micronaut Security library
- Update the Micronaut Session support
- Update to Micronaut Validation 4.x
- Update relocated Micronaut Security config properties
- Update relocated Micronaut Security config yaml keys
- Upgrade gradle.properties Micronaut version
- Upgrade micronaut.version Maven property
org.openrewrite.recipe:rewrite-migrate-java3.49.0 · MSAL
- Inline Guava methods annotated with @InlineMe
- JSpecify best practices
- Migrate from Jakarta annotation API to JSpecify
- Migrate from javax annotation API to JSpecify
- Migrate from JetBrains annotations to JSpecify
- Migrate from Micrometer annotations to JSpecify
- Migrate from Micronaut Framework annotations to JSpecify
- Migrate from SpotBugs annotations to JSpecify
- Migrate from Spring Framework annotations to JSpecify
- Migrate to JSpecify
- Remove AccessController.checkPermission(..) calls
- Add aspectjtools to the AspectJ Maven plugin
- Add JDeprScan Maven plugin
- Add lombok to the maven-compiler-plugin annotation processor paths
- Add lombok-mapstruct-binding when both MapStruct and Lombok are used
- Add lombok-mapstruct-binding dependency for Maven when both MapStruct and Lombok are used
- Add mapstruct-processor to the maven-compiler-plugin annotation processor paths
- Add missing method implementations
- Add Mockito Java agent to Maven Surefire plugin
- Add static modifier to @Produces fields in session beans
- Add maven-jar-plugin to suppress illegal reflection warnings
- Add argLine to Maven Surefire and Failsafe plugins
- Catch TypeNotPresentException thrown by Class.getAnnotation()
- Use modernized java.awt APIs
- Replace a deprecated AWT method
- Add version and bean-discovery-mode to beans.xml files without a version
- Change beans.xml schemaLocation to match XML namespace
- Migrate Bouncy Castle to jdk18on
- Use ASN1*String for the result of DER*String.getInstance(..)
- Migrate Bouncy Castle to jdk15to18 for Java < 8
- Move Bouncy Castle SPHINCS+ classes to pqc.legacy
- Remove explicit casts on Arrays.asList(..).toArray()
- Replace KeyStore.getDefaultType() with "jks"
- Change method invocation return type
- Remove Cobertura Maven plugin
- Migrate com.intellij:annotations to org.jetbrains:annotations
- Explain why the Java version was capped at 24 for Kotlin modules
- Comment Kotlin modules capped at Java 24
- Use modernized java.util.concurrent APIs
- Use AtomicBoolean#weakCompareAndSetPlain(boolean, boolean)
- Use AtomicIntegerArray#weakCompareAndSetPlain(int, int, int)
- Use AtomicInteger#weakCompareAndSetPlain(int, int)
- Use AtomicLongArray#weakCompareAndSetPlain(int, long, long)
- Use AtomicLong#weakCompareAndSetPlain(long, long)
- Use AtomicReferenceArray#weakCompareAndSetPlain(int, T, T)
- Use AtomicReference#weakCompareAndSetPlain(T, T)
- Turn dangling documentation comments into block comments
- DataNucleus 4.0 package moves
- DataNucleus 5.0 package moves
- DataNucleus 5.2 package moves
- DataNucleus 4.0 property migrations
- DataNucleus 5.0 property migrations
- DataNucleus 5.1 property migrations
- DataNucleus 5.2 property migrations
- DataNucleus 4.0 type changes
- DataNucleus 5.0 type changes
- Migrate to DataNucleus 4.0
- Migrate to DataNucleus 5.0
- Migrate to DataNucleus 5.1
- Migrate to DataNucleus 5.2
- Avoid using the deprecated empty finalize() method in java.desktop
- Remove Thread.countStackFrames() method
- Use java.security.cert instead of javax.security.cert
- Adopt setLongThreadID in java.util.logging.LogRecord
- Replace DTO method parameters with data elements
- Enable Lombok annotation processor
- Migrate Guava equality without static import collisions
- Prefer the Java standard library instead of Guava
- Prefer Collection.stream().map(Function) over Collections2.transform
- Prefer Files#createTempDirectory()
- Prefer Runnable::run
- Prefer Function.compose(Function)
- Prefer List.copyOf(..) in Java 10 or higher
- Prefer List.of(..) in Java 9 or higher
- Prefer Map.copyOf(..) in Java 10 or higher
- Prefer Map.of(..) in Java 9 or higher
- Prefer Set.copyOf(..) in Java 10 or higher
- Prefer Set.of(..) in Java 9 or higher
- Prefer Collection.stream().allMatch(Predicate)
- Prefer Collection.stream().anyMatch(Predicate)
- Prefer Collection.stream().map(Function) over Iterables.transform
- Prefer the Java 11 standard library instead of Guava
- Prefer the Java 21 standard library instead of Guava
- Prefer new ArrayList<>()
- Prefer new CopyOnWriteArrayList<>()
- Prefer new LinkedList<>()
- Prefer new HashMap<>()
- Prefer new LinkedHashMap<>()
- Prefer new TreeMap<>()
- Prefer Optional.stream().collect(Collectors.toSet())
- Replace com.google.common.base.Optional#fromJavaUtil(java.util.Optional) with argument
- Remove com.google.common.base.Optional#toJavaUtil()
- Change Guava's Predicate into java.util.function.Predicate where possible
- Prefer Predicate.and(Predicate)
- Prefer Predicate.isEqual(Object)
- Prefer A.class::isInstance
- Prefer Arrays.asList(..) over Guava primitives
- Refaster style Guava to Java migration recipes
- Prefer Collection.stream().map(Function) over Collections2.transform
- Prefer Collection.stream().allMatch(Predicate)
- Prefer new ArrayList<>(Collection)
- Prefer new ArrayList<>()
- Prefer new ArrayList<>(int)
- Prefer new CopyOnWriteArrayList<>(Collection)
- Prefer new CopyOnWriteArrayList<>()
- Prefer new LinkedList<>(Collection)
- Prefer new LinkedList<>()
- Prefer new HashMap<>(Map)
- Prefer new HashMap<>()
- Prefer new LinkedHashMap<>(Map)
- Prefer new LinkedHashMap<>()
- Prefer new TreeMap<>(SortedMap)
- Prefer new TreeMap<>()
- Prefer new TreeMap<>(Comparator)
- Replace Preconditions.checkNotNull with Objects.requireNonNull
- Replace Preconditions.checkNotNull taking an Object message with Objects.requireNonNull and String.valueOf
- Replace Preconditions.checkNotNull taking a String message with Objects.requireNonNull
- Prefer Collections.newSetFromMap(new ConcurrentHashMap<>())
- Prefer new LinkedHashSet<>(Collection)
- Prefer new LinkedHashSet<>()
- Prefer new LinkedHashSet<>(int)
- Prefer Collection.stream().filter(Predicate)
- Prefer Collections.newSetFromMap(new ConcurrentHashMap<>())
- Prefer new HashSet<>()
- Prefer new LinkedHashSet<>()
- Prefer JDK methods for Maps and Sets of an expected size
- Prefer Character#compare
- Prefer Integer#compare
- Prefer Integer#compareUnsigned
- Prefer Integer#divideUnsigned
- Prefer Integer#parseUnsignedInt
- Prefer Integer#remainderUnsigned
- Prefer java.nio.charset.StandardCharsets
- Prefer String#join() over Guava Joiner#join()
- Prefer java.util.Collections#synchronizedNavigableMap
- Prefer java.util.Collections#unmodifiableNavigableMap
- Prefer java.util.function.Function
- Prefer java.util.Objects#equals
- Prefer java.util.Objects#hash
- Prefer java.util.Objects#requireNonNullElse
- Prefer java.util.Optional
- Prefer java.util.Optional#orElse(null) over com.google.common.base.Optional#orNull()
- Prefer java.util.Optional#or(Supplier<? extends Optional<? extends T>>)
- Prefer java.util.function.Predicate
- Prefer java.util.function.Supplier
- Prefer Long#compare
- Prefer Long#compareUnsigned
- Prefer Long#divideUnsigned
- Prefer Long#parseUnsignedLong
- Prefer Long#remainderUnsigned
- Prefer Math#addExact
- Prefer Math#clamp
- Prefer Math#multiplyExact
- Prefer Math#subtractExact
- Prefer Short#compare
- Migrate from IBM runtimes to Oracle runtimes
- Migrate to IBM Semeru Runtimes
- Replace IllegalArgumentException with AlreadyConnectedException in DatagramChannel.send() method
- Use com.sun.xml.bind.* instead of com.sun.xml.internal.bind.*
- Add bulk read method to InputStream implementations
- Replace invocations of finalize() on FileInputStream and FileOutputStream with close()
- Migrate System.out.print to Java 25 IO utility class
- Upgrade JaCoCo
- Add the Jakarta Annotation API when needed
- Add the Jakarta CDI API when needed
- Add the Jakarta EJB API when needed
- Add the Jakarta EL API when needed
- Add the jakarta.inject API when needed
- Add the Jakarta Mail API when needed
- Add the jakarta.ws.rs API when needed
- Add a Jakarta JAXB runtime for Maven applications
- Remove trailing /* from jakarta.ws.rs.ApplicationPath values
- Migrate the JAXB API dependency unless Recorder or Jackson still needs it
- Remove deprecated APIs not supported in CDI 4.0
- Build does not declare a provided API dependency
- Migrate Ehcache from javax to jakarta namespace
- JSF 2.x to Jakarta Faces 3.x
- Upgrade to Jakarta Faces 4.x
- Jakarta Faces 4.0 to 4.1
- Rename the jsf/ClientSideSecretKey and jsf/FlashSecretKey JNDI names to faces/*
- Substitute removed Faces managed beans
- Migrate commons-fileupload to commons-fileupload2-jakarta-servlet5
- Build uses Jetty before version 12
- Project has no Jakarta annotations
- Complete InvocationContext decorators
- Migrate Jackson from javax to jakarta namespace
- Migrate Jackson provider configuration overrides
- Migrate to Jakarta EE 10
- Migrate to Jakarta EE 11
- Migrate xmlns entries in faces-config.xml files
- Migrate JSF values inside ECMAScript files
- Migrate xmlns entries in taglib.xml files
- Faces XHTML migration for Jakarta EE 10
- Faces XHTML migration for Jakarta EE 9
- Migrate xmlns entries in web-fragment.xml files
- Migrate xmlns entries in web.xml files
- Migrate deprecated javax.activation packages to jakarta.activation
- Migrate deprecated javax.annotation to jakarta.annotation
- Migrate deprecated javax.security.auth.message packages to jakarta.security.auth.message
- Migrate deprecated javax.security.jacc packages to jakarta.security.jacc
- Migrate deprecated javax.batch packages to jakarta.batch
- Migrate xmlns entries in beans.xml files
- Migrate xmlns entries and javax packages in validation.xml files
- Migrate deprecated javax.decorator packages to jakarta.decorator
- Migrate deprecated javaee-api dependencies to jakarta.platform
- Migrate xmlns entries and javax packages in ejb-jar.xml files
- Migrate deprecated javax.ejb packages to jakarta.ejb
- Migrate deprecated javax.el packages to jakarta.el
- Migrate deprecated javax.enterprise packages to jakarta.enterprise
- Migrate xmlns entries in faces-config.xml files
- Migrate xmlns entries in taglib.xml files
- Migrate deprecated javax.inject packages to jakarta.inject
- Migrate deprecated javax.interceptor packages to jakarta.interceptor
- Migrate deprecated javax.jms packages to jakarta.jms
- Migrate deprecated javax.json packages to jakarta.json
- Migrate deprecated javax.jsp packages to jakarta.jsp
- Migrate deprecated javax.jws packages to jakarta.jws
- Migrate deprecated javax.mail packages to jakarta.mail
- Migrate to Jakarta EE 9
- Migrate xmlns entries in orm.xml files
- Migrate deprecated javax.persistence packages to jakarta.persistence
- Migrate xmlns entries in persistence.xml files
- Migrate deprecated javax.resource packages to jakarta.resource
- Migrate Jakarta EE runtime type names
- Migrate deprecated javax.security.enterprise packages to jakarta.security.enterprise
- Migrate deprecated javax.servlet packages to jakarta.servlet
- Rename CDI extension service files to Jakarta
- Migrate deprecated javax.transaction packages to jakarta.transaction
- Migrate deprecated javax.validation packages to jakarta.validation
- Migrate xmlns entries in web-fragment.xml files
- Migrate deprecated javax.websocket packages to jakarta.websocket
- Migrate xmlns entries in web.xml files
- Migrate deprecated javax.ws packages to jakarta.ws
- Migrate deprecated javax.xml.bind packages to jakarta.xml.bind
- Migrate deprecated javax.soap packages to jakarta.soap
- Migrate XJC bindings to Jakarta XML
- Migrate deprecated javax.xml.ws packages to jakarta.xml.ws
- Replace Jersey logging filter with logging feature
- Access Jetty connector ports through NetworkConnector
- Update Jetty EE9 to Jetty EE10
- Update Jetty 9 to Jetty 12
- Migrate Johnzon from javax to jakarta namespace
- Update Fastjson for Jakarta EE 10
- Update plugins for Jakarta EE 10
- Update plugins for Jakarta EE 11
- Update plugins for Jakarta EE 9
- Migrate Jakarta EE 9 API dependencies to Jakarta EE 10 versions
- Migrate OmniFaces namespaces
- Replace deprecated Jakarta Servlet methods and classes
- Remove Bean.isNullable()
- Use isParametersProvided()
- Use jakarta.el instead of jakarta.faces.el and javax.faces.el
- Replace ResourceResolver with ResourceHandler
- Use jakarta.xml.soap.SOAPFactory to create SOAPElements
- Use StateManagementStrategy
- Replace CURRENT_COMPONENT and CURRENT_COMPOSITE_COMPONENT with getCurrentComponent() and getCurrentCompositeComponent()
- Remove jakarta.annotation-api dependency when managed by Spring Boot
- Replace jakarta.jws-api with jakarta.xml.ws-api
- Migrate RestAssured from javax to jakarta namespace by upgrading to a version compatible with Jakarta EE 9
- Retain the JAXB 2 API for Arquillian Recorder 1.x
- Retain javax.xml.bind:jaxb-api when jackson-module-jaxb-annotations is present
- Remove getComment and getVersion methods
- Replace BeforeBeanDiscovery.addAnnotatedType(AnnotatedType) with addAnnotatedType(AnnotatedType, String)
- Update annotation attributes using javax to jakarta
- Update Apache Commons Email to Email2 for Jakarta
- Update Apache Shiro dependencies to 2.0.x
- Migrate org.apache.ws.security and org.apache.ws.security.components.crypto packages to org.apache.wss4j.common.ext and org.apache.wss4j.common.crypto packages
- Update fireEvent() and createInjectionTarget() calls
- Update EclipseLink dependencies to 4.x
- Update Apache Commons FileUpload2 package for Jakarta EE 10
- Replace ServletRequest.getRealPath(String) with getServletContext().getRealPath(String)
- Update Jakarta EE annotation dependencies to 2.1.x
- Migrate deprecated javax.faces packages to jakarta.faces
- Update Jakarta Faces dependencies to 4.0.x
- Update Jakarta Faces dependencies to 4.1.x
- Update Jakarta EE platform dependencies to 10.0.0
- Update Jakarta EE platform dependencies to 11.0.x
- Update Jakarta XML Web Services dependencies for Jakarta EE 10
- Update GlassFish Jersey dependencies to 3.1.x
- Update Faces @ManagedBean to use CDI @Named
- Update Restlet to 2.6.x
- Update Eclipse Yasson dependencies to 3.0.x
- Upgrade Faces open source libraries
- Upgrade Faces open source libraries
- Upgrade Faces open source libraries
- Use Java 17 for Jetty 12
- Align legacy Jetty core dependencies with Jetty 12
- Set maven-ejb-plugin ejbVersion to 4.0
- Migrate Weld implementations to Jakarta CDI
- Replace doUpgrade(..) with ServerContainer.upgradeHttpToWebSocket(..)
- Migrate to Java 11
- Java best practices
- Migrate to Java EE 6
- Migrate to Java EE 7
- Replace the OpenJPA persistence provider with EclipseLink in persistence.xml
- Migrate to Java EE 8
- Replace Apache BVal with Hibernate Validator in validation.xml
- Update Java Servlet dependencies to 3.x
- Replace HttpServletRequestWrapper.isRequestedSessionIdFromUrl() with isRequestedSessionIdFromURL()
- Add an API dependency for explicit imports
- Set @Column(name = "element") on @ElementCollection attributes
- Add explicit Common Annotations dependencies
- Add a default constructor to @Entity and @MappedSuperclass classes
- Add explicit Inject dependencies
- Add explicit JAXB API dependencies
- Add explicit JAXB API dependencies and remove runtimes
- Add explicit JAXB API dependencies and runtime
- Use latest JAXB API and runtime for Jakarta EE 8
- Add explicit JAX-WS dependencies
- Use the latest JAX-WS API and runtime for Jakarta EE 8
- Use the latest JAX-WS API and runtime for Jakarta EE 8
- Use the latest JAX-WS API and runtime for Jakarta EE 8
- Add scope annotation to injected classes
- Add a @TableGenerator to automatically generated @GeneratedValue attributes
- Add @Transient to unannotated collection attributes
- Add @Transient to unannotated entity attributes
- Add @Transient to private accessor methods
- Call HttpServletRequest.logout() before HttpSession.invalidate()
- Use modernized javax.lang.model.util APIs
- Use modernized javax.management.monitor APIs
- Use modernized javax.xml.stream APIs
- Use javax.lang.model.util.AbstractAnnotationValueVisitor9
- Use javax.lang.model.util.AbstractElementVisitor9
- Use javax.lang.model.util.AbstractTypeVisitor9
- Use javax.management.monitor.CounterMonitor#setInitThreshold
- Use javax.lang.model.util.ElementKindVisitor9
- Use javax.lang.model.util.ElementScanner9
- Migrate the JAX-WS Maven plugin
- Replace one.gfw JAXB artifacts with their official coordinates
- Use javax.lang.model.util.SimpleAnnotationValueVisitor9
- Use javax.lang.model.util.SimpleElementVisitor9
- Use javax.lang.model.util.SimpleTypeVisitor9
- Use javax.lang.model.util.TypeKindVisitor9
- Use javax.xml.stream.XMLEventFactory#newFactory(String, ClassLoader)
- Use javax.xml.stream.XMLInputFactory#newFactory(String, ClassLoader)
- Use javax.xml.stream.XMLOutputFactory#newFactory(String, ClassLoader)
- Migrate from OpenJPA to EclipseLink JPA
- Remove @Id from @Embeddable classes referenced by an @EmbeddedId
- Remove the @Temporal annotation for some java.sql attributes
- Replace @Column with @JoinColumn on relationship mappings
- Disable the persistence unit second-level cache
- Set visibility of premain and agentmain methods to public
- Use javax.net.ssl instead of com.sun.net.ssl
- Use com.ibm.jsse2 instead of com.sun.net.ssl.internal.ssl
- Use com.ibm.net.ssl.www2.protocol instead of com.sun.net.ssl.internal.www.protocol
- Use com.ibm.net.ssl.www2.protocol.https.Handler instead of com.sun.net.ssl.internal.www.protocol.https.Handler
- Add missing JDBC interface methods
- Rename final method declarations getSuppressed() and addSuppressed(Throwable exception) in classes that extend Throwable
- Add missing isWrapperFor and unwrap methods
- Move annotation to array type
- Remove annotation from void method
- Use com.sun.security.auth.module.Krb5LoginModule instead of com.ibm.security.auth.module.Krb5LoginModule
- Add explicit import for Record classes
- Extract complex super(..) and this(..) arguments into local variables
- Find non-virtual ExecutorService creation
- Find Thread.start() calls made during construction of a non-final class
- Find virtual thread opportunities
- Replace if-else-if-else with switch
- Convert Javadoc to Markdown documentation comments
- Use modernized java.lang APIs
- Use Character#isJavaIdentifierPart(char)
- Use Character#isJavaIdentifierStart(char)
- Use Character#isWhitespace(char)
- Use ClassLoader#defineClass(String, byte[], int, int)
- Use Class#getDeclaredConstructor().newInstance()
- Migrate public static void main(String[] args) to instance void main()
- Use Process#waitFor(Duration)
- Use Runtime.Version#feature()
- Use Runtime.Version#interim()
- Use Runtime.Version#update()
- Use SecurityManager#checkMulticast(InetAddress)
- Add null check to existing switch cases
- Use switch cases refinement when possible
- Rename _ identifier to __
- Replace unused variables with underscore
- Prefer String.formatted(Object...)
- A collection of String rules
- Replace String.indexOf(char, 0) with String.indexOf(char)
- Replace String.indexOf(String, 0) with String.indexOf(String)
- Replace redundant String method calls with self
- Replace lower and upper case String comparisons with String.equalsIgnoreCase(String)
- Convert assigning switch statements to switch expressions
- Use switch cases labels for enums
- Convert switch cases where every case returns into a returned switch expression
- Convert switch expression yield to arrow
- Replace Thread.resume(), Thread.stop(), and Thread.suspend() with throw new UnsupportedOperationException()
- Replace 0 < s.length() with !s.isEmpty()
- Use text blocks
- Use local variable type inference
- Use var for constructor call assignments
- Apply var to generic method invocations
- Apply var to generic constructors
- Use var for reference-typed variables
- Use var for primitive and String variables
- Use var for variables initialized with type casts
- Use modernized java.util.logging APIs
- Use ManagementFactory#getPlatformMXBean(PlatformLoggingMXBean.class)
- Use java.lang.management.PlatformLoggingMXBean
- Use Logger#getGlobal()
- Use Logger#logrb(.., ResourceBundle bundleName, ..)
- Use LogRecord#setInstant(Instant)
- Add config.stopBubbling to the root lombok.config
- Rename getter methods to fit Lombok
- Rename setter methods to fit Lombok
- Consolidate lombok.config files
- Flag usage of a Lombok feature
- Use @CommonsLog instead of explicit fields
- Use @JBossLog instead of explicit fields
- Use @Log instead of explicit fields
- Use @Log4j2 instead of explicit fields
- Use Lombok logger annotations instead of explicit fields
- Use @Slf4j instead of explicit fields
- Lombok best practices
- Migrate Lombok's @__ syntax to onX_ for Java 8+
- Prefer final var over lombok.val
- Convert @lombok.Value class to record
- Migrate Lombok to a Java 11 compatible version
- Upgrade the Lombok version of the io.freefair.lombok Gradle plugin
- Use @AllArgsConstructor where applicable
- Convert getter methods to annotations
- Convert setter methods to annotations
- Use @NoArgsConstructor where applicable
- Use @RequiredArgsConstructor where applicable
- Update Maven Java project properties
- Use Maven compiler plugin release configuration
- Simplify Micrometer meter tags
- Migrate GraalVM resource-config.json to glob patterns
- Use ZipException instead of ZipError
- Make MBean and MXBean interfaces public
- Use modernized java.net APIs
- Use java.net.HttpURLConnection.HTTP_INTERNAL_ERROR
- Use java.net.MulticastSocket#getTimeToLive()
- Use java.net.MulticastSocket#setTimeToLive(int)
- Use java.net.URLDecoder#decode(String, StandardCharsets.UTF_8)
- Use java.net.URLEncoder#encode(String, StandardCharsets.UTF_8)
- Convert new URL(String, ..) to new URI(String, ..).toURL()
- Convert new URL(String) to URI.create(String).toURL()
- Replace Paths.get with Path.of
- Remove redundant StandardCharsets.UTF_8 from java.nio.file.Files method calls
- Replace java.lang.ref.Reference.clone() with constructor call
- Replace finalize method in java.io.FileInputStream and java.io.FileOutputStream
- Do not package java.xml.ws module in WebSphere Liberty applications
- Do not package java.xml.bind and java.activation modules in WebSphere Liberty applications
- Use SunJSSE instead of com.sun.net.ssl.internal.ssl.Provider
- Change java.lang.reflect.Modifier and java.lang.invoke.ConstantBootstraps method calls to static
- Replace javax.security.auth.Policy with java.security.Policy
- Replace RMIConnectorServer.CREDENTIAL_TYPES constant
- Remove Runtime.traceInstructions(boolean) and Runtime.traceMethodCalls methods
- Replace deprecated methods in SecurityManager
- Replace SSLSession.getPeerCertificateChain() method
- Adopt javax.security.auth.Subject.current() and javax.security.auth.Subject.callAs() methods
- Change javax.tools.ToolProvider methods calls to static
- Replace finalize method in java.util.zip.ZipFile, java.util.zip.Inflater and java.util.zip.Deflater
- Remove illegal semicolons
- Remove SecurityManager permission checks
- Remove Policy.setPolicy(..) calls
- Replace AWT getPeer() method
- Replace com.sun.awt.AWTUtilities static method invocations
- Replace getLocalizedInputStream and getLocalizedOutputStream with direct assignment
- Replace String literal
- Find which Java version is in use
- Find CompletableFuture async calls without an Executor
- Find data used on DTOs
- Find methods that only use one DTO data element
- Find uses of internal javax APIs
- Find Java versions in use
- Find locale-sensitive date/time formatting
- Module has Kotlin source files
- Plan a Java version migration
- Simplify the removed security manager's thread group fallback
- Use modernized java.sql APIs
- Use DriverManager#setLogWriter(java.io.PrintWriter)
- Replace com.sun.net.ssl package
- Adopt switch pattern matching (JEP 441)
- Replace System.getSecurityManager() with null
- Remove Thread.destroy() and Thread.stop(Throwable)
- Update SDKMAN! Java version
- Upgrade build to Java 11
- Upgrade build to Java 17
- Upgrade build to Java 21
- Upgrade build to Java 24 for Kotlin 1.x
- Upgrade build to Java 25 (non-Kotlin)
- Upgrade build to Java 25 for Kotlin 2.3+
- Upgrade Docker image Java version
- Upgrade CircleCI OpenJDK job images
- Upgrade Java version
- Upgrade Kotlin to 2.3 for Java 25 compatibility
- Upgrade Kotlin jvmTarget to match the Java version
- Upgrade plugins to Java 11 compatible versions
- Upgrade plugins to Java 17 compatible versions
- Upgrade plugins to Java 21 compatible versions
- Upgrade plugins to Java 25 compatible versions
- Upgrade Spring Boot 3 Maven parents for Java 25
- Migrate to Java 17
- Migrate to Java 21
- Migrate to Java 25
- Migrate to Java 6
- Migrate to Java 7
- Migrate to Java 8
- Upgrade Java version in alternate Maven builds
- Prefer java.util.Base64 instead of sun.misc
- Force indentation to either tabs or spaces
- Replace iterator().next() with getFirst()
- Use modernized java.util APIs
- Replace List.get(int), add(int, Object), and remove(int) with SequencedCollection *First and *Last methods
- Prefer List.of()
- Prefer Map.of()
- Prefer Set.of()
- Prefer List.of(..)
- Prefer Map.of(..)
- Prefer Set.of(..)
- Prefer List.of(..)
- Prefer Set.of(..)
- Replace Inflater and Deflater end() calls with close()
- Use Reader.of(CharSequence) for non-synchronized readers
- Prefer Optional.isPresent()
- Prefer Optional.isEmpty()
- Replace filter(Optional::isPresent).map(Optional::get) with flatMap(Optional::stream)
- Remove finalize() invocations on Deflater, Inflater and ZipFile
- Replace Math.random() with ThreadLocalRandom.current().nextDouble()
- Replace Stream.collect(Collectors.toUnmodifiableList()) with Stream.toList()
- Adopt SequencedCollection
- Use getFirst() instead of stream().findFirst().orElseThrow()
- Prefer EnumSet.of(..)
- Prefer List.of(..)
- Prefer Locale.of(..) over new Locale(..)
- Prefer Map.of(..)
- Prefer Predicate.not(..) over casting to Predicate and calling negate()
- Prefer Set.of(..)
- Change net.wasdev.maven.parent:java8-parent to :parent
- Migrate to Scala 2.12.+
org.openrewrite.recipe:rewrite-migrate-kotlin0.13.0 · Proprietary
- Replace deprecated animation-core methods
- Replace deprecated material methods
- Replace deprecated material3 methods
- Replace deprecated runtime methods
- Replace deprecated kotlinx-collections-immutable methods
- Replace deprecated kotlinx-coroutines-core methods
- Replace deprecated kotlinx-datetime methods
- Replace deprecated kotlinx-io-core methods
- Replace deprecated kotlinx-serialization-core methods
- Replace deprecated Jetpack Compose methods
- Rename Exposed deprecated methods for 1.0
- Migrate Exposed type references to 1.0 packages
- Upgrade Exposed Gradle dependencies to 1.0
- Migrate to JetBrains Exposed 1.0
- Replace deprecated kotlinx methods
- Migrate @AutoValue classes to Kotlin data classes
- Remove deprecated Kotlin Gradle properties
- Remove redundant kotlin-stdlib dependencies
- Rename the kotlinOptions block to compilerOptions
- Replace deprecated appendln with appendLine
- Replace deprecated capitalize and decapitalize
- Replace deprecated Char case conversions
- Replace deprecated String case conversions
- Replace enumValues<T>() with enumEntries<T>()
- Replace Enum.values() with Enum.entries
- Replace kotlinOptions with compilerOptions in Gradle build files
- Upgrade Kotlin Gradle plugins to 2.x
- Upgrade to kotlinx-coroutines 1.10
- Migrate to kotlinx-datetime 0.7
- Upgrade to kotlinx-serialization 1.8
- Migrate to Kotlin 2
- Use freeCompilerArgs.addAll(...) in Kotlin compilerOptions
- Use the jvmTarget provider syntax in Kotlin compilerOptions
- Replace Kotlin method
org.openrewrite.recipe:rewrite-migrate-python0.19.0 · Proprietary
- Python dependency insight
- Find __future__ imports
- Find Python function and method usages
- Find Python types
- Migrate to pyproject.toml
- Upgrade Python runtime in CloudFormation templates
- Upgrade Python Docker base image
- Upgrade Python version in project files
- Upgrade Python version in Read the Docs configuration
- Upgrade Python version
- Upgrade Python version in project files to 3.10
- Upgrade Python version in project files to 3.11
- Upgrade Python version in project files to 3.12
- Upgrade Python version in project files to 3.13
- Upgrade Python version in project files to 3.14
- Upgrade Python version in project files to 3.15
- Upgrade Python version in project files to 3.8
- Upgrade Python version in project files to 3.9
- Upgrade Python version in Mend .whitesource files
org.openrewrite.recipe:rewrite-netty0.16.0 · Apache 2.0
- Replace all EventLoopGroups with MultiThreadIoEventLoopGroup
- Replace EpollEventLoopGroup with MultiThreadIoEventLoopGroup
- Replace LocalEventLoopGroup with MultiThreadIoEventLoopGroup
- Replace NioEventLoopGroup with MultiThreadIoEventLoopGroup
- Change MessageEvent parameter of channelRead to Object
- Migrate Channel.setReadable(boolean) to Channel.config().setAutoRead(boolean)
- Remove ChannelStateEvent parameter from handler methods
- Replace Channels.fireMessageReceived(..) with ctx.fireChannelRead(e)
- Migrate StringEncoder(String) to StringEncoder(StandardCharsets)
- Migrates from Netty 3.2.x to Netty 4.1.x
- Migrates from Netty 4.1.x to Netty 4.2.x
org.openrewrite.recipe:rewrite-nodejs0.55.0 · Proprietary
- Upgrade Node.js version in version files
- Javascript database interaction library insights
- Find Node.js projects
- Javascript form handling library insights
- Javascript linting & formatting library insights
- Javascript real-time communication library insights
- Javascript security library insights
- Javascript server-side frameworks insights
- Javascript state management library insights
- Javascript task runners & build tools insights
- Javascript testing library insights
- Javascript UI library insights
- Javascript utility library insights
- Find and fix vulnerable npm dependencies
- Remove redundant dependency overrides
org.openrewrite.recipe:rewrite-okhttp0.28.0 · MSAL
- Reorder the arguments of RequestBody.create()
- Migrate to MockWebServer3 (core module)
- Migrate to MockWebServer3 with JUnit 4
- Migrate to MockWebServer3 with JUnit 5
- Migrate to OkHttp 4.x
- Migrate OkHttp dependencies to 4.x
- Migrate to OkHttp 5.x
- Migrate OkHttp dependencies to 5.x
- Migrate to Okio 3.x
- Migrate Okio dependencies to 3.x
org.openrewrite.recipe:rewrite-openapi0.38.0 · Apache 2.0
- Convert API response codes to strings
- Convert API responseHeaders to headers
- Convert API response to content annotation
- Replace springfox @ApiIgnore on method parameters with @Parameter(hidden = true)
- Migrate @ApiImplicitParam to @Parameter
- Migrate from @ApiImplicitParams to @Parameters
- Migrate from @ApiModelProperty to @Schema
- Migrate from @ApiModel to @Schema
- Migrate from @ApiOperation to @Operation
- Migrate @ApiParam(allowableValues) to @Parameter(schema)
- Migrate @ApiParam(defaultValue) to @Parameter(schema)
- Migrate from @ApiParam to @Parameter
- Migrate from @ApiResponses to @ApiResponses
- Migrate from @Api to @Tag
- Migrate from @SwaggerDefinition to @OpenAPIDefinition
- Migrate from Swagger to OpenAPI
- Use Jakarta Swagger Artifacts
org.openrewrite.recipe:rewrite-pmd0.4.0 · MSAL
org.openrewrite.recipe:rewrite-prethink1.9.0 · MSAL
org.openrewrite.recipe:rewrite-quarkus2.39.0 · Apache 2.0
- Add a Quarkus configuration property
- Change Quarkus configuration property key
- Change Quarkus configuration property value
- Use @ConfigMapping
- Configure quarkus-maven-plugin with reasonable defaults
- Delete Quarkus configuration property
- Add Quarkus 2 dependencies
- Migrate JavaEE Maven Dependencies to Quarkus 2
- Migrate JavaEE Code to Quarkus 2
- Migrate JavaEE to Quarkus 2
- Remove JavaEE dependencies
- Use native profile in quarkus-maven-plugin
- Use Mutiny multi.toHotStream()
- Quarkus 1.13 migration from Quarkus 1.11
- Use @GrpcClient
- Quarkus 2.x migration from Quarkus 1.x
- Remove avro-maven-plugin
- Use @Identifier("default-kafka-broker")
- Use PanacheEntityBase static methods
- Use Uni<T extends PanacheEntityBase>
- Use Uni<T extends ReactivePanacheMongoEntityBase>
- Search Quarkus profiles
- Find Quarkus property
- Migrate SLF4J Logger injection and usage to Quarkus static Log
org.openrewrite.recipe:rewrite-reactive-streams0.24.0 · Proprietary
- Reactor Best Practices
- Replace doAfterSuccessOrError calls with tap operator
- Replace various Processor.cache calls with their Sinks equivalent
- Replace ReplayProcessor.cacheLast() with Sinks.many().replay().latest()
- Replace ReplayProcessor.cacheLast() with Sinks.many().replay().latest()
- Replace various Processor.create calls with their Sinks equivalent
- Replace DirectProcessor.create() with Sinks.many().multicast().directBestEffort()
- Replace EmitterProcessor.create(Boolean) with Sinks.many().multicast().onBackpressureBuffer(Queues.SMALL_BUFFER_SIZE, Boolean)
- Replace EmitterProcessor.create(int, Boolean) with Sinks.many().multicast().onBackpressureBuffer(int, Boolean)
- Replace EmitterProcessor.create(int) with Sinks.many().multicast().onBackpressureBuffer(int)
- Replace EmitterProcessor.create() with Sinks.many().multicast().onBackpressureBuffer()
- Replace MonoProcessor.create() with Sinks.one()
- Replace ReplayProcessor.create(int, false) with Sinks.many().replay().limit(int)
- Replace ReplayProcessor.create(int, true) with Sinks.many().replay().all(int)
- Replace ReplayProcessor.create(int) with Sinks.many().replay().limit(int)
- Replace ReplayProcessor.createSizeAndTimeout(int, Duration, Scheduler) with Sinks.many().replay().limit(int, Duration, Scheduler)
- Replace ReplayProcessor.createSizeAndTimeout(int, Duration) with Sinks.many().replay().limit(int, duration)
- Replace ReplayProcessor.createTimeout(Duration, Scheduler) with Sinks.many().replay().limit(Duration, Scheduler)
- Replace ReplayProcessor.createTimeout(Duration) with Sinks.many().replay().limit(duration)
- Replace ReplayProcessor.create() with Sinks.many().replay().all()
- Replace UnicastProcessor.create(Queue, Consumer, Disposable) with Sinks.many().unicast().onBackpressureBuffer(Queue, Disposable)
- Replace UnicastProcessor.create(Queue, Disposable) with Sinks.many().unicast().onBackpressureBuffer(Queue, Disposable)
- Replace UnicastProcessor.create(Queue) with Sinks.many().unicast().onBackpressureBuffer(Queue)
- Replace UnicastProcessor.create() with Sinks.many().unicast().onBackpressureBuffer()
- Migrate to Reactor 3.5
org.openrewrite.recipe:rewrite-rewrite0.38.0 · MSAL
- Migrate from OpenRewrite annotations to JSpecify
- Add a blank line around fields with annotations
- One classpath argument per line
- Correctly spaced descriptions
- Declarative recipe best practices
- Make declarative recipes singletons
- End declarative recipe descriptions with a period
- Use a standard name for ExecutionContext
- Find method calls and say what to do instead
- Find OpenRewrite recipes
- Find visitor instances shared across getVisitor() calls
- Generate InlineMethodCalls recipes for deprecated delegating methods
- Inline nested visitor classes into the returning method
- Use J.Literal.isLiteralValue(expression, null)
- Java Recipe best practices
- Use ListUtils.filter instead of mapping elements to null
- Use a lowercase x as version wildcard in declarative recipes
- Find missing @Option example values
- Recipe classes should not have mutable static fields
- Recipe classes should be public
- Use of @EqualsAndHashCode on Recipe
- Recipe nullability best practices
- Recipe testing best practices
- Remove consecutive duplicate entries from declarative recipe lists
- Remove the trailing colon from declarative recipe entries without options
- Reorder maybeRemoveImport before maybeAddImport
- Remove @NlsRewrite annotations from Recipe classes
- Remove elements annotated with @ToBeRemoved past their date
- Show @DocumentExamples first
- Replace null with RewriteTest.doesNotExist()
- RewriteTest classes should not be public
- Automatically select recipe examples from the unit test cases of a recipe
- Remove RecipeSpec.cycles(int) calls that restate the default
- Single @DocumentExample per test class
- Minimal indentation for SourceSpecs text blocks
- New line at the end of SourceSpecs text blocks
- Make matcher fields static final constants
- Drop redundant conditions around maybeAddImport and maybeRemoveImport
- Migrate tests to Java 21
- Replace getDisplayName() and getDescription() methods with fields
- Replace getEstimatedEffortPerOccurrence() method with field
- Use JavaTemplate.apply() static method
- Use UsesMethod and DeclaresMethod preconditions with MethodMatchers
- Refactor RewriteTest to use defaults method
- Use StringUtils utility methods
- Use StringUtils#isBlank(String)
- Use !StringUtils#isBlank(String)
- Use StringUtils#isNotEmpty(String)
- Use StringUtils#isNullOrEmpty(String)
- Replace getTags() method with field
- Use Tree.randomId() in LST constructors
- Use TreeVisitor#reduce instead of a captured accumulator
- Use visit with parent cursor when calling from another visitor
- Inline calls to deprecated OpenRewrite methods
- OpenRewrite recipe best practices
org.openrewrite.recipe:rewrite-spring6.44.0 · MSAL
- Add -parameters compiler flag for Spring in Gradle
- Add io.spring.dependency-management plugin, if in use
- Add missing Flyway module for MySQL
- Add missing Flyway module for Oracle
- Add missing Flyway module for PostgreSQL
- Add missing Flyway module for SQL Server
- Migrate to Flyway 10
- Add a Spring configuration property
- Use TLS for AMQP connection strings
- Add PlatformTransactionManager to tasklet() and chunk() calls
- Convert receive type in some invocation of StepExecution.xx()
- Migrate JobParameter.toString() to JobParameter.getValue().toString()
- Transform classes that extend *ListenerSupport to implement the *Listener interfaces instead
- Migrate ItemWriter
- Migrate JobBuilderFactory to JobBuilder
- Add class argument to JobParameters
- Migrate method when it annotated by Spring Batch API
- Migrate StepBuilderFactory to StepBuilder
- Migrate Date to LocalDateTime for Spring Batch timestamp methods
- Migrate to the new chunk-oriented step model
- Remove DefaultBatchConfigurer
- Transform classes that extend a given class to implement the given interface instead
- Migrate to Spring Batch 5.0 from 4.3
- Migrate to Spring Batch 6.0 from 5.2
- Change the type of skipCount parameter in SkipPolicy from int to long
- Add missing @Configuration annotation
- Add spring-boot-starter-validation if needed
- Adjust configuration classes to use the WebServerFactoryCustomizer interface
- Migrate multi-condition @ConditionalOnBean annotations
- Migrate multi-condition @ConditionalOnBean annotations from Boot 1.x
- Add @DependsOnDatabaseInitialization to Spring beans and components depending on javax.sql.DataSource
- Unconditionally add @DependsOnDatabaseInitialization to Spring beans and components depending on javax.sql.DataSource
- Use ErrorAttributes#getErrorAttributes(WebRequest, ErrorAttributeOptions)
- Convert HeadersConfigurer chained calls into Lambda DSL
- Convert HttpSecurity chained calls into Lambda DSL
- Add javax.validation-api dependency
- Replace micrometer-spring-legacy with spring-boot-starter-actuator
- Merge Spring bootstrap.yml with application.yml
- Migrate deprecated ActuatorMediaType to ApiVersion#getProducedMimeType
- Use PingHealthIndicator
- Migrate spring.artemis.host and spring.artemis.port to spring.artemis.broker-url
- Use EnableConfigurationProperties.VALIDATOR_BEAN_NAME
- Migrate flyway and liquibase credentials
- Migrate null credentials
- Migrate null credentials
- Use DiskSpaceHealthIndicator(File, DataSize)
- Use org.springframework.boot.web.servlet.error.ErrorController
- Use ErrorProperties#IncludeStacktrace.ON_PARAM
- Use javax.validation.constraints
- Migrate deprecated Spring Boot EmbeddedDatabaseConnection.HSQL
- Use org.springframework.boot.autoconfigure.http.HttpMessageConverters
- Use org.springframework.boot.web.server.LocalServerPort
- Migrate to recommended constants in LogbackLoggingSystemProperties from deprecated values in LoggingSystemProperties
- Use MultipartConfigFactory with DataSize arguments
- Use RestClientBuilderCustomizer
- Use RestTemplateBuilder#basicAuthentication
- Use RestTemplateBuilder#setConnectTimeout(Duration) and RestTemplateBuilder#setReadTimeout(Duration)
- Use org.springframework.boot.web.servlet.support.SpringBootServletInitializer
- Use WebServerFactoryCustomizer
- Use isEagerFilterInit()
- Use setEagerFilterInit(boolean)
- Use WebTestClientBuilderCustomizer
- Use AutoConfiguration#imports
- Migrate @OutputCaptureRule to @ExtendWith(OutputCaptureExtension.class)
- Remove obsolete Spring JUnit runners
- Remove stale mockito.version property predating the Mockito BOM
- Replace EnvironmentTestUtils with TestPropertyValues
- Replace @ExtendWith and @ContextConfiguration with @SpringJUnitConfig
- Migrate RestTemplateBuilder
- Move SAML relying party identity provider property to asserting party
- In Spring Boot 2.5 a DefaultConfigurationCustomizer can now be used in favour of defining one or more *Provider beans
- Integration scheduler pool size
- Find patterns that require updating for Spring Boot 2.5
- Applications using logging shutdown hooks
- Find projects affected by changes to the default error view message attribute
- Convert ServerHttpSecurity chained calls into Lambda DSL
- Spring Boot 2.x best practices
- Migrate Spring Boot 2.x projects to JUnit 5 from JUnit 4
- Use spring-boot.run.agents configuration key in spring-boot-maven-plugin
- Migrate Spring Boot properties to 2.0
- Migrate Spring Boot properties to 2.1
- Migrate Spring Boot properties to 2.2
- Migrate Spring Boot properties to 2.3
- Migrate Spring Boot properties to 2.4
- Migrate Spring Boot properties to 2.5
- Migrate Spring Boot properties to 2.6
- Migrate Spring Boot properties to 2.7
- Remove redundant @ExtendWith(SpringExtension.class)
- Remove unnecessary Spring @RunWith
- Upgrade Spock to a Groovy 3 compatible variant
- Migrate from Spring Boot 1.x to 2.0
- Migrate to Spring Boot 2.1
- Migrate to Spring Boot 2.2
- Migrate to Spring Boot 2.3
- Migrate to Spring Boot 2.4
- Upgrade to Spring Boot 2.5
- Migrate to Spring Boot 2.6
- Migrate to Spring Boot 2.7
- Remove the deprecated properties additional-keys-to-sanitize from the configprops and env end points
- Add trailing slash to Spring routes
- Add SetUseTrailingSlashMatch() in configuration
- Add @Valid to nested properties in @ConfigurationProperties
- Change com.datastax.oss to org.apache.cassandra
- Add @Configuration to classes with @EnableXXXSecurity annotations
- Downgrade Jakarta Servlet API to 5.0 when using Jetty
- Enable virtual threads on Java 21
- Maintain trailing slash URL mappings
- Migrate Dropwizard dependencies to Spring Boot 3.x
- Use spring.reactor.context-propagation property
- Rename server.max-http-header-size to server.max-http-request-header-size
- Migrate SAP Cloud Foundry logging support to Spring Boot 3.x
- Migrate Thymeleaf dependencies to Spring Boot 3.x
- Migrate WebMvcTagsProvider to DefaultServerRequestObservationConvention
- Bean methods should return concrete types
- Relocate launcher classes
- Remove Unnecessary @ConstructorBinding
- Remove @EnableBatchProcessing from Spring Boot applications
- Remove SolrAutoConfiguration
- Rename logback.xml to logback-spring.xml
- Replace deprecated setters in RestTemplateBuilder
- Replace RestTemplateBuilder.requestFactory(Function) with requestFactoryBuilder
- Replace String literals with Spring constants
- Spring Boot 3.3 best practices
- Spring Boot 3.3 best practices (only)
- Migrate Spring Boot properties to 3.0
- Migrate Spring Boot properties to 3.1
- Migrate Spring Boot properties to 3.2
- Migrate Spring Boot properties to 3.3
- Migrate Spring Boot properties to 3.4
- Migrate enabled to access Spring Boot properties
- Migrate Spring Boot properties to 3.5
- Update Prometheus Pushgateway dependency coordinates
- Upgrade MyBatis to Spring Boot 2.0
- Upgrade MyBatis to Spring Boot 2.1
- Upgrade MyBatis to Spring Boot 2.2
- Upgrade MyBatis to Spring Boot 2.3
- Upgrade MyBatis to Spring Boot 2.4
- Upgrade MyBatis to Spring Boot 2.5
- Upgrade MyBatis to Spring Boot 2.6
- Upgrade MyBatis to Spring Boot 2.7
- Upgrade MyBatis to Spring Boot 3.0
- Upgrade MyBatis to Spring Boot 3.2
- Migrate to Spring Boot 3.0
- Migrate to Spring Boot 3.1
- Migrate to Spring Boot 3.2
- Migrate to Spring Boot 3.3
- Migrate to Spring Boot 3.4
- Migrate to Spring Boot 3.5
- Add @AutoConfigureMockMvc if necessary
- Add @AutoConfigureTestRestTemplate if necessary
- Add @AutoConfigureWebTestClient if necessary
- Add Spring Boot 4.0 modular starter dependencies
- Manage Spring Boot directly when a third-party BOM manages an older version
- Add spring-boot-starter-data-mongodb-reactive-test for reactive MongoDB tests
- Add spring-boot-starter-data-mongodb-test for imperative MongoDB tests
- Add spring-boot-starter-flyway if using Flyway
- Migrate packages to modular starters
- Migrate a Spring Boot 3 jackson-bom.version override to jackson-2-bom.version
- Migrate jsonschema2pojo configuration to Spring Boot 4
- Migrate Liquibase property values passed to SpringLiquibase
- Migrate OpenAPI Generator spring configuration to Spring Boot 4
- Migrate to Spring Boot 4.0 modular starters
- Relocate Spring Boot web server classes to their Spring Boot 4.0 packages
- Rename Spring Boot 4.0 starters with managed versions
- Replace @MockBean and @SpyBean
- Migrate Spring Boot properties to 4.0
- Migrate Spring Boot properties to 4.1
- Unwrap @MockBeans and @SpyBeans container annotations
- Migrate to Spring Boot 4.0
- Find Spring Boot repositories
- Change parameter type for a method declaration
- Change the key of a Spring application property
- Change the value of a Spring application property
- Add logging.pattern.level for traceId and spanId
- Upgrade dependencies to Spring Cloud 2022
- Migrate Spring Cloud Sleuth 3.1 to Micrometer Tracing 1.0
- Migrate @RequestMapping on FeignClient to @FeignClient path attribute
- Migrate to Spring Cloud 2022
- Upgrade dependencies to Spring Cloud 2023
- Migrate to Spring Cloud 2023
- Upgrade dependencies to Spring Cloud 2024
- Migrate to Spring Cloud 2024
- Add Spring Cloud dependencies BOM
- Upgrade dependencies to Spring Cloud 2025
- Migrate to new Spring Cloud Gateway modules and starters
- Migrate Spring Cloud Gateway properties
- Migrate Spring Cloud Gateway Proxy WebFlux properties
- Migrate Spring Cloud Gateway Proxy WebMvc properties
- Migrate Spring Cloud Gateway WebFlux properties
- Migrate Spring Cloud Gateway WebMvc properties
- Migrate to Spring Cloud 2025
- Migrate to Spring Cloud 2025.1
- Comment out Spring properties
- Convert auto-configuration exclude to excludeName
- Convert JdbcTemplate.queryForLong(..) to queryForObject(..)
- Make AuditorAware.getCurrentAuditor return Optional
- Use JpaSort.of(..)
- Add CrudRepository to interfaces extending PagingAndSortingRepository
- Use QuerydslPredicateExecutor<T>
- Replace @Query annotation by @NativeQuery when possible
- Replace RepositoryRestConfigurerAdapter with RepositoryRestConfigurer
- Use new SimpleMongoClientDbFactory(String)
- Migrate to Spring Data 2.3
- Migrate to Spring Data JPA 2.5
- Migrate to Spring Data JPA 2.7
- Migrate to Spring Data 3.0
- Migrate to Spring Data JPA 3.4
- Migrate to Spring Data 4.0
- Migrate to Spring Data MongoDB 5.0
- Use TLS for JDBC connection strings
- Delete a Spring configuration property
- Migrate ApiInfoBuilder to Info
- Migrate Docket to GroupedOpenAPI
- Migrate SpringFox SecurityConfiguration bean to Springdoc Swagger UI properties
- Rewrite safe PathSelectors.regex(...) calls as PathSelectors.ant(...)
- Remove @Import(BeanValidatorPluginsConfiguration.class)
- Replace elements of SpringFox's security with Swagger's security models
- Expand Spring YAML properties
- @Bean methods may not return void
- Remove public from @Bean methods
- Use Environment#acceptsProfiles(Profiles)
- Migrate setConnectTimeout(int) to ConnectionConfig setConnectTimeout(..)
- Migrate setReadTimeout(int) to SocketConfig setSoTimeout(..)
- Use varargs equivalents for deprecated JdbcTemplate signatures
- Migrate org.springframework.util.Base64Utils to java.util.Base64
- Replaces deprecated ClientHttpResponse#getRawStatusCode()
- Migrate HandlerInterceptorAdapter to HandlerInterceptor
- Migrate HandlerResult.hasExceptionHandler() to getExceptionHandler()
- Migrate org.springframework.web.reactive.HandlerResult.setExceptionHandler method
- Convert InstantiationAwareBeanPostProcessorAdapter to SmartInstantiationAwareBeanPostProcessor
- Migrate MethodArgumentNotValidException.errorsToStringList and resolveErrorMessages
- Migrate ResourceHttpMessageWriter.addHeaders
- Migrate ResponseEntityExceptionHandler from HttpStatus to HttpStatusCode
- Migrate breaking changes in ResponseStatusException
- Migrate ResponseStatusException#getRawStatusCode() to getStatusCode().value()
- Migrate ResponseStatusException#getStatus() to getStatusCode()
- Migrate removed Spring Assert methods
- Migrate deprecated UriComponentsBuilder methods
- Migrate deprecated Spring Web UTF8 MediaType enums
- Migrate WebExchangeBindException.resolveErrorMessages
- Replace WebMvcConfigurerAdapter with WebMvcConfigurer
- Move setConnectTimeout(int) to a locally wired ConnectionConfig
- Migrate to Spring Framework 5.0
- Migrate to Spring Framework 5.1
- Migrate to Spring Framework 5.2
- Migrate to Spring Framework 5.3
- Migrate to Spring Framework 6.0
- Migrate to Spring Framework 6.1
- Migrate to Spring Framework 6.2
- Migrate to Spring Framework 7.0
- Use ObjectUtils#isEmpty(Object)
- Replace String literals with HttpHeaders constants
- Replace String literals with MediaType constants
- Simplify unnecessary MediaType.parseMediaType() and MediaType.valueOf() calls
- Simplify WebTestClient expressions
- Find Spring Web dependency
- Remove implicit web annotation names
- Move DefaultErrorHandler.setBackOff(BackOff) to the constructor
- Change KafkaOperations.send* return type to CompletableFuture
- Use Duration in KafkaTestUtils
- Remove KafkaOperations.usingCompletableFuture()
- Migrate deprecated Spring Kafka error handlers
- Migrate to Spring Kafka 3.0
- Migrate to Spring Kafka 4.0
- Mark additional files as Spring configuration
- Migrate JAX-RS MediaType to Spring MVC MediaType
- Migrate JAX-RS Response to Spring MVC ResponseEntity
- Remove the @Autowired annotation on inferred constructor
- Remove HttpExchange annotations
- Remove unnecessary @Repository annotation from Spring Data Repository sub-interface
- Remove @RequestMapping annotations
- Migrate Brave API to OpenTelemetry API
- Migrate Datadog tracing to OpenTelemetry
- Migrate from Zipkin to OpenTelemetry OTLP
- Migrate New Relic Agent to OpenTelemetry
- Migrate OpenTracing API to OpenTelemetry API
- Migrate from Spring Cloud Sleuth to OpenTelemetry
- Complete migration to OpenTelemetry
- Normalize Spring properties to kebab-case
- Normalize Spring application*.properties properties to kebab-case
- Normalize Spring application*.{yml,yaml} properties to kebab-case
- Remove auto-configuration exclude
- Rename bean
- Find HTTP API calls via RestTemplate
- Find Spring API endpoints
- Find Spring @ConfigurationProperties
- Find Spring components
- Spring Security best practices
- Replace HttpSecurity.authorizeRequests(...) with HttpSecurity.authorizeHttpRequests(...) and ExpressionUrlAuthorizationConfigurer, AbstractInterceptUrlConfigurer with AuthorizeHttpRequestsConfigurer, etc
- Convert requestMatchers chain to securityMatcher
- Rename the package name from com.nimbusds.jose.shaded.json to net.minidev.json
- Replace global method security with method security
- Replace global method security with method security
- Finds uses of Encryptors.queryableText()
- Use new Argon2PasswordEncoder factory methods
- Use new Pbkdf2PasswordEncoder factory methods
- Use new SCryptPasswordEncoder factory methods
- Migrate to Spring Security 5.7
- Migrate to Spring Security 5.8
- Use the new requestMatchers methods
- Use the new securityMatcher() method
- Spring Security 5.4 introduces the ability to configure HttpSecurity by creating a SecurityFilterChain bean
- Convert HttpSecurity::apply chained calls into HttpSecurity::with Lambda DSL
- Convert OAuth2ClientConfigurer chained calls into Lambda DSL
- Convert OAuth2LoginConfigurer chained calls into Lambda DSL
- Convert OAuth2ResourceServerConfigurer chained calls into Lambda DSL
- Remove calls matching AuthenticationEntryPointFailureHandler.setRethrowAuthenticationServiceException(true)
- Remove unnecessary filterSecurityInterceptorOncePerRequest(false) when upgrading to Spring Security 6
- Remove unneeded oauth2Login config when upgrading to Spring Security 6
- Remove unnecessary use-authorization-manager for message security in Spring Security 6
- Remove explicit SecurityContextConfigurer.requireExplicitSave(true) opt-in
- Remove the useAuthorizationManager=true attribute from @EnableReactiveMethodSecurity
- Keep the Spring Security 5 RequestCache querying behavior
- Migrate to Spring Security 6.0
- Migrate to Spring Security 6.1
- Migrate to Spring Security 6.2
- Migrate to Spring Security 6.3
- Migrate to Spring Security 6.4
- Migrate to Spring Security 6.5
- Remove explicit configuration of SHA-256 as encoding and matching algorithm for TokenBasedRememberMeServices
- Remove throws exception in SecurityConfigurer methods init and configure
- Migrate to Spring Security 7.0
- Separate application.properties by profile
- Separate application YAML by profile
- Replace SpringClassRule and SpringMethodRule with JUnit 5 SpringExtension
- Update the API manifest
- Migrate ListenableFuture to CompletableFuture
- Remove remaining Springfox dead code
- Migrate from springdoc-openapi-common to springdoc-openapi-starter-common
- Replace SpringFox dependencies
- Migrate from SpringFox Swagger to SpringDoc and OpenAPI
- Migrate from Swagger to SpringDoc and OpenAPI
- Upgrade to SpringDoc 2.1
- Upgrade to SpringDoc 2.2
- Upgrade to SpringDoc 2.5
- Upgrade to SpringDoc 2.6
- Upgrade to SpringDoc 2.8
- Upgrade to SpringDoc 3.0
- Add -parameters compiler flag for Spring in Maven
- Upgrade Spring dependencies
org.openrewrite.recipe:rewrite-spring-to-quarkus0.16.0 · MSAL
- Add Quarkus Maven plugin
- Add Spring compatibility extensions for commonly used annotations
- Convert @ConfigurationProperties class to @ConfigMapping interface
- Configure Quarkus Native Build Support
- Customize Quarkus Maven Plugin Goals
- Customize Quarkus BOM Version
- Replace Derby driver with Quarkus JDBC Derby
- Replace Derby test driver with Quarkus JDBC Derby (test scope)
- Migrate @EnableXyz annotations to Quarkus extensions
- Replace H2 driver with Quarkus JDBC H2
- Replace H2 test driver with Quarkus JDBC H2 (test scope)
- Convert JPA Entity to Panache Entity
- Replace Spring Boot starter dependencies with Quarkus equivalents
- Migrate @ConfigurationProperties to Quarkus @ConfigMapping
- Migrate database drivers to Quarkus JDBC extensions
- Migrate JPA Entities to Panache Entities
- Add or replace Spring Boot build plugin with Quarkus build plugin
- Migrate Additional Spring Web Parameter Annotations
- Migrate Spring Boot Actuator to Quarkus Health and Metrics
- Remove Spring Boot DevTools
- Migrate Spring Cloud Config Client to Quarkus Config
- Migrate Spring Cloud Service Discovery to Quarkus
- Migrate Spring Data MongoDB to Quarkus Panache MongoDB
- Migrate Spring Events to CDI Events
- Migrate Spring Boot Testing to Quarkus Testing
- Migrate Spring @Transactional to Jakarta @Transactional
- Migrate Spring Validation to Quarkus
- Module is part of a Spring Boot 3 or 4 application
- Convert MongoRepository to PanacheMongoRepository
- Remove Spring Boot parent POM
- Replace @SpringBootApplication with Quarkus equivalent
- Convert Spring ResponseEntity to JAX-RS Response
- Replace SpringApplication.run() with Quarkus.run()
- Replace Spring @Bean with CDI @Produces
- Replace Spring Boot ActiveMQ with Quarkus Artemis JMS
- Replace Spring Boot Actuator with Quarkus SmallRye Health
- Replace Spring Boot AMQP with Quarkus Messaging RabbitMQ
- Replace Spring Boot AMQP with Quarkus Messaging AMQP
- Replace Spring Boot Artemis with Quarkus Artemis JMS
- Replace Spring Boot Batch with Quarkus Scheduler
- Replace Spring Boot Cache with Quarkus Cache
- Replace Spring Boot Data JPA with Quarkus Hibernate ORM Panache
- Replace Spring Boot Data MongoDB with Quarkus MongoDB Panache
- Replace Spring Boot Data Redis with Quarkus Redis Client
- Replace Spring Boot Data REST with Quarkus REST
- Replace Spring Boot Elasticsearch with Quarkus Elasticsearch REST Client
- Replace Spring Boot Integration with Camel Quarkus
- Replace Spring Boot JDBC with Quarkus Agroal
- Replace Spring Boot Mail with Quarkus Mailer
- Replace Spring Boot OAuth2 Client with Quarkus OIDC Client
- Replace Spring Boot OAuth2 Resource Server with Quarkus OIDC
- Replace Spring Boot Quartz with Quarkus Quartz
- Replace Spring Boot Security with Quarkus Security
- Replace Spring Boot Test with Quarkus JUnit 5
- Replace Spring Boot Thymeleaf with Quarkus Qute
- Migrate Spring Boot to Quarkus
- Replace Spring Boot Validation with Quarkus Hibernate Validator
- Replace Spring Boot WebFlux with Quarkus REST Client
- Replace Spring Boot WebSocket with Quarkus WebSockets
- Replace Spring Boot Web with Quarkus RESTEasy Classic
- Replace Spring Boot Web with Quarkus REST
- Convert Spring @EventListener to CDI @Observes
- Convert Spring HealthIndicator to Quarkus HealthCheck
- Replace Spring Kafka with Quarkus Kafka Client
- Replace Spring Kafka with Quarkus Messaging Kafka
- Migrate Spring annotations to CDI
- Replace Spring @Value with CDI @ConfigProperty
- Convert Spring Web annotations to JAX-RS
org.openrewrite.recipe:rewrite-sql2.23.0 · Proprietary
- Find cartesian joins
- Find constant predicates that are always true or always false
- Find correlated aggregate subqueries in WHERE
- Find COUNT subqueries used as existence checks
- Find DISTINCT masking join fan-out
- Find UPDATE and DELETE statements without a WHERE clause
- Find HAVING conditions that use no aggregate
- Find INSERT ... VALUES statements that omit the column list
- Find LIKE patterns starting with a wildcard
- Find row limiters without an ORDER BY
- Find non-sargable predicates
- Find NOT IN with a subquery
- Find OFFSET-based pagination
- Find optional filters written as OR parameter IS NULL
- Find ORDER BY on a random function
- Find oversized IN lists
- Find scalar subqueries in the SELECT list
- Find SELECT * queries
- Find UNION where UNION ALL may suffice
- Remove redundant ORDER BY from subqueries
- Replace = NULL and <> NULL with IS NULL and IS NOT NULL
- Find and fix SQL performance anti-patterns
- Change a SQL function name
- Convert SQL data type
- Convert FLOAT to REAL or DOUBLE PRECISION
- Convert MINUS to EXCEPT
- Convert Oracle data types to PostgreSQL
- Convert Oracle functions to PostgreSQL
- Convert SQL Server data types to PostgreSQL
- Convert SQL Server functions to PostgreSQL
- Convert SYSDATE and SYSTIMESTAMP to standard SQL
- Convert TOP to LIMIT
- Find SQL in code and resource files
- Format SQL in string text blocks
- Migrate Oracle SQL to PostgreSQL
- Migrate SQL Server to PostgreSQL
- Remove FROM DUAL
- Find SQL function
- Find stored procedure calls
org.openrewrite.recipe:rewrite-static-analysis2.48.0 · MSAL
- Inline deprecated delegating methods
- Constructors of an abstract class should not be declared public
- Add @Serial annotation to serialVersionUID
- Add serialVersionUID to a Serializable class when missing
- All branches in a conditional should not have the same implementation
- Annotate methods which may return null with @Nullable
- Annotate null-checked method parameters with @Nullable
- Annotate required method parameters with @NonNull
- AtomicBoolean, AtomicInteger, and AtomicLong equality checks compare their values
- Avoid boxed boolean expressions
- new BigDecimal(double) should not be used
- BigDecimal rounding constants to RoundingMode enums
- Boolean checks should not be inverted
- Modernize BufferedWriter creation and prevent file descriptor leaks
- Convert new BufferedWriter(new FileWriter(File, boolean)) to Files.newBufferedWriter(Path, StandardOpenOption)
- Convert new BufferedWriter(new FileWriter(File)) to Files.newBufferedWriter(Path)
- Convert new BufferedWriter(new FileWriter(String, boolean)) to Files.newBufferedWriter(Path, StandardOpenOption)
- Convert new BufferedWriter(new FileWriter(String)) to Files.newBufferedWriter(Path)
- Case-insensitive comparisons do not alter case
- Catch clause should do more than just rethrow
- Chain StringBuilder.append() calls
- Code cleanup
- Mergeable if statements should be combined
- Collection.toArray() should be passed an array of the proper type
- Combine semantically equal catch blocks
- Properly use declaration-site type variance for well-known types
- Common static analysis issues
- Enum values should be compared with ==
- Control flow statement indentation
- Covariant equals
- Properly use declaration-site type variance
- Default comes last
- Remove empty blocks
- Equals avoids null
- Use String.contentEquals(CharSequence) instead of String.equals(CharSequence.toString())
- Set charset encoding explicitly when calling String#getBytes
- Explicit initialization
- Use explicit types on lambda arguments
- Use explicit this.field and this.method()
- Externalizable classes have no-arguments constructor
- Fall through
- Finalize classes with private constructors
- Finalize local variables
- Finalize method arguments
- Finalize private fields
- Find ignored results of @CheckReturnValue methods
- Find main methods with a throws clause
- Find public methods missing Javadoc
- Find new exceptions thrown without the caught exception
- Find non-case labels in switch statements
- Find JVM exit calls
- Find ThreadGroup usages
- Find Object.wait() calls made while holding multiple monitors
- Fix String#format and String#formatted expressions
- for loop counters should use postfix operators
- for loop counters incremented in update
- Hidden field
- Hide utility class constructor
- Use indexOf(String, int)
- indexOf() replaceable by contains()
- indexOf should not compare greater than zero
- Inline variable
- Change code to use Java 17's instanceof pattern matching
- Restore interrupted state in catch blocks
- Use Collection#isEmpty() instead of comparing size()
- Use Map#isEmpty() instead of comparing size()
- Move annotation to type instead of field
- Java API best practices
- Simplify lambda blocks to expressions
- Rename packages to lowercase
- Mask credit card numbers
- Remove non-ASCII characters from Javadoc
- Members should not have names differing only by capitalization
- Branches with identical implementations should be merged
- Standardize method name casing
- switch statements should have at least 3 case clauses
- Add missing @Override to overriding and implementing methods
- Modifier order
- Convert while (true) with initial if break to loop condition
- No multiple variable declarations
- Fix missing braces
- Nested enums are not static
- Change StringBuilder and StringBuffer character constructor argument to String
- No double brace initialization
- Use Collections#emptyList(), emptyMap(), and emptySet()
- Use comparison rather than equality checks in for conditions
- Don't use final on local variables
- Remove finalize() method
- No primitive wrappers for #toString() or #compareTo(..)
- Jump statements should not be redundant
- Unnecessary String#toString
- Unnecessary String#valueOf(..)
- Move @Nullable method annotations to the return type
- finalize() calls super
- Replace catch(Exception) with specific declared exceptions thrown in the try block
- Operator wrapping
- Prefer direct comparison of numbers
- Prefer increment/decrement and compound assignment operators
- Prefer System.getProperty(..) over System.getenv(..)
- Use primitive wrapper valueOf method
- Redundant File creation
- Replace referential equality operators with Object equals method invocations when the operands both override Object.equals(Object obj)
- Remove Object.finalize() invocations
- Remove garbage collection invocations
- Remove duplicate annotations
- Related "if/else if" conditions should not be the same
- Remove Javadoc @param, @return, and @throws with no description
- Remove extra semicolons
- hashCode() should not be called on array instances
- Remove Java 14's instanceof pattern matching
- Remove author tags from Javadoc
- Remove methods that only call super
- Remove no argument super() constructor calls
- Remove redundant null checks before instanceof
- Remove redundant null checks before literal equals
- Remove redundant casts
- Variables should not be self-assigned
- Remove System.out#println and System.err#println statements
- Remove toString() calls on arrays
- Map values should not be replaced unconditionally
- Unnecessary bit operations should not be performed
- Remove unneeded assertions
- Remove unneeded block
- Remove unreachable catch alternatives shadowed by earlier catch clauses
- Remove unused labels
- Remove unused local variables
- Remove unused private fields
- Remove unused private methods
- Rename caught exceptions in empty catch blocks to ignored
- Reformat local variable names to camelCase
- Rename methods named hashcode, equal, or tostring
- Reformat private field names to camelCase
- Reorder annotation attributes alphabetically
- Reorder annotations alphabetically
- Replace org.apache.commons.lang3.Validate#notNull with Objects#requireNonNull
- Replace A.class.isInstance(a) with a instanceof A
- Use empty array for Collection.toArray()
- Replace deprecated Runtime#exec() methods
- Replace duplicate String literals
- Use method references in lambda
- Replace Optional#isPresent() with Optional#ifPresent()
- Replace redundant String.format() invocations that are wrapped with PrintStream operations
- Replace StringBuilder#append with String
- Replace String concatenation with String.valueOf()
- Replace text block with regular string
- Replace calls to Thread.run() with Thread.start()
- Replace single-argument org.apache.commons.lang3.Validate#notNull with Objects#requireNonNull
- Replace varargs org.apache.commons.lang3.Validate#notNull with Objects#requireNonNull
- Week Year (YYYY) should not be used for date formatting
- Silly equality checks should not be made
- Simplify Arrays.asList(..) with varargs
- Simplify boolean expression
- Simplify boolean expressions using De Morgan's laws
- Simplify boolean return
- Simplify compound statement
- Simplify consecutive assignments
- Simplify constant if branch execution
- Simplify java.time.Duration units
- Simplify else branch if it only has a single if
- Simplify for loop boundary comparisons
- Identical expressions used with logical operators should be simplified
- Simplify ternary expressions
- Replace booleanExpression ? false : true with !booleanExpression
- Replace booleanExpression ? true : false with booleanExpression
- Add space after // in single-line comments
- Sorted set stream should be collected to LinkedHashSet
- Static members should be accessed via the class name
- Static methods need not be final
- Use String.equals() on String literals
- Ternary operators should not be nested
- Typecast parenthesis padding
- Remove catch for a checked exception if the try block does not throw that exception
- Unnecessary close in try-with-resources
- Unnecessary explicit type arguments
- Unnecessary final in try-with-resources
- Remove unnecessary parentheses
- Remove @Nullable and @CheckForNull annotations from primitives
- Unnecessary return as last statement in void method
- Unnecessary throws
- Unwrap else block after return or throw statement
- Unwrap @Repeatable annotations
- Upper case literal suffixes
- URL#equals() and URL#hashCode()
- URL#equals()
- URL#hashCode()
- Chain calls to builder methods
- Use Collection interfaces
- Use the diamond operator
- Replace java.util.Set#removeAll(java.util.Collection) with java.util.Collection#forEach(Set::remove)
- No C-style array declarations
- Use lambda expressions instead of anonymous classes
- Replace invocations of Collections#sort(List, Comparator) with List#sort(Comparator)
- Use Map#containsKey
- Iterate a Map's entrySet() rather than its keySet()
- Replace Object.notify() with Object.notifyAll()
- Use %n instead of \n in format strings
- Use StandardCharsets constants
- Use String.CASE_INSENSITIVE_ORDER
- Use String::replace() when first parameter is not a real regular expression
- Use System.lineSeparator()
- Use try-with-resources
- Prefer while over for loops
- Write octal values as decimal
org.openrewrite.recipe:rewrite-struts0.33.0 · Proprietary
- Migrate Struts 1 Action to Struts 2 ActionSupport
- Migrate JSP taglib directives for Struts 2
- Migrate Struts 1 JSP tags to Struts 2
- Migrate to Struts 2.x from Struts 1.x
- Migrate struts-config.xml to struts.xml
- Migrate web.xml from Struts 1 to Struts 2
- Migrate Struts 2.0 interceptors to action "aware" interfaces
- Migrate Struts date tag format patterns
- Migrate Dynamic Method Invocation to explicit action mappings
- Migrate OpenSymphony classes to Struts 6.0
- Migrate static OGNL method access to action wrapper methods
- Migrate to Struts 6.0
- Migrate to Struts 6.0 constants
- Migrate xwork-validator DTD to 1.0.4
- Remove deprecated Freemarker ?html built-in
- Upgrade Struts 6.0 dependencies
- Migrate to Struts 7.0
- Rename OpenSymphony / XWork classes to Struts 7 packages
- Align Struts XML constants for Struts 7
- Migrate DTD to a specific Struts version
- Find static OGNL method access
- Find Struts actions
org.openrewrite.recipe:rewrite-terraform3.19.0 · Proprietary
- Add Terraform configuration
- Add a nested block to a Terraform resource
- Best practices for AWS
- Disable Instance Metadata Service version 1
- Enable API gateway caching
- Enable point-in-time recovery for DynamoDB
- Scan images pushed to ECR
- Encrypt Aurora clusters
- Encrypt CodeBuild projects
- Encrypt DAX storage at rest
- Encrypt DocumentDB storage
- Encrypt EBS snapshots
- Encrypt EBS volume launch configurations
- Encrypt EBS volumes
- Encrypt EFS Volumes in ECS Task Definitions in transit
- Encrypt ElastiCache Redis at rest
- Encrypt ElastiCache Redis in transit
- Encrypt Neptune storage
- Encrypt RDS clusters
- Encrypt Redshift storage at rest
- Ensure Amazon EKS control plane logging enabled for all log types
- Ensure AWS CMK rotation is enabled
- Ensure AWS EFS with encryption for data at rest is enabled
- Ensure AWS EKS cluster endpoint access is publicly disabled
- Ensure AWS Elasticsearch domain encryption for data at rest is enabled
- Ensure AWS Elasticsearch domains have EnforceHTTPS enabled
- Ensure AWS Elasticsearch has node-to-node encryption enabled
- Ensure AWS IAM password policy has a minimum of 14 characters
- Ensure AWS Lambda function is configured for function-level concurrent execution limit
- Ensure AWS Lambda functions have tracing enabled
- Ensure AWS RDS database instance is not publicly accessible
- Ensure AWS S3 object versioning is enabled
- Ensure CloudTrail log file validation is enabled
- Ensure data stored in an S3 bucket is securely encrypted at rest
- Ensure detailed monitoring for EC2 instances is enabled
- Ensure EC2 is EBS optimized
- Ensure ECR repositories are encrypted
- Ensure enhanced monitoring for Amazon RDS instances is enabled
- Ensure IAM password policy expires passwords within 90 days or less
- Ensure IAM password policy prevents password reuse
- Ensure IAM password policy requires at least one lowercase letter
- Ensure IAM password policy requires at least one number
- Ensure IAM password policy requires at least one symbol
- Ensure IAM password policy requires at least one uppercase letter
- Ensure Kinesis Stream is securely encrypted
- Ensure RDS database has IAM authentication enabled
- Ensure RDS instances have Multi-AZ enabled
- Ensure respective logs of Amazon RDS are enabled
- Ensure the S3 bucket has access logging enabled
- Ensure VPC subnets do not assign public IP by default
- Make ECR tags immutable
- Upgrade AWS Aurora MySQL to version 3 (MySQL 8.0)
- Upgrade AWS Aurora PostgreSQL to 17
- Upgrade AWS RDS MySQL to 8.4
- Upgrade AWS RDS PostgreSQL to 17
- Use HTTPS for Cloudfront distribution
- Best practices for Azure
- Disable Kubernetes dashboard
- Enable Azure Storage Account Trusted Microsoft Services access
- Enable Azure Storage secure transfer required
- Enable geo-redundant backups on PostgreSQL server
- Encrypt Azure VM data disk with ADE/CMK
- Ensure activity log retention is set to 365 days or greater
- Ensure AKS policies add-on
- Ensure AKV secrets have an expiration date set
- Ensure all keys have an expiration date
- Ensure app service enables detailed error messages
- Ensure app service enables failed request tracing
- Ensure app service enables HTTP logging
- Ensure app services use Azure files
- Ensure a security contact phone number is present
- Ensure Azure application gateway has WAF enabled
- Ensure Azure App Service Web app redirects HTTP to HTTPS
- Ensure Azure key vault is recoverable
- Ensure Azure Network Watcher NSG flow logs retention is greater than 90 days
- Ensure Azure PostgreSQL database server with SSL connection is enabled
- Ensure Azure SQL server audit log retention is greater than 90 days
- Ensure Azure SQL server send alerts to field value is set
- Ensure Azure SQL Server threat detection alerts are enabled for all threat types
- Ensure FTP Deployments are disabled
- Ensure key vault allows firewall rules settings
- Ensure key vault enables purge protection
- Ensure key vault key is backed by HSM
- Ensure key vault secrets have content_type set
- Ensure log profile is configured to capture all activities
- Ensure managed identity provider is enabled for app services
- Ensure MSSQL servers have email service and co-administrators enabled
- Ensure MySQL is using the latest version of TLS encryption
- Ensure MySQL server databases have Enforce SSL connection enabled
- Ensure MySQL server disables public network access
- Ensure MySQL server enables geo-redundant backups
- Ensure MySQL server enables Threat Detection policy
- Ensure PostgreSQL server disables public network access
- Ensure PostgreSQL server enables infrastructure encryption
- Ensure PostgreSQL server enables Threat Detection policy
- Ensure public network access enabled is set to False for mySQL servers
- Ensure Send email notification for high severity alerts is enabled
- Ensure Send email notification for high severity alerts to admins is enabled
- Ensure standard pricing tier is selected
- Ensure storage account uses latest TLS version
- Ensure the storage container storing activity logs is not publicly accessible
- Ensure Web App has incoming client certificates enabled
- Ensure Web App uses the latest version of HTTP
- Ensure Web App uses the latest version of TLS encryption
- Set Azure Storage Account default network access to deny
- Change Terraform data source attribute
- Change Terraform module attribute
- Change Terraform provider configuration attribute
- Change Terraform required provider attribute
- Change Terraform resource attribute
- Change a single attribute inside a Terraform resource's nested block
- Enable PodSecurityPolicy controller on Google Kubernetes Engine (GKE) clusters
- Enable VPC flow logs and intranode visibility
- Enable VPC Flow Logs for subnetworks
- Ensure binary authorization is used
- Ensure compute instances launch with shielded VM enabled
- Ensure GCP cloud storage bucket with uniform bucket-level access are enabled
- Ensure GCP Kubernetes cluster node auto-repair configuration is enabled
- Ensure GCP Kubernetes engine clusters have legacy compute engine metadata endpoints disabled
- Ensure GCP VM instances have block project-wide SSH keys feature enabled
- Ensure IP forwarding on instances is disabled
- Ensure private cluster is enabled when creating Kubernetes clusters
- Ensure secure boot for shielded GKE nodes is enabled
- Ensure shielded GKE nodes are enabled
- Ensure the GKE metadata server is enabled
- Best practices for GCP
- Move provider version to required_providers
- Find required providers
- Find Terraform resource
- Use a long enough byte length for random resources
- Remove interpolation-only expressions
- Replace deprecated list() and map() functions
- Unquote variable type constraints
- Upgrade Terraform to 0.12
- Upgrade required_providers to object syntax
- Upgrade Terraform to 0.13
- Find removed provisioners
- Upgrade Terraform to 0.15
- Upgrade Terraform to 0.14
org.openrewrite.recipe:rewrite-testing-frameworks3.52.0 · MSAL
- ArchUnit 0.x upgrade
- Use Arquillian JUnit 5 extension
- Replace Arquillian JUnit 4 @InSequence with JUnit Jupiter @Order
- Adopt AssertJ Duration assertions
- AssertJ best practices
- Adopt AssertJ BigInteger assertions
- Replace isCloseTo with isEqualTo
- Replace isNotCloseTo with isNotEqualTo
- Replace isNotEqualTo(0) with isNotZero()
- Replace isEqualTo(1) with isOne()
- Replace isEqualTo(0) with isZero()
- Adopt AssertJ Byte assertions
- Replace isCloseTo with isEqualTo
- Replace isNotCloseTo with isNotEqualTo
- Replace isNotEqualTo(0) with isNotZero()
- Replace isEqualTo(1) with isOne()
- Replace isEqualTo(0) with isZero()
- Adopt AssertJ Double assertions
- Replace isEqualTo with isCloseTo
- Replace isCloseTo with isEqualTo
- Replace isNotCloseTo with isNotEqualTo
- Replace isNotEqualTo(0) with isNotZero()
- Replace isEqualTo(1) with isOne()
- Replace isEqualTo(0) with isZero()
- Adopt AssertJ Float assertions
- Replace isEqualTo with isCloseTo
- Replace isCloseTo with isEqualTo
- Replace isNotCloseTo with isNotEqualTo
- Replace isNotEqualTo(0) with isNotZero()
- Replace isEqualTo(1) with isOne()
- Replace isEqualTo(0) with isZero()
- Adopt AssertJ Integer assertions
- Replace isCloseTo with isEqualTo
- Replace isNotCloseTo with isNotEqualTo
- Replace isNotEqualTo(0) with isNotZero()
- Replace isEqualTo(1) with isOne()
- Replace isEqualTo(0) with isZero()
- Adopt AssertJ Long assertions
- Replace isCloseTo with isEqualTo
- Replace isNotCloseTo with isNotEqualTo
- Replace isNotEqualTo(0) with isNotZero()
- Replace isEqualTo(1) with isOne()
- Replace isEqualTo(0) with isZero()
- Adopt AssertJ Short assertions
- Replace isCloseTo with isEqualTo
- Replace isNotCloseTo with isNotEqualTo
- Replace isNotEqualTo(0) with isNotZero()
- Replace isEqualTo(1) with isOne()
- Replace isEqualTo(0) with isZero()
- Collapse consecutive assertThat statements
- Decompose assertThat on conjunctions into separate assertions
- Migrate Fest 2.x to AssertJ
- Replace AbstractDateAssert#isEqualToIgnoringMillis(java.util.Date) with isCloseTo(Date, long)
- JUnit assertArrayEquals to AssertJ
- JUnit assertEquals to AssertJ
- JUnit assertFalse to AssertJ
- JUnit assertInstanceOf to AssertJ
- JUnit assertNotEquals to AssertJ
- JUnit assertNotNull to AssertJ
- JUnit assertNull to AssertJ
- JUnit assertSame to AssertJ
- JUnit AssertThrows to AssertJ exceptionType
- JUnit assertTrue to AssertJ
- JUnit fail to AssertJ
- Migrate JUnit asserts to AssertJ
- Convert try-catch-fail blocks to AssertJ's assertThatThrownBy
- Migrate AssertionsForClassTypes and AssertionsForInterfaceTypes to Assertions
- Use Assertions.assertThatObject for ambiguous AssertionsForClassTypes.assertThat calls
- Place AssertJ descriptions and failure messages before the assertion
- Collapse assertThat followed by return into single statement
- Simplify AssertJ assertions on an array's length
- Simplify AssertJ assertions with literal arguments
- Shorten AssertJ assertions
- Simplify AssertJ assertions on == and != comparisons
- Simplify AssertJ assertions on instanceof expressions
- Simplify AssertJ chained assertions
- Simplify AssertJ chained assertions
- Simplify AssertJ assertions with hasSize argument
- Simplify literal-first AssertJ size assertions to hasSize
- Simplify redundant AssertJ assertion chains
- Simplify AssertJ assertions on SequencedCollection
- Simplify assertThat(collection.stream().map(...)) to assertThat(collection).extracting(...)
- Statically import AssertJ's assertThat
- Use Byteman JUnit 5 dependency
- Replace JUnit assertEquals(false, <boolean>) to assertFalse(<boolean>) / assertTrue(<boolean>)
- Remove unnecessary assertEquals delta argument for integral types
- assertEquals(a, null) to assertNull(a)
- Replace JUnit assertFalse(a.equals(b)) to assertNotEquals(a,b)
- Replace JUnit assertFalse(!<boolean>) to assertTrue(<boolean>)
- Replace JUnit assertFalse(a == null) to assertNotNull(a)
- Assertion arguments should be passed in the correct order
- Remove JUnit assertTrue(true) and assertFalse(false)
- Replace JUnit assertTrue(false) and assertFalse(true) with fail()
- Replace JUnit assertTrue(false, "reason") and assertFalse(true, "reason") with fail("reason")
- Replace JUnit assertTrue(false) and assertFalse(true) with fail()
- Replace JUnit assertNotEquals(false, <boolean>) to assertFalse(<boolean>) / assertTrue(<boolean>)
- Replace JUnit assertTrue(a == b) with assertEquals(a, b)
- Replace JUnit assertTrue(a.equals(b)) to assertEquals(a,b)
- Replace JUnit assertTrue(!<boolean>) to assertFalse(<boolean>)
- Replace JUnit assertTrue(a == null) to assertNull(a)
- Testing best practices
- Find test classes without tests
- Kotlin test methods should have return type Unit
- Remove empty tests without comments
- Remove test prefix from JUnit 5 tests
- Simplify throws statements of tests
- Test methods should have void return type
- Include an assertion in tests
- Remove public visibility of JUnit 5 tests
- Migrate from Java Faker to Datafaker
- Migrate the DBRiderTestExecutionListener to the @DBRider annotation
- Migrate rider-spring (JUnit4) to rider-junit5 (JUnit5)
- Migrate EasyMock code to Mockito
- Migrate from EasyMock to Mockito
- Replace EasyMock verify calls with Mockito verify calls
- Remove extends EasyMockSupport from test classes
- Add org.hamcrest:hamcrest if it is used
- Migrate Hamcrest assertThat(String, boolean) to AssertJ
- Use consistent Hamcrest matcher imports
- Migrate Hamcrest everyItem to AssertJ
- Migrate Hamcrest hasItem(Matcher) to AssertJ
- Migrate Hamcrest hasProperty to AssertJ
- Migrate from Hamcrest instanceOf matcher to JUnit 5
- Migrate Hamcrest is(Object) to AssertJ
- Migrate from Hamcrest Matcher to AssertJ
- Migrate from Hamcrest Matcher to JUnit 5
- Migrate Hamcrest not(Matcher) to AssertJ
- Migrate anyOf and allOf Hamcrest matchers to AssertJ
- Migrate Hamcrest assertions to AssertJ
- Migrate Hamcrest assertions to JUnit Jupiter
- Remove Hamcrest is(Matcher)
- Convert JMockit @Mocked and @Injectable annotated arguments
- Rewrite JMockit Expectations, NonStrictExpectations, Verifications, VerificationsInOrder, FullVerifications
- Rewrite JMockit MockUp to Mockito statements
- Migrate from JMockit to Mockito
- JUnit 6 best practices
- JUnit Jupiter best practices
- Remove JUnit Jupiter migrationsupport
- Add Hamcrest JUnit dependency
- Add JUnit Jupiter dependencies
- Add JUnit Jupiter migrationsupport
- JUnit 5 inner test classes should be annotated with @Nested
- Add missing @BeforeEach, @AfterEach, @Test to overriding methods
- Add Mockito Jupiter integration for migrated Mockito rules
- Add missing @ParameterizedTest annotation when @ValueSource is used or replace @Test with @ParameterizedTest
- Applies JUnit 5 assertThrows on last statement in lambda block only
- JUnit 4 Assert to JUnit Jupiter Assertions
- assertTrue(x instanceof y) to assertInstanceOf(y.class, x)
- Transform Assume methods to Assumptions
- Transform single-argument assumeNotNull(object) to assumeFalse(object == null)
- Transform variadic assumeNotNull(objects...) to a stream of assumeFalse(object == null)
- JUnit 4 @Category to JUnit Jupiter @Tag
- Clean up assertions
- Cleanup JUnit imports
- Remove JUnit 5 static Assertions imports in Kotlin when wildcard import is present
- Replace @CsvSource with @ValueSource for single method arguments
- JUnit 4 @RunWith(Enclosed.class) to JUnit Jupiter @Nested
- Migrate JUnit 4 environmentVariables rule to JUnit 5 system stubs extension
- Exclude JUnit 4, unless a test library requires it
- JUnit 4 ExpectedException to JUnit Jupiter's assertThrows()
- Migrate System Rules ExpectedSystemExit to System Stubs catchSystemExit(..)
- Gradle Test use JUnit Jupiter
- Handle the usage of ExternalResource rule fields using @ExtendWith(ExternalResourceSupport.class)
- Use JUnit Jupiter @Disabled
- Make implausibly long @Timeout values explicit in minutes
- JUnit Jupiter migration from JUnit 4.x
- JUnit 5 best practices
- Pragmatists @RunWith(JUnitParamsRunner.class) to JUnit Jupiter @ParameterizedTest tests
- AssertJ @Rule soft assertions to SoftAssertionsExtension
- Make lifecycle methods non-private
- Migrate JUnit 4 assertion failure exceptions to JUnit Jupiter
- Use Assertions#assume*(..) and Hamcrest's MatcherAssume#assume*(..)
- Migrate JUnit 4 TestCase to JUnit Jupiter
- Migrate System Rules to System Stubs and JUnit Pioneer
- JUnit 4 MockitoJUnit to JUnit Jupiter MockitoExtension
- JUnit 4 @RunWith(Parameterized.class) to JUnit Jupiter parameterized tests
- Remove duplicate uses of @TestTemplate implementations for a single method
- Remove JUnit 4 @RunWith annotations that do not require an @ExtendWith replacement
- Replace fail() in try-catch blocks with Assertions.assertDoesNotThrow(() -> { ... })
- JUnit 4 @RunWith to JUnit Jupiter @ExtendWith
- Statically import JUnit Jupiter assertions
- Migrate System Rules system property rules to JUnit Pioneer annotations
- Update dependencies for the System Rules migration
- Migrate System Rules to System Stubs
- Make @TempDir fields non-final
- Use JUnit Jupiter @TempDir
- JUnit TestName @Rule to JUnit Jupiter TestInfo
- Use JUnit Jupiter Executable
- JUnit 4 @Rule Timeout to JUnit Jupiter's Timeout
- Migrate JUnit 4 lifecycle annotations to JUnit Jupiter
- OkHttp 3.x MockWebServer @Rule to 4.x MockWebServer
- Preserve MockResponse return type for Dispatcher.dispatch() overrides
- OkHttp MockWebServer MockResponse to 5.x MockWebServer3 MockResponse
- Migrate JUnit 4 @Test annotations to JUnit 5
- Use OkHttp 3 MockWebServer for JUnit 5
- Upgrade the Maven Surefire plugin
- Upgrade to JUnit 5.13
- Upgrade to JUnit 5.14
- Use JUnit5's assertSame or assertNotSame instead of assertTrue(... == ...)
- Use MatcherAssert#assertThat(..)
- Use Mockito JUnit Jupiter extension
- Migrate from JUnit 4 @FixedMethodOrder to JUnit 5 @TestMethodOrder
- Use wiremock extension
- Use XMLUnit legacy for JUnit 5
- Use Vert.x JUnit 5 extension
- Use WireMockServer for a WireMockRule used as a server
- JUnit 6 migration from JUnit 5.x
- Migrate JUnit Pioneer extensions to native JUnit Jupiter equivalents
- Migrate MethodOrderer.Alphanumeric to MethodOrderer.MethodName
- Migrate JUnit JRE conditions
- Migrate the two-argument InvocationInterceptor.interceptDynamicTest
- Remove deprecated JRE.OTHER from @EnabledOnJre/@DisabledOnJre arrays
- Add JUnit 4 where the PowerMock JUnit 4 module provided it
- Adds Mockito extensions to Mockito tests
- Add mockito-junit-jupiter dependency
- Add @MockitoSettings(strictness = Strictness.WARN) to @ExtendWith(MockitoExtension.class) classes
- Add @MockitoSettings(strictness = Strictness.WARN) for legacy Mockito modules
- Replace Mockito 1.x anyString() with nullable(String.class)
- Replace Mockito 1.x anyString()/any() with nullable(Class)
- Convert ArgumentMatcher<T> anonymous class to lambda
- Change mockito-all to mockito-core along with the Mockito that replaces PowerMock
- Cleanup Mockito imports
- Cleanup PowerMock imports
- Close unclosed static mocks
- Disable tests using PowerMock features with no Mockito equivalent
- Exclude a transitive mockito-all from modules that move off PowerMock
- Flag PowerMock usage that cannot be migrated to Mockito
- Wrap MockedConstruction in try-with-resources
- Upgrade Mockito from 1.x to 3.x
- Upgrade to Mockito 4.x
- Upgrade to Mockito 5.x
- Mockito 4 to 5.x upgrade only
- Mockito best practices
- JUnit 4 MockitoJUnitRunner.Silent to JUnit Jupiter MockitoExtension with LENIENT settings
- Replace JUnit 4 MockitoJUnitRunner with junit-jupiter MockitoExtension
- Replace Mockito.when on static (non mock) with try-with-resource with MockedStatic
- Use static form of Mockito MockUtil
- Module does not declare JUnit 4
- Replace PowerMockito.doX() with Mockito.doX()
- Replace PowerMockito doX().when(instance, "method") with Mockito-compatible stubbing
- Replace PowerMock.mockStatic() with Mockito.mockStatic()
- Replace PowerMockito.whenNew with Mockito counterpart
- Replace PowerMock runner with JUnit @RunWith
- Replace PowerMock Whitebox.getField() with Java reflection
- Replace PowerMock Whitebox.getInternalState() with Java reflection
- Replace PowerMock Whitebox.getMethod() with Java reflection
- Replace PowerMock Whitebox.invokeConstructor() with Java reflection
- Replace PowerMock Whitebox.invokeMethod() with Java reflection
- Replace PowerMock Whitebox.setInternalState() with @InjectMocks
- Replace PowerMock Whitebox.setInternalState() with Java reflection
- Replace PowerMock Whitebox with Java reflection
- Remove doNothing() for void methods on @Mock fields
- Remove MockitoAnnotations.initMocks(this) and openMocks(this) if JUnit runners specified
- Remove PowerMock class extensions
- Swap the PowerMock dependencies for Mockito
- Remove PowerMockRule fields
- Remove Mockito.times(0) and Mockito.times(1)
- Replace MockitoAnnotations.initMocks(this) to MockitoAnnotations.openMocks(this)
- Replace MockitoTestExecutionListener with the equivalent Mockito test initialization
- Replace MockitoTestExecutionListener (JUnit 4 projects)
- Replace MockitoTestExecutionListener (JUnit Jupiter projects)
- Replace MockitoTestExecutionListener (TestNG projects)
- Replace PowerMock dependencies with Mockito equivalents
- Replace PowerMock with raw Mockito
- Replace PowerMock usages with Mockito
- Remove eq() matchers from Mockito verify, when and given calls
- Replace undeclared checked exceptions in thenThrow with RuntimeException
- Upgrade mockito-core along with the Mockito that replaces PowerMock
- Replace verifyZeroInteractions() with verifyNoMoreInteractions()
- Adopt @Container and add @Testcontainers
- Remove parameterized type arguments from a Java class
- Add image argument to container constructor
- Use explicit container images and versions
- Replace ContainerState.getContainerIpAddress() with getHost()
- Migrate to Apache Kafka Native container
- Migrate from oracle-xe to oracle-free
- Replace container image name
- Move container classes to their Testcontainers 2 packages
- Rename Testcontainers dependencies
- Migrate removed LocalStackContainer members to Testcontainers 2.x
- Migrate to testcontainers-java 2.x
- Testcontainers best practices
- TestNG assertEqualsDeep/assertNotEqualsDeep to AssertJ
- TestNG assertEqualsNoOrder to AssertJ
- TestNG assertEquals to AssertJ
- TestNG Assertion to AssertJ
- TestNG assertList* to AssertJ
- TestNG assertNotEquals to AssertJ
- TestNG assertNotSame to AssertJ
- TestNG assertSame to AssertJ
- TestNG assertThrows/expectThrows to AssertJ
- TestNG SoftAssert to AssertJ SoftAssertions
- Migrate TestNG assertions to AssertJ
- Migrate Google Truth to AssertJ
- Convert Truth assert_() to AssertJ
- Convert Truth assertWithMessage to AssertJ
- Migrate Google Truth code to AssertJ
- Migrate Truth custom subjects to AssertJ
- Convert Truth Throwable assertions to AssertJ
- Preserve the UTF-8 default of ContentTypeHeader.charset()
- Move Jetty EE10 usages to EE11 alongside wiremock-jetty12
- Migrate RequestMethod.isOneOf to the matcher it became
- Migrate the uuid field in WireMock stub mapping files to id
- Keep a single Content-Type response header on WireMock stubs
- Keep a single Content-Type response header while still on WireMock 3
- Keep a single Content-Type response header in WireMock stub files
- Replace WireMock constructors removed in 4.x
- Replace WireMock setter calls with transform()
- Upgrade WireMock to 3.x
- Upgrade WireMock to 4.x
- Move WireMock types to their 4.x packages
org.openrewrite.recipe:rewrite-third-party0.52.0 · Apache 2.0
- Change the Timefold version
- Migrate all Maven and Gradle groupIds and artifactIds from OptaPlanner to Timefold
- Migrate from OptaPlanner to Timefold Solver
- Upgrade to the latest Timefold Solver
- ConstraintStreams: use asConstraint() methods to define constraints
- Replace getConstraint*() with getConstraintRef()
- Use non-deprecated environment constants
- PlanningVariable's nullable is newly called unassignedValues
- Constraint Streams: don't use package name in the asConstraint() method
- Score: use shorter getters
- ScoreManager: explain(), update()
- Use non-deprecated SingleConstraintAssertion methods
- Recommended Fit API becomes Assignment Recommendation API
- SolverManager: use builder API
- Use non-deprecated related sorting fields and methods
- Change the jakarta.inject-api dependency to scope provided when jakartaee-api 9.x is provided.
- Change the jakarta.ws.rs-api dependency to scope provided when jakartaee-api 9.x is provided.
- Change the jakarta.xml.bind-api dependency to scope provided when jakartaee-api 9.x is provided.
- Report types deprecated or removed in WebLogic version 14.1.2
- Report types deprecated or removed in WebLogic version 15.1.1
- Add implicit TLD with taglib 2.1
- Add implicit TLD with taglib 3.0
- Change cacheManager to use the SimpleCacheManager
- Add WebLogic 15.1.1 PetClinic extras
- Setup Spring Framework 5.3.x PetClinic for WebLogic 14.1.2
- JSF 1.x to Jakarta Server Faces 2.3 on WebLogic 14.1.2 or older
- Add Hibernate ORM Core if has dependencies
- Migrate to Hibernate for Jakarta EE 9
- Upgrade Hibernate to 6.6
- Add Jakarta EE 9 Servlet Dependency
- ChangeJakartaFacesMethodCalls
- JSF 2.x to Jakarta Server Faces 3.x
- JNDI name jsf/ClientSideSecretKey has been renamed to faces/ClientSideSecretKey, and the jsf/FlashSecretKey JNDI name has been renamed to faces/FlashSecretKey.
- Substitute deprecated Faces Managed Beans
- Migrate from JavaX to Jakarta EE 9.1 Namespaces
- Faces XHTML migration for Jakarta EE 9
- Migrate deprecated javax.annotation to jakarta.annotation
- Migrate xmlns entries in application-client.xml files.
- Migrate xmlns entries in application.xml files.
- Migrate xmlns entries in **/batch-jobs/*.xml files.
- Migrate xmlns entries in batch.xml files.
- Migrate xmlns entries in beans.xml files for Beans 3.0.
- Migrate xmlns entries in *.xjb files.
- Migrate xmlns entries in ejb-jar.xml files.
- Migrate xmlns entries in faces-config.xml files for Jakarta Server Faces 3
- Migrate xmlns entries in *taglib*.xml files for Jakarta Server Faces 3
- Migrate javax.jms to jakarta.jms on MDB
- Migrate xmlns entries in permissions.xml files.
- Migrate xmlns entries in ra.xml files (Connectors).
- Migrate xmlns entries in test-web.xml files for Jakarta Server Faces 3 using test interfaces
- Migrate xmlns entries in test-*.xml files for Jakarta EE 9.1 using test interfaces
- Rename CDI Extension to Jakarta
- Migrate xmlns entries in **/validation/*.xml files.
- Migrate xmlns entries in web-fragment.xml files for Jakarta Server Faces 3
- Migrate xmlns entries in handler.xml files.
- Migrate xmlns entries in *.tld files.
- Migrate xmlns entries in webservices.xml files.
- Migrate xmlns entries in web.xml files for Jakarta Server Faces 3
- Migrate javax.mvc to 2.0 (Jakarta EE 9)
- Migrate javax.javaee-web-api to jakarta.jakartaee-web-api (Jakarta EE 9)
- Migrate Tag Libraries to 2.0 (Jakarta EE 9)
- Mitigate Unaffected Non-EE Jakarta 9 Packages
- Migrate deprecated org.glassfish.javax.el packages to jakarta.el
- Replace deprecated Jakarta Servlet methods and classes
- Use jakarta.el instead of jakarta.faces.el and javax.faces.el
- Replace ResourceResolver with ResourceHandler
- Use StateManagementStrategy
- Update deprecated Faces method calls
- Update Jakarta Persistence to 3.1
- Update Jakarta Persistence to 3.2
- Update Jakarta EE Platform Dependencies to 9.1.0
- Upgrade Common open source libraries
- Upgrade Faces open source libraries
- Upgrade Faces open source libraries
- Upgrade group, artifact ID and version of an artifactItem, of a maven plugin execution configuration
- Change artifacts for a Maven plugin configuration
- Migrate to Jakarta EE 9.1
- Migrate WebLogic Schemas to 14.1.2
- Migrate WebLogic Schemas to 15.1.1
- Output Recipe Version
- Report uses of Java types deprecated or removed in WebLogic
- Report types deprecated or removed in WebLogic version 14.1.2
- Report types deprecated or removed in WebLogic version 15.1.1
- Upgrade Spring Data BOM to 2024.1.x
- Upgrade Spring Data JPA to 3.4.6
- Update Default Servlet Handler for Spring Framework if empty
- Replace Removed WebLogicJtaTransactionManager from Spring Framework 5.3.x to 6.2.x
- Replace Removed WebLogicLoadTimeWeaver from Spring Framework 5.3.x to 6.2.x
- Migrate to Spring Framework 6.2 for WebLogic 15.1.1
- Update the WebLogic version to 14.1.2
- Update the WebLogic version to 15.1.1
- Upgrade Jakarta JPA to 3.1 and Hibernate 6.6
- Migrate to WebLogic 14.1.1
- Migrate to WebLogic 14.1.2
- Migrate to WebLogic 15.1.1
- Upgrade weblogic.version Maven property
- Mitigation of Java XML Bind Deprecation in Java 11 vs WebLogic 14.1.2
- Migrate xmlns entries in application-client.xml files to WebLogic 14.1.2
- Migrate xmlns entries in application-client.xml files to WebLogic 15.1.1
- Migrate xmlns entries in weblogic-application.xml files to WebLogic 14.1.2
- Migrate xmlns entries in weblogic-application.xml files to WebLogic 15.1.1
- Migrate xmlns entries in weblogic-ejb-jar.xml files to WebLogic 14.1.2
- Migrate xmlns entries in weblogic-ejb-jar.xml files to WebLogic 15.1.1
- Migrate xmlns entries in *-jdbc.xml files to WebLogic 14.1.2
- Migrate xmlns entries in *-jdbc.xml files to WebLogic 15.1.1
- Migrate xmlns entries in *-jms.xml files to WebLogic 14.1.2
- Migrate xmlns entries in *-jms.xml files to WebLogic 15.1.1
- Migrate xmlns entries in persistence-configuration.xml files to WebLogic 14.1.2
- Migrate xmlns entries in persistence-configuration.xml files to WebLogic 15.1.1
- Migrate xmlns entries in plan.xml files to WebLogic 14.1.2
- Migrate xmlns entries in plan.xml files to WebLogic 15.1.1
- Migrate xmlns entries in weblogic-pubsub.xml files to WebLogic 14.1.2
- Migrate xmlns entries in weblogic-pubsub.xml files to WebLogic 15.1.1
- Migrate xmlns entries in weblogic-ra.xml files to WebLogic 14.1.2
- Migrate xmlns entries in weblogic-ra.xml files to WebLogic 15.1.1
- Migrate xmlns entries in weblogic-rdbms-jar.xml files to WebLogic 14.1.2
- Migrate xmlns entries in weblogic-rdbms-jar.xml files to WebLogic 15.1.1
- Migrate xmlns entries in resource-deployment-plan.xml files to WebLogic 14.1.2
- Migrate xmlns entries in resource-deployment-plan.xml files to WebLogic 15.1.1
- Migrate xmlns entries in weblogic-webservices-policy.xml files to WebLogic 14.1.2
- Migrate xmlns entries in weblogic-webservices-policy.xml files to WebLogic 15.1.1
- Migrate xmlns entries in weblogic-webservices.xml files to WebLogic 14.1.2
- Migrate xmlns entries in weblogic-webservices.xml files to WebLogic 15.1.1
- Migrate xmlns entries in weblogic-wsee-clientHandlerChain.xml files to WebLogic 14.1.2
- Migrate xmlns entries in weblogic-wsee-clientHandlerChain.xml files to WebLogic 15.1.1
- Migrate xmlns entries in weblogic-wsee-standaloneclient.xml files to WebLogic 14.1.2
- Migrate xmlns entries in weblogic-wsee-standaloneclient.xml files to WebLogic 15.1.1
- Create weblogic.xml if it does not exist
- Add prefer-application-packages for JPA in weblogic.xml
- Add prefer-application-packages for SLF4J in weblogic.xml
- Migrate xmlns entries in weblogic.xml files to WebLogic 14.1.2
- Migrate xmlns entries in weblogic.xml files to WebLogic 15.1.1
- Migrate camel3 application to camel4.
- Migrates camel 4.9 application to camel 4.10
- Migrates camel 4.10 application to camel 4.10.4
- Migrates camel 4.10 application to camel 4.11
- Migrates camel 4.11 application to camel 4.12
- Migrates camel 4.12 application to camel 4.13
- Migrates camel 4.13 application to camel 4.14
- Migrates camel 4.14 application to camel 4.15
- Migrates camel 4.15 application to camel 4.16
- Migrates camel 4.16 application to camel 4.17
- Migrates camel 4.17 application to camel 4.18
- Migrates camel 4.18 application to camel 4.18.3
- Migrates camel 4.18 application to camel 4.20
- Migrates camel 4.20 application to camel 4.21
- Migrates camel 4.21 application to camel 4.22
- Migrates camel 4.0 application to camel 4.4
- Migrates camel 4.4 application to camel 4.8
- Migrates camel 4.8 application to camel 4.9
- io.quarkus.updates.core.quarkus30.AdditionalChanges
- Adjust application.properties for jakarta.* packages
- Adjust application.yaml for jakarta.* packages
- Adjust all-open directives in Kotlin plugin configuration
- io.quarkus.updates.core.quarkus30.ApplicationProperties
- io.quarkus.updates.core.quarkus30.ApplicationYml
- Migrate deprecated javax.annotation packages to jakarta.annotation
- Migrate Jackson from javax to jakarta namespace
- Migrate deprecated javax.activation packages to jakarta.activation
- Migrate deprecated javax.annotation packages to jakarta.annotation
- Migrate deprecated javax.annotation packages to jakarta.annotation
- Migrate deprecated javax.annotation.security packages to jakarta.annotation.security
- Migrate deprecated javax.annotation.sql packages to jakarta.annotation.sql
- Migrate deprecated javax.security.auth.message packages to jakarta.security.auth.message
- Migrate deprecated javax.security.jacc packages to jakarta.security.jacc
- Migrate deprecated javax.batch packages to jakarta.batch
- io.quarkus.updates.core.quarkus30.JavaxConfigurationFiles
- Migrate deprecated javax.decorator packages to jakarta.decorator
- Migrate deprecated javax.ejb packages to jakarta.ejb
- Migrate deprecated javax.el packages to jakarta.el
- Migrate deprecated javax.enterprise packages to jakarta.enterprise
- Migrate deprecated javax.faces packages to jakarta.faces
- Migrate deprecated javax.inject packages to jakarta.inject
- Migrate deprecated javax.interceptor packages to jakarta.interceptor
- Migrate deprecated javax.jms packages to jakarta.jms
- Migrate deprecated javax.json packages to jakarta.json
- Migrate deprecated javax.jws packages to jakarta.jws
- Migrate deprecated javax.mail packages to jakarta.mail
- Migrate deprecated javax.persistence packages to jakarta.persistence
- Migrate xmlns entries in persistence.xml files
- Migrate deprecated javax.resource packages to jakarta.resource
- Migrate deprecated javax.security.enterprise packages to jakarta.security.enterprise
- Migrate deprecated javax.servlet packages to jakarta.servlet
- io.quarkus.updates.core.quarkus30.JavaxToJakartaAdditionalMigration
- io.quarkus.updates.core.quarkus30.JavaxToJakartaCodestarts
- io.quarkus.updates.core.quarkus30.JavaxToJakartaCodestartsTests
- io.quarkus.updates.core.quarkus30.JavaxToJakartaDocumentationAdoc
- io.quarkus.updates.core.quarkus30.JavaxToJakartaDocumentationMd
- io.quarkus.updates.core.quarkus30.JavaxToJakartaKotlin
- io.quarkus.updates.core.quarkus30.JavaxToJakartaKotlinCodestarts
- io.quarkus.updates.core.quarkus30.JavaxToJakartaKotlinCodestartsTests
- Migrate deprecated javax.transaction packages to jakarta.transaction
- Migrate deprecated javax.validation packages to jakarta.validation
- Migrate deprecated javax.websocket packages to jakarta.websocket
- Migrate deprecated javax.ws packages to jakarta.ws
- Migrate deprecated javax.xml.bind packages to jakarta.xml.bind
- Migrate deprecated javax.soap packages to jakarta.soap
- Migrate deprecated javax.xml.ws packages to jakarta.xml.ws
- io.quarkus.updates.core.quarkus30.Kotlin
- Rename a file example
- Migrate RestAssured from javax to jakarta namespace by upgrading to a version compatible with J2EE9
- io.quarkus.updates.core.quarkus30.UpgradeQuarkiverse
- io.quarkus.updates.core.quarkus31.RemoveMockitoInline
- Adjust the package properties
- io.quarkus.updates.core.quarkus310.FlywayDb2
- io.quarkus.updates.core.quarkus310.FlywayDerby
- io.quarkus.updates.core.quarkus310.FlywayPostgreSQL
- io.quarkus.updates.core.quarkus310.SyncHibernateJpaModelgenVersionWithBOM
- io.quarkus.updates.core.quarkus310.UpdateConfigPackagePom
- io.quarkus.updates.core.quarkus310.UpdateConfigPackageSimpleProperties
- io.quarkus.updates.core.quarkus310.UpdateConfigPackageTypeFastJar
- io.quarkus.updates.core.quarkus310.UpdateConfigPackageTypeJar
- io.quarkus.updates.core.quarkus310.UpdateConfigPackageTypeMutableJar
- io.quarkus.updates.core.quarkus310.UpdateConfigPackageTypeNative
- io.quarkus.updates.core.quarkus310.UpdateConfigPackageTypeNativeSources
- io.quarkus.updates.core.quarkus310.UpdateConfigPackageTypeUberJar
- io.quarkus.updates.core.quarkus311.SyncHibernateJpaModelgenVersionWithBOM
- io.quarkus.updates.core.quarkus311.WebDependencyLocatorRelocations
- io.quarkus.updates.core.quarkus312.SyncHibernateJpaModelgenVersionWithBOM
- io.quarkus.updates.core.quarkus313.SyncHibernateJpaModelgenVersionWithBOM
- io.quarkus.updates.core.quarkus313.UpdateTestOIDCAuthServerUrl
- io.quarkus.updates.core.quarkus318.RemoveFlywayCleanOnValidationError
- io.quarkus.updates.core.quarkus319.ConfigurationPropertiesChange
- io.quarkus.updates.core.quarkus319.HibernateORMValidationMode
- io.quarkus.updates.core.quarkus319.MoveAccessTokenAnnotationToNewPackage
- io.quarkus.updates.core.quarkus32.ApplicationProperties
- io.quarkus.updates.core.quarkus32.ApplicationYml
- io.quarkus.updates.core.quarkus32.InjectMock
- io.quarkus.updates.core.quarkus321.TlsRegistrySplitPackagesFix
- io.quarkus.updates.core.quarkus323.HibernateORMSchemaManagementProperties
- io.quarkus.updates.core.quarkus324.AddHibernateAnnotationProcessorIfNewJpaModelgenDependency
- io.quarkus.updates.core.quarkus324.AddHibernateAnnotationProcessorIfOldJpaModelgenDependency
- io.quarkus.updates.core.quarkus324.LogConsoleAsyncEnable
- io.quarkus.updates.core.quarkus324.MigrateFromDefaultUniqueDelegate
- Replace EmptyInterceptor with Interceptor
- io.quarkus.updates.core.quarkus324.MigrateFromHibernateOrmEmptyInterceptor
- io.quarkus.updates.core.quarkus324.MigrateFromHibernateOrmQueryHints
- io.quarkus.updates.core.quarkus324.MigrateFromHibernateOrmSessionMethodsRemovedIn7
- io.quarkus.updates.core.quarkus324.MigrateFromHibernateOrmVariousRemovedIn7
- io.quarkus.updates.core.quarkus324.MigrateFromHibernateValidatorNotBlank
- io.quarkus.updates.core.quarkus324.MigrateFromIndexColumn
- io.quarkus.updates.core.quarkus324.RemoveJpaModelgenDependencies
- io.quarkus.updates.core.quarkus324.ReplaceNewJpaModelgenAnnotationProcessor
- io.quarkus.updates.core.quarkus324.ReplaceOldJpaModelgenAnnotationProcessor
- io.quarkus.updates.core.quarkus325.DevUiSpiRelocations
- io.quarkus.updates.core.quarkus326.EnableEnabledConfigChanges
- io.quarkus.updates.core.quarkus33.ApplicationProperties
- io.quarkus.updates.core.quarkus33.ApplicationYml
- io.quarkus.updates.core.quarkus33.GraalVMSubstitutionsArtifact
- io.quarkus.updates.core.quarkus330.RenameEnableMetrics
- Add @{argLine} to maven-surefire-plugin and maven-failsafe-plugin
- Add <extensions>true</extensions> to quarkus-maven-plugin
- io.quarkus.updates.core.quarkus331.CoreUpdate331
- io.quarkus.updates.core.quarkus331.JUnitRelocations
- io.quarkus.updates.core.quarkus331.OidcClientFilterSplitPackagesFix
- io.quarkus.updates.core.quarkus331.OpenTelemetryTracingPackageTypoFix
- io.quarkus.updates.core.quarkus331.Testcontainers2
- io.quarkus.updates.core.quarkus337.PanacheNextRelocations
- io.quarkus.updates.core.quarkus338.ElasticsearchRestClientMigration
- Change Gradle annotation processor dependency and remove version
- Rename Quarkus Hibernate Panache types to Quarkus Data Hibernate
- io.quarkus.updates.core.quarkus339.ReplaceHibernateProcessorAnnotationProcessor
- io.quarkus.updates.core.quarkus339.ReplaceNewJpaModelgenAnnotationProcessor
- io.quarkus.updates.core.quarkus339.ReplaceOldJpaModelgenAnnotationProcessor
- io.quarkus.updates.core.quarkus35.MutinyUniAndGroupCombinedWith
- io.quarkus.updates.core.quarkus35.MutinyUniMemoizeAtLeast
- io.quarkus.updates.core.quarkus36.JaegerSmallRyeOpenTracing
- io.quarkus.updates.core.quarkus37.AddJpaModelgenAnnotationProcessor
- io.quarkus.updates.core.quarkus37.AddJpaModelgenAnnotationProcessorIfOldArtifact
- Add an annotation processor to the Maven Compiler plugin configuration
- Change Maven Compiler plugin annotation processor groupId, artifactId and/or the version
- Use java.security.cert instead of javax.security.cert
- Adopt setLongThreadID in java.util.logging.LogRecord
- io.quarkus.updates.core.quarkus37.HibernateSearchOutboxPolling
- Change Maven and Gradle Java version property values to 17
- Set visibility of premain and agentmain methods to public
- io.quarkus.updates.core.quarkus37.MavenPlugins
- Use SunJSSE instead of com.sun.net.ssl.internal.ssl.Provider
- io.quarkus.updates.core.quarkus37.RemoveJpaModelgenDependencies
- io.quarkus.updates.core.quarkus37.ReplaceJpaModelgenAnnotationProcessor
- io.quarkus.updates.core.quarkus37.ResteasyClientRenaming
- Upgrade actions/setup-java java-version
- io.quarkus.updates.core.quarkus37.SyncHibernateJpaModelgenVersionWithBOM
- Sync Maven Compiler plugin annotation processor version with the one provided by the BOM
- Upgrade Java version
- Migrate to Java 17
- io.quarkus.updates.core.quarkus38.SyncHibernateJpaModelgenVersionWithBOM
- io.quarkus.updates.core.quarkus383.GraalSDK
- io.quarkus.updates.core.quarkus39.GraalSDK
- io.quarkus.updates.core.quarkus39.Relocations
- Remove an annotation processor from the Maven Compiler plugin configuration
- io.quarkus.updates.core.quarkus39.RemovePanacheAnnotationProcessor
- io.quarkus.updates.core.quarkus39.SyncHibernateJpaModelgenVersionWithBOM
- io.quarkus.updates.core.quarkus39.UpdateConfigRoots
- Add @Priority(0) to beans annotated with @Reserve
- Replace @DefaultBean with @Reserve
- Migrate removed ArC and Quarkus deployment APIs
- Handle dropped relocations in Quarkus 4.0
- Rename Flyway MongoDB artifact
- Rename deprecated Hibernate ORM configuration properties
- Rename deprecated HTTP SSL configuration properties
- Rename deprecated Infinispan configuration properties
- Migrate Jackson from 2.x to 3.x
- Change Maven and Gradle Java version property values to 21
- Rename deprecated Keycloak Policy Enforcer configuration properties
- Rename deprecated Kubernetes configuration properties
- Rename deprecated Mailer configuration properties
- Rename deprecated Micrometer configuration properties
- Migrate to the Prometheus client 1.x based Micrometer registry
- Rename miscellaneous deprecated configuration properties
- Rename deprecated OIDC configuration properties
- Rename deprecated Redis Cache configuration properties
- Rename deprecated REST Client configuration properties
- Rename deprecated SmallRye configuration properties
- Migrate to Java 21
- Migrate quarkus-cxf to 3.16
- Migrate quarkus-cxf to 3.20
- Migrate quarkus-cxf to 3.22
- Migrate quarkus-cxf to 3.31
- Add quarkus-jackson if Jackson is used
- Migrate quarkus-cxf to 3.39
- Migrate quarkus-cxf to 3.8
- io.quarkus.updates.minio.minio38.UpdateAll
- io.quarkus.updates.minio.minio38.UpdateProperties
- Comment on deprecated properties
- Adust quarkus.minio.url property key
- Migrate camel3 application to camel4.
- Change of method names brought by Camel JMX API changes
- Change of method names brought by Camel JMX API changes
- Migrate moved types between Camel 3.x and Camel 4.x
- Camel API changes
- Camel bean recipe
- Replaces removed method camel EIP
- Camel Http Extension changes
- Camel API changes in application.properties
- Remove Camel 3.x dependencies that have been removed in Camel 4.0 with no direct replacement
- Rename removed Camel 3.x dependencies to their Camel 4.0 replacements
- Replace context.getExtension(ExtendedCamelContext.class).get* with PluginHelper.get*(context)
- Camel XMl DSL Circuit Breaker changes
- Camel XMl DSL changes
- Camel Yaml changes regarding route-configuration children
- Camel Yaml steps not allowed as route child
- Camel Core changes
- Tag Enum has been deprecated
- Camel XMl DSL changes
- Changes for creation of inlined beans.
- Renamed constants in camel-azure-files
- Migrates camel 4.9 application to camel 4.10
- Renamed constants in camel-smb
- Camel XMl DSL changes
- Migrates camel 4.10.3 application to camel 4.10.4
- Migrate to 4.10.6
- Migrates camel 4.10 application to camel 4.11
- Use PlatformHttpHeaderFilterStrategy instead of HttpHeaderFilterStrategy
- Removed deprecated components
- Removed deprecated property camel.main.lightweight
- Migrates camel 4.11 application to camel 4.12
- Camel Java DSL change for camel 4.12
- The package scan classes has moved from camel-base-engine to camel-support - java
- The package scan classes has moved from camel-base-engine to camel-support - maven
- XML DSL bearer from rest/securityDefinitions is renamed to bearerToken
- Yaml DSL bearer from rest/securityDefinitions is renamed to bearerToken
- Renamed BasicAuthenticationHttpClientConfigurer to DefaultAuthenticationHttpClientConfigurer
- Migrates camel 4.12 application to camel 4.13
- Change Maven dependency example
- Change dataformat fury to fury in xml/java dsl.
- Renamed BasicAuthenticationHttpClientConfigurer to DefaultAuthenticationHttpClientConfigurer
- Change dataformat fury to fory in xml dsl.
- Camel YML DSL changes
- Migrates camel 4.13 application to camel 4.14
- Update properties and yaml configurations file because of Http management vs business separation
- Changed types of camel AI nested headers classes
- Migrates camel 4.14 application to camel 4.15
- Refactored dataFormats
- Changed parameter in camel-netty and camel-netty-http
- Refactored dataFormats (XML DSL)
- Refactored dataFormats (YAML DSL)
- Milo: The monitored item data value listener API has changed
- Migrates camel 4.15 application to camel 4.16
- Different java type for ServerCertificateValidator in camel-milo
- Migrates camel 4.16 application to camel 4.17
- Camel YML transform changes
- Migrates camel 4.17 application to camel 4.18
- Migrate camel-dns header constants to new naming convention
- Migrate camel-kafka headers
- Migrate camel-salesforce header constants to new naming convention
- Migrates camel 4.18.0 application to camel 4.18.1
- Renamed routePolicy to routePolicyRef on the route node
- Migrate camel-sage model configuration
- Camel XML DSL Saga EIP restructuring
- Camel YAML DSL Saga EIP restructuring
- Migrates camel 4.18.1 application to camel 4.18.3
- Rename header in .setHeader()/.getHeader() calls
- Rename header in Simple expressions
- Rename header in XML DSL
- Rename header in YAML DSL
- Rename Camel header prefixes across all DSLs
- Rename header prefix in .setHeader()/.getHeader() calls
- Rename header prefix in Simple expressions
- Rename header prefix in XML DSL
- Rename header prefix in YAML DSL
- Rename Camel header(s) across all DSLs
- Migrate camel-github2 producer header constants to new naming convention
- Migrate camel-google-cloud header constants to new naming convention
- Migrate camel-google-secret-manager header constants to new naming convention
- Migrate camel-jgroups header constants to new naming convention
- Migrate camel-jgroups-raft header constants to new naming convention
- Migrate camel-jira header constants to new naming convention
- Migrate camel-lucene header constants to new naming convention
- Migrate camel-mongodb-gridfs header constants to new naming convention
- Migrate camel-openstack header constants to new naming convention
- Migrate camel-shiro security header constants to new naming convention
- Migrate camel-solr header prefixes to new naming convention
- Migrate camel-web3j header constants to new naming convention
- Migrate to Camel 4.18LTS
- Migrates camel 4.18 application to camel 4.19
- Migrate camel-groovy-xml to camel-groovy
- Remove test-jar type from camel-test-infra dependencies
- The camel-test module has been removed from camel-bom
- Camel YAML DSL routePolicy renaming
- The option camel.main.debugger has been renamed
- Camel Core changes
- Migrates camel 4.19 application to camel 4.20
- Migrate Pulsar component URIs from V1 to V2 format
- Migrates camel 4.20 application to camel 4.21
- Migrate camel-aws2-s3 listObjects to V2 API
- Migrate Error Registry configuration properties
- Remove camel-aws-xray dependency
- Remove camel-elytron dependency
- Remove camel-github dependency
- Remove camel-grape dependency
- Remove camel-guava-eventbus dependency
- Remove camel-stomp dependency
- Migrate camel-arangodb header constants to new naming convention
- Migrate camel-couchbase header constants to new naming convention
- Migrate camel-couchdb header constants to new naming convention
- Migrate camel-dns header constants to new naming convention
- Migrate camel-github2 producer header constants to new naming convention
- Migrate camel-google-speech-to-text header constants to new naming convention
- Migrate camel-google-test-to-spech header constants to new naming convention
- Migrate camel-google-vision header constants to new naming convention
- Migrate camel-irc header constants to new naming convention
- Migrate camel-jt400 header constants to new naming convention
- Migrate camel-kafka headers
- Migrate camel-mail consumer dispatch header constants to new naming convention
- Migrate camel-milo header constants to new naming convention
- Migrate camel-opensearch header constants to new naming convention
- Migrate camel-pdf header constants to new naming convention
- Migrates camel 4.21 application to camel 4.22
- Migrate camel-atmosphere-websocket header values to new naming convention
- Migrate AWS SDK apache-client to apache5-client
- Migrate Azure component-specific CredentialType enums to common enum
- Migrate langchain4j-tools endpoint URIs to ai-tool
- Migrate Minio types for minio 9.0 upgrade
- Migrate camel-spring-ai-tools to camel-ai-tool
- Migrate spring-ai-tools endpoint URIs to ai-tool
- Remove camel-reactive-executor-tomcat dependency
- Camel Resequence DSL changes
- Camel Core changes
- The header name for the List metadata has changed
- MemoryStateRepository and FileStateRepository were moved to another package and library
- Camel Core changes
- Migrates camel 4.0 application to camel 4.4
- Replace deprecated DefaultJsonSchemaLoader with DefaultJsonUriSchemaLoader
- Replace 'camel.main.routeController' with `camel.routecontroller'
- Migrates camel 4.4 application to camel 4.5
- Renamed classes for elasticsearch,opensearch and spring regis
- Replace 'camel.main.backlogTracing' with `camel.trace.enabled'
- Replace context.${method}(*) with context.getCamelContextExtension().${method}(*)
- Migrates camel 4.5 application to camel 4.6
- Renamed classes for elasticsearch,opensearch and spring regis
- Renamed dependencies
- Camel XMl DSL changes
- Bean property to properties.
- Renamed streamCaching to streamCache on the route
- Migrates camel 4.6 application to camel 4.7
- Change of headers with embedded HTTP server (consumer)
- Moved the camel-cloudevents api into camel-api and removed the camel-cloudevents
- Renamed classes for API
- Camel XMl DSL changes
- Camel YML DSL changes
- The syntax for retrieving a single field of a secret has been changed
- The syntax for retrieving a single field of a secret has been changed
- Migrates camel 4.8 application to camel 4.9
- Each camel-debezium module has its own subpackage corresponding to the database type
- The syntax for retrieving a single field of a secret has been changed
- The syntax for retrieving a single field of a secret has been changed
- Removed deprecated components
- Renamed classes for API
- Migrate to 4.22.0
- Change Camel component URI across all DSLs
- Change prefix of property with Camel case
- Find Camel XML DSL documents
- Change Camel component URI in Java
- Change Camel component URI in XML DSL
- Change Camel component URI in YAML DSL
- Replaces a literal matching an expression
- Move getter from context to ExtendedCamelContext.
- Move getter from context to PluginHelper.
- Update Apache Camel configurations keys
- Camel XMl DSL changes
- Renames property of the component
- Camel XMl DSL changes
- Renames property of the component
- Change Maven Java version property values to 17
- Upgrade actions/setup-java java-version
- Update properties and yaml configurations file
- Upgrade Java version
- Migrate to Java 17
- Wicket best practices
- Migrate to Wicket 10.x
- Upgrade to Axonframework 4.x Jakarta
- Upgrade to Axonframework 4.x Javax
- Remove non existing camel-quarkus extensions
- Quarkus Updates Aggregate 3.0.0
- Quarkus Updates Aggregate 3.10.0
- Quarkus Updates Aggregate 3.11.0
- Quarkus Updates Aggregate 3.12.0
- Quarkus Updates Aggregate 3.13.0
- Quarkus Updates Aggregate 3.15.0
- Quarkus Updates Aggregate 3.16.0
- Quarkus Updates Aggregate 3.17.0
- Quarkus Updates Aggregate 3.18.0
- Quarkus Updates Aggregate 3.19.0
- Quarkus Updates Aggregate 3.1.0
- Quarkus Updates Aggregate 3.20.0
- Quarkus Updates Aggregate 3.20.1
- Quarkus Updates Aggregate 3.21.0
- Quarkus Updates Aggregate 3.22.0
- Quarkus Updates Aggregate 3.23.0
- Quarkus Updates Aggregate 3.24.0
- Quarkus Updates Aggregate 3.25.0
- Quarkus Updates Aggregate 3.26.0
- Quarkus Updates Aggregate 3.29.0
- Quarkus Updates Aggregate 3.2.0
- Quarkus Updates Aggregate 3.30.0
- Quarkus Updates Aggregate 3.31.0
- Quarkus Updates Aggregate 3.32.0
- Quarkus Updates Aggregate 3.33.0
- Quarkus Updates Aggregate 3.33.1
- Quarkus Updates Aggregate 3.37.0
- Quarkus Updates Aggregate 3.38.0
- Quarkus Updates Aggregate 3.39.0
- Quarkus Updates Aggregate 3.3.0
- Quarkus Updates Aggregate 3.5.0
- Quarkus Updates Aggregate 3.6.0
- Quarkus Updates Aggregate 3.7.0
- Quarkus Updates Aggregate 3.8.0
- Quarkus Updates Aggregate 3.8.3
- Quarkus Updates Aggregate 3.9.0
- Quarkus Updates Aggregate 4.0.0
- Migrate StubRunner JUnit 4 Rule to JUnit 5 Extension
- Migrate from Spring Cloud Contract to Stubborn Contract
- Migrate deprecated Stub Runner property prefix to the canonical one
- Migrate deprecated Verifier property prefix to the canonical one
- Rename org.springframework.cloud.contract packages to sh.stubborn.contract
- Update Spring Cloud Contract coordinates to Stubborn Contract
- Add a comment to a method
- Add AWS SDK for Java v2 S3 Event Notification dependency if needed
- Add AWS SDK for Java v2 S3 Transfer Manager dependency if needed
- Migrate from the AWS SDK for Java v1 to the AWS SDK for Java v2
- Convert ByteBuffer to SdkBytes
- Change auth related classes from v1 to v2
- Change config related classes from v1 to v2
- Change SDK Exception types from v1 to v2
- Change region related classes
- Change SDK S3EventNotification types from v1 to v2
- Change SDK core types from v1 to v2
- Change AWS SDK for Java v1 types to v2 equivalents
- Change TransferManager simple methods to v2.
- Change SDK TransferManager types from v1 to v2
- Convert Date to Instant
- V1 Enum Casing to V2
- Change v1 enum getters to v2
- Move HTTP settings from the ClientOverrideConfiguration to ApacheHttpClient for sync and NettyNioAsyncHttpClient for async
- Transform 'new' expressions to builders
- Change new objects creation to Builder pattern
- Transform 'new' expressions to static factory methods
- Convert the method parameter from numeric type to duration
- Add imports and comments to unsupported S3 transforms.
- Change S3EventNotification methods to v2.
- S3 Event Notification method to v2
- Change S3 method constructors to fluent builder calls
- Change S3 methods to v2.
- V1 S3 non-streaming requests to V2
- V1 S3 non-streaming requests to V2
- S3 POJOs to V2
- V1 S3 PutObjectRequest, AmazonS3.putObject(PutObjectRequest), and TransferManager.upload(PutObjectRequest) to V2
- V1 S3 streaming requests to V2
- V1 S3Object to V2
- Add imports and comments to unsupported S3 transfer manager transforms.
- Change S3 types to v2.
- Convert v1 AmazonS3URI to v2 S3Uri
- Convert SdkBytes to ByteBuffer
- SDK Exceptions Methods to V2
- Convert V1 setters to V2 toBuilder setters
- Transfer Manager Methods to V2
- Change v1 Maven/Gradle dependencies to v2
- V1 client builder variations to builder()
- V1 Getter to V2
- V1 Setter to V2
- Wrap the region string provided on the SDK client builder with Region.of
- All Picnic Refaster rules
- Refaster rules related to AssertJ assertions over BigDecimals
- Refaster template AssertJBigDecimalRules.AbstractBigDecimalAssertIsEqualByComparingTo
- Refaster template AssertJBigDecimalRules.AbstractBigDecimalAssertIsNotEqualByComparingTo
- AssertJBigIntegerRules Refaster recipes
- Refaster template AssertJBigIntegerRules.AbstractBigIntegerAssertIsEqualToOne
- Refaster template AssertJBigIntegerRules.AbstractBigIntegerAssertIsEqualTo
- Refaster template AssertJBigIntegerRules.AbstractBigIntegerAssertIsEqualToZero
- Refaster template AssertJBigIntegerRules.AbstractBigIntegerAssertIsNotEqualTo
- Refaster template AssertJBigIntegerRules.AbstractBigIntegerAssertIsNotEqualToZero
- AssertJBooleanRules Refaster recipes
- Refaster template AssertJBooleanRules.AbstractBooleanAssertIsEqualTo
- Refaster template AssertJBooleanRules.AbstractBooleanAssertIsFalse
- Refaster template AssertJBooleanRules.AbstractBooleanAssertIsNotEqualTo
- Refaster template AssertJBooleanRules.AbstractBooleanAssertIsTrue
- Refaster template AssertJBooleanRules.AssertThatIsFalse
- Refaster template AssertJBooleanRules.AssertThatIsTrue
- AssertJByteRules Refaster recipes
- Refaster template AssertJByteRules.AbstractByteAssertIsEqualToOne
- Refaster template AssertJByteRules.AbstractByteAssertIsEqualTo
- Refaster template AssertJByteRules.AbstractByteAssertIsEqualToZero
- Refaster template AssertJByteRules.AbstractByteAssertIsNotEqualTo
- Refaster template AssertJByteRules.AbstractByteAssertIsNotEqualToZero
- AssertJCharSequenceRules Refaster recipes
- Refaster template AssertJCharSequenceRules.AssertThatHasSize
- Refaster template AssertJCharSequenceRules.AssertThatIsEmpty
- Refaster template AssertJCharSequenceRules.AssertThatIsNotEmpty
- AssertJComparableRules Refaster recipes
- Refaster template AssertJComparableRules.AssertThatIsEqualByComparingTo
- Refaster template AssertJComparableRules.AssertThatIsGreaterThanOrEqualTo
- Refaster template AssertJComparableRules.AssertThatIsGreaterThan
- Refaster template AssertJComparableRules.AssertThatIsLessThanOrEqualTo
- Refaster template AssertJComparableRules.AssertThatIsLessThan
- Refaster template AssertJComparableRules.AssertThatIsNotEqualByComparingTo
- AssertJDoubleRules Refaster recipes
- Refaster template AssertJDoubleRules.AbstractDoubleAssertIsCloseTo
- Refaster template AssertJDoubleRules.AbstractDoubleAssertIsEqualToOne
- Refaster template AssertJDoubleRules.AbstractDoubleAssertIsEqualTo
- Refaster template AssertJDoubleRules.AbstractDoubleAssertIsEqualToZero
- Refaster template AssertJDoubleRules.AbstractDoubleAssertIsNotEqualTo
- Refaster template AssertJDoubleRules.AbstractDoubleAssertIsNotEqualToZero
- AssertJDurationRules Refaster recipes
- Refaster template AssertJDurationRules.AssertThatHasDays
- Refaster template AssertJDurationRules.AssertThatHasHours
- Refaster template AssertJDurationRules.AssertThatHasMillis
- Refaster template AssertJDurationRules.AssertThatHasMinutes
- Refaster template AssertJDurationRules.AssertThatHasNanos
- Refaster template AssertJDurationRules.AssertThatHasSeconds
- Refaster template AssertJDurationRules.AssertThatIsNegative
- Refaster template AssertJDurationRules.AssertThatIsPositive
- Refaster template AssertJDurationRules.AssertThatIsZero
- AssertJEnumerableRules Refaster recipes
- Refaster template AssertJEnumerableRules.EnumerableAssertHasSameSizeAs
- Refaster template AssertJEnumerableRules.EnumerableAssertHasSizeBetween
- Refaster template AssertJEnumerableRules.EnumerableAssertHasSizeGreaterThanOrEqualTo
- Refaster template AssertJEnumerableRules.EnumerableAssertHasSizeGreaterThan
- Refaster template AssertJEnumerableRules.EnumerableAssertHasSizeLessThanOrEqualTo
- Refaster template AssertJEnumerableRules.EnumerableAssertHasSizeLessThan
- Refaster template AssertJEnumerableRules.EnumerableAssertHasSize
- Refaster template AssertJEnumerableRules.EnumerableAssertIsNotEmpty
- AssertJFileRules Refaster recipes
- Refaster template AssertJFileRules.AssertThatDoesNotExist
- Refaster template AssertJFileRules.AssertThatExists
- Refaster template AssertJFileRules.AssertThatHasFileName
- Refaster template AssertJFileRules.AssertThatHasNoParent
- Refaster template AssertJFileRules.AssertThatHasParentFile
- Refaster template AssertJFileRules.AssertThatHasParentString
- Refaster template AssertJFileRules.AssertThatIsAbsolute
- Refaster template AssertJFileRules.AssertThatIsDirectory
- Refaster template AssertJFileRules.AssertThatIsExecutable
- Refaster template AssertJFileRules.AssertThatIsFile
- Refaster template AssertJFileRules.AssertThatIsReadable
- Refaster template AssertJFileRules.AssertThatIsRelative
- Refaster template AssertJFileRules.AssertThatIsWritable
- AssertJFloatRules Refaster recipes
- Refaster template AssertJFloatRules.AbstractFloatAssertIsCloseTo
- Refaster template AssertJFloatRules.AbstractFloatAssertIsEqualToOne
- Refaster template AssertJFloatRules.AbstractFloatAssertIsEqualTo
- Refaster template AssertJFloatRules.AbstractFloatAssertIsEqualToZero
- Refaster template AssertJFloatRules.AbstractFloatAssertIsNotEqualTo
- Refaster template AssertJFloatRules.AbstractFloatAssertIsNotEqualToZero
- AssertJInstantRules Refaster recipes
- Refaster template AssertJInstantRules.AssertThatIsAfterOrEqualTo
- Refaster template AssertJInstantRules.AssertThatIsAfter
- Refaster template AssertJInstantRules.AssertThatIsBeforeOrEqualTo
- Refaster template AssertJInstantRules.AssertThatIsBefore
- Refaster template AssertJInstantRules.AssertThatIsBetween
- Refaster template AssertJInstantRules.AssertThatIsStrictlyBetween
- AssertJIntegerRules Refaster recipes
- Refaster template AssertJIntegerRules.AbstractIntegerAssertIsEqualToOne
- Refaster template AssertJIntegerRules.AbstractIntegerAssertIsEqualTo
- Refaster template AssertJIntegerRules.AbstractIntegerAssertIsEqualToZero
- Refaster template AssertJIntegerRules.AbstractIntegerAssertIsNotEqualTo
- Refaster template AssertJIntegerRules.AbstractIntegerAssertIsNotEqualToZero
- AssertJIterableRules Refaster recipes
- Refaster template AssertJIterableRules.AssertThatContainsAll
- Refaster template AssertJIterableRules.AssertThatContainsExactly
- Refaster template AssertJIterableRules.AssertThatContains
- Refaster template AssertJIterableRules.AssertThatDoesNotContain
- Refaster template AssertJIterableRules.AssertThatIsEmpty
- Refaster template AssertJIterableRules.AssertThatIsNotEmpty
- Refaster template AssertJIterableRules.AssertThatSize
- AssertJIteratorRules Refaster recipes
- Refaster template AssertJIteratorRules.AssertThatHasNext
- Refaster template AssertJIteratorRules.AssertThatIsExhausted
- AssertJLongRules Refaster recipes
- Refaster template AssertJLongRules.AbstractLongAssertIsEqualToOne
- Refaster template AssertJLongRules.AbstractLongAssertIsEqualTo
- Refaster template AssertJLongRules.AbstractLongAssertIsEqualToZero
- Refaster template AssertJLongRules.AbstractLongAssertIsNotEqualTo
- Refaster template AssertJLongRules.AbstractLongAssertIsNotEqualToZero
- AssertJMapRules Refaster recipes
- Refaster template AssertJMapRules.AbstractMapAssertContainsExactlyEntriesOfImmutableMapOf
- Refaster template AssertJMapRules.AbstractMapAssertContainsExactlyInAnyOrderEntriesOf
- Refaster template AssertJMapRules.AbstractMapAssertHasSameSizeAs
- Refaster template AssertJMapRules.AssertThatContainsKey
- Refaster template AssertJMapRules.AssertThatContainsOnlyKeysIterable
- Refaster template AssertJMapRules.AssertThatContainsOnlyKeysObject
- Refaster template AssertJMapRules.AssertThatContainsValue
- Refaster template AssertJMapRules.AssertThatDoesNotContainKey
- Refaster template AssertJMapRules.AssertThatDoesNotContainValue
- Refaster template AssertJMapRules.AssertThatIsEmpty
- AssertJNumberRules Refaster recipes
- Refaster template AssertJNumberRules.NumberAssertIsNegative
- Refaster template AssertJNumberRules.NumberAssertIsNotNegative
- Refaster template AssertJNumberRules.NumberAssertIsNotPositive
- Refaster template AssertJNumberRules.NumberAssertIsPositive
- AssertJObjectRules Refaster recipes
- Refaster template AssertJObjectRules.AssertThatHasSameHashCodeAs
- Refaster template AssertJObjectRules.AssertThatHasToString
- Prefer ObjectAssert#isEqualTo(Object) over more contrived alternatives
- Refaster template AssertJObjectRules.AssertThatIsInstanceOf
- Prefer ObjectAssert#isNotEqualTo(Object) over more contrived alternatives
- Refaster template AssertJObjectRules.AssertThatIsNotNull
- Refaster template AssertJObjectRules.AssertThatIsNotSameAs
- Refaster template AssertJObjectRules.AssertThatIsNull
- Refaster template AssertJObjectRules.AssertThatIsSameAs
- AssertJOptionalRules Refaster recipes
- Refaster template AssertJOptionalRules.AbstractOptionalAssertContainsSame
- Refaster template AssertJOptionalRules.AbstractOptionalAssertHasValue
- Refaster template AssertJOptionalRules.AbstractOptionalAssertIsEmpty
- Refaster template AssertJOptionalRules.AbstractOptionalAssertIsPresent
- Refaster template AssertJOptionalRules.AssertThatGetMatches
- Refaster template AssertJOptionalRules.AssertThatGet
- Refaster template AssertJOptionalRules.AssertThatIsEmpty
- Refaster template AssertJOptionalRules.AssertThatIsPresent
- AssertJPathRules Refaster recipes
- Refaster template AssertJPathRules.AssertThatDoesNotExist
- Refaster template AssertJPathRules.AssertThatEndsWithRaw
- Refaster template AssertJPathRules.AssertThatExists
- Prefer AbstractPathAssert#hasFileName(String) over more contrived alternatives
- Refaster template AssertJPathRules.AssertThatHasNoParent
- Prefer AbstractPathAssert#hasParentRaw(Path) over more contrived alternatives
- Refaster template AssertJPathRules.AssertThatIsAbsolute
- Refaster template AssertJPathRules.AssertThatIsDirectory
- Refaster template AssertJPathRules.AssertThatIsExecutable
- Refaster template AssertJPathRules.AssertThatIsReadable
- Refaster template AssertJPathRules.AssertThatIsRegularFile
- Refaster template AssertJPathRules.AssertThatIsRelative
- Refaster template AssertJPathRules.AssertThatIsSymbolicLink
- Refaster template AssertJPathRules.AssertThatIsWritable
- Refaster template AssertJPathRules.AssertThatStartsWithRaw
- AssertJPrimitiveRules Refaster recipes
- Refaster template AssertJPrimitiveRules.AssertThatIsEqualTo
- Refaster template AssertJPrimitiveRules.AssertThatIsGreaterThanOrEqualTo
- Refaster template AssertJPrimitiveRules.AssertThatIsGreaterThan
- Refaster template AssertJPrimitiveRules.AssertThatIsLessThanOrEqualTo
- Refaster template AssertJPrimitiveRules.AssertThatIsLessThan
- Refaster template AssertJPrimitiveRules.AssertThatIsNotEqualTo
- AssertJRules Refaster recipes
- Refaster template AssertJRules.AssertThatAccepts
- Refaster template AssertJRules.AssertThatContainsAll
- Refaster template AssertJRules.AssertThatContainsAnyElementsOf
- Refaster template AssertJRules.AssertThatContainsAnyOf
- Refaster template AssertJRules.AssertThatContainsAnyOfVarargs
- Prefer MapAssert#containsEntry(Object, Object) over more contrived alternatives
- Prefer ListAssert#containsExactlyElementsOf(Iterable) over less explicit alternatives
- Refaster template AssertJRules.AssertThatContainsExactlyElementsOfStream
- Prefer AbstractCollectionAssert#containsExactlyInAnyOrderElementsOf(Iterable) over less explicit alternatives
- Refaster template AssertJRules.AssertThatContainsExactlyInAnyOrderElementsOfStream
- Refaster template AssertJRules.AssertThatContainsExactlyInAnyOrder
- Refaster template AssertJRules.AssertThatContainsExactlyInAnyOrderVarargs
- Refaster template AssertJRules.AssertThatContainsExactlySet
- Refaster template AssertJRules.AssertThatContainsExactlyStream
- Refaster template AssertJRules.AssertThatContainsExactlyVarargs
- Refaster template AssertJRules.AssertThatContainsOnly
- Refaster template AssertJRules.AssertThatContainsOnlyVarargs
- Refaster template AssertJRules.AssertThatContains
- Refaster template AssertJRules.AssertThatContainsSequence
- Refaster template AssertJRules.AssertThatContainsSequenceVarargs
- Refaster template AssertJRules.AssertThatContainsSubsequence
- Refaster template AssertJRules.AssertThatContainsSubsequenceVarargs
- Refaster template AssertJRules.AssertThatContainsVarargs
- Refaster template AssertJRules.AssertThatDoesNotContainAnyElementsOf
- Refaster template AssertJRules.AssertThatDoesNotContain
- Refaster template AssertJRules.AssertThatDoesNotContainSequence
- Refaster template AssertJRules.AssertThatDoesNotContainSequenceVarargs
- Refaster template AssertJRules.AssertThatDoesNotContainVarargs
- Prefer AbstractCollectionAssert#hasSameElementsAs(Iterable) over less explicit or more contrived alternatives
- Refaster template AssertJRules.AssertThatHasSameElementsAsStream
- Refaster template AssertJRules.AssertThatHasValueOptionalDouble
- Refaster template AssertJRules.AssertThatHasValueOptionalInt
- Refaster template AssertJRules.AssertThatHasValueOptionalLong
- Refaster template AssertJRules.AssertThatIsSubsetOf
- Refaster template AssertJRules.AssertThatIsSubsetOfVarargs
- Refaster template AssertJRules.AssertThatRejects
- Refaster template AssertJRules.ObjectEnumerableAssertContains
- Refaster template AssertJRules.ObjectEnumerableAssertDoesNotContain
- AssertJShortRules Refaster recipes
- Refaster template AssertJShortRules.AbstractShortAssertIsEqualToOne
- Refaster template AssertJShortRules.AbstractShortAssertIsEqualTo
- Refaster template AssertJShortRules.AbstractShortAssertIsEqualToZero
- Refaster template AssertJShortRules.AbstractShortAssertIsNotEqualTo
- Refaster template AssertJShortRules.AbstractShortAssertIsNotEqualToZero
- AssertJStreamRules Refaster recipes
- Refaster template AssertJStreamRules.AssertThatAllMatch
- Refaster template AssertJStreamRules.AssertThatAnyMatch
- Refaster template AssertJStreamRules.AssertThatFilteredOn
- Refaster template AssertJStreamRules.AssertThatHasSize
- Refaster template AssertJStreamRules.AssertThatIsEmpty
- Refaster template AssertJStreamRules.AssertThatIsNotEmpty
- Refaster template AssertJStreamRules.AssertThatNoneMatch
- Refaster template AssertJStreamRules.AssertThat
- AssertJStringRules Refaster recipes
- Refaster template AssertJStringRules.AbstractStringAssertIsEmpty
- Refaster template AssertJStringRules.AbstractStringAssertIsNotEmpty
- Refaster template AssertJStringRules.AssertThatContains
- Refaster template AssertJStringRules.AssertThatContent
- Refaster template AssertJStringRules.AssertThatContentUtf8
- Refaster template AssertJStringRules.AssertThatDoesNotContain
- Refaster template AssertJStringRules.AssertThatDoesNotEndWith
- Refaster template AssertJStringRules.AssertThatDoesNotMatch
- Refaster template AssertJStringRules.AssertThatDoesNotStartWith
- Refaster template AssertJStringRules.AssertThatEndsWith
- Refaster template AssertJStringRules.AssertThatIsBlank
- Refaster template AssertJStringRules.AssertThatIsEqualToIgnoringCase
- Refaster template AssertJStringRules.AssertThatIsNotBlank
- Refaster template AssertJStringRules.AssertThatIsNotEqualToIgnoringCase
- Refaster template AssertJStringRules.AssertThatMatches
- Refaster template AssertJStringRules.AssertThatStartsWith
- Refaster rules related to AssertJ assertions over expressions that may throw a Throwable subtype
- Refaster template AssertJThrowingCallableRules.AbstractThrowableAssertCauseIsSameAs
- Refaster template AssertJThrowingCallableRules.AbstractThrowableAssertHasMessage
- Refaster template AssertJThrowingCallableRules.AbstractThrowableAssertWithFailMessage
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByAsInstanceOfThrowable
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfHasMessageContaining
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfHasMessageNotContaining
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfHasMessage
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfHasMessageStartingWith
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfHasMessageVarargs
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIllegalArgumentExceptionClassHasMessageContaining
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIllegalArgumentExceptionClassHasMessageNotContainingAny
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIllegalArgumentExceptionClassHasMessage
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIllegalArgumentExceptionClassHasMessageStartingWith
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIllegalArgumentExceptionClassHasMessageVarargs
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIllegalArgumentExceptionClass
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIllegalArgumentExceptionClassRootCauseHasMessage
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIllegalStateExceptionClassHasMessageContaining
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIllegalStateExceptionClassHasMessageNotContaining
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIllegalStateExceptionClassHasMessage
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIllegalStateExceptionClassHasMessageStartingWith
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIllegalStateExceptionClassHasMessageVarargs
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIllegalStateExceptionClass
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIllegalStateExceptionClassRootCauseHasMessage
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIOExceptionClassHasMessageContaining
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIOExceptionClassHasMessageNotContaining
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIOExceptionClassHasMessage
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIOExceptionClassHasMessageStartingWith
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIOExceptionClassHasMessageVarargs
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIOExceptionClass
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfIOExceptionClassRootCauseHasMessage
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfNullPointerExceptionClassHasMessageContaining
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfNullPointerExceptionClassHasMessageNotContaining
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfNullPointerExceptionClassHasMessage
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfNullPointerExceptionClassHasMessageStartingWith
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfNullPointerExceptionClassHasMessageVarargs
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfNullPointerExceptionClass
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfNullPointerExceptionClassRootCauseHasMessage
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOf
- Refaster template AssertJThrowingCallableRules.AssertThatThrownByIsInstanceOfRootCauseHasMessage
- AssortedRules Refaster recipes
- Refaster template AssortedRules.CheckIndexExpression
- Refaster template AssortedRules.IterablesIsEmpty
- Refaster template AssortedRules.IteratorsGetNext
- Refaster template AssortedRules.Or
- Refaster template AssortedRules.SplitterSplitToStream
- Refaster template AssortedRules.StreamGenerate
- BigDecimalRules Refaster recipes
- Refaster template BigDecimalRules.BigDecimalOne
- Refaster template BigDecimalRules.BigDecimalSignumEqualToZero
- Refaster template BigDecimalRules.BigDecimalSignumIsNegative
- Refaster template BigDecimalRules.BigDecimalSignumIsPositive
- Refaster template BigDecimalRules.BigDecimalTen
- Refaster template BigDecimalRules.BigDecimalTwo
- Prefer BigDecimal#valueOf(double) over the associated constructor
- Refaster template BigDecimalRules.BigDecimalZero
- BugCheckerRules Refaster recipes
- Refaster template BugCheckerRules.ASTHelpersGetStartPosition
- Refaster template BugCheckerRules.BugCheckerRefactoringTestHelperAddInputLinesExpectUnchanged
- Refaster template BugCheckerRules.BugCheckerRefactoringTestHelperIdentity
- Refaster template BugCheckerRules.NameContentEquals
- CharSequenceRules Refaster recipes
- Refaster template CharSequenceRules.CharSequenceIsEmpty
- ClassRules Refaster recipes
- Refaster template ClassRules.ClassCast
- Refaster template ClassRules.ClassIsInstanceWithClassAndObject
- Refaster template ClassRules.ClassIsInstanceWithClass
- CollectionRules Refaster recipes
- Refaster template CollectionRules.CollectionAddAllExpression
- Refaster template CollectionRules.CollectionContains
- Refaster template CollectionRules.CollectionForEach
- Refaster template CollectionRules.CollectionIsEmpty
- Refaster template CollectionRules.CollectionIteratorNext
- Refaster template CollectionRules.CollectionIterator
- Refaster template CollectionRules.CollectionRemoveAllExpression
- Refaster template CollectionRules.CollectionSize
- Refaster template CollectionRules.CollectionStreamFindFirst
- Refaster template CollectionRules.CollectionToArray
- Refaster template CollectionRules.Disjoint
- Refaster template CollectionRules.ImmutableCollectionAsList
- Refaster template CollectionRules.ImmutableCollectionContains
- Refaster template CollectionRules.ImmutableCollectionParallelStream
- Refaster template CollectionRules.ImmutableCollectionStream
- Refaster template CollectionRules.ImmutableCollectionToArrayIntFunction
- Refaster template CollectionRules.ImmutableCollectionToArrayObject
- Refaster template CollectionRules.ImmutableCollectionToString
- Refaster template CollectionRules.ListAddFirst
- Refaster template CollectionRules.ListAdd
- Prefer List#removeFirst() over less idiomatic alternatives
- Prefer List#removeLast() over less idiomatic alternatives
- Refaster template CollectionRules.NewArrayList
- Refaster template CollectionRules.OptionalOfNullableNavigableSetPollFirst
- Refaster template CollectionRules.SequencedCollectionGetFirst
- Refaster template CollectionRules.SequencedCollectionGetLast
- Refaster template CollectionRules.SetOf
- Refaster template CollectionRules.SetStream
- Refaster template CollectionRules.SortedSetFirst
- Refaster template CollectionRules.SortedSetLast
- ComparatorRules Refaster recipes
- Refaster template ComparatorRules.CollectionsMaxArraysAsList
- Refaster template ComparatorRules.CollectionsMaxArraysAsListVarargs
- Refaster template ComparatorRules.CollectionsMax
- Refaster template ComparatorRules.CollectionsMaxWithComparator
- Refaster template ComparatorRules.CollectionsMinArraysAsList
- Refaster template ComparatorRules.CollectionsMinArraysAsListVarargs
- Refaster template ComparatorRules.CollectionsMin
- Refaster template ComparatorRules.CollectionsMinWithComparator
- Refaster template ComparatorRules.CollectionsSort
- Refaster template ComparatorRules.ComparableCompareTo
- Refaster template ComparatorRules.ComparatorsMax0
- Refaster template ComparatorRules.ComparatorsMin0
- Refaster template ComparatorRules.ComparatorThenComparingComparatorReversed
- Refaster template ComparatorRules.ComparatorThenComparingDouble
- Refaster template ComparatorRules.ComparatorThenComparingInt
- Refaster template ComparatorRules.ComparatorThenComparingLong
- Refaster template ComparatorRules.ComparatorThenComparing
- Refaster template ComparatorRules.ComparatorThenComparingReverseOrder
- Refaster template ComparatorRules.ComparatorThenComparingWithComparator
- Refaster template ComparatorRules.EnumIsLessThanOrEqualTo
- Refaster template ComparatorRules.EnumIsLessThan
- Refaster template ComparatorRules.GreatestNaturalOrder
- Refaster template ComparatorRules.Greatest
- Refaster template ComparatorRules.LeastNaturalOrder
- Refaster template ComparatorRules.Least
- Refaster template ComparatorRules.MaxByNaturalOrder
- Refaster template ComparatorRules.MinByNaturalOrder
- Refaster template ComparatorRules.ReverseOrder
- DequeRules Refaster recipes
- Refaster template DequeRules.DequeAddFirst
- Refaster template DequeRules.DequeDescendingIterator
- Refaster template DequeRules.DequeGetFirst
- Refaster template DequeRules.DequeIterator
- Refaster template DequeRules.DequeOfferLast
- Refaster template DequeRules.DequePeekFirst
- Refaster template DequeRules.DequePollFirst
- Refaster template DequeRules.DequeRemoveFirstOccurrence
- Refaster template DequeRules.DequeRemoveFirst
- DoubleStreamRules Refaster recipes
- Refaster template DoubleStreamRules.DoubleStreamAllMatchWithDoublePredicate
- Refaster template DoubleStreamRules.DoubleStreamAnyMatch
- Refaster template DoubleStreamRules.DoubleStreamConcat
- Refaster template DoubleStreamRules.DoubleStreamFilterSorted
- Refaster template DoubleStreamRules.DoubleStreamFindAnyIsEmpty
- Refaster template DoubleStreamRules.DoubleStreamFindAnyIsPresent
- Refaster template DoubleStreamRules.DoubleStreamIdentity
- Refaster template DoubleStreamRules.DoubleStreamMin
- Refaster template DoubleStreamRules.DoubleStreamNoneMatchWithDoublePredicate
- Refaster template DoubleStreamRules.DoubleStreamTakeWhile
- EqualityRules Refaster recipes
- Refaster template EqualityRules.BooleanIdentity
- Refaster template EqualityRules.EqualTo
- Refaster template EqualityRules.EqualToWithBoolean
- Refaster template EqualityRules.EqualToWithEnum
- Refaster template EqualityRules.NotEqualTo
- Refaster template EqualityRules.ObjectEquals
- Refaster template EqualityRules.ObjectEqualsWithObject
- Refaster template EqualityRules.ObjectsEquals
- FileRules Refaster recipes
- Refaster template FileRules.FileMkdirsOrFileExists
- Prefer Files#createTempFile(Path, String, String, FileAttribute[]) over less secure alternatives
- Prefer Files#createTempFile(String, String, FileAttribute[]) over less secure alternatives
- Prefer Files#newBufferedReader(Path) over more verbose or contrived alternatives
- Refaster template FileRules.FilesNewBufferedReaderWithCharset
- Refaster template FileRules.FilesNewInputStreamFileToPath
- Refaster template FileRules.FilesNewInputStreamPathOf
- Refaster template FileRules.FilesNewOutputStreamFileToPath
- Refaster template FileRules.FilesNewOutputStreamPathOf
- Refaster template FileRules.FilesReadString
- Refaster template FileRules.FilesReadStringWithCharset
- Refaster template FileRules.PathIdentity
- Refaster template FileRules.PathOf
- Refaster template FileRules.PathOfVarargs
- Prefer Path#resolveSibling(Path) over more fragile or more verbose alternatives
- Prefer Path#resolveSibling(String) over more fragile or more verbose alternatives
- Refaster template FileRules.PathToFileMkdirsOrFilesExists
- ImmutableEnumSetRules Refaster recipes
- Refaster template ImmutableEnumSetRules.SetsImmutableEnumSet1
- Prefer Sets#immutableEnumSet(Enum, Enum[]) over less efficient alternatives
- Prefer Sets#immutableEnumSet(Enum, Enum[]) over less efficient alternatives
- Prefer Sets#immutableEnumSet(Enum, Enum[]) over less efficient alternatives
- Prefer Sets#immutableEnumSet(Enum, Enum[]) over less efficient alternatives
- Prefer Sets#immutableEnumSet(Enum, Enum[]) over less efficient alternatives
- Prefer Sets.immutableEnumSet(Arrays.asList(array)) over less efficient alternatives
- Prefer Sets#immutableEnumSet(Iterable) over less efficient alternatives
- Refaster template ImmutableEnumSetRules.SetsImmutableEnumSetVarargs
- Prefer Sets#toImmutableEnumSet() over less efficient alternatives
- ImmutableListMultimapRules Refaster recipes
- Refaster template ImmutableListMultimapRules.BuilderPut
- Refaster template ImmutableListMultimapRules.ImmutableListMultimapBuilder
- Refaster template ImmutableListMultimapRules.ImmutableListMultimapCopyOfMultimapsTransformValuesWithFunction
- Refaster template ImmutableListMultimapRules.ImmutableListMultimapCopyOf
- Refaster template ImmutableListMultimapRules.ImmutableListMultimapOf0
- Refaster template ImmutableListMultimapRules.ImmutableListMultimapOf2
- Refaster template ImmutableListMultimapRules.ImmutableListMultimapOfEntryGetKeyEntryGetValue
- ImmutableListRules Refaster recipes
- Refaster template ImmutableListRules.ImmutableListBuilder
- Refaster template ImmutableListRules.ImmutableListCopyOf
- Refaster template ImmutableListRules.ImmutableListOf0
- Refaster template ImmutableListRules.ImmutableListOf1
- Refaster template ImmutableListRules.ImmutableListOf2
- Refaster template ImmutableListRules.ImmutableListOf3
- Refaster template ImmutableListRules.ImmutableListOf4
- Refaster template ImmutableListRules.ImmutableListOf5
- Refaster template ImmutableListRules.ImmutableListSortedCopyOfIterator
- Refaster template ImmutableListRules.ImmutableListSortedCopyOfIteratorWithComparator
- Refaster template ImmutableListRules.ImmutableListSortedCopyOf
- Refaster template ImmutableListRules.ImmutableListSortedCopyOfWithComparator
- Refaster template ImmutableListRules.StreamCollectToImmutableList
- Refaster template ImmutableListRules.StreamCollectToImmutableSetAsList
- ImmutableMapRules Refaster recipes
- Refaster template ImmutableMapRules.BuilderBuildOrThrow
- Refaster template ImmutableMapRules.BuilderPut
- Refaster template ImmutableMapRules.ImmutableMapBuilder
- Refaster template ImmutableMapRules.ImmutableMapCopyOf
- Refaster template ImmutableMapRules.ImmutableMapOf0
- Refaster template ImmutableMapRules.ImmutableMapOf10
- Refaster template ImmutableMapRules.ImmutableMapOf2
- Refaster template ImmutableMapRules.ImmutableMapOf4
- Refaster template ImmutableMapRules.ImmutableMapOf6
- Refaster template ImmutableMapRules.ImmutableMapOf8
- Refaster template ImmutableMapRules.ImmutableMapOfEntries
- Refaster template ImmutableMapRules.ImmutableMapOfEntryGetKeyEntryGetValue
- ImmutableMultisetRules Refaster recipes
- Refaster template ImmutableMultisetRules.ImmutableMultisetBuilder
- Refaster template ImmutableMultisetRules.ImmutableMultisetCopyOf
- Refaster template ImmutableMultisetRules.ImmutableMultisetOf
- Refaster template ImmutableMultisetRules.StreamCollectToImmutableMultiset
- ImmutableSetMultimapRules Refaster recipes
- Refaster template ImmutableSetMultimapRules.BuilderPut
- Refaster template ImmutableSetMultimapRules.ImmutableSetMultimapBuilder
- Refaster template ImmutableSetMultimapRules.ImmutableSetMultimapCopyOfMultimapsTransformValuesWithFunction
- Refaster template ImmutableSetMultimapRules.ImmutableSetMultimapCopyOf
- Refaster template ImmutableSetMultimapRules.ImmutableSetMultimapOf0
- Refaster template ImmutableSetMultimapRules.ImmutableSetMultimapOf2
- Refaster template ImmutableSetMultimapRules.ImmutableSetMultimapOfEntryGetKeyEntryGetValue
- ImmutableSetRules Refaster recipes
- Refaster template ImmutableSetRules.ImmutableSetBuilder
- Refaster template ImmutableSetRules.ImmutableSetCopyOf
- Refaster template ImmutableSetRules.ImmutableSetOf0
- Refaster template ImmutableSetRules.ImmutableSetOf1
- Refaster template ImmutableSetRules.ImmutableSetOf2
- Refaster template ImmutableSetRules.ImmutableSetOf3
- Refaster template ImmutableSetRules.ImmutableSetOf4
- Refaster template ImmutableSetRules.ImmutableSetOf5
- Refaster template ImmutableSetRules.SetsDifferenceImmutableCopy
- Refaster template ImmutableSetRules.SetsDifferenceMapKeySetImmutableCopy
- Refaster template ImmutableSetRules.SetsDifferenceMultimapKeySetImmutableCopy
- Refaster template ImmutableSetRules.SetsIntersectionImmutableCopy
- Refaster template ImmutableSetRules.SetsIntersectionMapKeySetImmutableCopy
- Refaster template ImmutableSetRules.SetsIntersectionMultimapKeySetImmutableCopy
- Refaster template ImmutableSetRules.SetsUnionImmutableCopy
- Refaster template ImmutableSetRules.SetViewImmutableCopy
- Refaster template ImmutableSetRules.StreamCollectToImmutableSet
- ImmutableSortedMapRules Refaster recipes
- Refaster template ImmutableSortedMapRules.ImmutableSortedMapCopyOf
- Refaster template ImmutableSortedMapRules.ImmutableSortedMapNaturalOrder
- Refaster template ImmutableSortedMapRules.ImmutableSortedMapOfEntryGetKeyEntryGetValue
- Refaster template ImmutableSortedMapRules.ImmutableSortedMapOf
- Refaster template ImmutableSortedMapRules.ImmutableSortedMapOfWithComparableAndObject
- Refaster template ImmutableSortedMapRules.ImmutableSortedMapOrderedBy
- Refaster template ImmutableSortedMapRules.ImmutableSortedMapReverseOrder
- Refaster template ImmutableSortedMapRules.ToImmutableSortedMap
- Refaster template ImmutableSortedMapRules.ToImmutableSortedMapWithBinaryOperator
- ImmutableSortedMultisetRules Refaster recipes
- Refaster template ImmutableSortedMultisetRules.ImmutableSortedMultisetCopyOf
- Refaster template ImmutableSortedMultisetRules.ImmutableSortedMultisetNaturalOrder
- Refaster template ImmutableSortedMultisetRules.ImmutableSortedMultisetOf
- Refaster template ImmutableSortedMultisetRules.ImmutableSortedMultisetOrderedBy
- Refaster template ImmutableSortedMultisetRules.ImmutableSortedMultisetReverseOrder
- Refaster template ImmutableSortedMultisetRules.StreamCollectToImmutableSortedMultisetNaturalOrder
- ImmutableSortedSetRules Refaster recipes
- Refaster template ImmutableSortedSetRules.ImmutableSortedSetCopyOf
- Refaster template ImmutableSortedSetRules.ImmutableSortedSetNaturalOrder
- Refaster template ImmutableSortedSetRules.ImmutableSortedSetOf
- Refaster template ImmutableSortedSetRules.ImmutableSortedSetOrderedBy
- Refaster template ImmutableSortedSetRules.ImmutableSortedSetReverseOrder
- Refaster template ImmutableSortedSetRules.StreamCollectToImmutableSortedSetNaturalOrder
- ImmutableTableRules Refaster recipes
- Refaster template ImmutableTableRules.BuilderBuildOrThrow
- Refaster template ImmutableTableRules.BuilderPut
- Refaster template ImmutableTableRules.ImmutableTableBuilder
- Refaster template ImmutableTableRules.ImmutableTableOfCellGetRowKeyCellGetColumnKeyCellGetValue
- Refaster template ImmutableTableRules.ImmutableTableOf
- InputStreamRules Refaster recipes
- Refaster template InputStreamRules.InputStreamReadAllBytes
- Refaster template InputStreamRules.InputStreamReadNBytes
- Refaster template InputStreamRules.InputStreamSkipNBytes
- Refaster template InputStreamRules.InputStreamTransferTo
- IntStreamRules Refaster recipes
- Refaster template IntStreamRules.IntStreamAllMatchWithIntPredicate
- Refaster template IntStreamRules.IntStreamAnyMatch
- Refaster template IntStreamRules.IntStreamConcat
- Refaster template IntStreamRules.IntStreamFilterSorted
- Refaster template IntStreamRules.IntStreamFindAnyIsEmpty
- Refaster template IntStreamRules.IntStreamFindAnyIsPresent
- Refaster template IntStreamRules.IntStreamIdentity
- Refaster template IntStreamRules.IntStreamMin
- Refaster template IntStreamRules.IntStreamNoneMatchWithIntPredicate
- Prefer IntStream#range(int, int) over more verbose alternatives
- Refaster template IntStreamRules.IntStreamTakeWhile
- Jackson2Rules Refaster recipes
- Refaster template Jackson2Rules.JsonNodeOptionalInt
- Refaster template Jackson2Rules.JsonNodeOptionalString
- Refaster template Jackson2Rules.ObjectMapperConvertValueClass
- Refaster template Jackson2Rules.ObjectMapperConvertValueJavaType
- Refaster template Jackson2Rules.ObjectMapperConvertValueTypeReference
- Refaster template Jackson2Rules.ObjectMapperValueToTree
- Jackson3Rules Refaster recipes
- Refaster template Jackson3Rules.JsonNodeOptionalInt
- Refaster template Jackson3Rules.JsonNodeOptionalString
- Refaster template Jackson3Rules.ObjectMapperConvertValueClass
- Refaster template Jackson3Rules.ObjectMapperConvertValueJavaType
- Refaster template Jackson3Rules.ObjectMapperConvertValueTypeReference
- Refaster template Jackson3Rules.ObjectMapperValueToTree
- JUnitRules Refaster recipes
- Refaster template JUnitRules.ArgumentsEnumeration
- Refaster rules that replace JUnit APIs with AssertJ equivalents
- Refaster template JUnitToAssertJRules.AssertThatContainsExactlyBoolean
- Refaster template JUnitToAssertJRules.AssertThatContainsExactlyByte
- Refaster template JUnitToAssertJRules.AssertThatContainsExactlyChar
- Refaster template JUnitToAssertJRules.AssertThatContainsExactlyDouble
- Refaster template JUnitToAssertJRules.AssertThatContainsExactlyFloat
- Refaster template JUnitToAssertJRules.AssertThatContainsExactlyInt
- Refaster template JUnitToAssertJRules.AssertThatContainsExactlyLong
- Refaster template JUnitToAssertJRules.AssertThatContainsExactlyObject
- Refaster template JUnitToAssertJRules.AssertThatContainsExactlyOffsetDouble
- Refaster template JUnitToAssertJRules.AssertThatContainsExactlyOffsetFloat
- Refaster template JUnitToAssertJRules.AssertThatContainsExactlyShort
- Refaster template JUnitToAssertJRules.AssertThatIsFalse
- Refaster template JUnitToAssertJRules.AssertThatIsInstanceOf
- Refaster template JUnitToAssertJRules.AssertThatIsNotNull
- Refaster template JUnitToAssertJRules.AssertThatIsNotSameAs
- Refaster template JUnitToAssertJRules.AssertThatIsNull
- Refaster template JUnitToAssertJRules.AssertThatIsSameAs
- Refaster template JUnitToAssertJRules.AssertThatIsTrue
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyBooleanString
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyBooleanSupplier
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyByteString
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyByteSupplier
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyCharString
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyCharSupplier
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyDoubleString
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyDoubleSupplier
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyFloatString
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyFloatSupplier
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyIntString
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyIntSupplier
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyLongString
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyLongSupplier
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyObjectString
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyObjectSupplier
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyOffsetDoubleString
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyOffsetDoubleSupplier
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyOffsetFloatString
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyOffsetFloatSupplier
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyShortString
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageContainsExactlyShortSupplier
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageIsFalseString
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageIsFalseSupplier
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageIsInstanceOfString
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageIsInstanceOfSupplier
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageIsNotNullString
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageIsNotNullSupplier
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageIsNotSameAsString
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageIsNotSameAsSupplier
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageIsNullString
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageIsNullSupplier
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageIsSameAsString
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageIsSameAsSupplier
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageIsTrueString
- Refaster template JUnitToAssertJRules.AssertThatWithFailMessageIsTrueSupplier
- Refaster template JUnitToAssertJRules.Fail
- Refaster template JUnitToAssertJRules.FailWithStringAndThrowable
- Refaster template JUnitToAssertJRules.FailWithString
- Refaster template JUnitToAssertJRules.FailWithThrowable
- LongStreamRules Refaster recipes
- Refaster template LongStreamRules.LongStreamAllMatchWithLongPredicate
- Refaster template LongStreamRules.LongStreamAnyMatch
- Refaster template LongStreamRules.LongStreamConcat
- Refaster template LongStreamRules.LongStreamFilterSorted
- Refaster template LongStreamRules.LongStreamFindAnyIsEmpty
- Refaster template LongStreamRules.LongStreamFindAnyIsPresent
- Refaster template LongStreamRules.LongStreamIdentity
- Refaster template LongStreamRules.LongStreamMin
- Refaster template LongStreamRules.LongStreamNoneMatchWithLongPredicate
- Prefer LongStream#range(long, long) over more verbose alternatives
- Refaster template LongStreamRules.LongStreamTakeWhile
- MapEntryRules Refaster recipes
- Refaster template MapEntryRules.ComparingByKey
- Refaster template MapEntryRules.ComparingByKeyWithComparator
- Refaster template MapEntryRules.ComparingByValue
- Refaster template MapEntryRules.ComparingByValueWithComparator
- Prefer Map#entry(Object, Object) over non-JDK alternatives or the associated constructor
- MapRules Refaster recipes
- Refaster template MapRules.MapContainsKey
- Refaster template MapRules.MapContainsValue
- Prefer Map#getOrDefault(Object, Object) over more contrived alternatives
- Refaster template MapRules.MapGet
- Refaster template MapRules.MapIsEmpty
- Refaster template MapRules.MapKeySetStream
- Refaster template MapRules.MapSize
- Refaster template MapRules.MapValuesStream
- MicrometerRules Refaster recipes
- Refaster template MicrometerRules.TagsOf1
- Refaster template MicrometerRules.TagsOf2
- Refaster template MicrometerRules.TagsOf3
- Refaster template MicrometerRules.TagsOf4
- Refaster template MicrometerRules.TagsOf5
- MockitoRules Refaster recipes
- Refaster template MockitoRules.InvocationOnMockGetArgument
- Refaster template MockitoRules.Never
- Refaster template MockitoRules.Verify
- MultimapRules Refaster recipes
- Refaster template MultimapRules.MultimapContainsKey
- Refaster template MultimapRules.MultimapContainsValue
- Prefer Multimap#get(Object) over more contrived alternatives
- Refaster template MultimapRules.MultimapIsEmpty
- Refaster template MultimapRules.MultimapKeySet
- Refaster template MultimapRules.MultimapKeysStream
- Refaster template MultimapRules.MultimapSize
- Refaster template MultimapRules.MultimapValuesStream
- NullRules Refaster recipes
- Refaster template NullRules.EqualToNull
- Refaster template NullRules.NotEqualToNull
- Refaster template NullRules.ObjectsIsNull
- Refaster template NullRules.ObjectsNonNull
- Refaster template NullRules.RequireNonNullElseGet
- Refaster template NullRules.RequireNonNullElse
- OptionalRules Refaster recipes
- Refaster template OptionalRules.OptionalEmpty
- Refaster template OptionalRules.OptionalEqualsOptionalOf
- Refaster template OptionalRules.OptionalFilterIsPresent
- Refaster template OptionalRules.OptionalFilter
- Refaster template OptionalRules.OptionalIsEmpty
- Refaster template OptionalRules.OptionalIsPresent
- Refaster template OptionalRules.OptionalMapWithFunction
- Refaster template OptionalRules.OptionalOfNullable
- Refaster template OptionalRules.OptionalOrElseThrow
- Refaster template OptionalRules.OptionalOrElseThrowWithOptional
- Refaster template OptionalRules.OptionalOrOrElseThrow
- Refaster template OptionalRules.OptionalOr
- Refaster template OptionalRules.OptionalStream
- Refaster template OptionalRules.StreamFlatMapOptionalStream
- Refaster template OptionalRules.StreamsStreamFindFirst
- PatternRules Refaster recipes
- Refaster template PatternRules.PatternAsPredicate
- Refaster template PatternRules.PatternCompileAsPredicate
- PreconditionsRules Refaster recipes
- Refaster template PreconditionsRules.RequireNonNullExpression
- Refaster template PreconditionsRules.RequireNonNullWithStringExpression
- PrimitiveRules Refaster recipes
- Refaster template PrimitiveRules.ArraysCompareUnsignedByte
- Refaster template PrimitiveRules.ArraysCompareUnsignedInt
- Refaster template PrimitiveRules.ArraysCompareUnsignedLong
- Refaster template PrimitiveRules.CharacterBytes
- Refaster template PrimitiveRules.DoubleBytes
- Refaster template PrimitiveRules.FloatBytes
- Refaster template PrimitiveRules.GreaterThanOrEqualTo
- Refaster template PrimitiveRules.GreaterThan
- Refaster template PrimitiveRules.IntegerBytes
- Refaster template PrimitiveRules.IntegerCompareUnsigned
- Refaster template PrimitiveRules.IntegerDivideUnsigned
- Refaster template PrimitiveRules.IntegerParseUnsignedInt
- Refaster template PrimitiveRules.IntegerParseUnsignedIntWithInt
- Refaster template PrimitiveRules.IntegerRemainderUnsigned
- Refaster template PrimitiveRules.IntegerSignumIsNegative
- Refaster template PrimitiveRules.IntegerSignumIsPositive
- Refaster template PrimitiveRules.IntegerToUnsignedString
- Refaster template PrimitiveRules.IntegerToUnsignedStringWithInt
- Refaster template PrimitiveRules.LessThanOrEqualTo
- Refaster template PrimitiveRules.LessThan
- Refaster template PrimitiveRules.LongBytes
- Refaster template PrimitiveRules.LongCompareUnsigned
- Refaster template PrimitiveRules.LongDivideUnsigned
- Refaster template PrimitiveRules.LongParseUnsignedLong
- Refaster template PrimitiveRules.LongParseUnsignedLongWithInt
- Refaster template PrimitiveRules.LongRemainderUnsigned
- Refaster template PrimitiveRules.LongSignumIsNegative
- Refaster template PrimitiveRules.LongSignumIsPositive
- Refaster template PrimitiveRules.LongToUnsignedString
- Refaster template PrimitiveRules.LongToUnsignedStringWithInt
- Refaster template PrimitiveRules.MathClampDouble
- Refaster template PrimitiveRules.MathClampFloat
- Refaster template PrimitiveRules.MathClampInt
- Refaster template PrimitiveRules.MathClampLong
- Refaster template PrimitiveRules.MathToIntExact
- Refaster template PrimitiveRules.ShortBytes
- RandomGeneratorRules Refaster recipes
- Prefer RandomGenerator#nextDouble(double origin, double bound) over more fragile alternatives
- Prefer RandomGenerator#nextDouble(double) over more fragile alternatives
- Prefer RandomGenerator#nextInt(int origin, int bound) over more fragile alternatives
- Refaster template RandomGeneratorRules.RandomGeneratorNextInt
- Prefer RandomGenerator#nextLong(long origin, long bound) over more fragile alternatives
- Prefer RandomGenerator#nextLong(long) over more contrived alternatives
- ReactorRules Refaster recipes
- Refaster template ReactorRules.FluxAsStepVerifierCreateExpectNext
- Refaster template ReactorRules.FluxAsStepVerifierCreate
- Refaster template ReactorRules.FluxCollectToImmutableList
- Refaster template ReactorRules.FluxCollectToImmutableSet
- Refaster template ReactorRules.FluxConcatMapIterableIdentity
- Refaster template ReactorRules.FluxConcatMapIterableIdentityWithInt
- Refaster template ReactorRules.FluxDefaultIfEmpty
- Refaster template ReactorRules.FluxDistinctSort
- Refaster template ReactorRules.FluxDistinctSortWithComparator
- Refaster template ReactorRules.FluxDoOnError
- Refaster template ReactorRules.FluxErrorSupplier
- Refaster template ReactorRules.FluxErrorThrowable
- Refaster template ReactorRules.FluxFilterSort
- Refaster template ReactorRules.FluxFilterSortWithComparator
- Refaster template ReactorRules.FluxFromIterable
- Refaster template ReactorRules.FluxFromStream
- Refaster template ReactorRules.FluxIdentity
- Refaster template ReactorRules.FluxJust
- Refaster template ReactorRules.FluxJustVarargs
- Refaster template ReactorRules.FluxMapNotNullOptionalOrElseNull
- Refaster template ReactorRules.FluxNext
- Refaster template ReactorRules.FluxOfType
- Refaster template ReactorRules.FluxOnErrorCompleteWithPredicate
- Refaster template ReactorRules.FluxOnErrorContinue
- Refaster template ReactorRules.FluxOnErrorMap
- Refaster template ReactorRules.FluxOnErrorResume
- Refaster template ReactorRules.FluxOnErrorReturn
- Refaster template ReactorRules.FluxSort
- Prefer Flux#take(long) over Flux#take(long, boolean) where relevant
- Refaster template ReactorRules.FluxTakeWhile
- Refaster template ReactorRules.FluxThenEmpty
- Refaster template ReactorRules.FluxThenMany
- Refaster template ReactorRules.FluxThen
- Refaster template ReactorRules.FluxThenWithMono
- Refaster template ReactorRules.FluxTimeoutFluxEmpty
- Refaster template ReactorRules.FluxTransformMathFluxMaxSingleOrEmpty
- Refaster template ReactorRules.FluxTransformMathFluxMaxSingleOrEmptyWithComparator
- Refaster template ReactorRules.FluxTransformMathFluxMinSingleOrEmpty
- Refaster template ReactorRules.FluxTransformMathFluxMinSingleOrEmptyWithComparator
- Refaster template ReactorRules.FluxZipMapFunction
- Refaster template ReactorRules.FluxZip
- Refaster template ReactorRules.FluxZipWithIterableMapFunction
- Refaster template ReactorRules.FluxZipWithIterable
- Refaster template ReactorRules.FluxZipWithIterableWithBiFunction
- Refaster template ReactorRules.LastStepVerifyComplete
- Refaster template ReactorRules.LastStepVerifyErrorMatches
- Refaster template ReactorRules.LastStepVerifyErrorMessage
- Refaster template ReactorRules.LastStepVerifyError
- Refaster template ReactorRules.LastStepVerifyErrorSatisfiesAssertThatIsInstanceOfHasMessage
- Refaster template ReactorRules.LastStepVerifyErrorSatisfies
- Refaster template ReactorRules.LastStepVerifyErrorWithClass
- Refaster template ReactorRules.LastStepVerifyTimeout
- Refaster template ReactorRules.MathFluxMax
- Refaster template ReactorRules.MathFluxMin
- Refaster template ReactorRules.MonoAsStepVerifierCreate
- Refaster template ReactorRules.MonoDefaultIfEmpty
- Refaster template ReactorRules.MonoDeferMonoJustOrEmpty
- Refaster template ReactorRules.MonoDoOnError
- Refaster template ReactorRules.MonoEmpty
- Refaster template ReactorRules.MonoErrorSupplier
- Refaster template ReactorRules.MonoErrorThrowable
- Refaster template ReactorRules.MonoFlatMapIterableIdentity
- Refaster template ReactorRules.MonoFlux
- Prefer suppressing Mono cancellations to upstream cache value computations over propagating them, as completion of such computations may benefit concurrent or subsequent cache usages
- Prefer suppressing Mono cancellations to upstream cache value computations over propagating them, as completion of such computations may benefit concurrent or subsequent cache usages
- Refaster template ReactorRules.MonoFromFuture
- Refaster template ReactorRules.MonoFromFutureWithBoolean
- Refaster template ReactorRules.MonoIdentity
- Refaster template ReactorRules.MonoJustOrEmptyObject
- Refaster template ReactorRules.MonoJustOrEmptyOptional
- Prefer a Mono#justOrEmpty(Optional) and Mono#switchIfEmpty(Mono) chain over more contrived alternatives
- Refaster template ReactorRules.MonoJust
- Refaster template ReactorRules.MonoOfType
- Refaster template ReactorRules.MonoOnErrorComplete
- Refaster template ReactorRules.MonoOnErrorCompleteWithClass
- Refaster template ReactorRules.MonoOnErrorCompleteWithPredicate
- Refaster template ReactorRules.MonoOnErrorContinue
- Refaster template ReactorRules.MonoOnErrorMap
- Refaster template ReactorRules.MonoOnErrorResume
- Refaster template ReactorRules.MonoOnErrorReturn
- Refaster template ReactorRules.MonoSingleOptional
- Refaster template ReactorRules.MonoSingle
- Refaster template ReactorRules.MonoThenEmpty
- Refaster template ReactorRules.MonoThenFlux
- Refaster template ReactorRules.MonoThenMany
- Refaster template ReactorRules.MonoThen
- Refaster template ReactorRules.MonoThenReturn
- Refaster template ReactorRules.MonoThenWithMono
- Prefer Mono#timeout(Duration, Mono) over more contrived or less efficient alternatives
- Prefer Mono#timeout(Duration, Mono) over more contrived or less efficient alternatives
- Prefer Mono#timeout(Publisher, Mono) over more contrived or less efficient alternatives
- Prefer Mono#timeout(Duration, Mono) over more contrived or less efficient alternatives
- Prefer Mono#timeout(Publisher, Mono) over more contrived or less efficient alternatives
- Prefer Mono#timeout(Publisher, Mono) over more contrived or less efficient alternatives
- Refaster template ReactorRules.MonoZipMapFunction
- Refaster template ReactorRules.MonoZip
- Refaster template ReactorRules.OptionalMapMonoJust
- Refaster template ReactorRules.PublisherProbeAssertWasCancelled
- Refaster template ReactorRules.PublisherProbeAssertWasNotCancelled
- Refaster template ReactorRules.PublisherProbeAssertWasNotRequested
- Refaster template ReactorRules.PublisherProbeAssertWasNotSubscribed
- Refaster template ReactorRules.PublisherProbeAssertWasRequested
- Refaster template ReactorRules.PublisherProbeAssertWasSubscribed
- Refaster template ReactorRules.PublisherProbeEmpty
- Refaster template ReactorRules.StepExpectNext
- Refaster template ReactorRules.StepVerifierVerifyLater
- Refaster template ReactorRules.StepVerifierVerify
- Refaster template ReactorRules.StepVerifierVerifyWithDuration
- RxJava2AdapterRules Refaster recipes
- Refaster template RxJava2AdapterRules.CompletableAsRxJava2AdapterCompletableToMono
- Refaster template RxJava2AdapterRules.FlowableAsRxJava2AdapterFlowableToFlux
- Refaster template RxJava2AdapterRules.FluxAsRxJava2AdapterFluxToFlowable
- Refaster template RxJava2AdapterRules.FluxAsRxJava2AdapterFluxToObservable
- Refaster template RxJava2AdapterRules.MaybeAsRxJava2AdapterMaybeToMono
- Refaster template RxJava2AdapterRules.MonoAsRxJava2AdapterMonoToCompletable
- Refaster template RxJava2AdapterRules.MonoAsRxJava2AdapterMonoToFlowable
- Refaster template RxJava2AdapterRules.MonoAsRxJava2AdapterMonoToMaybe
- Refaster template RxJava2AdapterRules.MonoAsRxJava2AdapterMonoToSingle
- Refaster template RxJava2AdapterRules.ObservableToFlowableAsRxJava2AdapterFlowableToFlux
- Refaster template RxJava2AdapterRules.SingleAsRxJava2AdapterSingleToMono
- SpringTestRules Refaster recipes
- Refaster template SpringTestRules.BodyContentSpecJsonJsonCompareModeLenient
- Refaster template SpringTestRules.BodyContentSpecJsonJsonCompareModeStrict
- StreamRules Refaster recipes
- Refaster template StreamRules.CollectionParallelStream
- Refaster template StreamRules.Joining
- Refaster template StreamRules.StreamCollectLeastNaturalOrderStream
- Refaster template StreamRules.StreamCollectLeastStream
- Refaster template StreamRules.StreamConcat
- Refaster template StreamRules.StreamCount
- Refaster template StreamRules.StreamDistinctSorted
- Refaster template StreamRules.StreamDistinctSortedWithComparator
- Refaster template StreamRules.StreamFilterCollect
- Refaster template StreamRules.StreamFilterSorted
- Refaster template StreamRules.StreamFilterSortedWithComparator
- Refaster template StreamRules.StreamFindAnyIsEmpty
- Refaster template StreamRules.StreamFindAnyIsPresent
- Refaster template StreamRules.StreamFindFirstMap
- Refaster template StreamRules.StreamFindFirst
- Refaster template StreamRules.StreamFlatMapCollect
- Refaster template StreamRules.StreamIdentity
- Refaster template StreamRules.StreamIterate
- Refaster template StreamRules.StreamMapCollect
- Refaster template StreamRules.StreamMapMapGetFilterObjectsNonNull
- Refaster template StreamRules.StreamMapToDoubleSummaryStatistics
- Refaster template StreamRules.StreamMapToIntSummaryStatistics
- Refaster template StreamRules.StreamMapToLongSummaryStatistics
- Refaster template StreamRules.StreamMaxNaturalOrder
- Refaster template StreamRules.StreamMax
- Refaster template StreamRules.StreamMinNaturalOrder
- Refaster template StreamRules.StreamMin
- Refaster template StreamRules.StreamOf1
- Refaster template StreamRules.StreamOf2
- Refaster template StreamRules.StreamOf3
- Refaster template StreamRules.StreamOf4
- Refaster template StreamRules.StreamOf5
- Refaster template StreamRules.StreamOfNullable
- Refaster template StreamRules.StreamReduce
- Refaster template StreamRules.StreamReduceWithObject
- Refaster template StreamRules.StreamSorted
- Refaster template StreamRules.StreamsStream
- Refaster template StreamRules.StreamTakeWhile
- StringBuilderRules Refaster recipes
- Prefer StringBuilder#repeat(CharSequence, int) over less efficient alternatives
- StringRules Refaster recipes
- Refaster template StringRules.EmptyString
- Refaster template StringRules.Formatted
- Refaster template StringRules.MathMaxNegativeOneStringIndexOfMinusInt
- Refaster template StringRules.MathMaxNegativeOneStringIndexOfMinusIntWithInt
- Refaster template StringRules.MathMaxNegativeOneStringIndexOfMinusString
- Refaster template StringRules.MathMaxNegativeOneStringIndexOfMinusStringWithInt
- Refaster template StringRules.MathMaxNegativeOneStringLastIndexOfMinusInt
- Refaster template StringRules.MathMaxNegativeOneStringLastIndexOfMinusString
- Refaster template StringRules.NewString1
- Refaster template StringRules.NewString3
- Refaster template StringRules.NotStringIsEmpty
- Refaster template StringRules.OptionalFilterNotStringIsEmpty
- Refaster template StringRules.OptionalOfNullableFilterNotStringIsEmpty
- Refaster template StringRules.StringIdentity
- Prefer String#isBlank() over less efficient alternatives
- Refaster template StringRules.StringIsEmpty
- Refaster template StringRules.StringIsEmptyWithString
- Refaster template StringRules.StringJoin
- Refaster template StringRules.StringJoinVarargs
- Refaster template StringRules.StringLastIndexOfMinusOneInt
- Prefer String#lastIndexOf(String, int) over less efficient alternatives
- Refaster template StringRules.StringsIsNullOrEmpty
- Refaster template StringRules.StringStartsWith
- Refaster template StringRules.StringSubstring
- Refaster template StringRules.StringValueOf
- Refaster template StringRules.StringValueOfWithObject
- Refaster template StringRules.Utf8EncodedLength
- SuggestedFixRules Refaster recipes
- Refaster template SuggestedFixRules.SuggestedFixDelete
- Refaster template SuggestedFixRules.SuggestedFixPostfixWith
- Refaster template SuggestedFixRules.SuggestedFixPrefixWith
- Refaster template SuggestedFixRules.SuggestedFixReplace2
- Refaster template SuggestedFixRules.SuggestedFixReplace3
- Refaster template SuggestedFixRules.SuggestedFixReplace4
- Refaster template SuggestedFixRules.SuggestedFixSwap
- Refaster template SuggestedFixRules.SuggestedFixToBuilder
- Refaster rules that replace TestNG APIs with AssertJ equivalents
- Refaster template TestNGToAssertJRules.AssertThatContainsExactlyElementsOf
- Refaster template TestNGToAssertJRules.AssertThatContainsExactlyInAnyOrder
- Refaster template TestNGToAssertJRules.AssertThatContainsExactlyOffsetDouble
- Refaster template TestNGToAssertJRules.AssertThatContainsExactlyOffsetFloat
- Refaster template TestNGToAssertJRules.AssertThatContainsExactly
- Refaster template TestNGToAssertJRules.AssertThatHasSameElementsAs
- Refaster template TestNGToAssertJRules.AssertThatIsCloseToOffsetDouble
- Refaster template TestNGToAssertJRules.AssertThatIsCloseToOffsetFloat
- Refaster template TestNGToAssertJRules.AssertThatIsEqualTo
- Refaster template TestNGToAssertJRules.AssertThatIsFalse
- Refaster template TestNGToAssertJRules.AssertThatIsNotCloseToOffsetDouble
- Refaster template TestNGToAssertJRules.AssertThatIsNotCloseToOffsetFloat
- Refaster template TestNGToAssertJRules.AssertThatIsNotEqualTo
- Refaster template TestNGToAssertJRules.AssertThatIsNotNull
- Refaster template TestNGToAssertJRules.AssertThatIsNotSameAs
- Refaster template TestNGToAssertJRules.AssertThatIsNull
- Refaster template TestNGToAssertJRules.AssertThatIsSameAs
- Refaster template TestNGToAssertJRules.AssertThatIsTrue
- Refaster template TestNGToAssertJRules.AssertThatToIterableContainsExactlyElementsOfImmutableListCopyOf
- Refaster template TestNGToAssertJRules.AssertThatToIterableWithFailMessageContainsExactlyElementsOfImmutableListCopyOf
- Refaster template TestNGToAssertJRules.AssertThatWithFailMessageContainsExactlyElementsOf
- Refaster template TestNGToAssertJRules.AssertThatWithFailMessageContainsExactlyInAnyOrder
- Refaster template TestNGToAssertJRules.AssertThatWithFailMessageContainsExactlyOffsetDouble
- Refaster template TestNGToAssertJRules.AssertThatWithFailMessageContainsExactlyOffsetFloat
- Refaster template TestNGToAssertJRules.AssertThatWithFailMessageContainsExactly
- Refaster template TestNGToAssertJRules.AssertThatWithFailMessageHasSameElementsAs
- Refaster template TestNGToAssertJRules.AssertThatWithFailMessageIsCloseToOffsetDouble
- Refaster template TestNGToAssertJRules.AssertThatWithFailMessageIsCloseToOffsetFloat
- Refaster template TestNGToAssertJRules.AssertThatWithFailMessageIsEqualTo
- Refaster template TestNGToAssertJRules.AssertThatWithFailMessageIsFalse
- Refaster template TestNGToAssertJRules.AssertThatWithFailMessageIsNotCloseToOffsetDouble
- Refaster template TestNGToAssertJRules.AssertThatWithFailMessageIsNotCloseToOffsetFloat
- Refaster template TestNGToAssertJRules.AssertThatWithFailMessageIsNotEqualTo
- Refaster template TestNGToAssertJRules.AssertThatWithFailMessageIsNotNull
- Refaster template TestNGToAssertJRules.AssertThatWithFailMessageIsNotSameAs
- Refaster template TestNGToAssertJRules.AssertThatWithFailMessageIsNull
- Refaster template TestNGToAssertJRules.AssertThatWithFailMessageIsSameAs
- Refaster template TestNGToAssertJRules.AssertThatWithFailMessageIsTrue
- Refaster template TestNGToAssertJRules.Fail
- Refaster template TestNGToAssertJRules.FailWithStringAndThrowable
- Refaster template TestNGToAssertJRules.FailWithString
- TimeRules Refaster recipes
- Refaster template TimeRules.ChronoLocalDateIsAfter
- Refaster template TimeRules.ChronoLocalDateIsBefore
- Refaster template TimeRules.ChronoLocalDateTimeIsAfter
- Refaster template TimeRules.ChronoLocalDateTimeIsBefore
- Refaster template TimeRules.ChronoZonedDateTimeIsAfter
- Refaster template TimeRules.ChronoZonedDateTimeIsBefore
- Refaster template TimeRules.ClockInstant
- Refaster template TimeRules.ClockSystemUTC
- Prefer Duration#between over less efficient alternatives
- Prefer Duration#between over less efficient alternatives
- Refaster template TimeRules.DurationIsZero
- Refaster template TimeRules.DurationOfDays
- Refaster template TimeRules.DurationOfHours
- Refaster template TimeRules.DurationOfMillis
- Refaster template TimeRules.DurationOfMinutes
- Refaster template TimeRules.DurationOfNanos
- Refaster template TimeRules.DurationOfSeconds
- Refaster template TimeRules.DurationZero
- Refaster template TimeRules.InstantAtOffset
- Refaster template TimeRules.InstantAtZone
- Refaster template TimeRules.InstantEpoch
- Refaster template TimeRules.InstantIdentity
- Refaster template TimeRules.InstantIsAfter
- Refaster template TimeRules.InstantIsBefore
- Prefer Instant#truncatedTo(TemporalUnit) over less efficient alternatives
- Refaster template TimeRules.InstantTruncatedToChronoUnitSeconds
- Refaster template TimeRules.LocalDateAtStartOfDay
- Refaster template TimeRules.LocalDateMinusDays
- Refaster template TimeRules.LocalDateMinusMonths
- Refaster template TimeRules.LocalDateMinusWeeks
- Refaster template TimeRules.LocalDateMinusYears
- Refaster template TimeRules.LocalDateOfInstant
- Refaster template TimeRules.LocalDatePlusDays
- Refaster template TimeRules.LocalDatePlusMonths
- Refaster template TimeRules.LocalDatePlusWeeks
- Refaster template TimeRules.LocalDatePlusYears
- Refaster template TimeRules.LocalDateTimeMinusDays
- Refaster template TimeRules.LocalDateTimeMinusHours
- Refaster template TimeRules.LocalDateTimeMinusMinutes
- Refaster template TimeRules.LocalDateTimeMinusMonths
- Refaster template TimeRules.LocalDateTimeMinusNanos
- Refaster template TimeRules.LocalDateTimeMinusSeconds
- Refaster template TimeRules.LocalDateTimeMinusWeeks
- Refaster template TimeRules.LocalDateTimeMinusYears
- Refaster template TimeRules.LocalDateTimeOfInstant
- Refaster template TimeRules.LocalDateTimePlusDays
- Refaster template TimeRules.LocalDateTimePlusHours
- Refaster template TimeRules.LocalDateTimePlusMinutes
- Refaster template TimeRules.LocalDateTimePlusMonths
- Refaster template TimeRules.LocalDateTimePlusNanos
- Refaster template TimeRules.LocalDateTimePlusSeconds
- Refaster template TimeRules.LocalDateTimePlusWeeks
- Refaster template TimeRules.LocalDateTimePlusYears
- Refaster template TimeRules.LocalTimeMin
- Refaster template TimeRules.LocalTimeMinusHours
- Refaster template TimeRules.LocalTimeMinusMinutes
- Refaster template TimeRules.LocalTimeMinusNanos
- Refaster template TimeRules.LocalTimeMinusSeconds
- Refaster template TimeRules.LocalTimeOfInstant
- Refaster template TimeRules.LocalTimePlusHours
- Refaster template TimeRules.LocalTimePlusMinutes
- Refaster template TimeRules.LocalTimePlusNanos
- Refaster template TimeRules.LocalTimePlusSeconds
- Refaster template TimeRules.OffsetDateTimeIsAfter
- Refaster template TimeRules.OffsetDateTimeIsBefore
- Refaster template TimeRules.OffsetDateTimeMinusDays
- Refaster template TimeRules.OffsetDateTimeMinusHours
- Refaster template TimeRules.OffsetDateTimeMinusMinutes
- Refaster template TimeRules.OffsetDateTimeMinusMonths
- Refaster template TimeRules.OffsetDateTimeMinusNanos
- Refaster template TimeRules.OffsetDateTimeMinusSeconds
- Refaster template TimeRules.OffsetDateTimeMinusWeeks
- Refaster template TimeRules.OffsetDateTimeMinusYears
- Refaster template TimeRules.OffsetDateTimeOfInstant
- Refaster template TimeRules.OffsetDateTimePlusDays
- Refaster template TimeRules.OffsetDateTimePlusHours
- Refaster template TimeRules.OffsetDateTimePlusMinutes
- Refaster template TimeRules.OffsetDateTimePlusMonths
- Refaster template TimeRules.OffsetDateTimePlusNanos
- Refaster template TimeRules.OffsetDateTimePlusSeconds
- Refaster template TimeRules.OffsetDateTimePlusWeeks
- Refaster template TimeRules.OffsetDateTimePlusYears
- Refaster template TimeRules.OffsetTimeMinusHours
- Refaster template TimeRules.OffsetTimeMinusMinutes
- Refaster template TimeRules.OffsetTimeMinusNanos
- Refaster template TimeRules.OffsetTimeMinusSeconds
- Refaster template TimeRules.OffsetTimeOfInstant
- Refaster template TimeRules.OffsetTimePlusHours
- Refaster template TimeRules.OffsetTimePlusMinutes
- Refaster template TimeRules.OffsetTimePlusNanos
- Refaster template TimeRules.OffsetTimePlusSeconds
- Refaster template TimeRules.PeriodZero
- Refaster template TimeRules.Utc
- Refaster template TimeRules.ZonedDateTimeMinusDays
- Refaster template TimeRules.ZonedDateTimeMinusHours
- Refaster template TimeRules.ZonedDateTimeMinusMinutes
- Refaster template TimeRules.ZonedDateTimeMinusMonths
- Refaster template TimeRules.ZonedDateTimeMinusNanos
- Refaster template TimeRules.ZonedDateTimeMinusSeconds
- Refaster template TimeRules.ZonedDateTimeMinusWeeks
- Refaster template TimeRules.ZonedDateTimeMinusYears
- Refaster template TimeRules.ZonedDateTimePlusDays
- Refaster template TimeRules.ZonedDateTimePlusHours
- Refaster template TimeRules.ZonedDateTimePlusMinutes
- Refaster template TimeRules.ZonedDateTimePlusMonths
- Refaster template TimeRules.ZonedDateTimePlusNanos
- Refaster template TimeRules.ZonedDateTimePlusSeconds
- Refaster template TimeRules.ZonedDateTimePlusWeeks
- Refaster template TimeRules.ZonedDateTimePlusYears
- WebClientRules Refaster recipes
- Refaster template WebClientRules.RequestBodySpecBodyValue
- Refaster template WebClientRules.RequestHeadersUriSpecUri
- Refaster template WebClientRules.WebClientGet
- Refaster template WebClientRules.WebClientHead
- Refaster template WebClientRules.WebClientOptions
- Refaster template WebClientRules.WebClientPatch
- Refaster template WebClientRules.WebClientPost
- Refaster template WebClientRules.WebClientPut
org.openrewrite:rewrite-android8.96.2 · MSAL
org.openrewrite:rewrite-core8.96.2 · Apache 2.0
- Add entries to .gitignore
- Delete files
- Remove ignoral of files or directories from .gitignore
- Find colliding source files
- Find deserialization errors
- Show Git source control metadata
- Find LST provenance
- Find source files with ParseExceptionResult markers
- Find instances of type Quark
- Find files
- Find styles
- Is in repository
- List runtime classpath
- Move a file
- Rename a file
- Find build metadata
- Find committers on repositories
- Find parse to print inequality
- Repository contains file
- Set file permission attributes
- Singleton
- Append to text file
- Change text
- Create text file
- End of Line @ End of File (EOL @ EOF)
- Find text
- Find and replace
- Experimental find text with multiselect
- Remove byte order mark (BOM)
org.openrewrite:rewrite-csharp8.96.2 · MSAL
org.openrewrite:rewrite-docker8.96.2 · Apache 2.0
- Add apt-get cleanup
- Add OCI image labels
- Add Docker LABEL instruction
- Add USER instruction
- Change Docker FROM
- Combine consecutive RUN instructions
- Apply Docker best practices
- Optimize Docker builds
- Apply Docker security best practices
- Normalize Docker Hub image names
- Replace ADD with COPY
- Find Docker base images
- Find end-of-life Docker base images
- Find exposed ports
- Find missing HEALTHCHECK
- Find containers running as root
- Find unpinned base images
- Use exec form for ENTRYPOINT and CMD
org.openrewrite:rewrite-go8.96.2 · MSAL
org.openrewrite:rewrite-gradle8.96.2 · Apache 2.0
- Add Gradle dependency
- Add JUnit Platform Launcher
- Add Gradle platform dependency
- Add Gradle property
- Change Gradle dependency
- Change Gradle dependency artifact
- Change a Gradle dependency classifier
- Change a Gradle dependency configuration
- Change a Gradle dependency extension
- Change Gradle dependency group
- Change Extra Property
- Change Gradle managed dependency
- Change Gradle task eager creation to lazy registration
- Dependency constraint to resolution rule
- Use Map notation for Gradle dependency declarations
- Use String notation for Gradle dependency declarations
- Enable Develocity build cache
- Enable Gradle build cache
- Enable Gradle parallel execution
- Exclude Gradle dependency
- Replace Gradle 8 introduced deprecations in JaCoCo report task
- Rename the incubating org.gradle.unsafe.isolated-projects properties
- Use one dependency declaration per statement
- Remove the deprecated exitEnvironmentVar start script property
- Remove the deprecated PMD targetJdk property
- Replace spread-all* calls in configurations blocks with configurations.all { }
- Move sourceCompatibility and targetCompatibility into the java { } extension block
- Use mainClass instead of main for JavaExec tasks
- Use application { mainClass } instead of mainClassName
- Use matching(Closure) instead of findAll(Closure) on Gradle container collections
- Use project(...) dependency notation instead of the current project's module coordinates
- Use the Action overloads of flatDir and mavenCentral
- Use version { } closure instead of version = { } assignment
- Apply Gradle best practices
- Migrate Gradle project dependencies to version catalog
- Migrate to Gradle 5 from Gradle 4
- Migrate to Gradle 6 from Gradle 5
- Migrate to Gradle 7 from Gradle 6
- Migrate to Gradle 8 from Gradle 7
- Migrate to Gradle 9 from Gradle 8
- Add Gradle plugin
- Add the Develocity Gradle plugin
- Add Gradle settings plugin
- Add a Gradle settings repository
- Change a Gradle plugin
- Change a Gradle plugin version by id
- Migrate from Gradle Enterprise to Develocity
- Remove Gradle plugin
- Remove Develocity
- Remove Develocity configuration
- Remove Gradle settings plugin
- Set the Develocity projectId
- Set the Develocity server
- Update a Gradle plugin by id
- Remove direct dependencies that are managed by a BOM with incompatible versions
- Remove a Gradle dependency
- Remove duplicate Gradle dependencies
- Remove empty buildscript block
- Remove an enabled Gradle preview feature
- Remove Gradle dependency exclusion
- Remove build extension by name
- Remove extra property
- Remove redundant explicit dependencies and versions
- Remove redundant security resolution rules
- Remove repository
- Gradle dependency insight
- Does not include Gradle dependency
- List effective Gradle plugin repositories
- List effective Gradle project repositories
- Find Gradle dependency
- Find Gradle dependencies blocks
- Find Gradle projects
- Find Gradle wrappers
- Find Gradle JVMTestSuite plugin configuration
- Find Gradle plugin
- Find Gradle repository
- Gradle repository order
- Module has dependency
- Module has plugin
- Use HTTPS for repositories
- Sort Gradle dependencies
- Sync Gradle ext properties with BOM
- Update Gradle wrapper
- Update Gradle project Java compatibility
- Upgrade Gradle dependency versions
- Upgrade transitive Gradle dependencies
- Use = assignment syntax for well-known Gradle properties
- Use = assignment syntax for Gradle properties
org.openrewrite:rewrite-groovy8.96.2 · Apache 2.0
org.openrewrite:rewrite-hcl8.96.2 · Apache 2.0
org.openrewrite:rewrite-java8.96.2 · Apache 2.0
- Add ASLv2 license header
- Add comment to import statement
- Add comment to method declarations
- Add comment to method invocations
- Add license header
- Add a literal method argument
- Add method parameter to a method declaration
- Add a null method argument
- Add or update annotation attribute
- Calculate token length of classes
- Calculate token length of method definitions
- Change annotation attribute name
- Change method access level
- Change method invocation return type
- Change method name
- Change method target to static
- Change method target to variable
- Rename package name
- Rename package name in String literals
- Change static field access to static method access
- Change type
- Change type in String literals
- Create Java class
- Delete method argument
- Format Java code
- Blank lines
- End files with a single newline
- Method parameter padding
- Normalize format
- Normalize line breaks
- Normalize to tabs or spaces
- No whitespace after
- No whitespace before
- Pad empty for loop components
- Remove trailing whitespace
- Single line comments begin with a whitespace
- Spaces
- Tabs and indents
- Typecast parentheses padding
- Wrapping and braces
- Inline method calls
- Remove static import
- Order imports
- Randomize tree IDs
- Demonstrate rendering of Markup markers
- Remove annotation
- Remove annotation attribute
- Remove interface implementations
- Remove method invocations
- Remove elements from a method declaration throws clause
- Transform calls to Objects.isNull(..) and Objects.nonNull(..)
- Remove unused imports
- Reorder method arguments
- Replace annotation
- Replace constant with literal value
- Replace constant with another constant
- Replace method invocation with constant
- Replace String literal
- Replace String literal with constant
- Study the size of the classpath by source set
- Check whether a type is not in use
- Find annotations
- Find class hierarchy
- Find within comments and literals
- Find compile errors
- Find uses of deprecated classes
- Find uses of deprecated fields
- Find uses of deprecated methods
- Find uses of deprecated classes, methods, and fields
- Find distinct methods in use
- Find empty classes
- Find methods with empty bodies
- Find fields
- Find fields of type
- Find implementing classes
- Find source files with imports
- Find literals
- Find method declaration
- Find method usages
- Find missing type information on Java LSTs
- Find uses of @Repeatable annotations
- Find plain text secrets
- Find symbols
- Find type mappings
- Find types
- Find files with a particular build tool version
- Find files compiled at a specific Java version
- Find files that have at least one use of a method
- Has minimum Java version
- Find files in a source set
- Find files that have at least one use of a type
- Find files that are likely not tests
- Find sources that are likely tests
- Module contains file
- Module uses type
- Result of method call ignored
- Add imports for fully qualified references to types
- Simplify a call chain
- Simplify single-element annotation
- Update source positions
- Use static import
org.openrewrite:rewrite-javascript8.96.2 · MSAL
org.openrewrite:rewrite-json8.96.2 · Apache 2.0
org.openrewrite:rewrite-kotlin8.96.2 · Apache 2.0
- Structural equality tests should use == or !=
- it shouldn't be used as a lambda parameter name
- Remove method invocation parentheses around single lambda argument
- Remove trailing comma in Kotlin
- Remove unnecessary trailing semicolon
- Replace Char#toInt() with Char#code
- Remove unnecessary parentheses on Kotlin types
- Find Kotlin sources and collect data metrics
- Format Kotlin code
- Order Kotlin imports
- Rename type alias
org.openrewrite:rewrite-mainframe3.6.0 · MSAL
org.openrewrite:rewrite-maven8.96.2 · Apache 2.0
- Add an annotation processor to maven-compiler-plugin
- Add a comment to a Maven dependency or plugin
- Add Maven dependency
- Add the Develocity Maven extension
- Add managed Maven dependency
- Add Managed Maven plugin
- Add Maven parent
- Add Maven plugin
- Add Maven plugin dependencies
- Add Maven profile
- Add Maven project property
- Add repository
- Add a configuration option for the Maven runtime
- Apache Maven best practices
- Change Maven dependency classifier
- Change Maven dependency
- Change Maven dependency scope
- Change Maven dependency exclusion
- Change Maven managed dependency groupId, artifactId and optionally the version
- Set Maven project packaging
- Change Maven parent
- Change Maven plugin configuration
- Change Maven plugin dependencies
- Change Maven plugin executions
- Change Maven plugin group and artifact ID
- Change Maven Project Version
- Change Maven project property value
- Add project.build.outputTimestamp for reproducible builds
- Dependency management dependencies should have a version
- Add explicit dependency versions
- Add explicit groupId to Maven plugins
- Add explicit plugin versions
- Dependencies should not have system scope
- Drop prefixless expressions in POM
- Enable Develocity build cache
- Exclude Maven dependency
- Extract Maven dependency versions as properties
- Increment Maven project version
- Manage dependencies
- Convert managed dependencies to runtime dependencies
- Migrate to Maven 3.10
- Migrate to Maven 4
- Modernize obsolete Maven poms
- Order POM elements
- Migrate to maven-dependency-plugin goal resolve-sources
- Remove direct dependencies that are managed by a BOM with incompatible versions
- Remove Maven dependency
- Remove duplicate Maven dependencies
- Remove duplicate plugin declarations
- Remove exclusion
- Remove invalid parent relativePath
- Remove Maven managed dependency
- Remove Maven wrapper
- Remove Maven plugin
- Remove Maven plugin dependency
- Remove Maven plugin goal
- Remove Maven project property
- Remove redundant explicit dependency and plugin versions
- Remove redundant properties
- Remove repository
- Remove unused properties
- Rename Maven property key
- Replace deprecated lifecycle phases
- Replace modules with subprojects
- Replace removed root directory properties
- Apache Maven reproducible builds
- Maven dependency insight
- Does not include Maven dependency
- Effective dependencies
- Effective managed dependencies
- List effective Maven repositories
- Find Maven dependency
- Find Maven dependency management entry
- Find Maven projects
- Find effective maven settings
- Find Maven plugin
- Find Maven project properties
- Maven repository order
- Find SCM tag
- Module has dependency
- Module has plugin
- Maven parent insight
- Use HTTPS for repositories
- Sort dependencies
- Update Maven Java project properties
- Update Maven wrapper
- Update project URL with Git origin
- Update SCM with Git origin
- Upgrade Maven dependency version
- Upgrade Maven parent project version
- Upgrade plugins that are incompatible with Maven 4
- Upgrade Maven plugin version
- Upgrade to Maven model version 4.1.0
- Upgrade transitive Maven dependencies
- Use Maven compiler plugin release configuration
- Use Maven 4 parent inference
- Print Maven dependency hierarchy in DOT format
org.openrewrite:rewrite-properties8.96.2 · Apache 2.0
org.openrewrite:rewrite-python8.96.2 · MSAL
org.openrewrite:rewrite-ruby8.96.2 · MSAL
org.openrewrite:rewrite-scala8.96.2 · MSAL
org.openrewrite:rewrite-toml8.96.2 · Apache 2.0
org.openrewrite:rewrite-xml8.96.2 · Apache 2.0
- Add a comment to an XML tag
- Add or update child tag
- Add new XML attribute for an Element
- Change XML attribute of a specific resource version
- Change XML attribute
- Change XML attribute key
- Change XML tag name
- Change XML tag value
- Create XML file
- Format XML
- Blank lines
- Normalize format
- Normalize line breaks
- Normalize to tabs or spaces
- Tabs and indents
- Remove empty XML Tag
- Remove trailing whitespace
- Remove XML tag
- Find files without Namespace URI
- Find XML namespace prefixes
- Find XML tags
- Find XML namespace URIs
- Add date bounds to OWASP suppressions
- Find OWASP vulnerability suppression XML files
- Remove out-of-date OWASP suppressions
- Update OWASP suppression date bounds
- XML style Auto-detection debug
- XSLT transformation
org.openrewrite:rewrite-yaml8.96.2 · Apache 2.0
- Add comment to a YAML property
- Append to sequence
- Change key
- Change property key
- Change YAML property
- Change value
- Remove unused YAML
- Coalesce YAML properties
- Comment out property
- Copy YAML value
- Create YAML file
- Delete key
- Delete property
- YAML indent
- Merge YAML snippet
- Find YAML entries
- Find YAML properties
- Unfold YAML properties