Our great sponsors
-
spring-cloud-dataflow
A microservices-based Streaming and Batch data processing in Cloud Foundry and Kubernetes
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
gradle-lint-plugin
A pluggable and configurable linter tool for identifying and reporting on patterns of misuse or deprecations in Gradle scripts.
It's also incredibly tedious when you do set about modernizing it. Fixing these things is more possible than you would initially think. Sometimes, we can get an app _almost_ all the way there, with just a little left to do: https://github.com/spring-cloud/spring-cloud-dataflow/pull/4...
Semgrep’s focus is on static analysis/search and is based on rules that developers need to write in a new DSL. Autofix is experimental and is one pattern replaced with another. https://semgrep.dev/docs/experiments/overview/
OpenRewrite originated to do transformations of code, specifically to remove a Netflix proprietary logging library and replace it with in SLF4J. The predecessor of OpenRewrite was Gradle Lint (https://github.com/nebula-plugins/gradle-lint-plugin), commonly used to update Gradle build configuration. OpenRewrite added search after transformation and search can be very flexible (search for all usages of a particular package/any method, not just a specific method invocation). Instead of being DSL based, OpenRewrite provides a set of building blocks called recipes that can be combined together to create more powerful recipes. When building blocks are not enough, you can write a custom recipe in the same language as what you are managing. Java for Java and TypeScript for JavaScript/TypeScript (coming soon).
For example, you can see JUnit 4 to 5 migration recipe contains a set of pre-built and custom recipes.
Related posts
- Gradle's leaky abstractions: Declarative(ish) shell, imperative core: Implementing a safe(ish) global configuration DSL
- Working with Environment Variables in Java
- OpenRewrite – Automated mass refactoring of source code
- Android Studio in Android phones is not a dream anymore for computerless devs
- Need help modifying a Minecraft mod