Я запускаю JADE, встроенный в программу Java, то есть не с java jade.Boot ...
.
Теперь я хотел остановить систему JADE, но не нашел хорошего способа сделать это.
Я могу выйти из всей программы с помощью System.exit (), но это не то, что я хочу делать.
Я пробовал несколько разных вещей, и мне удалось остановить поведение моего агента, но пара потоков продолжает работать: AMS, DF, веб-сервер, диспетчер таймера JADE, несколько потоков Deliverer и т. д.
Вот как выглядит мой текущий метод завершения работы:
@Override
public void shutdown() {
// TODO This does not work yet..
try {
for (WeakReference<AgentController> acr : agents) {
AgentController ac = acr.get(); // jade.wrapper.AgentController
if ( ac != null ) ac.kill();
}
container.kill(); // jade.wrapper.AgentContainer
Runtime.instance().shutDown(); // jade.core.Runtime
} catch ( StaleProxyException e ) {
e.printStackTrace();
}
}
Причина, по которой я хочу сделать то, что у меня есть несколько тестов JUnit для моего система агентов.
Есть идеи, как это сделать?