Встраивание Openfire - PullRequest
       18

Встраивание Openfire

0 голосов
/ 24 июня 2011

Можно ли встроить сервер Openfire (версия 3.7.0) в приложение Java?

Я пытаюсь запустить интеграционные тесты на сервере в Eclipse. Однако, поскольку Openfire находится в автономном режиме (условием для этого является то, что он может найти свой класс начальной загрузки ServerStarter), когда сервер пытается завершить работу, он вызывает System.exit (0), чего я не хочу.

Есть ли какой-нибудь способ предотвратить это, т. Е. Просто не намеренно помешать Openfire найти свой класс начальной загрузки?

1 Ответ

3 голосов
/ 30 июля 2011

У меня есть успешный подход, который довольно прост и намного проще, чем пытаться вручную настроить Openfire.

Установить Openfire на компьютер (Mac, ПК и т. Д.), Настроить с помощью консоли администратора с помощьювстроенной базы данных, а затем закомментируйте adminConsole из openfire.xml, если хотите.

Скопируйте каталог в место, из которого вы хотите запустить свои модульные тесты.Если вы хотите обеспечить точную повторяемость, было бы разумно архивировать и разархивировать каталог при каждом запуске тестов.

Убедитесь, что все все фляги (openfire, hsqldb, mail, bouncycastle, jasper и т. Д.) Добавлены.

Теперь вы сможете нормально запускаться и останавливаться.Openfire имеет одну причуду.Поскольку он синглтон-ориентирован, даже если вы выключите его, этот одноэлементный экземпляр остается без изменений, поэтому, если вы хотите использовать его в чем-то вроде модульного теста, вам придется вызвать XMPPServer.getInstance (), чтобы проверить, существует ли экземпляр,вызовите конструктор, если getInstance () вернет null.

Надеюсь, это поможет.

...