TomcatExpert

8 Essential Apache Tomcat Development Tools

posted by Stacey Schneider on June 1, 2010 03:08 PM

Tomcatexpert.com contributors are all professional developers, most of whom perform contracts with other companies. Inevitably, when these pros get out in the field, other developers, hoping to learn some secret sauce, ask them about their preferred developer setup. So in the interest of sharing, we've pulled together a list of the top tools our Tomcatexpert.com contributors use in their daily dev environments. 

In the spirit of all code becoming more open, github has done a great job of creating a collaborative, hosted development framework that works for developers. It works for both public and private repositories, and allows developers to fork projects, send pull requests, create issues, and monitor development across several projects.

Favorite feature: Individual development branches allow you to pull from individual developers so you can better collaborate locally on new functionality and isolate integration testing before pushing up to the main trunk. 

Maven is a build system from the Apache project that helps make the build and deploy process easy. Its project object model (POM) provides a level of abstraction around the project that creates a consistent and streamlined build process across many languages. While it doesn't eliminate the need to know about the underlying build mechanisms, Maven does provide a lot of shielding from the details and a great deal of automation.

Favorite feature: For Tomcat, this also includes auto-deploying the WAR file at the end of the build so you can immediately start testing.

The Eclipse IDE is one of the most popular open source projects for creating Enterprise Java tools and frameworks that span the entire software development lifecycle, including modeling, development, deployment tools, reporting, data manipulation, testing and profiling. The power of eclipse comes from the integration of the container and the IDE, allowing users to target an Eclipse project for Tomcat, then do a “one keystroke” deploy and run. Having the ability to then test the application right in Eclipse, or thru a Browser and Tomcat, is a great productivity enhancer. While Eclipse tools and frameworks are primarily focused on building JEE, web services and web applications, the project also provides support for other languages, such as C/C++, PHP, and others.

Favorite feature: Some of the Callisto projects, particularly BIRT and DTP,  provide excellent foundations for data mining and reporting within your Java applications.

The IntelliJ IDE is another popular intelligent code editor that is more specifically tuned for Java, XML and Groovy code. It helps speed up refactorings and code inspections. It also integrates nicely with test frameworks like JUnit and supports both Ant and Maven for build systems. Available as open source under the Apache 2.0 license, developers can try it out for free.

Favorite feature: IntelliJ has exceptional code-completion features, and offers helpful tool tips, and excellent code and dependency analysis features built-in.

For the enterprise user, Apache Subversion is one of the most prevalent version control systems in use. The Tortoise SVN client is an easy to use version control / source control software for Windows that works with source control system . Since it's not an integration for a specific IDE you can use it with whatever development tools you like, and since its open source it is available to use and extend as much as you want. Use a Mac? For Mac/SVN development check out Versions.

Favorite feature: When doing a diff just before a commit and you spot those annoying little changes that shouldn't really be there (extra blank lines) or embarrassing typos in comments so you can just edit your working copy in the diff viewer and clean everything up before the commit.

The jEdit Programmers Text Editor is written in Java so it works across all the major platforms including Mac OS X, OS/2, Unix, VMS and Windows. Straightforward and easy to use, the tool supports 130 languages and a variety of features thanks to a mature set of plugins which stem from its open source community.

Favorite feature: Despite being feature-rich, the tool is also performs extremely well with a snappy UI and is usually very stable.

Java VisualVM is an open source tool from Sun for monitoring and profiling your Java applications. It integrates several troubleshooting features introduced in JDK 5 and 6 as command-line utilities into a nice graphical user interface. It allows you to create and visually view heap dumps as well as profile memory usage, CPU usage and threads. Available as a JDK tool in Sun JDK distributions starting from JDK 6 update 7 and Apple's Java for Mac OS X 10.5 Update 4, the tool has a good track record of staying current with the latest JDK releases.

Favorite feature: Having the ability to monitor heap performance in real-time, take memory snapshots, and debug all in one place.

YourKit Java Profiler is a profiling tool for java developers that helps solve performance and scalability problems early in the development cycle. The recent improvements in memory leak prevention and detection in Tomcat 6 owe a great deal to YourKit - it made the development of these features significantly easier.

Favorite feature: YourKit is a commercial product, but they do give free copies to committers. The support experience for the Tomcat committers has been first rate, particularly the help they provided in tracking down a JVM bug that was causing memory leaks to go unoticed.

Stacey Schneider is focused on helping evangelize how cloud technologies are transforming application development and delivery by managing the blog and social media for Pivotal. Prior to its acquisition, Stacey led marketing and community management for application management software provider Hyperic, now a part of VMware’s management portfolio. Before her work in the cloud, she also held various technical leadership positions at CRM software pioneer Siebel Systems, including work on the Nexus project, which focused on building portable web applications that worked across Java and .NET. Stacey is also the managing principal of SiliconSpark, a consulting agency that has helped over 12 software companies go to market on the web and across the cloud over the past 5 years.

Comments

Add an HTTP sniffer

Hi!
If you're doing web development, you really need an http sniffer. I have used FiddlerTool (Windows only), Charles (50$ shareware, but worth it) and HttpWatch. There are many others, and your choice depends on your requirements. Consider whether you need to sniff SSL, simulate latency/bandwidth constraints, intercept/modify requests etc.

Post new comment

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.