05/06/11
Deepak Bhole
Sr. Software Engineer, Red Hat Inc.
May 5
th
2011
Java - From OpenJDK to Red Hat Enterprise Linux
and What Lies Ahead
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's role
●The future of Java
●
Version 7
●Version 8
●Questions
Agenda
Persistent index will always show current point
This presentation is designed to be used with audio as a primary mode of content delivery. If you have downloaded it,
see notes section for rough notes on applicable slides (draft quality). For pdf, it should be at the end of the slide deck.
History of Java
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's role
●The future of Java
●
Version 7
●Version 8
●Questions
●
Timeline:
1997
Java 1.1
Java 1.2
1998
2002
Java 1.4
Java 5
2004
Java 6
2006
2011
Java 7
1999
LibGCJ
Classpath
2003
GCJ
Plugin
2006
Java
sources
GPLd
2012?
Java 8
+
GCJ stands for
G
NU
C
ompiler for
J
ava
OpenJDK
Community
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●What?
●vs JDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
Apple
+
JDK stands for
J
ava
D
evelopment
K
it
OpenJDK vs JDK (current)
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●What?
●vs JDK
●Current
●Future
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
JDK
OpenJDK
●
HotSpot Virtual machine
●
Interpreter
●
JIT (
J
ust
I
n
T
ime) compiler
●
Tools (javac, javadoc, etc.)
●
Class libraries
●
Public API (
A
pplication
P
rogramming
I
nterface)
●
Deployment tools
OpenJDK vs JDK (future)
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●What?
●vs JDK
●Current
●Future
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
JDK
OpenJDK
●
HotSpot Virtual machine
●
Interpreter
●
JIT compiler
●
Tools (javac, javadoc, etc.)
●
Class libraries
●
Public API
●
Deployment tools
●
Serviceability tools
OpenJDK6 vs JDK6
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●What?
●vs JDK
●6
●7
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
JDK6 (closed)
OpenJDK (7)
OpenJDK6
JDK7
Proprietary
Semi-open (development in open + some proprietary patches)
Open
OpenJDK7 vs JDK7
JDK
OpenJDK
●
HotSpot Virtual machine
●
Interpreter
●
JIT compiler
●
Tools (javac, javadoc, etc.)
●
Class libraries
●
Public API
●
Deployment tools
●
Serviceability tools?
95%
+
5%
+
+
As heard at JavaOne
Closed
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●What?
●vs JDK
●6
●7
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
What is IcedTea?
IcedTea
…...
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●What?
●Why?
●IcedTea-Web
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
Image sources:
http://www.openclipart.org/detail/22436
http://www.openclipart.org/detail/22712
Some of the contributors...
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●What?
●Who is involved?
●Why?
●IcedTea-Web
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
(Indirectly through OpenJDK)
All logos are copyright by their respective owners
Some of the users...
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●What?
●Who is involved?
●Why?
●IcedTea-Web
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
Why was IcedTea created?
(For the first release...)
Build
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●What?
●Why?
●IcedTea-Web
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
Image sources:
To fix the build...
Build
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●What?
●Why?
●IcedTea-Web
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
Image sources:
To fill what's missing...
JDK
●
HotSpot Virtual machine
●
Interpreter
●
JIT compiler
●
Tools (javac, javadoc, etc.)
●
Class libraries
...
●
Deployment tools
●
Deployment tools
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●What?
●Why?
●IcedTea-Web
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
To back patch fixes...
JDK
●
HotSpot Virtual machine
●
Interpreter
●
JIT compiler
●
Tools (javac, javadoc, etc.)
●
Class libraries
...
●
Deployment tools
●
Deployment tools
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●What?
●Why?
●IcedTea-Web
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
To support additional architectures...
JDK
●
HotSpot Virtual machine
●
Interpreter
●
JIT compiler
●
Tools (javac, javadoc, etc.)
●
Class libraries
...
●
Deployment tools
●
Deployment tools
Shark/Zero
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●What?
●Why?
●IcedTea-Web
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
Implemented independently
Image sources:
http://www.openclipart.org/detail/132973
To support additional tools...
JDK
●
HotSpot Virtual machine
●
Interpreter
●
JIT compiler
●
Tools (javac, javadoc, etc.)
●
Class libraries
...
●
Deployment tools
●
Deployment tools
Implemented independently
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●What?
●Why?
●IcedTea-Web
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
Fixes (with OpenJDK)
I found a bug, here
is the patch!
Thanks! It will be in
the next update
whenever it
happens*
* OpenJDK has a slower release cycle and it is not set in advance
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●What?
●Why?
●IcedTea-Web
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
Image sources:
Fixes (with IcedTea)
I found a bug,
here is the
patch!
Thanks! It will be in
the next update
soon*!
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●What?
●Why?
●IcedTea-Web
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
Fixes (with IcedTea)
I found a bug,
here is the
patch!
Thanks! It will be in
the next update
soon!
Here is a nice
patch from Mr.
Green.
Thanks! It will be
in the next update!
…...
No problem! We will
maintain it locally till then.
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●What?
●Why?
●IcedTea-Web
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
Co-ordinated security
JDK
OpenJDK
IcedTea
Distros
Update
planned
Patches
sent
Distros
notified
Public release
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●What?
●Why?
●IcedTea-Web
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
Not in code base
In code base, not public
In code base, public
IcedTea-Web
Web Browser Plugin
Web Start (javaws)
Settings tool (itweb-settings)
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●What?
●Why?
●IcedTea-Web
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
Image sources:
http://www.openclipart.org/detail/25999
http://www.openclipart.org/detail/86059
http://www.openclipart.org/detail/112249
Fully Open Source
+
Classpath Exception
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●What?
●Why?
●IcedTea-Web
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
+
GPL stands for GNU
G
eneral
P
ublic
L
icense
++
LGPL stands for GNU
L
esser
G
eneral
P
ublic
L
icense
Image source: http://www.gnu.org/graphics/official%20gnu.svg
GPL
Completeness
Plugin is almost fully complete
Web Start is slightly lagging, but has support for all of
the widely used features
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●What?
●Why?
●IcedTea-Web
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
Co-ordinated security
IcedTea
Distros
Update
planned
Distros
notified
Public release
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●What?
●Why?
●IcedTea-Web
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
Not in code base
In code base, not public
In code base, public
Settings configuration tool
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●What?
●Why?
●IcedTea-Web
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
Settings configuration tool
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●What?
●Why?
●IcedTea-Web
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions
IcedTea6
Red Hat
Others
0
500
1000
1500
2000
2500
IcedTea6 commits
Total Red Hat commits: 2159 out of 2587*
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●
IcedTea
●IcedTea-Web
●Upstream
●RHEL/Fedora
●The future of Java
●
Version 7
●Version 8
●Questions
IcedTea (7)
Red Hat
Others
0
500
1000
1500
2000
2500
IcedTea (7) commits
Total Red Hat commits: 1988 out of 2432*
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●
IcedTea
●IcedTea-Web
●Upstream
●RHEL/Fedora
●The future of Java
●
Version 7
●Version 8
●Questions
Role in IcedTea-Web
Red Hat
Others
0
50
100
150
200
250
IcedTea-Web commits
Total Red Hat commits: 223 out of 234*
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●
IcedTea
●IcedTea-Web
●Upstream
●RHEL/Fedora
●The future of Java
●
Version 7
●Version 8
●Questions
●
OpenJDK7 OpenJDK6
●
Majority of OpenJDK6 commits are backports
●
The backport process
●
Red Hat is the primary backporter for
OpenJDK6
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●
IcedTea
●IcedTea-Web
●Upstream
●RHEL/Fedora
●The future of Java
●
Version 7
●Version 8
●Questions
OpenJDK7 contribution
* Figures are approximate, and do not account for merge commits
** Apple's contributions have been normalized from 81/8889 (OSX port) to 76/8337
Oracle+Community
Red Hat
Apple
1
10
100
1000
10000
OpenJDK7 commits
As of 2011-04-28, 16:00 EDT*
Total: 8337
Oracle + community: 7998
Google: 136 (1.63%)
Red Hat: 127 (1.52%)
Apple: 76** (0.09%)
(
Logarithmic
)
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●
IcedTea
●IcedTea-Web
●Upstream
●RHEL/Fedora
●The future of Java
●
Version 7
●Version 8
●Questions
IcedTea* contribution
Red Hat
Others
0
500
1000
1500
2000
2500
IcedTea6 commits
Red Hat
Others
0
500
1000
1500
2000
IcedTea (7) commits
Red Hat
Others
0
50
100
150
200
250
IcedTea-Web commits
2159 out of 2587, 83.4%
1988 out of 2431, 81.7%
223 out of 234, 95.3%
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●
IcedTea
●IcedTea-Web
●Upstream
●RHEL/Fedora
●The future of Java
●
Version 7
●Version 8
●Questions
OpenJDK RPM in RHEL
OpenJDK
IcedTea
RPM
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●
IcedTea
●IcedTea-Web
●Upstream
●RHEL/Fedora
●The future of Java
●
Version 7
●Version 8
●Questions
Upstream first policy
OpenJDK
IcedTea
RPM
Accepted upstream
IcedTea release
RHEL release
OpenJDK release
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●
IcedTea
●IcedTea-Web
●Upstream
●RHEL/Fedora
●The future of Java
●
Version 7
●Version 8
●Questions
Red Hat Enterprise Linux release is subject to results of:
●
TCK tests
(api, compiler, dev)
●
Jtreg tests
(regression)
●
Mauve tests
(class library)
●
Spec* tests
(performance)
●
Java2dBenchmark tests
(drawing perf.)
Prioritized release
OpenJDK
IcedTea
RPM
Accepted upstream
IcedTea release
Prioritized release
OpenJDK release
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●
IcedTea
●IcedTea-Web
●Upstream
●RHEL/Fedora
●The future of Java
●
Version 7
●Version 8
●Questions
Release subject to results of:
●
TCK (api, compiler, dev) tests
●
JTreg (regression) tests
●
Mauve (class library) tests
●
Spec* (performance) tests
●
Java2dBenchmark (drawing perf.) tests
●
JFCMark (swing perf.) tests
Links
I will be at Campground 3 from 2PM to 3PM today
OpenJDK:
http://openjdk.java.net/
IcedTea:
http://icedtea.classpath.org/
IcedTea-Web:
http://icedtea.classpath.org/wiki/IcedTea-Web
IcedTea Bugs:
http://icedtea.classpath.org/bugzilla/
RHEL/Fedora bugs:
http://bugzilla.redhat.com
Mailing List:
IRC:
irc.oftc.net, #openjdk
Deepak Bhole
dbhole on irc
JMX Enhancements
●
ManagementFactory.getAllPlatformMXBeanInterfaces()
●
Everything inherits from PlatformManagedObject
●
New MBeans
●
java.lang.management.BufferPoolMXBean
●
java.lang.management.PlatformLoggingMXBean
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●nio2
●Fork/Join framework
●Rest..
●Version 8
●Questions...
Switches in String
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
Switches in String
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
try-with-resources – try1
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
try-with-resources – try2
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
try-with-resources – try3
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
try-with-resources in JDK7
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
What JDK7 does (approximately)
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
The AutoCloseable Interface
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
Diamond operator
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
Diamond operator
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
Diamond operator
// prints 1
// prints 2
Example posted to coin-dev list by Neal Gafter ([email protected])
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
Binary Literals
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
Binary Literals
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
Underscores in numeric literals
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
Regular catch
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
Multi-catch in JDK 7
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
Precise re-throw in JDK7
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
Safe var-args
With JDK6 (-Xlint:unchecked):
warning: [unchecked] unchecked generic array creation of type
java.util.List<java.lang.String>[] for varargs parameter
printAll(l1, l2);
^
With JDK7 (-Xlint:unchecked):
warning: [unchecked] Possible heap pollution from parameterized vararg type T
public <T> void printAll(T... params) {
^
warning: [unchecked] unchecked generic array creation for varargs parameter of
type List<String>[]
printAll(l1, l2);
^
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
Safe var-args
With JDK6 (-Xlint:unchecked):
No warnings
With JDK7 (-Xlint:unchecked):
warning: [unchecked] Possible heap pollution from parameterized vararg type T
public <T> void printAll(T... params) {
^
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
Safe var-args
With JDK6 (-Xlint:unchecked):
No warnings
With JDK7 (-Xlint:unchecked):
No warnings
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
Safe var-args
With JDK6 (-Xlint:unchecked):
Error due to @SafeVarargs not being defined
Warning at line 110
With JDK7 (-Xlint:unchecked):
No warnings
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●Strings in switch
●try-with-resources
●Diamond operator
●Numeric literals
●multi-catch
●@SafeVarArgs
●...
●...
●...
NIO2
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●nio2
●Fork/Join framework
●Rest..
●Version 8
●Questions...
File actions
●
Actions provided by class
Files
●
copy()
●
move()
●
delete()
●
create[Symbolic]Link()
●
walkFileTree()
●
etc.
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●nio2
●Fork/Join framework
●Rest..
●Version 8
●Questions...
Attributes
File/Directory
creation time
access time
modification time
size
isFile
isDirectory
isLink
Basic
POSIX
get/setPermissions
get/setGroup
FileOwner
getOwner
setOwner
●
*AttributeView(s)
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●nio2
●Fork/Join framework
●Rest..
●Version 8
●Questions...
Asynchronous I/O
Application thread
I/O thread (sys)
I/O request
Process I/O request
Process callback
handler
Continue normal
execution
Application thread
I/O request (returns Future<Integer>)
Continue normal execution, process
Future<Integer> later
... OR ...
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●nio2
●Fork/Join framework
●Rest..
●Version 8
●Questions...
Change notification
Application Thread
JVM
Thread
Use WatchService
Continue normal
execution
sleep/wait
OS/Poll
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●nio2
●Fork/Join framework
●Rest..
●Version 8
●Questions...
Fork/Join Framework
class Foo extends RecursiveAction {
public Foo(data) { ... }
public void compute() {
if (small) doLocally();
else invokeAll(new Foo(halfData), // first half
new Foo(otherHalfData)); // remaining
}
}
Thread 1:
Foo.compute()
...
Fork/Join Framework
invokeAll()
Thread 2:
Foo.compute()
Thread 1:
Foo.compute()
Foo.compute()
Thread N:
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●nio2
●Fork/Join framework
●Rest..
●Version 8
●Questions...
Additional Java 7 features
●
JSR-292 (
invokedynamic
)
●
JDBC 4.1
●
Unicode 6.0
●
Full list at
http://openjdk.java.net/projects/jdk7/features
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●JMX enhancements
●Language changes
●nio2
●Fork/Join framework
●Rest..
●Version 8
●Questions...
Jigsaw
●
JDK broken into modules based on functionality
●
No more CLASSPATH
●
New format to replace JAR files
●
RPM auto-dependency writing (would be done
by distros)
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Jigsaw
●Lambda
●Language changes
●Questions...
Lambda (Closures)
●
Not yet finalized
●
Cleaner syntax and more scalable than
Anonymous Inner Classes
●
Defender methods
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Jigsaw
●Lambda
●Language changes
●Questions...
Language Changes (Project Coin)
●
Collections enhancements
●
Collection literals
●
final
List
<Integer> digits = [4, 3, 4];
●
final
Set
<Integer> primes = { 2, 3, 5, 7 };
●
final
Map
<Integer, String> platonicSolids =
{ 4 : "tetrahedron",
6 : "cube",
8 : "octahedron",
12 : "dodecahedron",
20 : "icosahedron" };
●
Numeric suffixes for byte(y/Y) and short (s/S)
●
byte
b = 0xA0y;
●
short
s = 0xA0s;
●OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Jigsaw
●Lambda
●Language changes
●Questions...
Questions?
●
OpenJDK/IcedTea
●History of Java
●OpenJDK
●IcedTea
●Red Hat's Role
●The future of Java
●
Version 7
●Version 8
●Questions...
I will be at Campground 3 from 2PM to 3PM today
OpenJDK:
http://openjdk.java.net/
IcedTea:
http://icedtea.classpath.org/
IcedTea-Web:
http://icedtea.classpath.org/wiki/IcedTea-Web
IcedTea Bugs:
http://icedtea.classpath.org/bugzilla/
RHEL/Fedora bugs:
http://bugzilla.redhat.com
Mailing List:
IRC:
irc.oftc.net , #openjdk
Deepak Bhole
dbhole on irc
05/06/11
Deepak Bhole
Sr. Software Engineer, Red Hat Inc.
May 5
th
2011
Java - From OpenJDK to Red Hat Enterprise Linux
and What Lies Ahead
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●Red Hat's role ●The future of Java
●Version 7 ●Version 8 ●Questions
Agenda
Persistent index will always show current point
This presentation is designed to be used with audio as a primary mode of content delivery. If you have downloaded it,
see notes section for rough notes on applicable slides (draft quality). For pdf, it should be at the end of the slide deck.
History of Java
●OpenJDK/IcedTea
●History of Java ●OpenJDK ●IcedTea ●Red Hat's role ●The future of Java
●Version 7 ●Version 8 ●Questions
●
Timeline:
1997
Java 1.1
Java 1.2
1998
2002
Java 1.4
2004
Java 5
2006
Java 6
2011
Java 7
1999
LibGCJ
Classpath
2003
GCJ
Plugin
2006
Java
sources
GPLd
2012?
Java 8
+
GCJ stands for
G
NU
C
ompiler for
J
ava
++GPL stands for GNU
G
eneral
P
ublic
L
icense
●
Only critical releases mentioned:
1.1 Feb 96
1.2 in 98
1.4 in 2002
Java 5 (Generics, major syntax changes) in 2004
Java 6 in 2006
●
OSS dev continued with GCJ release in 1999 and
classpath started picking up around then
●
GCJ WebPlugin in 2003
●
In Nov. 2006, Java/GPL announcement was made
No release since then, breaking the 2-yr cycle
●
Java 7 set for July 28
th
, 2011
OpenJDK
Community
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●What? ●vs JDK ●IcedTea ●Red Hat's Role ●The future of Java●Version 7 ●Version 8 ●Questions
Apple
+
JDK stands for
J
ava
D
evelopment
K
it
All company logos are copyright by their respective owners
●
This is where most of Java is now developed
●
Oracle, Red Hat, Google, Apple, IBM and others
contribute here
●
Most of the code base is identical to that of
proprietary JDK
●
Certain things are missing, like the plugin, javaws and
OpenJDK vs JDK (current)
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●What? ●vs JDK ●Current ●Future ●IcedTea ●Red Hat's Role ●The future of Java●Version 7 ●Version 8 ●Questions
JDK
OpenJDK
●
HotSpot Virtual machine
●Interpreter
●
JIT (Just In Time) compiler
●Tools (javac, javadoc, etc.)
●Class libraries
●
Public API (Application Programming Interface)
●Deployment tools
Current state:
●
Class library, VM, compiler, etc. are open
●
Same public API
●
Deployment tools (plugin, webstart, etc.) will remain
OpenJDK vs JDK (future)
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●What? ●vs JDK ●Current ●Future ●IcedTea ●Red Hat's Role ●The future of Java●Version 7 ●Version 8 ●Questions
JDK
OpenJDK
●
HotSpot Virtual machine
●Interpreter
●
JIT compiler
●
Tools (javac, javadoc, etc.)
●Class libraries
●
Public API
●Deployment tools
●Serviceability tools
Future:
●
Most of the items will stay open
●
In addition to deployment tools, serviceability tools
(e.g Mission Control), will stay closed
OpenJDK6 vs JDK6
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●What? ●vs JDK ●6 ●7 ●IcedTea ●Red Hat's Role ●The future of Java●Version 7 ●Version 8 ●Questions
JDK6 (closed)
OpenJDK (7)
OpenJDK6
JDK7
Proprietary
Semi-open (development in open + some proprietary patches)
Open
●
JDK6 and OpenJDK6 development is not parallel,
and hence the divergence
●
OpenJDK6 was created from OpenJDK7 by removing
the Java 7 specific parts
OpenJDK7 vs JDK7
JDK
OpenJDK
●
HotSpot Virtual machine
●Interpreter
●
JIT compiler
●
Tools (javac, javadoc, etc.)
●Class libraries
●Public API
●Deployment tools
●Serviceability tools?
95%
+5%
+ +As heard at JavaOne
Closed
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●What? ●vs JDK ●6 ●7 ●IcedTea ●Red Hat's Role ●The future of Java●Version 7 ●Version 8 ●Questions
●
Siblings from same codebase
What is IcedTea?
IcedTea
…...
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●What? ●Why? ●IcedTea-Web ●Red Hat's Role ●The future of Java●Version 7 ●Version 8 ●Questions
Image sources:
http://www.openclipart.org/detail/22436
http://www.openclipart.org/detail/22712
●
OpenJDK Based
●
Contains OpenJDK core, plus build scripts, plus
Some of the contributors...
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●What? ●Who is involved? ●Why? ●IcedTea-Web ●Red Hat's Role ●The future of Java●Version 7 ●Version 8 ●Questions
(Indirectly through OpenJDK)
All logos are copyright by their respective owners
(IcedTea-Web only)
●
Oracle is an indirect contributor via OpenJDK
●
RedHat is biggest contributor to IcedTea
Some of the users...
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●What? ●Who is involved? ●Why? ●IcedTea-Web ●Red Hat's Role ●The future of Java●Version 7 ●Version 8 ●Questions
(IcedTea-Web only)
●
Used by almost all major Linux distros:
Fedora, RHEL, Ubuntu, Debian, SuSE, etc.
Why was IcedTea created?
(For the first release...)
Build
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●What? ●Why? ●IcedTea-Web ●Red Hat's Role ●The future of Java●Version 7 ●Version 8 ●Questions
Image sources:
http://www.openclipart.org/detail/30223
●
Initial OpenJDK drop did not build easily
To fix the build...
Build
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●What? ●Why? ●IcedTea-Web ●Red Hat's Role ●The future of Java●Version 7 ●Version 8 ●Questions
Image sources:
http://www.openclipart.org/detail/30217
●
IcedTea was primarily created to fix the build issues
and create a re-distributable JDK based on
OpenJDK.
To fill what's missing...
JDK
●HotSpot Virtual machine
●
Interpreter
●JIT compiler
●Tools (javac, javadoc, etc.)
●Class libraries
...
●Deployment tools
●Deployment tools
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●What? ●Why? ●IcedTea-Web ●Red Hat's Role ●The future of Java●Version 7 ●Version 8 ●Questions
Implemented independently
●
IcedTea has gradually taken on other roles...
To back patch fixes...
JDK
●HotSpot Virtual machine
●
Interpreter
●JIT compiler
●Tools (javac, javadoc, etc.)
●Class libraries
...
●Deployment tools
●Deployment tools
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●What? ●Why? ●IcedTea-Web ●Red Hat's Role ●The future of Java●Version 7 ●Version 8 ●Questions
Implemented independently
●
It provides backward patch maintenance for up to n-2
To support additional architectures...
JDK
●HotSpot Virtual machine
●
Interpreter
●JIT compiler
●Tools (javac, javadoc, etc.)
●Class libraries
...
●Deployment tools
●Deployment tools
Shark/Zero
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●What? ●Why? ●IcedTea-Web ●Red Hat's Role ●The future of Java●Version 7 ●Version 8 ●Questions
Implemented independently
Image sources:
http://www.openclipart.org/detail/132973
●
It provides additional runtime support. Most notably
Shark/Zero so that OpenJDK can run on other
platforms.
●
Almost all of the Shark/Zero porting work was done
by Red Hat.
●
IcedTea also supports Cacao and JamVM (as an
alternate to the HotSpot VM, with the OpenJDK class
libraries)
To support additional tools...
JDK
●HotSpot Virtual machine
●
Interpreter
●JIT compiler
●Tools (javac, javadoc, etc.)
●Class libraries
...
●Deployment tools
●Deployment tools
Implemented independently
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●What? ●Why? ●IcedTea-Web ●Red Hat's Role ●The future of Java●Version 7 ●Version 8 ●Questions
Shark/Zero
●
It provides additional tooling support, like for
VisualVM (now via a separate visualvm-harness
project under the IcedTea umbrella)
Fixes (with OpenJDK)
I found a bug, here
is the patch!
Thanks! It will be in
the next update
whenever it
happens*
* OpenJDK has a slower release cycle and it is not set in advance
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●What? ●Why? ●IcedTea-Web ●Red Hat's Role ●The future of Java
●Version 7 ●Version 8 ●Questions
Image sources:
http://www.openclipart.org/detail/34957
●
Patches submitted to OpenJDK can take an arbitrary
amount of time depending on when the next release
happens.
Fixes (with IcedTea)
I found a bug,
here is the
patch!
Thanks! It will be in
the next update
soon*!
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●What? ●Why? ●IcedTea-Web ●Red Hat's Role ●The future of Java●Version 7 ●Version 8 ●Questions
* IcedTea has a faster release cycle dictated by importance of fixes since last release
●
Patches submitted to IcedTea have a faster
turnaround as IcedTea releases more frequently, and
depending on the severity of the issue, can do a
Fixes (with IcedTea)
I found a bug,
here is the
patch!
Thanks! It will be in
the next update
soon!
Here is a nice
patch from Mr.
Green.
Thanks! It will be
in the next update!
…...
No problem! We will
maintain it locally till then.
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●What? ●Why? ●IcedTea-Web ●Red Hat's Role ●The future of Java
●Version 7 ●Version 8 ●Questions
●
Behind the scenes, IcedTea developers make sure
that the patch is okay for OpenJDK, and then take on
the responsibility of local patch maintenance until the
next OpenJDK update (assuming it was accepted)
●
Sometimes fixes are not accepted, in which case
Co-ordinated security
JDK
OpenJDK
IcedTea
Distros
Update
planned
Patches
sent
Distros
notified
Public release
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●What? ●Why? ●IcedTea-Web ●Red Hat's Role ●The future of Java
●Version 7 ●Version 8 ●Questions
Not in code base
In code base, not public
In code base, public
All company logos are copyright by their respective owners
●
When a security update is planned, Oracle gets the
patches ready and notifies Red Hat and select
others.
●
IcedTea developers then put together a release, and
send a preview copy to trusted distro maintainers for
testing.
●
On a preset date and time, Oracle makes the
vulnerabilities public and distros release updates
thereafter
IcedTea-Web
Web Browser Plugin
Web Start (javaws)
Settings tool (itweb-settings)
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●What? ●Why? ●IcedTea-Web ●Red Hat's Role ●The future of Java
●Version 7 ●Version 8 ●Questions
Image sources:
http://www.openclipart.org/detail/25999
http://www.openclipart.org/detail/86059
http://www.openclipart.org/detail/112249
●
IcedTea-Web contains:
The plugin
Webstart
itweb-settings
Fully Open Source
+
Classpath Exception
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●What? ●Why? ●IcedTea-Web ●Red Hat's Role ●The future of Java●Version 7 ●Version 8 ●Questions
+
GPL stands for GNU
G
eneral
P
ublic
L
icense
++LGPL stands for GNU
L
esser
G
eneral
P
ublic
L
icense
Image source:
http://www.gnu.org/graphics/official%20gnu.svg
GPL
LGPL
●
All the code is IcedTea-Web is Open Source. Parts
from NetX are under LGPL, the plugin/javaws is
GPL+Classpath, while the settings tool is GPL
Completeness
Plugin is almost fully complete
Web Start is slightly lagging, but has support for all of
the widely used features
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●What? ●Why? ●IcedTea-Web ●Red Hat's Role ●The future of Java
●Version 7 ●Version 8 ●Questions
●
Chart is more to show comparative completeness.
WebStart is slightly lagging.
●
However, both components contain the widely used
features. Most of the missing features are
Co-ordinated security
IcedTea
Distros
Update
planned
Distros
notified
Public release
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●What? ●Why? ●IcedTea-Web ●Red Hat's Role ●The future of Java
●Version 7 ●Version 8 ●Questions
Not in code base
In code base, not public
In code base, public
●
As with IcedTea, when a security release is due,
distros are notified earlier and sent an encrypted
tarball so that they can test the fixes.
Settings configuration tool
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●What? ●Why? ●IcedTea-Web ●Red Hat's Role ●The future of Java●Version 7 ●Version 8 ●Questions
Settings configuration tool
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●What? ●Why? ●IcedTea-Web ●Red Hat's Role ●The future of Java●Version 7 ●Version 8 ●Questions
●
Screenshot of settings tool showing security
IcedTea6
Red Hat Others
0 500 1000 1500 2000 2500
IcedTea6 commits
Total Red Hat commits: 2159 out of 2587*
●OpenJDK/IcedTea
●History of Java ●OpenJDK ●IcedTea ●Red Hat's Role
●IcedTea ●IcedTea-Web ●Upstream ●RHEL/Fedora ●The future of Java
●Version 7 ●Version 8 ●Questions
* Approximate numbers as of 17:00 EDT on 2011-04-28
#!/bin/bash
USERS="ahughes|aph|dbhole|fitzsim|fkung|gbenson|iivan|jon.vanalten|
jsumali|keiths|kgallowa|langel|mwong|omajid|ptisnovs|jvanek|asu|
dlila|[email protected]"
TOTAL=`hg log | grep "user:" | grep -E "$USERS" | wc -l`
TOTALCOMMITS=`hg log | grep changeset | wc -l`
# Filter out Andrew's commits before he joined Red Hat
ANDREWS_RH_COMMITS=`hg log --date "2008-10-20 to 2011-04-28" | grep
"user:" | grep andrew | grep -v redhat.com | wc -l`
TOTAL=`echo $TOTAL + $ANDREWS_RH_COMMITS | bc -l`
echo "Total: $TOTAL"
IcedTea (7)
Red Hat Others
0 500 1000 1500 2000 2500
IcedTea (7) commits
Total Red Hat commits: 1988 out of 2432*
●OpenJDK/IcedTea
●History of Java ●OpenJDK ●IcedTea ●Red Hat's Role
●IcedTea ●IcedTea-Web ●Upstream ●RHEL/Fedora ●The future of Java
●Version 7 ●Version 8 ●Questions
* Approximate numbers as of 17:00 EDT on 2011-04-28
Role in IcedTea-Web
Red Hat Others
0 50 100 150 200 250
IcedTea-Web commits
Total Red Hat commits: 223 out of 234*
●OpenJDK/IcedTea
●History of Java ●OpenJDK ●IcedTea ●Red Hat's Role
●IcedTea ●IcedTea-Web ●Upstream ●RHEL/Fedora ●The future of Java
●Version 7 ●Version 8 ●Questions
* Approximate numbers as of 17:00 EDT on 2011-04-28
●
OpenJDK7 OpenJDK6
●
Majority of OpenJDK6 commits are backports
●The backport process
●
Red Hat is the primary backporter for
OpenJDK6
●OpenJDK/IcedTea
●History of Java ●OpenJDK ●IcedTea ●Red Hat's Role
●IcedTea ●IcedTea-Web ●Upstream ●RHEL/Fedora ●The future of Java
●Version 7 ●Version 8 ●Questions
OpenJDK7 contribution
* Figures are approximate, and do not account for merge commits
** Apple's contributions have been normalized from 81/8889 (OSX port) to 76/8337
Oracle+Community Google Red Hat Apple 1 10 100 1000 10000
OpenJDK7 commits
As of 2011-04-28, 16:00 EDT*
Total: 8337
Oracle + community: 7998
Google: 136 (1.63%)
Red Hat: 127 (1.52%)
Apple: 76** (0.09%)
(
Logarithmic
)
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●Red Hat's Role●IcedTea ●IcedTea-Web ●Upstream ●RHEL/Fedora ●The future of Java
●Version 7 ●Version 8 ●Questions
#!/bin/bash
if [ "$1" == "redhat" ]; then
USERS="langel aph andrew gbenson ptisnovs omajid dlila dbhole mwong"
elif [ "$1" == "google" ]; then
USERS="ahe hiroshi jjb rasbold"
elif [ "$1" == "apple" ]; then
USERS="astrange bino kmiller loefty rhoover swingler"
else
USERS="$*"
fi
TEMP_FILE="/tmp/jdk.commits.log"
TOTAL=0
TOTALDUPLICATES=0
TOTALCOMMITS=0
for dir in . corba hotspot jaxp jaxws jdk langtools; do
hg log -v -R $dir | grep -E "^user:|^Reviewed-by|^Contributed-by:|summary:" | grep -vi merge |
grep -E "^user:|^Reviewed-by|^Contributed-by:" | tr '\n' ' ' | perl -p -e s/user:/\\nuser:/g >
$TEMP_FILE
for uid in $USERS; do # for each user
USERS_TO_EXCLUDE=`echo $USERS | sed -e s:$uid::g | sed -e s:" ":" ":g -e s:"^ "::g -e s:"
$"::g | tr ' ' '|'`
USERTOTAL=0
COUNT=`grep " $uid" $TEMP_FILE | wc -l`
DUPLICATED_USERS=`grep " $uid" $TEMP_FILE | grep -E " $USERS_TO_EXCLUDE" | wc -l`
USERTOTAL=`echo $USERTOTAL + $COUNT | bc -l`
TOTALDUPLICATES=`echo $TOTALDUPLICATES + $DUPLICATED_USERS | bc -l`
TOTAL=`echo $TOTAL + $USERTOTAL | bc -l`
done
COMMITS_IN_DIR=`wc -l $TEMP_FILE | awk '{print $1}'`
TOTALCOMMITS=`echo $TOTALCOMMITS + $COMMITS_IN_DIR | bc -l`
done
rm -f $TEMP_FILE
# Account for commits by Chris Phillips after he started at Red Hat (2011-02-01+)
if [ "$1" == "redhat" ]; then
TOTAL=`echo $TOTAL + 1 | bc -l`
fi
TOTAL=`echo $TOTAL - "($TOTALDUPLICATES/2)" | bc -l` # assume duplicates == max 2 users
echo "Total: $TOTAL"
echo "Total duplicates: $TOTALDUPLICATES"
echo "Total commits: $TOTALCOMMITS"
IcedTea* contribution
Red Hat Others 0 500 1000 1500 2000 2500
IcedTea6 commits
Red Hat Others 0 500 1000 1500 2000
IcedTea (7) commits
Red Hat Others 0 50 100 150 200 250
IcedTea-Web commits
2159 out of 2587, 83.4%
1988 out of 2431, 81.7%
223 out of 234, 95.3%
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●Red Hat's Role●IcedTea ●IcedTea-Web ●Upstream ●RHEL/Fedora ●The future of Java
●Version 7 ●Version 8 ●Questions
OpenJDK RPM in RHEL
OpenJDK
IcedTea
RPM
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●Red Hat's Role●IcedTea ●IcedTea-Web ●Upstream ●RHEL/Fedora
●The future of Java ●Version 7 ●Version 8 ●Questions
+
RPM stands for
R
PM
P
ackage
M
anager
●
RPM contains IcedTea which in turn contains
Upstream first policy
OpenJDK
IcedTea
RPM
Accepted upstream
IcedTea release
RHEL release
OpenJDK release
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●Red Hat's Role●IcedTea ●IcedTea-Web ●Upstream ●RHEL/Fedora
●The future of Java ●Version 7 ●Version 8 ●Questions
Red Hat Enterprise Linux release is subject to results of:
●
TCK tests
(api, compiler, dev)
●
Jtreg tests
(regression)
●
Mauve tests
(class library)
●
Spec* tests
(performance)
●
Java2dBenchmark tests
(drawing perf.)
●
JFCMark tests
(swing perf.)
●
Upstream first policy
Prioritized release
OpenJDK
IcedTea
RPM
Accepted upstream
IcedTea release
Prioritized release
OpenJDK release
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●Red Hat's Role●IcedTea ●IcedTea-Web ●Upstream ●RHEL/Fedora
●The future of Java ●Version 7 ●Version 8 ●Questions
Release subject to results of:
●
TCK (api, compiler, dev) tests
●JTreg (regression) tests
●Mauve (class library) tests
●Spec* (performance) tests
●
Java2dBenchmark (drawing perf.) tests
●JFCMark (swing perf.) tests
●
Upstream first policy
●
Early backports into RPMs if needed
Links
I will be at Campground 3 from 2PM to 3PM today
OpenJDK:
http://openjdk.java.net/
IcedTea:
http://icedtea.classpath.org/
IcedTea-Web:
http://icedtea.classpath.org/wiki/IcedTea-Web
IcedTea Bugs:
http://icedtea.classpath.org/bugzilla/
RHEL/Fedora bugs:
http://bugzilla.redhat.com
Mailing List:
IRC:
irc.oftc.net, #openjdk
Deepak Bhole
dbhole on irc
JMX Enhancements
●
ManagementFactory.getAllPlatformMXBeanInterfaces()
●Everything inherits from PlatformManagedObject
●New MBeans
●java.lang.management.BufferPoolMXBean
●java.lang.management.PlatformLoggingMXBean
●OpenJDK/IcedTea ●History of Java ●OpenJDK ●IcedTea ●Red