IntroductionFor many years now, I'm developing web applications with JavaServer Faces. And although I'm extremely satisfied with the framework, I realized during the last few years that the technology has his limits.
Some state is kept in the session memory for the user and this limits the usability in high volume websites. However, other features makes it the best choice for administrative applications.
Over the years, I followed the trends within JSF to reduce the memory consumption. There was a big effort done with the release of JSF 2.0 where there was the introduction of partial state saving mechanism. And for Apache MyFaces and the Mojarra implementations, you have a 'stateless' version.
How this idea emerged can be read in this blog post.
You start with some kind of template, HTML with some additional attributes on the tags or even new tags. The 'link' with the model data is made by some kind of EL and the DOM manipulation is done automatically based on the model data. With this data linking, it create a list with the data in a tabular form by just some specifying some html and giving it a collection of data.
Another interesting features is the ability to define some directives yourself. That allows me to create an integration for the PrimeUI widgets.
JSF back in the pictureAfter that I played a bit more with the combination AngularJS and JAX-RS, the resemblance between the JSF way of working and AngularJS became stronger and stronger. So I decided to create a component library and JSF renderers that can generate the files for the AngularJS way of working based on the JSF views.
This will become of course a tremendous amount of work to support everything and implement all options, but a first prototype was ready after a few weeks.
So at that time, I found it useful enough for me, as a kind of side project to learn more about the Stateless web development, to start the StatelessPrime project and blog.
StatelessPrime project goalsSo this is the, non restrictive, list of goals that I want to tackle the next months with the StatelessPrime project.
At least, I should come at a point where I no longer 'fear' using it. However, I don't need to become an expert.
- Know and use the features of AngularJS
- Integrate PrimeUI with AngularJS
- Integrate AngularJS with JAX-RS functionality
There are a few config that you need to make
- Generate AngularJS/PrimeUI/JAX-RS application based on 'standard' JavaServer faces applications
- Create Maven plugin
- Keep a blog
Write down my adventures, lessons learned etc in a blog
DeliverablesAs you can see in the list of goals, there are 2 groups of things that I like to cover. Therefor, the project is also divided in 2 parts.
- StatelessPrime AngularJS
Here I will explore the combination AngularJS and PrimeUI with JAX-RS on the backend.
- StatelessPrime JSF
Here you can find the thnings related to the component library, renderers, Maven plugin and the compiler to generate an AngularJS/PrimeUI/JAX-RS application from JSF/CDI