Eclipse пользовательский Java-компилятор - PullRequest
2 голосов
/ 15 августа 2010

Я использую eclipse для создания своего проекта jsf.

Я создал свои собственные компоненты, и я не хочу, чтобы другие программисты могли использовать обычные компоненты jsf, такие как h:inputtext и т. Д.

Как я могу сделать это в Eclipse, чтобы, если пользователь добавляет определенные теги, такие как h:inputtext, он будет видеть ошибки на странице, а также при попытке ее запустить?

Ответы [ 2 ]

3 голосов
/ 15 августа 2010

Это не Java, а JavaServer Faces.

Вы не можете - по общему принципу - сделать это для других разработчиков. Они будут обходить его при необходимости.

То, что вы можете сделать, - это применить политику, согласно которой ваши компоненты должны использоваться вместо стандартных JSF, а затем проверить это при сборке. Либо ваш исходный репозиторий, либо ваш сервер сборки (предпочтительно) должны проверить это и не выполнить операцию. Это также позволит разработчику использовать стандартный JSF, если это необходимо для локальной отладки, если он не используется совместно.

Для проверки страницы JSF вы можете использовать ее как документ XML и использовать XSLT для проверки всех тегов и атрибутов. Мой подход заключается в проверке пространства имен во всех тегах и возникновении сбоя, если он найден в черном списке.

0 голосов
/ 15 августа 2010

Полагаю, вы могли бы написать Eclipse WTP плагин проверки для проверки ваших файлов просмотра.Я бы проверил наличие пространства имен http://java.sun.com/jsf/html.

Простой способ запретить эти теги - взорвать их во время выполнения.Вы можете сделать это, переопределив конкретные компоненты для компонента, который вызывает исключение при создании экземпляра.Например, чтобы заменить реализацию commandButton, вы должны определить тип компонента javax.faces.HtmlCommandButton в faces-config.xml.Если вы пишете пользовательские элементы управления, вы, вероятно, уже хорошо понимаете эту область.Для этого потребуется добавить библиотеку в приложение (я).

...