3.2.3. Programmatic Configuration
In addition to the XML-based configuration above, the
Configuration
can be built up programmatically, using the simple property mutators exposed by Configuration
and its components. When constructed, the Configuration
object is preset with JBoss Cache defaults and can even be used as-is for a quick start.
Configuration config = new Configuration(); config.setTransactionManagerLookupClass( GenericTransactionManagerLookup.class.getName() ); config.setIsolationLevel(IsolationLevel.READ_COMMITTED); config.setCacheMode(CacheMode.LOCAL); config.setLockAcquisitionTimeout(15000); CacheFactory factory = new DefaultCacheFactory(); Cache cache = factory.createCache(config);
Even the above fairly simple configuration is pretty tedious programming; hence the preferred use of XML-based configuration. However, if your application requires it, there is no reason not to use XML-based configuration for most of the attributes, and then access the
Configuration
object to programmatically change a few items from the defaults, add an eviction region, etc.
Note that configuration values may not be changed programmatically when a cache is running, except those annotated as
@Dynamic
. Dynamic properties are also marked as such in the Section 12.2, “Configuration File Quick Reference” table. Attempting to change a non-dynamic property will result in a ConfigurationException
.