core development tools update
play

Core Development Tools Update Java 9, Jenkins, Maven Will Iverson - PowerPoint PPT Presentation

Core Development Tools Update Java 9, Jenkins, Maven Will Iverson Co-owner, Dev9 Will Iverson Co-owner, Dev9 Professional software dev/ architect/consultant since 1995 Roles: Apple, Symantec, SolutionsIQ Clients: Sun,


  1. Core Development Tools Update Java 9, Jenkins, Maven… Will Iverson Co-owner, Dev9

  2. • Will Iverson • Co-owner, Dev9 • Professional software dev/ architect/consultant since 1995 • Roles: Apple, Symantec, SolutionsIQ • Clients: Sun, BEA, Canal+, T-Mobile, at&t, Microsoft, State of WA, many other local firms… • 4 books, many articles

  3. • 2015 – VR, 20 Years of Java & CMS • 2013 – Greenfield Java • 2012 – JPA/Hibernate & myBatis • 2011 – Session Management, Selenium • 2010 – Play Framework • 2010 – CSI: Java - Dead JVM Analysis • 2009 – Maven • …

  4. • Where are things with Java 9, Jenkins 2, and Maven? • In this session we'll look at the status of the major updates to core development tools, including (where applicable) demos of the current releases. • We'll also cover some simple scenarios for using Docker to ease development tasks, even if you aren't ready for Docker in production. • We'll conclude with a review of what it means to be a "full stack developer" in a world of advanced JavaScript, mobile, voice, virtual reality, and more.

  5. • http://openjdk.java.net/projects/jdk9/ • http://www.java9countdown.xyz/

  6. • 2016/05/26 Feature Complete • 2016/08/11 All Tests Run • 2016/09/01 Rampdown Start • 2016/10/20 Zero Bug Bounce • 2016/12/01 Rampdown Phase 2 • 2017/01/26 Final Release Candidate • 2017/03/23 General Availability

  7. 258: HarfBuzz Font-Layout Engine 259: Stack-Walking API 260: Encapsulate Most Internal APIs 261: Module System 262: TIFF Image I/O 228: Add More Diagnostic Commands 102: Process API Updates 263: HiDPI Graphics on Windows and Linux 229: Create PKCS12 Keystores by Default 110: HTTP 2 Client 264: Platform Logging API and Service 231: Remove Launch-Time JRE Version Selection 143: Improve Contended Locking 232: Improve Secure Application Performance 265: Marlin Graphics Renderer 158: Unified JVM Logging 233: Generate Run-Time Compiler Tests Automatically 266: More Concurrency Updates 165: Compiler Control 235: Test Class-File Attributes Generated by javac 267: Unicode 8.0 193: Variable Handles 236: Parser API for Nashorn 268: XML Catalogs 197: Segmented Code Cache 237: Linux/AArch64 Port 269: Convenience Factory Methods for Collections 199: Smart Java Compilation, Phase Two 238: Multi-Release JAR Files 270: Reserved Stack Areas for Critical Sections 200: The Modular JDK 240: Remove the JVM TI hprof Agent 271: Unified GC Logging 201: Modular Source Code 241: Remove the jhat Tool 211: Elide Deprecation Warnings on Import 272: Platform-Specific Desktop Features 243: Java-Level JVM Compiler Interface Statements 273: DRBG-Based SecureRandom Implementations 244: TLS Application-Layer Protocol Negotiation 212: Resolve Lint and Doclint Warnings 274: Enhanced Method Handles Extension 213: Milling Project Coin 245: Validate JVM Command-Line Flag Arguments 275: Modular Java Application Packaging 214: Remove GC Combinations Deprecated in 246: Leverage CPU Instructions for GHASH and RSA 276: Dynamic Linking of Language-Defined Object Models JDK 8 247: Compile for Older Platform Versions 277: Enhanced Deprecation 215: Tiered Attribution for javac 248: Make G1 the Default Garbage Collector 278: Additional Tests for Humongous Objects in G1 216: Process Import Statements Correctly 249: OCSP Stapling for TLS 279: Improve Test-Failure Troubleshooting 217: Annotations Pipeline 2.0 250: Store Interned Strings in CDS Archives 280: Indify String Concatenation 219: Datagram Transport Layer Security (DTLS) 251: Multi-Resolution Images 220: Modular Run-Time Images 281: HotSpot C++ Unit-Test Framework 252: Use CLDR Locale Data by Default 221: Simplified Doclet API 282: jlink: The Java Linker 253: Prepare JavaFX UI Controls & CSS APIs for 222: jshell: The Java Shell (Read-Eval-Print Modularization 283: Enable GTK 3 on Linux Loop) 254: Compact Strings 284: New HotSpot Build System 223: New Version-String Scheme 255: Merge Selected Xerces 2.11.0 Updates into JAXP 285: Spin-Wait Hints 224: HTML5 Javadoc 256: BeanInfo Annotations 287: SHA-3 Hash Algorithms 225: Javadoc Search 257: Update JavaFX/Media to Newer Version of 289: Deprecate the Applet API 226: UTF-8 Property Files Gstreamer 227: Unicode 7.0

  8. • 240:Remove the JVM TI hprof Agent • 241:Remove the jhat Tool • See CIS Java recording • 289:Deprecate the Applet API • 214:Remove GC Combinations Deprecated in JDK 8 • 231:Remove Launch-Time JRE Version Selection

  9. • 102: Process API Updates • 110: HTTP 2 Client • 143: Improve Contended Locking • 216: Process Import Statements Correctly • 226: UTF-8 Property Files • 262: TIFF Image I/O • 263: HiDPI Graphics on Windows and Linux • 251: Multi-Resolution Images • 245: Validate JVM Command-Line Flag Arguments • 256: BeanInfo Annotations • From javadoc-> real annotations • 264: Platform Logging API and Service • 274: Enhanced Method Handles • Improved invoke

  10. • 255: Merge Selected Xerces 2.11.0 Updates into JAXP • 268: XML Catalogs

  11. • 223: New Version-String Scheme • JDK 7 Update 55, or JDK 7 Update 60? • $MAJOR.$MINOR.$SECURITY • 227: Unicode 7.0 • 267: Unicode 8.0 • 272: Platform-Specific Desktop Features • Mac OS X, Windows, Linux • Lots of cool desktop integration stuff • Forced by modules…

  12. • 253: Prepare JavaFX UI Controls & CSS APIs for Modularization • Modules! • 257: Update JavaFX/Media to Newer Version of Gstreamer

  13. • 158: Unified JVM Logging • 250: Store Interned Strings in CDS Archives • 212: Resolve Lint and Doclint Warnings • 252: Use CLDR Locale Data by Default • Default to CLDR Unicode locale data • 283: Enable GTK 3 on Linux • 258: HarfBuzz Font-Layout Engine • 284: New HotSpot Build System • 265: Marlin Graphics Renderer • 254: Compact Strings • 270: Reserved Stack Areas for Critical Sections • 278: Additional Tests for Humongous Objects in G1 • 271: Unified GC Logging • 197: Segmented Code Cache • 276: Dynamic Linking of Language-Defined Object • 228: Add More Diagnostic Commands Models • 165: Compiler Control • INVOKEDYNAMIC changes • 233: Generate Run-Time Compiler Tests Automatically • 279: Improve Test-Failure Troubleshooting • 235: Test Class-File Attributes Generated by javac • 280: Indify String Concatenation • 248: Make G1 the Default Garbage Collector • 281: HotSpot C++ Unit-Test Framework • https://blogs.oracle.com/java/entry/garbage_collector • 285: Spin-Wait Hints

  14. • 236: Parser API for Nashorn • Get access to AST

  15. • 193: Variable Handles • Replace atomic/Unsafe • 266: More Concurrency Updates • In JVM Reactive pub/sub • CompletableFutureimprovements

  16. • 219: Datagram Transport Layer Security (DTLS) • 229: Create PKCS12 Keystores by Default • 232: Improve Secure Application Performance • Less of a hit when running w/Security Manager • 244: TLS Application-Layer Protocol Negotiation Extension • 246: Leverage CPU Instructions for GHASH and RSA • 249: OCSP Stapling for TLS • 273: DRBG-Based SecureRandom Implementations • 287: SHA-3 Hash Algorithms

  17. • 199: Smart Java Compilation, Phase Two • Incremental builds, javac wrapper - sjavac • JEP 211: Elide Deprecation Warnings on Import Statements • Elide means “omit” • 215: Tiered Attribution for javac • New method type-checking strategy in javac, speed up attribution of poly expression in arg position • 217: Annotations Pipeline 2.0 • Function<String, String> fss= (@Anno @Anno String s) -> s; • 247: Compile for Older Platform Versions • -release N is equivalent to -source N -target N -bootclasspath <bootclasspath-from-N>. • 259: Stack-Walking API • Runtime stack walk • 277: Enhanced Deprecation • Revamp deprecation annotation • Provide tools to strengthen API life cycle - jdeprfind

  18. • 213: Milling Project Coin • Allow @SafeVargs on private instance methods. • Effectively-final variables as resources in try-with- resources • Allow diamond with anonymous classes if argument type of inferred type is denotable • Complete removal, begun in Java SE 8, of underscore from set of legal identifier names • 269: Convenience Factory Methods for Collections • Set<String> set = Set.of("a", "b", "c");

  19. • 221: Simplified Doclet API • 224: HTML5 Javadoc • 225: Javadoc Search • Local index

  20. • 200: The Modular JDK • https://blogs.oracle.com/java/entry/module_system_in_jdk_9 • https://blogs.oracle.com/java/entry/the_state_of_the_module1 • 201: Modular Source Code • 220: Modular Run-Time Images • 222: jshell: The Java Shell (Read-Eval-Print Loop) • 237: Linux/AArch64 Port • 238: Multi-Release JAR Files • 260: Encapsulate Most Internal APIs • 261: Module System • 275: Modular Java Application Packaging • 282: jlink: The Java Linker • Tool to build JEP 220 Images

  21. • Most simple way to think of… • Add declaration to JAR defining exposed API • No more public = exposed to everything • JDK 9 ~69 modules • java.base= 5575 classes • java.desktop= 5835 classes • java.corba = 1830 classes

  22. module com.foo.bar { } module com.foo.bar { requires org.baz.qux; }

  23. module com.foo.bar { requires org.baz.qux; exports com.foo.bar.alpha; exports com.foo.bar.beta; }

  24. META-INF/ META-INF/MANIFEST.MF module-info.class com/foo/bar/alpha/AlphaFactory.class com/foo/bar/alpha/Alpha.class

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend