/** * */ package org.jboss.test.cluster.web; import javax.management.MBeanServerConnection; import javax.management.ObjectName; import org.jboss.logging.Logger; import org.jboss.test.JBossTestClusteredServices; import org.jboss.test.JBossTestServices; import org.jboss.test.cluster.testutil.TestSetupDelegate; /** * * * @author Brian Stansberry * * @version $Revision: $ */ public class JBossCacheConfigTestSetupDelegate implements TestSetupDelegate { public static final String SYSTEM_PROPS_SVC = "jboss:type=Service,name=SystemProperties"; private static final Logger log = Logger.getLogger(JBossCacheConfigTestSetupDelegate.class); private String cacheConfigName; private String usePojoCache; private JBossTestClusteredServices clusteredServices; public void setTestServices(JBossTestServices services) { this.clusteredServices = (JBossTestClusteredServices) services; } /* (non-Javadoc) * @see org.jboss.test.cluster.testutil.TestSetupDelegate#setUp() */ public void setUp() throws Exception { cacheConfigName = System.getProperty(CacheHelper.CACHE_CONFIG_PROP); usePojoCache = System.getProperty(CacheHelper.CACHE_TYPE_PROP, "false"); if (cacheConfigName != null || Boolean.parseBoolean(usePojoCache)) { setServerSideCacheConfigProperties(); } } /* (non-Javadoc) * @see org.jboss.test.cluster.testutil.TestSetupDelegate#tearDown() */ public void tearDown() throws Exception { // TODO Auto-generated method stub } private void setServerSideCacheConfigProperties() throws Exception { log.debug("configuring server with cacheConfigName=" + cacheConfigName + " and usePojoCache=" + usePojoCache); ObjectName on = new ObjectName(SYSTEM_PROPS_SVC); for (MBeanServerConnection adaptor : clusteredServices.getAdaptors()) { adaptor.invoke(on, "set", new Object[]{CacheHelper.CACHE_CONFIG_PROP, cacheConfigName}, new String[] {String.class.getName(), String.class.getName()}); adaptor.invoke(on, "set", new Object[]{CacheHelper.CACHE_TYPE_PROP, usePojoCache}, new String[] {String.class.getName(), String.class.getName()}); } } private void clearServerSideCacheConfigProperties() throws Exception { ObjectName on = new ObjectName(SYSTEM_PROPS_SVC); for (MBeanServerConnection adaptor : clusteredServices.getAdaptors()) { adaptor.invoke(on, "remove", new Object[]{CacheHelper.CACHE_CONFIG_PROP}, new String[] {String.class.getName()}); adaptor.invoke(on, "remove", new Object[] {CacheHelper.CACHE_TYPE_PROP}, new String[] {String.class.getName()}); } } }