package nl.nn.adapterframework.configuration;
import nl.nn.adapterframework.core.IAdapter;
import nl.nn.adapterframework.util.LogUtil;
import org.apache.log4j.Logger;
/**
* This implemention of {@link AdapterService} also registers the adapters to Jmx, and configures the registered Adapters.
* @author Michiel Meeuwissen
* @since 5.0.29
*/
public class BasicAdapterServiceImpl extends AdapterServiceImpl {
private static final Logger LOG = LogUtil.getLogger(BasicAdapterServiceImpl.class);
@Override
public void registerAdapter(IAdapter adapter) throws ConfigurationException {
super.registerAdapter(adapter);
try {
// Throws javax.management.InstanceAlreadyExistsException when testing on
// WebSphere 7. This code has probably never been enabled as previously it was
// part of Configuration.java and was surrounded with "if (isEnableJMX())" with
// enableJMX being false by default.
LOG.debug("Registering adapter [" + adapter.getName() + "] to the JMX server");
JmxMbeanHelper.hookupAdapter(adapter);
LOG.info("[" + adapter.getName() + "] registered to the JMX server");
} catch (Throwable t) {
LOG.warn(t.getMessage());
}
adapter.configure();
}
@Override
public void unRegisterAdapter(IAdapter adapter) {
super.unRegisterAdapter(adapter);
try {
JmxMbeanHelper.unhookAdapter(adapter);
} catch (Throwable t) {
LOG.warn(t.getMessage());
}
}
}