Automate Code Changes - Bringing OpenRewrite to the IDE

Subscribers:
24,000
Published on ● Video Link: https://www.youtube.com/watch?v=hp5G-k8L1Xo



Duration: 43:07
116 views
0


Presented at EclipseCon 2023 in Ludwigsburg, Germany by Martin Lippert (Pivotal Software, Inc now under VMWare-April 2020).

This session introduces the OpenRewrite platform for automated source code refactorings and walks the audience through our efforts to integrate this platform into Eclipse and Visual Studio Code as part of the open-source Spring Tools.

The OpenRewrite project (https://docs.openrewrite.org) is a platform for implementing source code refactorings to help users, for example, to migrate to new framework or language versions, patch CVE vulnerabilities, or migrate existing code for API changes. Those refactorings (called Recipes in OpenRewrite) are not limited to Java source code. Recipes can include changes to source code in other languages, property files, kubernetes YAML descriptors, pom.xml files, and many more. Famous examples for those refactorings are automated refactorings to switch projects from JUnit 4 to JUnit 5, migrate a Spring Boot 1.x project to Spring Boot 2.x, apply best practices, switch from Java 8 to Java 11, and more. While OpenRewrite is IDE-agnostic and mostly meant to work on large amounts of source code in an automated fashion (for example as part of a build or CI platform), it also establishes a platform to grow a community of people that want to implement those refactorings easily and without being tied to a specific IDE.

As part of the Spring Tools, we work on an integration of Open Rewrite into Eclipse and Visual Studio Code to bring those hundreds or thousands of IDE-agnostic refactorings and automated migrations into the hands of every Eclipse and Visual Studio Code user. The session shows the integration in live demos, and takes a look under the hood, explaining the overall approach to integrate Open Rewrite into the IDEs and the challenges we faced along the way.




Other Videos By Eclipse Foundation


2023-11-08Developer Productivity Engineering for Open-Source Communities (sponsored by Gradle)
2023-11-08CDT Cloud, Embedded SIG, Cloud Dev Tools, OpenVSX and how they all play together
2023-11-08EclipseStore - Ultra-Fast Java Cloud-Native Persistence for Microservices and Serverless
2023-11-08A Dev Persepctive on Java Loom
2023-11-08Eclipse SDV Developer Console and T-Systems Hypercube - Key Connected Car Services in Action
2023-11-08Applied AI with Eclipse Graphene
2023-11-08Eclipse IDE and RCP Platform: Unveiling the Past, Present and Future
2023-11-08Building a Greenfield Smart Factory powered by Open Source in 2023
2023-11-08Eclipse openPASS
2023-11-08Energy Consumption and Communicating Protocols
2023-11-08Automate Code Changes - Bringing OpenRewrite to the IDE
2023-11-08Distributed applications may fail. Be prepared with MicroProfile Fault Tolerance
2023-11-08Code Generation For Everyone and Everywhere
2023-11-08Digital Twin Open Source Landscape
2023-11-08Developing a Fully Portable Containerized Edge Architecture (for Comm Vehicle Industry Adoption)
2023-11-08Digital Sovereignty by Design (sponsored by Huawei)
2023-11-08Eclipse Open VSX, the Open VSX Registry, and Ericsson’s Perspective and Interest
2023-11-08Driving the automotive industry into the future with Open Source
2023-11-08Challenge Accepted: Innovations around Us and Our Vision for Mind-blowing IDEs
2023-11-08A DSL case Study with Java imports implemented in TypeScript
2023-11-08Eclipse ❤️ Java