Web-модули Jsf
Доброго времени суток!
На работе поставили задачу, проработать возможность написания модулей(плагинов) для веб приложения, основанного на использовании jsf(primefaces) и Gson. Интересует следующий вопрос — возможно ли написание подключаемых в рантайме модулей, без пересборки приложения. Вариант с пересборкой приложения тоже интересует, но модули должны быть максимально независимы. В идеале было бы — если бы можно было подкинуть jar(war), который включает дополнительный функционал, к приложению. И как в таком случае будет происходить обмен данными(например, id сессии, который геренит бд, для юзера). Буду очень благодарна, если подскажете, что почитать по теме.
9 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарівПридется сделать кое какую дополнительную инфраструктуру и перейти на бандлы вместо просто .jar
можно подробнее?
почитайте статьи по модульным системам на java поймете...
100% придется заметно переделать приложение.
en.wikipedia.org/wiki/OSGi
Еще почитайте о Equinox
но если честно — с таким вопросами вы это скорее всего не сделаете. Задача весьма серьезная и требует людей с опытом в OSGi. Вашему руководству стоит подумать а так ли они хотят модульность.
JSON пишется не так btw. Видимо не знакомый термин
code.google.com/p/google-gson — я это имела ввиду
За ответ спасибо.
А по поводу модульности сильно подумайте. Должны быть очень серьезные основания что бы влезать в это. Работы много, шишек собрать тоже можно много.
Может можно обойтись нуу например деплоем на другой сервер пересобраного приложения и переключением инстанса на новый в проксируещем веб сервере, как то так... Это я вам как человек который пишет огромное модульное приложение пишет говорю :)
К сожалению(или не очень), с предыдущей монолитной версией приложения наступили на грабли, которые теперь решили обойти вынесением определенного функционала в модули или плагины. Сегодня решили, что единственное требование — полная независимость базового функционала от модулей, ну и модулей друг от друга.
На доу нет джава-девелоперов???
Возможно, дело в том, что задача довольно специфическая, непростая, и требует ощутимого вложения времени(!) или же аналогичного опыта чтобы дать Вам ответ.
Давать же ответ поспешно — легко можно запутать Вас и Вы потеряете время, возможно даже много. Да и сколько Вам дали времени на эту задачу ... от этого может зависеть выбор решения.
Не все ведь работали с данными технологиями, я, например, с JSF не работал. А уж сказать можно ли скомпилировать или подключить JSF в runtime я даже не знаю. Попробуйте сделать маленький пример с динамическим подключением JSF. Для меня этот вопрос самый сомнительный в Вашей задаче. Подключить JAR (с OSGi) или просто class (даже без OSGi) можно, но стоит ли так подключать и JSF ?
Может быть, стоит формировать JSF уже на сервере, по каким-то заданным правилам из xml.
Или, можно ли JSF отрендерить на сервере из строки ? Нужно искать, пробовать.
Потом, тот кто дал Вам задание — это технический специалист и он дал Вам какие-то ограничения или же нет?
Например, ведь можно сделать систему в которой не jar-файлы подключаются, а xml документы, а уже сам Ваш код используя данный xml выполнил бы и функционал и view. Такой подход мне нравится больше всего. Хотя, опять же, я не знаю задания в целом.
А еще можно сделать генерацию функционала в *.java на стороне сервера и откомпилировать в runtime .
Можно вообще для описания функционала использовать скриптовый язык, например java script, и выполнять его на server side.
Если времени очень мало можно использовать не OSGi а загружать класс в рантайме. А потом уже перейти на OSGi, если надо.
Сложно дать совет, легко запутать.
Попробуйте делать Вашу задачу разными методами на мини проектах.
Потом ведь, делать то Вам, как Вам удобнее, в каких технологиях Вы работаете надежнее и быстрее.
Спасибо. Действительно, я попробую сделать примеры, если вопросы останутся — уточню. У меня у самой плохо складывается в голове вся картина, точнее сформулировать вопрос не получилось.