ICEFaces 1.8 or 2.0? - jsf

I am currently developing an internal application for our company with the following requirements.
Rich GUI but only basic HTML like components will be used. So component list is not a deciding factor.
Fuzzy requirements which might change frequently during the implementation stage, and tight turn around times are the norm. Thus am looking for a Drag-&-Drop design
The application will rarely be used (max once in a month) and the user base will not exceed 20.
Time is a critical factor and thus I do not want to spend time on configuring and troubleshooting the framework. I will go for a easy to integrate solution.
I did a brief research and decided on JSF with IceFaces. But am now confused about the version. If I go with 1.8, I get Drag-&-Drop designing (Netbeans 6.5) but I will be stuck with JSF 1.2
If I choose ICEFaces 2.0 I will have to manually design the UI which might take more time.
Any suggestions on which version to choose?

If you can, go with the newest stable version. There are a lot of reason to use JSF2.
You can have drag&drop with ICEfaces2 too, at least in Eclipse (see the wiki). IDE integration is available for NetBeans, the release note mentions a palette (I'm not familiar with NetBeans, but it may be what you're looking for).

Related

EE4J , JSF spec , MyFaces and Future direction

Until JSF 2.3 the mojarra (reference implementation) and myfaces were based on JSR specification document.
With a move to the EE4J:
Would there be any equivalent of specification document?
how does it impact the future of other implementation (myfaces for jsf)?
Will the future mojarra and myfaces still be compatible so that we can run an application on either of them ? (implementation provided by the Application server - WAS = myfaces & glassfish = mojarra)
What impact could it have on component framework like Primefaces ,Bootsfaces etc which depend on a underlying implementation?
Update August 19, 2018: Guillermo González de Agüero recently gave an interview at Jaxenter.com addressing some of your questions. In particular, he's a bit worried that Oracle won't open-source the specification documents. That'd prevent simply taking these documents as a basis for new specification documents.
Update August 17, 2018: After writing my initial answer, I reached out to some of the leading JSF developers (see this discussion on Twitter). There are plans to purge outdated APIs, such as removing the old JSF ManagedBeans in favor of CDI. So there will be API changes, but I don't thinks that's something to worry about. I'm sure there will be a smooth upgrade path.
It's always difficult to make a prediction concerning the future. However, I'm a bit closer to the people in the spec teams than most, so I can make some educated guesses.
EE4J is part of the Eclipse foundation ecosystem, so I'm sure there will be a well-defined specification process and a lot of documentation. I'm almost sure there will be a detailed specification document, but take it with a grain of salt - I'm not an insider. (Also see update above - currently, the specification documents of JavaEE are under copyright protection, and it seems unlikely they're going to be donated to the Eclipse foundation).
As far as I can see, there's not much impact on MyFaces. They just have to follow a different specification document.
Definitely yes. MyFaces is an actively developed project meant to be a plugin replacement of Mojarra. That won't change just because the reference implementation went from a big company to the Eclipse foundation.
There won't be much of an impact to PrimeFaces and BootsFaces. Both projects will remain compatible to both Mojarra and MyFaces, and to every current version of JSF. There are other JSF libraries such as HighFaces which rely on internal API of Mojarra. But even in this case, there won't be much of a change.
In any case, I don't expect major breaking changes of the JSF API in the near future (apart from purging outdated APIs, such as dropping support of ´ManagedBean`). The strength of the Java world has always been backward compatibility. But again, that's just an educated guess, so take it with a grain of salt.

Minimal portlet environment for developing?

At our company we are using Liferay for portals. My biggest issue with developing for such a huge framework is that the restart takes a lot of time even on a decent PC. We're trying to use hot deploying were it's possible but this sometimes just doesn't work (dependencies require restart, PermGen space errors occurs sometimes and Liferay have to be killed, etc.)
What i'm thinking about is that with most of our portlet's we are not really using any Liferay specific services just the JSR 168 provided things which is a standard. So i'm wondering if there's any minimal portlet environments available for Jetty or Tomcat which we can use for quicker portlet development? Of course i know that once i encounter a Liferay specific service call this is not an option.
I was testing Apache Pluto earlier which is a full blown but still lightweight portlet container however it works differently the way the portlet wars are assembled (web.xml should be modified) and it breaks compatibility in our build environment with Liferay. So it's not an option but i'm looking for something similar.
I've never used life ray portal, but too much played with GateIn portal because IBM Portal is heay, mostly for quick development on JSR-286 i used gatein
Currently used for visioneo.org, very flexible for every kind of use, large community.
Here is short summary
Liferay Currently used for visioneo.org, very flexible for every kind of use, large community.
eXo Platform Awesome look and set of web applications embedded. Last generation portal, very impressive! Based on Gatein
JBoss EPP Based on gatein, and designed to work with JBoss middleware architecture
Gatein A great portlet container. Light weight, easy to use. But unlike Liferay and eXo, it does not ship with collaborative portlets (Forum, Wiki etc.)
uPortal Beautiful portal, though its CSS are very intrusive: some BIRT styles are broken by uPortal's css.
Pluto Not really a portal, Apache Pluto can be used as a development / test platform. Often considered as a reference for portlet specifications.
Jahia Great look however not based on standards: portlets are supported but not really highlighted, a specific module technology is used instead
You might want to try the JRebel integration for Liferay. There's an introduction Webinar available, I don't know if it fully applies to the current implementation (the webinar is a bit aged) but it will give you an idea of the product/project.

Which Faces to choose

I am on the hunt for a extra component library to the core JSF 2.0 library. I need calender-pick, tabbed pane, tree view and other nice components to complete my Java EE 6 - Glassfish 3 project.
But I don't know which additional library to choose; MyFaces, OpenFaces, PrimeFaces, etc. I never tried any of them.
My most important requirement for the additional library I choose, is the footprint in bandwidth and memory it will make. It has the be a lightweight library, because the web-system is used by many users in the developing countries, where bandwidth is far from what we have in US/Europe. Plus it would be nice if there is some RAID editor tool for the web-designers people to use when designing the View/GUI part. Thought of Dreamweaver, but I don't know if it can render the components (JSF core and Faces libs)?
What additional Faces library do recommend me to choose?
RichFaces seems suitable option. You can use JBoss Tools (Free) as WYSIWYG IDE. It is being actively developed and maintained. The new version 4, will work even better with JSF2.
To conserve bandwidth you may need to look at compression techniques on static resources.

Wicket vs GWT - Advice needed

I am developing a Java EE based web application. We have a very limited time to come up with a alpha version and trying to decide on a web framework to use. It has to be something easy to learn but powerful. Standard JSP/Servlet is not an option here due to the time it takes for the development. Appreciate if anyone could advice. Current options are Wicket and GWT. (JSF is also an option)
Wicket is component-based and comes with a bunch of standard components (like pagination, auto-complete, data grids, form handling etc.). If you want to create a standard panel (with the possibility for easy re-use) just create your HTML fragment to use a template (with wicket:id attributes wherever you want to bind dynamic content or sub-components) and a corresponding Java file. Furthermore, you can attach specific CSS and JS files.
In my opinion, Wicket development is good value (functionality) for money. And you get a lot of built-in AJAX functionality without even writing (not reading) any JS. E.g., change the model for a component, attach the component to an AjaxRequestTarget and the panel is automagically repainted via DOM manipulation.
For a quick overview and intro I recommend Wicket in Action by Dashorst & Hillenius. (And don't miss out on other great resources.)
Everything depends on your application. I don't have experience with Wicket, not much with JSF. I have big experience with GWT.
GWT is good if your application has to be mostly dynamic. In GWT you can change everything on the page not even calling the server. GWT is compiled to Javascript. On the other hand, if you have big project, it is quite frustrating if your application in development starts few minutes, because it has a lot of code to compile to Javascript. My opinion: it is not good for big projects.
If you don't need to change your pages so much client-side, I would use JSF2 (or Wicket, if I knew it).
Have a look at this comparison of Wicket and GWT, this may help you decide for yourself:
Wicket and GWT compared with code

Where JSF and struts2 fails/goods

I am begining a web system and can't decide what technology use! Struts2 and JSF (with jboss seam) are a nice choices, but I can't decide which's better. In JSF have some that I don't like, maybe its "paradigm" no action like. And Struts2, the peoples here don't use more.
The system is a map collaborative web site.
I have used both Struts2 and JSF extensively, both are good but I would still recommend JSF. Here is why.
More users. Yes this counts; more people means its easier to get hands on new programmers.
Better tool support. IDEs like IntelliJ have very good JSF support.
Facelets. Lets face it, JSP sucks. You simply should not be allowed to write business logic inside your view code. Keeping your views in XHTML ensures that they are clean and tidy.
Documentation/Books. This might have changed, but when I was in the struts2 camp (2007/2008) the books available was few and of very poor quality. There is a good choice of JSF/Seam books.
JSF2/Seam. JSF2 is very nice (and IntelliJ 9 supports it). New scopes, such as the view scope, are really helpful (fx. if you are having a long running conversation in a flow).
If you are interested in some of the newer features in JSF2 then checkout this blog post. Also you might want to check out Stripes, it is also a very nice server side web framework and finally here is a very thorough (and a little old) comparison of most Java web frameworks.
This a very debatable topic. I think the main advantage of Struts2, compared to JSF, is its simplicity, it is much easier to grasp. Specially for beginners in web programming, or those familiar with "action based" web frameworks (Struts 1, Webworks, Spring MVC, Stripes).
But Lars Tackmann's points are valid (though Struts2 does not force you to use JSP; and indeed it uses FreeMarker internally). It's true that Struts2 has not attained a big user base, the community (both users and developers) does not seem to be very active, and that is a big minus. JSF also has its shortcomings, I've heard (I've not used it)... as every Java web framework, it seems.

Resources