Остановка параллельной задачи java с помощью ant

Я разрабатываю две java-программы, которые запускаются в отдельной VM, которые имеют типичные отношения между сервером и клиентом. Используя ant параллельные/последовательные задачи, я смог получить ant для запуска сервера, а затем для клиента. Мне бы это понравилось, так что, когда клиентский процесс остановился, ant убивает сервер. Я видел, как это было сделано с пользовательскими задачами ant для конкретных серверных приложений (например, TomCat), существует ли какой-либо метод для этого с помощью общих java-процессов?

Ответ 1

Поскольку вы разрабатываете серверное приложение, вы можете прослушать команду "shutdown". Затем вы можете ant отправить команду shutdown при выходе клиента, например:

<parallel>
    <server .../>
    <sequential>
        <client ... />
        <!-- client has finished,  send stop command to server -->
    </sequential>
</parallel>

Другим вариантом, который может работать для вас, является запуск сервера внутри элемента daemons.

<parallel>
    <daemons>
        <server .../>
    </daemons>
    <sequential>
        <client ... />
    </sequential>
</parallel>

Это заставит сервер работать в потоке демона, который не предотвратит завершение работы ant. Когда ant останавливается, все потоки демона, включая ваш сервер, будут завершены.