in plugins/org.apache.karaf.eik.workbench/src/main/java/org/apache/karaf/eik/workbench/internal/KarafMBeanProviderWorkbenchService.java [317:359]
private IDebugEventSetListener getDebugEventListener(final ILaunch launch) throws CoreException {
final IProcess process = launch.getProcesses()[0];
final String memento =
launch.getLaunchConfiguration().getMemento();
return new IDebugEventSetListener() {
@Override
public void handleDebugEvents(final DebugEvent[] events) {
if (events == null) {
return;
}
for (final DebugEvent event : events) {
if ( process != null
&& process.equals(event.getSource())
&& event.getKind() == DebugEvent.TERMINATE)
{
final JMXServiceDescriptor descriptor = mbeanProviderDataMap.get(memento).getJmxServiceDescriptor();
jmxServiceManager.remove(descriptor);
final MBeanServerConnectionJob job = mbeanProviderDataMap.get(memento).getMBeanServerConnectionJob();
if (job != null) {
job.cancel();
}
final RuntimeDataProvider runtimeDataProvider = mbeanProviderDataMap.get(memento).getRuntimeDataProvider();
runtimeDataProviderManager.remove(runtimeDataProvider);
if (runtimeDataProvider != null) {
runtimeDataProvider.stop();
}
final MBeanProvider mbeanProvider = mbeanProviderDataMap.get(memento).getMbeanProvider();
mbeanProviderManager.remove(mbeanProvider);
if (mbeanProvider != null) {
mbeanProvider.close();
}
}
}
}
};
}