package org.huihoo.jfox.mx;
import java.util.Properties;
import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
import org.jfox.ejb.Container;
import org.jfox.ejb.ContainerImpl;
import org.jfox.ejb.plugin.Interceptor;
import org.huihoo.jfox.system.State;
public class ContainerMX implements ServiceMX {
private Container container;
public ContainerMX() {
container = ContainerImpl.getInstance();
}
public String mx_getRemoteProtocol() {
return container.getRemoteProtocol();
}
public void mx_setRemoteProtocol(String remoteProtocol) {
container.setRemoteProtocol(remoteProtocol);
}
public String mx_getLocalProtocol() {
return container.getLocalProtocol();
}
public void mx_setLocalProtocol(String localProtocol) {
container.setLocalProtocol(localProtocol);
}
public void mx_addInterceptor(String interceptorClass) throws Exception {
ClassLoader cl = Thread.currentThread().getContextClassLoader();
Object obj = cl.loadClass(interceptorClass).newInstance();
if(obj instanceof Interceptor){
container.addInterceptor((Interceptor)obj);
}
}
public String[] mx_listInterceptors() {
Iterator it = container.interceptors();
List list = new ArrayList();
while(it.hasNext()){
list.add(it.next().toString());
}
return (String[])list.toArray(new String[]{});
}
public String[] mx_listBulks() {
Iterator it = container.listBulks();
List list = new ArrayList();
while(it.hasNext()){
list.add(it.next().toString());
}
return (String[])list.toArray(new String[]{});
}
public void mx_start() {
try {
container.init();
}
catch(Exception e){
throw new RuntimeException(e);
}
}
public void mx_stop() {
try {
container.destroy();
}
catch(Exception e){
throw new RuntimeException(e);
}
}
public Properties getOperationDescriptions() {
return null;
}
public Object getSource() {
return container;
}
public String getMxDescription() {
return "Container Management";
}
public State mx_getStat(){
return container.getState();
}
public static void main(String[] args) {
}
}