Skip to main content

Hashtag Jakarta EE #72

by Ivar Grimstad at May 16, 2021 09:59 AM

Welcome to the seventy-second issue of Hashtag Jakarta EE!

In the Jakarta EE Platform call this week, we decided to ask the specification projects for feedback on whether October 15, 2021 is an achievable date for having their specifications ready for release. So far, the feedback has been positive. It is great to see that the specifications are moving forward again. The Jakarta EE 9 release with the associated namespace change from javax.* to jakarta.* may very well prove to be the tap on the bottle that got the ketchup flowing.

The Eclipse Cargo Tracker is a fantastic example of an end-to-end Jakarta EE application that showcases core Jakarta EE technologies. Thanks to Scaleforce and Jelastic for providing resources to deploy the demo application to the cloud.

Try out the Cargo Tracker!

If you are interested in contributing to the project, or just look at the code, go to the Cargo Tracker GitHub repository.

A warm welcome to The Apache Software Foundation that joined the Jakarta EE working group as a guest member this week.


by Ivar Grimstad at May 16, 2021 09:59 AM

MicroProfile Metrics, Micrometer and Quarkus--an airhacks.fm podcast

by admin at May 15, 2021 09:05 AM

Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

The #140 airhacks.fm episode with Erin Schnabel (@ebullientworks) about:
Quarkus, meaningful metrics, Prometheus, OpenTracing, OpenCensus, OpenTelemetry and micrometer vs. MicroProfile Metrics
is available for download.

by admin at May 15, 2021 09:05 AM

Sending a JSON document via HTTP POST with plain Java

by admin at May 14, 2021 03:23 AM

In the following screencast:

...I posted a JSON document:


var message = """
    {"message":"hello,duke"}
""";    

...using a plain Java HttpClient:


import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpRequest.BodyPublishers;
import java.net.http.HttpResponse.BodyHandlers;

var client = HttpClient.newHttpClient();

...to the following URI:


var uri = new URI("http://localhost:8080/crud/");

...and an application/json POST HTTP request.


var request = HttpRequest.newBuilder(uri).
            POST(BodyPublishers.ofString(message))
            .header("Content-type", "application/json").
            build();


The HTTP status code and the headers are available from the HttpResponse:


var response = client.send(request, BodyHandlers.discarding());   
assertEquals(201, response.statusCode());

var locationHeader = response.headers().firstValue("Location").get();
System.out.println(locationHeader); 
//output: http://localhost:8080/crud/1620925145168

The "mockend" used in the screencast is available from: github.com/adambien/mockend


by admin at May 14, 2021 03:23 AM

On Patents and Specifications

by Mike Milinkovich at May 13, 2021 07:20 PM

We’ve been fielding a number of questions lately about the intersection of our spec process and patents. A couple of these community discussions have gone off in directions that are off target, factually incorrect, or both. Therefore, the purpose of this short FAQ is to explain the patent license options provided by the Eclipse Foundation Intellectual Property Policy for use by specifications developed by specification projects under the Eclipse Foundation Specification Process (EFSP). 

Disclaimer: This is not legal advice. I am not a lawyer. It has not been reviewed by counsel. Consult your own attorney. In addition, this note does not form part of any official Eclipse Foundation policy or process, but rather is provided for informational purposes only to aid those involved in our specification projects to better understand the EFSP and the choices available. I’ll update the content as needed.

One important point to keep in mind when reading this: we believe that the EFSP fully complies with the Open Standards Requirement for Software established by the Open Source Initiative. In other words, the EFSP is designed specifically to be open source friendly.  

Why do specifications require patent licenses?

The purpose of every specification is to stimulate the development of implementations. These implementations may be derived from open source code maintained at the Eclipse Foundation or elsewhere, or they may be independently developed. They may be made available under open source licenses or proprietary. In order to facilitate and encourage these implementations, all specification processes provide some notion of patent licenses from the parties involved in developing the specifications.

What types of patent licenses are used by various specification organizations?

There are a wide variety of specification patent license options available from various sources. 

Some terms that you may hear are:

  • FRAND means fair, reasonable, and non-discriminatory licenses. This means that before you can implement the specification you are required to obtain a license from the patent holders who developed the specification. FRAND is generally considered to be antithetical to open source development, as it requires permission and money to implement a specification or potentially even to use an implementation of such a specification.
  • FRAND-Z is FRAND where the cost of the license is set to zero. Note that although this removes the cost concerns of FRAND, permission may still be required for use and/or implementation. 
  • RF or royalty-free provides a priori royalty-free licenses from the participants developing the specifications to downstream users and implementers. This is considered a best practice for enabling open source implementations of a specification. All Eclipse Foundation specifications are developed on a royalty-free basis. 
  • Non-assert is another legal mechanism which provides a result effectively similar to royalty-free. A non-assert says that a patent holder will not assert their patent rights against an implementer or user. 

Do these licenses mean that an implementer or user can never be sued for patent infringement?

No. The patent licenses are intended to ensure that an implementer or user doesn’t need to be worried about being sued by the parties involved in developing the specifications. It does not provide protection from uninvolved third parties who may believe they have intellectual property rights applicable to the specification. 

Note that the above implies that it is in the interests of the entire community and ecosystem that many participants (particularly patent-owning participants) be involved in developing the specifications. It also explains why it is in the best interest of the community that all participants in the specification process have signed agreements in place documenting their commitment to the patent licensing under the EFSP. 

What patent licenses are granted by the EFSP?

The patent licenses provided via the EFSP apply to all downstream implementations of Final Specifications, including independent implementations. They cover all patents owned by each Participant in the specification project that are essential claims needed by any implementer or user of the specification. Note that the licenses cover the entire specification, not just to the parts of the specification that a participant may have contributed to. We provide our specifications two options for patent licenses: the Compatible Patent License and the Implementation Patent License. The differences between those two are explained below.

But my open source license already has a patent license in it. Why do I need more than that?

The patent licenses provided in open source licenses such as APACHE-2.0 grant a license for contributor-owned patents which apply to their contribution either alone or as combined with the work. The patent license is only to that program/implementation. Note that the APACHE-2.0 patent license  “…applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work…”. Relative to the EFSP, such grants are deficient in both scope (applies only to their contributions) and target (applies only to that implementation). 

What is the difference between the two patent license options provided by the EFSP?

The only difference between the Compatible Patent License and and the Implementation Patent License is the timing of when the patent license grant comes into effect. In the Compatible Patent License, the license grant only happens when the implementation has demonstrated that it is fully compatible with the specification by passing the relevant TCK. The Implementation Patent License provides immediate patent licenses to all implementers, even to partial or work-in-progress implementations. The first choice emphasizes the importance of compatibility. The latter choice emphasizes the importance of open development. Both are valuable options available to Eclipse specification projects. 

I’ve read the EFSP and I don’t see anything about patent licenses. WUWT?

The patent licenses are provided in the Eclipse Foundation Intellectual Property Policy. A future version of the EFSP will make this clearer.

Is the Eclipse Foundation itself granted any licenses to patents? 

No. The Eclipse Foundation itself does not acquire any patent rights in the specifications. The patent licenses are granted from the participating patent owners directly to implementers and users of those specifications. More specifically, the patent license grants are “… to everyone to make, have made, use, sell, offer to sell, and import…” implementations of the specifications.


by Mike Milinkovich at May 13, 2021 07:20 PM

Live From Japan: The Global Dev Study #1 - What, Why and How for Micro Frontends

by admin at May 13, 2021 11:30 AM

We: Michael Geers, book author: Micro Frontends in Action, Luca Mezzalira (Principal Architect at AWS), book author "Building Micro-Frontends" and myself (Adam Bien) delivered "Micro Frontends"-related sessions at the Forkwell event "What, Why and How for Micro Frontends - The Global Dev Study #1".

My session with the title: "Productive, Pragmatic, Effective, Maintainable: Micro Frontends #slideless" starts at: 1h 30 mins:

Also checkout the screencast: A simplest possible Micro Frontend, where I integrated two external components into an existing application shell in ~3mins.


by admin at May 13, 2021 11:30 AM

A simplest possible Micro Frontend

by admin at May 12, 2021 01:32 AM

In this screencast:

...I extended the https://github.com/AdamBien/bce.design vanilla Web Components quickstarter with two additional routes.


import './bookmarks/boundary/Bookmarks.js';
import './bookmarks/boundary/List.js';

import 'http://localhost:8080/MicroHello.js'
import 'http://localhost:8282/MicroHello.js'    

//...
const router = new Router(outlet);
router.setRoutes([
    {path: '/',     component: 'b-list'},
    { path: '/add', component: 'b-bookmarks' },
    { path: '/a', component: 'a-micro-hello' },
    { path: '/b', component: 'b-micro-hello' }
    
]);

The a-micro-hello and b-micro-hello custom elements were loaded from an external "micro frontend" / "micro service":


class MicroHello extends HTMLElement {

    constructor() {
        super();
        this.creationDate = new Date();
        this.message = 'hello from micro-b';
    }

    connectedCallback() {
        this.innerHTML = `
           <h2>${this.message} ${this.creationDate}</h2>
        `;
    }
}
customElements.define('b-micro-hello',MicroHello);    

by admin at May 12, 2021 01:32 AM

Real Men Drink Milk! | The Two Minutes Tuesday 023 | Announcement

by Markus Karg at May 11, 2021 09:00 PM

Java Champion Christoph Engelbert, best known for Hazelcast, is digitizing the cowshed — and I wonder what that shall be good for and how it works!

Discuss with us on this Friday’s LIVE show #ToniteWithMe on 20:00 CET right here on this channel!

If you like this video, please give it a thumbs up, share it, subscribe to my channel, or become my patreon https://www.patreon.com/mkarg. Thanks! 🙂

CU!


by Markus Karg at May 11, 2021 09:00 PM

An Overview Between Java 8 and Java 11

by otaviojava at May 10, 2021 07:33 PM

This tutorial covers the basics of Java 8 and Java 11; it is a start to prepare you for the next LTS: Java 17. https://dzone.com/articles/an-overview-between-java-8-and-java-11

by otaviojava at May 10, 2021 07:33 PM

From Personal Java, over Java EE to Serverless and back to the Java Platform--an airhacks.fm podcast

by admin at May 10, 2021 03:18 PM

Subscribe to airhacks.fm podcast via: spotify| iTunes| RSS

The #139 airhacks.fm episode with David Delabassee (@delabassee) about:
early Personal Java devices, working at Sun Microsystems, Java EE, Java EE to Jakarta EE transition, serverless Java, and working for the Java Platform Group
is available for download.

by admin at May 10, 2021 03:18 PM

May Payara Roadmap Overview Webinar

by Priya Khaira-Hanks at May 10, 2021 11:26 AM

We kicked off the year with the Payara Roadmap for 2021. In this January webinar, Steve provided: detail on benefits of the Jakarta EE model; how the Payara Platform is evolving and moving toward Payara 6; updates and progress of the Payara Cloud project, our new PaaS product; and latest news regarding the next major OpenJDK release - JDK 17 Long Term Support (LTS) and what that means for Payara Platform.

Find a full-write up here:https://blog.payara.fish/payara-roadmap-2021 

In this May update, Steve gives a check-in on how we are progressing along our roadmap, with a retrospective on the year so far and details on what the rest of the year is set to look like. He provides a snapshot of where we are in relation to the plans and projects he mapped out at the beginning of the year.

Steve also discusses the results of the Payara Platform 2021 Survey. If you haven't had a chance to read the full report and summary yet, make sure you do by following this link:https://blog.payara.fish/2021-payara-platform-survey-results


by Priya Khaira-Hanks at May 10, 2021 11:26 AM

[LIVESTREAM] Christoph Engelbert LIVE CHAT The Digitial Cowshed | Tonite #WithMe | Java Latenite

by Markus Karg at May 09, 2021 03:59 PM

Live chatting #ToniteWithMe about the digital cowshed is #JavaChampion Christoph Engelbert.

#EcoInformatics is a rather new application of information technology, and it is all about how to improve the ecological situation using hard- and software. Christoph is working on a solution (#clevabit, https://www.clevabit.com/) that improves the life of cows and chicken, and on Friday he will tell us how it works and what the actual benefit is. I am really excited to hear more about it, as it covers my two biggest interest: Informatics and Conservation!

Join this LIVE SESSION on Friday at 20:00 CET.

Just type your own questions into the chat while the show runs!

If you like this live show, please give it a thumbs up, share it, subscribe to my channel, or become my patreon https://www.patreon.com/mkarg. Thanks! 🙂


by Markus Karg at May 09, 2021 03:59 PM

How to receive Server Sent Events in browser with plain JavaScript

by admin at May 09, 2021 12:38 PM

To receive Server Sent Event in browser with JavaScript, you have to create the EventSource instance first:


const source = new EventSource("//localhost:8080/sse");
source.onopen = e => console.log('on open', e);

With the onmessage listener, you can retrieve "unnamed" events:


source.onmessage = e => console.log(e);

To retrieve named events like e.g.:


: crud-events
event: crud-event
id: 1620555147023
data: {"httpMethod":"POST","path":"/","payload":{"message":"hello, mockend","id":"1620555147023"}}    

...you have to use an even listener named after the event:


source.addEventListener('crud-event', e => console.log('event received', e));

The source.onmessage does not fire for unnamed events.

The events in this screencast were sent with: https://github.com/AdamBien/mockend


by admin at May 09, 2021 12:38 PM

Hashtag Jakarta EE #71

by Ivar Grimstad at May 09, 2021 09:59 AM

Welcome to the seventy-first issue of Hashtag Jakarta EE!

Let’s look at Jakarta EE 10! By filtering on the EE10 label in our GitHub issue tracker, you will find the list of topics currently under discussion. I would like to highlight a couple of the issues.

Jakarta EE 10 Direction Statement (#352) lists focus areas that we are working on in order to come up with a proper roadmap for the platform. The platform team has been tasked by the Jakarta EE Steering Committee to produce a statement of direction for the steering committee meeting on May 11, 2021. I think we are in pretty good shape, but it will most certainly be refined more in the platform call a couple of hours before the steering committee gathers.

Create a new core profile specification (#353) collects the discussion around creating a new Jakarta EE Core Profile. We have created the plan review record and expect the ballot for creation- and plan reviews to be started pretty soon. Check out the JESP Guide for information about what these review steps actually means.

Speaking about plan reviews, we have a lot of them going on right now. Just check out the list of pull requests for plans. The Jakarta EE 10 Plan Reviews project board shows the current status of the reviews as they flow through our process.

In addition to this, a project proposal for Jakarta Config is being drafted. I expect it to be made public for community review within short.

If you haven’t filled out the 2021 Jakarta EE Developer Survey yet, I hope you will take a couple of minutes required to provide us with valuable input in shaping the direction of Jakarta EE!


by Ivar Grimstad at May 09, 2021 09:59 AM

mockend v0.0.3 introduces Server Sent Event (SSE) support

by admin at May 08, 2021 08:39 AM

Server Sent Support (SSE) was added to: mockend, the "mock backend" for Single Page Applications (SPAs), with the v0.0.3 release.

CRUD operations like e.g. curl -XPOST "http://localhost:8080/crud" -H "Content-Type: application/json" -d "{\"message\":\"hello, mockend\"}" are mirrored as SSE events. The events are emitted via the URI curl -N http://localhost:8080/sse as e.g.


: crud-events
event: crud-event
id: 1620452701200
data: {"httpMethod":"POST","path":"/","payload":{"hello":"world","id":"1620452701199"}}    

Also in this release common curl commands were added to the startup screen as hints.


by admin at May 08, 2021 08:39 AM

The Payara Monthly Catch: April 2021

by Priya Khaira-Hanks at May 07, 2021 08:56 AM

It's been an incredibly exciting month for Team Payara! We were honoured with a Queen's Award for Enterprise. This is the UK's most prestigious business award, often called the 'Knighthood for Businesses' and our award particularly recognises our international sucess. CEO and Founder Steve Millidge thanked the entire team in his blog, which also went more into detail about what this means for the wider Jakarta EE and MicroProfile community. 

In other Payara Services news, we're also 'buzzing' about our new Charity of the Year, the Bumblebee Conservation Trust - and see Payaran Lenny Primak below on Adam Bien's podcast, and Rudy De Busscher joining forces with IntelliJ IDEA! 

Community highlights included the release of the latest version of IntelliJ IDEA, with our engineersworking hard to update our Payara Platform pugins accordingly due to high demand from the community. We were also excited by news of the newMicrosoft Build of OpenJDK. 

Read more about all this and more in the below round-up of news, articles, videos and podcasts. 


by Priya Khaira-Hanks at May 07, 2021 08:56 AM

Automatic WildFly Clustering in Managed Domain Mode and Scaling inside Containers

by Tetiana Fydorenchyk at May 06, 2021 08:00 AM

Nowadays it’s easy to get up and running WildFly standalone server in a container. But what if you need to enable clustering in Managed Domain mode which is one of the key features of Jakarta EE in general. That is not so easy task. Integrated Jakarta EE clustering provides functionality that people are interested in, including high-availability and automated deployment among distributed Java application servers regardless of underlying infrastructure, and, of course, Admin Panel to manage your cluster using a nice UI.  Explore how to automate WildFly clusterization and scaling with Jelastic PaaS.
wildfly managed domain mode

by Tetiana Fydorenchyk at May 06, 2021 08:00 AM

Hiding and disclosing optional content with the "details" and "summary" HTML elements / tags

by admin at May 05, 2021 05:03 AM

With the "details" and "summary" HTML elements / tags optional content can be rendered in a space-saving manner without any JavaScript or CSS.

The details element is used at the top (episode numbers) of the airhacks podcast website: airhacks.fm to disclosure the episodes index:


by admin at May 05, 2021 05:03 AM

Jakarta EE Community Update for March and April 2021

by Tanja Obradovic at May 04, 2021 08:58 PM

Our update this month is jam-packed with highlights, as March and April were busy with many events and new developments in the Jakarta EE Community! 

The highlights for the past two months are as follows:

The Jakarta EE 2021 Developer Survey is now open!

It is that time of the year: the Jakarta EE 2021 Developer Survey is now open until May 31st. Please, if you haven't already provided your response, I encourage you to do so now. Help us gather input from the wider java enterprise community and shape the future of Jakarta EE!

Here are insights for 2020 Jakarta EE Developer Survey.

 

The Jakarta EE community and Working Group is growing

 We continue to have steady membership growth, and more interest from JUGs to be closely involved in various Jakarta EE projects.

Jakarta EE Working Group welcomes iJUG as a participant member and Istanbul JUG as a guest member!

iJUG involvement in Jakarta EE is well known, as their members are actively involved in Jakarta EE projects and community events. Now they have officially become members of not just Jakarta EE Working Group, but both MicroProfile and Adoptium Working Groups as well. 

JUG Istanbul has joined as a Guest member also. JUG Istanbul is a driving force behind  Jakarta One Livestream - Turkish, and its members are interested in being involved in advancing following individual specifications Jakarta Contexts and Dependency Injection and  Jakarta Concurrency.

This is a call to other JUGs to explore the possibility of joining Jakarta EE Working Group. Approach us and let us know if membership is something you would be interested in.

 

Jakarta EE 9.1 release

I hope you are all already familiar with the Jakarta EE 9.1 Release Plan! The main driver for this release is Java SE 11 support.

Eclipse GlassFish 6.1.0-RC1 Web (https://download.eclipse.org/ee4j/glassfish/web-6.1.0-RC1.zip )  and Full Profile (https://download.eclipse.org/ee4j/glassfish/glassfish-6.1.0-RC1.zip)  are now on Eclipse downloads. Please download and take a look!

Multiple Compatible Products on the release date of the Jakarta EE 9.1

The compatibility certification request for Jakarta EE 9.1 release keep coming, and we are super proud and happy about it

The Jakarta EE 9.1 release will be the first release that will have more than one compatible implementation used for the ratification of the final specification. 

 

Jakarta EE Individual Specifications and project teams 

We have organized a public calendar Jakarta EE Specifications Calendar (public url, iCal) to display all Jakarta EE Specification project teams meetings. Everyone interested is welcome to join the calls.

The Jakarta EE Platform team (meeting on Feb 9th, 2021) has invited all specification project team members and leads to submit their release plans for review by April 15th, so the planning for release after 9.1 can start. The response was great! 25 individual specifications that have provided the plan review can be viewed here

The work towards the next release is emerging, and I would like to draw your attention towards Jakarta EE Core Profile Creation and Plan Review. Please review and join the Jakarta EE Platform team meetings to provide your input.

 

Statement direction for Jakarta EE 10 is on its way!

Jakarta EE Steering Committee has requested from the Jakarta EE Platform team to formulate a statement of direction for the release 10. You can join the discussion in this GitHub issue , but sharing here main points


A traditional roadmap with deliverables is still premature, so we need to highlight areas of focus that will build into an eventual roadmap. Areas of focus that need progress before a proper roadmap can be defined include:

  • Addressing lack of specification standalone TCKs that can be composed into new platforms

  • Defining the makeup of the core profile

  • Defining how profile specifications can be released independently and what versioning would look like under this approach

  • Promoting individual specification releases

  • Address integration of MicroProfile Config as Jakarta Config

  • Updating core profile specifications to enable build time capable implementation

  • Handling of optional specification features

  • Removing the current circularity between specifications at the TCK level

  • Java SE version and JPMS strategy

  • Improve architecture guidelines and address specification cohesion


Compatible Products and Compatible Implementations

Our list of Compatible Products, implementations of Jakarta EE Platform and Web Profile, is growing, and not just for Jakarta EE 8, but also for Jakarta EE 9.

The current Jakarta EE 8 list is impressive

 

And the Jakarta EE 9 list is growing

 

Jakarta EE White Paper: Why Jakarta EE Is the Right Choice for Today's Java Applications

In collaboration with the community leaders we have published the  Jakarta EE  White Paper: “Why Jakarta EE is the Right Choice for Today’s Java Applications”. Please promote and share this Whitepaper amongst your community--we appreciate your support in sharing it with others.

 

EclipseCon 2021 CFP is now open!

Please mark your calendars: EclipseCon 2021 is taking place October 25th - 27th 2021! The call for papers is now open, so do not miss this chance to showcase your work! We already have quite a few talks related to Jakarta EE and Cloud Native Technologies submitted and you can review them here


Book your 2021 Jakarta EE Virtual Tour and Adopt-A-Spec

We are looking for the opportunity to virtually visit you, so don’t hesitate to get in touch (tanja.obradovic@eclipse-foundation.org) if you’d like to hear about Jakarta EE 9 and beyond.

We need help from the community! All JUGs out there please choose the specification of your interest and adopt it. Here is the information about the Adopt-A-Spec program. 

 

Stay Connected With the Jakarta EE Community

The Jakarta EE community is very active and there are a number of channels to help you stay up to date with all of the latest and greatest news and information. Subscribe to your preferred channels today:

·  Social media: Twitter, Facebook, LinkedIn Group

·  Mailing lists: jakarta.ee-community@eclipse.org, jakarta.ee-wg@eclipse.org, project mailing lists, slack workspace

·  Calendars: Jakarta EE Community Calendar, Jakarta EE Specification Meetings Calendar 

·  Newsletters, blogs, and emails: Eclipse newsletter, Jakarta EE blogs, Hashtag Jakarta EE

·  Meetings: Jakarta Tech Talks, Jakarta EE Update, and Eclipse Foundation events and conferences

 

You can find the complete list of channels here.

 

To help shape the future of open source, cloud native Java, get involved in the Jakarta EE Working Group.

 

To learn more about Jakarta EE-related plans and check the date for the next Jakarta Tech Talk, be sure to bookmark the Jakarta EE Community Calendar.

 


by Tanja Obradovic at May 04, 2021 08:58 PM

JUG Istanbul joins Jakarta EE Working Group!

by Tanja Obradovic at May 04, 2021 06:53 PM

We are happy to share the news with you: Java User Group Istanbul  has been invited by Jakarta EE Steering Committee to join the Working Group as a Guest member. JUG Istanbul is a driving force behind  Jakarta One Livestream - Turkish event, and its members are interested in being involved in advancing following individual specifications Jakarta Contexts and Dependency Injection and  Jakarta Concurrency . Please share the news and give warm welcome the JUG Istanbul!


by Tanja Obradovic at May 04, 2021 06:53 PM

Payara Platform 2021 Survey Results

by Priya Khaira-Hanks at May 04, 2021 09:20 AM

We’re pleased to announce that our 2021 Payara Platform Survey results are now available! 

This survey was promoted to our audience between March and April 2021. We shared with Payara Platform Enterprise customers and Community users via social media, emails and blogs. Thank you so much to everyone who took the time to contribute!


by Priya Khaira-Hanks at May 04, 2021 09:20 AM

Gradle vs. Maven, Transactions, Servlets, JS in old browsers, Bidding, HTTP Sessions, Retries, Timers, Web Servers--or 86th airhacks.tv

by admin at May 04, 2021 06:37 AM

The 86th airhacks.tv covering:
"Gradle vs. Maven, Transactions in Servlets, modern JavaScript in old browsers, web server recommendations, HTTP session replication, a JavaEE-stic bidding system, reactive programming, schedules and retries ...and the coupon code redux4free"

is available:

See you every first Monday of the month at https://airhacks.tv 8pm CET (UTC+1:00). Show is also announced at: meetup.com/airhacks.

Any questions left? Ask now: https://gist.github.com/AdamBien/38e1754782c901f5d63e45968f3df610 and get the answers at the next airhacks.tv.

by admin at May 04, 2021 06:37 AM

Hashtag Jakarta EE #70

by Ivar Grimstad at May 02, 2021 09:59 AM

Welcome to the seventieth issue of Hashtag Jakarta EE!

The Jakarta EE 9.1 release is coming up shortly. The release review ballot for ratification of the specification will start this week. A special detail regarding this release is that there will be at least three, possibly four, compatible implementations used for ratification. Eclipse GlassFish, OpenLiberty, and WildFly have submitted their Compatibility Certification Requests already. We hope that Apache TomeEE will make it as well!

More compatible products will follow shortly after the release.

The plan reviews for individual specifications are ongoing. You can follow their progress by checking out the pull requests labeled plan review. As they are approved, they will pop up on their respective page under Jakarta EE Specifications.

I want to remind you about the Jakarta EE Specifications Calendar, where the specification projects are encouraged to publish there calls in order to allow more people to join the discussions.


by Ivar Grimstad at May 02, 2021 09:59 AM

Migrating a real-world JavaFX App from JDK 8 to JDK 16 | Modern Java | Head Crashing Informatics 31

by Markus Karg at May 01, 2021 03:00 PM

Hey guys! How’s it going?

I’m migrating a JavaFX chat client from #Java8 to #Java16 before your own eyes to demonstrate that problems are no reason to give up!

Join me while I am migrating a real-world application, a chat client written using JDK 8 (including JavaFX and JAXB) to JDK 16. Learn which problems could pop up, where to find help and solve them within much less than one hour! Neither replacing the originally embedded #JavaFX 8 by standalone #OpenJFX 16 / the original embedded #JAXB 8 by standalone Eclipse #JAXB-RI, nor using the #MavenShadePlugin didn’t stop me! After just few minutes, the project is migrated and works better than ever before AND we could use modern Java APIs and key words now if we would like to!

So there is excuse: Migrate to #JDK16 NOW!

Stay safe and… Party on!


by Markus Karg at May 01, 2021 03:00 PM

Open Source Scholarship | The Two Minutes Tuesday 022 | Announcement

by Markus Karg at April 27, 2021 09:00 PM

Andres and me contributed the usual skip property to the Maven Shade Plugin, and got trated rather unfair by the Maven In-Crowd: While we asked BEFORE how to proceed, they told us AFTER the PR was done that they dislike the whole idea. This is not fair, it is disrespectful as it wastes valuable time, and it is definitively annoying new contributors!

But there is way to prevent this: Apply for the iJUG Open Source Scholarship! The iJUG is the umbrella association of approx. 50 JUGs in Germany, Swiss and Austria, and will mentor you in learning the unspoken rules of open source communities. Besides other goodies, like a free Javaland conference ticket, you finally (hopefull) will become a committer at a popoular open source project. In 2021, the rules are like this:

  • Send your application to stipendium@ijug.eu.
  • Select one of the following projects: Adoptium, Jakarta EE or Microprofile.
  • Refer to three PRs that you already filed for the selected project.
  • The iJUG’s Scholarship Mentors will select one person of all applications for each project.

If you like this video, please give it a thumbs up, share it, subscribe to my channel, or become my patreon https://www.patreon.com/mkarg. Thanks! 🙂

CU!


by Markus Karg at April 27, 2021 09:00 PM

April Payara Release Overview Webinar

by Priya Khaira-Hanks at April 27, 2021 11:21 AM

In this Release Overview Webinar, Rudy De Busscher discusses the recent updates and enhancements to the Payara Platform in the latest release.


by Priya Khaira-Hanks at April 27, 2021 11:21 AM

NEW! Jakarta EE Community Cards

by Ivar Grimstad at April 26, 2021 01:56 PM

We have created a set of Jakarta EE Community Cards that you can use to show your participation in the Jakarta EE Community. Save any card you want and share it on social media or your website. If you use the hashtag #JakartaEE, we will do our best to amplify your post.

I have listed the cards that are currently available from https://jakarta.ee/resources/community-cards/ below. Please let us know if there are any activities you feel are missing.


by Ivar Grimstad at April 26, 2021 01:56 PM

Hashtag Jakarta EE #69

by Ivar Grimstad at April 25, 2021 09:59 AM

Welcome to the sixty-ninth issue of Hashtag Jakarta EE!

The Compatibility Certification Requests (#334 and #335) for Eclipse GlassFish 6.1.RC1 has been filed both for Jakarta EE Platform 9.1 as well as Jakarta EE Web Profile 9.1.

These CCRs will be used in the ratification of the final Jakarta EE 9.1 specification. This time, we are hoping for additional compatible implementations to be a part of the material reviewed by the Jakarta EE Specification Committee. Since we plan to initiate the release review ballot on April 30, it is time to start preparing the Compatibility Certification Requests by following these steps outlined by the Jakarta EE TCK project lead Scott Marlow.

The 2021 Jakarta EE Developer Survey is still running. If you haven’t answered it yet, I encourage you to take this opportunity to provide input to the direction of Jakarta EE. It only takes a couple of minutes to answer.

Take the 2021Jakarta EE Developer Survey now!

The CFP for EclipseCon 2021 is open. Don’t hesitate, submit your Jakarta EE talk today! If you are new to speaking, or unsure what to talk about, ask someone in the community to team up with you and do a joint talk!


by Ivar Grimstad at April 25, 2021 09:59 AM

EclipseCon 2021 CFP is OPEN!

by Ivar Grimstad at April 22, 2021 01:17 PM

EclipseCon 2021 will be an online event this year as well. It was a success in 2020 and the intention is to be at least as good this year! Hopefully, we will return to a live event in Ludwigsburg next year. But until then, submit your talk to EclipseCon 2021!

Personally, I hope to see as many Jakarta EE talks as possible. Let’s make it a really hard job for the program committee by submitting as many abstracts as possible. There is so much great content to choose from, so go ahead and submit a talk about your favorite Jakarta EE topic. I, for sure, will submit a couple myself.

Here’s a tip if you are new to speaking: Ask someone in the community to team up with you and do a joint talk.

These are the important dates to remember:
April 15: Call for Proposals open
June 1: Early-Bird Submission Deadline
June 15: Final Submission Deadline
July 1: Notification Sent

Go to EclipseCon 2021 Call for Proposals and submit your Jakarta EE talk today!
(Other topics than Jakarta EE are okey as well…)


by Ivar Grimstad at April 22, 2021 01:17 PM

2021 Jakarta EE Developer Survey

by Ivar Grimstad at April 21, 2021 12:44 PM

The annual 2021Jakarta EE Developer Survey is out. Make sure to use this opportunity to make your voice heard!

This is the fourth Jakarta EE Developer Survey, so it is safe to say that it has become an annual tradition and is your chance to influence the direction of the Jakarta EE working group. The survey last year had more than 2000 responses from individuals around the World. Let’s beat that number this year! It provides valuable insight into the state of the community to better understand the top priorities for future Jakarta EE releases. The survey takes less than 8 minutes to complete, so don’t hesitate!

Take the 2021Jakarta EE Developer Survey now!


by Ivar Grimstad at April 21, 2021 12:44 PM

Hashtag Jakarta EE #68

by Ivar Grimstad at April 18, 2021 09:59 AM

Welcome to the sixty-eighth issue of Hashtag Jakarta EE!

We have a date for Jakarta EE 9.1!

Eclipse GlassFish 6.1.0.RC1 passes the Jakarta EE 9.1 TCK and is available for download. The TCK project is in the process of wrapping up everything for the release. We plan to initiate the review ballot for the Jakarta EE 9.1 specifications on April 30, which means that the artifacts will be released to Maven Central on May 14th. This is a soft launch as we have been doing the last couple of releases, so the official release date with all the marketing splash around it will be May 25th.

Worth noting for this release is that it looks like GlassFish won’t be alone as a compatible implementation when the specification is ratified. A number of vendors are working hard to have their implementations available along with Glassfish for the release review ballot.

When the Jakarta EE Platform team set April 15 as a deadline for specifications to file for plan reviews in order to be considered for the next Jakarta EE release, we didn’t really know what to expect. There have been quite a few efforts to write down expectations, such as the Jakarta EE AmbassadorsGuide to Contributing to Jakarta EE 10, Arjan TijmsJava for the enterprise: What to expect in Jakarta EE 10 and Greg WilkinsLess is More? Evolving the Servlet API!. But would this crystalize into concrete plans?

I guess it is safe to say that we were blown away by the number of detailed plans and outlines submitted as pull requests to the Jakarta EE Specifications repository. Just take a look at the list below grouped by major and minor updates to the specifications.

Major updates
Jakarta Authentication 4.0
Jakarta Authorization 3.0
Jakarta Concurrency 3.0
Jakarta Expression Language 5.0
Jakarta Faces 4.0
Jakarta JSON Binding 3.0
Jakarta RESTful Web Services 4.0
Jakarta Security 3.0
Jakarta Servlet 6.0
Jakarta SOAP with Attachments 3.0
Jakarta Standard Tag Library 3.0
Jakarta XML Binding 4.0
Jakarta XML Web Services 4.0

Minor updates
Jakarta Activation 2.1
Jakarta Connectors 2.1
Jakarta JSON Processing 2.1
Jakarta Mail 2.1
Jakarta MVC 2.1
Jakarta Persistence 3.1
Jakarta Server Pages 3.1
Jakarta WebSocket 2.1

I can’t wait to dive into the details of these plans as they progress through the plan reviews stipulated by the Jakarta EE Specifiation Process. Take a look at the JESP Guide for a simple walk-through of the process.

In addition to the efforts around Jakarta EE 9.1 and Jakarta EE 10, there are ongoing discussions about the alignment between Jakarta EE and MicroProfile. These discussions take place in the CN4J Alliance. Read Jakarta EE/MicroProfile Alignment Survey Results! by Reza Rahman to see how the community responded to the alternatives being discussed.


by Ivar Grimstad at April 18, 2021 09:59 AM

Your Voice Matters: Take the Jakarta EE Developer Survey

by dmitrykornilov at April 17, 2021 11:36 AM

The Jakarta EE Developer Survey is in its fourth year and is the industry’s largest open source developer survey. It’s open until April 30, 2021. I am encouraging you to add your voice. Why should you do it? Because Jakarta EE Working Group needs your feedback. We need to know the challenges you facing and suggestions you have about how to make Jakarta EE better.

Last year’s edition surveyed developers to gain on-the-ground understanding and insights into how Jakarta solutions are being built, as well as identifying developers’ top choices for architectures, technologies, and tools. The 2021 Jakarta EE Developer Survey is your chance to influence the direction of the Jakarta EE Working Group’s approach to cloud native enterprise Java.

The results from the 2021 survey will give software vendors, service providers, enterprises, and individual developers in the Jakarta ecosystem updated information about Jakarta solutions and service development trends and what they mean for their strategies and businesses. Additionally, the survey results also help the Jakarta community at the Eclipse Foundation better understand the top industry focus areas and priorities for future project releases.

A full report from based on the survey results will be made available to all participants.

The survey takes less than 10 minutes to complete. We look forward to your input. Take the survey now!


by dmitrykornilov at April 17, 2021 11:36 AM

Survival Guide for the Java Architect in the Cloud Era

by otaviojava at April 15, 2021 06:37 PM

Cloud Final Version of NIST Cloud Computing Definition Published Agile Manifesto 97 Things Every Cloud Engineer Should Know: Collective Wisdom from the Experts  Infrastructure as Code: Dynamic Systems for the Cloud Age Getting GitOps right CI/CD Github Action Tekton Pipelines  Cloud Native Architecting Cloud Native Applications: Design high-performing and cost-effective applications for the cloud What […]

by otaviojava at April 15, 2021 06:37 PM

#ToniteWithMe Sneak Peek | The Two Minutes Tuesday 021 | Announcement

by Markus Karg at April 13, 2021 09:00 PM

Be with us, when Andres and me are LIVE HACKING Maven’s source code on this Friday’s Live Show #ToniteWithMe on 20:00 CET right here on this channel!

If you like this video, please give it a thumbs up, share it, subscribe to my channel, or become my patreon https://www.patreon.com/mkarg. Thanks! 🙂

CU!


by Markus Karg at April 13, 2021 09:00 PM

Less is More? Evolving the Servlet API!

by gregw at April 13, 2021 06:19 AM

With the release of the Servlet API 5.0 as part of Eclipse Jakarta EE 9.0 the standardization process has completed its move from the now-defunct Java Community Process (JCP) to being fully open source at the Eclipse Foundation, including the

by gregw at April 13, 2021 06:19 AM

Hashtag Jakarta EE #67

by Ivar Grimstad at April 11, 2021 09:59 AM

Welcome to the sixty-seventh issue of Hashtag Jakarta EE!

One of the most exciting things that happened in the Jakarta EE space this week is that the Jakarta EE Platform project decided to start working on a new Jakarta EE Core Profile. The Pull Request to start the process of creation- and plan reviews from the Jakarta EE Specification Committee has been created. I will post more when work progresses.

If you are involved in a Jakarta EE specification project, do remember to submit a request for plan review by April 15. This will make it possible for the platform team to get an overview, and plan for the content of the next release. Refer to the JESP Guide for useful pointers and links to help you navigate the Jakarta EE Specification Process (JESP).

The 2021 Jakarta EE Developer Survey is now open. This has become an annual tradition and is your chance to influence the direction of the Jakarta EE working group. It takes less than 8 minutes to complete.

Take the 2021 Jakarta EE Developer Survey!

Another exciting thing that happened this week is that Microsoft announced their build of OpenJDK. Of course, I went ahead and installed it directly 🙂

$ java -version
openjdk version "11.0.10" 2021-01-19
OpenJDK Runtime Environment Microsoft-18724 (build 11.0.10+9)
OpenJDK 64-Bit Server VM Microsoft-18724 (build 11.0.10+9, mixed mode)

by Ivar Grimstad at April 11, 2021 09:59 AM

Jakarta EE/MicroProfile Alignment Survey Results!

by Reza Rahman at April 10, 2021 10:16 PM

As you are likely aware, Java EE has transitioned to Open Source governance in the Eclipse Foundation as Jakarta EE. MicroProfile has been moving forward as an independent initiative to optimize enterprise Java for microservices architectures. The Cloud Native for Java (CN4J) Alliance has recently been formed to promote better alignment between Jakarta EE and MicroProfile.

One of the key issues to sort out is how Jakarta EE can consume MicroProfile specifications (such as MicroProfile Configuration). There are several alternatives as to how this could be done. These alternatives were put into a survey for the community to weigh in. In addition to choosing the option respondents believe to be best, they were able to provide comments justifying their preferred alternative. The results of the survey are summarized here. The results have been shared with the CN4J community and key decision makers.

Survey Results

More than 200 people filled out the survey. Even more remarkably, there were more than 50 comments representing the voice of the community. A fairly strong majority (57.73%) of developers want some MicroProfile specifications to move to Jakarta EE including the namespace.

Jakarta EE/MicroProfile survey results

The results are similar to what earlier surveys have indicated and congruent with the official Jakarta EE Ambassadors joint position. It is remarkable how consistent the community view has been, even over a period of time.

The Voice of the Community

It is impossible to do justice to all the people that provided comments. Each one of the comments is invaluable. The following is a decent sampling representing the majority opinion.

“MicroProfile should evolve APIs that eventually get absorbed by Jakarta EE. MicroProfile applications should eventually be able to run with pure Jakarta EE APIs.”

“Moving MicroProfile specs into Jakarta EE including namespace will make clear where the longer term specs are maintained. Also, for MicroProfile users it’s a very easy migration path.”

“I think no matter which of these options is chosen there is going to be an effect on either end users, or developers. Therefore, I would rather make the large upfront breaking changes all at once and merge the two into the same namespace. Then, have consistency going forward.”

“I would see the movement from org.eclipse.microprofile to the jakarta namespace as a sign of maturity (and success) for MicroProfile.”

“Option A2 has fewer cons and is more end user friendly.”

“Using a different namespace makes it clear what version and expectations (e.g. backward compatibility) the user is making. Moving without a namespace is confusing.”

“The aim of a specification should always be to make something as simple and clear as possible. The entry barriers and opportunities for error for new and inexperienced developers must be as low as possible. An inconsistent namespace or even the possibility of circular dependencies make the use simply too complicated and difficult. At the end of the day, it’s all about the economic and productive development of applications.”

“Move some MicroProfile specifications (e.g. MP Config when its stable) to Jakarta EE including the namespace.”

Source Data

I really hope the results help pave the way for sensible decisions on Jakarta EE and MicroProfile alignment. For me, gathering input and listening to people that are not necessarily involved in the lower level details of specification development is extremely important.

The Eclipse Foundation very graciously ran the survey and shared the source data publicly. Reading all the comments in full is especially insightful.


by Reza Rahman at April 10, 2021 10:16 PM

[LIVESTREAM] Andres Almiray LIVE HACKING Maven Plugins | Tonite with me | Java Latenite

by Markus Karg at April 10, 2021 12:46 PM

#ToniteWithMe hacking on #MavenPlugins in #Java is #JavaChampion Andres Almiray.

Ever wanted to watch some Java professionals hacking on the source code of Maven plugins? Then this LIVE STREAM is what you definitively NOT want to miss! Join this LIVE SESSION on Friday at 20:00 CET. Just type your own questions into the chat while the show runs!

Andreas and me did a live hack of the Maven Shade Plugin: Andres fixed issue [MSHADE-382] by adding a `skip` property to the plugin, following best practices and conventions, adding unit test and integration test utilizing the Maven Invoker Plugin, then filing PR 90 — in just one hour. #Amazing #ASFMavenProject #Java

If you like this live show, please give it a thumbs up, share it, subscribe to my channel, or become my patreon https://www.patreon.com/mkarg. Thanks! 🙂


by Markus Karg at April 10, 2021 12:46 PM

NoSQL, the Cloud, and Java: Part 1: The NoSQL Approaches

by otaviojava at April 07, 2021 02:02 PM

Learn how NoSQL, the cloud, and Java interact, the various kinds of non-relational databases you’ll encounter, and the tradeoffs you can expect. https://dzone.com/articles/framewars-part-1

by otaviojava at April 07, 2021 02:02 PM

What's New in the Payara Platform April Release?

by Debbie Hoffman at April 07, 2021 01:00 PM

This month we release Payara Platform Enterprise 5.27.0 (request here) with 18 improvements and 3 new features, including an update to the previously released Upgrade Tool, an automated JBatch Job execution data cleanup feature, and the addition of a pluggable Notifier API with the ability to create your own notifiers.

Meanwhile, the Payara Platform Community 5.2021.2 (download here) includes improvements for running Jakarta EE 9 applications. 

Don't miss our release overview virtual event on the 20th of April, which is now open for registrations on Meetup here. 

Read more below to find out the details.

 Payara Platform  Download Here 


by Debbie Hoffman at April 07, 2021 01:00 PM

How to retrieve DTOs from your Envers Audit Logs

by Thorben Janssen at April 06, 2021 12:00 PM

The post How to retrieve DTOs from your Envers Audit Logs appeared first on Thorben Janssen.

Hibernate Envers is a popular library that automates the creation of an audit log. As I’ve shown in previous articles, it logs all write operations performed using your entity classes in an audit log and provides a flexible API to query data from that log. Based on these articles, I got recently asked if Hibernate […]

The post How to retrieve DTOs from your Envers Audit Logs appeared first on Thorben Janssen.


by Thorben Janssen at April 06, 2021 12:00 PM

Hashtag Jakarta EE #66

by Ivar Grimstad at April 04, 2021 09:59 AM

Welcome to the sixty-sixth issue of Hashtag Jakarta EE!

Jakarta EE 9.1 is on track for the mid-May release. GlassFish 6.1 now passes the TCK and a release candidate will be made available this week.

Meanwhile, the work with planning for the next Jakarta EE release goes on. We are getting very close to be proposing a new profile in addition to the current Full Platform and Web Profile. This profile will most likely be called Jakarta EE Core Profile and be specifically targeted at smaller runtimes for microservices and capable of producing minimal cloud-native images.

For the other component specifications, please do remember to submit a request for plan review by April 15. This will make it possible for the platform team to get an overview, and plan for the content of the next release. We will also shortly invite all specification projects to participate in a community meeting. Stay tuned and look out for the invite that will be socialized on all appropriate channels when we have nailed down the details.

I will encourage specification projects to open calls to help drive their work forward. Since we currently don’t meet in the hallways at events and conferences, these meetings are an important way of having discussions in realtime. Makes life on the mailing lists so much easier afterward…

We have created the Specifications Calendar specifically for this purpose. All the project leads of Jakarta EE specification projects have been given permissions to add events to the calendar.

As an inspiration for topics, please check out Arjan’s excellent article Java for the enterprise: What to expect in Jakarta EE 10 in the Java Magazine.

I also want to point you to the newly released Jakarta EE white paper and my accompanying article Why Java Developers Continue to Rely on Jakarta EE.


by Ivar Grimstad at April 04, 2021 09:59 AM

Get your Drone License NOW! | Head Crashing Informatics 30

by Markus Karg at April 03, 2021 03:00 PM

Hey guys! How’s it going?

Learn everything you need to do to LEGALLY fly a drone in Europe in this short video!

Since January 1st, flying a #drone in Europe is only possible if the owner is officially registered with the local authorities, and if the pilot has a license from the european authorities (#EASA).

My wife and me just recently passed the exam, are now registered and own a pilot #license form the LBA (Luftfahrtbundesamt), the German authorities, and we want to show you in this video all the needed steps, how to do them, how easy they are, and how long they need, so you can LEGALLY fly all over Europe by investing just one single day. 🙂

If you like this video, please give it a thumbs up, share it, subscribe to my channel, or become my patreon. Thanks!

Stay safe and… Party on!


by Markus Karg at April 03, 2021 03:00 PM

Undertow AJP balancer. UT005028: Proxy request failed: java.nio.BufferOverflowException

April 02, 2021 09:00 PM

Wildfly provides great out of the box load balancing support by Undertow and modcluster subsystems
Unfortunately, in case HTTP headers size is huge enough (close to 16K), which is so actual in JWT era - pity error happened:

ERROR [io.undertow.proxy] (default I/O-10) UT005028: Proxy request to /ee-jax-rs-examples/clusterdemo/serverinfo failed: java.io.IOException: java.nio.BufferOverflowException
 at io.undertow.server.handlers.proxy.ProxyHandler$HTTPTrailerChannelListener.handleEvent(ProxyHandler.java:771)
 at io.undertow.server.handlers.proxy.ProxyHandler$ProxyAction$1.completed(ProxyHandler.java:646)
 at io.undertow.server.handlers.proxy.ProxyHandler$ProxyAction$1.completed(ProxyHandler.java:561)
 at io.undertow.client.ajp.AjpClientExchange.invokeReadReadyCallback(AjpClientExchange.java:203)
 at io.undertow.client.ajp.AjpClientConnection.initiateRequest(AjpClientConnection.java:288)
 at io.undertow.client.ajp.AjpClientConnection.sendRequest(AjpClientConnection.java:242)
 at io.undertow.server.handlers.proxy.ProxyHandler$ProxyAction.run(ProxyHandler.java:561)
 at io.undertow.util.SameThreadExecutor.execute(SameThreadExecutor.java:35)
 at io.undertow.server.HttpServerExchange.dispatch(HttpServerExchange.java:815)
...
Caused by: java.nio.BufferOverflowException
 at java.nio.Buffer.nextPutIndex(Buffer.java:521)
 at java.nio.DirectByteBuffer.put(DirectByteBuffer.java:297)
 at io.undertow.protocols.ajp.AjpUtils.putString(AjpUtils.java:52)
 at io.undertow.protocols.ajp.AjpClientRequestClientStreamSinkChannel.createFrameHeaderImpl(AjpClientRequestClientStreamSinkChannel.java:176)
 at io.undertow.protocols.ajp.AjpClientRequestClientStreamSinkChannel.generateSendFrameHeader(AjpClientRequestClientStreamSinkChannel.java:290)
 at io.undertow.protocols.ajp.AjpClientFramePriority.insertFrame(AjpClientFramePriority.java:39)
 at io.undertow.protocols.ajp.AjpClientFramePriority.insertFrame(AjpClientFramePriority.java:32)
 at io.undertow.server.protocol.framed.AbstractFramedChannel.flushSenders(AbstractFramedChannel.java:603)
 at io.undertow.server.protocol.framed.AbstractFramedChannel.flush(AbstractFramedChannel.java:742)
 at io.undertow.server.protocol.framed.AbstractFramedChannel.queueFrame(AbstractFramedChannel.java:735)
 at io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.queueFinalFrame(AbstractFramedStreamSinkChannel.java:267)
 at io.undertow.server.protocol.framed.AbstractFramedStreamSinkChannel.shutdownWrites(AbstractFramedStreamSinkChannel.java:244)
 at io.undertow.channels.DetachableStreamSinkChannel.shutdownWrites(DetachableStreamSinkChannel.java:79)
 at io.undertow.server.handlers.proxy.ProxyHandler$HTTPTrailerChannelListener.handleEvent(ProxyHandler.java:754)

The same request directly to backend server works well. Tried to play with ajp-listener and mod-cluster filter "max-*" parameters, but have no luck.

Possible solution here is switch protocol from AJP to HTTP which can be bit less effective, but works well with big headers:

/profile=full-ha/subsystem=modcluster/proxy=default:write-attribute(name=listener, value=default)

April 02, 2021 09:00 PM

Why Java Developers Continue to Rely on Jakarta EE

by Ivar Grimstad at March 31, 2021 12:36 PM

Over the past year, the Eclipse Foundation spoke to leading Java developers around the world to discuss why they rely on Jakarta EE and the unique benefits of using Jakarta EE technologies. Their input is captured in our white paper, which describes the important advantages Jakarta EE offers today and for the future.

Download the Jakarta EE white paper!

They’re Looking Ahead, Not Back

With Jakarta EE’s long history as Java EE, it’s sometimes easy for developers to dismiss the technology as yesterday’s approach. But Jakarta EE technologies are embedded, and relied upon, in a way no other technologies are. Here are some examples you might not be aware of:

  • Apache Tomcat implements several Jakarta EE specifications
  • Eclipse Jetty is a certified implementation of Jakarta Servlet 5.0
  • Spring Boot embeds Eclipse Jetty or Apache Tomcat as a runtime


Open Specifications Bring Important Advantages

One of the advantages every one of the developers raised was the value of the specification-based approach to technologies in Jakarta EE.

The clear boundary between fully tested specifications and underlying implementations means developers can easily switch between the implementations with minimal impact on the application code. This agility saves considerable time, effort, and money when changes are required.

Jakarta EE Provides a Unique Combination of Features and Functions

The developers also described a combination of strategic and technical advantages that aren’t available in any other platform. Some of the main Jakarta EE benefits they noted include:

  • Stability and backward compatibility. Jakarta EE provides a mature and proven foundation for innovation that allows organizations to fully leverage the investments they’ve already made in enterprise Java applications.
  • Architectural flexibility. Organizations can support cloud-based microservices architectures, as well as traditional, monolithic architectures. They can also seamlessly incorporate newer technologies, such as MicroProfile, Docker containers, and Kubernetes orchestration.
  • Speed and simplicity. A Jakarta EE application can be set up with significantly less configuration compared to other frameworks.
  • Development and deployment freedom. Developers can use any Jakarta EE-compatible runtime, and they can implement and blend whichever aspects of the application server are needed to leverage Jakarta EE capabilities in a modern and efficient way.
  • Longevity. The open, vendor-neutral, and community-driven approach at the Eclipse Foundation ensures applications developed using Jakarta EE will remain relevant and usable over the long term.

Get the Full Story

These insights are just a few of the reasons leading Java developers remain committed to Jakarta EE. For the complete story, download the white paper.

Visit the Jakarta EE website to learn more about Jakarta EE and explore the Jakarta EE specifications.


by Ivar Grimstad at March 31, 2021 12:36 PM

The Payara Monthly Catch: March 2021

by Priya Khaira-Hanks at March 31, 2021 09:19 AM

It's that time again, our March monthly catch! The "fishes" in our "net" are Java, Jakarta EE, Open Source and Microprofile articles, news stories, videos and podcasts we've found useful and interesting, as well as a few Payara Services updates.

Big news this month is the General Availability release of Java 16. Articles under the 'Java EE' subheading in our Community news section below provide expert opinions on what's new in this release.


by Priya Khaira-Hanks at March 31, 2021 09:19 AM

Migration Path to JDK 16 | The Two Minutes Tuesday 020 | Modern Java

by Markus Karg at March 30, 2021 09:00 PM

Migrate to #JDK16 NOW! #Java 16 is here since last week, and there is no excuse to stay with any older versions! There is a simple four-steps migration path to more speed, more performance, more fun!

If you like this video, please give it a thumbs up, share it, subscribe to my channel, or become my patreon https://www.patreon.com/mkarg. Thanks! 🙂

CU!


by Markus Karg at March 30, 2021 09:00 PM

Polymorphic association mappings of independent classes

by Thorben Janssen at March 30, 2021 12:00 PM

The post Polymorphic association mappings of independent classes appeared first on Thorben Janssen.

JPA and Hibernate make it very easy to model associations between entities. You can model associations between 2 concrete classes or model a polymorphic association to an inheritance hierarchy. These mappings are more than sufficient for almost all of your association mappings. But sometimes, you might want to model a polymorphic association to independent entity […]

The post Polymorphic association mappings of independent classes appeared first on Thorben Janssen.


by Thorben Janssen at March 30, 2021 12:00 PM

NoSQL design pitfalls with Java [TDC]

by otaviojava at March 25, 2021 09:39 AM

References Frameworks DataStax Mapper Neo4j – OGM Object Graph Mapper Morphia Neo4j from Java Apache TinkerPop openCypher Cassandra driver JRedis MongoDB driver Spring Data Micronaut Quarkus Jakarta EE/NoSQL Hibernate OGM Books NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems […]

by otaviojava at March 25, 2021 09:39 AM

Crashing JavaLand 2021 [Such fun! Such fun!] | Head Crashing Informatics 29 | Satire

by Markus Karg at March 21, 2021 09:57 AM

Hey guys! How’s it going?

The somewhat different report from #JavaLand 2021… Such fun!

[ironic]

Top of the evening to you, enchanting subscribers! Some people told me that I do sound arrogant sometimes, and to proof them right I do present to you, with all my gracious magnanimity, hereby this absolutely outstanding report from JavaLand 2021. Produced by the best #Java programmer I ever heard of, if not the best one ever, feel honoured to enjoy this exclusive insider report from this years top Java conference in Europe! Such fun! Such fun! 😉

[/ironic]

If you like this video, please give it a thumbs up, share it, subscribe to my channel, or become my patreon https://www.patreon.com/mkarg. Thanks! 🙂

Jewellery by stkarg.design (https://www.instagram.com/stkarg.design/)

A Peilung 0 Production (https://www.youtube.com/channel/UCsbwCYGr9sZMeF0z2GpEk8g)

Stay safe and… Party on!


by Markus Karg at March 21, 2021 09:57 AM

NoSQL design pitfalls with Java [MontrelJUG]

by otaviojava at March 18, 2021 05:20 PM

Non-relational databases have come with the promise of assisting software in the Big Data age, handling the challenges of variety, velocity, and volume that come with it.However, several points plague even the most experienced software architects: How do I migrate my data to NoSQL and which one? Where are the relationships? Should I use some […]

by otaviojava at March 18, 2021 05:20 PM

Getting Started with Jakarta EE 9: Hello World

by Rudy De Busscher at March 18, 2021 10:00 AM

Introduction

The release of Jakarta EE 9, at the end of 2020, was in many ways a historic event. The Java Enterprise framework is already 20 years old, having its first release in 1999. It has changed names a few times but the main concepts of the first release can still be found in this new release. During all those years, it has adapted itself to keep it up to date but has always adhered to its main principle of stability and backward compatibility.


by Rudy De Busscher at March 18, 2021 10:00 AM

Enabling Jakarta EE 9 for development and test by using the Eclipse Transformer

March 17, 2021 12:00 AM

Overview

In this post, we describe how to use the Eclipse Transformer to update your applications and test artifacts for Jakarta EE 9. We also describe the steps to update Open Liberty server configurations to run Jakarta EE 9 applications.

The core problem that is introduced by Jakarta EE 9 is the renaming of package prefixes from javax to jakarta for APIs and properties. As a consequence, existing applications that run against Java EE 7 or Jakarta EE 8 do not run against Jakarta EE 9. To run existing applications as Jakarta EE 9 applications, specific package references must be updated.

To solve this problem, the Open Liberty development team created the Eclipse Transformer. This open source project provides a utility that updates package references in various artifacts.

The development team uses the Eclipse Transformer to update bundle implementation archives. The team also uses the transformer to update test artifacts, including applications, test classes, and Open Liberty server configurations.

Similarly, you can use the Eclipse Transformer to update applications, test classes, and server configurations. Updates to applications and test classes are usually necessary. Updates to server configurations are necessary when using Open Liberty.

The transformer is quick and efficient. When integrated as a build step, as is done in Open Liberty builds, using the transformer avoids the creation of new Jakarta EE 9 source files.

Although this post focuses on updating from Jakarta EE 8 to Jakarta EE 9, the same information holds true for updating from Java EE 7 to Jakarta EE 9.

Test transformation strategy

To transform test artifacts, package references must be updated to change old javax package references into new jakarta package references. Package references can be in several locations, including test applications, test code, and server configurations.

Additionally, in Open Liberty, server configurations must be updated to replace old Jakarta EE 8 features with corresponding new Jakarta EE 9 features. Currently, the transformer does not have the rules data necessary to specify feature name updates. These updates must either be made manually, through custom code, or by creating new rules data for the transformer. For more information about updating Open Liberty features, see Updating Open Liberty features in server configurations.

Preparing to run the transformer

A transformer image can be obtained either by downloading the image or by building an image by using the open source repository.

Alternatively, the transformer can be built by cloning the Eclipse Transformer repository and invoking maven to build the transformer JAR file:

    mvn clean package

The maven build creates the distribution JAR file at:

    org.eclipse.transformer.cli/target/org.eclipse.transformer.cli-0.3.0-SNAPSHOT-distribution.jar

Unzipping the downloaded or built distribution obtains the transformer and prerequisite JAR files:

    unzip org.eclipse.transformer.cli-0.3.0-SNAPSHOT-distribution.jar
    org.eclipse.transformer.cli-0.3.0-SNAPSHOT.jar
    libs/org.eclipse.transformer-0.3.0-SNAPSHOT.jar
    libs/biz.aQute.bnd.transform-5.2.0.jar
    libs/slf4j-api-1.7.25.jar
    libs/commons-cli-1.4.jar
    libs/slf4j-simple-1.7.30.jar

Running the transformer

The Eclipse Transformer can be run directly from the command line, as a Gradle task, or from Java code. This post describes using the transformer from the command line. For more information, see the transformer project pages.

To run the transformer by using the default rules, run the following command:

  java -jar org.eclipse.transformer.cli-0.3.0-SNAPSHOT.jar \
    <target_location> \
    <output_location>

The target location can be a packed application archive file (EAR, WAR, RAR, or JAR) or a directory that contains the fully or partially expanded contents of one of these archives. The target can also be a directory that contains Java source, or a directory that contains several application archives. It can even be a single file, such as a server.xml file. The transformer processes all of the artifacts in the target location. Transformed artifacts are written to the output location.

The org.eclipse.transformer.cli-0.3.0-SNAPSHOT.jar file is a runnable JAR file that specifies org.eclipse.transformer.jakarta.JakartaTransformer as the main class and uses the necessary JAR files from the libs folder in its class path.

You can run the transformer using custom rules by specifying options on the command line. The additional options specify local rules files that the transformer uses instead of the default rules files.

For example, to use Open Liberty rules data, which can be more up to date than the default rules data, download Open Liberty Rules. Then, pull in the downloaded rules data by adding options -tr, -td, and -tf, to the command-line invocation:

  java -jar org.eclipse.transformer.cli-0.3.0-SNAPSHOT.jar \
    <target_location> \
    <output_location> \
    -tr ${rules}/jakarta-renames.properties \
    -td ${rules}/jakarta-direct.properties \
    -tf ${rules}/jakarta-xml-master.properties

The -tr option specifies a properties file that contains package rename data. The -td option specifies a properties file that contains java direct string replacement data. The -tf option specifies a main properties file that links to other properties files. Each of the linked properties files contains replacement data for text-like files that match specific patterns, as specified in the main properties file.

These three command-line options are most important for application and test developers. Other command line options are available, but are less important. For example, the option -tb is used to specify data for transforming bundle archives, while the option -ts is used to specify which target files are to be transformed. For more information about command-line options, run the transformer with either the -usage option or with the -help option.

  java -jar org.eclipse.transformer.cli-0.3.0-SNAPSHOT.jar \
    -usage

Transforming server configurations

When you specify your server.xml file as a target location for the transformer, Open Liberty server configuration elements that contain javax package references are updated to jakarta. For example, the destinationType attribute of the jmsActivationSpec element contains a javax package reference:

  <jmsActivationSpec id="SharedSubscriptionWithMsgSel/TestTopic1">
    <properties.wasJms
        destinationRef="jms/FAT_TOPIC"
        destinationType="javax.jms.Topic"
        subscriptionDurability="DurableShared"
        clientId="cid1"
        subscriptionName="DURSUB"/>
  </jmsActivationSpec>

This configuration is updated to:

  <jmsActivationSpec id="SharedSubscriptionWithMsgSel/TestTopic1">
    <properties.wasJms
        destinationRef="jms/FAT_TOPIC"
        destinationType="jakarta.jms.Topic"
        subscriptionDurability="DurableShared"
        clientId="cid1"
        subscriptionName="DURSUB"/>
  </jmsActivationSpec>

Only package names in the server configuration are updated by the transformer. Features must be handled separately

Updating Open Liberty features in server configurations

For Jakarta EE 9 applications to run in Open Liberty, new Jakarta EE 9 features must be specified in the server configuration. In many cases, the new Jakarta EE 9 features use the same short names as the corresponding Jakarta EE 8 features. In those cases, the Jakarta EE 9 features simply have an updated feature version. For example, cdi-2.0 was updated to cdi-3.0. However, in some cases, the feature short name is also different, as with ejb-3.2, which was updated to enterpriseBeans-4.0.

If an old short name is incorrectly used with a new Jakarta EE 9 version, the server does not start, and the server logs provide information to say which new feature short name must be used. For example, if ejb-3.2 is incorrectly changed to ejb-4.0, the server logs indicate that enterpriseBeans-4.0 must be used.

Currently, the transformer cannot update Open Liberty features because it is missing rules data to specify the updates. Features must be updated manually or by custom code.

The following table lists features for which only the feature version is updated:

Table 1. Jakarta EE 8 to Jakarta EE 9 feature updates: version only
Jakarta EE 8 feature name Jakarta EE 9 feature name

appClientSupport-1.0

appClientSupport-2.0

appSecurity-3.0

appSecurity-4.0

batch-1.0

batch-2.0

beanValidation-2.0

beanValidation-3.0

cdi-2.0

cdi-3.0

concurrent-1.0

concurrent-2.0

jakartaee-8.0

jakartaee-9.0

jsonb-1.0

jsonb-2.0

jsonbContainer-1.0

jsonbContainer-2.0

jsonp-1.1

jsonp-2.0

jsonpContainer-1.1

jsonpContainer-2.0

managedBeans-1.0

managedBeans-2.0

mdb-3.2

mdb-4.0

servlet-4.0

servlet-5.0

webProfile-8.0

webProfile-9.0

websocket-1.1

websocket-2.0

The following table lists features for which both the feature short name and the feature version are updated:

Table 2. Jakarta EE 8 to Jakarta EE 9 feature updates: short name and version
Jakarta EE 8 feature name Jakarta EE 9 feature name

ejb-3.2

enterpriseBeans-4.0

ejbHome-3.2

enterpriseBeansHome-4.0

ejbLite-3.2

enterpriseBeansLite-4.0

ejbPersistentTimer-3.2

enterpriseBeansPersistentTimer-4.0

ejbRemote-3.2

enterpriseBeansRemote-4.0

el-3.0

expressionLanguage-4.0

jacc-1.5

appAuthorization-2.0

jaspic-1.1

appAuthentication-2.0

javaee-8.0

jakartaee-9.0

javaeeClient-8.0

jakartaeeClient-9.0

javaMail-1.6

mail-2.0

jaxb-2.2

xmlBinding-3.0

jaxrs-2.1

restfulWS-3.0

jaxrsClient-2.1

restfulWSClient-3.0

jaxws-2.2

xmlWS-3.0

jca-1.7

connectors-2.0

jcaInboundSecurity-1.0

connectorsInboundSecurity-2.0

jms-2.0

messaging-3.0

jpa-2.2

persistence-3.0

jpaContainer-2.2

persistenceContainer-3.0

jsf-2.3

faces-3.0

jsfContainer-2.3

facesContainer-3.0

jsp-2.3

pages-3.0

wasJmsClient-2.0

messagingClient-3.0

wasJmsSecurity-1.0

messagingSecurity-3.0

wasJmsServer-1.0

messagingServer-3.0

Reference Resources


March 17, 2021 12:00 AM

JavaLand 2021: Behind The Scenes | The Two Minutes Tuesday 019 | Conference Report

by Markus Karg at March 16, 2021 10:00 PM

Day one of virtual #JavaLand 2021 is over, so it is time to look behind the scenes! Join me for short a studio tour, see the gear I’m using, and have fun watching me doing JavaLang Kung Fu!

If you like this video, please give it a thumbs up, share it, subscribe to my channel, or become my patreon https://www.patreon.com/mkarg. Thanks! 🙂

CU!


by Markus Karg at March 16, 2021 10:00 PM

Architecting and delivering Java Applications in the Cloud Era

by otaviojava at March 16, 2021 03:38 PM

Nowadays, the best company is the one that delivers value quicker to its customers. They seek to spend less, and in consequence, they end up searching for cloud solutions. On the technical side, we have Java, which is the most mature and popular language of the past 25 years. Nevertheless, the most asked questions of […]

by otaviojava at March 16, 2021 03:38 PM

Meet me in JavaLand!

by Markus Karg at March 13, 2021 09:17 AM

As a frequent follower, you certainly know that I am part of the JavaLand Team. While my main task is to organize things upfront to the conference, I try to be a bit more visible on the show itself every year. So how can you meet me in JavaLand this year? Just get an online ticket to this virtual conference, enable mike and cam, and enter here: https://www.javaland.eu.

You can find me all day in the virtual JavaLand (which is done in Gather.town), so just search my name in the visitors panel and click on “follow” to directly find me on the map. Or attend one of my own sessions:

Listen to my part of the Opening Address

Come to the Jakarta EE panel discussion

Exercise JavaLand Kung-Fu

And… spoiler alert…: Join me after the first conference day in a “Behind The Scenes of JavaLand 2021” Special of The Two Minutes Tuesday on my Youtube channel at Tuesday 23:00 CET!

Jatumba! JavaLand rocks!


by Markus Karg at March 13, 2021 09:17 AM

Jakarta EE Community Update for February 2021

by Tanja Obradovic at March 11, 2021 07:07 PM

For Jakarta EE even in the short month as February is, we have quite a few things going on. Here is an update highlighting key initiatives.

The Jakarta EE community and Working Group is growing

Another Participant member joined the Jakarta EE working group. We are very excited to welcome  jadeva GmbH to the working group.

We talked to the enthusiastic and engaging duo Stephan Zubke, CTO is one of the initial founders of the company, and Claudia Geiger, CEO of the company,  who provided a bit more information about the company. 

jadeva GmbH is based in Stuttgart, with a team that consists of developers, scrum masters and product owners, following agile development methods. The company itself was founded in 2010 as OZ Solutions and renamed into jadeva UG in 2012, but just going under rebranding from UG to GmbH, hence you now see jadeva GmbH as the name of the company.

“Due to our technological focus it was an important step for us to join the community since it is our wish to contribute and support the development of Jakarta EE. We see networking and learning from each other as an important part in the growth of a company. Not only in numbers, but also in knowledge”, Claudia Geiger, CEO.

 

Jakarta EE 9.1 release

Jakarta EE 9.1 Release will target a release date for 2021 Q2. Kevin Sutter (IBM) is leading the effort. As previously communicated, the primary goal of the release is to provide support for Java SE 11 and to deliver it as soon as possible. We do not expect any API changes in this release.

You can view the Jakarta EE 9.1 Release Plan here. 

 

Jakarta EE Specification project teams 

We have organized a public calendar Jakarta EE Specifications Calendar (public url, iCal) to display all Jakarta EE Specification project teams meetings. Everyone interested to join the calls is welcome to join.

The Jakarta EE Platform team (meeting on Feb 9th, 2021) has invited all specification project team members and leads to submit their release plans for review by April 15th, so the planning for release after 9.1 can start.

 

Compatible Products and Compatible Implementations

Our list of Compatible Products, implementations of Jakarta EE Platform and Web Profile, is growing, and not just for Jakarta EE 8, but also for Jakarta EE 9.

Jakarta EE 8 newly certified products are

Jakarta EE 9 newly certified products are 

Our list of Compatible Implementations, implementations of Jakarta EE individual or component specifications is growing as well. We will highlight these implementations on the specification pages

 

Book your 2021 Jakarta EE Virtual Tour and Adopt-A-Spec

We are looking for the opportunity to virtually visit you, so don’t hesitate to get in touch (tanja.obradovic@eclipse-foundation.org) if you’d like to hear about Jakarta EE 9 and beyond.

We need help from the community! All JUGs out there please choose the specification of your interest and adopt it. Here is the information about the Adopt-A-Spec program. 

 

Stay Connected With the Jakarta EE Community

The Jakarta EE community is very active and there are a number of channels to help you stay up to date with all of the latest and greatest news and information. Subscribe to your preferred channels today:

·  Social media: Twitter, Facebook, LinkedIn Group

·  Mailing lists: jakarta.ee-community@eclipse.org, jakarta.ee-wg@eclipse.org, project mailing lists, slack workspace

·  Newsletters, blogs, and emails: Eclipse newsletter, Jakarta EE blogs, Hashtag Jakarta EE

·  Meetings: Jakarta Tech Talks, Jakarta EE Update, Jakarta Town Hall, and Eclipse Foundation events and conferences

You can find the complete list of channels here.

To help shape the future of open source, cloud native Java, get involved in the Jakarta EE Working Group.

To learn more about Jakarta EE-related plans and check the date for the next Jakarta Tech Talk, be sure to bookmark the Jakarta EE Community Calendar.

 


by Tanja Obradovic at March 11, 2021 07:07 PM

Modern Cloud-Native Jakarta EE Frameworks: tips, challenges, and trends

by otaviojava at March 11, 2021 03:29 PM

Java has a large number of tools and frameworks to facilitate integration with databases, microservices, and so on. These tools have evolved considerably. It all started with class integrated with XML files and has undergone significant evolution with reflections and annotations within the class definitions. In the cloud-native scenario, requirements have changed and this impacts […]

by otaviojava at March 11, 2021 03:29 PM

Profiling Jakarta EE Applications with NetBeans Profiler

by WildFly Admin (francesco@mastertheboss.com) at March 10, 2021 08:56 AM

In this article we will learn how to profile Java/Jakarta EE applications with NetBeans built-in profiler tool and how to instrument WildFly application server for this purpose.


by WildFly Admin (francesco@mastertheboss.com) at March 10, 2021 08:56 AM

Hibernate Slow Query Log – The easiest way to find slow queries

by Thorben Janssen at March 09, 2021 01:00 PM

The post Hibernate Slow Query Log – The easiest way to find slow queries appeared first on Thorben Janssen.

One of the common questions when analyzing a slow application is if there are any slow database queries. You can, of course, monitor these queries on your database. But then you still need to match them with a part of your Java code. And because there is no easy way to see what happened immediately […]

The post Hibernate Slow Query Log – The easiest way to find slow queries appeared first on Thorben Janssen.


by Thorben Janssen at March 09, 2021 01:00 PM

Introduction to Reflectionless: Discover the New Trend in the Java World

by otaviojava at March 08, 2021 10:28 AM

Discover this new movement in Java frameworks that aim to circumvent the disuse of reflection to decrease application startup and decrease memory consumption. https://dzone.com/articles/introduction-to-reflectionless-know-what-the-new-t

by otaviojava at March 08, 2021 10:28 AM

Back to the top