In our new Java Monthly edition, we’d like to introduce you to George Adams. He was kind enough to share his experience on 12 more Java-related questions.
George Adams is a Senior Software Engineer at Microsoft, Java Champion and Steering Committee chair at Eclipse Adoptium. Since co-founding AdoptOpenJDK in 2016 he has been leading the community outreach efforts and was heavily involved in moving the project to the Eclipse Foundation. George also contributes to the OpenJS Foundation, Homebrew and the Node.js Foundation where he is a core collaborator and plays an active role in several of the workgroups.
Dreamix: What are the benefits that Adoptium brings to developers and organizations that use Java?
George Adams: Adoptium is a project that provides certified builds of OpenJDK with long-term support, which brings several benefits to developers and organizations that use Java. First, Adoptium provides a stable and reliable Java runtime environment that is compatible with the latest Java SE specifications, enabling developers to build and run Java applications with confidence. Second, Adoptium offers flexibility in terms of the deployment models, allowing organizations to choose the best deployment strategy for their specific needs. Third, Adoptium provides a transparent and open development process, with frequent updates and bug fixes, ensuring that Java applications are secure and up-to-date. Finally, Adoptium offers long-term support for Java versions, which can reduce the risk of compatibility issues and help organizations plan for the future.
Dreamix: How does Eclipse Temurin compare to other Java distributions, such as Oracle’s OpenJDK or the Amazon Corretto JDK?
George Adams: Eclipse Temurin is a certified distribution of OpenJDK, and it offers several advantages compared to other Java distributions such as Oracle’s OpenJDK. One of the main advantages of Eclipse Temurin is that it provides multi-platform support, including support for a wide range of operating systems and architectures, which can simplify the deployment process for developers and organizations. Additionally, Eclipse Temurin is an open-source project with a transparent development process, providing a high degree of trust and reliability to the Java community. Eclipse Temurin is shipped under a GPL+CE license which makes it easy to bundle with products and use a zero cost in all environments.
Dreamix: How does Eclipse Temurin support containerization and cloud deployment, and what advantages does it offer in these contexts
George Adams: Eclipse Temurin offers several features that support containerization and cloud deployment, providing several advantages in these contexts. First, Temurin provides multi-architecture support, which allows Java applications to be run on various hardware platforms, making it easier to move applications between different environments. Second, Temurin has docker tags available for every shipped version making it easy for customers to either pin their dockefile at a specific version or simply follow the “latest” version to get the latest security updates. Finally, Temurin provides predictable release schedules and long-term support, which is important for cloud deployment, where applications need to be updated and maintained over a longer period. Overall, these features make Eclipse Temurin a solid choice for developers and organizations looking to run Java applications in containerized and cloud environments.
Dreamix: Can you describe some common use cases for Eclipse Temurin in enterprise or cloud environments, and how it can help developers meet the demands of those environments?
George Adams: Eclipse Temurin can be used in a wide range of enterprise and cloud environments, and it provides several features that can help developers meet the demands of these environments. For example, Temurin can be used to build and run Java applications in a containerized environment, which can help with scaling and managing resources in a cloud environment. Additionally, Temurin provides long-term support for Java versions, which can reduce the risk of compatibility issues and help organizations plan for the future. Moreover, Temurin can be used to develop and deploy microservices-based applications, which are increasingly popular in cloud environments. Overall, Eclipse Temurin is a solid choice for developers and organizations looking for a reliable, scalable, and flexible Java runtime environment for enterprise and cloud applications.
Dreamix: Can you share the story behind choosing the name of Eclipse “Temurin”?
George Adams: The name “Temurin” was chosen as part of the Eclipse Adoptium project’s rebranding efforts in 2021. There are two reasons that the group chose the name: 1. Temurin is an anagram for the word Runtime and 2. The chemical composition of Temurin is nearly identical to the chemical composition of coffee. (This is what happens when you let engineers name projects!)
Dreamix: How does Adoptium handle security vulnerabilities, and what steps are taken to ensure that the distribution remains secure?
George Adams: Adoptium has a robust security policy that ensures the timely identification and mitigation of security vulnerabilities. Adoptium’s security policy includes proactive measures, such as code reviews, penetration testing, and continuous monitoring of the codebase. In the event of a security vulnerability, the project first determines if the vulnerability is in the OpenJDK source code or if it’s in Adoptium-specific code. If the vulnerability is in the OpenJDK source code the project will report the bug to the OpenJDK Vulnerability Group where several Java vendors will work on a fix. The Adoptium project has also recently started shipping SBOMs (software bill of materials) with Temurin allowing users to identify a full list of build dependencies and also in the near future allowing users to create a binary-identical reproducible build of Temurin on their own hardware.
Dreamix: How does Eclipse Temurin integrate with other tools and frameworks in the Java ecosystem, such as Maven or Spring?
George Adams: Eclipse Temurin integrates with a wide range of tools and frameworks in the Java ecosystem, including popular build tools like Maven, Gradle, and Ant. Developers can use these build tools to easily download and manage the Temurin runtime environment for their Java applications. Additionally, Temurin integrates seamlessly with popular Java frameworks like Spring, allowing developers to build robust and scalable enterprise applications.
Dreamix: How does Eclipse Temurin ensure compatibility with the latest versions of Java, and what strategies does it use to stay up to date with the evolving Java ecosystem?
George Adams: Eclipse Adoptium uses AQAvit, its comprehensive and adaptable quality assurance framework, to ensure compatibility with the latest versions of Java. AQAvit verifies that the Adoptium binary releases meet the highest quality standards by executing an extensive suite of tests, including functional, performance, stress, and system tests. It continually updates its testing matrix to align with the latest Java features and specification changes. By integrating AQAvit within its continuous integration and delivery (CI/CD) pipeline, Adoptium can automatically build, test, and validate each new release against the evolving Java ecosystem.
Dreamix: What are the potential drawbacks of Eclipse Temurin that developers/organizations should be aware of when choosing it?
George Adams: While Eclipse Temurin offers a high-quality, open-source distribution of OpenJDK, developers and organizations should be aware of potential drawbacks when considering its adoption. As a community-driven project, Temurin’s support and maintenance can be influenced by the community’s priorities and available resources, which may not always align with the specific needs of a developer or organization. Some organizations may wish to get commercial support for Temurin which several vendors including Red Hat, IBM, Azul and Microsoft can provide.
Dreamix: What do you see as the future of Java, and how is Adoptium positioned to play a role in shaping that future?
George Adams: The future of Java is likely to be marked by continued innovation, increased modularity, and a focus on performance improvements for modern applications, including cloud-native and microservices architectures. Adoptium, as an open-source project under the Eclipse Foundation, is well-positioned to play a significant role in shaping this future by providing high-quality, reliable, and up-to-date OpenJDK distributions. By fostering a collaborative community, Adoptium promotes knowledge exchange, shared resources, and active involvement in the Java ecosystem, which can directly impact the language’s evolution. Through its quality assurance efforts, including AQAvit, Adoptium ensures compatibility and adherence to standards, enabling developers to confidently adopt and contribute to Java’s growth. As the Java landscape evolves, Adoptium will likely continue to adapt, promoting the development of new features, performance enhancements, and improved compatibility, ensuring that Java remains a robust, versatile, and relevant programming language for years to come.
Dreamix: How do you update yourself about the latest trends in Java?
George Adams: I typically follow the OpenJDK mailing lists, they’re where nearly all collaboration on OpenJDK takes place. I tend to keep a particularly close eye on the draft JEPs (Java Enhancement Proposals)
Dreamix: Can you recommend a favorite book about programming? What about a favorite book in general? Bonus: Can you describe the process of contributing to Eclipse Temurin as an open-source project, and how do you manage community contributions and maintain the codebase?
George Adams: A favorite book about programming is “Clean Code: A Handbook of Agile Software Craftsmanship” by Robert C. Martin. This book offers valuable insights and practical guidance on writing high-quality, maintainable code. It covers principles, patterns, and best practices that developers can apply to improve their coding skills, making it a valuable resource for both beginners and experienced programmers.
Is there anything else you would like to ask George Adams? What is your opinion on the questions asked? Who would you like to see featured next? Let’s give back to the Java community together!