SlideShare a Scribd company logo
1 of 56
Apache Maven supports ALL Java
ROBERT SCHOLTE @RFSCHOLTE
The good news
Apache Maven runs fine on JDK 9 ( and 10 )
Apache Maven works like heaven on JDK 11 ( and 12 and 13-ea )
Possible issues are often plugin related
Upgrading to the latest version should solve the problem
Applying a module descriptor
1. Just add your module-info.java to src/main/java
2. Upgrade maven-compiler-plugin to at least 3.8.0
3. There’s no step three
Maven will calculate which dependencies belong to the
classpath and which to the module path.
No new dependency-element/scope
When two worlds collide…
Maven
Java
<= 8
Maven
Java
<= 8
Java 9+
Goals Java Platform Modular System
Reliable configuration
Strong encapsulation
The module-info.java
module com.foo.module.name
{
// reliable configuration
requires some.other.module;
// strong encapsulation
exports com.foo.package.name;
}
If you’re not careful with your modularization
you can corrupt the whole Maven Ecosystem
Library builders should be aware of the impact of their module descriptors
Application builders should recognize these issues
Revised specifications
o Jars on modulepath
o Support ALL-MODULE-PATH
o Modulenames with numbers
o Automatic module names
Jars on modulepath
Original spec only allowed directories
Maven dependencies point to a file
Directory may contain multiple jars (javadoc,sources)
ALL-MODULE-PATH
--add-modules ALL-MODULE-PATH
In short: Make all entries on the module path
see each other
Module names
Déjà Vu
What is the proper module name?
What is the proper groupId and artifactId?
Modulenames with numbers
Project/product names
• AWS-EC2
• AWS-Route53
• AWS-S3
• C3P0
• DB2
• Fabric8
• H2
• JSRnnn
• OAuth2
Versioned libraries (includes
versioned packages)
• Commons-lang2
• Commons-lang3
Bridge libraries to different
versions
• Jspc-compiler-tomcatN
• Mockwire-springN
• Surefire-junitN
Close to 30.000 groupId/artifactId end with a number (Central, March 2017)
Original implementation did not allow
module names ending with a number.
#VersionsInModuleNames
Some have argued that
library maintainers will be
tempted to encode major
version numbers, or even full
version numbers, in module
names. Is there some way we
can guide people away from
doing that?
Resolution Abandon
the previous proposal to
mandate that module names
appearing in source-form
module declarations must
both start and end with “Java
letters”. Revise the
automatic-module naming
algorithm to allow digits at
the end of module names.
Automatic module names
“… . The module name is otherwise derived
from the name of the JAR file.”
NPM Javascript
package registry
Over 13500 ‘rows’ of collisions
Evidence (OCT 2016)
JIGSAW
Automatic modules are required for top-
down adoption
MAVEN
References to automatic module names
will cause collisions sooner or later
Library builders should never refer to automatic modules* and deploy to a public repository.
Application builders can choose to refer to automatic modules.
* Filename based
Application versus library
Application
Module descriptor without exports
maven-compiler-plugin logs info message
in case of automatic module usage
Library
Module descriptor with exports
Tip: Use Maven 3.5.0+ for colour support
maven-compiler-plugin logs
WARNING message in case of
automatic module usage
Automatic modules
Ease of top-down migration for application builders
But what about “in the middle” library builders?
Java Platform. It will be approachable, i.e., easy to learn and
easy to use, so that developers can use it to construct and
maintain libraries and large applications for both the Java SE
and Java EE Platforms.
JSR 376: JavaTM Platform Module System
Original Java Specification Request (JSR)
Section 2.1
Application my-app
Libraries jackson-core jackson-databind jackson-annotations my-lib
java.base
Conference example
Application my-app
Libraries (direct deps) … … … my-lib
Libraries (transitive deps)
…
… … …
Libraries (independent deps) jackson-core jackson-databind jackson-annotations
java.base
More realworld example
1currency-1.0.jar
2buy-service-1.0.jar
module org.moneylibs.buy
{
requires currency;
}
3currence-2.0.jar
module org.moneylibs.currency
{
}
sell-service-1.0.jar
module org.moneylibs.sell
{
requires org.moneylibs.currency;
}
4
5animalmarket-1.0.jar
module com.animalmarket
{
requires org.moneylibs.buy;
requires org.moneylibs.sell;
}
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.animalmarket</groupId>
<artifactId>animalmarket</artifactId>
<version>1.0.0-SNAPSHOT</version>
<dependencies>
<!-- the dependencies -->
</dependencies>
</project>
<dependency>
<groupId>org.moneylibs</groupId>
<artifactId>buy-service</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.moneylibs</groupId>
<artifactId>sell-service</artifactId>
<version>1.0</version>
</dependency>
animalmarket.jar
(com.animalmarket)
requires o.m.buy;
requires o.m.sell;
buy-service-1.0.jar (o.m.buy)
requires currency;
sell-service-1.0.jar (o.m.sell)
requires o.m.currency;
animalmarket.jar
(com.animalmarket)
requires o.m.buy;
requires o.m.sell;
buy-service-1.0.jar (o.m.buy)
requires currency;
currency-1.0.jar
(currency)
sell-service-1.0.jar (o.m.sell)
requires o.m.currency;
currency-2.0.jar
(o.m.currency)
animalmarket.jar
(com.animalmarket)
requires o.m.buy;
requires o.m.sell;
buy-service-1.0.jar (o.m.buy)
requires currency;
currency-1.0.jar
(currency)
sell-service-1.0.jar (o.m.sell)
requires o.ms.currency;
currency-2.0.jar
(o.m.currency)
<dependency>
<groupId>org.moneylibs</groupId>
<artifactId>buy-service</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.moneylibs</groupId>
<artifactId>sell-service</artifactId>
<version>1.0</version>
</dependency>
animalmarket.jar
(com.animalmarket)
requires o.m.buy;
requires o.m.sell;
sell-service-1.0.jar (o.m.sell)
requires o.m.currency;
currency-2.0.jar
(o.m.currency)
buy-service-1.0.jar (o.m.buy)
requires currency;
currency-1.0.jar
(currency)
animalmarket.jar
(com.animalmarket)
requires o.m.buy;
requires o.m.sell;
sell-service-1.0.jar (o.m.sell)
requires o.m.currency;
currency-2.0.jar
(o.m.currency)
buy-service-1.0.jar (o.m.buy)
requires currency;
currency-1.0.jar
(currency)
Migrate
META-INF/MANIFEST.MF
•Automatic-Module-Name
2buy-service-1.0.jar
META-INF/MANIFEST.MF
Automatic-Module-Name:
org.moneylibs.buy
Point of
no return
“If you refer to
dependency X:N as a
module and dependency
X:N-1 has no module
name, then you cannot
downgrade this
dependency anymore”
currency-1.0.jar
(currency)
sell-service-1.0.jar
(o.m.sell)
requires o.m.currency;
currency-2.0.jar
(o.m.currency)
Strong advices
-Project must be Java 9 ready!!
o No split packages
o No root classes
-For libraries that depends on at least one filename based automodule:
o Help depending projects by providing intended module name via MANIFEST
-Pick your modulename with care, e.g. the shared package
Mistakes will happen
In fact, first invalid modules are already available at Maven Central
asm-6.0_BETA ( org.ow2.asm)
asm-all-6.0_BETA (org.ow2.asm.all) 1
asm-debug-all-6.0_BETA (org.ow2.asm.debug.all) 1
Application developer cannot fix these mistakes (dependency-
exclude doesn’t work)
1 Fixed with asm-6.0 by dropping *-all artifacts (asm includes
debug information by default)
Same packages must
have the same
modulename
(otherwise potential
split package issue)
Frequently Asked Questions
Can every project become modular?
NO
o Java 9 is a gamchanger, it introduces new rules
o The older the project, the more likely it cannot follow these rules
o No worries, the classpath is still there and will stay!
The boomerang question
Or “the ever returning Maven/JavaNEXT/Conference question”
Will Maven generate the module descriptor?
No
Different purpose
◦Pom is used to download jars and make them available
◦Module descriptor is used to specify required modules
Not all modules are dependencies
◦( e.g. java.logging, jdk.compiler )
Module descriptor elements not covered:
◦Module name
◦Open module
◦Exported packages
◦Uses / provides services
Pom 4.0.0 has no space for new elements
Pom hygiene
dependency:analyse
◦ Analyzes the dependencies of this project and determines which are:
◦ used and declared (good)
◦ used and undeclared (via transitive dependency)
◦ unused and declared (ballast!)
Dependencies can be excluded,
required modules cannot
…BUT JDEPS can do it, right?
Can create a rough module descriptor
Intended to help with an initial descriptor
Uses binary classes, i.e. AFTER compile-phase
Some open source project will…
https://github.com/moditect/moditect
[RESULT] Apache Maven supports ALL Java
Up-for-grabs
~60-80% of Java Project/Developers use Maven
The Apache Maven Project holds ~95 (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
Thank you
@ASFMAVENPROJECT

More Related Content

What's hot

Maximizing Throughput and Reliability with Pipelined Tasks
Maximizing Throughput and Reliability with Pipelined TasksMaximizing Throughput and Reliability with Pipelined Tasks
Maximizing Throughput and Reliability with Pipelined TasksPhillip Koza
 
Developing Agile Java Applications using Spring tools
Developing Agile Java Applications using Spring toolsDeveloping Agile Java Applications using Spring tools
Developing Agile Java Applications using Spring toolsSathish Chittibabu
 
Upgrade to java 16 or 17
Upgrade to java 16 or 17Upgrade to java 16 or 17
Upgrade to java 16 or 17Johan Janssen
 
Java2 platform
Java2 platformJava2 platform
Java2 platformSajan Sahu
 
Java dev mar_2021_keynote
Java dev mar_2021_keynoteJava dev mar_2021_keynote
Java dev mar_2021_keynoteSuyash Joshi
 
Java ppts unit1
Java ppts unit1Java ppts unit1
Java ppts unit1Priya11Tcs
 
Maven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafeMaven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafeHolasz Kati
 
MuleSoft ESB Testing Mule Application using MUnit Test Suite
MuleSoft ESB Testing Mule Application using MUnit Test SuiteMuleSoft ESB Testing Mule Application using MUnit Test Suite
MuleSoft ESB Testing Mule Application using MUnit Test Suiteakashdprajapati
 
4Developers 2015: Sprytniejsze testowanie kodu Java ze Spock Framework - Marc...
4Developers 2015: Sprytniejsze testowanie kodu Java ze Spock Framework - Marc...4Developers 2015: Sprytniejsze testowanie kodu Java ze Spock Framework - Marc...
4Developers 2015: Sprytniejsze testowanie kodu Java ze Spock Framework - Marc...PROIDEA
 
J2EE Struts with Hibernate Framework
J2EE Struts with Hibernate FrameworkJ2EE Struts with Hibernate Framework
J2EE Struts with Hibernate Frameworkmparth
 
An Introduction to Maven
An Introduction to MavenAn Introduction to Maven
An Introduction to MavenVadym Lotar
 
Maven 2 features
Maven 2 featuresMaven 2 features
Maven 2 featuresAngel Ruiz
 
Java modulesystem
Java modulesystemJava modulesystem
Java modulesystemMarc Kassis
 
An Introduction to Maven Part 1
An Introduction to Maven Part 1An Introduction to Maven Part 1
An Introduction to Maven Part 1MD Sayem Ahmed
 
Tivoli perfviewer
Tivoli perfviewerTivoli perfviewer
Tivoli perfvieweritsolvs
 

What's hot (20)

Maximizing Throughput and Reliability with Pipelined Tasks
Maximizing Throughput and Reliability with Pipelined TasksMaximizing Throughput and Reliability with Pipelined Tasks
Maximizing Throughput and Reliability with Pipelined Tasks
 
Tomcat
TomcatTomcat
Tomcat
 
Developing Agile Java Applications using Spring tools
Developing Agile Java Applications using Spring toolsDeveloping Agile Java Applications using Spring tools
Developing Agile Java Applications using Spring tools
 
Jsf 2.0 in depth
Jsf 2.0 in depthJsf 2.0 in depth
Jsf 2.0 in depth
 
Symfony
SymfonySymfony
Symfony
 
Upgrade to java 16 or 17
Upgrade to java 16 or 17Upgrade to java 16 or 17
Upgrade to java 16 or 17
 
Java2 platform
Java2 platformJava2 platform
Java2 platform
 
Java dev mar_2021_keynote
Java dev mar_2021_keynoteJava dev mar_2021_keynote
Java dev mar_2021_keynote
 
Java ppts unit1
Java ppts unit1Java ppts unit1
Java ppts unit1
 
Maven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafeMaven Presentation - SureFire vs FailSafe
Maven Presentation - SureFire vs FailSafe
 
Mongo db
Mongo dbMongo db
Mongo db
 
MuleSoft ESB Testing Mule Application using MUnit Test Suite
MuleSoft ESB Testing Mule Application using MUnit Test SuiteMuleSoft ESB Testing Mule Application using MUnit Test Suite
MuleSoft ESB Testing Mule Application using MUnit Test Suite
 
4Developers 2015: Sprytniejsze testowanie kodu Java ze Spock Framework - Marc...
4Developers 2015: Sprytniejsze testowanie kodu Java ze Spock Framework - Marc...4Developers 2015: Sprytniejsze testowanie kodu Java ze Spock Framework - Marc...
4Developers 2015: Sprytniejsze testowanie kodu Java ze Spock Framework - Marc...
 
J2EE Struts with Hibernate Framework
J2EE Struts with Hibernate FrameworkJ2EE Struts with Hibernate Framework
J2EE Struts with Hibernate Framework
 
An Introduction to Maven
An Introduction to MavenAn Introduction to Maven
An Introduction to Maven
 
Maven 2 features
Maven 2 featuresMaven 2 features
Maven 2 features
 
Java modulesystem
Java modulesystemJava modulesystem
Java modulesystem
 
An Introduction to Maven Part 1
An Introduction to Maven Part 1An Introduction to Maven Part 1
An Introduction to Maven Part 1
 
Tivoli perfviewer
Tivoli perfviewerTivoli perfviewer
Tivoli perfviewer
 
Java introduction
Java introductionJava introduction
Java introduction
 

Similar to Apache Maven supports ALL Java JEEConf 2019

Apache Maven and Java 9 and 10 (Devoxx France 2018)
Apache Maven and Java 9 and 10 (Devoxx France 2018)Apache Maven and Java 9 and 10 (Devoxx France 2018)
Apache Maven and Java 9 and 10 (Devoxx France 2018)Robert Scholte
 
The do's and don'ts with java 9 (Devoxx 2017)
The do's and don'ts with java 9 (Devoxx 2017)The do's and don'ts with java 9 (Devoxx 2017)
The do's and don'ts with java 9 (Devoxx 2017)Robert Scholte
 
Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Robert Scholte
 
JAVA INTRODUCTION
JAVA INTRODUCTIONJAVA INTRODUCTION
JAVA INTRODUCTIONProf Ansari
 
Java 9 and the impact on Maven Projects (JavaOne 2016)
Java 9 and the impact on Maven Projects (JavaOne 2016)Java 9 and the impact on Maven Projects (JavaOne 2016)
Java 9 and the impact on Maven Projects (JavaOne 2016)Robert Scholte
 
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)Robert Scholte
 
Classes and Objects
Classes and ObjectsClasses and Objects
Classes and Objectsvmadan89
 
Java, Eclipse, Maven & JSF tutorial
Java, Eclipse, Maven & JSF tutorialJava, Eclipse, Maven & JSF tutorial
Java, Eclipse, Maven & JSF tutorialRaghavan Mohan
 
Java 9 Module System
Java 9 Module SystemJava 9 Module System
Java 9 Module SystemHasan Ünal
 
Sybsc cs sem 3 core java
Sybsc cs sem 3 core javaSybsc cs sem 3 core java
Sybsc cs sem 3 core javaWE-IT TUTORIALS
 
Note - Apache Maven Intro
Note - Apache Maven IntroNote - Apache Maven Intro
Note - Apache Maven Introboyw165
 
Leaner microservices with Java 10
Leaner microservices with Java 10Leaner microservices with Java 10
Leaner microservices with Java 10Arto Santala
 
Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...Mr. Akaash
 

Similar to Apache Maven supports ALL Java JEEConf 2019 (20)

Apache Maven and Java 9 and 10 (Devoxx France 2018)
Apache Maven and Java 9 and 10 (Devoxx France 2018)Apache Maven and Java 9 and 10 (Devoxx France 2018)
Apache Maven and Java 9 and 10 (Devoxx France 2018)
 
The do's and don'ts with java 9 (Devoxx 2017)
The do's and don'ts with java 9 (Devoxx 2017)The do's and don'ts with java 9 (Devoxx 2017)
The do's and don'ts with java 9 (Devoxx 2017)
 
Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)Apache maven and its impact on java 9 (Java One 2017)
Apache maven and its impact on java 9 (Java One 2017)
 
JAVA INTRODUCTION
JAVA INTRODUCTIONJAVA INTRODUCTION
JAVA INTRODUCTION
 
Java 9 and the impact on Maven Projects (JavaOne 2016)
Java 9 and the impact on Maven Projects (JavaOne 2016)Java 9 and the impact on Maven Projects (JavaOne 2016)
Java 9 and the impact on Maven Projects (JavaOne 2016)
 
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
Java 9 and the impact on Maven Projects (ApacheCon Europe 2016)
 
Classes and Objects
Classes and ObjectsClasses and Objects
Classes and Objects
 
Java, Eclipse, Maven & JSF tutorial
Java, Eclipse, Maven & JSF tutorialJava, Eclipse, Maven & JSF tutorial
Java, Eclipse, Maven & JSF tutorial
 
Migrating to Java 9 Modules
Migrating to Java 9 ModulesMigrating to Java 9 Modules
Migrating to Java 9 Modules
 
Maven basics
Maven basicsMaven basics
Maven basics
 
Java9
Java9Java9
Java9
 
Java 9 Module System
Java 9 Module SystemJava 9 Module System
Java 9 Module System
 
Java8 - Under the hood
Java8 - Under the hoodJava8 - Under the hood
Java8 - Under the hood
 
Sybsc cs sem 3 core java
Sybsc cs sem 3 core javaSybsc cs sem 3 core java
Sybsc cs sem 3 core java
 
Note - Apache Maven Intro
Note - Apache Maven IntroNote - Apache Maven Intro
Note - Apache Maven Intro
 
Exploring Maven SVN GIT
Exploring Maven SVN GITExploring Maven SVN GIT
Exploring Maven SVN GIT
 
Leaner microservices with Java 10
Leaner microservices with Java 10Leaner microservices with Java 10
Leaner microservices with Java 10
 
Maven Introduction
Maven IntroductionMaven Introduction
Maven Introduction
 
Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...Introduction to Java Programming, Basic Structure, variables Data type, input...
Introduction to Java Programming, Basic Structure, variables Data type, input...
 
perl-java
perl-javaperl-java
perl-java
 

Recently uploaded

AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)Samir Dash
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuidePixlogix Infotech
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingScyllaDB
 
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdfFrisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdfAnubhavMangla3
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform EngineeringMarcus Vechiato
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch TuesdayIvanti
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard37
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxFIDO Alliance
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxMasterG
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxFIDO Alliance
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...FIDO Alliance
 
الأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهلهالأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهلهMohamed Sweelam
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data SciencePaolo Missier
 
Navigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi DaparthiNavigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi DaparthiRaviKumarDaparthi
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctBrainSell Technologies
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfSrushith Repakula
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...panagenda
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfdanishmna97
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptxFIDO Alliance
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxMarkSteadman7
 

Recently uploaded (20)

AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
JavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate GuideJavaScript Usage Statistics 2024 - The Ultimate Guide
JavaScript Usage Statistics 2024 - The Ultimate Guide
 
Event-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream ProcessingEvent-Driven Architecture Masterclass: Challenges in Stream Processing
Event-Driven Architecture Masterclass: Challenges in Stream Processing
 
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdfFrisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
JohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptxJohnPollard-hybrid-app-RailsConf2024.pptx
JohnPollard-hybrid-app-RailsConf2024.pptx
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptxCyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
Cyber Insurance - RalphGilot - Embry-Riddle Aeronautical University.pptx
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...Hyatt driving innovation and exceptional customer experiences with FIDO passw...
Hyatt driving innovation and exceptional customer experiences with FIDO passw...
 
الأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهلهالأمن السيبراني - ما لا يسع للمستخدم جهله
الأمن السيبراني - ما لا يسع للمستخدم جهله
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
Navigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi DaparthiNavigating the Large Language Model choices_Ravi Daparthi
Navigating the Large Language Model choices_Ravi Daparthi
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 

Apache Maven supports ALL Java JEEConf 2019