how the jcp works & adopt-a-program update for paraguay jug

64
1 Participate in the Future of Java - How the JCP Works & Adopt-a-JSR Program Overview for Paraguay JUG Heather VanCura December 2014 http://jcp.org Twitter @heathervc

Upload: heather-vancura

Post on 12-Jul-2015

118 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

1

Participate in the Future of Java - How the JCP Works & Adopt-a-JSRProgram Overview for Paraguay JUG

Heather VanCura

December 2014http://jcp.org

Twitter @heathervc

Page 2: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

2

Agenda

• What is the JCP Program• How & Why to Participate• Adopt-a-JSR Program

Page 3: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

3

How the JCP works

Page 4: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

4

• Celebrating 15 years!

Page 5: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

5

For the community, by the community

• The Java Community Process (JCP) is the open, inclusiveprocess to develop and revise Java technology specifications(JSRs), reference implementations (RI), and technologycompatibility kits (TCK).

● The JCP program now has over 800 corporate,individual and Java User Group (JUG) members.

● More than 370 Java technology specifications are indevelopment in the JCP program; ~two thirds havereached Final Release.– Java EE 7 Final Release 2013.– Java SE 8 Final Release 2014.– Java ME 8 Final Release 2014.

Page 6: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

6

Deliverables

Page 7: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

7

How we do it

• Java Specification Requests (JSRs)– A JSR is a single version of a Java specification.

– JSRs are led by a community member (the SpecLead), with a group of interested members (theExpert Group) helping with the day-to-daydecisions and work.

– Any community member can submit and lead a JSR.

• Each Expert Group must deliver:– The Specification– The Reference Implementation (RI)– The Technology Compatibility Kit (TCK)

Page 8: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

8

Compatibility testing

Page 9: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

9

The compatibility triangle

• Specification

ReferenceImplementation

Can you build animplementation?

Is the specificationunambiguous?

Is the TCK correct?Does the RI conform?

TechnologyCompatibility Kit

Page 10: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

10

The JSR development cycle

Page 11: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

11

Organization

Page 12: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

12

Roles

• JCP Chair– Leads the organization and manages the PMO.

• Program Management Office (PMO)– Manages day-to-day operations of the organization.

• Executive Committee– Define JCP governance, processes, and contractual terms of

membership.– Vote on JSRs at defined stages through the process.

• Expert Groups– Create JSRs (write the spec, develop the RI and TCK.)

• Members– Review specs, may participate in Expert Groups, vote in

Executive Committee elections.

Page 13: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

13

The Executive Committee

• Executive Committee (EC):– One EC for Java ME, Java SE and Java EE together; EC

combined in 2013.– Annual elections reconfirm or replace one half of the

members.

• EC meets ~monthly by phone, 3 times a year face-to-face.• EC meeting minutes & materials are public.

– See http://jcp.org/en/resources/EC_summaries.

• We hold two public teleconferences and one public f2f meetingeach year.

• We have a public mailing list for feedback.– Sign up at http://java.net/projects/jcp-ec/lists.

Page 14: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

14

Who are the members?

• Membership distribution by type:– 88% individual.– 8% corporate.– 4% non-profit.

• Membership distribution by location:– 47% North America– 34% Europe and the Russian Federation– 13% Asia and the Middle East– 6% South America

Page 15: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

15

Levels of participation

• Public Observer.• Members.

• Review specs, may participate in Expert Groups, vote inExecutive Committee elections; flexible time commitment.

• Expert Group members.• Create JSRs (write the spec, develop the RI and TCK);

expert in field, high time commitment, help drive thedirection of the JSR; moderate time commitment.

• Specification Leads.• Responsible for leading the JSR & Expert Group (EG),

delivery of spec, RI & TCK; a leading expert in area ofJSR; considerable time commitment and recognition.

• Executive Committee members.• Define JCP governance, processes, and contractual terms

of membership. Vote on JSRs at defined stages through theprocess. Moderate time commitment.

Page 16: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

16

Legal framework and governance

• Java Specification Participation Agreement (JSPA)• A legal contract between members and Oracle.• Addresses Intellectual Property (IP) grants and the terms

under which the spec, RI, and TCK should be licensed.• http://www.jcp.org/aboutJava/communityprocess/JSPA2.pdf.

• The Process Document• Defines the governance of the organization.• Defines the processes that are used to submit define,

develop, review, approve, and maintain specifications.• Defines the obligations to produce an RI and TCK.• http://jcp.org/en/procedures/jcp2.

Page 17: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

17

Constitutional change (JCP.next)

Page 18: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

18

JCP.next

• A series of four JSRs:• JSR 348: Towards a new version of the Java Community

Process completed in October 2011.• This JSR focused on relatively simple changes that we were able

to implement within about six months.

• JSR 355: Executive Committee Merge completed in October2013.

• JSR 358: A major revision of the Java Community Process isin progress now.• This JSR will implement more complex changes and will

modify the JSPA as well as the Process Document.• JSR 364: Broadening JCP Membership is in progress now.

• This JSR will add new membership categories and enableincreased participation in the JCP.

Page 19: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

19

Results so far

• JSR 348 introduced version 2.8 of the Process.• JSR 355 introduced version 2.9 of the Process, merged the

two ECs into one EC.• It is now easier for JCP members and the public to observe

and participate in the work of Expert Groups.• Transparency is the default mode of operation.• All new JSRs will be bound by the new rules.

• Existing JSRs voluntarily adopt them—almost all ActiveJSRs have.

• Now we need your participation!

Page 20: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

20

That was easy!

Page 21: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

21

JSR 358: the lawyers will get involved

Page 22: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

22

JCP.next.4: JSR 364

Page 23: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

23

JSR 364, Broadening JCP Membership

• This JSR was spun-off from JSR 355 in order to implementmembership-related changes more quickly.

• Goal: encourage more individuals to join and participate in theJCP while ensuring that we have appropriate IP commitmentsfrom all members.

• New Affiliate membership class for individuals with a muchsimpler membership agreement.

• No lawyers and no employer approval required.

• New Partner membership class for Java User Groups that arenot legal entities.

• Free membership for corporations.• In progress now – expected completion in early 2015.

Page 24: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

24

• Public JSR schedule--current, and updated regularly. • Public read and/or write page/wiki for the JSR.• Public discussion for the work of the JSR (archived).• Public feedback mechanism.• Public issue tracker. • One EC votes on all JSRs 3x in life of JSR with public

results.• All JSRs have 3 open public review periods (30 days).

● Release early and often!

JCP is now more open than before

Page 25: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

25

Get involved!

Page 26: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

26

Why should you get involved?

• To move the entire Java ecosystem forward.● Help define the future of Java – best way to predict it.

• To speed up the standards-development process.• To become part of the solution as opposed to staying

silent.• To be at the forefront of new technology.• To ensure that Java standards are practical and relevant for

the real world as opposed to the ivory tower.• We need expert input from end-users and developers.

• To ensure that Java standards are truly global.• We need expert input from non-English speakers.

Page 27: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

27

• As a corporation:• Influence over the technologies that drive your market.• Savings - it's cheaper than developing everything yourself.• Opportunities for your developers.• Increase in the size of your market.• Competitive advantage (ship new products faster.)

• As an individual:• Acquire knowledge: Learn from experts, early access.• Better specifications based on real world experience. • Experience and skill development.• Professional Visibility: Curriculum, articles, presentations.• Fame and fortune – grow your reputation and network.

What do you get?

Page 28: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

28

Join the JCP

• Join the JCP program as a corporation, non-profit,orindividual member.• Free for non-profits, Java User Groups, and individuals!

• See http://jcp.org/en/participation/membership2• Register for an account on JCP.org to become a public

observer participant.• Download, fill out, and scan, fax or mail the JSPA form to

the JCP Program Office to become a JCP Member.

Page 29: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

29

• Download and review the latest version of thespecification.

● Available from the JSR page or the correspondingjava.net or GitHub project.

● You don't need to necessarily review the entirespecification; can focus on specific sections.

• Download and review the javadocs for clarity andcompleteness—comment.

• Build sample applications using the implementations.• Explore integration of one/multiple technologies with your

existing applications.• File bugs on the corresponding spec or RI project.

Suggestions for Feedback

Page 30: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

30

How will you participate?

• As an individual – OK.• As part of a team –

better.• Work through your

JUG or employer.• Help each other.• Teach each other.• Work with each

other.

Page 31: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

31

JUG members ~ 50 JUGs

BeJUG (Belgium)

BreizhJUG (Brittany)

CeJUG (Brazil)

Central Ohio JUG (USA)

Connecticut JUG (USA)

Detroit JUG (USA)

Duchess (Women)

FASOJUG (Burkina Faso)

Green Tea JUG (China)

Houston JUG (USA)

iJUG e.V. (Germany)

IndiJava (India)

Japan JUG

Java Student User Group (Vienna)

Java Web User Group (London)

Jozi JUG (South Africa)

JUG-AFRICA

JUG Chennai (India)

JUG Cologne (Germany)JUG-EG (Egypt)JUGF (Germany)JUG IndonesiaJUG-MK (Macedonia)JUG-RU (Russia)JUG-USALondon Java Community (UK)Malaysia-JUGMoroccoJUGNashville JUG (United States)Oklahoma City JUG (USA)Rio JUG (Brazil)Riviera JUG (France)Ruhrjug (Germany)Silicon Valley JavaFX User Group (USA)SouJava (Brazil)Utah JUG (USA)Vancouver Island JUG (Canada)

Page 32: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

32

Adopt a JSR!

Thank you and

Page 33: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

33

What is it?

• A JUG-lead initiative to improve Java standards.• Groups of JUG members work on JSRs.• See http://java.net/projects/adoptajsr for full details.

Page 34: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

34

2 Way Street

Page 35: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

35

How Will it Help your JUG?

• Receive attention from industry.● Big vendors, local companies see the value of all your

efforts.

• Become more professional.● Participation requires organization and commitment—

this helps promote focus in your group.

• Attract people.● Developers working together has a global impact, and

reaps personal benefits.

• Collaborate with other JUGs.● Be part of something larger!

Page 36: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

36

JUGS Around the World!

Page 37: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

37

● 28+ JUGS participating:● South America: Campinas JUG (Brazil), ceJUG (Brazil),

GOJava (Brazil), SouJava (Brazil), Brasilia, DF JUG(Brazil), GUJ Londrina (Brazil) Peru JUG, GuadalajaraJUG, GUJavaSC (Brazil).

● North America: Chicago JUG, Silicon Valley JUG,Houston JUG (USA), Toronto JUG (Canada).

● Europe: London Java Community (UK), BeJUG(Belgium), Madrid JUG (Spain), JUG Cologne(Germany), Istanbul JUG (Turkey).

● Asia: Indonesia JUG, JUG JogLoSemar (Indonesia),Hyderabad JUG (India), JUG Chennai (India).

● Africa & Middle East: EGJUG (Egypt), Morocco JUG,Faso JUG (Africa), Jozi JUG (South Africa), Mbale(Uganda).

Adopt-a-JSR Adopters

Page 38: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

38

● 30 JSRs 'adopted':●

Java SE: JSR 308, 310, 335, 337.

● Java EE 7 (& now Java EE JSRs coming): 107, 299, 338, 339,342, 343, 344, 345, 346, 349, 352, 353, 356.

● JCP.Next: JSR 348, 355, 358, 364.

● Misc.: JSR 321, 331, 347, 354.

● Most popular: JSR 339, Java API for RESTful Web Services2.0, JSR 344, JavaServer Faces 2.2 & JSR 353, Java API forJSON Processing, being adopted by at least 5 JUGs.

Adopt-a-JSR Adopters

Page 39: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

39

• BeJUG: JSR 356, Java API for WebSocket - Hack day in March2013/developed Tic-Tac-Toe game included in Java EE 7 SDK.

• Chennai JUG: JSR 338, Java Persistence 2.1, JSR 344, JSF 2.2,JSR 352, Batch, JSR 353, JSON, JSR 356, WebSocket - UrbanTraveler application; JSR 354, Money & Currency API.

• London Java Community: JSR 310, Date and Time API and JSR335, Lambda Expressions (Martijn Verburg); myriad hack days,talks and events organized!

• SouJava: JSRs 310, 339, 344, and other JSRs; talks, books,articles, classes, code dojos:

● http://soujava.org.br/servicos/adopt-a-jsr/

.

Use Cases of Adopters

.

Page 40: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

40

• Java EE JSRs have specific requests from Adopt-a-JSRparticipants.

● http://glassfish.java.net/adoptajsr/

• JSR 236, Concurrency Utilities for Java EE.• JSR 339, Java API for RESTful Web Services.• JSR 343, Java Message Service 2.0.• JSR 344, JavaServer Faces 2.2.• JSR 345, Enterprise JavaBeans 3.2 • JSR 346, Contexts and Dependency Injection for Java EE 1.1.• JSR 352, Batch Applications for the Java Platform.• JSR 353, Java API for JSON Processing.

• JSR 356, Java API for WebSocket.

Java EE JSRs - specific requests

Page 41: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

41

• Java User Group Leaders and Members– Experience with Adopt-a-JSR

• Gain knowledge• Experience with new technologies• Network opportunities• Make better standards

Adopter Experience

Page 42: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

42

Java EE 8 Community Survey

Glassfish.org/survey

Page 43: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

43

Java EE 8 Possibilities

• Web Standards/HTML5 Alignment– HTTP2, SSE, JSON-B, action-oriented web framework

• Cloud– Simple security providers, multitenancy, REST

management/monitoring• CDI Alignment

– CDI 2, EJB services outside EJB, security interceptors, EJBpruning

• Enterprise– JCache, Configuration, JMS

• Java SE 8 alignment

Page 44: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

44

Java EE 8 JSR Status

• Java EE 8 (JSR 366)• CDI 2 (JSR 365)• JSON-B (JSR 367)

• JMS 2.1 (JSR 368)• Servlet 4 (JSR 369)• JAX-RS 2.1 (JSR 370)• MVC (JSR 371)• JSF 2.3 (JSR 372)

• Security (JSR 375)• Java EE Management

(JSR 373)• JSON-P 1.1 (JSR 374)

• WebSocket 1.x • JTA 1.3• Batch 1.1• JPA 2.2• Concurrency 1.1

Already Here Forthcoming/

Page 45: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

45

Adopt-a-JSR for Java EE 8

• Make Java EE 8 the most community driven platform to-date!• Share ideas and feedback, possibly by entering issues in public

issue trackers.• Follow expert group discussions and chime in if needed.• Read early versions of specifications and Javadocs.

• Try writing applications using early builds of the referenceimplementation.

• Write or speak about the technology.• Encourage others to participate.• A number of JUGs have already signed up!

http://glassfish.org/adoptajsr/

Page 46: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

46

• For early stages of Java EE 8 JSRs, some tasks forAdopt-a-JSR participants:

– Given a collection of JIRA issues• Ensure they have the right metadata• Ensure there is a SSCCE if applicable

– Short, Self-contained, Correct, Compatible Example

– Define use cases for potential new features– Proofread portions of the specification– Advocate for “non-supported” platforms

Suggestions in early stages

Page 47: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

47

• Join the JCP as a JUG.● Not required, but recommended. You need to do this in order to

contribute code, and you get voting rights and other benefits withthis membership!

• Join the Adopt-a-JSR project:● http://java.net/projects/adoptajsr/pages/Home● Subscribe to [email protected] (archive).

• Update the wiki to indicate your interest in a particular JSR and create awiki page to provide updates on your plans/progress.

• Communicate directly with the Specification Lead/Expert Group (linkson jcp.org) or the java.net users alias for the specification.

• Mail your JUG members to gather interest.• Outline what the JSR is and why the JUG should get involved; identify

areas that you want to work on; coordinate this with the Spec Lead • Share success on the wiki, list, twitter, etc.

How to get started on Adopt-a-JSR

Page 48: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

48

Java.net wiki

You expanded wiki into eight languages: Arabic, Chinese, English,French, German, Portuguese, Spanish, Turkish...you choose who willtranslate next language!

Page 49: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

49

Translated wiki - francais

Page 50: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

50

List of Active JSRs

Page 51: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

51

Enter activity in the matrix

Page 52: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

52

JSR page example

List of Active JSRs (posting in last 12 months): http://jcp.org/en/jsr/all?status=Active&activeMonths=12 .

Page 53: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

53

Java EE JSRs

Page 54: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

54

Jira example

Page 55: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

55

Share Success

Page 56: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

56

Add resources to GitHub

Page 57: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

57

How can you help - easy

• Help to moderate the mailing lists; steer towardshelpful conversations

• Evangelize the JSR through social media, bloggingor lightning talks.• Give a talk at your user group at events, or online.

• Help with documentation.• Translate into your native language.

• Help to maintain an FAQ/Wiki.• Improve project infrastructure & JSR visibility.

• Help with Search Engine Optimization of website.• Ensure that downloads, mailing lists, issue trackers

are easy to find.

Page 58: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

58

How else can you help - moderate

• Organize Hack days.• Test the early RI builds; use them to find pain points,

report bugs, suggest feature enhancements.● Help triage issues; reproduce issues, erase/merge

duplicates, set priorities/categories etc.

• Give feedback on design; discuss issues and deliverfeedback, think about how you would use the JSR as adeveloper.

• Help build the RI; get coding with the actualimplementation of the spec or build sample applications.

• Help build the TCK; all implementations must pass thetest suite – this is a great way to gain test experience.

Page 59: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

59

• The specification lead and the Expert Group make decisions onincorporating the feedback.

• For specifications in Public Drafts, new feature requests maynot be considered for this release. For specifications in EarlyDraft, new features may be accepted if they are within theexisting scope. If new features are not accepted for this release,then they may be considered for the next release.

• Multiple JUGs can and should collaborate on a particular JSR.There is always plenty of work and going through the materialmultiple times only makes it that more better.

• When communicating with the EG on mailing lists, include"Adopt-a-JSR" in the subject line.

• When filing a JIRA issue, use "adoptajsr" tag.• Use twitter hashtag #adoptajsr to give updates on progress,

cc@jcp_org.

Guidelines for Feedback

Page 60: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

60

Page 61: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

61

• Public JSR schedule--current, and updated regularly. • Public read and/or write page/wiki for the JSR.• Public discussion for the work of the JSR (archived).• Public feedback mechanism.• Public issue tracker. • One EC votes on all JSRs 3x in life of JSR with public

results.• All JSRs have 3 open public review periods (30 days).

– Release early and often!

JCP is now more open than before

Page 62: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

62

Putting the community back into the JCP

• No more barriers to participation.• All members of the Java community can participate:

• In the implemenation of the platform throughOpenJDK and GlassFish.

• In the evolution of the platform through the JCPand Adopt-a-JSR programs.

• If you care about the future of Java...participate!

Page 63: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

63

Resources: find out more

•JCP & Adopt-a-JSR online meeting-materials and recordingsavailable: http://jcp.org/en/resources/multimedia

•Follow the JCP online: http://JCP.org– Twitter @jcp_org – blogs.oracle.com/jcp– Facebook: Java Community Process

•Adopt-a-JSR online:http://adoptajsr.java.net.– Twitter @adoptajsr– Facebook: AdoptaJSR– [email protected] - the global mailing list – IRC: #adoptajsr channel on irc.freenode.net– GitHub: https://github.com/Adopt-a-JSR

Page 64: How the JCP Works & Adopt-a-Program Update for Paraguay JUG

64

thank you, dziekuje, tak, tack,merci, grazie, gracias, danke,obrigado, bedankt, kiitos, xie xie,ありがとう .