NexOpen Framework: Features
NexOpen is a J2EE/JEE framework, based on Spring 2.0.x, that integrates other important opensource projects, with the aim of supplying a simple development framework but also allowing to build robust, scalable and reliable projects.
|
J2EE specification |
NexOpen follows J2EE 1.4 specification, although it may be used with J2EE 1.3. In addition there are some JEE 5.0 modules also availables for 1.4 projects. |
|
JVM specification |
J2SE 5.0, and partly compatible with j2SE 1.4.2 |
NexOpen offers a components architecture and organized in modules for easy distribution.
Annotations based configuration
NexOpen framework aims to reduce the configuration files of the projects, providing a full-scoped set of annotations. Using annotation the developer can omit to configure Spring’s beans injection or Hibernate properties configuration, for example. The autodiscovery service will seek all the Entity classes,i.e., hibernate mapping ones.
Of course, NexOpen allows to access to all the application context
Services module
A Service Component is a control component such as “represent coordination, seuqencing, transactions, and control of other objects and are often used to encapsulate control related to a specific use case”. Following this definition, in NexOpen we have structured the business layer for dealing with POJOs whih fulfills the requeriments before mentioned.
Our service module uses JSR-250, common JEE 5.0 annotations, to access application resources (such as other service components) or application server’s resource, like datasource.
Instrumentation module
This module is where the magic happens. NexOpen allows bytecode modification for service components, based on Javassist 3.x.. This widely verified module allows J2SE 5.0 annotations to be supported on J2SE 1.4.x environments, transforming all the Services into MBeans, and Facade components will run into EJB 3.0 Stateless beans.
In addition to this, all services in the system will be able to start/stop its threads, using the JMX console.
EJB support module
NexOpen works with EJBs as its business layer front door, in order to have a join point with the presentation layer controllers (Business Facade Pattern). In the instrumentation phase, our facades will be refactorized into EJB 3.0 Stateless beans.
NexOpen accesses to this EJB througha Service Gateway, allowing to hide AOP calls init.
Persistence module
NexOpen provides of a Persistance Manager, its own implementation the Domain Store patter, to simplify the number of classes that often are needed when using other patterns as DAO.
The Persistance Manager is based on standard JSR-220 (via Hiberante 3), that specifies a simple and intuitive API to be able to manage the object’s persistence. In addition, NexOpen 0.4.x relies on JPA to use its own-made Persistence Manager, or if it’s available, the Application Server’s Entity Manager .
Webservices module
NexOpen helps integration with 3rd-party applications via web services. In order to publish its own services, this module gives support for J2SE 5.0 developed webservices following Sun specifications, under projects JSR-181 and JSR-224 (JAX-WS 2.0). By default, it uses XFire 1.2, but it is also compatible with JAX-WS 2.0 servers as Glassfish.
In addition, NexOpen allows helps to consume external webservices, following JAX-WS 2.0 specification.
Finally, NexOpen provides of signature services.
Caching module
There is a caching module for high performance applications, in order to store in memory highly used information. NexOpen offers annotations for caching support (reliying on EhCache 1.2.x and JBossCache 1.2.x).
Workflow module
NexOpen helps to integrate a workflow component easily and in a clean way. NexOpen offers an integration with jBPM 3.1.x to ensure the completion of business workflows, using annotations independing the business logic from the workflow one.
Serialization module
XML serialization/deserialization module. Currently XMLBeans 2.1.x and XStream 1.2 support, and JAXB (1.x and 2.x) support planned. Usefull for marshaling/unmarshalling REST services.
Asynchronous tasks module
NexOpen offers a module to manage application asynchronous tasks, using JMS 1.1 and EJB 2.x (Message Driven Beans). Based on Lingo 1.2.x.
Scheduling module
NexOpen offers an esay to use annotation support for scheduled processes (based on Quartz 1.5.x and CommonJ)
Auditing module
NexOpen uses providers to delegate the application auditing. NexOpen includes an Oracle FGA implementation, to allow an easier and delegate way for Oracle auditing (for Oracle 10g only). Auditing support is based on AOP, and you can define application pointcuts using annotations.
Security module
NexOpen integrates autentication/autorization using Acegi Security for Spring Framework 1.0.x., supporting DB, LDAP or SiteMider autentication. NexOpen defines the typical User-Role-Group model, but it can be extended to fullfill every project needs.
AJAX support module
NexOpen gives support to the presentation layer for AJAX using DWR 2.0
Pagination support module
NexOpen pagination usues ValueList 0.1.8 API, and completes it using a FacadeAdapter for a real 3-layers design allowing clustering support.
MVC presentation module
NexOpen integrates with Spring MVC 2.0.x, Struts 1.2.x. and the Struts 2.0.x
Unit Testing support
NexOpen provides support to jUnit 3.x and jUnit 4
Supported J2EE/JEE Application Servers
NexOpen has been tested and validated in the following application servers:
- jBoss 4.0.x
- jBoss 4.2.x
- Bea Weblogic 9.2.x
- Tomcat 5.0.x
- Tomcat 5.5.x
- Tomcat 6.0.x

