# JBoss AS 4.2.2.GA Release Notes

This is the second bug fixing release of the JBoss Application Server v4.2 series. The aim of this release is to provide fixes for important bugs reported by the community against JBossAS v4.2.1.GA or one of the jboss and thirdparty libraries included with the application server. There were quite a few backwards compatible component upgrades so switching to AS 4.2.2.GA from a previous 4.2.0/4.2.1 release should not present any problems. Please check out the Detailed Release Notes section for the full details.

JBoss AS 4.2 is a stepping stone from JBoss 4.0 to JBoss 5.0. It combines a lot (but not all) of the exciting new features of JBoss 5, but based on the stable 4.x MicroKernel architecture.

JBoss AS 4.2 is also used as the basis for the JBoss Enterprise Application Platform. The Application Platform bundles JBoss AS and JBoss Seam in a software package for which commercial support is offered by JBoss/Red Hat. Please read Sacha's blog if you are interested to learn more about the new development, distribution and support model for JBoss.

For information on the APIs that make up Java EE 1.4, see Java EE v1.4 Documentation. For a comprehensive tutorial on Java EE 1.4, see The Java EE™ 1.4 Tutorial. A jboss-4.2.x getting started guide that is based on contents from the tutorial can be found in JBoss Application Server Documentation Library

Note: The 4.2.x release of the JBoss Application Server provides support for certain JavaEE5 features, such as EJB3, but it is not Java EE5 certified.

## Overview

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

## Highlights of JBoss AS 4.2 series

- JDK5 is *required* to run JBossAS 4.2.x. The decision was based on the fact that JDK1.4 is phased out and the reality that a lot of people like Java Annotations support and want to combine EJB3 and JBoss Seam components with JBossAS. JDK6 is not formally supported yet, although you may be able to start the server with it. JDK6 support will come with JBossAS 5.x.
- JBoss EJB3 is now deployed *by default* in JBossAS 4.2.x The fact that we base on JDK5 makes our life easier in this regard, meaning we don't have to maintain jdk5 code retro-weaved for jdk1.4 runtimes, and we can include by default components that require jdk5 to run.
- JBoss Web v2.x is the web container in JBossAS 4.2, an implementation based on Apache Tomcat that includes the Apache Portable Runtime (APR) and Tomcat native technologies to achieve scalability and performance characteristics that match and exceed the Apache Http server. In the absence of the native libraries, JBoss Web falls back to the standard non-native connector mode. The native libraries need to be downloaded and installed separately in JBOSS_HOME/bin/native.
- JBoss Transactions v4.2 is the default transaction manager for JBossAS 4.2. JBoss Transactions is founded on industry proven technology and 18 year history as a leader in distributed transactions, and is one of the most interoperable implementations available. The JTA version of JBoss Transactions included with the server provides for fully recoverable transactions. For distributed transaction support the JTS version of JBoss Transactions will need to be used. Furthermore, it is always possible to fall back to the legacy JBossTM fast in-memory transaction manager implementation, although it should be noted that JBoss TM will not be supported in future JBossAS versions.
- JBoss WS is the web services stack for JBoss 4.2 providing Java EE compatible web services.
- JGroups/JBossCache is already configured to support channel multiplexing, when it becomes available.
- JBoss Remoting was upgraded to the latest stable 2.2.x version. This was done in order to align dependencies with the thirdparty libraries required by the new JBoss Messaging, which means that, if you want, you can replace the default JBossMQ messaging provider with JBoss Messaging, without having to revert to a scoped deployment.

### Minor feature additions in 4.2.2.GA

- The most promiment feature addition is full support for JAX-WS by upgrading to JBoss WS 2.x. See the release notes here. You may also find useful information in the Quick Start or the JAX-WS User Guide.
- A new tomcat filter for flushing the jboss authentication cache upon session expiration, JBAS-4752.

### Minor feature additions in 4.2.1.GA

- LIMIT/OFFSET support in StoreManager2 (CMP), JBAS-4408.
- detect collisions between JSF RI and JSF MyFaces, JBAS-3158.

## Compatibility Issues

This lists the changes that could affect compatibility.
According to our product versioning rules, JBossAS 4.2.2 should be fully compatible with previous JBossAS 4.2.x releases. However you may want to check the release notes of the individual JBoss and Thirdparty libraries updated with this release. Some related issues that you should be aware of are listed below:

### JBossAS 4.2.2.GA

- JBossWS 1.2.1 supported JAX-WS only as a technology preview while JBossWS 2.0.1 used in AS 4.2.2 provides full JAX-WS support. If you have used in your code the annotation org.jboss.ws.annotation.WebContext this must be replaced by org.jboss.wsf.spi.annotation.WebContext.
- JBoss WS 1.0.x due to a deployer limitation used a proprietary .jse extension for deploying WS endpoints nested in .sar files. This was deprecated with JBoss WS 1.2.x. and with JBoss WS 2.x this proprietary extension is not supported anymore as it is possible to use the standard .war extension for deploying nested WS endpoints. If you see: INIT_WAITING_DEPLOYER error messages for .jse files, re-package them using a .war extension, JBWS-1854.
- Another known limitation is that EJB3 web service endpoints can only be specified using annotations and not metadata in jboss.xml. This is something that will be addressed in a future release, JBAS-4852, JBWS-1813.
- Finding the default local business interface on a ejb3 bean may not work in certain inheritance scenarios. You may workaround this known problem by annotating the local business interface. Read more about this at EJBTHREE-1062.
- EJB Timer related fixes, JBAS-3379, JBAS-4053.
- JBossMQ related fixes, JBAS-4525, JBAS-4555, JBAS-4559, JBAS-4607, JBAS-4625, JBAS-4699
- JSP compiler now set to compile JDK 1.5 source code by default, JBAS-4605.
- The mail-ra.rar resource adapter was missing from the distro, JBAS-4659.
- HSQLDB (which shouldn't be used in production) v1.8.0.8 has a known bug when used in server mode, JBAS-4694. This doesn't affect the default jboss installation where HSQLDB is used in in-process mode.
- Serialization of HomeHandleImplIIOP has changed. In the unlikely case of a compatibility problem, define the system property -Dorg.jboss.proxy.ejb.old.homehandle.serialization=true to fall back to the legacy serialization mode, JBAS-4801.

### JBossAS 4.2.1.GA

- JBoss TS, the new default transaction manager will not let you enlist multiple 1-phase participants in the same transaction. This was *not* the default behavior with the legacy JBoss TM that would log a warning and continue. There are good reasons for this change, mainly to avoid heuristic outcomes in the case of system crashes, which is the primary reason of using a transaction manager anyway! If your come across this problem you should try to fix it by switching to XA resources or implementing some form of compensating transactions. However, if this is not option and you are fully aware of the consequences you can override this behavior by setting com.arjuna.ats.jta.allowMultipleLastResources to true in conf/jbossjta-properties.xml. For more details read the wiki on Multiple1PC, or consult the JBoss Transactions documentation.
- A major problem related to the cleaning up of threads after user transaction timeouts was corrected in JBAS-4481. If you happen to be using User Transactions make sure you follow the correct pattern for committing or rolling them back.
- Another serious classloading issue that could lead to a hanging JBoss with a 100% CPU utilization was fixed with JBAS-4441.

### JBossAS 4.2.0.GA

- A JavaSE 5 runtime is required to run JBossAS 4.2. A full JDK with tools.jar support is no longer needed by jboss, since JBoss Web packages the eclipse JDT compiler for compiling JSP pages and javassist has its own internal compiler. JAVA_HOME can point to a JRE, JBAS-4161.
- When compared to previous 4.0.x releases, the various JBoss APIs should be stable but backwards compatibility for individual component implementations may not be guaranteed, e.g. interoperating with another JBoss instance that uses an older version of JGroups.
- Tomcat 6 is now bundled as part of JBoss Web. deploy/jbossweb-tomcat55.sar has been replaced by deploy/jboss-web.deployer.
- conf/log4j.xml has been renamed to conf/jboss-log4j.xml, to allow log4j.properties override from scoped deployments, JBAS-1853.
- log4j and commons-logging have both been upgraded. commons-logging is patched in addition, JBAS-2823.
- Since the latest log4j includes a trace level, there is no need to reference the custom jboss TRACE level in conf/jboss-log4j.xml configs, JBAS-4163.
  Instead of: <category name="org.jboss.system"><priority value="TRACE" class="org.jboss.logging.XLevel"/></category>
  you can use: <category name="org.jboss.system"><priority value="TRACE"/></category>
- Better integration with WebSphere MQ 5.x, JBAS-3183.
- The MyFaces JSF implementation has been replaced by the Glassfish JSF 1.2 one, JBAS-3897.
- Hibernate, hibernate-annotations and hibernate-entity-manager have all been upgraded. to v3.2.1.
- The default invoker for EJBs has been changed from the rmi-invoker to the unified-invoker, provided by JBoss Remoting, JBAS-3950.
- Apache commons http-client and apache-codec were removed from jbossall-client.jar, JBAS-4365.
- The address that is stored in the host portion of the RMI codebase URL can now be set correctly, JBAS-3325.
- The java2ClassLoadingCompliance setting in jboss-web.xml was ignored; this has been fixed, JBAS-3047.
- In JBoss 4.2 the unified invokers based on JBoss Remoting are the default transport for accessing EJBs. Using the unified invokers JBoss 4.2 can interoperate safely with JBoss AS 4.0.4.GA/4.0.5.GA, using the flag -Djboss.remoting.pre_2_0_compatible=true on the JBoss 4.2.x side. For interoperating with older JBoss AS versions (3.2.8.SP1 to 4.0.3.SP1) the legacy rmi or pooled invokers need to be used. See JBAS-4407 and the wiki page on JBoss Version Compatibility.

## Configuration Issues

This lists the changes that could affect configuration.

### JBossAS 4.2.2.GA

- Extensions to LdapExtLoginModule, JBAS-4619.
- Escape syntax for mysql and postgresql in jboss CMP, JBAS-4463.
- Introduced a new system property org.jboss.mx.loading.UnifiedLoaderRepository.notifyMode to provide fine-grained control over the emission of notifications whenever Unified Classloaders are created. Classloader leaks can appear if those notifications are send to remote jmx agents, so the usage of the flag can avoid this problem, JBAS-4953.

### JBossAS 4.2.1.GA

- %PATH% is not removed from java.library.path in the presence of JAVA_HOME/bin/native, so e.g. native jdbc drivers can be loaded, JBAS-4418.

### JBossAS 4.2.0.GA

- JBossAS now binds its services to localhost (127.0.0.1) *by default*, instead of binding to all available interfaces (0.0.0.0). This was primarily done for security reasons because of concerns of users going to production without having secured their servers properly. To enable remote access by binding JBoss services to a particular interface, simply run jboss with the -b option. To bind to all available interfaces and re-enable the legacy behaviour use -b 0.0.0.0. In any case, be aware you still need to secure you server properly.
- There now distinct properties to configure the various mcast ports, JBAS-4021.
- When running under Linux, run.sh forces the use of IPv4, due to a jdk bug, JBAS-4332.
- JBoss EJB3 is now included by default. If you don't need/want EJB3 support, simply remove deploy/ejb3.deployer.
- When using native libraries for JBoss Web store them in JBOSS_HOME/bin/native, which is automatically included in the classpath, JBAS-4162.
- JBoss Transactions is the new default transaction manager in JBoss. It is configured in conf/jboss-service.xml and has additional properties defined in conf/jbossjta-properties.xml. The transaction log is stored by default at server/default/data/tx-object-store.
- If you are on Red Hat Linux, check out the changes in bin/jboss_init_redhat.sh, JBAS-4041.
- The JBossAS distributions usually include the installer (.jar), the sources (.tar.gz) and the canonical binary release (.zip). Unzipping the binary distribution (.zip) with a native unzip utility will restore correctly the executable permission in the /bin/*.sh files. However, unzipping using the JDK jar utility ignores the executable bit, so this need to be set manually.
- bin/shutdown.sh no longer sources run.conf, JBAS-4155.

## Library Updates

For a full list of the JBoss and thirdparty libraries used with JBoss AS 4.2.2 see build-thirdparty.xml.

### JBossAS 4.2.2.GA

JBoss Library Updates

- javassist upgraded to v3.6.0.GA (from v3.5.0.GA)
- jboss aop upgraded to v1.5.6.GA (from 1.5.5.GA)
- jboss cache upgraded to v1.4.1.SP5 (from 1.4.1.SP3)
- jboss common upgraded to v1.2.1.GA (from v1.2.0.GA)
- jboss remoting upgraded to v2.2.2.SP1 (from v2.2.1.GA)
- jboss ts upgraded to v4.2.3.SP6 (from v4.2.3.SP5)
- jboss web upgraded to v2.0.1.GA (from v2.0.0.GA)
- jboss ws upgraded to v2.0.1.SP2 (from v1.2.1.GA)
- jboss xb upgraded to v1.0.0.SP1 (from v1.0.0.GA)
- jgroups upgraded to v2.4.1.SP4 (from v2.4.1.SP3)

Thirdparty Library Updates

- hsqldb upgraded to v1.8.0.8 (from v1.8.0.2)
- jacorb upgraded to v2.3.0jboss.patch5 (from v2.3.0jboss.patch4)
- oswego-concurrent upgraded to v1.3.4-jboss (from v1.3.4)

### JBossAS 4.2.1.GA

JBoss Library Updates

- hibernate, upgraded to v3.2.4.SP1_CP01 (from v3.2.3.GA)
- jboss-ts14, upgraded to v4.2.3.SP5 (from v4.2.3.SP3)
- jboss-remoting, upgraded to v2.2.1.GA (from v2.2.0.SP4)

Thirdparty Library Updates

- jacorb, upgraded to v2.3.0jboss.patch4 (from v2.2.4jboss.patch1)
- sun-jsf, upgraded to v1.2_04_P02 (from v1.2_04_P01)

# Detailed Release Notes

### JBossAS-4.2.2.GA

## Feature Request

- [ JBAS-4093 ] Example XA datasource configuration for Sybase
- [ JBAS-4465 ] Rename hsqldb-jdbc-state-service.xml to jdbc-state-service.xml
- [ JBAS-4479 ] It'd be nice for listThreadDump() to return a timestamp as well
- [ JBAS-4490 ] Update and document all HA Failover features for the jca datasources
- [ JBAS-4595 ] Inconclusive exception thrown by HttpNamingContextFactory
- [ JBAS-4619 ] Add parseRoleNameFromDN option to LdapExtLoginModule
- [ JBAS-4752 ] Session Expiration should also flush the JBoss Authentication Cache

## Bug

- [ JBAS-3379 ] BigIntegerTimerIdGenerator may create dupplicate timer IDs after server crash
- [ JBAS-4000 ] should come before in standardjboss.xml
- [ JBAS-4053 ] EJB TimerService createTimer swallows underlying exception
- [ JBAS-4404 ] Tests testJdbc and testControlFlags in org.jboss.test.security.test.LoginModulesUnitTestCase may fail incorrectly
- [ JBAS-4422 ] org.jboss.test.util.test.TwiddleUnitTestCase can't connect to host
- [ JBAS-4463 ] escape syntax
- [ JBAS-4464 ] NPE on shutdown in jacorb connection layer
- [ JBAS-4492 ] NullPointerException in org.jboss.util.propertyeditor.DateEditor setValue(...)
- [ JBAS-4525 ] JBossMQ WriteTask in UIL2 could block forever
- [ JBAS-4528 ] jboss-ds-1.5.dtd is not up-to-date
- [ JBAS-4536 ] Isolated classloading is incorrectly isolating java.* classes
- [ JBAS-4540 ] Port 8083, HTTP request revealing installation directory
- [ JBAS-4541 ] Authentication Service (AS) Context stored in CSIv2 encoded IORs shouldn't indicate EstablishTrustInClient supported when AUTH_METHOD_NONE
- [ JBAS-4546 ] Fix RunAsSecurityInterceptor
- [ JBAS-4555 ] Connection.close() taking 2 minutes in JBossMQ
- [ JBAS-4559 ] JBossMQ security manager should have a dependency on the Jaas service
- [ JBAS-4575 ] resourceadapter-class should be optional
- [ JBAS-4593 ] Leak in org/jboss/mx/loading/UnifiedClassLoader3
- [ JBAS-4597 ] CacheInvalidator.areInvalid doesn't lock partitions
- [ JBAS-4605 ] JSP compiler won't compile JDK 1.5 source
- [ JBAS-4607 ] Transaction timeout is not raising a JMSException in the JBossMQ Persistence manager or StateManager
- [ JBAS-4611 ] HTTP Session Repl Cache configured with CacheLoader can cause slow AS shutdowns
- [ JBAS-4614 ] UnifiedInvokerHAProxy does not implement InvokerProxyHA
- [ JBAS-4615 ] NamingContext caches stale Naming stub
- [ JBAS-4622 ] Can't flush bad naming stub if no java.naming.provider.url specified
- [ JBAS-4623 ] org.jboss.web.tomcat.service.session.JBossCacheCluster creates MBeanServer with incorrent domain name
- [ JBAS-4625 ] Connection leak if failure to setup connection in jms inbound resource adapter
- [ JBAS-4655 ] HandleImplIIOP not retrieving EJBObject correctly
- [ JBAS-4659 ] jboss-4.2.1.GA.zip distribution doesn't include mail-ra.rar
- [ JBAS-4667 ] Wrong logic in CachedConnectionManager.getCloseConnectionSynchronization()
- [ JBAS-4680 ] Update example for JBossWS Message TRACE in jboss-log4j.xml
- [ JBAS-4681 ] Generated Corba stub throws BAD_OPERATION on toString() when not connected to the ORB
- [ JBAS-4691 ] JACC: Unchecked WebUserDataPermission(s) for excluded and transport guarantee use cases
- [ JBAS-4697 ] Use of EDU.oswego.cs.dl.util.concurrent.ConcurrentHashMap.toArray() is not thread safe and should be replace with java.util.concurrent.ConcurrentHashMap when using MQ transactions.
- [ JBAS-4701 ] JaasSecurityDomain doesn't handle encrypted truststore passwords properly
- [ JBAS-4719 ] Implementations of Invoker should implement equals as an equality check rather than relying on Object.equals, this is important for cluster fail-over support
- [ JBAS-4729 ] HARMIClient fails over on UnmarshalException
- [ JBAS-4748 ] TransactionLocal.get() not sufficiently pluggable
- [ JBAS-4801 ] HomeHandleImplIIOP not using the HandleDelegate

## Task

- [ JBAS-3142 ] Add UnifiedInvoker (JBSer and JavaSer) into Version MatrixTestSuite
- [ JBAS-4092 ] Clean up the tests-webservice-ssl target
- [ JBAS-4523 ] Verify installation of jbossws tools jars
- [ JBAS-4526 ] JBossMQ UIL2 Read/Write Tasks should not be doing initialization
- [ JBAS-4549 ] Track JBoss and thirdparty dependencies for JBossAS 4.2.2
- [ JBAS-4572 ] EJB 3 testsuite 100%
- [ JBAS-4600 ] Rename JBossMQ variables from jboss-messaging to jboss.messaging-mq.lib
- [ JBAS-4601 ] Add example sybase-xa-ds.xml from the forums
- [ JBAS-4638 ] fix org.jboss.test.web.test.ssl.SSLUnitTestCase caused by upgrade to JBoss Web 2.0.1.CR6.
- [ JBAS-4640 ] JmsActivation reconnection could start multiple threads
- [ JBAS-4641 ] Move XMLJUnitMultipleResultFormatter from testsuite module to test module
- [ JBAS-4649 ] Upgrade to JBoss Cache 1.4.1.SP4
- [ JBAS-4695 ] Update the release notes for JBossAS 4.2.2.GA
- [ JBAS-4696 ] Arrange community documents for 4.2.2.GA
- [ JBAS-4698 ] Oswego Concurrent needs checking for bug fixes
- [ JBAS-4699 ] JBossMQ should use XA_RMFAIL as the default XA error code
- [ JBAS-4737 ] Include the CSIv2-patched JacORB
- [ JBAS-4754 ] Do a full CTS1.4 run to check for regressions.

## Sub-task

- [ JBAS-3572 ] Fix the NPEs (better error handling) identified by the new ServiceController testsuite
- [ JBAS-3613 ] failing test in org.jboss.test.iiop.test.ParameterPassingStressTestCase
- [ JBAS-4152 ] Upgrade to hsql 1.8.0.8 causes org.jboss.test.cmp2.idxandusersql.test.IdxAndUsersqlUnitTestCase::testCMRmn2 to fail
- [ JBAS-4550 ] Upgrade to JBossWeb 2.0.1 (from 2.0.0.GA)
- [ JBAS-4578 ] Upgrade jboss remoting to v2.2.2.SP1 (from v2.2.1.GA)
- [ JBAS-4663 ] Replace JBossClusteredTestCase usage of RMIAdaptor
- [ JBAS-4664 ] Move JBossClusteredTestCase to test module in Branch_4_2
- [ JBAS-4675 ] TransactionLocal cannot be locked when transaction is marked rollback only
- [ JBAS-4690 ] TransactionLocal tests are not run against the proper transaction manager
- [ JBAS-4694 ] Upgrade hsqldb to v1.8.0.8 (from 1.8.0.2)
- [ JBAS-4715 ] Upgrade jboss common to 1.2.1.GA (from 1.2.0.GA)
- [ JBAS-4723 ] Upgrade JGroups to 2.4.1.SP4
- [ JBAS-4731 ] Upgrade to JBoss Cache 1.4.1.SP5
- [ JBAS-4740 ] HARMIClient to give preference to wrapping NoSuchObjectException
- [ JBAS-4759 ] Upgrade jboss transactions to 4.2.3.SP6 (from 4.2.3.SP5)
- [ JBAS-4760 ] Upgrade to javassist 3.6.0.GA (from 3.5.0.GA)
- [ JBAS-4761 ] Upgrade to JBoss AOP 1.5.6.GA (from 1.5.5.GA)
- [ JBAS-4767 ] Upgrade jbossws to 2.0.1 (from 1.2.1.GA)

### JBossAS-4.2.1.GA

## Feature Request

- [JBAS-3158] - Need a way to detect collisions between JSF RI and JSF MyFaces
- [JBAS-4408] - LIMIT/OFFSET support in StoreManager2
- [JBAS-4454] - Upgrade to JSF RI 1.2_04 P02

## Bug

- [JBAS-4415] - ClusterFileTransferTestCase.testFarmDeploy fails to delete and copy
- [JBAS-4418] - run.bat should include %PATH% in java.library.path when bin/native exists
- [JBAS-4425] - ConnectionFactoryTemplate.xsl incorrectly sets isSameRM-override-value
- [JBAS-4427] - Misnamed FK index name for CMP2
- [JBAS-4429] - Classloader leak to JBossTS ReaperThread
- [JBAS-4441] - Jboss hangs at startup with 100% CPU utilization
- [JBAS-4444] - The invoker-proxy-binding in the base container configuration is ignored on sub-configurations.
- [JBAS-4461] - new InitialContext().rebind("x", null) throws NullPointerException
- [JBAS-4462] - mod() function not supported in SQL server 2005
- [JBAS-4473] - Java to IDL mapping erroneously treats a 'get' method as an attribute
- [JBAS-4481] - Transaction timeouts leave garbage Status.ROLLEDBACK UserTransaction object bound to the thread

## Task

- [JBAS-4198] - Align EJB3 Security with JEE 1.4 Behavior
- [JBAS-4420] - Separate classloader leak tests from the 'all' tests
- [JBAS-4442] - Need to update exception handling code in HypersonicDatabase.java
- [JBAS-4467] - Document in the release notes a configuration for multiple 1PC with JBossTS
- [JBAS-4480] - Upgrade hibernate to v3.2.4.SP1_CP01
- [JBAS-4482] - Add compatibility runs against 4.2.0.GA in Branch_4_2
- [JBAS-4503] - Update the release notes for JBossAS 4.2.1.GA
- [JBAS-4510] - Upgrade jboss remoting to v2.2.1.GA (from v2.2.0.SP4)

## Documentation and Help

The JBossAS community project is hosted on jboss.org labs. 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 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, a division of RedHat

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.