// AE stats
AnalysisEngineManagement proxy = JMX.newMBeanProxy(
server, instance.getObjectName(),
AnalysisEngineManagement.class);
IUimaPipelineAEComponent aeState = null;
// if ((aeState = getUimaAeByName(aeStateList,
// sb.toString())) == null) {
if ((aeState = getUimaAeByName(sb.toString())) == null) {
// Not interested in AEs that are in a Ready State
if (AnalysisEngineManagement.State.valueOf(
proxy.getState()).equals(
AnalysisEngineManagement.State.Ready)) {
continue;
}
aeState = new UimaPipelineAEComponent(
sb.toString(), proxy.getThreadId(),
AnalysisEngineManagement.State
.valueOf(proxy.getState()));
aeStateList.add(aeState);
((UimaPipelineAEComponent) aeState).startInitialization = System
.currentTimeMillis();
aeState.setAeState(AnalysisEngineManagement.State.Initializing);
updateAgent = true;
} else {
// continue publishing AE state while the AE is
// initializing
if (AnalysisEngineManagement.State
.valueOf(proxy.getState())
.equals(AnalysisEngineManagement.State.Initializing)) {
updateAgent = true;
aeState.setInitializationTime(System
.currentTimeMillis()
- ((UimaPipelineAEComponent) aeState).startInitialization);
// publish state if the AE just finished
// initializing and is now in Ready state
} else if (aeState
.getAeState()
.equals(AnalysisEngineManagement.State.Initializing)
&& AnalysisEngineManagement.State
.valueOf(proxy.getState())
.equals(AnalysisEngineManagement.State.Ready)) {
aeState.setAeState(AnalysisEngineManagement.State.Ready);
updateAgent = true;
synchronized (this) {
try {
wait(5);
} catch (InterruptedException ex) {
}
}
aeState.setInitializationTime(proxy
.getInitializationTime());
// AE reached ready state we no longer need to
// publish its state
componentsToDelete.add(aeState);
}
}
service.logger.debug(
"UimaAEJmxMonitor.run()",
null,
"---- AE Name:" + proxy.getName()
+ " AE State:" + proxy.getState()
+ " AE init time="
+ aeState.getInitializationTime()
+ " Proxy Init time="
+ proxy.getInitializationTime()
+ " Proxy Thread ID:"
+ proxy.getThreadId());
}