📄 mbeanfactory.java
字号:
public String createHttpsConnector(String parent, String address, int port)
throws Exception {
return createConnector(parent, address, port, false, true);
}
/**
* Create a new JDBC Realm.
*
* @param parent MBean Name of the associated parent component
*
* @exception Exception if an MBean cannot be created or registered
*/
public String createJDBCRealm(String parent, String driverName,
String connectionName, String connectionPassword, String connectionURL)
throws Exception {
// Create a new JDBCRealm instance
JDBCRealm realm = new JDBCRealm();
realm.setDriverName(driverName);
realm.setConnectionName(connectionName);
realm.setConnectionPassword(connectionPassword);
realm.setConnectionURL(connectionURL);
// Add the new instance to its parent component
ObjectName pname = new ObjectName(parent);
ContainerBase containerBase = getParentContainerFromParent(pname);
// Add the new instance to its parent component
containerBase.setRealm(realm);
// Return the corresponding MBean name
ObjectName oname = realm.getObjectName();
if (oname != null) {
return (oname.toString());
} else {
return null;
}
}
/**
* Create a new JNDI Realm.
*
* @param parent MBean Name of the associated parent component
*
* @exception Exception if an MBean cannot be created or registered
*/
public String createJNDIRealm(String parent)
throws Exception {
// Create a new JNDIRealm instance
JNDIRealm realm = new JNDIRealm();
// Add the new instance to its parent component
ObjectName pname = new ObjectName(parent);
ContainerBase containerBase = getParentContainerFromParent(pname);
// Add the new instance to its parent component
containerBase.setRealm(realm);
// Return the corresponding MBean name
ObjectName oname = realm.getObjectName();
if (oname != null) {
return (oname.toString());
} else {
return null;
}
}
/**
* Create a new Memory Realm.
*
* @param parent MBean Name of the associated parent component
*
* @exception Exception if an MBean cannot be created or registered
*/
public String createMemoryRealm(String parent)
throws Exception {
// Create a new MemoryRealm instance
MemoryRealm realm = new MemoryRealm();
// Add the new instance to its parent component
ObjectName pname = new ObjectName(parent);
ContainerBase containerBase = getParentContainerFromParent(pname);
// Add the new instance to its parent component
containerBase.setRealm(realm);
// Return the corresponding MBean name
ObjectName oname = realm.getObjectName();
if (oname != null) {
return (oname.toString());
} else {
return null;
}
}
/**
* Create a new Remote Address Filter Valve.
*
* @param parent MBean Name of the associated parent component
*
* @exception Exception if an MBean cannot be created or registered
*/
public String createRemoteAddrValve(String parent)
throws Exception {
// Create a new RemoteAddrValve instance
RemoteAddrValve valve = new RemoteAddrValve();
// Add the new instance to its parent component
ObjectName pname = new ObjectName(parent);
ContainerBase containerBase = getParentContainerFromParent(pname);
containerBase.addValve(valve);
ObjectName oname = valve.getObjectName();
return (oname.toString());
}
/**
* Create a new Remote Host Filter Valve.
*
* @param parent MBean Name of the associated parent component
*
* @exception Exception if an MBean cannot be created or registered
*/
public String createRemoteHostValve(String parent)
throws Exception {
// Create a new RemoteHostValve instance
RemoteHostValve valve = new RemoteHostValve();
// Add the new instance to its parent component
ObjectName pname = new ObjectName(parent);
ContainerBase containerBase = getParentContainerFromParent(pname);
containerBase.addValve(valve);
ObjectName oname = valve.getObjectName();
return (oname.toString());
}
/**
* Create a new Request Dumper Valve.
*
* @param parent MBean Name of the associated parent component
*
* @exception Exception if an MBean cannot be created or registered
*/
public String createRequestDumperValve(String parent)
throws Exception {
// Create a new RequestDumperValve instance
RequestDumperValve valve = new RequestDumperValve();
// Add the new instance to its parent component
ObjectName pname = new ObjectName(parent);
ContainerBase containerBase = getParentContainerFromParent(pname);
containerBase.addValve(valve);
ObjectName oname = valve.getObjectName();
return (oname.toString());
}
/**
* Create a new Single Sign On Valve.
*
* @param parent MBean Name of the associated parent component
*
* @exception Exception if an MBean cannot be created or registered
*/
public String createSingleSignOn(String parent)
throws Exception {
// Create a new SingleSignOn instance
SingleSignOn valve = new SingleSignOn();
// Add the new instance to its parent component
ObjectName pname = new ObjectName(parent);
ContainerBase containerBase = getParentContainerFromParent(pname);
containerBase.addValve(valve);
ObjectName oname = valve.getObjectName();
return (oname.toString());
}
/**
* Create a new StandardContext.
*
* @param parent MBean Name of the associated parent component
* @param path The context path for this Context
* @param docBase Document base directory (or WAR) for this Context
*
* @exception Exception if an MBean cannot be created or registered
*/
public String createStandardContext(String parent,
String path,
String docBase)
throws Exception {
// XXX for backward compatibility. Remove it once supported by the admin
return
createStandardContext(parent,path,docBase,false,false,false,false);
}
/**
* Given a context path, get the config file name.
*/
private String getConfigFile(String path) {
String basename = null;
if (path.equals("")) {
basename = "ROOT";
} else {
basename = path.substring(1).replace('/', '#');
}
return (basename);
}
/**
* Create a new StandardContext.
*
* @param parent MBean Name of the associated parent component
* @param path The context path for this Context
* @param docBase Document base directory (or WAR) for this Context
*
* @exception Exception if an MBean cannot be created or registered
*/
public String createStandardContext(String parent,
String path,
String docBase,
boolean xmlValidation,
boolean xmlNamespaceAware,
boolean tldValidation,
boolean tldNamespaceAware)
throws Exception {
// Create a new StandardContext instance
StandardContext context = new StandardContext();
path = getPathStr(path);
context.setPath(path);
context.setDocBase(docBase);
context.setXmlValidation(xmlValidation);
context.setXmlNamespaceAware(xmlNamespaceAware);
context.setTldValidation(tldValidation);
context.setTldNamespaceAware(tldNamespaceAware);
ContextConfig contextConfig = new ContextConfig();
context.addLifecycleListener(contextConfig);
// Add the new instance to its parent component
ObjectName pname = new ObjectName(parent);
ObjectName deployer = new ObjectName(pname.getDomain()+
":type=Deployer,host="+
pname.getKeyProperty("host"));
if(mserver.isRegistered(deployer)) {
String contextPath = context.getPath();
mserver.invoke(deployer, "addServiced",
new Object [] {contextPath},
new String [] {"java.lang.String"});
String configPath = (String)mserver.getAttribute(deployer,
"configBaseName");
String baseName = getConfigFile(contextPath);
File configFile = new File(new File(configPath), baseName+".xml");
context.setConfigFile(configFile.getAbsolutePath());
mserver.invoke(deployer, "manageApp",
new Object[] {context},
new String[] {"org.apache.catalina.Context"});
mserver.invoke(deployer, "removeServiced",
new Object [] {contextPath},
new String [] {"java.lang.String"});
} else {
log.warn("Deployer not found for "+pname.getKeyProperty("host"));
Service service = getService(pname);
Engine engine = (Engine) service.getContainer();
Host host = (Host) engine.findChild(pname.getKeyProperty("host"));
host.addChild(context);
}
// Return the corresponding MBean name
ObjectName oname = context.getJmxName();
return (oname.toString());
}
/**
* Create a new StandardEngine.
*
* @param parent MBean Name of the associated parent component
* @param engineName Unique name of this Engine
* @param defaultHost Default hostname of this Engine
* @param serviceName Unique name of this Service
*
* @exception Exception if an MBean cannot be created or registered
*/
public Vector createStandardEngineService(String parent,
String engineName, String defaultHost, String serviceName)
throws Exception {
// Create a new StandardService instance
StandardService service = new StandardService();
service.setName(serviceName);
// Create a new StandardEngine instance
StandardEngine engine = new StandardEngine();
engine.setName(engineName);
engine.setDefaultHost(defaultHost);
// Need to set engine before adding it to server in order to set domain
service.setContainer(engine);
// Add the new instance to its parent component
Server server = ServerFactory.getServer();
server.addService(service);
Vector onames = new Vector();
// FIXME service & engine.getObjectName
//ObjectName oname = engine.getObjectName();
ObjectName oname =
MBeanUtils.createObjectName(engineName, engine);
onames.add(0, oname);
//oname = service.getObjectName();
oname =
MBeanUtils.createObjectName(engineName, service);
onames.add(1, oname);
return (onames);
}
/**
* Create a new StandardHost.
*
* @param parent MBean Name of the associated parent component
* @param name Unique name of this Host
* @param appBase Application base directory name
* @param autoDeploy Should we auto deploy?
* @param deployOnStartup Deploy on server startup?
* @param deployXML Should we deploy Context XML config files property?
* @param unpackWARs Should we unpack WARs when auto deploying?
* @param xmlNamespaceAware Should we turn on/off XML namespace awareness?
* @param xmlValidation Should we turn on/off XML validation?
*
* @exception Exception if an MBean cannot be created or registered
*/
public String createStandardHost(String parent, String name,
String appBase,
boolean autoDeploy,
boolean deployOnStartup,
boolean deployXML,
boolean unpackWARs,
boolean xmlNamespaceAware,
boolean xmlValidation)
throws Exception {
// Create a new StandardHost instance
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -