SlideShare una empresa de Scribd logo
1 de 8
Descargar para leer sin conexión
Handle The Billion-Dollar
Mistake In Java
Help tools understand your code
Baptiste Mathus – MiPih
EclipseCon France 2014
Baptiste Mathus - EclipseCon France 2014 - @bmathus
http://batmat.net
Agenda
•Null – a billion-dollar mistake?
•@Nonnull, @Nullable… @WTF?
•Tooling
•Alternatives
Baptiste Mathus - EclipseCon France 2014 - @bmathus
The null concept: a billion-dollar mistake?
His creator, Sir Charles Antony Richard Hoare, says yes! :-)
[...] languages designs is serious scientific
engineering activity. And we should begin to
take responsibility for the mistakes our
users make in the use of our languages.
– Tony Hoare
Baptiste Mathus - EclipseCon France 2014 - @bmathus
Baptiste Mathus - EclipseCon France 2014 - @bmathus
Unexpected…
JSR305 : Annotations for software detections
Why @Nonnull… annotations?
« they express design decisions that may be implicit, or described in
documentation, but not easily available to tools »
Baptiste Mathus - EclipseCon France 2014 - @bmathus
Code talks, slides walks…
Baptiste Mathus - EclipseCon France 2014 - @bmathus
References
• Null References: The Billion Dollar Mistake
• http://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake-
Tony-Hoare
• Eclipse Help For Using Null Analysis
• http://eclip.se/2f
• JSR 308: Annotations on Java Types
• https://www.jcp.org/en/jsr/detail?id=308
• To go further: the Checker Framework
• http://types.cs.washington.edu/checker-framework/
• Experiment: runtime report of non-compliant calls (WIP)
• https://github.com/Batmat/jsr305reporter
Baptiste Mathus - EclipseCon France 2014 - @bmathus

Más contenido relacionado

Similar a Handle Billion-Dollar Mistake Java Null

Highcharts wrapper for Seaside by Mariano Martinez Peck
Highcharts wrapper for Seaside by Mariano Martinez PeckHighcharts wrapper for Seaside by Mariano Martinez Peck
Highcharts wrapper for Seaside by Mariano Martinez PeckFAST
 
Artificial intelligence training in hyderabad
Artificial intelligence training in hyderabadArtificial intelligence training in hyderabad
Artificial intelligence training in hyderabadArjun_Raghu
 
Disruption is Change is Future
Disruption is Change is FutureDisruption is Change is Future
Disruption is Change is FutureAnatole Tresch
 
Will your intranet be replaced with a (chat) bot?
Will your intranet be replaced with a (chat) bot?Will your intranet be replaced with a (chat) bot?
Will your intranet be replaced with a (chat) bot?Thomas Maeder
 
Horacio Gonzalez | Hey people, have you looked at Flutter yet? | Codemotion M...
Horacio Gonzalez | Hey people, have you looked at Flutter yet? | Codemotion M...Horacio Gonzalez | Hey people, have you looked at Flutter yet? | Codemotion M...
Horacio Gonzalez | Hey people, have you looked at Flutter yet? | Codemotion M...Codemotion
 
How Mistral AI raised €105m with no pitch deck or product
How Mistral AI raised €105m with no pitch deck or productHow Mistral AI raised €105m with no pitch deck or product
How Mistral AI raised €105m with no pitch deck or productPitch Decks
 
Mistral AI Strategic Memo.pdf
Mistral AI Strategic Memo.pdfMistral AI Strategic Memo.pdf
Mistral AI Strategic Memo.pdfOliver Molander
 
Horacio Gonzalez - Monitoring OVH - Codemotion Amsterdam 2019
Horacio Gonzalez - Monitoring OVH - Codemotion Amsterdam 2019Horacio Gonzalez - Monitoring OVH - Codemotion Amsterdam 2019
Horacio Gonzalez - Monitoring OVH - Codemotion Amsterdam 2019Codemotion
 
210 - Software Population Pyramids: The Current and the Future of OSS Develop...
210 - Software Population Pyramids: The Current and the Future of OSS Develop...210 - Software Population Pyramids: The Current and the Future of OSS Develop...
210 - Software Population Pyramids: The Current and the Future of OSS Develop...ESEM 2014
 
Human-in-the-loop in IoT Systems
Human-in-the-loop in IoT SystemsHuman-in-the-loop in IoT Systems
Human-in-the-loop in IoT SystemsFulvio Corno
 
Economics of Open Source Software
Economics of Open Source SoftwareEconomics of Open Source Software
Economics of Open Source SoftwareRay Toal
 
IRJET- A Survey to Chatbot System with Knowledge Base Database by using Artif...
IRJET- A Survey to Chatbot System with Knowledge Base Database by using Artif...IRJET- A Survey to Chatbot System with Knowledge Base Database by using Artif...
IRJET- A Survey to Chatbot System with Knowledge Base Database by using Artif...IRJET Journal
 
AI & Robotics PPT For Schools Students.pptx
AI & Robotics PPT For Schools Students.pptxAI & Robotics PPT For Schools Students.pptx
AI & Robotics PPT For Schools Students.pptxDEVENDRA SHRIVASH
 
What Every Programmer has to know about AI ?
What Every Programmer has to know about AI ?What Every Programmer has to know about AI ?
What Every Programmer has to know about AI ?BILL METANGMO TSOBZE
 
Bluemix Paris Meetup- #10 - Développer des applications cognitives avec IBM ...
Bluemix Paris Meetup- #10 - Développer des applications cognitives avec IBM ...Bluemix Paris Meetup- #10 - Développer des applications cognitives avec IBM ...
Bluemix Paris Meetup- #10 - Développer des applications cognitives avec IBM ...IBM France Lab
 
Bluemix Paris Meetup - session #10 Watson - Développer des applications cogn...
Bluemix Paris Meetup - session #10 Watson - Développer des applications cogn...Bluemix Paris Meetup - session #10 Watson - Développer des applications cogn...
Bluemix Paris Meetup - session #10 Watson - Développer des applications cogn...Yves LE CLEACH
 
CAA2014 Community Archaeology and Technology: Making community-driven, open s...
CAA2014 Community Archaeology and Technology: Making community-driven, open s...CAA2014 Community Archaeology and Technology: Making community-driven, open s...
CAA2014 Community Archaeology and Technology: Making community-driven, open s...Nicole Beale
 
APIs are for humans (defrag-con)
APIs are for humans   (defrag-con)APIs are for humans   (defrag-con)
APIs are for humans (defrag-con)Tyler Singletary
 
From Makerspace to MarketSpace - Trondheim MakerFaire 2015
From Makerspace to MarketSpace - Trondheim MakerFaire 2015From Makerspace to MarketSpace - Trondheim MakerFaire 2015
From Makerspace to MarketSpace - Trondheim MakerFaire 2015Jo Uthus
 

Similar a Handle Billion-Dollar Mistake Java Null (20)

Highcharts wrapper for Seaside by Mariano Martinez Peck
Highcharts wrapper for Seaside by Mariano Martinez PeckHighcharts wrapper for Seaside by Mariano Martinez Peck
Highcharts wrapper for Seaside by Mariano Martinez Peck
 
Artificial intelligence training in hyderabad
Artificial intelligence training in hyderabadArtificial intelligence training in hyderabad
Artificial intelligence training in hyderabad
 
Disruption is Change is Future
Disruption is Change is FutureDisruption is Change is Future
Disruption is Change is Future
 
Will your intranet be replaced with a (chat) bot?
Will your intranet be replaced with a (chat) bot?Will your intranet be replaced with a (chat) bot?
Will your intranet be replaced with a (chat) bot?
 
Horacio Gonzalez | Hey people, have you looked at Flutter yet? | Codemotion M...
Horacio Gonzalez | Hey people, have you looked at Flutter yet? | Codemotion M...Horacio Gonzalez | Hey people, have you looked at Flutter yet? | Codemotion M...
Horacio Gonzalez | Hey people, have you looked at Flutter yet? | Codemotion M...
 
Building Bots Using IBM Watson
Building Bots Using IBM WatsonBuilding Bots Using IBM Watson
Building Bots Using IBM Watson
 
How Mistral AI raised €105m with no pitch deck or product
How Mistral AI raised €105m with no pitch deck or productHow Mistral AI raised €105m with no pitch deck or product
How Mistral AI raised €105m with no pitch deck or product
 
Mistral AI Strategic Memo.pdf
Mistral AI Strategic Memo.pdfMistral AI Strategic Memo.pdf
Mistral AI Strategic Memo.pdf
 
Horacio Gonzalez - Monitoring OVH - Codemotion Amsterdam 2019
Horacio Gonzalez - Monitoring OVH - Codemotion Amsterdam 2019Horacio Gonzalez - Monitoring OVH - Codemotion Amsterdam 2019
Horacio Gonzalez - Monitoring OVH - Codemotion Amsterdam 2019
 
210 - Software Population Pyramids: The Current and the Future of OSS Develop...
210 - Software Population Pyramids: The Current and the Future of OSS Develop...210 - Software Population Pyramids: The Current and the Future of OSS Develop...
210 - Software Population Pyramids: The Current and the Future of OSS Develop...
 
Human-in-the-loop in IoT Systems
Human-in-the-loop in IoT SystemsHuman-in-the-loop in IoT Systems
Human-in-the-loop in IoT Systems
 
Economics of Open Source Software
Economics of Open Source SoftwareEconomics of Open Source Software
Economics of Open Source Software
 
IRJET- A Survey to Chatbot System with Knowledge Base Database by using Artif...
IRJET- A Survey to Chatbot System with Knowledge Base Database by using Artif...IRJET- A Survey to Chatbot System with Knowledge Base Database by using Artif...
IRJET- A Survey to Chatbot System with Knowledge Base Database by using Artif...
 
AI & Robotics PPT For Schools Students.pptx
AI & Robotics PPT For Schools Students.pptxAI & Robotics PPT For Schools Students.pptx
AI & Robotics PPT For Schools Students.pptx
 
What Every Programmer has to know about AI ?
What Every Programmer has to know about AI ?What Every Programmer has to know about AI ?
What Every Programmer has to know about AI ?
 
Bluemix Paris Meetup- #10 - Développer des applications cognitives avec IBM ...
Bluemix Paris Meetup- #10 - Développer des applications cognitives avec IBM ...Bluemix Paris Meetup- #10 - Développer des applications cognitives avec IBM ...
Bluemix Paris Meetup- #10 - Développer des applications cognitives avec IBM ...
 
Bluemix Paris Meetup - session #10 Watson - Développer des applications cogn...
Bluemix Paris Meetup - session #10 Watson - Développer des applications cogn...Bluemix Paris Meetup - session #10 Watson - Développer des applications cogn...
Bluemix Paris Meetup - session #10 Watson - Développer des applications cogn...
 
CAA2014 Community Archaeology and Technology: Making community-driven, open s...
CAA2014 Community Archaeology and Technology: Making community-driven, open s...CAA2014 Community Archaeology and Technology: Making community-driven, open s...
CAA2014 Community Archaeology and Technology: Making community-driven, open s...
 
APIs are for humans (defrag-con)
APIs are for humans   (defrag-con)APIs are for humans   (defrag-con)
APIs are for humans (defrag-con)
 
From Makerspace to MarketSpace - Trondheim MakerFaire 2015
From Makerspace to MarketSpace - Trondheim MakerFaire 2015From Makerspace to MarketSpace - Trondheim MakerFaire 2015
From Makerspace to MarketSpace - Trondheim MakerFaire 2015
 

Último

cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringHironori Washizaki
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 

Último (20)

cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Machine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their EngineeringMachine Learning Software Engineering Patterns and Their Engineering
Machine Learning Software Engineering Patterns and Their Engineering
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 

Handle Billion-Dollar Mistake Java Null

  • 1. Handle The Billion-Dollar Mistake In Java Help tools understand your code Baptiste Mathus – MiPih EclipseCon France 2014
  • 2. Baptiste Mathus - EclipseCon France 2014 - @bmathus http://batmat.net
  • 3. Agenda •Null – a billion-dollar mistake? •@Nonnull, @Nullable… @WTF? •Tooling •Alternatives Baptiste Mathus - EclipseCon France 2014 - @bmathus
  • 4. The null concept: a billion-dollar mistake? His creator, Sir Charles Antony Richard Hoare, says yes! :-) [...] languages designs is serious scientific engineering activity. And we should begin to take responsibility for the mistakes our users make in the use of our languages. – Tony Hoare Baptiste Mathus - EclipseCon France 2014 - @bmathus
  • 5. Baptiste Mathus - EclipseCon France 2014 - @bmathus Unexpected…
  • 6. JSR305 : Annotations for software detections Why @Nonnull… annotations? « they express design decisions that may be implicit, or described in documentation, but not easily available to tools » Baptiste Mathus - EclipseCon France 2014 - @bmathus
  • 7. Code talks, slides walks… Baptiste Mathus - EclipseCon France 2014 - @bmathus
  • 8. References • Null References: The Billion Dollar Mistake • http://www.infoq.com/presentations/Null-References-The-Billion-Dollar-Mistake- Tony-Hoare • Eclipse Help For Using Null Analysis • http://eclip.se/2f • JSR 308: Annotations on Java Types • https://www.jcp.org/en/jsr/detail?id=308 • To go further: the Checker Framework • http://types.cs.washington.edu/checker-framework/ • Experiment: runtime report of non-compliant calls (WIP) • https://github.com/Batmat/jsr305reporter Baptiste Mathus - EclipseCon France 2014 - @bmathus