JBoss 4.0.3RC1 Readme
Author: JBoss Inc.

# JBoss 4.0.3RC1

The jboss-4.0.3RC1 release for the J2EE™ 1.4 codebase. For information on the APIs that make up J2EE 1.4, see J2EE v1.4 Documentation. For a comprehensive tutorial on J2EE 1.4, see The J2EE™ 1.4 Tutorial. A jboss-4.0.x getting started guide that is based on contents from the tutorial can be found on the JBoss web site documentation section, 4.0 Getting Started Guide.

# Release Notes

## Highlights

- A new installer that allows for better control of configuration profile has been created. Use of the installer is demonstrated in the EJB3 Trailblazer.
- A preview of the latest ejb3 spec is included in the installer. For a comprehensive tutorial of what ejb3 offers, see the EJB3 Trailblazer.
- Bug fixes and feature enhancements as listed below

## Feature Request

- [JBAS-1710] - twiddle: return non-zero code on error
- [JBAS-1836] - Support multithreaded use of the transaction
- [JBAS-1844] - ServiceMBeanSupport and duplicate logging
- [JBAS-1903] - Show Thread CPU utilization in ServerInfo
- [JBAS-1906] - Allow property references in the login-config.xml application-policy name attribute
- [JBAS-1944] - Add configuration name panel to installer

## Bug

- [JBAS-1262] - MBean for ear not deregistered when deploy fails
- [JBAS-1319] - redeploy causes OutOfMemoryError
- [JBAS-1787] - Twiddle gives StreamCorruptionException when invoking custom MBeans
- [JBAS-1825] - Twiddle script fails with JAVA_HOME that contains a space
- [JBAS-1880] - Memory leak in ServiceController/ServiceMBeanSupport
- [JBAS-1892] - hajndi-jms-ds.xml uses the wrong connection factory binding
- [JBAS-1902] - Appclient teardown in the wrong place
- [JBAS-1910] - MessageReference leak in PersistentQueue if PersistenceManager throws an exception during add()
- [JBAS-1911] - MarshalledInvocation should not eat errors deserializing arguments
- [JBAS-1912] - Twiddle launch IOException when info command is used in Log4j service
- [JBAS-1913] - Selection of install group modifies other install groups
- [JBAS-1914] - Incomplete dependency list: uuid-key-generator
- [JBAS-1916] - TxUtils.isActive() does not perform the expected check.
- [JBAS-1918] - Incomplete dependency list: mail-service
- [JBAS-1919] - Incomplete dependency list: jms-socket-invoker
- [JBAS-1920] - Incomplete dependency list: jdbc-metadata-service
- [JBAS-1921] - jmx-invoker-service dependency list incomplete
- [JBAS-1927] - MySQLValidConnectionChecker broken -> NullPointerException
- [JBAS-1931] - installer minimal pack: no deploy directory created
- [JBAS-1947] - EJB3 profile needs Default Datasource
- [JBAS-1952] - Array Index Error in ObjectName pattern
- [JBAS-1954] - Installer EJB3 profile requires cglib

## Task

- [JBAS-1899] - Farm deployment shouldn't read entire archive file into memory

## Patch

- [JBAS-1464] - MBean for ear not deregistered when deploy fails
- [JBAS-1895] - [PATH] make JBoss JSR-88 consult by ModuleType and return parent and children TargetModuleID

## Configuration Issues

##

Note that as of the 4.0.1 release, the distributed configurations have switched back to the 3.2.x types of distribution configurations:

- minimal: a minimal microkernel with logging, JNDI and hot deployment support
- default: a base level J2EE 1.4 application server configuration
- all: a full J2EE 1.4 server configuration with clustering and all optional services

The standard configuration from the 4.0.0-4.0.1RC1 releases has been dropped and the default flat class loading model from 3.0.x-3.2.x has been restored for the default configuration. This change in behavior was done to restore consistency with the 3.2.x class loading model. The 4.0.0 scoped class loading behavior and call by value JNDI lookup behavior can be restored by:

1. Editing conf/jboss-service.xml and setting the NamingService CallByValue to true:

          <mbean code="org.jboss.naming.NamingService"
             name="jboss:service=Naming">
             <!-- The call by value mode. true if all lookups are unmarshalled using
             the caller's TCL, false if in VM lookups return the value by reference.
             -->
             <attribute name="CallByValue">true</attribute>
             <!-- The listening port for the bootstrap JNP service. Set this to -1
               to run the NamingService without the JNP invoker listening port.
             -->
             ...
          </mbean>

2. Editing the deploy/ear-deployer.xml and setting the Isolated and CallByValue attribute to true:

       <server>
          <!-- EAR deployer, remove if you are not using ear deployments -->
          <mbean code="org.jboss.deployment.EARDeployer"
             name="jboss.j2ee:service=EARDeployer">
             <!-- A flag indicating if ear deployments should have their own scoped
             class loader to isolate their classes from other deployments.
             -->
             <attribute name="Isolated">true</attribute>
             <!-- A flag indicating if the ear components should have in VM call
             optimization disabled.
             -->
             <attribute name="CallByValue">true</attribute>
          </mbean>
       </server>

# Documentation and Help

Documentation and help may be obtained from the JBoss site.

- 4.0 Getting Started Guide
- JBoss Wikis
- JBoss Forums

# Licenses

JBoss is licensed under the LGPL. The licence texts for JBoss and the thirdparty components it uses may be found in the docs/licenses directory of the distribution. Browse Licences

# About JBoss Inc.

JBoss Inc. 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.