Operational Java for Technical Committee
Outline Terminology Spoiler Original Motivation for Java 7 Testing Results Feedback from: –Developers –Operations –Security –Industry Summary 1
Terminology JVM vs JDK –Java Virtual Machine is the runtime executor of Java software –Java Development Kit includes the compiler and other development artifacts –Possible to run Java classes compiled for Java 6 with Java 7 (no recompilation needed) 32-bit vs 64-bit –Explained by Alastair on previous presentation –Ability to use files or memory > 4GB 2
Spoiler Java 6 (x64) for 2012 Not Java 7 3
Original Motivation for Java 7 Why Java 7? –EOL Java 6 July 2012 –Java 7 released July 2011 Sufficient time to test for 2012 run –Requested features NIO2: file WatchService API, non-blocking IO –Limit technical debt Why 64-bit? –Upgrade by IN to 64-bit platform –Several projects already have 64-bit hosts/JVMs Access large memory sizes > 4GB 4
Testing Results “Fixable” issues –Collections throw new Exceptions –GUI annoyances: JTextPane cant get focus to type –Compilation issues E.g. API changes in DataSource, AWT “Blocking” issues –AspectJ fails: affects LSA, InCA, Sequencer,... Requires Spring 3+ –java.security.SignatureException: RBAC 5
Developer Feedback Short shutdown and plenty to do already New Java 7 features are nice but not essential Happy with Java 6 for 2012 Improvements: –Easier switch between Java 6 and 7 –More coordinated Dev&Test environment Including full Java 7 support in Eclipse –Earlier availability of testing platform 6
Operations Feedback Introducing Java 7 + SLC6 + 64bit together: –Higher probability of failure –Added difficulty investigating failure Increased combinations and candidates Is it Java 7, SLC6, something else? Reduce impact: –Introduce fewer changes at any one time 7
Security team feedback Requested position on using “unmaintained” Java 6 Response: –OK to run 2012 with Java 6 –Java 6 very mature implies low security risk –Must move to Java 7 at end 2012 –Option B: Buy “Oracle Premier Support” Note on Oracle new release strategy: –Evolutive major updates –Less features but more regular releases –Expect Java 8 release in summer
Industry Adoption? Industry adoption is low –Spooked by well-publicized “loop optimization” bug –Other “serious” defects unresolved E.g. FTP protocol failure on Windows –New NIO2 features have complex APIs Consequences: –Lower level of industry-wide testing –3 rd party products remaining with JDK1.6 9
Summary for Java 7 Failure to provide new features is not a problem Testing shows Java 7 adoption needs additional time Developers overall prefer Java 6 for 2012 Operations can focus on SLC6 64-bit adoption Security team will allow Java 6 use for 2012 Industry adoption is currently low Conclusion: remain with Java 6 / JDK
Summary for 64-bit Clarification: No need to re-compile any Java code –Java compiled with 32-bit JDK runs “transparently” on 64-bit JVMs –But watch out for native libraries! E.g. DIP 32-bit Java interoperates with 64-bit by design JMS servers run as 64-bit since start bit JVMs can run on 64-bit Oses but... –64-bit consoles to have 64-bit JVM only installed Conclusion: Low risk, adopt. 11
Summary Java 6 for accelerator run 2012 – With 64-bit JVM for consoles –Java 7 (+ Spring 3): goal for end 2012 Thank you to everyone who found time to test! –Effort not wasted, needed for November 2012 And those who contributed advice, concerns, etc. 12
13
Java 7 (& 64-bit / SLC6) Why Plan Action End Of Life JDK6 July arrived in time for next run -64-bit larger memory heap - JDK7 (64-bit) on SLC6 - in CCC/CCR for run TC end October for a decision -PLEASE TEST YOUR PROJECTS! - Feedback / Testing info see wiki Spoiler
Timeline Alastairs timeline graph Point of slide to show running gap of unaminted Oracle’s future schedule of J8, 9 / EOLs etc 15
Points to make Testing feedback, show some real errors Developer attitudes – no real desire to move Risk analysis –Tsting feedback –Positives (recap of new features) Desired features (NIO, file WatchService API) –Push by Oracle EOL July 2012 –3 rd Party libs Technical showstoppers, aspectj/Spring Other considerations: –Environment change to SLC 64 bit Operator / developer confusion of bug either SLC6 or JDK7 16
More points ? To be completely sure, would need to re-compile, test, release all software. 17