mahammad-fathi opened a new issue, #8530:
URL: https://github.com/apache/netbeans/issues/8530

   ### Apache NetBeans version
   
   Apache NetBeans 25
   
   ### What happened
   
   When using the `JSF Pages from Entity Classes` feature in NetBeans, if 
**GlassFish** is selected as the application server, the tool properly 
generates Session Beans (Facade Beans) in a separate package such as `session`. 
However, if **WildFly** is selected, this structure is not respected, and the 
Session Beans are created within the entity package or under a general `JPA 
package`.
   
   This behavior leads to poor project organization, inconsistency with common 
Java EE architecture practices, and harder maintainability.
   
   ### Language / Project Type / NetBeans Component
   
   java maven web application
   
   ### How to reproduce
   
   NetBeans should generate Session Beans package (e.g., 
`YourEntityFacade.java`) in a separate and clearly named package when select 
wildfly server similar to the behavior with GlassFish. Should not use the JPA 
model
   
   ### Did this work correctly in an earlier version?
   
   No / Don't know
   
   ### Operating System
   
   Distro: Linux Mint 22.1 Xia base: Ubuntu 24.04 noble  Kernel: 
6.8.0-60-generic arch: x86_64
   
   ### JDK
   
   openjdk version "24" 2025-03-18
   
   ### Apache NetBeans packaging
   
   Apache NetBeans binary zip
   
   ### Anything else
   
   In NetBeans, when using the "JSF Pages from Entity Classes" feature and 
selecting WildFly as the application server, during the Generate JSF Pages and 
Classes step, the IDE does not generate proper Session Bean classes (e.g., 
stateless EJBs in a separate package like session or ejb).
   
   Instead, it only generates classes based on JPA architecture such as JPA 
controller package that include manual transaction handling code, and places 
them under a general package (e.g., controller.jpa), without leveraging the EJB 
container model.
   for example:
   
       public ActorJpaController(UserTransaction utx, EntityManagerFactory emf) 
{
           this.utx = utx;
           this.emf = emf;
       }
       private UserTransaction utx = null;
       private EntityManagerFactory emf = null;
   
       public EntityManager getEntityManager() {
           return emf.createEntityManager();
       }
   
   This behavior deviates from the standard Java EE layered architecture, where 
entity classes (model), session beans (logic layer), and JSF pages (view) are 
clearly separated. It increases maintenance complexity and results in poorly 
structured code.
   Should be in that way:
   
   public class ActorController implements Serializable {
       @EJB
       private Beans.Session.ActorFacade ejbFacade;
   
   And the correct production of session classes That related to Session Beans.
   
   This issue occurs only when WildFly is selected as the target server. When 
GlassFish is used instead, NetBeans correctly generates Session Beans in a 
dedicated package and follows the recommended Java EE application structure
   ## 🧩 Suggested Fix:
   
   - Detect EJB module and structure even in single-module web projects.
   - Provide an option to set the target package for Session Beans in the 
wizard.
   - Ensure better compatibility with application servers like WildFly and 
Payara.
   
   ---
   
   ## 🔁 Reproducibility:
   
   ✅ Always reproducible when using WildFly.
   
   ### Are you willing to submit a pull request?
   
   Yes


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@netbeans.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@netbeans.apache.org
For additional commands, e-mail: notifications-h...@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to