Details
-
Type: New Feature
-
Status: Closed
-
Priority: Major
-
Resolution: Fixed
-
Affects Version/s: 2.0.0
-
Fix Version/s: 2.0.1
-
Component/s: Tool Integrations
-
Labels:None
-
Environment:Netbeans 7
Description
JSF support in Netbeans 7 includes some changes and introduces some new features, such as improved EL support in editor. etc. One of them being mentioned widely is called "Support for JSF component libraries, including bundled Primefaces library". PrimeFaces 2.1 runtime is bundled as example only available for JSF 2.0 environment . This feature allows 3rd party component library provider to easily create a netbeans module for their component library.
In JSF configuration panel, a Components tab is added with a combo box to select one and only one component suite. This can be done by JSFComponentProvider to provide component jar files.
We could combine core and ACE component as one ICEfaces2 component to be listed in the Component Suite combo box. But we cannot provide compat components as compat component needs further configuration (adding compatResourceServlet in web.xml).
A bugzilla case: "Allow multiple JSF component libraries" is created.
http://netbeans.org/bugzilla/show_bug.cgi?id=194445
In JSF configuration panel, a Components tab is added with a combo box to select one and only one component suite. This can be done by JSFComponentProvider to provide component jar files.
We could combine core and ACE component as one ICEfaces2 component to be listed in the Component Suite combo box. But we cannot provide compat components as compat component needs further configuration (adding compatResourceServlet in web.xml).
A bugzilla case: "Allow multiple JSF component libraries" is created.
http://netbeans.org/bugzilla/show_bug.cgi?id=194445
there are 2 ways to add ICEfaces support to Netbeans 7.
Onne is the traditional approach, which provide ICEfaces support as a new web framework provider.
Second is to use JSFComponentProvider extension, which provide ICEfaces as a component library as Netbeans did for primefaces.
Here is the summary of pros and cons of new netbeans 7 tool bundle, which uses JSFComponentProvider extension.
Pro:
ICEfaces is now integrated into Netbeans JSF module. This means that ICEfaces2 is listed as a component library instead of a separate framework. User is now able to select JSF framework and go to JSF configuration panel to select ICEfaces2 library from component list box. Currently primefaces and icefaces2 are in the list.
Cons.
1. ICEfaces2 has to be packaged as one library and we cannot provide 3 different libraries such as ICEfaces core, ACE, ICEfaces component, and ICEPush, and potentially portletBridge as this feature (component library provider) is designed for one component library. In the configuration panel a combo box is used, and in JSFFrameworkProvider, only one selected component library is allowed and added.
2. Custom welcome page is allowed but only for 2 parts: namespace def and welcome message body. For namespace def, only one namespace uri can be added. So I cannot add both ice and ace namespace. Only ice or ace can be added. Currently I put ice and user can add ace manually on the welcome page. As for creating new pages, I provide new icefaces page wizard, which generates right page skeleton if user follows New->Other->ICEfaces->ICEfaces2 Facelets Page.
Due to the face that head section cannot be changed, I cannot add link tag to point to rime or xp etc. This will affect all compat components which use images specified in css such as arrow in selectInputDate and a lot of other components.
3. CompatResourceServlet cannot be defined in web.xml
{"/xmlhttp/*"}CompatResourceServlet doesn't have annotation as @WebServlet(name="Resource Servlet",urlPatterns=
for compatibility reason on servlet 2.5.
Without this mapper servlet and this link tag mentioned above, all compat components which use images specified in css won't work properly.
4. This plugin requires netbeans' JSF Support module as dependency but the JSF Support module is defined to "Exported only to friend packages". Of course primefaces module is in the list and we are not. This is ridiculous. They publish the component library extension and API but restrict the use of the API. This is minor as it can be worked around with minor risk.