Transcript Maven 2.0

Adopt a JSR
(Full Presentation)
Martijn Verburg (@karianna)
James Gough (@JavaJimLondon)
On behalf of the LJC and the global JUG program
Thanks to SouJava for lots of extra valuable input into this presentation!
Slide design by http://www.kerrykenneally.com
1
Acronym Soup
 JUG - Java User Group
 JSR - Java Specification Request
 JCP - Java Community Process
 RI - Reference Implementation
 TCK - Technology Compatibility Kit
2
What is the Adopt a JSR program?
 See http://adoptajsr.org for full details
 A JUG lead initiative to improve standards in the Java ecosystem
 Groups of JUG members work on Java Specification Requests
3
Why should the JUGs get involved? - 1
 To move the entire Java ecosystem forward
– To become part of the solution as opposed to staying silent
– Help define the future
 To be at the forefront of new technology
 To ensure that ivory tower standards do not occur
 To make sure the useful libraries and APIs get built
 To boost the careers of JUG members
– Gain new technical and community skills and much more!
4
Why should the JUGs get involved? - 2
 To demystify the JCP and the standards process
– Get day to day developers knowledgable about the process
 To acquire new knowledge
– Gain valuable technical skills
– Learn a brand new part of the Java ecosystem
 To gain competitive advantage
– Be the early experts in a new standard
 Gain more members
– Helps build long lasting activities for the JUG
– Turns passive members into active ones!
 It’s fun!
5
How does it help the Standards?
 Standards get earlier feedback
– Leading to more developer friendly APIs
– Standards get 'end user/developer' expert input
 Standards get developed more quickly, JUGs can help build
– Reference Implementations (RI)
– Technical Compatibility Kits (TCK)
 JUGs can also help with management of the JSR
–
–
–
–
–
Managing mailing lists
Triaging issues
Testing
Evangelism
+ more!
6
Who’s involved already?
 See http://adoptajsr.org for up to date details.
–
–
–
–
–
The London Java Community (UK)
SouJava (Brazil)
GoJava (Brazil)
Houston JUG (USA)
Chennai JUG (India)
 + Several more starting out
7
What difference have they really made?
 SouJava helped push through JSR-348
–
–
–
–
Reforming the Java Community Process (JCP)
Open mailing lists
Public Issue trackers
Standards reviewed early and often
 The LJC is helping make sure JSR-310 gets through
–
–
–
–
Date and Time for Java 8
Focussed on building the Technology Compatibility Kit (TCK)
~40% by Dec 2011
Ensures that you get the new Date and Time API for Java 8
 Houston JUG is working on Data Grids
– Vital technology for the cloud space
– Avoids vendor lock-in
8
How do I join?
 Contact your local JUG leader
 OR
 Go to http://adoptajsr.org
– Follow the simple set-up steps there
9
An Important Note
 Your enthusiasm and skill sets are what JSRs need!
 But your efforts should have focus
– Sometimes well meaning enthusiasm can be counter productive
– e.g. We’re not all language designers!
– However, there is always a truly productive way to help a JSR
 Don’t forget, co-ordinate and communicate your efforts
– With the Spec Lead and the Expert Group
– With other JUGs
– http://adoptajsr.org has details on how you can do this
10
Steps to take after joining
 Find fellow members in your JUG to work with
– A particular JSR might already have members in your JUG working on
it
– Double check the matrix at http://adoptajsr.org
 Join the relevant JSR mailing list
 We encourage people/groups down two paths
– Scratch an itch. Work on the part of the JSR you’re interested in!
– Spec lead guidance. Simply ask the Spec lead what needs done!
 The next few slides have suggested ideas
 Don’t forget to have fun!
11
Starter Levels to get involved at - 1
 Test the early RI builds
– Use them to find pain points (“It’s just too laborious to construct X”)
– Report bugs (“Arggh NPE!!”)
– Suggest feature enhancements (“A convertX method would help”)
 Help triage issues
– Reproduce issues
– Erase/merge duplicates
– Set priorities/categories etc
 Give feedback on design
– Discuss issues with your JUG and deliver feedback
– Think about how you would use the JSR as a
– day to day developer
12
Starter Levels to get involved at - 2
 Help moderate the mailing lists
– Help the community self police towards helpful conversations
– Pour water on flame wars etc
 Help evangelise the JSR
– Social media (Twitter, Facebook et al)
– Blogging (write a post about the JSR)
– Lightning talks (give a talk at your user group or online!)
 Improve project infrastructure and JSR visibility
– Help setup canned hosting (java.net, GitHub etc)
– Help with SEO of website
– Ensure downloads, mailing lists, issue trackers
are easy to find
– Help maintain their FAQ/Wiki
13
Intermediate Levels to get involved at
 Help get the JSR to JSR-348 compliance
–
–
–
–
Is there a public issue tracker?
Does the EG communicate on a public mailing list?
Is the EG balanced?
Is the Std a coming together of competing implementations?
 Help build the RI
– Get coding with the actual implementation of the spec!
 Help build the TCK
– All implementations must pass this crucial test suite
– Great way to gain real TDD/Unit/Integration test experience
14
Advanced Levels to get involved at
 Join the Expert Group (EG)
–
–
–
–
You need to be an expert in this technology
EG members are central to pushing the JSR forwards
High time commitment
Lots of personal, community and career benefits
 Become the Spec Lead for a JSR
– You need to be a leading expert in a particular technology
– Considerable time commitment
– International recognition for your work
 Join the Executive Committee
– High time commitment, influence all standards
15
Starting an ‘Adopt a JSR’ group
 Set up a wiki page to co-ordinate your activities
– e.g. http://java.net/projects/ljc-london-jug/pages/JSR-310
– Link that into the matrix at http://adoptajsr.org
 Contact the Spec Lead / EG
 Mail your JUG members to gather interest
– Outline what this JSR is and why the JUG should get involved
 Identify areas that you and your members want to work on
– Best to co-ordinate this with Spec Lead
16
Lets change the Java ecosystem!
 Thanks for reading!
– The acronyms become familiar, we promise!
 We really hope you’ll consider joining us
– Duke would love your help!
 http://adoptajsr.org for full details
– Join the Mailing list
– Join the IRC channel
 Thanks!
– Martijn Verburg (@karianna)
– James Gough (@JavaJimLondon)
17