# JBoss 5.1.0.GA Release Notes

Along with many bug fixes and enhancements, this is the first general release to include our new, significantly improved open-source console.

## Overview

- Highlights
- Compatibility Issues
- Configuration Issues
- Other Issues
- JBoss/Thirdparty Library Updates
- Detailed Release Notes
- Additional Docs and Help
- Licenses
- About JBoss

## Highlights

- New Web Console - This release includes our new administration console. Several updates have been made since the CR1 release, including the introduction of WAR metrics. See the full release notes for the console here.
- Web Beans Update - In addition, this release includes an updated tech preview of the new JSR-299 Web Beans RI. For more information about Web Beans see the documentation here.
- Farming Returns - Due to popular demand, the farming service is back! See the following wiki page here.

## Compatibility Issues

There are no known compatibility issues in 5.1.0.GA.

#### from 5.0.1.GA

- This release resolves issues related to running JBossAS 5 under AIX with an IBM jdk. See JBAS-6506, JBAS-6428.
- A NamingContext issue was identified when using IPv6, take a look at JBAS-6390.
- If you are using HASingletons and/or depending on the BarrierController you'll find interesting the fixes in JBAS-6440, JBAS-6441, JBAS-6363.
- The filtering of classes/packages of jars bundled with .wars has improved, see JBAS-6478 and the associated forum thread.

#### from 5.0.0.GA

JBossAS 5.0.0.GA can be compiled with both Java5 & Java6. The Java5 compiled binary is our primary/recommended binary distribution. It has undergone rigorous testing and can run under both a Java 5 and a Java 6 runtime. When running under Java 6 you need to manually copy the following libraries from the JBOSS_HOME/client directory to the JBOSS_HOME/lib/endorsed directory, so that the JAX-WS 2.0 apis supported by JBossWS are used:

- jbossws-native-saaj.jar
- jbossws-native-jaxrpc.jar
- jbossws-native-jaxws.jar
- jbossws-native-jaxws-ext.jar

The other option is to download the jdk6 distribution (jboss-5.0.0.GA-jdk6.zip) in which case no configuration changes are required. If you still have problems using JBoss with a Sun Java 6 runtime, you may want to set -Dsun.lang.ClassLoader.allowArraySyntax=true, as described in JBAS-4491. Other potential problems under a Java 6 runtime include:

- ORB getting prematurely destroyed when using Sun JDK 6 (see Sun Bug ID: 6520484)
- Unimplemented methods in Hibernate for JDK6 interfaces.
- When JBossAS 5 is compiled with Java 6, support for the extended JDBC 4 API is included in the binary, however this can only be used under a Java 6 runtime. In this case no manual configuration steps are necessary. It should be noted however that the Java 6 compiled distribution of JBoss AS 5 is still in experimental stage.

Other compatibility issues:

- JBossMQ has been removed from the distribution and is no longer supported in AS5. JBoss Messaging Service is now the default JMS provider.
- All the *-beans.xml configuration files have been renamed to *-jboss-beans.xml to avoid conflicts with spring configuration files.
- For mod_cluster integration you will have to use the workaround described in JBAS-5966 until the tomcat service mbean descriptor is converted to an MC bean descriptor.
- JBoss VFS provides a set of different switches to control it's internal behavior. JBoss AS sets jboss.vfs.forceCopy=true by default. To see all the provided VFS flags check out the code of the VFSUtils.java class.
- VFS uses an internal caching mechanism to speed up access to deployment artifacts. This means that files in deploy/ remain open as long as they are accessed and then closed by a reaper thread after a 5 seconds inactivity. On window platforms this may cause locking issues if files are re-deployed too quickly. In this case you may want to turn-off the reaper by specifying the -Djboss.vfs.forceNoReaper=true property in the command line.
- Hibernate-core is now using slf4j-api as a logging facade. To properly integrate that in JBossAS we have created an slf4j-to-jboss-logging adapter (slf4j-jboss-logging.jar) that creates a static binding between sl4j and jboss-logging-spi . The jboss-logging default implementation is configured to use log4j. See JBAS-5519.
- The client/jbossall-client.jar library that used to bundle the majority of jboss client libraries, is now referencing them instead through the Class-Path manifest entry. This allows swapping included libraries (e.g. jboss-javaee.jar) without having to re-package jbossall-client.jar. On the other hand, it requires that you have jbossall-client.jar together with the other client/*.jar libraries, so they can be found. See JBAS-4355.
- If using proprietary JBoss/EJB3 annotations, those have moved (since Beta4) into the org.jboss.ejb3.annotation package, EJBTHREE-1099. Those are now included in a new artifact, jboss-ejb3-ext-api.jar
- Interoperating with previous JBoss EJB3 implementations may present problems due to serialVersionUIDs issues, EJBTHREE-1118.
- Use of JBoss Cache 3.x. has a significantly different API from the 1.x releases used in JBoss AS 4.x and 3.2.x.
- @EJB injections should now work from servlets, JBAS-5646.
- The ClassPathExtension MBean has been replaced with a VFS classloader definition, see JBAS-5446.
- The old JMX-based ServiceBindingManager has been replaced by a POJO-based ServiceBindingManager, see JBAS-5192.
- The Farm service from 4.x has been removed.
- JBoss 5 is stricter when it comes to verifying/deploying JavaEE artifacts. EJB3 deployments that run in AS 4.2 may fail in AS5. We have tried to keep the validation messages as accurate as possible in order to help you modify your deployment descriptors/annotations to be in-line with the JavaEE 5 requirements.

## Configuration Issues

#### From 5.0.0.GA

JBossAS 5.0.0.GA introduces two new configuration, the standard and the web config.

- The standard config is the configuration that has been tested for JavaEE compliance. The major differences with the existing configurations is that call-by-value and deployment isolation are enabled by default, along with support for rmiiiop and juddi (taken from the all config), as shown below:

- deployers/ear-deployer-jboss-beans.xml
  <property name="callByValue">true</property>
  <property name="isolated">true</property>
- conf/jboss-service.xml call-by-value for "jboss:service=Naming"
  <attribute name="CallByValue">true</attribute>
- conf/jndi.properties
  java.naming.factory.initial=org.jboss.iiop.naming.ORBInitialContextFactory
- conf/jacorb.properties
  deploy/iiop-service.xml
  lib/avalon-framework.jar
  lib/jacorb.jar
- deploy/juddi-service.sar

- The web config is a new experimental lightweight configuration created around JBoss Web that will follow the developments of the JavaEE 6 web profile. Except for the servlet/jsp container it provides support for JTA/JCA and JPA. It also limits itself to allowing access to the server only through the http port. Please note that this configuration is not JavaEE certified and will most likely change in the following releases.

Another notable change is that the majority of the libraries common to the different configurations have moved to a new shared location, JBOSS_HOME/common/lib/. This is so we avoid having multiple copies of the same libraries in the distribution. The location of the common library directory can be controlled by the following properties:

- jboss.common.base.url defaulting to ${jboss.home.url}/common
- jboss.common.lib.url defaulting to ${jboss.common.base.url}/lib

The common library directory is shared by all the configurations except for the minimal config. It is referenced in the very beginning of every configuration's conf/jboss-service.xml.
<classpath codebase="${jboss.server.lib.url}" archives="*"/>
<classpath codebase="${jboss.common.lib.url}" archives="*"/>
You can see that the library directory of the individual configurations is still in place, although in some cases it's empty (e.g. JBOSS_HOME/server/default/lib/)

The directory structure of JBoss 5 resembles that of the 4.x series with some notable differences:

- bin - start scripts and run.jar
- client - client jars - note how jbossall-client.jar is now referencing the other client jars.
- common

- lib

- docs - docs, schemas/dtds, examples
- lib - core bootstrap jars, somewhat different with the introduction of the microcontainer and breakup of jboss-common.
- server - the same server configuration dirs.
  - xyz configuration
    - conf
    - bootstrap.xml - new mc kernel bootstrap configuration referencing other
    - configuration files that contain the beans that setup each individual subsystem.
    - bootstrap
    - vfs.xml - vfs initialization
    - classloader.xml
    - aop.xml
    - jmx.xml - legacy JMX support
    - deployers.xml
    - bindings.xml (POJO-based ServiceBindingManager & port bindings)
    - profile-repository.xml (profile service enabled deployment repository)
    - jax-ws-catalog.xml - oasis catalog driven schema/dtd namespace configuration
    - jbossjta-properties.xml - new JBossTS properties
    - jboss-service.xml - legacy static mbeans for compatibility, somewhat reduced
    - jndi.properties - the same jndi props
    - log4j.xml - the same log4j config
    - login-config.xml - the same jaas login config
    - props/ - the same default jaas login properties files
    - standardjaws.xml - obsolete cmp config
    - standardjbosscmp-jdbc.xml - the same cmp2 config
    - standardjboss.xml - the same ejb2 config
    - xmdesc/ - legacy xmbean descriptors
    - deploy/ - the same deploy directory.
    - ...
    - jca-jboss-beans.xml
    - hdscanner-jboss-beans.xml - the hot deployment scanner
    - legacy-invokers-service.xml
    - profileservice-jboss-beans.xml
    - remoting-jboss-beans.xml
    - transaction-jboss-beans.xml
    - vfs-jboss-beans.xml
    - deployers/ - new vdf deployers
      - bsh-deployer - beanshell deployer
      - ejb3.deployer - ejb3 deployers
      - jboss-aop-jboss5.deployer - aspect deployer
      - jboss-jca.deployer - JCA deployers
      - jbossweb.deployer - war deployers
      - jbossws.deployer - web services deployers
      - seam.deployer - SEAM deployer
      - alias-deployers-jboss-beans.xml
      - clustering-deployers-jboss-beans.xml
      - dependency-deployers-jboss-beans.xml
      - directory-deployer-jboss-beans.xml
      - ear-deployer-jboss-beans.xml - ear deployers
      - ejb-deployer-jboss-beans.xml - ejb2.x deployers
      - hibernate-deployer-jboss-beans.xml
      - jsr77-deployers-jboss-beans.xml
      - metadata-deployer-jboss-beans.xml - metadata handlers
      - security-deployer-jboss-beans.xml - security deployers
    - lib/ - the same static library jars with a few jars, as most have moved to top level common/lib

Various configuration issues:

- A new jboss.server.log.threshold system property can be used to control the log/server.log threshold. It defaults to DEBUG.
- Use of the jboss.jgroups.udp.mcast_port property to control easy configuration of multicast port, JBAS-2395
- Overriding of ra.xml properties in jboss-ra.xml, JBAS-3343
- Support for defining dependencies in JCA adapters, JBAS-4508
- Controlling command line arguments for the appClientLauncher, JBAS-5888.
- Shutdown.sh now accepts a JNDI url, JBAS-5922.
- DeleteWorkDirOnContextDestroy property for JSP pages, JBAS-5453.
- The clustering configurations have been organized in the deploy dir in a new cluster subfolder (JBAS-4709).
- A separate cache is now used for Clustered SSO (JBAS-4676).
- Per webapp configuration of useJK, snapshot mode and snapshot interval (JBAS-3460). Default for useJK is whether jvmRoute is set (JBAS-4961).
- Total replication (rather than buddy replication) is the default setting for session replication (JBAS-5085).
- The transaction manager configuration has moved from conf/jboss-service.xml to deploy/transaction-service.xml (JBAS-5103).
- The default conf/jboss-log4j.xml configuration now includes the thread name for entries in log/server.log (JBAS-5274).
- All the security related configuration files are now grouped under the deploy/security directory (JBAS-5318).
- Loopback is now set to true for all JGroups UDP stacks (JBAS-5323).

EJB3 configuration is now controlled by deployers/ejb3.deployer/META-INF/ejb3-deployers-jboss-beans.xml. For more details check out this wiki page.
For security related configuration changes, please consult this wiki page.
For clustering related changes, check out the Wiki for more info.

## Other Issues

#### From 5.0.1.GA

- A major goal of the release is to address issues related to VFS handling of temporary files and re-deployments. See JBAS-6935, JBAS-6504, JBAS-6373.
- Navigation in the jmx/web consoles was broken. This is fixed in JBAS-6493, JBAS-6328
- The dtds/schemas on www.jboss.org have been updated with the latest ones, see JBAS-6114.

#### From 5.0.0.GA

- Bootstrap time has improved compared to AS5 CR1, but it still somewhat slower when compared to the 4.2.x series, due to the extensive annotation scanning that goes on behind the scenes. There are ways to optimize the annotation scanning, especially for large deployments. Check the JBoss Wiki for more information.

# Detailed Release Notes

Release Notes - JBoss Application Server - Version JBossAS-5.1.0.GA

## Bug

- [JBAS-5936] - Wrong logging information is shown for components using slf4j (e.g. Hibernate)
- [JBAS-6227] - Only way to remove a managedcomponent is to remove its deployment
- [JBAS-6310] - Failure in loading classes due to thread stack overflow should be logged as an error.
- [JBAS-6500] - JMX View and ManagementView do not consistently reflect J2EE application state after undeployment
- [JBAS-6512] - ServiceBindingManagedObjectsTestCase.testPortsDefault regression
- [JBAS-6579] - Resolve JBoss AS 5.1.0 Test Suite Issues
- [JBAS-6592] - Eliminate duplication of CORBA OTS classes in AS 5.1.0 distribution
- [JBAS-6673] - VFS cache should handle main context roots better still an issue in 5.0.1
- [JBAS-6677] - Cleanup inactive timer service instances for Entity Beans
- [JBAS-6745] - org.jboss.test.cmp2.audit.test.AuditUnitTestCase failing with MySQL - miliseconds not supported
- [JBAS-6747] - JaasSecurityManagerService::CallbackHandlerClassName is not being used anywhere
- [JBAS-6764] - Embedded Console issues with standard config
- [JBAS-6768] - SubjectFactory usage in JCA needs review for the Datasource Encryption usecase
- [JBAS-6825] - AS 5 Plugin: User-created Connection Factory status is DOWN after server restart
- [JBAS-6832] - JBoss AS JVM Metrics stay the same through the console
- [JBAS-6848] - DataSourceDeploymentMetaData doesnt create property "isSameRMOverrideValue"
- [JBAS-6858] - SVC* variables in bin\service.bat need to be updated from "5.0" to "5.1"
- [JBAS-6860] - ManagedConnectionFactoryDeployment should look for both primitive and wrapper type setters before giving up when setting attributes
- [JBAS-6862] - ManagedDeploymentImpl unitMOs does not use name from @ManagementObjectID
- [JBAS-6872] - -Djboss.bind.address definition in run.conf ignored
- [JBAS-6874] - TimerImpl should set ACTIVE state before scheduling to avoid race condition
- [JBAS-6880] - BeanMetaDataICF not finding MetaMapper
- [JBAS-6904] - Ban org.hibernate:hibernate in favor of org.hibernate:hibernate-core
- [JBAS-6914] - useJBossWebLoader not working when set to true
- [JBAS-6921] - cache-invalidation-service.xml includes invalid JMS topic config
- [JBAS-6945] - InvocationContext on the serverside needs to use privileged block for getting TCCL
- [JBAS-6964] - XSLTServiceBindingValueSourceImpl is missing privileged blocks

## Feature Request

- [JBAS-5992] - Add a ManagedDeployment/ManagedComponent status servlet
- [JBAS-6754] - add support for a run.conf equivalent file to run.bat, so environment variable settings can be externalized as they can be for run.sh
- [JBAS-6785] - add default value to the ManagedProperty interface
- [JBAS-6828] - Add a description property to ServiceBindingMetadata
- [JBAS-6839] - Update slf4j Version, make logger serializable
- [JBAS-6849] - extended twiddle functionality
- [JBAS-6861] - Allow PKCS11 keystores to be used in JaasSecurityDomain
- [JBAS-6873] - Explicitly configure JGroups diagnostics
- [JBAS-6876] - Configure binding interface via ServiceBindingManager
- [JBAS-6927] - Update RuntimeComponentDispatcher

## Task

- [JBAS-4154] - Get the server to run under a security manager
- [JBAS-6259] - Management interface for ServiceBindingManager
- [JBAS-6560] - Port crash recovery plugin in EAP4 to AS 5.1
- [JBAS-6642] - Make sure aop deployers work after they have been moved out of the as repo
- [JBAS-6772] - Track component updates - 5.1.0.GA
- [JBAS-6809] - Update to JBoss Naming 5.0.2.GA and add unit test for JBNAME-27
- [JBAS-6819] - The value of "Connections In Use Count" that gets displayed in the embedded console as the result of the "List Formatted Sub Pool Statistics" operation does not get updated after connections are closed
- [JBAS-6846] - Create testcase in AS testsuite for discovery disable option
- [JBAS-6853] - Pull the ServiceBindingManager out of the bootstrap
- [JBAS-6864] - Fix timeout issues in classloader leak test cases
- [JBAS-6875] - Have the naming service write its connection URL to a well defined place
- [JBAS-6887] - Bring in ejb3-endpoint-deployer into AS through component-matrix
- [JBAS-6905] - Test target tests-security-manager should use its own server configuration
- [JBAS-6908] - fix ordering of proxy-factory-config in standardjboss.xml
- [JBAS-6929] - Make HDScanner a Daemon Thread
- [JBAS-6931] - set property xb.builder.useUnorderedSequence in org.jboss.Main
- [JBAS-6940] - Reenable Tomcat SSL tests
- [JBAS-6946] - ReEnable JACC Security Manager Tests

## Component Upgrade

- [JBAS-6533] - Update JPA to 1.0.0.GA
- [JBAS-6564] - Include JBoss Negotiation 2.0.3.SP1
- [JBAS-6621] - Update jboss-managed to 2.1.0.SP1
- [JBAS-6652] - Upgrade AOP to 2.1.1.GA
- [JBAS-6790] - Update JBC to 3.1.0.GA
- [JBAS-6791] - Upgrade jboss-ha-server-cache-jbc to 2.0.0.GA
- [JBAS-6835] - Upgrade JBossWS Native to 3.1.2.GA
- [JBAS-6840] - Upgrade JGroups to 2.6.10
- [JBAS-6851] - Update to transactions 4.6.1.GA
- [JBAS-6863] - Upgrade to jboss-cl 2.0.6.GA
- [JBAS-6882] - Upgrade EJB3 to 1.1.5
- [JBAS-6890] - Update slf4j to 1.5.6
- [JBAS-6891] - Update slf4j-jboss-logging to 1.0.2
- [JBAS-6892] - Update common-core to 2.2.14.GA
- [JBAS-6893] - Update jboss-ejb3-endpoint-deployers to 0.1.3
- [JBAS-6898] - Update jboss-logging-spi, jboss-logging-log4j, jboss-logging-jdk to 2.1.0.GA
- [JBAS-6899] - Update JBoss LogManager to 1.0.0.GA
- [JBAS-6900] - Update JBoss LogBridge to 1.0.0.GA
- [JBAS-6901] - Update JBoss Threads and JBoss Threads Metadata to 1.0.0.GA
- [JBAS-6902] - Update XNIO Metadata to 1.0.0.GA
- [JBAS-6903] - Upgrade Naming to 5.0.3.GA
- [JBAS-6907] - Update Metadata to 1.0.1.GA

## Sub-task

- [JBAS-5552] - Synchronized deployment repositories across the cluster
- [JBAS-6066] - JSR-196 integration for web layer (Client-CERT)
- [JBAS-6330] - Hotdeployment management interface
- [JBAS-6594] - org.jboss.test.profileservice.test.ServiceBindingManagedObjectsTestCase
- [JBAS-6622] - Dynamic creation of vhost managed objects
- [JBAS-6623] - Web Application (WAR) additional metrics and operations
- [JBAS-6676] - Suport for exposing JMX bean as ManagedObject
- [JBAS-6773] - org.jboss.test.jmx.test.UndeployBrokenPackageUnitTestCase
- [JBAS-6812] - Handle Path, Privileged and other attributes from context.xml
- [JBAS-6823] - Stopping a JMS destination through the console does not change its availability
- [JBAS-6836] - org.jboss.test.xml.DynamicLoginConfigUnitTestCase.testJASPIConfig
- [JBAS-6850] - Override jms xmbean descriptors
- [JBAS-6857] - AS5.1: Password Masking for MC Beans
- [JBAS-6869] - types field is null in all RAR ManagedDeployments
- [JBAS-6885] - when connected to PS via remote client, calling getComponentsByType(), passing some type that actually is deployed, a "ClassNotFoundException: org.jboss.profileservice.management.ManagedOperationDelegate" is thrown
- [JBAS-6894] - PerTxEntityInstanceCache->removeTimerServiceIfAllCancelledOrExpired needs privileged blocks
- [JBAS-6895] - org.jboss.test.profileservice.test.ServerManagedObjectsTestCase
- [JBAS-6896] - org.jboss.test.tm.test.MTTransactionManagerUnitTestCase(jts)
- [JBAS-6897] - tests-security-manager regressions
- [JBAS-6906] - Tests containing persistence units fail to deploy due to NoClassDefFoundError
- [JBAS-6911] - ManagementView api extensions
- [JBAS-6922] - Regressions in compatibility-matrix tests

## Documentation and Help

The JBossAS community project is hosted on jboss.org . Documentation and help may be obtained from the following locations.

- JBoss AS Documentation
- JBoss Wiki
- JBoss JIRA
- JBoss Forums

## Licenses

JBoss Application Server is licensed under the LGPL, as explained in the JBoss End User License Agreement. The license texts for JBoss and the thirdparty components it uses may be found in the docs/licenses directory of the distribution. Browse Licenses

## About JBoss, a division of Red Hat

JBoss, a division of Red Hat, is in the business of providing superior technical support to our customers. Our goal is to make Professional Open Source™ the SAFE CHOICE for you. We accomplish this by backing up our open source Java products with technical support services that are delivered by the core developers themselves. We can help you to train your staff and provide you with support at every stage of the application lifecycle - from development and integration through deployment and maintenance. Visit the JBoss Services page for more information.