Как правильно инициализировать JBoss Weld в Java SE без использования org.jboss.weld.environment.se.StartMain#main?

Я работаю над проектом JavaFX 2, и приложение должно быть запущено с использованием другого основного метода (com.javafx.main.Main в соответствии с созданным манифестом JAR). Согласно официальному ссылке Weld, начальная загрузка включает в себя запуск приложения через org.jboss.weld.environment.se.StartMain, что невозможно сделать в моем (пограничном) случае... Однако, глядя на исходный код, метод org.jboss.weld.environment.se.StartMain#main содержит только одну строку кода:

new StartMain(args).go();

Итак, я решил, что просто использую эту конкретную строку кода в своем приложении в «нужное время» (в качестве альтернативы я мог бы просто вызвать StartMain.main(args) из своего приложения). Но я не уверен, есть ли какие-либо последствия для этого. Кто-нибудь знает лучший способ сделать это?

Версии:

JavaFX 2.0.2

Сварка 2.0.0.Альфа1


person Andrey    schedule 22.02.2012    source источник


Ответы (1)


Загрузите последнюю версию Weld не ниже 1.1.3 и инициализируйте свой контейнер с помощью основного класса Weld вместо использования СтартГлавный:

WeldContainer weld = new Weld().initialize();
person Perception    schedule 22.02.2012
comment
это часть того, что происходит в StartMain#go. Он также добавляет перехватчик выключения и устанавливает аргументы командной строки. - person Andrey; 23.02.2012