Java EE and Angular Demo

Updated:

If you are looking for an example of project structure for Java + web javascript framework (Angular, *.js) you can find the code here:
https://github.com/marco76/java-web-js-template.

The structure of the project can be adapted to Angular / React / Vue. Contact me if you have problems / better solutions.

The bla bla that continues the post is there for historical reasons.

@deprecated

Update 04.2018 : Angular with Java EE / Spring and Kubernetes

The new architecture is more is more Microservices oriented.

The frontend is in Angular (the latest and coolest version), Bootstrap and Material Design and the backend is in the cloud using Kubernetes (and Docker containers) and is a mix of Java EE / Microprofile, Spring and Cloud functions (Node.js).

The goal is to have a Show Case of a modern Enterprise Architecture.

The demo is self documented. If you have any request, please contact me.

The new architecture:

... and the old one (war deployed in JBoss):

Java EE and Angular Demo

Java EE 8 will come this year with a lot of newsworthy improvements and some possible disappointments (MVC, JAX-RS NIO etc).

With the goal to show how the new JSR works we are preparing a demo of the new features and some already existing but maybe not well known.

The final specification should be ready in July 2017 and the compatible containers will follow.

Inspired by some great active members of the Java Community we try to build a demo that allows the developers to see and play with some of the new JSR. The road is not easy because the specifications of the JSR are not even completed on paper. It will be a long and funny journey.

Java EE on the backend and … Angular on the frontend???

Yes, Angular. It’s not a Java technology and it’s in direct competition with some Java frameworks during the evaluation process of enterprises architectures. So why the choice of a JavaScript framework and not JSF?

One of the goal of the demo is to show how Java EE is an excellent and solid solution to the present and future enterprise needs. Companies are free to choice the new coolest and riskier JavaScript frameworks for the frontend and feel safe on the backend with a rock solid technology.

In my personal experience as consultant when I go to talk to clients they tell me ‘for the new web projects we use the newest JS frameworks (Angular, React etc.) that communicate through RESTful API with a Java (Spring or Java EE) backend. The JSF projects are in maintenance (deprecated) mode. Same architecture for the mobile: native frontend and REST‘.

This seems to be the current trend and we have to accept it, maybe your experience is different.

If you are interested in a full stack Java EE 8 demo you can find an excellent reference here: https://jj-blogger.blogspot.ch/2017/03/testing-java-ee-8.html?m=1

The project with Java EE 8 – javademo.io

The demo (in permanent development) is visible here: https://javademo.io

The JSR are still in work in progress mode (review, final draft) and the Reference Implementations are not ready yet. The server used to run the application need some patches to integrate the new JSRs.

The code source is available here: https://github.com/marco76/java-demo

The architecture of the application

Server: WildFly 11 alpha (patched)

Frontend : Angular 4

Build: Maven and Webpack (Angular cli)

Deploy: Docker in AWS cloud or simple Web WAR in a Java EE (patched) server

The application is built combining Maven with Node.js. For the production mode maven build the deployable with an orchestration of the Java and Javascript build processes.

For the development the Java backend run on 8080 and Angular (ng serve) run on 4200.

Want to see some special features? Want to contribute?

Every contribution is welcomed. You can ask for features that you want to see in the blog, better in the GitHub project. Suggest for improvements. Submit PR for the Java or the Angular / Typescript code.


Update

Thanks to André and to the Java and Angular Developers

André twitted about this post and generated a strong reaction in the Java and Angular Community, thanks. This give me more energy to improve the demo during the next months (the Java EE 8 spec and implementations are still a ‘work in progress’, Angular improve/change regularly).

The goal of the demo (free time work) is to try to help the FullStack developers with a simple reference and a catalog of feature for their daily work.

You can help reviewing the code on GitHub  or request for new features / improvements. Every feedback helps.


Fullstack Angular / Java application quick start guide.
WebApp built by Marco using SpringBoot 3.2.4 and Java 21. Hosted in Switzerland (GE8).