I noticed in the testing section, you aren't mentioning SOAPUI (soapui.org). This has become an invaluable tool in our box at work.
I have used it recently and I agree with you. SoapUI is an excellent and powerful tool to test web services.
Some of the tools I use regularly are: (1) Code quality: Cobertura (highly rated), jdepend, jlint, pmd (2) Build: vizant lets us visualise complex Ant files (3) Framework: Spring
PMD++;
So IDE is not java tool? if so, IDEA should be the 1st runner.
How about apache Maven?
The cajo project (https://cajo.dev.java.net) for network application development, makes my day!
maven!
FindBugs as a code quality tool: http://findbugs.sourceforge.net/
GNU Emacs for everything!!!
Checkstyle : http://checkstyle.sourceforge.net/
Tudu Lists http://tudu.sourceforge.net/ for "getting things done" with a distributed team of developers
Scriptella ETL for database upgrade/initialization and migration. I find this tool useful for in-memory testing also.
You can't have cobertura without having emma. http://emma.sourceforge.net/
JIRA! Much better than Scarb or Bugzilla
Agree. Even though Jira do costs some $$$, it should be evaluated before a company decides which issue tracker to use. It rocks (if you have cash or are coding open source) :)
Vote for Emma (a pity is neglected, lately) and Maven2
Ant + Ivy makes a very good combination for industrial strength builds on which you keep control.
I like PMD, it has got me out of a lot of sloppy habits I'd decended into, but it does have its own funnies! The one I particularly like is the warning about "No constructor…", so you have the IDE fill in a default constructor and PMD issues a warning "Default constructor, the compiler will generate one…". An intersting contradiction that makes me smile.
SchemaSpy is something every developer who has to use a database should have in his arsenal.
Panopticode is an open source project dedicated to simplifying the
collection of software metrics and providing analysis and visualization
tools that enlighten developers and managers.
The initial release supports:
- Treemaps of code coverage
- Treemaps of complexity
- Fully integrated support for Emma, JavaNCSS, and Emma
- Metrics gathered for CheckStyle, Cobertura, Complexian, Simian, and
Subversion
The focus of this release is treemaps. In his article, "Discovering
Business Intelligence Using Treemap Visualizations," Ben Schneiderman
explains that "Treemaps are a space-filling approach to showing
hierarchies in which the rectangular screen space is divided into regions,
and then each region is divided again for each level in the hierarchy." In
the case of Java projects that is the natural project -> package -> file
-> class -> method hierarchy.
You can learn more about Panopticode at http://www.panopticode.org
Structure101 does a great job in helping you keep your architecture in check.
This is another Free HooFoo.Net site. Initially we are going to build up best java resource site. Java™'s growth over the last seven years has been nothing short of phenomenal.
There are many java news, java resources sites, etc on the net. See our java news directory for all java news in one location. Find out java resources directory for your java solutions.
The book outline have an entry named "Testing javascript with JSTester". I think that Firebug must be mentioned too. Although I don't use it yet (I'm not working with Ajax stuff) looks like a very poweful tool. Some references are:
Firebug homepage
http://www.getfirebug.com/
Firebug tutorial (gives you an excellent tour on various features):
http://www.digitalmediaminute.com/screencast/firebug-js/
"An In-depth Look At The Future of JavaScript Debugging With Firebug" article:
http://encytemedia.com/blog/articles/2006/05/12/an-in-depth-look-at-the-future-of-javascript-debugging-with-firebug
Thanks, I'll check it out.
Hmm, well The Fractal Class Composition is a design technique, but it is backed-up by a Java static code analyser: Fractality. I'm not sure whether you're particularly interested in dependency management strategies like this, though; most shops concentrate on mavenesque build and deployment dependency strategies rather than design-level dependencies.
The tools I use everyday:
- el4ant for build (http://el4ant.sourceforge.net), based on ant but easier to use (I find)
- JUnit, DBUnit, abbot (for Swing GUI testing, sorry no web here…)
- Checkstyle (+CheckClipse)
- Eclipse 3.2 + UltraEdit (I don't always launch Eclipse)
- EMMA
- Jetty (for launching server during automatic acceptance testing), much faster than tomcat
- Subversion (+ TortoiseSVN)
- Derby (for DB and acceptance testing)
So far, I am plainly satisfied with all those tools.
I hope to soon set up and use the following tools:
- CruiseControl
- profiler4j (I currently use JMP but am not fully satisfied with it)
The focus in this book appears to be "green field" or new projects - which is great.
Eventually a project releases and membership changes as people move on and are replaced by new members. I've found the following tools useful when arriving at a new project or job.
- Doxygen: Doxygen home page a free, open source, code cross referencer that has added diagramming tools to depict relationships between modules
- Understand for Java:Understand product page not free (about $495) but easier to use than Doxygen. Also supports C/C++. I really like the support provided for observing a project from a global graphical level and then drilling into code and exploring relationships. It's great for doing impact analysis of refactoring and changes.
Yes, decent, useful automatically generated technical reference documentation is invaluable for maintenance work. Thanks for the tip on DOxygen - I'm working on the SchemaSpy chapter at the moment, and DOxygen seems to take a similar approach, but for Java code. I may well include some material on this tool in the book.
JFS.
While we are talking about tools to help manage and control existing applications I would like to mention StatCVS which helps you via CVS log analysis to understand which files are the most important ones because they got the most edits.
Sometimes even a simple sort for filesize is a great tool in finding monster classes.
Absolutely. StatCVS (along with it's cousin StatSVN) are mentioned in the book - they are great tools for keeping taps on how the source code base evolves over time.
Hey, what better way to get the SDLC off to the right start. We use Simuncator to build exact prototypes to spec …not a typical drawing tool, this is for developers where you can plug in front end code (HTML, CSS, Javascript) and back end code (Beanshell, Velocity) ..all done online with a browser so quick to share via a URL, and with a free acount … http://www.simunication.com
How about Cenqua's tools (Fisheye, Clover, Crucible)? Though they are not open source, they are very nice.
For those coding Hibernate in Eclipse, they have got
to try out Hiberante plugin as described from
http://www.hibernate.org/Modules/HibernateToolsViewlets
- HQL Editor
http://www.hibernate.org/hib_docs/tools/viewlets/edit_and_run_hql.htm
prototyping HQL in HQL editor, see the generated SQL and
actually executing it to see if it works without coding Java
- Criteria Query Editor
good for prototyping Criteria Query. Same thing as above.
http://www.hibernate.org/hib_docs/tools/viewlets/edit_and_run_criteria.htm
- For HQL/JPA syntax checking and code completion
http://www.hibernate.org/hib_docs/tools/viewlets/java_hql_editing_and_validation.htm
Hi,
to monitor quality statistics for project, i'm using :
- http://mojo.codehaus.org/dashboard-maven-plugin/: a Maven 2 plugin written by me for a single project (with or without multi-modules
- http://sonar.hortis.ch/ : a Maven 2 plugin + a Jetty application to monitor all projects for a company
Cruisecontrol could be an interesting topic for the book.
I've successfully used Scriptella to migrate from MySQL to DB2 and PostgreSQL. It works fine.
We started writing functional tests using HttpUnit and later migrated to jWebUnit. I believe these are worth mentioning in your book.
thanks,
moc.siralcca|eejrenab.hbaruas#moc.siralcca|eejrenab.hbaruas
We are using jTrac to track issues and task at Acclaris (www.acclaris.com). We have offices in Tampa, Kansas City in USA, Kolkata, Vizag and Siliguri in India. With jTrac it is very easy to setup multiple workspaces and define your own customized workflow and custom fields for each workspace. It deploys as a war file.
moc.siralcca|eejrenab.hbaruas#moc.siralcca|eejrenab.hbaruas
We use Scriptella ETL to import test data in CSV format. Scriptella is also used to initialize an in-memory database for jUnit tests.
I think Cobertura is Test Coverage instead of Testing
StackTrace from http://www.adaptj.com for monitoring and production mode debugging.
We used Scriptella to move select data from a Microsoft SQL Server DB to a MySQL DB. It has worked great and was able to handle many complex use cases. It saved us a lot of time. The support from the author is great. I am very impressed.
I find Findbugs really useful ++++




