adminfaces / admin-template

JSF responsive admin template based on Bootstrap and AdminLTE
https://adminfaces.github.io/docs/latest/#admin_template
MIT License
209 stars 101 forks source link

Provide a Jakarta EE 9 version #206

Closed vitorsouza closed 2 years ago

vitorsouza commented 2 years ago
Issue Overview

Latest version of Admin Template references Java EE javax. APIs, thus not working in a Jakarta EE 9 setting.

Current Behaviour

If you start a new Web project, use jakarta.jakartaee-web-api 9.1 as a dependency together with admin-template 1.3.1 and deploy it on a Jakarta EE 9 server (e.g., WildFly 25.0.1 Preview EE 9.1) you get a NoClassDefFound exception, as admin-template will reference Jave EE 9 classes under javax. and the Jakarta EE 9 server will provide these classes under a new package naming structure jakarta..

Expected Behaviour

Admin Template could provide a Jakarta EE 9 version of the dependency, the same way PrimeFaces 10 does, using classifiers:

    <dependency>
      <groupId>org.primefaces</groupId>
      <artifactId>primefaces</artifactId>
      <version>10.0.0</version>
      <classifier>jakarta</classifier>
    </dependency>  

By adding the jakarta classifier, Maven would download a version of admin-template that has been built for Jakarta EE 9.

How to reproduce

I created an AdminFaces in Jakarta EE 9 Starter Project after performing the following:

  1. Cloned the admin-template repository;
  2. Upgraded Java EE references to Jakarta EE 9 references;
  3. Ran mvn deploy to create the new artifact at a local Maven repository;
  4. Then uploaded it to LabES UFES' webserver in order for people to be able to declare it as a dependency in their Maven projects;
  5. Created the admin-starter-jee9 project as an example of use.

If you deploy the admin-starter-jee9 project in a Jakarta EE 9 server you will get the expected behavior. To get the current behavior, modify the project's pom.xml to reference version 1.3.0 of admin-template instead of the 1.3.1-jakarta version I created.

Additional Information
rmpestano commented 2 years ago

Hi @vitorsouza, starting from v1.4.0 adminfaces will be only compatible with jakarta ee package.

If needed we can create a legacy classifier to support javax package, ~please create an issue if that's the case~ (done, see #210 ).

Thank you!

vitorsouza commented 2 years ago

Hi @vitorsouza, starting from v1.4.0 adminfaces will be only compatible with jakarta ee package.

Did this not go through? It seems that changes were made in branch 206-jakartaee-migration but never merged into master. I tried using admin-template-1.5.1 from mvnrepository but it seems to be using javax. packaging still.

rmpestano commented 2 years ago

Hey @vitorsouza, you're right. I'll try to release a new version today.

Thanks for the heads up!

rmpestano commented 2 years ago

Hey @vitorsouza, I've just released v1.6.0 and now it should be ok.

I've migrated Admin starter to jakarta and it seems to be working on wildfly 26.1.1.

For the javax support I tested the quarkus-admin-starter and it's also working.

Thank you again and sorry for the issues in previous releases.

vitorsouza commented 2 years ago

Thank you for working on this! Tried version 1.6.1 from mvnrepository and it works great. Thanks again!

rmpestano commented 2 years ago

Thank you for the update @vitorsouza!

anumber8 commented 2 years ago

Hi @rmpestano hope you are doing well. Congratulations adminfaces its an awesome piece of work. Are you planning to migrate to primefaces 11 this year? Keep up the good work, cheers!!

rmpestano commented 2 years ago

Hey @anumber8, thanks for the kind words!

For the PF 11 support we are already there, check admin-starter project (I still need to migrate the showcase and the other starter projects)