Tag Archives: Java

Eclipse completes enterprise Java move with Jakarta EE 8

Enterprise Java has completed its move from Oracle to the Eclipse Foundation in the form of Jakarta EE 8, the new version of the Java Enterprise Edition specification now under the auspices of Eclipse.

The Eclipse Foundation introduced the Jakarta EE 8 Full Platform and Web Profile in a live stream of its JakartaOne virtual conference on Sept. 10.

“From an industry perspective, this is big news, because it means that we’ve successfully migrated the intellectual property and all the code and all the specs out of Oracle and into a new community-led process,” said Mike Milinkovich, executive director at the Eclipse Foundation.

Enterprise Java stability

The transfer to Eclipse represents a move to stability with an eye toward the future, as Java evolves to meet the needs of modern, cloud-native computing environments. In that regard, Eclipse launched a cloud-native Java e-book entitled A Vision for Open Source, Cloud Native Java. The e-book describes what cloud-native Java is, why it matters and where Jakarta EE is headed in the future.

“This is a great first proof point of the Jakarta EE project, and perfectly timed,” said Cameron Purdy, CEO and founder of xqiz.it, a Lexington, Mass., startup focused on a new programming language designed for the cloud. “The real proof lies ahead, with Jakarta EE 9. At that point, we’ll have a much better understanding of the standard’s release cadence and how it will be adapting to the modern cloud architectures that are becoming pervasive.”

In addition to releasing the Jakarta EE 8 specs, the Eclipse Foundation certified Eclipse GlassFish 5.1 as an open source-compatible implementation of the Jakarta EE 8 Platform. GlassFish 5.1 was tested against the Jakarta EE 8 Technology Compatibility Kits for the Full Platform and Web Profiles.

Mike MilinkovichMike Milinkovich

The shift over to Eclipse is also significant because enterprises want to migrate their existing Java systems to the cloud — particularly in hybrid cloud scenarios — and the foundation, led by members like Red Hat and IBM, will help enable that, Milinkovich said.

And just as important, there are millions of developers with Java skills who would like to take those skills to new application scenarios based on microservices, Docker container and Kubernetes, he added.

“We see this is a real opportunity to refresh the demand for and interest in the Java platform for the next 20 years of application development,” he said.

Where does Jakarta EE go from here?

The real proof lies ahead, with Jakarta EE 9. At that point, we’ll have a much better understanding of the standard’s release cadence and how it will be adapting to the modern cloud architectures.
Cameron PurdyCEO, xqiz.it

While the foundation does not yet have an official roadmap for Jakarta EE, short-term targets for the technology include upgrading the support for Java SE to at least Java SE 11, which is a Long Term Support release. Currently, Jakarta EE 8 supports Java SE8.

“There is a long list of requested features, but one of the biggest topics the community will decide in the next few weeks or months is what to do about the namespace,” Milinkovich said.

While negotiating the move of Java EE to Eclipse, Oracle would not allow the Eclipse Foundation to modify the javax package namespace or to use the Java trademarks currently used in Java EE specifications. And Java, including the existing specification names, cannot be used by Jakarta EE specifications.

The foundation has two options for moving from the javax namespace to Jakarta: a “big bang” move where they make wholesale changes all at once, or to tackle the move incrementally, Milinkovich said.

Steering the ship

Meanwhile, a key accomplishment here is the ability to bring together large companies that compete with each other commercially in support of a new specification.

Core members of the Eclipse Jakarta EE Working Group include IBM, Payara, Red Hat, Fujitsu and Tomitribe.

“The big takeaway for me is the Eclipse Foundation’s stewardship, both in wrangling the various commercial participants as well as shepherding the traditional Java EE community toward a more modern, cloud-native future,” said Stephen O’Grady, an analyst at RedMonk in Portland, Maine.

Indeed, the sheer level of effort required to even slightly redirect the course of a ship the size of the Java community is difficult to comprehend, so credit to Eclipse for being able to pull this off, O’Grady added.

Go to Original Article
Author:

Developers favor JVM languages for mobile, enterprise

Languages that run on the Java Virtual Machine have lined up well with mobile app developers, alongside the usual code suspects.

JavaScript, Java, Python, PHP and C# top RedMonk’s latest list of programming languages, ranked by code usage (GitHub pull requests) and discussions (Stack Overflow Q&As). C++, CSS, Ruby, C and Objective-C round out the top 10. But a host of JVM languages rank in the middle of the pack and are on the move up the list.

The JVM supports a host of programming languages, such as Kotlin, Groovy, Scala and Clojure, along with JRuby and Jython, as well as more obscure languages such as BeanShell, Pizza, Pnuts and Xtend. Scala (ranked 12th), Clojure and Groovy (tied at 21st) advanced in the RedMonk rankings, while Kotlin — one of the hottest languages around — fell back one spot to 28th.

Bright future for Kotlin, Swift for mobile OS development

Kotlin is especially popular with mobile app developers as a preferred language for Android application development due to its clean, modern design, wrote Stephen O’Grady, analyst at RedMonk, based in Portland, Maine, in a blog post.

Scala had dropped for three consecutive quarters prior to this latest ranking, although the drops were rather small. The causative factors behind Scala’s past declines are unclear, but likely involve competition not only from Java but from other JVM languages such as Clojure, Groovy and even Kotlin.

“Scala had its day in the sun, but it seems to be suffering from growing pains and unable to move under the resistance of its own considerable weight,” said Cameron Purdy, CEO of Xqiz.it, a Lexington, Mass., software startup in stealth mode, and formerly senior vice president of development at Oracle.

Swift, a newer language to build iOS applications, also slid one slot out of a tie with Objective-C, but still enjoys increased attention from developers. IBM and others have pushed Swift as a server-side language.

Like Kotlin, Swift appeals to developers as a language that hides the ugliness of a legacy platform, although it drags a ton of luggage from various legacy Apple technologies that feel less clean, Purdy said.

“If I were a developer starting out today, I’d prioritize Kotlin and Swift for Android and iOS development, with JavaScript or TypeScript for the browser,” he said. “Kotlin should also suffice for the back end.”

Reading the tea leaves

Other industry experts suggest the ebbs and flows of such language popularity rankings are nothing more than periodic changes in the schemes of software development.

As programmers change development projects, they’ll shift from “vanilla Java” to Kotlin if they’re doing Android development, or to Groovy for development with Grails, or to Clojure or Scala for various functional programming work, said Ted Neward, director of developer relations at Smartsheet, Bellevue, Wash.

The more Java improves, the less these other ‘Java++’ languages have compelling enough differences to justify the overhead of using something other than Java.
Charles Nuttersenior principal software engineer, Red Hat

“This is much like trying to read the tides by marking the waves on the side of the pier over a five-minute period,” he said. JVM languages in general have carved out a niche within the broader Java world, which is viable because that world is so large. “If anything, it signals that these languages are reaching a level of maturity and acceptance within the ecosystem,” he said.

Meanwhile, recent improvements in the Java language, such as lambdas in Java 8 and local variable type inference in Java 11, take some steam away from JVM alternatives, said Charles Nutter, co-lead of the JRuby open source project and a senior principal software engineer at Red Hat.

“The more Java improves, the less these other ‘Java++’ languages have compelling enough differences to justify the overhead of using something other than Java,” Nutter said.

Wanted – Cheap PC parts and Raspberry Pi for child.

Hi guys,

My son is a bit of a Minecraft geek and would like to explore the java version and look to setup a minecraft server. He’s only 8 so doesn’t have a great deal of cash but does have a little bit birthday money left over.
I already have a tower case, psu and SSD drive for the build, just looking for something cheap m-atx/itx which will run minecraft. Preferably an FM2 board/cpu or something similar.

He’s also interested in a Raspberry Pi as he’s just started using these at school to code.

As for the Pi, anything really, its just for coding so doesn’t need to be the latest model.

Thanks a lot guys.

Location: Newcastle

______________________________________________________
This message is automatically inserted in all classifieds forum threads.
By replying to this thread you agree to abide by the trading rules detailed here.
Please be advised, all buyers and sellers should satisfy themselves that the other party is genuine by providing the following via private conversation to each other after negotiations are complete and prior to dispatching goods and making payment:

  • Landline telephone number. Make a call to check out the area code and number are correct, too
  • Name and address including postcode
  • Valid e-mail address

DO NOT proceed with a deal until you are completely satisfied with all details being correct. It’s in your best interest to check out these details yourself.

Wanted – Cheap PC parts and Raspberry Pi for child.

Hi guys,

My son is a bit of a Minecraft geek and would like to explore the java version and look to setup a minecraft server. He’s only 8 so doesn’t have a great deal of cash but does have a little bit birthday money left over.
I already have a tower case, psu and SSD drive for the build, just looking for something cheap m-atx/itx which will run minecraft. Preferably an FM2 board/cpu or something similar.

He’s also interested in a Raspberry Pi as he’s just started using these at school to code.

As for the Pi, anything really, its just for coding so doesn’t need to be the latest model.

Thanks a lot guys.

Location: Newcastle

______________________________________________________
This message is automatically inserted in all classifieds forum threads.
By replying to this thread you agree to abide by the trading rules detailed here.
Please be advised, all buyers and sellers should satisfy themselves that the other party is genuine by providing the following via private conversation to each other after negotiations are complete and prior to dispatching goods and making payment:

  • Landline telephone number. Make a call to check out the area code and number are correct, too
  • Name and address including postcode
  • Valid e-mail address

DO NOT proceed with a deal until you are completely satisfied with all details being correct. It’s in your best interest to check out these details yourself.

Wanted – Cheap PC parts and Raspberry Pi for child.

Hi guys,

My son is a bit of a Minecraft geek and would like to explore the java version and look to setup a minecraft server. He’s only 8 so doesn’t have a great deal of cash but does have a little bit birthday money left over.
I already have a tower case, psu and SSD drive for the build, just looking for something cheap m-atx/itx which will run minecraft. Preferably an FM2 board/cpu or something similar.

He’s also interested in a Raspberry Pi as he’s just started using these at school to code.

As for the Pi, anything really, its just for coding so doesn’t need to be the latest model.

Thanks a lot guys.

Location: Newcastle

______________________________________________________
This message is automatically inserted in all classifieds forum threads.
By replying to this thread you agree to abide by the trading rules detailed here.
Please be advised, all buyers and sellers should satisfy themselves that the other party is genuine by providing the following via private conversation to each other after negotiations are complete and prior to dispatching goods and making payment:

  • Landline telephone number. Make a call to check out the area code and number are correct, too
  • Name and address including postcode
  • Valid e-mail address

DO NOT proceed with a deal until you are completely satisfied with all details being correct. It’s in your best interest to check out these details yourself.

Cheap PC parts and Raspberry Pi for child.

Hi guys,

My son is a bit of a Minecraft geek and would like to explore the java version and look to setup a minecraft server. He’s only 8 so doesn’t have a great deal of cash but does have a little bit birthday money left over.
I already have a tower case, psu and SSD drive for the build, just looking for something cheap m-atx/itx which will run minecraft. Preferably an FM2 board/cpu or something similar.

He’s also interested in a Raspberry Pi as he’s just started using these at school to…

Cheap PC parts and Raspberry Pi for child.

Java 18.3 marks the future of Java at JavaOne 2017

SAN FRANCISCO — While Oracle has committed to a faster cadence for releasing Java technology every six months, the company also is making sure to maintain a pipeline of new technology that’s ready to go in each release.

The next major release of Java, known as Java 18.3, is scheduled for March 2018 and will feature some of the innovations coming out of projects Oracle is currently working on that will affect the future of Java.

During his keynote at the JavaOne 2017 conference, Mark Reinhold, chief architect of the Java platform group at Oracle, identified four projects the company is working on that will bear fruit for Java 18.3 and subsequent releases.

Four projects will affect the future of Java

Reinhold identified Project Valhalla, Project Panama, Project Amber and Project Loom as key initiatives from which Java developers can expect to gain innovation in the not-too-distant future.

According to Reinhold, Project Panama is about foreign function interface data-layout control. It seeks to improve the connection between Java and native data and native code. The project focuses on interconnecting the Java Virtual Machine (JVM) and native code — a key concept for the future of Java. A description of the project on Oracle’s website said it is about enriching the connections between the JVM and well-defined but “foreign” or non-Java APIs, including many interfaces commonly used by C programmers.

The goal of Project Valhalla is to explore advanced Java Virtual Machine and language features, such as value types and generic specialization.

Meanwhile, Project Amber is about right-sizing language ceremony, he said. It’s about delivering smaller, productivity-oriented Java language features, such as local-variable type inference, enhanced enums, Lambda leftovers and more.

And Project Loom is aimed at bringing continuations and new features known as fibers to the Java platform to simplify concurrency for developers. Reinhold said Project Loom has not yet been proposed, but is currently in discussion as an effort to affect the future of Java for concurrent programming.

Solid case made for mature integration

According to Charlotte Dunlap, an analyst with GlobalData, “Many of Oracle’s announcements were actually preannouncements. However, Oracle made a solid case for how its mature integration, SOA and API management technologies will enable the next wave of Oracle’s DevOps technologies.”

Regarding Project Amber, Brian Goetz, a Java language architect in the Java platform group at Oracle, said Java has a reputation for being “a bit boilerplate-intensive,” and it takes a little too much code to do a lot of common tasks.

“So, Project Amber is a collection of smaller features that are aimed at reducing the overhead or ceremony of things that we do every day — streamlining everyday coding, but also making code more readable and more reliable,” he said.

These are features that can be delivered over time and are a good fit for the programming models that are popular in the cloud, such as functions as a service, or reactive event-based systems, like message-based systems or actors, Goetz said.

Amber adds variable type inference

Project Amber is a collection of smaller features that are aimed at reducing the overhead or ceremony of things that we do every day — streamlining everyday coding, but also making code more readable and more reliable.
Brian GoetzJava language architect at Oracle

Meanwhile, a subproject of Amber is called local variable type inference, which Goetz said is a feature that has been available in a number of other programming languages. And although Java has had type inference for many years, it’s being expanded.

“Type inference is basically just the compiler figuring out the type of something without you having to write it down,” Goetz said. “It can make code more readable by getting unnecessary information out of the way. And this next iteration is extending that to the way we declare local variables.”

This feature has been committed to Java Development Kit 18.3 and will be in the next production release of Java in March.

However, a much bigger feature in Project Amber, known as pattern matching, has been historically associated with functional programming languages, Goetz said.

More recently, it has been adopted by object-oriented programming languages, like C# and Scala. “We think it’s a really good fit for Java,” Goetz noted. “It has the ability to simplify the kind of code where you have to do multiway conditional operations.”

Project Loom to ease app maintenance

Finally, as described in Oracle software engineer Ron Pressler’s call for discussion about the initiative, Project Loom is an effort to provide an alternative implementation of threads, managed by schedulers written in Java, that preserve the same programming model of ordinary Java threads, but offer drastically improved performance and a smaller footprint.

According to the Project Loom proposal, “Project Loom’s mission is to make it easier to write, debug, profile and maintain concurrent applications meeting today’s requirements. Threads, provided by Java from its first day, are a natural and convenient concurrency construct (putting aside the separate question of communication among threads) which is being supplanted by less convenient abstractions because their current implementation as OS kernel threads is insufficient for meeting modern demands, and wasteful in computing resources that are particularly valuable in the cloud. Project Loom will introduce fibers as lightweight, efficient threads managed by the Java Virtual Machine, that let developers use the same simple abstraction but with better performance and lower footprint.”

Azure Functions, Project Fn shine at JavaOne 2017

SAN FRANCISCO Not to be outdone, while Oracle is hosting its annual Java developer festival, Microsoft released a Java-based preview of its serverless computing offering, Azure Functions.

According to TechTarget’s definition, serverless computing does not eliminate servers, but instead seeks to emphasize the idea that computing resource considerations can be moved into the background during the design process. The term is often associated with the NoOps movement and the concept may also be referred to as function as a service (FaaS) or runtime as a service (RaaS).

Serverless computing provides a great model for accelerating app development, but developers want to do it using the programming languages and development tools of their choice, Microsoft said. And ever since the company first released Azure Functions, support for Java has been a top request.

Oracle Project Fn

Developers using Oracle Cloud Platform, their laptop, or any cloud, can now build and run applications by just writing code without provisioning, scaling or managing any servers — this is all taken care of transparently by the cloud.
Bob Quillinvice president of developer relations, Oracle

Oracle also introduced and open sourced its own serverless computing offering — known as Project Fn — at JavaOne 2017. With Fn, developers using Oracle Cloud Platform can build and run applications by just writing code, without provisioning, scaling or managing servers, allowing them to focus on delivering value and new services, the company said. Fn runs across multiple clouds, further reducing risk of vendor lock-in, Oracle noted.

“Oracle deserves kudos for its recent Java efforts,” said Charles King, principal analyst with Pund-IT, who also commended Microsoft for its Azure Functions Java support. “Microsoft’s new Azure Functions Java support and Oracle’s recent JavaOne/OpenWorld announcements reflect the continuing innovations around Java and the vitality of the Java community.”

Support for different programming languages

Likewise, with the ability to run Azure Functions runtime on cross-platform .NET Core, Microsoft has built its runtime to allow support for different programming languages. Java is the first new language being introduced. The new Java runtime will share all the differentiated features provided by Azure Functions, such as the wide range of triggering options and data bindings, serverless execution model with autoscale, as well as pay-per-execution pricing, Microsoft said.

And Java developers do not need to use any new tools to develop using Azure Functions. Microsoft has released a new plug-in for the Maven build automation tool so developers can create, build and deploy Azure Functions from their existing Maven-enabled projects. The new Azure Functions Core Tools enable developers to run and debug their Java Functions code locally on any platform.

In addition, Microsoft said popular IDEs and editors such as Eclipse, IntelliJ and Visual Studio Code can be used to develop and debug Azure Functions locally.

Meanwhile, with fnproject.io, “Developers using Oracle Cloud Platform, their laptop, or any cloud, can now build and run applications by just writing code without provisioning, scaling or managing any servers — this is all taken care of transparently by the cloud,” said Bob Quillin, vice president of developer relations at Oracle, in a blog post.

Three parts to Fn

According to Quillin, Fn consists of three components: the Fn Platform; Fn Java FDK (Function Development Kit), which brings a first-class function development experience to Java developers, including a comprehensive JUnit test harness; and Fn Flow, for orchestrating functions directly in code. Fn Flow enables function orchestration for higher-level workflows for sequencing, chaining, fanin/fanout, but directly and natively in the developer’s code versus relying on a console.

The Oracle offering will have initial support for Java with additional language bindings coming soon, Quillin said. Project Fn will provide polyglot language support, including Java, Go, Ruby, Python, PHP, Rust, .NET Core, and Node.js with AWS Lambda compatibility. AWS Lambda is Amazon Web Services’ serverless computing offering.

How JSR-375 simplifies and standardizes Java EE security

When leafing through the pages of the recently ratified JSR-375, the new Java EE Security API, it’s amusing how quickly the reading of the spec turns into an exercise of uttering to yourself, Seriously, have they not standardized this stuff yet?

Historically, implementing various aspects of Java EE security was a responsibility shouldered primarily by the application server vendor, and hooking into those proprietary systems was always a headache. Any software architect who has gone through the process of setting up a WebSphere cluster, configuring a WebLogic server or doing a Liferay installation has inevitably wasted time jumping through the odious hoops that were required to connect to a proprietary user attribute registry or third-party authentication store. For those unlucky enough not to have a simple LDAP server that provided this functionality, a custom user registry might have to be developed, which meant coding against a vendor-specific API and hooking that into the application server’s runtime.

These little Java EE security nuisances were never show stoppers. There have always been workarounds or third-party frameworks that would help an organization achieve their security goals. The problem was that these various approaches weren’t standardized. And while there are many aspects of Java EE security that are documented within specifications, much of which can be found in the often overlooked Java Authentication Service Provider Interface for Containers (JASPIC) specification. Unfortunately, JASPIC isn’t fun to work with. Furthermore, it isn’t annotation-based and it doesn’t leverage container-based dependency injection. JSR-375, the Java EE Security API, is an attempt to address these security-related issues.

Containers, microservices and Java EE security

“It’s an important specification because it bridges some of the gaps that existed in previous Java EE versions,” said Java Champion Ivar Grimstad, who is hosting a JavaOne 2017 session entitled, “New Security APIs for Java EE.” “Now it’s there, and that’s a good thing. It’s a good foundation on which to build upon so if you want OAUTH or support for microservices, you have a good foundation to build upon.”

This first version of the Java EE Security API does a good job at standardizing security and addressing many of the shortcomings of the existing Java EE and JASPIC APIs.

But perhaps the most significant aspect of the JSR-375 API is the fact that it allows for all of the security information to be defined within the application, and not configured externally. “You do it all in the application,” Grimstad said. “You don’t need to configure it from the outside.”

That’s a significant improvement in managing the lifecycle of an application, especially in a world of Docker-hosted microservices that are distributed in containers. “With annotations, you can easily add security and you don’t have to do any vendo- specific configuration to get it working.”

The annotation based approach to security isn’t insignificant.

One of the nice things about JSR-375 is the fact that it doesn’t try to boil the ocean on its first run around the block. The enterprise security specification can be broken down into three key parts.

1. The authentication mechanism

Web-based authentication isn’t anything new. Every Servlet engine supports basic, digest, form and certificate authentication. But existing APIs don’t provide many hooks allowing developers to interact with the process. Doing something as simple as ensuring the authentication happens against a specific user registry isn’t possible without digging into non-standard APIs. Furthermore, there is no support for authentication mechanisms other than the aforementioned four. And mechanisms for doing things like firing off callbacks to the application after a user is authenticated don’t exist.

Many of these issues are addressed by JASPIC, but JASPIC demands a great deal of coding effort while lacking any declarative support that software developers have come to expect after the release of Java 5. The Java EE Security API’s HttpAuthenticationMechanism interface, built in JavaBeans containing sensible defaults and annotations such as @RememberMe and @LoginToContinue, greatly simplifies the act of programmatically interacting with authentication services.

2. The Java EE security identity store

The identity store is a central part of any Java EE security implementation, but a simple and standard mechanism for interacting with it has always been lacking. To simplify and standardize the process, the Java EE Security API defines an IdentityStore interface and a CredentialValidationResult object, both of which work together to perform the simple tasks of validating a user, providing the caller’s unique identifier, and the various groups to which a user belongs. Interfaces for interacting with an LDAP-based identity store or a relational database as an identity store are also defined.

3. The Java EE security context

When it comes to writing low-level code to programmatically secure Java resources, the EE specification has always been somewhat lacking. Declarative security is simple to use and always preferred, but it doesn’t meet the needs of every application. Enterprise software often has fine-grained security requirements that can only be fulfilled programmatically. That’s where the Java EE Security Context comes in.

The Security Context provides familiar methods, such as getCallerPrincipal() and isCallerInRole(String role) that helps to identify who is invoking a given resource. More interesting are methods such as the boolean hasAccessToWebResource method that can determine if a user can invoke a given HTTP method on a Servlet. Another interesting addition is the authenticate() method which programmatically triggers a challenge. Prior to the Java EE Security API, challengers were only triggered when a resource was accessed, and programmatic triggering wasn’t possible.

The team that worked on JSR-375 should be proud of their accomplishment. This first version of the Java EE Security API does a good job at standardizing security and addressing many of the shortcomings of the existing Java EE and JASPIC APIs. It is a solid foundation upon which to further build upon and enhance.

Oracle releases Java 9, Java EE 8

At long last, Oracle has made Java 9 generally available just ahead of its upcoming JavaOne developer conference in San Francisco early next month.

Java 9 — better known as Java SE 9 Platform Specification, or Java SE 9 (JDK 9) — comes nearly three years after the release of Java 8.

In addition to Java 9, Oracle announced the availability of Java Platform, Enterprise Edition 8 (Java EE 8) and the Java EE 8 Software Development Kit.

JDK 9 is a production-ready implementation of the Java SE 9 platform spec that boasts more than 150 new features, including a new module system and enhanced scalability, improved security, better performance management and a simplified development process for developers.

Modular at its core

“Coming almost three years after Java 8, Java 9 includes some notable features and capabilities, including modularity — based on Project Jigsaw, several new code compilers and a new read-eval-print loop [REPL] tool,” said Charles King, principal analyst with Pund-IT.

Although the Java modularity feature has stirred up some controversy over its development, we are optimistic that it will make innovation in the Java platform faster and easier going forward.
Mike Milinkovichexecutive director of the Eclipse Foundation

Indeed, a core highlight of Java 9 — and partly what held it up in delays — is its modularity. The Java Platform Module System, also known as Project Jigsaw, simplifies the development and maintenance of complex applications. Oracle noted that the module system also makes the JDK more flexible, and it enables developers to bundle just those parts of the JDK that are needed to run an application when deploying to the cloud.

“It is great to see Oracle ship Java 9,” Mike Milinkovich, executive director of the Eclipse Foundation, told TechTarget. “This is a significant release that has been long-awaited in the Java community. Although the Java modularity feature has stirred up some controversy over its development, we are optimistic that it will make innovation in the Java platform faster and easier going forward. Eclipse projects, including the Eclipse Java IDE, will start providing support for Java 9 over the next couple of days and weeks. Stay tuned.”

Tools for next-gen applications

In a statement, Georges Saab, vice president of development for the Java platform group at Oracle, said: “Java SE 9 is the result of industrywide development involving open review, weekly builds and extensive collaboration between Oracle engineers and members of the worldwide Java developer community via the OpenJDK Community and the JCP [Java Community Process]. This version of Java SE will provide millions of developers the updated tools they need to continue building next-generation applications with ease, performance and agility.”

In addition to Project Jigsaw, other key features in Java SE 9 include JShell, which delivers the REPL tool that simplifies the process of exploring API language features for developers.

Java 9 also features improvements to Javadoc — the tool used for generating API documentation — that make it easier for developers to learn new APIs by including a search function within the API documentation itself, as well as information on which module defines each class or interface.

Enhancements to the Streams API, which improves developer productivity and includes support for parallelism, represent another key Java 9 feature.

New, six-month release cadence

With Java 9 complete, Oracle said it is moving to a six-month release cadence for Java SE. The company is using a time-driven release model, rather than a feature-driven release model. Thus, the next release will come in March 2018 and will be named Java 18.3 — the year and month of the release. Java 18.9 will follow in September 2018.

“Java 9 is somewhat controversial, since it stands as the last major release before Oracle begins its quicker cadence and, as a result, will not be designated as a long-term support release,” King noted. “That comes with the next major version, Java 18.9, which will arrive about a year from now. That has many wondering how many customers will actively embrace this new version or wait for Java 18.9 when long-term support is available and Java 9’s new features have become more mature and reliable.”

However, with this change, Oracle will also be providing OpenJDK builds under the General Public License. And Oracle will be contributing previously commercial features to OpenJDK such as Java Flight Recorder in Oracle JDK, with the goal of making Oracle JDK and OpenJDK more aligned. OpenJDK is a free and open source implementation of Java SE.

Java EE 8 released, moving to Eclipse

Meanwhile, Oracle also delivered Java EE 8, which modernizes and simplifies the Java EE platform for the cloud and microservices with updates to eight major specifications.

“The release of Java EE 8 is a major milestone in the evolution of Java in the enterprise,” Milinkovich said. “The Eclipse Foundation is looking forward to welcoming Java EE to our community and working to ensure a faster pace of innovation for the technology in the future. We strongly believe that Eclipse’s model of open collaboration and vendor-neutral governance is going to ensure Java EE’s place in the industry for many years to come.”

Oracle recently announced its intention to move Java EE to the Eclipse Foundation, in collaboration with other vendors and the community. Oracle, Eclipse and community members are working out the details of the technology transfer and ongoing governance and process within the Eclipse community, the company said.

Mike Lehmann, vice president of product management at Oracle, said this “major release of the Java Platform, Enterprise Edition, is one we think developers are going to be excited to use. And by open-sourcing Java EE technologies to the Eclipse Foundation, we have set it up for ongoing success in the future. Oracle is committed to working with the Java EE community and the Eclipse Foundation to continue enterprise Java innovation, support and evolution.”

Key features in Java EE 8 include a new security API for cloud and platform-as-a-service-based applications; multiple Context and Dependency Injection enhancements, including support for asynchronous events; HTTP/2 support in Servlet 4.0; and more.