2013-09-18 5 views
2

У меня есть XPage, который запускается в браузере и в клиенте Notes. В клиенте я хочу поговорить с пользовательским интерфейсом клиента Java. Поэтому я построил Extlib, который инкапсулировал вызовы. И я построил один с той же подписью для Интернета.Условно зависит от библиотеки?

Как я могу заставить приложение зависеть от того или другого на основе работы на клиенте или на сервере?

ответ

2

Для этого вам следует использовать службы OSGi.

  1. Определите свой API в терминах интерфейсов Java. Напишите один пакет, который экспортирует пакет API.
  2. Напишите два варианта реализации API, один из которых реализует его для «толстого клиента», а другой, который реализует его для Интернета. Каждый комплект обеспечивает его реализацию как Службу.
  3. Включите толстый клиентский пакет в толстом клиентском приложении; включить веб-узел в веб-приложение.

Чтобы облегчить задачу внедрения и использования службы, я настоятельно рекомендую использовать Declarative Services (DS).

+0

Hi Neil, thx для чистки. Я получил интерфейсы, я получил реализацию. Особая задача здесь: есть только одно приложение, которое обрабатывается как сервером, так и богатым клиентом (той же базой кода), что меньше моих библиотек. Где я могу узнать больше о DS? – stwissel

+0

К сожалению, XPages, похоже, не поддерживает декларативные сервисы, поэтому я прохожу по другому пути – stwissel

+0

Я мало что знаю о XPages, но я считаю, что он основан на OSGi. И DS является стандартным OSGi. Поэтому DS должен работать на XPages. –

0

Для Java плагин, который привыкает в XPage там (в соответствии с мастером) 2-х основных подходов осуществимых (все реализации интерфейсов, так что Нил пятно на):

  • Обеспечить реализацию как фрагменты к базовому подключаемому модулю и загрузить соответствующий фрагмент. Может быть проблемой, если один и тот же подключаемый экземпляр будет развернут на клиентах и ​​серверах одинаково.
  • Предоставьте обе реализации (например, com.acme.server.SomeClass и com.acme.client.SomeClass) и выберите заводский класс справа класс для текущей среды выполнения
Смежные вопросы