Version 1.3 of the Java platform saw the introduction of the dynamic proxy facility. Dynamic proxies offer many interesting solutions to Java developers, including a validation scheme that easily decouples validation logic from an application’s core business logic. In this article, Java developer Eric Olson shows you how dynamic proxies can keep your core application code free of validation routines and focused solely on business logic.
Learn how to use Aspects to generate Common Base Events in any legacy Java application, without modifying the original application source. This article shows you how and also provides an example framework that can be used with your applications today.
JUnit lets you test software code units by making assertions that the intended requirements are met, but these assertions are limited to primitive operations. IBM Software Engineer Tony Morris fills the gap by introducing Assertion Extensions for JUnit, which provides a set of complex assertions that execute within the JUnit framework. Follow along as the author shows you how using this new package from alphaWorks can increase the reliability and robustness of your Java™ software.
The Groovlet and GroovyServer Pages (GSP) frameworks are built on the shoulders of the Java™ Servlet API. Unlike Struts and JSF, however, Groovy’s server-side implementation isn’t meant for all occasions. Rather, it’s a simplified alternative for developing server-side applications quickly and easily. Follow along with Groovy advocate Andrew Glover as he introduces these frameworks and demonstrates their use.
This article introduces the StrutsTestCase (STC) framework and explains how to test a sample application using the mock approach and Cactus approach. Author Sunil Patil, a developer at the IBM Software Labs in India, introduces STC, then walks you through setting up an environment for using STC and testing various Struts features. He also demonstrates using both the Cactus and mock approaches from within STC.
A fine line runs between performance tuning and debugging. Several particular categories of bugs, including memory errors and thread race conditions, frequently surface during performance tuning, and this month, our performance tuning experts Jack Shirazi and Kirk Pepperdine show how to spot a particular class of race conditions, called wait leaks.
Software engineers are notoriously obsessed, sometimes excessively, with performance. While sometimes performance is the most important requirement in a software project, as it might be when developing protocol routing software for a high-speed switch, most of the time performance needs to be balanced against other requirements, such as functionality, reliability, maintainability, extensibility, time to market, and other business and engineering considerations.
Transaction processing is a vital part of most real-world J2EE application development. In this article, IBM Solution Architect Mikhail Genkin explains how different enterprise information systems (EIS) can participate in transactions via the J2EE Connector Architecture. Using an example e-commerce application, Mikhail demonstrates the various levels of transaction support provided by different EISs and resource adapters and shows how these factors can affect application design. The article concludes with Mikhail’s tips for choosing the right transaction demarcation strategy and EJB deployment descriptor settings for your enterprise development scenario.
If you’ve ever tried to deliver a Java application as a single Java Archive file (JAR file), you’ve most likely encountered the need to expand supporting JAR files before you build the final archive. As well as being a development nuisance, this can put you in violation of license agreements. In this article, Simon Tuffs introduces you to One-JAR, a tool that uses a custom classloader to dynamically load classes from JAR files inside an executable JAR file.
Apr 15, 2008 - 96 Comments
Aug 6, 2008 - 20 Comments
Mar 7, 2008 - 13 Comments
Oct 8, 2010 - 2 Comments
Oct 6, 2010 - 0 Comment
Sep 22, 2010 - 0 Comment