2015-01-14 3 views
1

Почему мы не должны использовать какие-либо классы из портала-impl.jar внутри вашего портлета?PropsValues ​​in liferay

В моем случае, как я могу читать PropsValues без добавления portal-impl в зависимости от maven.

Я использую Liferay 6.2

Благодарности

+1

Вы можете использовать те же служебные вызовы, что и в [файле] (https://docs.liferay.com/portal/ 6.2/Javadocs-все/SRC-HTML/COM/Liferay/портал/Util/PropsValues.html # line.27). – Origineil

ответ

2

@Origineil - в комментарии к вашему вопросу - дал вам альтернативу того, что делать, вместо того, чтобы использовать портал-impl.jar (например, использовать вместо GetterUtil.getBoolean(PropsUtil.get(PropsKeys.SESSION_TIMEOUT_AUTO_EXTEND)); от PropsValues.SESSION_TIMEOUT_AUTO_EXTEND.

Почему вы не должны добавлять портал-impl.jar в свой проект? Ну, есть много причин. Прежде всего: это не сработает. Если вы добавите портал-impl.jar в свой плагин , там есть довольно много весенних компонентов, которые будут повторно инициализированы - и они предположили бы, что они находятся в контексте портала. у вас будет отсутствовать другой код, на который они зависят, и вы в основном будете использовать много кода реализации и кода зависимостей Liferay, делая ваш плагин смехотворно большим. И инициализация не может быть выполнена дважды, поэтому она даже не будет работать.

Плюс в портале-impl.jar вы найдете информацию о реализации Liferay - ни один из этих кодов никогда не обещал быть стабильным. Мало того, что вам все равно, если вы в этом зависете, это, скорее всего, нарушит ваши предположения даже при незначительных обновлениях. Конечно, некоторые компоненты там более стабильны, чем другие, но основное предположение является хорошим.

API Liferay (который рекомендуется использовать) живет в portal-service.jar. Это автоматически доступно для всех плагинов, и оно содержит упомянутую выше реализацию. Не зависеть от внутренней реализации чьей-то (Liferay). Скорее, зависят от опубликованного API. Если это означает, что вам придется что-то повторить - пусть будет так. Это может быть немного менее изящно, но гораздо больше будущего доказательства. И если вы сравните размер портала-impl.jar с количеством кода, который вы дублируете в случае с PropsValues, вы увидите, что это единственное расширение на самом деле является знатоком. Не тяните за 30M кода только потому, что вы предпочитаете вводить 30 символов, чем 60.

Смежные вопросы