У меня есть JRuby/рельсы приложение с помощью:Ленивая загрузка ESB в JRuby рельсы приложение
jruby 1.4.0
Rails 2.3.5
ActiveMQ 5.3.0
Mule ESB 2.2.1
В настоящее время в нашем файле environment.rb мы начинаем до Mule в инициализаторе. Это становится большой болью, когда мы идем делать обычные задачи рейка, которые не требуют JMS/Mule, таких как db: migrate, так как требуется много времени для запуска/остановки Mule каждый раз.
код похож на этот:
APP_CONTEXT = Java::our.company.package.service_clients.Initializer.getAppContext(MULE_CONFIG_PATH)
И мы используем APP_CONTEXT
для извлечения компонент для подключения к соответствующей службе.
Я пытаюсь выяснить какой-то механизм, с помощью которого APP_CONTEXT может быть лениво инстанцирован (не инициализирован), чтобы избежать всех проблем, связанных с запуском Mule при инициализации.
В настоящее время у нас есть несколько классов клиентов ruby, которые создаются как before_filter в application_controller, такие как @data_service = DataService.new(APP_CONTEXT)
, которые инициализируют правильный клиент java для каждого запроса для использования в наших контроллерах.
Я открыт для всех предложений. Мне трудно найти подходящее место для создания этого ленивого экземпляра.