FeatureAvailability.getInstance().waitForFeature(FeatureAvailability.AMX_CORE_READY_FEATURE, "" + this);
FeatureAvailability.getInstance().waitForFeature(AMXConfigConstants.AMX_CONFIG_READY_FEATURE, "" + this);
final DomainRoot domainRootProxy = ProxyFactory.getInstance(mMBeanServer).getDomainRootProxy(false);
final ObjectName domainRoot = domainRootProxy.objectName();
final ObjectNameBuilder objectNames = new ObjectNameBuilder(mMBeanServer, domainRoot);
final String domainName = Util.getNameProp(domainRoot);
final Metadata metadata = new MetadataImpl();
metadata.add(Metadata.CORRESPONDING_CONFIG, ConfigBeanRegistry.getInstance().getObjectNameForProxy(domain));
String serverName = mHabitat.<Server>getService(Server.class).getName();
final J2EEDomainImpl impl = new J2EEDomainImpl(domainRoot, metadata);
impl.setServerName(serverName);
ObjectName objectName = objectNames.buildChildObjectName(J2EEDomain.class);
try {
objectName = mMBeanServer.registerMBean(impl, objectName).getObjectName();
}
catch (JMException e) {
throw new Error(e);