JOnAS header


JOnAS 5.0: New and Noteworthy


What was New and Noteworthy in our previous releases/milestones ?



A JDK 1.5 is required for building and running JOnAS 5.



5.0.2 Release Notes

This release is available on the download page or with a JNLP installer.
JOnAS 5.0.2 is the first release of JOnAS 5.0 that is only delivered with a set of OSGiTM bundles that are deployed on the Apache Felix gateway.

Some information can be found on the New and noteworthy and the Getting Started.

Release notes:

Services

  • Versioning service: this service allows to run different versions of a web module. This allows to migrate web components smoothly.
  • Work Cleaner service: this service cleans up some unused temporary folders that have been used when deploying components.
  • 'ejb' service has been renamed to 'ejb2' service.
  • Deprecated jms service has been removed

OSGi deployer:
This deployer allows to deploy any bundles that are located in JONAS_BASE/deploy directory. It's very easy to add bundles on the gateway !


Upgrade of components
Clustering part has been enhanced with the upgrade of the CMI component.
Pool of EJB3 can be managed with META-INF/easybeans.xml specific deployment descriptor or with @Pool annotation


Bug fixes
A lot of bugs have been fixed.

New features highlights



ArchitectureJava EE 5ClusteringManagementDevelopment
OSGi's based servicesSupport for annotations in servletCMI v2 : dynamic clusterDiscovery service on top of JGroupsExamples refactoring
OSGi/java EE gatewayJSF supportEJB3 load-balancingMonitoring with graphsEclipse launcher
New componentsJSTL support Cluster daemon discovery 
Misc.New JPA implementations support Cluster daemon monitoring 
   Cluster daemon user command 
   Deployment Refactoring 
   JOnAS life cycle management 
   OSGi console 
   Ant tasks 
   new look for jonasAdmin console 

Architecture


OSGi's based services

JOnAS 5.0 is designed with an OSGi based services architecture to provide a dynamically adaptable application server. JOnAS is a set of OSGi bundles, technical services are OSGi services:


The Felix R4 OSGi gateway is supported and iPOJO, the service component runtime, is used for handling the service dependencies.

JOnAS 5.0 is launched with the usual jonas command that is launching an OSGi Gateway (Apache Felix) on which the JOnAS bundles are deployed. More detailed information can be found here.

Example:

*jonas bootstrap* : start only the felix OSGi gateway and a JMX remote connector enabling to administrate it. Services can be launched later.
*jonas start* : total start of the server.
*jonas halt* : total stop of the server.
*jonas stop* : stop of server, the OSGi gateway and the bootstrap services are still running
Bundles list

In JOnAS/OSGi, the services are packaged into bundles. Hereinafter a list of available bundles:

OSGi/java EE gateway

Easybeans provides an access from the EJBs to OSGi Services through the capability to inject the bundle context in the EJB3s.

A specific annotation @OSGiResource can be used for injecting the bundle context.
Example for getting the bundles list:

/**
  * Bundle context that will be injected by the container.
  */
@OSGiResource
private BundleContext bundleContextField = null;

/** * @return the list of all OSGi Bundles symbolic names found on the gateway. */ public List<String> listOSGiSymbolicNameBundles() { List<String> symbolicNames = new ArrayList<String>(); Bundle[] bundles = bundleContextField.getBundles(); if (bundles != null) { for (Bundle bundle : bundles) { symbolicNames.add(bundle.getSymbolicName()); } } return symbolicNames; }

JOnAS/OSGi bundles

Any OSGi bundles can be deployed in JOnAS like any other Java EE modules. The bundles that are located in JONAS_BASE/deploy directory will be started on the OSGi gateway.

New versions of embedded components

OW2 components

Others components

Misc.

Java EE 5


Support for annotations in servlet

The annotations @resource, @PersistenceContext, @PersistenceUnit can be used in the servlets classes. @ejb annotation is not supported yet.

JSF support

JavaServer Faces Technology is now supported with the Sun's JSF RI 1.1.2.

JSTL support

The Sun's JavaServer Pages Standard Tag Library (JSTL) 1.2 is delivered with JOnAS.

New JPA implementations support

Easybeans supports the following JPA implementations:

Clustering


CMI v2

JOnAS 5 makes clustering easy and dynamic with the new version of CMI:

The clustering configuration addresses the following points:

EJB2 load-balancing

The clustering policy file name for an EJB is specified in the JOnAS's specific deployment descriptor through the cluster-policy element. The clustering policy file describes the cluster logic classes implementations in an XML syntax. Example for a round robin algorithm whose the implementation class is delivered with JOnAS:

<cmi xmlns="http://org.ow2.carol.cmi.info.mapping">
  <clusteredObject>
    <clusterName>myCluster</clusterName>
    <policyType>org.ow2.carol.cmi.lb.policy.RoundRobinPolicy</policyType>
  </clusteredObject>
</cmi>

EJB3 load-balancing

EJB3 load-balancing is available for the stateless session bean. JOnAS's specific annotations are defined for specifying the clustering parameters:

Example for a round robin algorithm:
@Stateless
@Local(StatelessLocal.class)
@Remote(StatelessRemote.class)
@Cluster(name="myCluster")
@LBPolicy(RoundRobinPolicy.class)
public class StatelessBean implements StatelessRemote {
}

Management


Discovery/JGroups

A new implementation of the Discovery service on top of JGroups is added. You can move from the multicast implementation to the JGroups one (or inversely) by setting the correct class implementation in the $JONAS_BASE/conf/jonas.properties file

#  Set the name of the implementation class and initialization parameters
jonas.service.discovery.class=org.ow2.jonas.discovery.jgroups.JgroupsDiscoveryServiceImpl
#Uncomment this to set Multicast implementation
#jonas.service.discovery.class=org.ow2.jonas.discovery.internal.MulticastDiscoveryServiceImpl

The JGroups configuration for this service is given in the $JONAS_BASE/conf/jgroups-discovery.xml file

Monitoring with graphs

The monitoring pages of jonasAdmin console (master node in the domain management) are enhanced with graphs enabling to track numeric indicators over a period of time.

Cluster Daemon discovery

The discovery protocol of the domain management supports the cluster daemon in the JGroups implementation. It allows to maintain a monitoring view of the different cluster daemons in the master node. The configuration of the cluster daemon's discovery service is given in the clusterd.xml and the clusterd-jgroups-discovery files.

Cluster Daemon monitoring

The cluster daemon is now monitored in the domain management. The user can consult, from the master node, the current state and other information about the cluster daemon configuration and about the machine (OS, cpu load, memory usage...).

Cluster Daemon user command

The cluster daemon configuration supports the capability to define a user command for controlling JOnAS. By default the jonas command delivered with JOnAS is used. By specifying its own command, the user can set the environment and do pre and post processing.

In the clusterd.xml file, the user command must be defined in a new optional element for each JOnAS server.

Deployment refactoring

A new deployment framework is provided in JOnAS 5.0 RC1. For now, EJB3 and EAR may use this deployment.

This new framework is shared by EasyBeans and JOnAS.

By dropping files into JONAS_ROOT/deploy directory, they are automatically loaded and monitored. If a change occurs on a file, it is reloaded.

Removing a file undeploys the associated module.

Example:

2007-07-11 15:52:47,685 : DeployableMonitorService.doInit : Use the deploy directories '[/home/sauthieg/jonasbases/jb.50/deploy]',
        development mode is 'true'
2007-07-11 15:52:47,686 : ServiceManager.startServices : depmonitor service started

An ear placed in the JONAS_BASE/deploy directory will be automatically deployed:

mv /home/sauthieg/jonasbases/jb.50/apps/j2ee-1.4.ear /home/sauthieg/jonasbases/jb.50/deploy/

… 2007-07-11 15:57:28,152 : Rar.processRar : Starting deployment of /tmp/JOnAS-Deployer-sauthieg/EAR/j2ee-1.4.ear/ra-sample.rar 2007-07-11 15:57:28,245 : Rar.processRar : /tmp/JOnAS-Deployer-sauthieg/EAR/j2ee-1.4.ear/ra-sample.rar available 2007-07-11 15:57:28,614 : JContainer.addBean : EarOp available 2007-07-11 15:57:29,137 : AbsJWebContainerServiceImpl.registerWar : War /tmp/JOnAS-Deployer-sauthieg/EAR/j2ee-1.4.ear/earsample.war available at the context /j2ee-1.4. 2007-07-11 15:57:29,141 : EarDeployer.deployEAR : 'EARDeployableImpl[archive=/tmp/JOnAS-Deployer-sauthieg/EAR/j2ee-1.4.ear]' EAR Deployable is now deployed

It is configurable in the jonas.properties:

#
####### JOnAS Deployment Monitor
#
# Set the name of the implementation class of the deployment monitor service
#
jonas.service.depmonitor.class          org.ow2.jonas.deployablemonitor.DeployableMonitorService
jonas.service.depmonitor.development    true
jonas.service.depmonitor.directories

JOnAS life cycle management

The life cycle management has been enhanced within JOnAS 5 for having a better global state control and for providing more flexibility and dynamicity in services control.

A comprehensive description is available here. In the RC1, only a subset of the life cycle management is implemented (global state).

OSGi console

The JASMINe project provides an OSGi console that can be used for controlling the JOnAS OSGi. See here? for more information.

Ant tasks

new look for jonasAdmin

The style of the administration console has been revisited.

Add a snapshot

Development


Examples refactoring

Eclipse launcher

Very useful for the JOnAS developers, a JOnAS eclipse launcher is now available and enables to test the changes in the middleware quickly after the coding.

Log-in Register
Copyright © ObjectWeb 2006
Creator: benoitf  Date: 2007/12/07 08:11 Last Author: benoitf  Date: 2008/04/04 15:33
Java, and all Java-based trademarks, JMX and all JMX based trademarks, are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. OSGi is a trademark, registered trademark, or service mark of The OSGi Alliance in the US and other countries. Bull is independent of Sun Microsystems, Inc.