This session shows that Apache Maven and their plugins work well on all Java versions, even on the early access releases. The critical parts are related to bytecode parsing and this session explains why and how to solve this.
Apache Maven and Java 9 and 10 (Devoxx France 2018)Robert Scholte
This session handles the way how well Maven works with Java 9 and beyond. It also shows the involvement of Maven in the Jigsaw project and demonstrates why and how some specifications has been adjusted.
Spring Boot is an open-source Java-based framework. Spring Boot is a utility for setting up an application quickly by automating the configuration procedures and speed up the process of building and deploying Spring Boot applications. It is easy to create production-ready applications using Spring Boot through embedded server(tomcat).
Spring Boot is an open-source Java-based framework. Spring Boot is a utility for setting up an application quickly by automating the configuration procedures and speed up the process of building and deploying Spring Boot applications. It is easy to create production-ready applications using Spring Boot through embedded server(tomcat).
The solution to this is Spring Boot. Spring Boot is built on the top of the spring and contains all the features of spring. And is becoming a favorite of developers these days because it’s a rapid production-ready environment that enables the developers to directly focus on the logic instead of struggling with the configuration and set up. Spring Boot is a microservice-based framework and making a production-ready application in it takes very little time.
SkillPractical has Spring learning path that helps the user to learn the Java from scratch. If user have any questions on Java Spring while attempting tests, he can post a question in SkillPractical community. They will get an answer from our expert consultants.
The 2.0 version of AppFuse is designed to make developing Java web applications with Spring much easier. By using and leveraging Maven 2, users will be able to quickly add/remove dependencies, as well as develop their applications quickly and efficiently from their favorite IDE. This release will includes a move to annotations, JSP 2.0 and Spring 2.0.
This presentations covers what's new in AppFuse 2.0, as well as describe experiences migrating from Ant to Maven, Spring 1.x to 2.0, and leveraging annotations for Java development.
Automating your build process with Continuous Integration is certainly a great idea, but why stop there? Why not go the whole nine yards and automate the deployment process as well? Staging and production deployments are typically more complicated and more involved than a simple development deployment, but doing them by hand can be time-consuming, tricky and error-prone. Indeed, turning your staging and production deployments into a one-click affair has a lot going for it.
Apache Maven and Java 9 and 10 (Devoxx France 2018)Robert Scholte
This session handles the way how well Maven works with Java 9 and beyond. It also shows the involvement of Maven in the Jigsaw project and demonstrates why and how some specifications has been adjusted.
Spring Boot is an open-source Java-based framework. Spring Boot is a utility for setting up an application quickly by automating the configuration procedures and speed up the process of building and deploying Spring Boot applications. It is easy to create production-ready applications using Spring Boot through embedded server(tomcat).
Spring Boot is an open-source Java-based framework. Spring Boot is a utility for setting up an application quickly by automating the configuration procedures and speed up the process of building and deploying Spring Boot applications. It is easy to create production-ready applications using Spring Boot through embedded server(tomcat).
The solution to this is Spring Boot. Spring Boot is built on the top of the spring and contains all the features of spring. And is becoming a favorite of developers these days because it’s a rapid production-ready environment that enables the developers to directly focus on the logic instead of struggling with the configuration and set up. Spring Boot is a microservice-based framework and making a production-ready application in it takes very little time.
SkillPractical has Spring learning path that helps the user to learn the Java from scratch. If user have any questions on Java Spring while attempting tests, he can post a question in SkillPractical community. They will get an answer from our expert consultants.
The 2.0 version of AppFuse is designed to make developing Java web applications with Spring much easier. By using and leveraging Maven 2, users will be able to quickly add/remove dependencies, as well as develop their applications quickly and efficiently from their favorite IDE. This release will includes a move to annotations, JSP 2.0 and Spring 2.0.
This presentations covers what's new in AppFuse 2.0, as well as describe experiences migrating from Ant to Maven, Spring 1.x to 2.0, and leveraging annotations for Java development.
Automating your build process with Continuous Integration is certainly a great idea, but why stop there? Why not go the whole nine yards and automate the deployment process as well? Staging and production deployments are typically more complicated and more involved than a simple development deployment, but doing them by hand can be time-consuming, tricky and error-prone. Indeed, turning your staging and production deployments into a one-click affair has a lot going for it.
Maven is the most popular Java Dependency Management Tool.
In this hands-on course, you will understand how Maven makes the life of a Java developer easy. We will use a step by step approach with 20 steps.
During the course, you will automate these using Maven.
Compiling Java Code
Running Unit Tests
Building Jar's and Wars
Running web applications in Tomcat
Setting up new projects
You will learn following features of Maven with 5 Example Projects on Github.
Dependency Management - including Transitive Dependencies
Maven Project Object Model
Maven Build Life Cycle
Maven Plugins
Maven Archetypes - Generate Projects
Maven Best Practices
Multi Module Maven Projects
With Java 9 modules coming to us soon, you want your existing code to be fully ready for the module system. Making code modular can be a daunting task, but Java 9 comes with a number features to ease migration. This includes automatic modules, the unnamed module and a number of command line arguments.
In this talk we will look at examples of migrating real code. It discusses common problems youll run into during migration, leading to practical tips and the ability to set realistic goals. Its also a good way to understand the module system itself and the various migration paths it supports. This talk is an excellent preparation to start migrating your own code.
* Understanding modules and the module path
* Automatic modules
* Mixing classpath and modulepath
* Dealing with reflection
* Escape switches
* Jdeps
All topics will be based on examples of often used libraries and frameworks.
Presents an overview of Apache Maven, a famous declarative build tool widely used in the Java ecosystem, focussing on philosophy, qualities and characteristics. To learn Maven, see www.sonatype.com/book/.
This is OpenTalkWare www.opentalkware.org cc-by-3.0 by Robert Burrell Donkin http://robertburrelldonkin.name
The presentation walks you through Apache maven and how to do a build management for java based applications. It starts with basic introduction on the technology and how it plays an important role for build management. The presentation then talks about details on how the maven works and its philosophy to creating builds. Furthermore, it also covers in detail the plugins based architecture to better understand how to use maven effectively.
Presentation explain about
Spring Boot vs Spring vs Spring MVC,
Advantages,
Where to start and how does Spring boot work ?,
Dependency Management,
Logging,
Exception Handling,
Database Handling.
in Spring boot.
Getting started with Apache Maven
What is Maven?
Download and Installation
Configuring Maven
First Maven Project
What is a POM?
Using External Dependencies
Project Lifecycle Management
Using External Repositories
Using Plugins
https://notebookbft.wordpress.com/
Apache Maven supports all Java (JokerConf 2018)Robert Scholte
With the release train we can expect a new version of Java every 6 months. This means that tools like Maven should try to keep with this pace. Especially Java 9 came with some new features, and Maven managed to support these features. Maven found an elegant solution to work with modulepaths and classpaths without any need for developers to specify which jars belongs where.
This session will highlight the most important features developers should know to work with Java 9 and 10, combined with some practical tips and warnings.
Maven is the most popular Java Dependency Management Tool.
In this hands-on course, you will understand how Maven makes the life of a Java developer easy. We will use a step by step approach with 20 steps.
During the course, you will automate these using Maven.
Compiling Java Code
Running Unit Tests
Building Jar's and Wars
Running web applications in Tomcat
Setting up new projects
You will learn following features of Maven with 5 Example Projects on Github.
Dependency Management - including Transitive Dependencies
Maven Project Object Model
Maven Build Life Cycle
Maven Plugins
Maven Archetypes - Generate Projects
Maven Best Practices
Multi Module Maven Projects
With Java 9 modules coming to us soon, you want your existing code to be fully ready for the module system. Making code modular can be a daunting task, but Java 9 comes with a number features to ease migration. This includes automatic modules, the unnamed module and a number of command line arguments.
In this talk we will look at examples of migrating real code. It discusses common problems youll run into during migration, leading to practical tips and the ability to set realistic goals. Its also a good way to understand the module system itself and the various migration paths it supports. This talk is an excellent preparation to start migrating your own code.
* Understanding modules and the module path
* Automatic modules
* Mixing classpath and modulepath
* Dealing with reflection
* Escape switches
* Jdeps
All topics will be based on examples of often used libraries and frameworks.
Presents an overview of Apache Maven, a famous declarative build tool widely used in the Java ecosystem, focussing on philosophy, qualities and characteristics. To learn Maven, see www.sonatype.com/book/.
This is OpenTalkWare www.opentalkware.org cc-by-3.0 by Robert Burrell Donkin http://robertburrelldonkin.name
The presentation walks you through Apache maven and how to do a build management for java based applications. It starts with basic introduction on the technology and how it plays an important role for build management. The presentation then talks about details on how the maven works and its philosophy to creating builds. Furthermore, it also covers in detail the plugins based architecture to better understand how to use maven effectively.
Presentation explain about
Spring Boot vs Spring vs Spring MVC,
Advantages,
Where to start and how does Spring boot work ?,
Dependency Management,
Logging,
Exception Handling,
Database Handling.
in Spring boot.
Getting started with Apache Maven
What is Maven?
Download and Installation
Configuring Maven
First Maven Project
What is a POM?
Using External Dependencies
Project Lifecycle Management
Using External Repositories
Using Plugins
https://notebookbft.wordpress.com/
Apache Maven supports all Java (JokerConf 2018)Robert Scholte
With the release train we can expect a new version of Java every 6 months. This means that tools like Maven should try to keep with this pace. Especially Java 9 came with some new features, and Maven managed to support these features. Maven found an elegant solution to work with modulepaths and classpaths without any need for developers to specify which jars belongs where.
This session will highlight the most important features developers should know to work with Java 9 and 10, combined with some practical tips and warnings.
Apache Maven supports ALL Java JEEConf 2019Robert Scholte
With the increased pace of new releases of Java it is good to understand how Maven can keep up with this new cadence. The biggest challenge was to have integrated support for the modular system as introduced with Java 9, but once this hurdle was taken it should be relatively easy for projects to move to the latest Java version, with or without the usage module descriptors. This session will demonstrate that Maven itself is ready for the migration process of Java projects, the challenge is much more in the projectcode itself.
Apresentação do meetup "[JOI] TOTVS Developers Joinville - Java #1" que ocorreu dia 07/08/2019.
** Novidades Java, GraalVM e Quarkus
** Do zero à nuvem com Java e Kubernetes
An introduction to Java 9 & Its FeaturesNexSoftsys
Java 9 release in coming soon with new major feature release. Java latest version 9.0 postponed to September 2017. In this presentation to describe major feature like module system, Jlink tool, Java +REPL = Jshell, htpp 2.0, Jars file etc…
Presentation Abstract:
Are your applications running on Java 8? Thinking about switching your application to run on Java 11 and wondering about where to start? Come to this session to learn about the most impactful changes that went into Java 11 and what you will need to do to move your application to run on Java 11. Topics will include the removal of APIs (such as Java EE packages) and behavior changes resulting from moving an application from running on Java 8 to running on Java 11. We will also go over tools to use that will help you identify potential issues within your application and how to resolve them.
AppFuse is an open source project/application that uses best-of-breed Java open source tools to help you develop web applications quickly and efficiently. Not only does it provide documentation on how to develop light-weight POJO-based applications, it includes features that many applications need out-of-the-box: authentication and authorization, remember me, password hint, skinnability, file upload, Ajax libraries, signup and SSL switching. This is one of the main features in AppFuse that separates it from the other "CRUD Generation" frameworks like Ruby on Rails, Trails and Grails. AppFuse is already an application when you start using it, which means code examples are already in your project. Furthermore, because features already exist, the amount of boiler-plate code that most projects need will be eliminated.
In this session, you will learn Seven Simple Reasons to Use AppFuse. If you don't use it to start your own projects, hopefully you will see that it provides much of the boiler-plate code that can be used in Java-based web applications. Since it's Apache Licensed, you're more than welcome to copy/paste any code from it into your own applications.
Also see article published at:
http://www.ibm.com/developerworks/java/library/j-appfuse/index.html
Apache Maven supports ALL Java (Javaland 2019)Robert Scholte
With the Release Train we can expect a new version of Java every 6 month. This means that tools like Maven should try to keep up with this pace. Especially Java 9 came with quite some new features and Maven managed to support these features. Maven found an elegant solution to work with modulepaths and classpaths without any need for developers to specify which jars belongs where.
This session will highlight the most important features developers should know to work with Java 9, 10 and beyond, combined with some practical tips and warnings.
Robert Scholte is the chairman of Apache Maven and on behalf of the Maven team he was a member of the expert group for JSR-376, also known as project Jigsaw. He has done most of the implementations to support the Java 9+ features in Maven.
Declaring Server App Components in Pure JavaAtlassian
Today, server app developers declare their components using a mixture of technologies that includes atlassian-plugin.xml, Spring XML files, and Spring Scanner. This fragmented approach comes with its own learning curve and an array of pitfalls.
In this talk, Andrew Swan from Atlassian's Server Java Platform team will describe how server app developers can declare their Spring components in pure Java code. This approach is cleaner, more powerful, more flexible, easier to reason about, and more industry-standard. Attendees will also learn about a new Atlassian library that facilitates this approach by providing easy importing and exporting of OSGi services.
Attendees will come away being immediately able to start using Java-based configuration in their server apps. Links to documentation and working sample code will be provided.
A fairly short (26 slides) presentation covering the GlassFish community and product (v2 and upcoming modular v3) as well as Java EE 5 and upcoming Java EE 6.
Migration from Java EE to JakartaEE 10 - Challenges & OpportunitiesBuhake Sindi
As many enterprise applications have been built using Java EE, migrating these applications to JakartaEE 10 is a key concern for developers. JakartaEE 10 is the latest version of the enterprise Java standard, and it provides a platform for building portable, cloud-native applications.
In this talk, we will explore the challenges and opportunities of migrating from Java EE to JakartaEE 10. We will begin by discussing the differences between Java EE and JakartaEE, and how the migration process differs from previous upgrades. We will then explore the steps involved in migrating an application, such as identifying the modules that need to be updated, testing the application, and deploying it to a JakartaEE 10 runtime.
One of the key challenges in migrating from Java EE to JakartaEE 10 is dealing with the removal of some of the legacy technologies that were present in earlier versions of Java EE. We will discuss strategies for dealing with this, such as using alternative technologies or refactoring the code to remove dependencies on these legacy technologies.
Throughout the talk, we will provide practical tips and best practices for migrating from Java EE to JakartaEE 10, based on our own experiences and those of the broader community. By the end of the talk, developers will have a better understanding of the challenges and opportunities of migrating to JakartaEE 10, and will be equipped with the knowledge and tools they need to make a successful transition.
With its ninth version, the Java platform has shifted gear and introduced biyearly releases. This was followed by a license change where Oracle, the steward of Java, now publishes a commercial and a non-commercial release of the Java virtual machine while other vendors took more space to promote their alternative builds of the OpenJDK. And in another flood of news, the Java EE specification was terminated and resolved into the Jakarta EE namespace.
A lot has been happening in the traditionally conservative Java ecosystem, to say the least, and many users are wondering if they still can rely on the platform. This talk gives an overview of the Java ecosystem, summarizes the changes that have been, that to expect and why the evolution of the platform is good news to the community.
Java EE 6 and GlassFish v3: Paving the path for futureArun Gupta
This session provides an overview of Java EE 6 and GlassFish v3. Using multiple simple-to-understand samples it explains the value propositionprovided by Java EE 6.
Similar to Keeping up with Java made easy with Apache Maven (Devoxx 2018) (20)
Broken Buildtools and Bad Habits (Oracle Code One 2019)Robert Scholte
When builds are broken, there are some potential root causes: Maven; a Maven plugin; or, well, the developer. This session shows you some use cases, how Maven tried to improve them, and how such changes were or weren’t picked up by the community. It will demonstrate some interesting best practices and plus guide you though to changes, explaining how and why they were implemented.
Java 9 and the impact on Maven Projects (Devoxx 2016)Robert Scholte
This is the Tools in Action version of the orginal "Java 9 and the impact on Maven Projects" presentation. It uses an old example project from the Maven by Example book, but it shows very well the issues you can hit while migrating.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
20240605 QFM017 Machine Intelligence Reading List May 2024
Keeping up with Java made easy with Apache Maven (Devoxx 2018)
1. Keeping up with Java
made easy with
Apache Maven
ROBERT SCHOLTE
@RFSCHOLTE / @ASFMAVENPROJECT
2. Moving Java Forward Faster (2017/09/06)
Proposal
Taking inspiration from the release models used by other platforms
and by various operating-system distributions, I propose that after
Java 9 we adopt a strict, time-based model with a new feature
release every six months, update releases every quarter, and a long-
term support release every three years.
Source: https://mreinhold.org/blog/forward-faster#Proposal
4. Feature driven schedule
20192006 2008 2010 2012 2014 2016 2018
Java 6
December 2006
Java 7
July 2011
Java 8
March 2014
Java 9
September 2017
5. Time driven schedule
20212018 2019 2020 2021
Java 10
March 2018
Java 11
September 2018
Java 12
March 2019
Java 13
September 2019
Java 14
March 2020
Java 15
September 2020
Java 16
March 2021
8. Maven runtime versus toolchains
❖ JAVA_HOME is used for the Maven runtime
❖ For ease, JAVA_HOME is the default JDK
❖ With Maven Toolchains some plugins can get an explicit JDK
❖ Most reliable setup: toolchain
16. Maven Compiler Plugin 3.6.x
First implementations of module path support for early adopters
Requirements:
❖ No changes to the pom.xml
❖ (Close to) no extra configuration for developers
Dependencies:
❖ ASM 6.0_ALPHA
❖ QDox 2.0-M6
17. Java 9 / Maven Compiler Plugin 3.7.0
Module Resolution moved to Plexus::Java
Dependencies:
❖ ASM 6.0_BETA
❖ QDox 2.0-M7
18. Plexus::Java
Maven independent library for general Java features
❖LocationManager
❖JavaVersion
Used by
❖maven-compiler-plugin
❖maven-javadoc-plugin
❖maven-jlink-plugin
❖maven-jmod-plugin
❖maven-surefire-plugin / maven-failsafe-plugin
❖…
19. 2018Sep Nov 2018 Mar May Jul Sep
Java 9
22 Sep '17
Java 10
20 Mar '18
Java 11
25 Sep '18
Maven Compiler Plugin
3.7.0
1 Sep '17
Maven Compiler Plugin
3.8.0
26 Jul '18
Releases of Maven Compiler Plugin
21. Updating ASM dependency
This implies: updating to latest asm-6.x dependency is possible,
but not to asm-7.x
Updating plugin dependencies already possible since Maven 2
ClassReader reader = new ClassReader( in );
reader.accept( new ClassVisitor( Opcodes.ASM6 )
{ … } );
22. 2018Sep Nov 2018 Mar May Jul Sep
Java 9
22 Sep '17
Java 10
20 Mar '18
Java 11
25 Sep '18
Maven Compiler Plugin
3.7.0
1 Sep '17
Maven Compiler Plugin
3.8.0
26 Jul '18
Releases of Maven Compiler Plugin
23. Java 11-ea / Maven Compiler Plugin 3.8.0
❖Reduce need for ASM
❖Use java.lang.module.ModuleDescriptor#read(InputStream)
24. Will Maven run on future JDK releases?
Yes, most likely
Even Apache Maven 3.0 (released 4 oct 2010) runs on 12-ea
Any issues are plugin related
25. Is it always forward compatible?
Yes in case of modulepath resolution
No for class analyzers (depend on ASM):
❖maven-dependency-plugin (analyze)
❖maven-plugin-plugin (descriptor)
❖maven-pmd-plugin (pmd)
❖maven-shade-plugin (minifyJar)
26. How do we test?
https://builds.apache.org/job/maven-box/
27. Conclusion
Java Release Train reveals critical chain of dependencies
A few plugins might not work right after a new Java release
Depending on the problem:
❖ Update related plugin dependency in your own project
❖ Patch plugin code (please create PR to help each other)
29. Up-for-grabs
~60-80% of Java Project/Developers use Maven
The Apache Maven Project holds ~100 (sub)projects
Maintained by ~5-10 active volunteers (No Company!)
Let’s restore the balance!
https://s.apache.org/up-for-grabs_maven
https://maven.apache.org/guides/development/guide-committer-school.html