Java in a World of Containers

Total Page:16

File Type:pdf, Size:1020Kb

Java in a World of Containers CON4429 - Java in a World of Containers [email protected] @PaulSandoz [email protected] Director, Java Virtual Machine @MiKaelVidstedt Copyright © 2017, Oracle and/or its affiliates. All rights reserved. 1 Agenda Producing images and running containers with JDK 9 Size analysis of JDK DocKer Images A quicK looK at startup me Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 2 Java 8 DocKer image • Official Java 8 SE (Server JRE) available on the docKer store • See also DockerFiles on GitHub Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 3 In a world of containers we expect… • Many distribuTons of Java runTmes • Forces that push towards – Smaller images – Faster execuTon using less resources (and respecTng resource constraints) Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 4 Java has plans for a world of containers • Official OpenJDK builds will make it easier to distribute Java runTmes • Java 9 tooling can produce custom Java runTmes that are smaller • Current and future Java tooling will produce applicaon-specific Java runTmes that startup faster Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 5 Producing DocKer images with a JDK • Very easy to create a DockerFile that copies (or adds) a tarball of a JDK – A resulTng DocKer image will be large (> 300MB) • Not necessarily good for development or execuTon – More stuff than required to build or run an applicaon Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 6 JDK 9 is modular • JDK 9 is modular and introduces modules to the Java plaorm • A module is a set of pacKages designed for reuse • Modules improve the reliability and maintainability of your programs • JDK 9 is itself composed of 79 modules Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 7 JDK 9 and custom Java runTmes • JDK 9 comes with jlink, a tool that can create custom Java runTmes – Such as, a Java runTme consisTng of just the java.base module • Note: the Java applicaon need not be modular Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 8 Project Portola and Alpine Linux • The OpenJDK Portola Project aims to provide a port of the JDK to the Alpine Linux distribuTon • Early access builds of the JDK port are available • jlink can be used to create custom Java runTmes for Alpine Linux Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 9 Demo Crea%ng Docker images with Alpine Linux, Java, and jlink Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 10 Running JDK 9 in DocKer containers • The JDK has not necessarily been a model ciTzen and respecTng resource constraints when running in a container • JDK 9 has a few improvements to respect resource constraints – These improvements have been bacK ported to a JDK 9 release Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 11 RespecTng memory limits • The JDK respects group memory limits set for the container (see docker run memory constraints) -XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 12 RespecTng CPU constraints • The JDK respects some CPU constraints set for the container (see docker run cpuset constraint) • java.lang.Runtime.availableProcessors reports correct number of CPUs Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 13 Stable execuTon • The JVM ensures stable execuTon when resources change • G1 Garbage Collector operates on acTve CPU count discovered at JVM startup Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 14 Ongoing improvements planned for future releases • JDK-8146115 “Improve Docker container detecTon and resource configuraon usage” • More robust container detecTon logic – Evaluang support for further docKer run flags --cpus --cpu-quota --cpu-period --cpu-shares • New -XX:ActiveProcessorCount flag • Total and Avail memory extracted from cgroup /proc file system Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 15 Ongoing improvements planned for future releases • JDK-8186248 “Allow selecTng Heap % of available RAM” • Dra JEP: Container aware Java hp://openjdK.java.net/jeps/8182070 – Provide Java API access to container metrics Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 16 Demo Running Java (jshell), in a docker container, and respec%ng resource constraints Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 17 For a more comprehensive demonstraon… • See tutorial on running and monitoring a Java applicaon in a Kubernetes cluster • DocKer images can be created and published using Wercker Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 18 Size Analysis Viewer discreon advised: Bar charts ahead! Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 19 DocKer Image • DocKer image using DockerFile 800 568 – FROM oraclelinux:7 JDK 700 oraclelinux:7 – ADD jdK-9+181-linux-x64_bin.tar.gz 600 500 400 • Let’s opTmize! Size (MB) 300 200 229 100 0 Full JDK Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 20 Streamlining the JRE using jlinK • Full JDK – Default JDK (not jlinK:ed) 800 568 • JDK java.base 700 oraclelinux:7 – jlink —add-modules java.base 600 • “ney” 500 – A set of modules expected to be sufficient for many Java applicaons 400 • jlink --add-modules Size (MB) 300 java.base, 60 46 java.logging, java.management, 200 229 229 229 java.xml, jdk.management, 100 jdk.unsupported 0 – Note: Does not include the nery Full JDK “netty” java.base applicaon code! Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 21 Streamlining the base image 800 oraclelinux:7 vs oraclelinux:7-slim 568 700 568 JDK 600 • oraclelinux:7 (229 MB) Base – Contains Everything™ …and then 500 some 400 Size (MB) 300 – Certainly more than Java needs 46 60 200 229 229 229 • 46 60 oraclelinux:7-slim (118 MB) 100 118 118 118 – Streamlined to bare necessiTes 0 – Saves 111 MB • Further opTmizaon - Strip out oraclelinux:7 + “netty” oraclelinux:7 + Full JDK oraclelinux:7 + java.base oraclelinux:7-slim + “netty” individual files oraclelinux:7-slim + Full JDK oraclelinux:7-slim + java.base – Analyze shared libraries/dependency graph and strip out unneeded files Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 22 Small. Simple. Secure. Alpine Linux is a security-oriented, lightweight Linux distribuTon based on musl libc and busybox. – hrps://www.alpinelinux.org Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 23 DocKer Base Images Docker base image sizes 300 275 250 225 229 200 175 150 Size (MB) 125 100 117.6 75 50 25 3.966 0 oraclelinux:7 oraclelinux:7-slim alpine:3.6 Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 24 Java Images Based on alpine:3.6 400 350 300 JDK alpine:3.6 250 200 Size (MB) 150 100 50 0 Full JDK java.base “netty” Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 25 OpTmizing java.base with jlinK opTons 50 • default: no special opTons 46 JDK 45 alpine:3.6 • --compress=2 40 35 34 – ZIP compression of resources 31 30 • --strip-debug 25 – Remove all debug informaon Size (MB) 20 – Don’t try this at home! 15 10 5 4 4 4 0 default —compress=2 —compress=2 —strip-debug Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 26 …but wait, there’s more! • What’s the theoreTcal minimum? • What’s actually in a java.base JRE? Files Size (bytes) lib/modules 23,529,047 lib/server/libjvm.so 21,197,904 <other files> 1,545,818 Sum 46,272,769 Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 27 JVM Size Note: Numbers/sizes are approximate Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 28 JVM Size – JIT Compiler(s) Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 29 JVM Size – GC(s) Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 30 JVM Size – Let’s Keep one GC: Serial Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 31 JVM Size - Other Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 32 The “minimal” VM • The “minimal” VM weighs in at just Size of JVM variants 25.0 under 5MB – STll fully Java compliant 20.0 • But 15.0 – LacKs many/most of the addiTonal features Size(MB) 10.0 • No JIT compiler • Only Serial GC 5.0 • Very few debugging/serviceability features 0.0 server minimal • Probably not a good match for producTon use-cases, but an interesTng data point Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 33 A “minimal” DocKer image • HelloWorld in ~20MB – Including the Alpine base image “minimal” VM + java.base 40.0 • More extreme Java runTmes JDK 25.3 libjvm.so available can bring this down even 30.0 alpine:3.6 further (with some limitaons) – SubstrateVM from Oracle Labs 20.0 12.9 10.5 Size (MB) 10.0 4.8 4.8 4.8 4.0 4.0 4.0 0.0 default —compress=2 —strip-debug Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 34 Future: Stripping out unused classes • Not every class in a module is necessarily used by the applicaon • Finding out which classes to use is non-trivial #classes Size (bytes) – Indeterminism (halTng problem) All java.base classes 5714 19,178,884 Classes used by HelloWorld 506 8,796,290 – ReflecTon 9% 46% • Area of research, stay tuned Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 35 Sharing across instances Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Sharing Across Instances • Micro-services and DocKer encourages running many processes on the same machine • Chances are many instances will be running the exact same applicaon • OS shared libraries allows for sharing nave data • libc, libjvm.so all get shared automacally by the OS & DocKer – Assuming same layer/file/inode • What about Java class data? Copyright © 2017, Oracle and/or its affiliates.
Recommended publications
  • Apache Tomcat 9
    Apache Tomcat 9 Preview Mark Thomas, September 2015 © 2015 Pivotal Software, Inc. All rights reserved. 2 Introduction Apache Tomcat committer since December 2003 – [email protected] Tomcat 8 release manager Member of the Servlet, WebSocket and EL expert groups Consultant Software Engineer @ Pivotal Currently focused on Apache Tomcat 9 © 2015 Pivotal Software, Inc. All rights reserved. 3 Agenda Specification mandated new features Tomcat specific new features Tomcat features removed Internal changes © 2015 Pivotal Software, Inc. All rights reserved. 4 Tomcat versions Minimum 1st Stable Tomcat JavaEE Servlet JSP EL WebSocket JASPIC EOL Java SE Release 5.x 4 1.4 2.4 2.0 N/A N/A N/A 08 2004 09 2012 6.x 5 5 2.5 2.1 2.1 N/A N/A 02 2007 12 2016 7.x 6 6 3.0 2.2 2.2 1.1 N/A 01 2011 TBD 8.x 7 7 3.1 2.3 3.0 1.1 N/A 02 2014 TBD 9.x 8 8 4.0 2.4? 3.1? 2.0? 1.1? Q4 2016? TBD © 2015 Pivotal Software, Inc. All rights reserved. 5 Specification changes © 2015 Pivotal Software, Inc. All rights reserved. 6 Specifications JavaEE 8 Key elements – HTML 5.0 – HTTP/2 – Simplification – Better integration for managed beans – Better infrastructure for the cloud © 2015 Pivotal Software, Inc. All rights reserved. 7 Specifications Servlet 4.0 Work started, stalled and is now starting again – Driven by JavaOne HTTP/2 Ease of use improvements – HttpFilter, default methods Clarifications – Starting to make progress © 2015 Pivotal Software, Inc.
    [Show full text]
  • Java EE 7 Overview and Status
    Java EE 7 Overview and Status Peter Doschkinow Senior Java Architect The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Agenda . Java EE 7 Revised Scope . HTML5 Technologies . Productivity Improvements . Status and Roadmap Productivity Java EE Past, Present, & Future & HTML5 Java EE 7 Lightweight JMS 2.0, Ease of Java EE 6 Batch, Development Caching, TX Interceptor, Web Java EE 5 Pruning, WebSocket, Services Extensibility JSON Ease of Dev, J2EE 1.4 CDI, JAX-RS JAX-RPC, Enterprise Robustness CMP/ BMP, Ease of JSR 88 Java Platform J2EE 1.3 Web Development, Services Annotations, Web J2EE 1.2 Mgmt, EJB 3.0, JPA, Web Profile Deployment, JSF, JAXB, Profile Servlet, JSP, CMP, Async JAX-WS, Servlet 3.0, JAX-RS 2.0 EJB, JMS, Connector Connector StAX, SAAJ EJB 3.1 Lite RMI/IIOP Architecture Dec 1999 Sep 2001 Nov 2003 May 2006 Dec 2009 Q2 2013 10 specs 13 specs 20 specs 23 specs 28 specs 32+ specs Java EE 7 Revised Scope . PaaS theme postponed for Java EE 8 . HTML5 Support – WebSocket, JSON – HTML5 forms and markup . Higher Productivity – Less Boilerplate – Richer Functionality – More Defaults Java EE 7 – Candidate JSRs PaaS Theme Postponed for Java EE 8 . Reasons – Not enough experience in tenants management, provisioning, deployment and elasticity implementation in Cloud environments – Not enough consensus and substance as of August 2012 .
    [Show full text]
  • Openjdk – the Future of Open Source Java on GNU/Linux
    OpenJDK – The Future of Open Source Java on GNU/Linux Dalibor Topić Java F/OSS Ambassador Blog aggregated on http://planetjdk.org Java Implementations Become Open Source Java ME, Java SE, and Java EE 2 Why now? Maturity Java is everywhere Adoption F/OSS growing globally Innovation Faster progress through participation 3 Why GNU/Linux? Values Freedom as a core value Stack Free Software above and below the JVM Demand Increasing demand for Java integration 4 Who profits? Developers New markets, new possibilities Customers More innovations, reduced risk Sun Mindshare, anchoring Java in GNU/Linux 5 License + Classpath GPL v2 Exception • No proprietary forks (for SE, EE) • Popular & trusted • Programs can have license any license • Compatible with • Improvements GNU/Linux remain in the community • Fostering adoption • FSFs license for GNU Classpath 6 A Little Bit Of History Jun 1996: Work on gcj starts Nov 1996: Work on Kaffe starts Feb 1998: First GNU Classpath Release Mar 2000: GNU Classpath and libgcj merge Dec 2002: Eclipse runs on gcj/Classpath Oct 2003: Kaffe switches to GNU Classpath Feb 2004: First FOSDEM Java Libre track Apr 2004: Richard Stallman on the 'Java Trap' Jan 2005: OpenOffice.org runs on gcj Mai 2005: Work on Harmony starts 7 Sun & Open Source Java RIs Juni 2005: Java EE RI Glassfish goes Open Source Mai 2006: First Glassfish release Mai 2006: Java announced to go Open Source November 2006: Java ME RI PhoneME goes Open Source November 2006: Java SE RI Hotspot und Javac go Open Source Mai 2007: The rest of Java SE follows suit 8 Status: JavaOne, Mai 2007 OpenJDK can be fully built from source, 'mostly' Open Source 25,169 Source code files 894 (4%) Binary files (“plugs”) 1,885 (8%) Open Source, though not GPLv2 The rest is GPLv2 (+ CP exception) Sun couldn't release the 4% back then as free software.
    [Show full text]
  • Java Magazine Is Provided on an “As Is” Basis
    //NOVEMBER/DECEMBER 2014 / THE INTERNET OF THINGS JAVA IS EVERYWHERE 13 29 20 HENRIK STÅHL INDUSTRIAL AUTOMATION JAVA: THE NEXT ON JAVA AND IOT WITH ROBOTS GENERATION ORACLE.COM/JAVAMAGAZINE //table of contents / 13 20 29 COMMUNITY JAVA: THE NEXT ROBOTS MAKE JAVA DEVELOPMENT GENERATION FACTORIES Teach kids to code SMARTER and give them tools Keba’s systems help FOR THE INTERNET for success. usher in the next OF THINGS industrial revolution. JAVA IN ACTION Oracle’s Henrik Ståhl discusses the Internet of Things for Java developers. Internet of Things JAVA TECH New theme icon. See how it works. COVER ART BY LINDY GROENING COMMUNITY JAVA TECH 45 55 03 35 Embedded Rich Client ABOUT US From the Editor New to Java A Smart-Home Platform Building Castles in the Sky 05 Code Java on the Raspberry Pi for the Mass Market Use JavaFX 3D to model historical Java Nation BlueJ brings Java SE 8 development Eclipse SmartHome bridges the gap treasures and more. JavaOne recap, plus news, directly to the Raspberry Pi. between tech-savvy users and average 62 people, events, and books 38 users to provide a smart-home platform Rich Client for everyone. Java Architect A Bridge from Java 2D to JavaFX 25 50 JCP Executive Series jdeps, Compact Profiles, Profit from the easy migration path The Java Advantage for IoT and Java Modularity Embedded provided by FXGraphics2D. Freescale’s Maulin Patel discusses the A look at the future of Java modularity The Device I/O API 67 Internet of Things (IoT) and how the JCP 41 A standard API for peripherals and Fix This helps to facilitate evolving technologies.
    [Show full text]
  • Distributing Configuration with Apache Tamaya
    Configure Once, run everyhere! Configuration with Apache Tamaya BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH About Me Anatole Tresch Principal Consultant, Trivadis AG (Switzerland) Star Spec Lead Technical Architect, Lead Engineer PPMC Member Apache Tamaya @atsticks [email protected] [email protected] 6.09.16 Configure once, run everywhere 2 Agenda ● Motivation ● Requirements ● The API ● Configuration Backends ● Demo ● Extensions 6.09.16 Configure once, run everywhere 3 Motivation 6.09.16 Configure once, run everywhere 4 What is Configuration ? Simple Key/value pairs? Typed values? 6.09.16 Configure once, run everywhere 5 When is Configuration useful? Use Cases? 6.09.16 Configure once, run everywhere 6 How is it stored? Remotely or locally? Classpath, file or ...? Which format? All of the above (=multiple sources) ? 6.09.16 Configure once, run everywhere 7 When to configure? Develpment time ? Build/deployment time? Startup? Dynamic, anytime? 6.09.16 Configure once, run everywhere 8 Configuration Lifecycle ? Static ? Refreshing ? Changes triggered ? 6.09.16 Configure once, run everywhere 9 Do I need a runtime ? Java SE? Java EE? OSGI? 6.09.16 Configure once, run everywhere 10 Requirements 6.09.16 Bezeichnung Präsentation Requirements ● Developer‘s Perspective ● Architectural/Design Requirements ● Operational Aspects ● Other Aspects 6.09.16 Configure once, run everywhere 12 Developer‘s Requirements ● Easy to use. ● Developers want defaults. ● Developers
    [Show full text]
  • No. 18-956 Petitioner, V. Respondent. on Writ of Certiorari to the U.S
    No. 18-956 IN THE GOOGLE LLC, Petitioner, v. ORACLE AMERICA, INC., Respondent. On Writ of Certiorari to the U.S. Court of Appeals for the Federal Circuit JOINT APPENDIX VOLUME 1 PAGES 1-341 Thomas C. Goldstein E. Joshua Rosenkranz GOLDSTEIN & RUSSELL, P.C. ORRICK, HERRINGTON & 7475 Wisconsin Ave. SUTCLIFFE LLP Suite 850 51 West 52nd Street Bethesda, MD 20814 New York, NY 10019 (202) 362-0636 (212) 506-5000 [email protected] [email protected] Counsel of Record for Petitioner Counsel of Record for Respondent PETITION FOR A WRIT OF CERTIORARI FILED JAN. 24, 2019 CERTIORARI GRANTED NOV. 15, 2019 TABLE OF CONTENTS VOLUME 1 Docket Excerpts: U.S. Court of Appeals for the Federal Circuit, No. 13-1021 .................................. 1 Docket Excerpts: U.S. Court of Appeals for the Federal Circuit, No. 17-1118 .................................. 3 Docket Excerpts: U.S. District Court for the Northern District of California, No. 3:10-cv-03561 .................................................... 5 Transcript of 2012 Jury Trial Proceedings (excerpts) ............................................................... 30 Final Charge to the Jury (Phase One) and Special Verdict Form, Dist. Ct. Docs. 1018 & 1018-1 (Apr. 30, 2012) ....................................... 72 Special Verdict Form, Dist. Ct. Doc. 1089 (May 7, 2012) ......................................................... 95 Trial Exhibit 7803, Deposition Clips of Henrik Stahl Played by Video During Trial (Jan. 14, 2016) (excerpts) ...................................... 98 Order re 62 Classes and Interfaces, Dist. Ct. Doc. 1839 (May 6, 2016) ...................................... 103 Joint Filing Regarding Agreed Statement Regarding Copyrightability (ECF No. 1788), Dist. Ct. Doc. 1846 (May 7, 2016) ....................... 105 Transcript of 2016 Jury Trial Proceedings (excerpts) ............................................................. 109 Final Charge to the Jury (Phase One) and Special Verdict Form, Dist.
    [Show full text]
  • Creating a Java Platform Enterprise Appliance Using the Glassfish
    Creating a Java™ Platform, Enterprise Edition (Java EE Platform) Appliance Using GlassFish™ and OpenSolaris™ Peter Karlsson, Technology Evangelist Lee Chuk Munn, Staff Engineer Learn how we build a JavaEE application appliance Under funded Under pressure for One Appliance per GeekTM (OAPG) cause! 2008 JavaOneSM Conference | java.sun.com/javaone | 2 Agenda OpenSolaris™ Project / GlassFish Appliance OpenSolaris Project • Short Introduction to Solaris ZFS • (Another) Short Introduction to SMF GlassFish Application Server Appliance Features Overview • Installing Applications • Integration with SMF Summary 2008 JavaOneSM Conference | java.sun.com/javaone | 3 OpenSolaris/GlassFish Appliance 2008 JavaOneSM Conference | java.sun.com/javaone | 4 What is an Appliance? An instrument or device designed for a particular use or function • A solution to solving problem by enabling the proper function Typically hardware and software bundled and tightly integrated Example of appliance • Toaster • Wireless router 2008 JavaOneSM Conference | java.sun.com/javaone | 5 Criteria for an Appliance* Purpose • Scope – scope of operation • Design – native or packaged • Ends not means – what it achieves rather than how it is done Convenience • Ease of use – aim for plug-and-play • Simplicity – if you need to open it up, then it is not simple • Compatibility – harmony with the environment Value • Alignment – align to the business requirements • Cost – lower TCO and should cost less than sum of parts • Performance – does not only refer to speed but for achieving its
    [Show full text]
  • Presentation Title up to a Maximum of Three Lines Font
    The Script Bowl Featuring Groovy, JRuby, Jython and Scala Raghavan “Rags” N. Srinivas CTO, Technology Evangelism The Script Bowl: Groovy Style Guillaume Laforge VP Technology at G2One, Inc. Groovy Project Manager http://www.g2one.com Guillaume Laforge Groovy Project Manager • Co-author of the Groovy in Action best-seller Manning • JSR-241 Spec Lead, • VP Technology at G2One, Inc. standardizing the Groovy • Professional services around dynamic language in the JCP Groovy and Grails • http://www.g2one.com • Initiator of the Grails web application framework 2008 JavaOneSM Conference | java.sun.com/javaone | 3 Groovy is… An Open Source dynamic language for the Virtual Machine for the Java™ platform (Java Virtual Machine or JVM™ machine) No impedence mismatch with Java™ programming environment • Groovy uses a syntax much like Java programming language • Shares the same object / threading / security model as Java programming language • Uses the same APIs (regex, collections, strings…) • Compiles down to normal Java programming language bytecode Provides native syntax constructs • Lists, maps, regex, ranges Supports closures • Simpler than any proposals for Java programming language! Groovy simplifies the use of many Java programming language APIs • XML, Swing, JDBC™ API, unit testing & mocking, templating … 2008 JavaOneSM Conference | java.sun.com/javaone | 4 The Script Bowl: JRuby Charles Nutter Technical Lead, JRuby JRuby Co-Lead Charles Oliver Nutter Longtime developer of Java application environment (11+ yrs ) Engineer at Sun Microsystems
    [Show full text]
  • Java (Software Platform) from Wikipedia, the Free Encyclopedia Not to Be Confused with Javascript
    Java (software platform) From Wikipedia, the free encyclopedia Not to be confused with JavaScript. This article may require copy editing for grammar, style, cohesion, tone , or spelling. You can assist by editing it. (February 2016) Java (software platform) Dukesource125.gif The Java technology logo Original author(s) James Gosling, Sun Microsystems Developer(s) Oracle Corporation Initial release 23 January 1996; 20 years ago[1][2] Stable release 8 Update 73 (1.8.0_73) (February 5, 2016; 34 days ago) [±][3] Preview release 9 Build b90 (November 2, 2015; 4 months ago) [±][4] Written in Java, C++[5] Operating system Windows, Solaris, Linux, OS X[6] Platform Cross-platform Available in 30+ languages List of languages [show] Type Software platform License Freeware, mostly open-source,[8] with a few proprietary[9] compo nents[10] Website www.java.com Java is a set of computer software and specifications developed by Sun Microsyst ems, later acquired by Oracle Corporation, that provides a system for developing application software and deploying it in a cross-platform computing environment . Java is used in a wide variety of computing platforms from embedded devices an d mobile phones to enterprise servers and supercomputers. While less common, Jav a applets run in secure, sandboxed environments to provide many features of nati ve applications and can be embedded in HTML pages. Writing in the Java programming language is the primary way to produce code that will be deployed as byte code in a Java Virtual Machine (JVM); byte code compil ers are also available for other languages, including Ada, JavaScript, Python, a nd Ruby.
    [Show full text]
  • Javaone 2017
    JavaOne 2017 An Overview Paul Webber October 17, 2017 The Conference Oct 1 - 5 ● Friday, Sep 29, Java Champion Summit at Oracle HQ ● Saturday, Sep 30, JavaOne4Kids, Hilton Union Square ● Sunday - Wednesday, Sessions at Moscone West ● Thursday, Sessions at Marriott Marquis Java Champion Summit JC Summit Agenda 2016 ● Netbeans Update - Handed over to the Apache Foundation https://netbeans.org/community/apache-incubator.html ● JDK 9 (mid 2017) ● Java EE 8 (end of 2017) and Java EE 9 (end of 2018) ● Cloud PaaS ● Oracle IaaS ● Oracle Cloud ● Java Community Process JC Summit Agenda 2017 ● Java EE Update - Handed over to the Eclipse Foundation https://www.eclipse.org/org/foundation/ ● JDK Release Cycle - Twice a year - 18.3, 18.9, 19.3 etc. ○ Project Panama - Foreign Function Interface (VM level) ○ Project Valhalla - Specialized Generics and Value Types ○ Project Amber - Local-Variable Type Inference and Enhanced Enums ○ Project Loom - Continuations and Fibers (enhancing concurrency) ● Java Groups around the World ○ Even a Virtual JUG ● Java on Mobile ● Java Community Process JDK New Release Cycle Changes to the JDK Release Model by Aurelio Garcia-Ribeyro https://youtu.be/UeyyLielXsU JDK 9 Released! List of JEPs from the JSRs 102: Process API Updates 238: Multi-Release JAR Files 274: Enhanced Method Handles 110: HTTP 2 Client 240: Remove the JVM TI hprof Agent 275: Modular Java Application Packaging 143: Improve Contended Locking 241: Remove the jhat Tool 276: Dynamic Linking of Language-Defined Object Models 158: Unified JVM Logging 243: Java-Level
    [Show full text]
  • 2007 Javaonesm Conference Word “BENEFIT” Is in Green Instead of Orange
    there are 3 cover versions: Prospect 1 (Java) It should say “... Save $200!” on the front and back cover. The first early bird pricing on the IFC and IBC should be “$2,495”, and the word “BENEFIT” is in orange. ADVANCE CONFERENCE GUIDE Prospect 2 (Non-Java) The front cover photo and text is different from Prospect 1. The text of the introduction Last Chance to Save $200! Register by April 4, 2007, at java.sun.com/javaone paragraphs on the IFC is also different, the 2007 JavaOneSM Conference word “BENEFIT” is in green instead of orange. Features Java Technology, Open Source, Web 2.0, Emerging Technologies, and More Don’t miss this year’s newly expanded content. Advance your development skills with hundreds of expert-led, in-depth technical sessions in nine tracks over four days: The back cover and the IBC are the same as Consumer Technologies | Java™ SE | Desktop | Java EE | Java ME Prospect 1. The Next-Generation Web | Open Source | Services and Integration | Tools and Languages How to navigate this brochure and easily find what you need... Alumni For other information for Home Conference Overview JavaOnePavilion this year’s Conference, visit java.sun.com/javaone. It should say “... Save $300!” on the front Registration Conference-at-a-Glance Special Programs and back cover. The first early bird pricing on Hyperlinks Bookmark Buttons Search Click on any of the underlined Use the bookmark tab to Click on the buttons at the top Pull down from the Edit menu and the IFC and IBC should be “$2,395”, and the links to visit specific web sites.
    [Show full text]
  • Java Security: a Ten Year Retrospective
    Java Security: A Ten Year Retrospective Li Gong Mozilla Online Ltd Beijing, China [email protected] Abstract— The first edition of Java (both the language and the inevitable leaks to the press, and behind the scenes efforts to platform) was released in 1995, which contained the all-or- keep things quiet while solutions were being rolled out. Sun nothing security access model. A mid-1997 paper I published Microsystems was an eager participant in this fight, and I in IEEE Micro laid out a vision for the future of Java security, found myself at numerous industry conferences sitting on the which notably included a model for fine-grained access control, same panel with Jim Roskind from Netscape and Barbara a crypto architecture, and a number of other security Fox from Microsoft, lobbing verbal missiles at and mechanisms. The first implementation of these features was deflecting unflattering comments from the floor to each officially released in late 1998 as part of the JDK 1.2 platform. other. I quietly chuckled much later when I quoted George Ten years on, the original vision of Java security was largely Bernard Shaw in my Java security book, who famously said realized and the overall architecture had in fact been carried “Security is the chief pretence of civilization.” But I am over to both the enterprise Java and mobile Java platforms. getting ahead of myself here. This paper reflects on lessons -- technical and otherwise -- learned in the process of designing and implementing the Java Soon after Java’s first release, a more scholarly debate on security architecture and in the aftermath of its release into the runtime security (a term that was mostly focused on Java but real world also generalized to include any mobile code) raged on the ACM Risks Forum [1], the most popular discussion forum Keywords-Java; security; least privilege; access control; safe on such topics that was founded and moderated by Peter G.
    [Show full text]