Download Issue

Total Page:16

File Type:pdf, Size:1020Kb

Download Issue Issue October 2019 | presented by www.jaxenter.com #70 The digital magazine for enterprise developers JavaThe JDK’s hidden 13 treasures i Jakarta EE 8 Let the games begin JDK 13 Why text blocks are worth the wait OpenJFX 13 JavaFX gets its own identity © Teguh Mujiono/Shutterstock.com, Pushkin/Shutterstock.com Illustrationen: Sun Microsystems Inc., S&S Media Editorial Let’s celebrate Java – three times! It’s that time again: A new Java version is here! Java 13 Last but not least: Jakarta EE, the follow-up project of was launched as planned, six months after the release Java EE, has announced its first release under the umbrella of of Java 12, and again it has some interesting features on the Eclipse Foundation. We got hold of the executive director board. In this issue of Jax Magazine, we’ve covered them of the Eclipse Foundation, Mike Milinkovich, and asked him for you in detail. about the current status of Jakarta EE. The good news doesn’t end there, as JavaFX 13 has also been released. The UI toolkit is no longer included in the JDK Happy reading, but has adjusted its new version releases to the new Java re- lease cadence. Find out what’s new here! Hartmut Schlosser Java 13 – a deep dive into the JDK’s 3 Kubernetes as a multi-cloud 17 new features operating system Falk Sippach Patrick Arnold Index Java 13 – why text blocks are worth the wait 6 Multi-tier deployment with Ansible 21 Tim Zöller Daniel Stender Jakarta EE 8 is sprinting towards an 9 Do we need a service mesh? 28 exciting future for enterprise Java Anton Weiss Thilo Frotscher Neural networks with PyTorch 31 Jakarta EE 8 release – the future is now! 11 Chi Nhan Nguyen Interview with Mike Milinkovich Machine learning with the Apache Kafka 37 OpenJFX 13 – “JavaFX gets its own identity” 13 ecosystem Interview with Dirk Lemmermann Kai Wähner JavaFX 13 release 14 Python: “We see a trend towards adding 43 Interview with Johan Vos more and more typing support“ The state of DevOps 16 Interview with Oz Tiram Jeff Sussna www.JAXenter.com | October 2019 2 Java 13 © Teguh Mujiono/Shutterstock.com, Pushkin/Shutterstock.com Illustrationen: Sun Microsystems Inc., S&S Media Every half a year, new Java is here! Java 13 – a deep dive into the JDK’s new features Java expert Falk Sippach celebrates the release of Java 13 in this article talking about what’s new, why it matters and what it means for the future of the programming language. by Falk Sippach • JEP 353: Reimplement the Legacy Socket API • JEP 354: Switch Expressions (Preview) You can tell this year sped by in a flash because Java’s version • JEP 355: Text Blocks (Preview) number has already increased by two! Meanwhile, we Java developers should have got used to the short release cycles. At first glance, it doesn’t look like much. In fact, due to the After all, we can now regularly try out new functions and are short time since the release of Java 12, we can’t really expect not killed every few years by a huge range of new features. In too many changes. Instead, the releases between the Long- this article we take a look at Java 13, which is released today, Term Support (LTS) versions are mostly there to offer certain September 17th, 2019. features as previews in order to get early feedback from the users. The functions are implemented in the JEPs and – as Java 13 at a glance soon as they have reached a certain maturity – delivered with The following Java Enhancement Proposals have made it into the next release of the defined half-yearly cycle. JDK 13: This makes it impossible to predict exactly how many new functions relevant to the typical Java programmer will be • JEP 350: Dynamic CDS Archives included in the next release. The goal is to finalize the pre- • JEP 351: ZGC: Uncommit Unused Memory view features by the next LTS version so that they are stable www.JAXenter.com | October 2019 3 Java 13 enough and will look good for the next three years. In Septem- The preview feature must also be activated at startup. Of ber 2021, Java 17 will take over the legacy of Java 8 and 11. course, build tools (Maven, etc.) also have configuration switches: Enhancements for Switch Expressions If you look at the feature list above from a developer’s point java --enable-preview Examples of view, it’s the last two points that are mainly interesting. For example, the Switch Expressions introduced as a preview Text Blocks instead of Raw String Literals in Java 12 have been extended due to user feedback. The Text blocks are actually only a small part of the Raw String Switch Expression is an alternative to the cumbersome and Literals (JEP 326) originally planned for Java 12. The first error-prone Switch Statement. A detailed overview of its use implementation of Raw String Literals was not yet thought can be found in various articles on Java 12 [1]. through down to the last detail, users’ feedback raised many The biggest change in Java 13 is the replacement of the questions. The exact details can be found in the mailing keyword break in the switch expression by yield. The back- list [2]. Java 13 “only” has multi-line text blocks for now. ground is the better differentiation between switch statement But that’s better than nothing. After all, many Java appli- (with possible break) and expressions (with yield). The yield cations process code snippets from other languages such as statement exits the switch and returns the result of the current HTML or SQL, which usually consist of several lines for the branch, similar to a return. sake of clarity. Until now, such strings could only be defined A code example follows in Listing 1. Above, we see a state- in a very cumbersome way, which makes them difficult to ment with break and fall through. In the direct comparison read. For example, extra control commands (escaping with follows a switch expression with the new keyword yield and \n) must be used for line breaks. Other languages such as multiple labels. In contrast to the first variant, no variable is Groovy, Scala or Kotlin have long offered the possibility of changed, but the result of the case branch is returned directly. defining multi-line texts. The Arrow syntax introduced in Java 12 still works (List- The new text blocks use triple quotation marks as delim- ing 2). iters and can be used wherever normal strings are allowed. Switch Expressions remain in preview for the time being, Listing 3 shows the differences between traditional and new so there could be further adjustments in future Java versions. syntax. The opening and closing triple quotes must be in a When compiling with JDK 13, the corresponding flags must separate line. Nevertheless, the actual content starts with the therefore be specified: second line. This increases the readability of the source code, as the indentation of the first line is displayed correctly in the javac --release 13 --enable-preview Examples.java source text. Further examples can be found in Tim Zöller’s article in this Listing 1 Listing 2 JaxMag, which deals specifically with JEP 355. Text blocks are re- // Switch Statement with break private static String expressionWithArrow(int i) { placed by normal strings at com- private static String statementBreak(int switchArg){ return switch (i) { pile time; in the byte code, you String str = "not set"; case 1, 2 -> "one or two"; can no longer see how the string switch (switchArg){ case 3 -> "three"; was originally defined. case 1: default -> "smaller than one or more than three"; case 2: }; Dynamic CDS Archives str = "one or two"; } Besides the new features that are break; obvious to developers, a lot has case 3: happened under the hood of the str = "three"; Listing 3 JVM and in the class library. Class break; // Without Text Blocks Data Sharing (CDS) was intro- }; String html = "<html>\n" + duced back in Java 5. The goal of return str; " <body>\n" + CDS is to shorten the start times of } " <p>Hello, Escapes</p>\n" + Java applications by storing cer- " </body>\n" + tain information about classes in // Switch Expression with yield "</html>\n"; Class Data Sharing archives. This private static String expressionBreakWithValue(int switchArg){ data can then be loaded at runt- return switch (switchArg){ // With Text Blocks ime and used by several JVMs. case 1, 2: yield "one or two"; String html = """ Until Java 10, however, the case 3: yield "three"; <html> shared archives were only accessi- default: yield "smaller than one or bigger than three"; <body> ble for the Bootstrap Class Load- }; <p>Hello, Text Blocks</p> er. Starting with Java 10, CDS } </body> </html>"""; was extended by Application Class Data Sharing (AppCDS). www.JAXenter.com | October 2019 4 Java 13 AppCDS enables the built-in system and platform class loader Since Java 10 we can look forward to new Java releases as well as user-defined class loaders to access the CDS archives. twice a year (March and September). Since of course not so Class lists are required to create the CDS archives in order to much can happen in development in half a year, the respective identify the classes to be loaded. feature lists are fortunately manageable. However, the short Previously, these class lists had to be determined by trial update cycles allow us to regularly try out the new features at runs of the application to determine which classes were actu- short intervals.
Recommended publications
  • Jersey 3.0.0-M1 User Guide Jersey 3.0.0-M1 User Guide Table of Contents
    Jersey 3.0.0-M1 User Guide Jersey 3.0.0-M1 User Guide Table of Contents Preface ........................................................................................................................... xvii 1. Getting Started ................................................................................................................ 1 1.1. Creating a New Project from Maven Archetype .......................................................... 1 1.2. Exploring the Newly Created Project ........................................................................ 1 1.3. Running the Project ............................................................................................... 3 1.4. Creating a JavaEE Web Application ......................................................................... 5 1.5. Creating a Web Application that can be deployed on Heroku ........................................ 6 1.5.1. Deploy it on Heroku ................................................................................... 8 1.6. Exploring Other Jersey Examples ........................................................................... 11 2. Modules and dependencies .............................................................................................. 12 2.1. Java SE Compatibility .......................................................................................... 12 2.2. Introduction to Jersey dependencies ........................................................................ 12 2.3. Common Jersey Use Cases ..................................................................................
    [Show full text]
  • Chapter 5: Bonforum Chat Application: Use and Design 5.1
    Chapter 5: bonForum Chat Application: Use and Design - XML, XSLT, Java, and JSP Page 1 of 22 Chapter 5: bonForum Chat Application: Use and Design This chapter introduces you to bonForum, the Web chat application that will be the major subject of the rest of the book. bonForum was designed as a tool to explore each of the subjects of this book, XML, XSLT, Java servlets, Java applets, and JavaServer Pages, while solving some real Web application problems. 5.1 Installing and Running bonForum You can understand the remainder of this book much more easily if you have installed and tried out the Web chat application that it features. Therefore, we begin this chapter with instructions for installing and running bonForum. 5.1.1 A Preview of the Rest of the Book After helping you install and try bonForum, this chapter gives you some hints about how you can customize bonForum and develop it further yourself. After that, we discuss the design process. This chapter ends with some additional material about using XML data in Web applications. The next chapter continues this overview of the entire bonForum project and begins by describing the implementation that our design led us to develop. That chapter ends with highlights of some of the major problems that we encountered, together with solutions found and solutions planned. In Chapters 7–11, we cover in detail the code that we developed as we created this prototype for a multiuser, server-based Web application. Each of those chapters focuses on a different software technology that we applied to create the bonForum Web chat and uses excerpts from the source code to illustrate the discussion.
    [Show full text]
  • Interfacing Apache HTTP Server 2.4 with External Applications
    Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick November 6, 2012 Who am I? Interfacing Apache HTTP Server 2.4 with External Applications Met Unix (in the form of Xenix) in 1985 Jeff Trawick Joined IBM in 1990 to work on network software for mainframes Moved to a different organization in 2000 to work on Apache httpd Later spent about 4 years at Sun/Oracle Got tired of being tired of being an employee of too-huge corporation so formed my own too-small company Currently working part-time, coding on other projects, and taking classes Overview Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Huge problem space, so simplify Perspective: \General purpose" web servers, not minimal application containers which implement HTTP \Applications:" Code that runs dynamically on the server during request processing to process input and generate output Possible web server interactions Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Native code plugin modules (uhh, assuming server is native code) Non-native code + language interpreter inside server (Lua, Perl, etc.) Arbitrary processes on the other side of a standard wire protocol like HTTP (proxy), CGI, FastCGI, etc. (Java and \all of the above") or private protocol Some hybrid such as mod fcgid mod fcgid as example hybrid Interfacing Apache HTTP Server 2.4 with External Applications Jeff Trawick Supports applications which implement a standard wire protocol, no restriction on implementation mechanism Has extensive support for managing the application[+interpreter] processes so that the management of the application processes is well-integrated with the web server Contrast with mod proxy fcgi (pure FastCGI, no process management) or mod php (no processes/threads other than those of web server).
    [Show full text]
  • Java Version 40 Download Apache Tomcat ® Welcome to the Apache Tomcat ® 9.X Software Download Page
    java version 40 download Apache Tomcat ® Welcome to the Apache Tomcat ® 9.x software download page. This page provides download links for obtaining the latest version of Tomcat 9.0.x software, as well as links to the archives of older releases. Unsure which version you need? Specification versions implemented, minimum Java version required and lots more useful information may be found on the 'which version?' page. Quick Navigation. Release Integrity. You must verify the integrity of the downloaded files. We provide OpenPGP signatures for every release file. This signature should be matched against the KEYS file which contains the OpenPGP keys of Tomcat's Release Managers. We also provide SHA-512 checksums for every release file. After you download the file, you should calculate a checksum for your download, and make sure it is the same as ours. Mirrors. You are currently using https://mirror.softaculous.com/apache/ . If you encounter a problem with this mirror, please select another mirror. If all mirrors are failing, there are backup mirrors (at the end of the mirrors list) that should be available. Please see the README file for packaging information. It explains what every distribution contains. Apache Tomcat ® The Apache Tomcat ® software is an open source implementation of the Jakarta Servlet, Jakarta Server Pages, Jakarta Expression Language, Jakarta WebSocket, Jakarta Annotations and Jakarta Authentication specifications. These specifications are part of the Jakarta EE platform. The Jakarta EE platform is the evolution of the Java EE platform. Tomcat 10 and later implement specifications developed as part of Jakarta EE. Tomcat 9 and earlier implement specifications developed as part of Java EE.
    [Show full text]
  • Extending a J2EE™ Server with Dynamic and Flexible Resource Management
    Extending a J2EE™ Server with Dynamic and Flexible Resource Management 1 1 2 1 Mick Jordan , Grzegorz Czajkowski , Kirill Kouklinski , and Glenn Skinner 1 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, CA 95054, USA {firstname.lastname}@sun.com 2School of Computer Science, University of Waterloo, Waterloo, ON N2L 3G1, Canada [email protected] Abstract. The Java™ 2 Platform, Enterprise Edition (J2EE™) is the standard platform for hosting enterprise applications written in the Java programming language. A single J2EE server can support multiple applications much like a traditional operating system, but performance levels can be difficult to control, due to the absence of resource management facilities in the Java platform. The Resource Management (RM) interface addresses this problem by providing a flexible and extensible framework for managing resources that is applicable across a broad spectrum, from low-level resources like CPU time to higherlevel resources such as database connections. RM has been implemented in the Multi-tasking Virtual Machine (MVM), a scalable operating environment for multiple applications based on the concept of isolated computations. This paper describes the application of MVM and RM to the management of resources in a J2EE Server and shows that application performance can be controlled flexibly and easily with low overhead and minimal intrusion. 1 Introduction The Java™ 2 Platform, Enterprise Edition (J2EE™) [1] is the standard server-side environment for developing enterprise applications in the Java programming lan- guage. J2EE is itself layered on the Java™ 2 Platform, Standard Edition (J2SE™) [2]. In many respects the combination of the J2EE and J2SE platforms subsumes the un- derlying operating system (OS).
    [Show full text]
  • Beginning Jakarta EE Web Development Using JSP, JSF, Mysql, and Apache Tomcat for Building Java Web Applications
    apress.com Luciano Manelli, Giulio Zambon Beginning Jakarta EE Web Development Using JSP, JSF, MySQL, and Apache Tomcat for Building Java Web Applications An update of a comprehensive Java web application development book A rare combination of all the key APIs and server necessary to build Java web applications Explains how JSP and JSF are key technologies found in the Jakarta EE platform with Eclipse Start building Java-based web applications now, even if you’re a complete newcomer to Java. Comprehensive and example-driven, this bookis all you need to develop dynamic Java-based web applications using JSP, connect to databases with JSF, and put them into action using the 3rd ed., XV, 407 p. 100 illus. popular open source Java web server, Apache Tomcat. Beginning Jakarta EE Web Development is a comprehensive introduction to building Java-based web applications using JSP, JSF, MySQL, Printed book and the Apache Tomcat web application server. Other APIs including JSON, JSTL, and XML Softcover parser are covered along the way.Key concepts are made easy to grasp with numerous working 37,99 € | £32.99 | $44.99 examples and a walk-through of the development of a complete ecommerce project. This book [1]40,65 € (D) | 41,79 € (A) | CHF is written for professionals by practicing Java web application professionals and experts. What 45,00 You Will Learn Build Java-based web applications using JSP and JSF with Eclipse Jakarta EE Configure your database with MySQL Define XML documents for your applications Use the eBook Apache MyFaces APIs to create JSF applications Integrate and implement JSF and JSP 29,99 € | £25.99 | $34.99 together Build an online ecommerce web application Who This Book Is For Programmers new [2] 29,99 € (D) | 29,99 € (A) | CHF to programming in Java and programming in general.
    [Show full text]
  • GNU/Linux Magazine Hors-Série N°66 Apache Introduction
    LES GUIDES DE sur les origines d Ce documntslapriéxvj-g(@h.)26013à:5 Tout ce qu LE GUIDE COMPLET POUR METTRE EN PLACE ET BIEN CONFIGURER VOTRE SERVEUR WEB APACH France METRO : 12.90 et sur ses principales Introduction fonctionnalités il faut savoir Apache CH : 18,00 CHF Installation et con Installer son premier BEL/PORT.CONT : 13,90 serveur et choisir le mécanisme d plus adapté authenti HORS-SÉRIE guration ���� cation le DOM TOM : 13,90 Programmer pour le Web PHP, Python, Perl et Ruby : quelques bases pour bien programmer avec les langages du Web CAN : 18,00 $ cad Aller plus loin MAR : 130 MAD Des éléments de con pour des besoins plus spéci (LDAP, chi guration avancée ques L 15066 ff Édité par Les Éditions Diamond Éditions Les par Édité rement, ...) www.ed-diamond.com -66H F: Tutoriels Des pas-à-pas 12,90 pour passer E rapidement à la pratique € -RD Ce documntslapriéxvj-g(@h.)26013à:5 2 GNU/LiNUx maGaziNeHors-série N°66 : apacHe Impression : Service abonnement: Responsable publicité: Conception graphique: Remerciements Secrétaire derédaction Rédacteur enchef: Directeur depublication: Sites : Service commercial: E-mail : Tél. : est éditépar GNU/Linux MagazineHors-Série Éditions Diamond. rédigés parlesmembresdel'équiperédactionnelledes Les articlesnonsignéscontenusdanscenuméroontété respectif. droit ayant leur de propriété sont la dans le magazine les représentés logos Tous respectif. citées dans ce numéro sont déposées par les sans aucun marques Toutes d’information, but publicitaire. leur propriétaire figurant dans d’adresses les et prix pages de sont rédactionnelles indications données Les à renvoyés. titre ni rendus, ni sont GNU/Linux Magazine France Hors-série, publiés ou non, ne particulier, les manuscrits, photos accord écrit et de la société Les éditions Diamond.
    [Show full text]
  • Metro User Guide Metro User Guide Table of Contents
    Metro User Guide Metro User Guide Table of Contents Preface .............................................................................................................................. x 1. Introduction to Metro ....................................................................................................... 1 1.1. Required Software ................................................................................................ 1 1.2. What is WSIT? .................................................................................................... 1 1.2.1. Bootstrapping and Configuration ................................................................... 2 1.2.2. Message Optimization Technology ................................................................ 3 1.2.3. Reliable Messaging Technology .................................................................... 4 1.2.4. Security Technology ................................................................................... 4 1.3. How Metro Relates to .NET Windows Communication Foundation (WCF) ...................... 5 1.4. Metro Specifications ............................................................................................. 5 1.4.1. Bootstrapping and Configuration Specifications ............................................... 7 1.4.2. Message Optimization Specifications ............................................................. 8 1.4.3. Reliable Messaging Specifications ............................................................... 10 1.4.4. Security Specifications
    [Show full text]
  • Jakarta Concurrency 2.0 Specification Document
    Jakarta Concurrency Jakarta Concurrency Team, https://projects.eclipse.org/projects/ee4j.cu 2.0, 2020-10-08T19:20:31Z Table of Contents Eclipse Foundation Specification License . 1 Disclaimers. 2 Jakarta Concurrency Specification, Version 2.0 . 3 1. Introduction. 4 1.1. Overview . 4 1.2. Goals of this specification. 4 1.3. Other Java Platform and Jakarta Specifications . 4 1.4. Concurrency Utilities for Java EE Expert Group at the JCP . 5 1.5. Document Conventions. 5 2. Overview . 6 2.1. Container-Managed vs. Unmanaged Threads . 6 2.2. Application Integrity . 6 2.3. Container Thread Context . 7 2.3.1. Contextual Invocation Points. 8 2.3.1.1. Optional Contextual Invocation Points . 8 2.3.2. Contextual Objects and Tasks . 8 2.3.2.1. Tasks and Jakarta Contexts and Dependency Injection (CDI) . 9 2.4. Usage with Jakarta Connectors . 9 2.5. Security . 10 3. Managed Objects . 11 3.1. ManagedExecutorService. 11 3.1.1. Application Component Provider’s Responsibilities . 11 3.1.1.1. Usage Example. 12 3.1.2. Application Assembler’s Responsibilities . 18 3.1.3. Deployer’s Responsibilities. 18 3.1.4. Jakarta EE Product Provider’s Responsibilities. 18 3.1.4.1. ManagedExecutorService Configuration Attributes. 19 3.1.4.2. Configuration Examples . 19 3.1.4.3. Default ManagedExecutorService. 22 3.1.5. System Administrator’s Responsibilities. 22 3.1.6. Lifecycle . 22 3.1.6.1. Jakarta EE Product Provider Requirements . 23 3.1.7. Quality of Service . 24 3.1.8. Transaction Management. 24 3.1.8.1. Jakarta EE Product Provider Requirements .
    [Show full text]
  • Fulfilling the Vision for Open Source, Cloud Native Java
    Fulfilling the Vision for Open Source, Cloud Native Java Leveraging the strength of a united community to advance enterprise Java As Java industry leaders, developers, and enterprises join forces to evolve Jakarta EE for enterprise workloads in the cloud, we explore what cloud native Java really means, why it matters so much to so many people, and where it’s headed. Jakarta EE and Eclipse MicroProfile are trademarks of the Eclipse Foundation, Inc. Copyright (C) 2019, Eclipse Foundation, Inc. All Rights Reserved. Made available under the Eclipse Public License 2.0 (EPL-2.0). Fulfilling the Vision for Open Source, Cloud Native Java Contents 03 Executive summary 04 Charting a course for cloud native Java 07 Java is more important than ever 09 The time is right for fully open source enterprise Java 12 Developers can focus on resolving customers’ business challenges 17 Software vendors have new opportunities to build their brand 19 Enterprises must evolve key strategic assets — their Java EE applications 20 The road ahead — part 1 23 The road ahead — part 2 24 Engage in cloud native Java 26 Become an Eclipse Foundation member today 28 Join us today 2 Fulfilling the Vision for Open Source, Cloud Native Java Executive summary More than two decades after it was in the Jakarta EE Working Group to developed, Java™ is still the most deliver an open source enterprise Java popular programming language in the platform under a transparent, vendor- world1. According to industry analyst neutral process. As the cloud native firm IDC, 90 percent of Fortune 500 paradigm becomes an increasingly companies rely on Java applications2.
    [Show full text]
  • Jakarta Contexts Dependency Injection 3.0
    Jakarta Contexts and Dependency Injection Jakarta Contexts and Dependency Injection Spec Project lead by Antoine Sabot- Durand 3.0, July 30 2020 Table of Contents Preface. 1 Evaluation license . 1 Final license. 1 Eclipse Foundation Specification License - v1.0 . 1 Foreword . 2 Organisation of this document . 2 Major changes. 2 Introduction 4 1. Architecture . 5 1.1. Contracts. 6 1.2. Relationship to other specifications. 6 1.2.1. Relationship to the Jakarta EE platform specification. 6 1.2.2. Relationship to Jakarta Enterprise Bean. 7 1.2.3. Relationship to managed beans . 7 1.2.4. Relationship to Jakarta Dependency Injection . 8 1.2.5. Relationship to Jakarta Interceptors . 8 1.2.6. Relationship to Jakarta Server Faces . 8 1.2.7. Relationship to Jakarta Bean Validation . 8 1.3. Introductory examples . 8 1.3.1. Jakarta Server Faces example . 8 1.3.2. Jakarta Enterprise Bean example. 12 1.3.3. Jakarta EE component environment example . 12 1.3.4. Event example. 13 1.3.5. Injection point metadata example . 15 1.3.6. Interceptor example . 16 1.3.7. Decorator example. 18 Part I - Core CDI 20 2. Concepts . 21 2.1. Functionality provided by the container to the bean . 21 2.2. Bean types . 22 2.2.1. Legal bean types . 22 2.2.2. Restricting the bean types of a bean . 23 2.2.3. Typecasting between bean types . 23 2.3. Qualifiers . 23 2.3.1. Built-in qualifier types . 25 2.3.2. Defining new qualifier types . 26 2.3.3. Declaring the qualifiers of a bean .
    [Show full text]
  • 2020 Jakarta EE Developer Survey Report Executive Summary
    2020 Jakarta EE Developer Survey Report Executive Summary > Spring/Spring Boot continues to be the leading framework for building cloud native applications, but its share declines 13% (from 57% in 2019 to 44% in 2020). > Jakarta EE is emerging as the second place cloud native framework with 35% usage in this year’s survey. > The popularity of microservices may be waning, with the usage of the microservices architecture for implementing Java systems in the cloud declining since last year (39% in 2020 vs 43% in 2019). > The Jakarta EE community is looking for better support for microservices in the platform. > Java/Jakarta EE 8 hits the mainstream with 55% adoption. Despite only shipping in September 2019, Jakarta EE 8 usage has skyrocketed to 17%. > Use of the monolithic architecture approach for implementing Java systems in the cloud has doubled since last year with 25% adoption reported in 2020 (up from 13% in 2019). Introduction The objective of this survey was to help Java ecosystem stakeholders better understand the requirements, priorities, and perceptions of enterprise developer communities and everyone in the Java ecosystem gain a better understanding of how the cloud native world for enterprise Java is unfolding and what that means for their strategies and businesses. From April 6 to May 5, 2020, 2,180 individuals (up from 1,772 in the 2019 survey) participated in the survey. The survey was heavily promoted on Jakarta EE Working Group and Eclipse Foundation’s various social media channels, the Jakarta EE Working Group and Eclipse Foundation websites, newsletters, blogs and through partners, including Jakarta EE Ambassadors, JUG leaders, and Java Champions.
    [Show full text]