Throughout the last three years and especially after publishing my post JBoss minimal configuration with Tomcat I’ve been asked many times what is actually the idea behind JBoss AS Minimal Configuration profile.
So what exactly you’ll get with following command?
./run.sh -c minimal
As the name implies, minimal profile consists only from bare configuration set needed to start everything what makes JBoss AS – the microkernel itself. To benefit from its dynamic loading functionality, three services need to be started from JBoss AS code itself:
- Service Controller to manage dependency and service lifecycle management
- Main Deployer responsible for deployment process delegation
- SAR Deployer that accepts JBoss Service Archives (SAR), both packaged and *-service.xml files for already loaded MBean classes.
Although this is enough to call the newly started java process ‘JBoss’, to make it usable, more is still required. From this point rest of the control is handed over to the main configuration file ./conf/jboss-service.xml (via SAR Deployer). Minimal profile has following services configured:
- Logging service (log4j)
- Basic Thread Pool
- Naming service (JNDI)
- Deployment scanner
As you can see, modulary developed from it’s bones, the JBoss server and all its services are implemented using the component-based approach. For version 4.X this effort is based on Java Management Extensions (JMX). Easy to use MBeans with extended lifecycle, dependency and injection support are registered to the MBean Server, which acts as invocation bus providing ideal decoupling of services.
Having minimal profile allows developers to start developing regular application with added benefit of dynamic redeployment. You can think about this functional set as an powerful application framework. Deployment scanner discovers new archives and Main/SAR deployers will deploy them. What else do we need?
For more information, please, check JBoss JMX Microkernel documentation.
Sounds interesting? It kind of does, but writing this at the end of the year 2008, we need a little bit more to get the right thrill.
And to have some is quite simple, because the long awaited release of JBoss AS 5.0 is going to stir the landscape of application framework market as we know it. Ignoring for now its Java EE 5 certification, the main change involves refactored kernel from it’s JMX origin to pure POJO development and deployment framework. JBoss Microcontainer – project behind the re-implementation – is not just a new backbone of the application server, but either as a standalone library for your application or used as part the JBoss AS minimal configuration profile, it delivers something the competitors are trying to produce for long time – completely modular POJO based application platform.
To see some of it’s features, including dynamic loading, Spring or Guice integration, OSGi support or seamless aspect configuration you can start with the first chapter of the User Guide (Draft) or review basics in the article A Look Inside JBoss Microcontainer from Javalobby.
4 Comments
This and your post on the minimal Tomcat server are great. Since all JBoss services run in the same runtime, it is nice to be able to create different service runtimes. The question is, how do you figure out what a service needs in terms of jar files and configuration options.
The dependencies in JBoss do not seem well documented or I am not finding the right doc. Say, for example I want a standalone messaging server.
William, thank you for the comment.
I agree with you it might be a bit hassle to find the right JAR files. But improvements are being made, new JBoss Messaging is a good example of such a progress (even 1.4, but 2.0 is going to be represent giant step).
Hi Radim,
Do you know what dependencies or configuration I should take care of to enable the jmx-console.war with JBoss 4.2 Minimal Profile?
Cheers,
Chris
I’ll be happy to see the same minimum configuration for the newly released JBoss AS 5.
Cheers