package com.softwaremill.common.conf;
import org.jboss.mx.util.MBeanServerLocator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.management.*;
/**
* JBoss 6 configuration provider
*/
public class JBoss6DeployPropertiesProvider extends FolderPropertiesProvider {
private static final Logger log = LoggerFactory.getLogger(JBoss6DeployPropertiesProvider.class);
@Override
public String lookupConfigDirectory() {
try {
MBeanServer server = MBeanServerLocator.locate();
return server.getAttribute(new ObjectName("jboss.system:type=ServerConfig"), "ServerConfLocation").toString();
} catch (RuntimeException e) {
return null;
} catch (MBeanException e) {
return null;
} catch (AttributeNotFoundException e) {
return null;
} catch (InstanceNotFoundException e) {
return null;
} catch (ReflectionException e) {
log.error("Cannot get server conf directory", e);
return null;
} catch (MalformedObjectNameException e) {
log.error("Cannot get server conf directory", e);
return null;
}
}
@Override
public boolean providerAvailable() {
try {
Thread.currentThread().getContextClassLoader().loadClass("org.jboss.mx.util.MBeanServerLocator");
return true;
} catch (ClassNotFoundException e) {
// Class not found - not registering.
return false;
}
}
}