JBoss is een applicatieserver die onlangs J2EE-gecertifieerd is door Sun. Het ontwikkelteam heeft daaropvolgend de eerste release candidate uitgebracht van JBoss 4.0.0 om een voorproefje te geven van de aanwezige J2EE 1.4 uitwerking. De volledige release notes zien er als volgt uit:
JBoss-4.0.0RC1 Release Notes
The 4.0.0RC1 is the first relase based on the codebase that has successfully passed the J2EE 1.4 TCK. This initial release candidate is being made availble as a preview of the J2EE 1.4 functionality. The primary additions over the 3.2.x release are:
There will be 2-3 RC released before the final 4.0.0 J2EE 1.4 certified release due out in September.
- EJB 2.1
In previous versions of JMS, client programming for the Point-to-Point and Pub/Sub domains was done using similar but separate class hierarchies. In JMS 1.1, there is now a domain-independent approach to programming the client application. This provides several benefits:
To take advantage of these features, the developer of JMS clients needs to use the domain-independent or “common” APIs. In the future, some of the domain-specific APIs may be deprecated.
- For the client programmer, a simpler programming model
- The ability to engage queues and topics in the same transaction, now that they can be created in the same session
- For the JMS provider, increased opportunity to optimize implementations by pooling thread management
JCA 1.5 extends the capabilities of the JCA 1.0 implementation from JBoss 3.2.x in the following ways:
- Lifecycle management: The lifecycle management contract provides such a mechanism for an application server to manage the lifecycle of a resource adapter instance. This allows an application server to bootstrap a resource adapter instance during resource adapter deployment or application server startup and also to expose some of its useful facilities to the resource adapter instance. It also provides a mechanism to notify the resource adapter instance while it is undeployed or during an orderly shutdown of the application server.
- Work management: The work management contract between an application server and a resource adapter that allows a resource adapter to do work, such as monitor network endpoints and call application components, by submitting Work instances to an application server for execution. The application server dispatches threads to execute submitted Work instances. This allows a resource adapter to avoid creating or managing threads directly, provides a mechanism for a resource adapter to perform work, allows an application server to efficiently pool threads, and have more control over its runtime environment. The resource adapter can control the security context and transaction context with which Work instances are executed.
- Transaction inflow: The transaction inflow contract between an application server and a resource adapter that allows a resource adapter to propagate an imported transaction to an application server, so that the application server and subsequent participants can do work as part of the imported transaction. This contract also allows a resource adapter to flow-in transaction completion and crash recovery calls initiated by an EIS, and ensures that the atomicity, consistency, isolation and durability (ACID) properties of the imported transaction are preserved.
- Message inflow: The message inflow contract between an application server and a resource adapter allows a resource adapter to synchronously deliver messages to message endpoints residing in the application server independent of the specific messaging style, messaging semantics and messaging infrastructure used to deliver messages. This contract also serves as the standard message provider pluggability contract that allows a wide range of message providers to be plugged into any J2EE compatible application server via a resource adapter.
The Java Authorization Contract for Containers is a new security spec that defines a Java2 permission based mechanism for externalizing the authorization decision for accessing ejb methods and web resources. A security provider can specify a java.security.Policy implementation that will be consulted to validate the permissions corresponding to ejb and web content access.
The current default JBoss provider implementation is based on the 3.2.x semantic of associating the J2EE declarative roles with the authenticated Subject as a by product of the JAAS authentication phase. This maintains compatibility with current security configuration.
In the future a seperate Policy implementation will be provided that seperates the authorization decision from the JAAS login modules for more flexibility in when/what is available to the code making the authorization decision. Since its pluggable, alternate authorization security decision logic can be introduced by providing an alternate Policy implementation.
There are a number of interesting new features:
- The EJB 2.0 specification supported only JMS message-driven beans. The EJB 2.1 specification extends the message-driven bean contracts to support other messaging types in addition to JMS. A message-driven bean is defined for a single messaging type, in accordance with the message listener interface it employs. A message driven bean can also be registered with the EJB timer service for time-based event notifications if it implements the javax.ejb.TimedObject interface in addition to the message listener interface.
- Support for web services has been added to allow a stateless session bean to implement a web service endpoint. In addition, any j2ee component can obtain a Java interface representation of a webservice for client invocations against the webservice.
- A new EJB Timer Service is a container-managed service that provides methods to allow callbacks to be scheduled for time-based events. The container provides a reliable and transactional notification service for timed events. Timer notifications may be scheduled to occur at a specific time, after a specific elapsed duration, or at specific recurring intervals. The Timer Service is implemented by the EJB container. An enterprise bean accesses this service through the EJBContext interface.The EJB Timer Service is a coarse-grained timer notification service that is designed for use in the modeling of application-level processes. It is not intended for the modeling of real-time events.
[break]Het pakket kan in de volgende smaken binnen worden gehaald:
- Support for JAXRPC, an XML based RPC, a remote procedure call mechanism that uses the SOAP 1.1 XML based protocol. This allows J2EE clients to access webservices using a simple RPC via Java interfaces API.
- Support for Web Services for J2EE architecture. This is a service architecture that leverages the J2EE component architecture to provide a client and server programming model which is portable and interoperable across application servers, provides a scalable secure environment, and yet is familiar to J2EE developers.