JBoss.org Community Documentation
Beginning with AS 5, JBoss AS also supports deployment of POJO services via
deployment of a file whose name ends with -beans.xml.
A POJO service is one whose implementation is via a "Plain Old Java Object",
meaning a simple java bean that isn't required to implement any special
interfaces or extend any particular superclass. A PojoCache
is a POJO service, and all the components in a Configuration
are also POJOS, so deploying a cache in this way is a natural step.
Deployment of the cache is done using the JBoss Microcontainer that forms the
core of JBoss AS. JBoss Microcontainer is a sophisticated IOC framework
(similar to Spring). A -beans.xml file is basically
a descriptor that tells the IOC framework how to assemble the various
beans that make up a POJO service.
The rules for how to deploy the file, how to package it, how to ensure the required jars are on the classpath, etc. are the same as for a JMX-based deployment.
Following is an abbreviated example -beans.xml file.
The details of building up the Configuration are omitted; see the
"Deploying JBoss Cache" chapter in the JBoss Cache User Guide for
a more complete example. If you look in the
server/all/deploy directory of an AS 5
installation, you can find several more examples.
<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="urn:jboss:bean-deployer:2.0">
<!-- First we create a Configuration object for the cache -->
<bean name="ExampleCacheConfig"
class="org.jboss.cache.config.Configuration">
... details omitted
</bean>
<!-- The cache itself. -->
<bean name="ExampleCache" class="org.jboss.cache.pojo.impl.PojoCacheImpl">
<constructor factoryClass="org.jboss.cache.pojo.PojoCacheFactory
factoryMethod="createCache">
<parameter><inject bean="ExampleCacheConfig"/></parameter>
<parameter>false</false>
</constructor>
</bean>
</deployment>
An interesting thing to note in the above example is the difference
between POJO Cache and a plain Cache in the use of a factory to
create the cache. (See the "Deploying JBoss Cache" chapter in the
JBoss Cache User Guide for the comparable plain Cache example.) The
PojoCacheFactory exposes static methods for creating a PojoCache;
as a result there is no need to add a separate bean
element for the factory. Core Cache's
DefaultCacheFactory creates caches from a singleton
instance, requiring a bit more boilerplate in the config file.