SlideShare una empresa de Scribd logo
1 de 19
Using Java to Build Java
Revealing the Power of Open Java Technologies
Daniel Bryant, Tai-Dev Ltd (@taidevcouk)
Steve Poole, IBM (@spoole167)
London Java Community
Tonight’s Agenda
• OpenJDK – Java for the people!
• Contributing to OpenJDK is easy… right?
• The problem, and our planned solution
• Progress so far…
• Future work – we need your help!
• This is a BOF session
– We encourage questions and discussion!
What is OpenJDK?
• Is everyone familiar with the OpenJDK?
– Free and open source implementation of Java SE
– Reference Implementation for JDK since Java 7
– Code split into various Mercurial repos (jdk, Hotspot,
nashorn…)
• Has anyone built it locally?
– On MS Windows? 
Building OpenJDK
• Java used extensively (and others… c++ etc)
• Ensuring quality
– We all Unit Test our code (…right?)
– Essential for a platform/SDK like Java
• Jtreg - “Regression Test Harness”
– Think Unit (and Integration) Testing for the JDK
– TestNG / JUnit / Shell scripts
– Some good code coverage (some bad!)
Test Coverage Report
http://sticky.uwcs.co.uk/ojdk/coveragereport/
Courtesy of Dr John Oliver
Contributing to OpenJDK is easy…
• Sign OCA
• Download the codebase
• Find something interesting to work on
– Bug database/tracker/Jira
– Write new tests
– Re-write old tests
– Get inspiration from the mailing lists (50+!)
Contributing to OpenJDK is easy…right?
• Find a sponsor
• Submit a patch
– Include comments, code changes and jtreg tests
– Generate a “webrev”
– Wait for feedback…
• This is a slow (and perhaps unintuitive) process
– Why can’t I just fork and pull?
Not quite social coding…
http://docs.joomla.org/Dvcs
Is it anti-social???
http://www.rottenecards.com/card/32253/im-not-anti-social-im-se
The problems…
• Doesn’t quite feel like “social coding” should…
– You’re working on an island
– Modifications not visible to the world
– Discussions not close to code
• Testing is difficult
– Added complexity of working with a VM/SDK
– Does patch works across all platforms/permutations?
– Coding standards
Our Goals
• “To encourage contributions to OpenJDK"
• Streamline the whole process
– More social…
• Ensure (and assist with) quality
– Lack of test coverage, incorrect code style
– Easier to test across platforms/permutations
• Provide visible feedback for community
Architecture – Grand Vision
Progress so far…
• “Betterev” web app nearing completion
– Built in Play 2 framework (not ideal…)
• Event-driven architecture
– Utilising Akka to build event-bus
• Planning Test Farm implementation
– Servers aren’t free!
• Personal Challenges
– Large scope needs large time commitments
– Communication and organisation are vital!
Opening page
Pull Review details
Future Work
• Deploy alpha release
– Complete web app (what to do with Play??)
– Implement build farm (DevOps magic)
• Start demonstrating this tool
– Get some “buy in”…
• LJC working hard to commit more time…
Please do get involved!
• We need passionate Java developers like you!
– What’s better than helping to make contributing to
your favourite language easier?
• Find us on Bitbucket
– https://bitbucket.org/adoptopenjdk/betterrev
• Join our Google Group:
– https://groups.google.com/forum/#!forum/betterrev
Please do get involved!
• Web Resources
– http://openjdk.java.net/
– https://java.net/projects/adoptopenjdk/
– https://groups.google.com/forum/#!forum/adopt-
openjdk
– https://twitter.com/OpenJDK
• Contact Us:
– Daniel Bryant, Tai-Dev Ltd (@taidevcouk)
– Steve Poole, IBM (@spoole167)
A shout out to the LJC and IBM…
• Thanks to the LJC for supporting this
– Martijn Verburg
– Richard Warburton
– Mani Sarkar
– Kaushal Singh
– Edward Wong
• Thanks also to IBM

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
 
Developer Job in Practice
Developer Job in PracticeDeveloper Job in Practice
Developer Job in Practice
 
From hello world to goodbye code
From hello world to goodbye codeFrom hello world to goodbye code
From hello world to goodbye code
 
Testing API's: Tools & Tips & Tricks (Oh My!)
Testing API's: Tools & Tips & Tricks (Oh My!)Testing API's: Tools & Tips & Tricks (Oh My!)
Testing API's: Tools & Tips & Tricks (Oh My!)
 
The "Run Anywhere" Mindset
The "Run Anywhere" MindsetThe "Run Anywhere" Mindset
The "Run Anywhere" Mindset
 
Droidcon IT 2015
Droidcon IT 2015Droidcon IT 2015
Droidcon IT 2015
 
Easily Manage Software on Windows with Chocolatey - PuppetConf 2016
Easily Manage Software on Windows with Chocolatey - PuppetConf 2016Easily Manage Software on Windows with Chocolatey - PuppetConf 2016
Easily Manage Software on Windows with Chocolatey - PuppetConf 2016
 
PuppetConf track overview: Windows
PuppetConf track overview: WindowsPuppetConf track overview: Windows
PuppetConf track overview: Windows
 
Agile and UX
Agile and UXAgile and UX
Agile and UX
 
Running a Successful Open Source Project
Running a Successful Open Source ProjectRunning a Successful Open Source Project
Running a Successful Open Source Project
 
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
Joe Cisar - Everything I Know About TDD - Agile Midwest 2019
 
Get your Project back in Shape!
Get your Project back in Shape!Get your Project back in Shape!
Get your Project back in Shape!
 
Embracing Continuous Integration
Embracing Continuous IntegrationEmbracing Continuous Integration
Embracing Continuous Integration
 
Android Building, Testing and reversing
Android Building, Testing and reversingAndroid Building, Testing and reversing
Android Building, Testing and reversing
 
Continuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVzContinuous integration & Continuous Delivery @DeVz
Continuous integration & Continuous Delivery @DeVz
 
Plone IDE - the future of Plone development
Plone IDE - the future of Plone developmentPlone IDE - the future of Plone development
Plone IDE - the future of Plone development
 
Setting up your development environment
Setting up your development environmentSetting up your development environment
Setting up your development environment
 
What is dev ops?
What is dev ops?What is dev ops?
What is dev ops?
 
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
July 2020 OpenNTF Webinar - Hear the Latest from the User Groups!
 
Android smarter with TensorFlow
Android smarter with TensorFlowAndroid smarter with TensorFlow
Android smarter with TensorFlow
 

Destacado

Destacado (11)

DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"
DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"
DevoxxUK 2014 "Moving to a DevOps Mode: Easy, Hard, or Just Plain Terrifying?"
 
Software Development: Thinking, Fast and Slow
Software Development: Thinking, Fast and SlowSoftware Development: Thinking, Fast and Slow
Software Development: Thinking, Fast and Slow
 
How to get your talk accepted at Devoxx UK
How to get your talk accepted at Devoxx UKHow to get your talk accepted at Devoxx UK
How to get your talk accepted at Devoxx UK
 
JavaOne 2014: Cloud Developer's DHARMA: Redefining 'done' for Cloud applications
JavaOne 2014: Cloud Developer's DHARMA: Redefining 'done' for Cloud applicationsJavaOne 2014: Cloud Developer's DHARMA: Redefining 'done' for Cloud applications
JavaOne 2014: Cloud Developer's DHARMA: Redefining 'done' for Cloud applications
 
LJC: "Chuck Norris Doesn't Do DevOps...but Java developers might benefit"
LJC: "Chuck Norris Doesn't Do DevOps...but Java developers might benefit"LJC: "Chuck Norris Doesn't Do DevOps...but Java developers might benefit"
LJC: "Chuck Norris Doesn't Do DevOps...but Java developers might benefit"
 
LJC 2014 "Professional Software Development: Thinking Fast and Slow"
LJC 2014 "Professional Software Development: Thinking Fast and Slow"LJC 2014 "Professional Software Development: Thinking Fast and Slow"
LJC 2014 "Professional Software Development: Thinking Fast and Slow"
 
LJC 2015 "The Crafty Consultants Guide to DevOps"
LJC 2015 "The Crafty Consultants Guide to DevOps"LJC 2015 "The Crafty Consultants Guide to DevOps"
LJC 2015 "The Crafty Consultants Guide to DevOps"
 
Jfokus 2015 "Thinking Fast and Slow with Software Development"
Jfokus 2015 "Thinking Fast and Slow with Software Development"Jfokus 2015 "Thinking Fast and Slow with Software Development"
Jfokus 2015 "Thinking Fast and Slow with Software Development"
 
LMSUG 2015 "The Business Behind Microservices: Organisational, Architectural ...
LMSUG 2015 "The Business Behind Microservices: Organisational, Architectural ...LMSUG 2015 "The Business Behind Microservices: Organisational, Architectural ...
LMSUG 2015 "The Business Behind Microservices: Organisational, Architectural ...
 
EVRYTHNG: Concepts, technologies and applications for connecting physical obj...
EVRYTHNG: Concepts, technologies and applications for connecting physical obj...EVRYTHNG: Concepts, technologies and applications for connecting physical obj...
EVRYTHNG: Concepts, technologies and applications for connecting physical obj...
 
5 Years of Web of Things Workshops
5 Years of Web of Things Workshops5 Years of Web of Things Workshops
5 Years of Web of Things Workshops
 

Similar a JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

MOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEMOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITE
Vishal Mittal
 
Counterclockwise past present future
Counterclockwise  past present futureCounterclockwise  past present future
Counterclockwise past present future
lolopetit
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
Howard Greenberg
 
Java Methods - An Introduction to Software Development
Java Methods - An Introduction to Software DevelopmentJava Methods - An Introduction to Software Development
Java Methods - An Introduction to Software Development
RajKumar Radhamanalan
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
Lucas Jellema
 

Similar a JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session (20)

Intro to Java Technology
Intro to Java TechnologyIntro to Java Technology
Intro to Java Technology
 
MOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITEMOBILE QUESTIONS & ANSWER WEBSITE
MOBILE QUESTIONS & ANSWER WEBSITE
 
Lecture-01 _Java Introduction CS 441 Fast
Lecture-01 _Java Introduction CS 441 FastLecture-01 _Java Introduction CS 441 Fast
Lecture-01 _Java Introduction CS 441 Fast
 
1.Intro--Why Java.pptx
1.Intro--Why Java.pptx1.Intro--Why Java.pptx
1.Intro--Why Java.pptx
 
Counterclockwise past present future
Counterclockwise  past present futureCounterclockwise  past present future
Counterclockwise past present future
 
The Evolution of Java
The Evolution of JavaThe Evolution of Java
The Evolution of Java
 
Join the Java Evolution GIDS Bangalore & Pune
Join the Java Evolution GIDS Bangalore & PuneJoin the Java Evolution GIDS Bangalore & Pune
Join the Java Evolution GIDS Bangalore & Pune
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
 
Tips For Maintaining OSS Projects
Tips For Maintaining OSS ProjectsTips For Maintaining OSS Projects
Tips For Maintaining OSS Projects
 
The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011The State of Java under Oracle at JCertif 2011
The State of Java under Oracle at JCertif 2011
 
What we do with Go
What we do with GoWhat we do with Go
What we do with Go
 
Stackato
StackatoStackato
Stackato
 
Adopt OpenJDK - Lessons learned and Where we're going (FOSDEM 2013)
Adopt OpenJDK - Lessons learned and Where we're going (FOSDEM 2013)Adopt OpenJDK - Lessons learned and Where we're going (FOSDEM 2013)
Adopt OpenJDK - Lessons learned and Where we're going (FOSDEM 2013)
 
Introduction to Java 7 (OSCON 2012)
Introduction to Java 7 (OSCON 2012)Introduction to Java 7 (OSCON 2012)
Introduction to Java 7 (OSCON 2012)
 
Java Methods - An Introduction to Software Development
Java Methods - An Introduction to Software DevelopmentJava Methods - An Introduction to Software Development
Java Methods - An Introduction to Software Development
 
Adopt OpenJDK the past, the present & the future
Adopt OpenJDK  the past, the present & the futureAdopt OpenJDK  the past, the present & the future
Adopt OpenJDK the past, the present & the future
 
Java uk road tour - sep 06
Java uk road tour - sep 06Java uk road tour - sep 06
Java uk road tour - sep 06
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
Java (1)
Java (1)Java (1)
Java (1)
 
History of Java 1/2
History of Java 1/2History of Java 1/2
History of Java 1/2
 

Más de Daniel Bryant

Más de Daniel Bryant (20)

ITKonekt 2023: The Busy Platform Engineers Guide to API Gateways
ITKonekt 2023: The Busy Platform Engineers Guide to API GatewaysITKonekt 2023: The Busy Platform Engineers Guide to API Gateways
ITKonekt 2023: The Busy Platform Engineers Guide to API Gateways
 
CraftConf 2023 "Microservice Testing Techniques: Mocks vs Service Virtualizat...
CraftConf 2023 "Microservice Testing Techniques: Mocks vs Service Virtualizat...CraftConf 2023 "Microservice Testing Techniques: Mocks vs Service Virtualizat...
CraftConf 2023 "Microservice Testing Techniques: Mocks vs Service Virtualizat...
 
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
PlatformCon 23: "The Busy Platform Engineers Guide to API Gateways"
 
Java Meetup 23: 'Debugging Microservices "Remocally" in Kubernetes with Telep...
Java Meetup 23: 'Debugging Microservices "Remocally" in Kubernetes with Telep...Java Meetup 23: 'Debugging Microservices "Remocally" in Kubernetes with Telep...
Java Meetup 23: 'Debugging Microservices "Remocally" in Kubernetes with Telep...
 
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
DevRelCon 2022: "Is Product Led Growth (PLG) the “DevOps” of the DevRel World"
 
Fall 22: "From Kubernetes to PaaS to... err, what's next"
Fall 22: "From Kubernetes to PaaS to... err, what's next"Fall 22: "From Kubernetes to PaaS to... err, what's next"
Fall 22: "From Kubernetes to PaaS to... err, what's next"
 
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
Building Microservice Systems Without Cooking Your Laptop: Going “Remocal” wi...
 
KubeCrash 22: Debugging Microservices "Remocally" in Kubernetes with Telepres...
KubeCrash 22: Debugging Microservices "Remocally" in Kubernetes with Telepres...KubeCrash 22: Debugging Microservices "Remocally" in Kubernetes with Telepres...
KubeCrash 22: Debugging Microservices "Remocally" in Kubernetes with Telepres...
 
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
JAX London 22: Debugging Microservices "Remocally" in Kubernetes with Telepre...
 
CloudBuilders 2022: "The Past, Present, and Future of Cloud Native API Gateways"
CloudBuilders 2022: "The Past, Present, and Future of Cloud Native API Gateways"CloudBuilders 2022: "The Past, Present, and Future of Cloud Native API Gateways"
CloudBuilders 2022: "The Past, Present, and Future of Cloud Native API Gateways"
 
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's NextKubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
 
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
Devoxx UK 22: Debugging Java Microservices "Remocally" in Kubernetes with Tel...
 
DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"
DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"
DevXDay KubeCon NA 2021: "From Kubernetes to PaaS to Developer Control Planes"
 
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
JAX London 2021: Jumpstart Your Cloud Native Development: An Overview of Prac...
 
Container Days: Easy Debugging of Microservices Running on Kubernetes with Te...
Container Days: Easy Debugging of Microservices Running on Kubernetes with Te...Container Days: Easy Debugging of Microservices Running on Kubernetes with Te...
Container Days: Easy Debugging of Microservices Running on Kubernetes with Te...
 
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
Canadian CNCF: "Emissary-ingress 101: An introduction to the CNCF incubation-...
 
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
MJC 2021: "Debugging Java Microservices Running on Kubernetes with Telepresence"
 
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
LJC 4/21"Easy Debugging of Java Microservices Running on Kubernetes with Tele...
 
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
GOTOpia 2/2021 "Cloud Native Development Without the Toil: An Overview of Pra...
 
HashiCorp Webinar: "Getting started with Ambassador and Consul on Kubernetes ...
HashiCorp Webinar: "Getting started with Ambassador and Consul on Kubernetes ...HashiCorp Webinar: "Getting started with Ambassador and Consul on Kubernetes ...
HashiCorp Webinar: "Getting started with Ambassador and Consul on Kubernetes ...
 

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 

JavaOne 2013 "Using Java to Build Java: Betterrev" BOF Session

  • 1. Using Java to Build Java Revealing the Power of Open Java Technologies Daniel Bryant, Tai-Dev Ltd (@taidevcouk) Steve Poole, IBM (@spoole167) London Java Community
  • 2. Tonight’s Agenda • OpenJDK – Java for the people! • Contributing to OpenJDK is easy… right? • The problem, and our planned solution • Progress so far… • Future work – we need your help! • This is a BOF session – We encourage questions and discussion!
  • 3. What is OpenJDK? • Is everyone familiar with the OpenJDK? – Free and open source implementation of Java SE – Reference Implementation for JDK since Java 7 – Code split into various Mercurial repos (jdk, Hotspot, nashorn…) • Has anyone built it locally? – On MS Windows? 
  • 4. Building OpenJDK • Java used extensively (and others… c++ etc) • Ensuring quality – We all Unit Test our code (…right?) – Essential for a platform/SDK like Java • Jtreg - “Regression Test Harness” – Think Unit (and Integration) Testing for the JDK – TestNG / JUnit / Shell scripts – Some good code coverage (some bad!)
  • 6. Contributing to OpenJDK is easy… • Sign OCA • Download the codebase • Find something interesting to work on – Bug database/tracker/Jira – Write new tests – Re-write old tests – Get inspiration from the mailing lists (50+!)
  • 7. Contributing to OpenJDK is easy…right? • Find a sponsor • Submit a patch – Include comments, code changes and jtreg tests – Generate a “webrev” – Wait for feedback… • This is a slow (and perhaps unintuitive) process – Why can’t I just fork and pull?
  • 8. Not quite social coding… http://docs.joomla.org/Dvcs
  • 10. The problems… • Doesn’t quite feel like “social coding” should… – You’re working on an island – Modifications not visible to the world – Discussions not close to code • Testing is difficult – Added complexity of working with a VM/SDK – Does patch works across all platforms/permutations? – Coding standards
  • 11. Our Goals • “To encourage contributions to OpenJDK" • Streamline the whole process – More social… • Ensure (and assist with) quality – Lack of test coverage, incorrect code style – Easier to test across platforms/permutations • Provide visible feedback for community
  • 13. Progress so far… • “Betterev” web app nearing completion – Built in Play 2 framework (not ideal…) • Event-driven architecture – Utilising Akka to build event-bus • Planning Test Farm implementation – Servers aren’t free! • Personal Challenges – Large scope needs large time commitments – Communication and organisation are vital!
  • 16. Future Work • Deploy alpha release – Complete web app (what to do with Play??) – Implement build farm (DevOps magic) • Start demonstrating this tool – Get some “buy in”… • LJC working hard to commit more time…
  • 17. Please do get involved! • We need passionate Java developers like you! – What’s better than helping to make contributing to your favourite language easier? • Find us on Bitbucket – https://bitbucket.org/adoptopenjdk/betterrev • Join our Google Group: – https://groups.google.com/forum/#!forum/betterrev
  • 18. Please do get involved! • Web Resources – http://openjdk.java.net/ – https://java.net/projects/adoptopenjdk/ – https://groups.google.com/forum/#!forum/adopt- openjdk – https://twitter.com/OpenJDK • Contact Us: – Daniel Bryant, Tai-Dev Ltd (@taidevcouk) – Steve Poole, IBM (@spoole167)
  • 19. A shout out to the LJC and IBM… • Thanks to the LJC for supporting this – Martijn Verburg – Richard Warburton – Mani Sarkar – Kaushal Singh – Edward Wong • Thanks also to IBM