JBoss - Overviewhis is the final release of the JBoss 5.0 series for the Java EE5 codebase that fully complies with the Java EE5 conformance testing certification requirements. It brings us to the end of a 3+ year marathon of redesigning the most popular open-source application server over a completely new kernel architecture, the JBoss Microcontainer www.javatechnologycenter.com. It also marks the beginning of a new era of innovation for JBoss as we will be exploring the capabilities and limitations of the new architecture in the releases to come. In our view, JBossAS 5 provides a healthy foundation and the most advanced and fully extensible, cross component model, aspect integration, server runtime environment. For information on the APIs that make up Java EE5, see Java EE APIs www.javatechnologycenter.com. A tutorial on Java EE 5 can be found here www.javatechnologycenter.com. Please visit also the JBoss AS docs [https:/ javatechnologycenter.com pages as we'll be updating the documents with the latest information, and post your questions to the JBossAS 5 User Forum www.javatechnologycenter.com JBossAS 5 is the next generation of the JBoss Application Server build on top of the new JBoss Microcontainer. The JBoss Microcontainer is a lightweight container for managing POJOs, their deployment, configuration and lifecycle. It is a standalone project that replaces the famous JBoss JMX Microkernel of the 3.x and 4.x JBoss series. The Microcontainer integrates nicely with the JBoss framework for Aspect Oriented Programming, JBoss AOP. Support for JMX in JBoss 5 remains strong and MBean services written against the old Microkernel are expected to work. Further, it lays the groundwork for JavaEE 6 profiles oriented configurations and JBoss AS embedded that will allow for fine grained selection of services for both unit testing and embedded scenarios. JBossAS 5 is designed around the advanced concept of a Virtual Deployment Framework (VDF), that takes the aspect oriented design of many of the earlier JBoss containers and applies it to the deployment layer. Aspectized Deployers operate in a chain over a Virtual File System (VFS), analyze deployments and produce metadata to be used by the JBoss Microcontainer, which in turn instantiates and wires together the various pieces of a deployment, controlling their lifecycle and dependencies. The VDF allows for both customization of existing component modules including JavaEE and JBoss Microcontainer, as well as introduction of other models such as OSGi and Spring. 1.2. Component Highlights Many key features of JBoss 5 are provided by integrating other standalone JBoss projects:
1.3. Major Component Upgrades Some rather important JBoss project versions are listed below. You are encouraged to browse the individual project's documentation and view the release notes at www.jboss.org.
1.4. Project Structure Changes With the reworking of the server kernel and evolution of various JBoss technologies to indepdnent projects, the JBossAS project is moving towards becoming largely an integration project. Many key pieces are now integrated as thirdparty jars that integration code/configuration makes avaialble as part of a server configuration/profile. A common theme for JBossAS 5 is the breaking out of internal subsystems into stand-alone projects and the introduction of SPIs throughout the server codebase. Those changes should not affect directly the end user but they are an important part of the JBoss strategy for making available the various EE services as independent projects, so that they can be wired-together and be consumed à la carte inside different runtime environments and not only inside the JBoss Application Server. If you are building JBossAS from source you'll notice we are migrating to a maven2 build. At this point the build is a hybrid one because it declares all JBoss dependencies as maven2 artifacts, however after the dependencies are resolved/imported the legacy ant based build is used to compile and build the distribution. This will change to a full maven build at some point in time. The jboss maven repo can be found here [http://repository.jboss.org/maven2/]. Starting from AS5 CR2, please note how the -sources.jar are also downloaded to thirdparty by default. To disable downloading of the sources to thirdparty, define the property skip-downloadsources to true either on the command line or in your maven settings.xml. 1.4.1. SVN Information The project source is rooted at Anonymous SVN [http://anonsvn.jboss.org/repos/jbossas/] for public access, and Committer SVN [https://svn.jboss.org/repos/jbossas/] for committer access. The directories under these roots follow the usual svn conventions:
When you checkout the project the resulting subdirectories are: aspects Server aspects bootstrap The server bootstrap that loads the JBoss Microcontainer build The server build directory which contains the main build.xml. See Section 5.3, “Building with Apache ANT”Building with ANT for more on building the server. client A maven project that declares the dependcies for the jboss-all-client.jar cluster Clustering related services and integration component-matrix A maven project the declares the external dependencies consumed by the server. This is used to build the thirdparty/* library structure. connector JCA implementation and integration code. console Obsolete admin console. See JBoss Embedded Console [http://www.jboss.org/jopr/]project for the future direction of the server admin console. deployment JSR88 deployment services code. ejb3 EJB3 integration code. embedded Obsolete JBossAS emebedded project that has been moved toSVN embedded [http://anonsvn.jboss.org/repos/jbossas/projects/embedded/] for further development. See the Design of Embedded JBoss [http://www.jboss.com/ index.html?module=bb&op=viewforum&f=266] forum for design discussions. hibernate-int Hibernate deployment integration code. iiop JacORB integration code for IIOP support. j2se jbossas JMX remoting and JTS integration code jmx javax.management.* package implementations jmx-remoting A javax.management.remote.JMXConnector implementation main The main() entry point code management JSR77 mbean view generation code mbeans JBoss JMX extensions messaging JBoss Messaging integration code pom.xml The JBossAS root maven pom profileservice The ProfileService, ManagementView, and DeploymentManager implementations. security JBoss Security integration code server The legacy EJB2 containers, deployers and detached invokers spring-int Spring bean deployment integration system ProfileServiceBootstrap implementation and management code system-jmx MBean service component model and deployers testsuite The JBossAS testsuite thirdparty The maven2 thirdparty project which builds the local thirdparty jars used by the ant build. tomcat JBossWeb integration code and deployers tools build tool jars varia Various misc services webservices JBossWS integration code and deployers 1.5. Configuration Notes This section describes additional changes in JBossAS 5. 1.5.1. JBoss VFS JBoss VFS provides a set of different switches to control it's internal behavior. JBoss AS sets boss.vfs.forceCopy=true by default. To see all the provided VFS flags check out the code of the VFSUtils.java class.
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. 1.5.3. jbossall-client.jar 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. 1.5.4. EJB3 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.
EJB3 configuration is now controlled by deployers/ejb3.deployer/META-INF/ejb3-deployersjboss- beans.xml as described in http://www.jboss.org/community/docs/DOC-12407 1.5.5. Other JBossAS 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 AS5ServiceBindingManager Wiki [http://www.jboss.org/community/ docs/DOC-9038]. The Farm service from 4.x has been removed, and replaced with a HASingletonDeploymentScanner that integrates with the ProfileService. 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. A new jboss.server.log.threshold system property can be used to control the log/server.log threshold. It defaults to DEBUG. The default conf/jboss-log4j.xml configuration now includes the thread name for entries in log/ server.log (JBAS-5274). The transaction manager configuration has moved from conf/jboss-service.xml to deploy/ transaction-service.xml. All the security related configuration files are now grouped under the deploy/security directory (JBAS-5318). The security configuration changes are further described in SecurityInJBoss5 [http:/ /www.jboss.org/community/docs/DOC-12199] wiki. 1.5.6. Clustering A new jboss.jgroups.udp.mcast_port property is to control easy configuration of multicast port. It defaults to ${jboss.jgroups.udp.mcast_port:45688}. Clustering configurations are now in a deploy/clustering subdirectory 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). Loopback is now set to true for all JGroups UDP stacks (JBAS-5323). 1.6. New Configurations 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). The configurations that are modified include:
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:
<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/) |