package org.rhq.plugins.jbosscache3.test;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.domain.resource.Resource;
public class RemoteClientTest {
private static final String REMOTE_NAME = "TestCacheBean/remote";
private static final String JBOSS_HOME = "homeDir";
private static final String JBOSS_NAME = "serverName";
private Log log = LogFactory.getLog(RemoteClientTest.class);
private List<String> fileNames;
private Object remoteObject;
public RemoteClientTest() {
fileNames = new ArrayList<String>();
}
public void runTest() {
try {
remoteObject = AppServerUtils.getRemoteObject(REMOTE_NAME,
Object.class);
AppServerUtils.invokeMethod("create", remoteObject,
(MethodArgDef[]) null);
AppServerUtils.invokeMethod("test", remoteObject,
(MethodArgDef[]) null);
} catch (Exception e) {
e.printStackTrace();
}
}
public void runClientClean() {
try {
AppServerUtils.invokeMethod("remove", remoteObject,
(MethodArgDef[]) null);
} catch (Exception e) {
e.printStackTrace();
}
}
protected void deployCacheExample(String jarPath) throws Exception {
log.info("Deploying cache example " + jarPath + ".");
fileNames.add(jarPath);
File jarFile = new File(jarPath);
AppServerUtils.deployFileToAS(jarFile.getName(), jarFile, false);
}
public void deployXmlExample(String xmlFilePath) throws Exception {
log.info("Deploying xml cache example " + xmlFilePath + ".");
File sourceFile = new File(xmlFilePath);
Resource res = AppServerUtils.getASResource();
Configuration config = res.getPluginConfiguration();
PropertySimple propHome = config.getSimple(JBOSS_HOME);
PropertySimple propName = config.getSimple(JBOSS_NAME);
assert (propHome != null);
assert (propName != null);
String name = propHome.getStringValue() + File.separatorChar + "server"
+ File.separatorChar + propName.getStringValue()
+ File.separatorChar + "deploy";
File destDir = new File(name);
assert (destDir.exists());
assert (destDir.isDirectory());
File destFile = File.createTempFile("tmp", "-service.xml", destDir);
destFile.deleteOnExit();
TestHelper.copyFile(destFile, sourceFile);
}
public void undeployCacheExample() throws Exception {
for (String name : fileNames) {
log.info("Undeploying cache example " + name + ".");
int sepIndex = name.lastIndexOf(File.separatorChar);
if (sepIndex != -1)
name = name.substring(sepIndex + 1, name.length());
AppServerUtils.undeployFromAS(name);
}
}
}