Java developer currently in investment banking area. Formely in mobile micropayments.
A great JAX-WS and JAX-RS implementation. It is quite complex and quite heavy (uses Spring inside). However it has several pros:
- setting a class as WS or REST service is very easy
- generated WSDL and WADL documents and can crate stubs from WSDL and WADL
- supports XML and JSON out-of-the-box for REST
- custom filters, plugins and security options
For me it wins with Axis for WS and with RESTEasy for REST services.
I use Jetty for development as Maven plugin and it is great. I see it rather as embeded server than a standalone server. Documentation is scattered and hard to find. Much is on eclipse project site but google still links to codehaus and mortbay.
One of the most commonly used set of general tools and utils. Some parts of commons library is a bit outdated while other parts are the best. My strategy for new projects is to add Guava and JodaTime and if I need anything else (e.g. simple HTTP Client) I look it up in Apache Commons.
For me Ant prooves that you should move to Maven or Gradle. Dependency management is a pain (sometime Ivy can help) and you can easily ent-up with "spaghetti network" of dependant projects, subprojects, tasks etc. Build scripts in Ant-based projects that were growing for several years are often unreadable and unmaintainable. You must be very neat to keep Ant build scripts simple.
Eclipse is one of the most commonly used IDEs. It is a platform with loads of plugins. Be sure that you'll spent a lot of time configuring it. There is no way to use it effectively without understaing lots of setting options. Nothing is simple. However it is worth learning. As a developer you'd probably use it 8 hours a day so spending several hours on customisation might pay off. One yo've learned it you'd be able to create software very quickly and effectively. For me it is the best free IDE, but definetlny not the simplest. It is much better now with Eclipse Market.
Very easy to use. Works great with Mockito. Of course when you need to use Powermock for testing (e.g. constructor mocking or static initializer suppresion) you should rethink your design because it is probably bad. However Powermock is still a lifesaver for testing legacy code.
ICEfaces in a free version is rather poor. Actually "new" ICEfaces components is copy-paste from PrimeFaces 2 (while there is Prime Faces 3). So there is nothing special if you're not planning to buy commercial version and commercial components. Instead of using free version of ICEfaces, use PrimeFaces 3.
Vaadin is a good web framework. You don't need to think about HTML and JS. You build your apps like in Swing. However there are several drawbacks.
But still Vaadin is one of the best component-based web framework along with ZK and GWT.
NetBeans is a good IDE. It has download-and-start capabilities. It just opens Maven projects just like native (no plugins needed or import) and Maven integration is much better than in Eclipse. It has built-in content assist for beans in JSF both for CDI and Spring (there is no way to have content assist for Spring beans in Eclipse). One day it was the best IDE for PHP projects too. It is a good choice if you just want ot download an IDE, run it and code. However advanced refacoring utils etc. are quite poor comparing to Eclipse or InteliJ.
Very easy, intuitive and feature-full. I use it along with Powermock (when needed) and Fest assert and it gives me a complete unit testing workshop.
For me PrimeFaces is a great component set for JSF 2.0. I's fresh and has no JSF 1.0 history. It has everything I need to build enterprise applications. For me it is a great compromise between full component-style framework like Vaadin and lightweigh MVC-like web frameworks. I've bult several applications with PrimeFaces and I am sure I'd never built it so fast with any other framework.
I rather don't like RichFaces. I found PrimeFaces much more fresh and intuitive. A4J seems to duplicatre built-in AJAX capabilities of JSF 2.0. It's of course a stable, production use JSF component set.
A great library for all date and time operations. A must-have for each project when any date operations are needed. Great intuitive, fluid API. Some libs supports Joda DateTime objects instead java.util.Date (e.g. mappers for JPA).
A basic tool for every Java developer. Interchangable with TestNG, however I find TEstNG slightly better. Supported by all major IDEs. Some additional tools needs to be added to make it effective to use, for me it is: Mockito, PowerMock and FestAssert.