P6Spy is an open source framework for applications to intercept and log database statements. The P6Spy distribution includes P6Log, which intercepts and logs the database statements of any application that uses JDBC. This application is particularly useful for developers to monitor the SQL statements produced by EJB servers, enabling the developer to write code that achieves maximum efficiency on the server. P6Spy is designed to be installed in minutes and requires no code changes.
Log4php is a PHP port of Log4j, the most popular Java logging framework. It supports configuration through XML and properties files (with the same structure as log4j) and custom Configurators. File, RollingFile, DailyFile, Echo, Console, Mail, PEAR::Db, PHP error, Syslog or NT events, and socket appenders are supported. Simple, TTCC, Pattern, Html, and Xml Layouts are supported. It also supports Filters, custom Levels, and Loggers. Internal debugging can be switched on and off. Log4php can be used inside a class or inside a main/sub function.
JAM (JavaGen Ant Modules) allows Java/J2EE developers to create robust, test-driven build environments with just a few lines of Ant script. Builds are simplified with a standard set of commands that you customize for your project. The Maven-to-Ant bridge manages classpaths, dependencies, versioning, and resource downloads automatically. JAM modules support JBoss, Tomcat 5, Resin, Oracle OC4J, JUnit, Cactus, XDoclet, CVS, Axis, Castor, JMX EJBs, and Hibernate.
XMLImportDB provides an easy-to-use interface that allows developers to create a baseline database environment that can be embedded in their source code for use in jUnit test cases. The database environment can be described in a separate file in the same package as the tests, in a hard coded string in the test case classes, or in any other location for which a java.io.Reader can be created at runtime.
Navigation implements a design pattern that allows you to navigate through complex systems by means of "navigation chains". Each node in the navigation chain is represented as its own object, and can have any number of child links attached to it (done through upwards linking; navigations have no knowledge of their children). This means that you can create a navigation chain to a common point in your system, and then attach multiple subchains at that point. The proof-of-concept handles most HTML navigation requirements, and is used by the author to test Web applications.