 |
 |
 |
 |
 |
 |
Demystifying Extreme Programming: "XP distilled" revisited, Part 1
So-called agile development approaches, coupled with the power and flexibility of object-oriented languages like Java, just might solve your software development problems. The most popular agile approach is called Extreme Programming, or XP, but many people don't really know what it is. Using XP on your software development projects can increase your chances of success dramatically. This new column by Roy Miller will strip away the rumors and the hype to help you understand XP and explain why it is so important.
|
 |
Articles |
 |
13 Aug 2002 |
|
| |
Demystifying Extreme Programming: "XP distilled" revisited, Part 2
In this month's installment of Demystifying Extreme Programming, Roy Miller explains what it means to be a programmer on an XP team and how the six programmer practices specifically fit into the picture. While all 19 practices are important, the programmer practices are vital for a team making software.
|
 |
Articles |
 |
10 Sep 2002 |
|
| |
Demystifying Extreme Programming: "XP distilled" revisited, Part 3
Roy Miller completes his review of XP practices by exploring the customer practices and management practices. The customer practices address the issues of determining which features should be in each release. The management practices help management give business direction to the entire team and keep them focused on the problem at hand. With the programmer practices and joint practices discussed in previous articles, you'll now have the complete picture of XP practices.
|
 |
Articles |
 |
08 Oct 2002 |
|
| |
The Spring series, Part 4: 1-2-3 messaging with Spring JMS
Quick-step through the basics of JMS messaging, with the Spring JMS framework and IBM WebSphere MQ 5.3.
|
 |
Articles |
 |
04 Oct 2005 |
|
| |
2D animation with image-based paths
Why code your animated sequences when you can draw what you want and let a program do the rest? In this article, Barry Feigenbaum and Tom Brunet show you how to combine lossless images, Swing technology, and the authors' own Java-based animation engine to generate movement sequences for fixed objects in 2D animation.
|
 |
Articles |
 |
09 Jan 2004 |
|
| |
Crossing borders: A Rails case study
Ruby on Rails development and Java development differ in fundamental ways. In this final installment of Crossing borders, Bruce Tate outlines the major differences he's discovered by using Rails to develop a complex, scalable Web site from the ground up.
|
 |
Articles |
 |
10 Apr 2007 |
|
| |
Java Modeling: A UML workbook, Part 1
In this first installment of his new column, Granville Miller introduces one of the building blocks of the Unified Modeling Language: sequence diagramming. Sequence diagrams are used throughout the design process to demonstrate the internal interactions between actors and objects as a system executes over time. Follow along with Granville as he creates one of these diagrams, using a loan processing application as his example.
|
 |
Articles |
 |
08 May 2001 |
|
| |
Java Modeling: A UML workbook, Part 2
Granville continues his discussion of the Unified Modeling Language and sequence diagramming. He examines the role of conditional logic in sequence diagramming and discusses why you might choose to include or exclude conditions and loops from a diagram. Granville also describes the two forms of sequence diagram -- generic and instance -- and explains their respective applications in the development cycle.
|
 |
Articles |
 |
05 Jun 2001 |
|
| |
Java modeling: A UML workbook, Part 4
Granville Miller re-opens the UML workbook for an in-depth discussion of one of the fundamental components of the use case diagram: the actor. The actor is not only essential in UML modeling, it can also play an important role in creating Java applications and may even suggest patterns in J2EE application design. Follow along as Granville uses sequence and class diagrams to explain the role of the actor in use case diagramming and Java application development.
|
 |
Articles |
 |
04 Jun 2002 |
|
| |
Java theory and practice: A brief history of garbage collection
Garbage collection has been an integral part of many programming languages and has been in use since the early 1960s. In this article, Brian Goetz describes the most common techniques for garbage collection.
|
 |
Articles |
 |
28 Oct 2003 |
|
| |
Migrating to Eclipse: A developer's guide to evaluating Eclipse vs. IntelliJ IDEA
New features in the latest release of Eclipse -- the free and increasingly popular Java integrated development environment -- make it competitive not only with other free IDEs, but also with proprietary, commercial offerings such as IntelliJ IDEA. This article briefly compares the features, ease of use, and stability of Eclipse and IDEA, and then provides a guide for programmers who are considering switching or who simply want to try out Eclipse to see what all the fuss is about.
|
 |
Articles |
 |
08 Sep 2004 |
|
| |
Migrating to Eclipse: A developer's guide to evaluating Eclipse vs. JBuilder
Many programmers are moving to Eclipse, the popular, open source development environment. For programmers familiar with Borland's free JBuilder X Foundation edition, this article starts with a brief comparison of both IDEs' features, ease of use, and stability, and then demonstrates essential tasks in Eclipse -- and shows how they differ from JBuilder -- so you can decide if Eclipse is right for you.
|
 |
Articles |
 |
08 Sep 2004 |
|
| |
Migrating to Eclipse: A developer's guide to evaluating Eclipse vs. Netbeans
By now, most Java programmers have heard of Eclipse, the extensible open source development platform that is rapidly becoming the most popular IDE for Java programming. If you are considering a move to Eclipse and are currently programming with Netbeans, this article is for you. Starting with a brief comparison of both IDEs' features, ease of use, and stability, this article then covers the essential Eclipse features -- and how they differ from those in Netbeans -- so you can decide if Eclipse is right for you.
|
 |
Articles |
 |
08 Sep 2004 |
|
| |
SWT and JFace, Part 2: A gentle introduction
Part 2 of the SWT and JFace series expands on what you've learned about creating simple Standard Widget Toolkit (SWT) applications using Java technology, Eclipse, and the SWT and JFace libraries. This installment shows you how to use combo, list, table, and tree controls, as well as form layouts and reusable helper methods.
|
 |
Articles |
 |
19 Jul 2005 |
|
| |
XML and Java technology: A return to basics
Brett McLaughlin revisits some XML basics, from document structure to the age-old attributes versus elements issue. You'll relearn how to optimize your XML and ensure it's in tip-top shape.
|
 |
Articles |
 |
09 Oct 2007 |
|
| |
Apache SOAP type mapping, Part 2: A serialization cookbook
Gavin Bong shows you how to write your own (de)serializers when none from the SOAP toolkit suit your needs.
|
 |
Articles |
 |
01 Mar 2002 |
|
| |
A stepped approach to J2EE testing with SDAO
The Data Access Object pattern has become a standard part of the J2EE developer's arsenal. Now, simulated data access objects brings together the best of DAO, mock objects, and layered testing. Enterprise Java developer (and resident SDAO guru) Kyle Brown uses code samples and discussion to guide you through the concepts and everyday use of SDAO.
|
 |
Articles |
 |
04 Mar 2003 |
|
| |
A taste of "Bitter Java"
Design patterns are important to software development but they solve only half the puzzle. Antipatterns -- which describe a commonly occurring solution to a problem that generates decidedly negative consequences -- seek to address the other half by showing Java programmers how to avoid common Java traps. In this article, antipatterns expert and noted author Bruce Tate demonstrates how and why antipatterns are a necessary and complementary companion to design patterns.
|
 |
Articles |
 |
01 Mar 2002 |
|
| |
Securing Systems: A three-pronged solution for identifying users
The problem of system security starts with discovering the identity of the user on the other end of the communications link. In this article, Joseph Sinclair discusses three familiar approaches for identifying users, highlights their strengths and weaknesses (alone and in combinations), and provides some examples of each.
|
 |
Articles |
 |
01 Jun 2001 |
|
| |
AOP@Work: AOP and metadata: A perfect match, Part 1
In this first half of a two-part article, author Ramnivas Laddad provides a conceptual overview of the new Java metadata facility and shows where AOP could most benefit from the addition of metadata annotations. He then walks you through a five-part design refactoring, starting with a metadata-free AOP implementation and concluding with one that combines the Participant design pattern with annotator-supplier aspects.
|
 |
Articles |
 |
08 Mar 2005 |
|
| |
AOP@Work: AOP and metadata: A perfect match, Part 2
In this second half of his two-part article on combining metadata and AOP, author and AOP practitioner Ramnivas Laddad suggests a novel way to conceptualize metadata as a signature in a multidimensional concern space. He also introduces a series of guidelines for effectively combining metadata and AOP and discusses the impact of metadata annotations on the adoption of aspect-oriented programming.
|
 |
Articles |
 |
12 Apr 2005 |
|
| |
AOP banishes the tight-coupling blues
Many Java developers have embraced the non-intrusive style and flexibility of aspect-oriented programming (AOP), particularly when it comes to building highly decoupled and extensible enterprise systems. In this article, you'll see for yourself how one of AOP's functional design concepts -- static crosscutting -- can turn what might be a tangled mass of tightly coupled code into a powerful, extensible enterprise application.
|
 |
Articles |
 |
18 Feb 2004 |
|
| |
AOP@Work: AOP myths and realities
What's keeping you from trying out AOP? Whether you
think it's only good for low-level functions like tracing and logging,
worry that it'll get in the way of unit testing, or would simply rather
stick with the object-oriented alternatives, Ramnivas Laddad gives you
good reason to reconsider. Follow along as this popular author and
speaker digs beneath the surface of 15 myths that hinder the adoption of
AOP.
|
 |
Articles |
 |
14 Feb 2006 |
|
| |
AOP@Work: AOP tools comparison, Part 1
AOP is a technology whose time has come, but how do you choose the right tool for your projects? In this first article in the new AOP@Work series, aspect-oriented programming expert Mik Kersten compares the four leading AOP tools (AspectJ, AspectWerkz, JBoss AOP, and Spring AOP) to help you decide which one is for you. In Part 1 of this two-part discussion, the author focuses on the tools' language mechanisms and the trade-offs imposed by the different approaches.
|
 |
Articles |
 |
08 Feb 2005 |
|
| |
AOP@Work: AOP tools comparison, Part 2
In this second half of his two-part AOP tools comparison, aspect-oriented programming expert Mik Kersten focuses on the tools' integration with the development environment and build process, including a point-by-point comparison of the tools' IDE features. To help you make your final decision, the author concludes with a look at what's to come for these rapidly evolving tools, and provides a summary of each one's strengths and weaknesses. Note that this article addresses the implications of the recently announced merging of the AspectJ and AspectWerkz projects.
|
 |
Articles |
 |
08 Feb 2005 |
|
| |
Classworking toolkit: ASM classworking
In this edition of Classworking toolkit, consultant Dennis Sosnoski compares the ASM bytecode manipulation framework to the Byte Code Engineering Library (BCEL) and Javassist frameworks he previously discussed in his Java programming dynamics series. ASM claims to be small and fast -- but how does it match up with the other frameworks? Dennis uses an example from his earlier series to evaluate both usability and performance.
|
 |
Articles |
 |
12 May 2005 |
|
| |
Taming Tiger: AWT grows up
The Abstract Window Toolkit is the basis of the Swing component set. Follow along with John Zukowski as he discusses the aspects of AWT that changed with the 5.0 release of the Java 2 platform. These include PointerInfo and MouseInfo for recovering pointer position and z-order management for screens with overlaid components.
|
 |
Articles |
 |
24 May 2005 |
|
| |
Magic with Merlin: AWT roundup
Merlin makes several additions to the AWT library, including the ability to find the space used for screen adornments like the desktop toolbar, capitalizing Color constants, mouse wheel support, and the ability to differentiate between mouse and keyboard keys and locations better. Follow along with John Zukowski as he describes these changes and provides the nitty-gritty details to get you started fast.
|
 |
Articles |
 |
01 Nov 2001 |
|
| |
XForms tip: Accepting XForms data in Java
Much has been made about the ability of XForms to provide interactivity, and to submit information in XML. But none of that will do you any good unless you have a way to analyze the data once you send it to the server. This tip shows you how to access the submitted XML data using a Java servlet.
|
 |
Articles |
 |
03 Oct 2006 |
|
| |
Access USB devices from Java applications
Java technology's platform independence makes the process of writing Java applications that interact with hardware quite tricky. In this article, research scientist Qingye Jiang examines two projects that are making the process easier by providing APIs through which Java applications can make use of USB devices.
|
 |
Articles |
 |
02 Sep 2003 |
|
| |
Securing Java applications with Acegi, Part 3: Access control for Java objects
Bilal Siddiqui continues his introduction to Acegi Security
System by showing you how to secure access to instances of your Java classes. Learn
why you need to secure access to your Java classes, how Spring creates and secures
instances of your Java classes, and how to configure Acegi to incorporate class
security in your Java applications.
|
 |
Articles |
 |
25 Sep 2007 |
|
| |
Access z/OS batch jobs from Java
Java (TM) can provide a simple way to submit z/OS(R) batch jobs to run -- but that is just the beginning. You can also use Java, from any platform, to check on the status of your z/OS batch jobs. This article is a follow-on to developerWorks article, "Submit batch jobs from Java on z/OS."
|
 |
Articles |
 |
19 Dec 2006 |
|
| |
Accessing IBM Tivoli Directory Server through Handheld Devices
This article focuses on creating generic client API's using KSOAP (i.e. SOAP implementation on handheld devices) which are portable with the IBM Tivoli DSML server using which the IBM Tivoli Directory Server can be accessed.
|
 |
Articles |
 |
20 May 2005 |
|
| |
A JSTL primer, Part 4: Accessing SQL and XML content
A hallmark of Web-based applications is the integration of multiple subsystems. Two of the most common mechanisms for exchanging data between such subsystems are SQL and XML. In this article, Mark Kolb concludes his coverage of JSTL with an introduction to the sql and xml libraries for accessing database and XML content in JSP pages.
|
 |
Articles |
 |
20 May 2003 |
|
| |
Adapt Web applications to work with multiple browsers
Web pages perform differently on different browsers or on browsers with different settings. Learn some useful tips to help you make your Web applications more adaptable to all environments.
|
 |
Articles |
 |
21 Nov 2006 |
|
| |
Add XML parsing to your J2ME applications
More and more enterprise and Java technology projects are making use of XML as a medium to store data in a portable fashion. But due to the increased processing power demanded by XML parsers, J2ME applications have largely been left out of this trend. Now, however, small-footprint XML parsers for the Java language are emerging that will allow MIDP programmers to take advantage of the power of XML. Soma Ghosh illustrates their potential with a sample application.
|
 |
Articles |
 |
16 Sep 2003 |
|
| |
Add a Bluetooth text protocol to J2ME apps
With the continuing boom of mobile devices in the communications and gaming industries, as well as the software trend toward ad hoc and peer-to-peer networks, the ability to target heterogeneous devices for networked applications (whether gaming, productivity, or information sharing) is a big advantage. In this article, learn how to use and integrate the Bluetooth API (which was introduced into Java 2 Platform, Micro Edition [J2ME] through JSR 82) into your own applications. Here, you'll find a complete Bluetooth device discovery, pairing, and messaging implementation.
|
 |
Articles |
 |
21 Mar 2006 |
|
| |
Tackle WS-Security specification interoperability challenges, Part 4: Add a J2EE 1.3 provider endpoint to a J2EE 1.4 Web service
The first few installments in this article series offered workarounds for
Web Services Security (WS-Security) specification-level interoperability
problems--specifically, incompatibilities between different versions of WS-Security
preventing a Java 2 Platform, Enterprise Edition (J2EE) 1.3 client from
communicating with a J2EE 1.4 Web services provider when WS-Security is required.
Now find out how adding a new Web service provider endpoint can overcome this
interoperability problem.
|
 |
Articles |
 |
13 Sep 2007 |
|
| |
Annotations in Tiger, Part 1: Add metadata to Java code
Annotations, a new feature in J2SE 5.0 (Tiger), brings a much-needed metadata facility to the core Java language. In this first of a two-part series, author Brett McLaughlin explains why metadata is so useful, introduces you to annotations in the Java language, and delves into Tiger's built-in annotations. Part 2 covers custom annotations.
|
 |
Articles |
 |
02 Sep 2004 |
|
| |
Adding Security to your Web Services Digital Signatures, Part 2
This demo shows how to expose a simple Java class as a Web service that requires digitally signed requests. You'll see how a generated client is tested and how the signed SOAP request is examined. And it's all done without writing one line of code.
|
 |
Demos |
 |
11 Jul 2005 |
|
| |
Using the Eclipse GUI outside the Eclipse Workbench, Part 3: Adding actions, menus, and toolbars
In this third and final article in this "Using the Eclipse GUI outside the
Eclipse Workbench" series, A.O. Van Emmenis completes the file explorer example by
adding actions, menu bars, pop-up menus, and toolbars. He shows how to set menu
item properties, how to reuse actions in menus and toolbars, and how to make
actions context-sensitive by listening to events from viewers. The example actions
use utilities to launch programs and access the system clipboard.
|
 |
Articles |
 |
04 Mar 2003 |
|
| |
Advanced DAO programming
J2EE developers use the Data Access Object (DAO) design pattern to separate low-level data access logic from high-level business logic. Implementing the DAO pattern involves more than just writing data access code. In this article, Java developer Sean C. Sullivan discusses three often overlooked aspects of DAO programming: transaction demarcation, exception handling, and logging.
|
 |
Articles |
 |
07 Oct 2003 |
|
| |
Advanced Facelets programming
If you think internationalization is hard, think again! In this article, Richard Hightower follows up his immensely popular introduction to Facelets with more advanced ways to bridge the gap between Java Server Faces (JSF) and EL. Follow along as Rick shows you how to internationalize your Web pages easily, add custom logic tags to a composition component, and incorporate metaprogramming into your Facelets development.
|
 |
Articles |
 |
09 May 2006 |
|
| |
Advanced Java view features in IBM Lotus Notes 8.5
Java™ views were introduced in the IBM® Lotus® Notes® client in release 8.0. Many new features were implemented through the Java views to modernize the Lotus Notes interface. After you have converted your application to use the Java view, you can follow the steps outlined in this article to take advantage of the new view features offered, such as threads, narrow mode, business cards, split action buttons, and custom context menus. This article presumes that you have an installed version of Lotus Notes 8.5, IBM Lotus Domino Designer 8.5, and the Lotus Notes 8.5 composite application editor. You should also be familiar with working in Lotus Domino® Designer.
|
 |
Articles |
 |
29 Jun 2009 |
|
| |
Advanced Synth
Take an in-depth look at the Synth look and feel, the newest addition to Swing introduced in Java 5.0. Synth lets developers rapidly create and deploy custom looks for an application by introducing the concept of a "skin" to Java UI programming. Software Engineer Michael Abernethy takes you through Synth concepts step-by-step to build an application with a Synth look from scratch. After reading this article, you should be able to create professional-looking UIs in no time.
|
 |
Articles |
 |
01 Feb 2005 |
|
| |
Advanced XML validation
XSLT stylesheets are designed to transform XML documents. Coupled with Java extensions, stylesheets can also be a powerful complement to XML Schema when grammar-based validation cannot cover all the constraints required. In this article, Peter Heneback presents the case for validating documents using XSLT with Java extensions and provides practical guidance and code samples.
|
 |
Articles |
 |
09 May 2006 |
|
| |
Advanced XQuery: Creating custom functions
XQuery functions enable you to define common expressions once and reuse them frequently. The end result is tighter, more robust code that is easier to maintain. Using XQuery API for Java (XQJ), this tutorial demonstrates an implementation of XQuery functions within a Java environment.
|
 |
Tutorials |
 |
11 Nov 2008 |
|
| |
Advanced database operations with JDBC
This tutorial introduces several advanced database operations, including stored procedures and advanced datatypes, that can be performed by a Java application using JDBC.
|
 |
Tutorials |
 |
19 Nov 2001 |
|
| |
Mastering Ajax, Part 3: Advanced requests and responses in Ajax
For many Web developers, making simple requests and receiving simple responses is all they'll ever need, but for developers who want to master Ajax, a complete understanding of HTTP status codes, ready states, and the XMLHttpRequest object is required. In this article, Brett McLaughlin will show you the different status codes and demonstrate how browsers handle each and he will showcase the lesser-used HTTP requests that you can make with Ajax.
|
 |
Articles |
 |
14 Feb 2006 |
|
| |
In pursuit of code quality: Adventures in behavior-driven development
Test-driven development (TDD) is a great idea in practice, but some developers just
can't get over the conceptual leap associated with that word test. In this
article, learn about a more natural way to integrate the momentum of TDD
into your programming practice. Get started with behavior-driven development (BDD) (via
JBehave) and see for yourself what happens when you focus on program behaviors, rather
than outcomes.
|
 |
Articles |
 |
18 Sep 2007 |
|
| |
Secrets of lightweight development success, Part 5: Agile development at conservative companies
Lightweight development works best with a lightweight process, but it can be tough to get a conservative company to adopt agile methodologies. Learn how you can propose and promote lightweight processes in your organization.
|
 |
Articles |
 |
30 Aug 2005 |
|
| |
Ajax and REST, Part 1
The more that server-side Web applications become immersive by following rich-application models and delivering personalized content, the more their architectures violate Representational State Transfer (REST), the Web's architectural style. These violations can decrease application scalability and increase system complexity. By achieving harmony with REST, Ajax architecture lets immersive Web applications eliminate these negative effects and enjoy REST's desirable properties.
|
 |
Articles |
 |
02 Oct 2006 |
|
| |
Ajax and REST, Part 2
Ajax has begun to explode in popularity. Old Web frameworks are retrofitting themselves to support Ajax, new pure-Ajax frameworks are under development, and many organizations are considering Ajax adoption or are already building Ajax applications. But for all the excitement, relatively few organizations have deployed Ajax applications successfully. This article, the second in a two-part series, will help you decide if you should use Ajax in real IT applications, and it aims to improve your chances of success with Ajax development.
|
 |
Articles |
 |
14 Nov 2006 |
|
| |
Seamless JSF, Part 3: Ajax for JSF
JSF's component-based methodology encourages abstraction,
but most Ajax implementations interfere with it by exposing the
underlying HTTP exchange. In this final article in the Seamless JSF series, Dan Allen shows you how to use the
Seam Remoting API and Ajax4jsf components to communicate with managed beans on
the server as if they were local to the browser. You'll learn how surprisingly
easy it is to leverage Ajax as a natural improvement on JSF's event-driven
architecture and how to do so without compromising the JSF component model.
|
 |
Articles |
 |
12 Jun 2007 |
|
| |
Crossing borders: Ajax on Rails
The hype for Ajax, a technique for making Web pages more interactive, is in overdrive. The Ruby on Rails framework is also flourishing, partly on the strength of its excellent Ajax integration. Find out what makes Ajax on Rails such a powerful combination.
|
 |
Articles |
 |
05 Dec 2006 |
|
| |
Ajax for Java developers: Ajax with Direct Web Remoting
Exciting as it is, adding Ajax functionality to your
applications can mean a lot of hard work. In this third article in the
Ajax for Java developers series, Philip McCarthy shows you how to
use Direct Web Remoting (DWR) to expose JavaBeans methods directly to your
JavaScript code and automate the heavy-lifting of Ajax.
|
 |
Articles |
 |
08 Nov 2005 |
|
| |
All about JAXP, Part 1
The Java API for XML Processing (JAXP) lets you validate, parse, and transform XML using several different APIs. JAXP provides both ease of use and vendor neutrality. This article, the first of a two-part series introducing JAXP, shows you how to take advantage of the API's parsing and validation features. Part 2 will cover XSL transformations using JAXP.
|
 |
Articles |
 |
17 May 2005 |
|
| |
All about JAXP, Part 2
Part 1 of this two-part series introduced the Java API for XML Processing (JAXP) and its parsing and validation features. JAXP also offers Java programmers the ability to transform XML documents using Extensible Stylesheet Language (XSL). Through both direct programmatic access and XSL templating, JAXP makes conversion from one XML format to another an easy task. This article shows you how to use JAXP to transform XML documents and how to cache XSL stylesheets for the best performance possible.
|
 |
Articles |
 |
31 May 2005 |
|
| |
alt.lang.jre: All hail King NetRexx!
NetRexx is an extension of the popular IBM mainframe operating system scripting language REXX. In this sixth installment in the alt.lang.jre series, language enthusiast Barry Feigenbaum introduces you to one of the most stable and reliable scripting alternatives for the Java platform.
|
 |
Articles |
 |
07 Dec 2004 |
|
| |
Boost application development with Amazon Web Services, Part
3: Amazon Simple Queue Service
Using the Amazon Simple Queue Service (SQS), you can build
distributed applications that communicate using a message-based paradigm. Cell
phones and other Java Platform, Micro Edition (Java ME) devices can use
Amazon SQS easily with simple HTTP requests. In this tutorial, the third in a
series on creating applications with Amazon Web Services (AWS), discover how to
use SQS from a Java ME device.
|
 |
Tutorials |
 |
12 Jul 2007 |
|
| |
An SCJP 1.4 certification primer
The Sun Certified Java Programmer (SCJP) examination has recently been updated for J2SE 1.4, which means you'll have to jump through some new hoops to get a passing score. In this primer to SCJP certification, Pradeep Chopra, cofounder of Whizlabs Software, outlines some of the most important changes to the SCJP 1.4 exam, suggests several ways to prepare for it, and offers some sample questions to get you started.
|
 |
Articles |
 |
03 Jun 2003 |
|
| |
Seamless JSF, Part 1: An application framework tailor-made for JSF
JavaServer Faces (JSF) is the first standardized user
interface framework for Java Web applications. Seam is a powerful
application framework that extends JSF. Discover the strong chemistry that these two frameworks share in this
first article of a new three-part series. Dan Allen introduces Seam's
enhancements to the JSF life cycle, including contextual state management,
RESTful URLs, Ajax remoting, proper exception handling, and convention over
configuration.
|
 |
Articles |
 |
17 Apr 2007 |
|
| |
An early look at JUnit 4
JUnit is the de facto standard unit testing library for the Java language. JUnit 4 is the first significant release of this library in almost three years. It promises to simplify testing by exploiting Java 5's annotation feature to identify tests rather than relying on subclassing, reflection, and naming conventions. In this article, obsessive code tester Elliotte Harold takes JUnit 4 out for a spin and details how to use the new framework in your own work. Note that this article assumes prior experience with JUnit.
|
 |
Articles |
 |
13 Sep 2005 |
|
| |
An easy JDBC wrapper
JDBC provides a powerful, comprehensive interface for accessing databases from Java programs. For smaller projects, JDBC can seem overwhelming, driving some programmers to avoid using a database altogether. This article describes a simple wrapper library that makes basic database usage a snap. You'll find yourself wanting to use JDBC for every program you write.
|
 |
Articles |
 |
01 Aug 2001 |
|
| |
An introduction to AOP
Follow along with Sing Li as he guides you through the basic concepts of aspect-oriented programming (AOP). AOP tools give you a way to separate the code for essential crosscutting concerns, such as logging and security, from your Java programs' core application logic cleanly. AOP can make your code more readable, less error-prone, and easier to maintain.
|
 |
Tutorials |
 |
30 Aug 2005 |
|
| |
Working with James, Part 1: An introduction to Apache's James enterprise e-mail server
This article is the first in a two-part series on the Java Apache Mail Enterprise Server, also known as James. It lays a foundation for understanding James and for developing server-side e-mail applications. The article provides a high-level overview, briefly touches on the Apache group's design objectives, and describes how to install and configure a workable development environment. You can also take a brief tour of the features supported by James.
|
 |
Articles |
 |
10 Jun 2003 |
|
| |
An introduction to RichFaces
Today's clients want and have begun to expect desktop features in
browser-based applications. RichFaces is one of a new breed of user interface
component suites available for Java Server Faces (JSF). Among other benefits,
RichFaces provides built-in JavaScript and Ajax capabilities to meet those
expectations. Joe Sam Shirah adds some new tools to your kit based on experiences
with a recent field project, including general setup for using RichFaces with
Facelets, and several specific component examples
|
 |
Articles |
 |
25 Mar 2008 |
|
| |
StAX'ing up XML, Part 1: An introduction to Streaming API for XML (StAX)
The Streaming API for XML (StAX) is the latest standard for processing XML in the Java (TM) language. As a stream-oriented approach, it often proves a better alternative to other methods, such as DOM and SAX, both in terms of performance and usability. This article, the first in a three part series, provides an overview of StAX and describes its cursor-based API for processing XML.
|
 |
Articles |
 |
29 Nov 2006 |
|
| |
Demystifying class loading problems, Part 1: An introduction to class loading and debugging tools
The class loading component is fundamental to the Java virtual machine. Though developers generally have a good grasp of the basics of class loading, when a problem occurs, they may have a hard time diagnosing and determining a solution. In this four-part article series, Lakshmi Shankar and Simon Burns discuss the various class loading problems that you may encounter in your Java development and illustrate why they occur and how to resolve them. The insights they provide should help you understand and resolve common Java exceptions, such as NoClassDefFoundError and ClassNotFoundException, in addition to more challenging problems, such as class loader constraint violations and deadlocks. In this first article, they describe in detail how Java class loading works and discuss the tools available in the JVM to help you diagnose class loading problems.
|
 |
Articles |
 |
29 Nov 2005 |
|
| |
An introduction to object prevalence
Persisting state and data has always been a problem with object-oriented software. Over the years, developers have stored object data in many ways, including relational databases, flat files,and XML. None of these approaches really managed to keep the software purely object-oriented. The Prevayler team is changing this with the object prevalence concept. This article introduces object prevalence.
|
 |
Articles |
 |
01 Aug 2002 |
|
| |
An introduction to the Eclipse Web Tools Platform V1.0
The Eclipse Web Tools Platform (WTP) extends the Eclipse IDE to enable easy development of Java 2 Enterprise Edition (J2EE)-based applications. Learn how to install WTP, configure it for use with an application server, and use the tools it provides to create a J2EE application.
|
 |
Tutorials |
 |
21 Feb 2006 |
|
| |
Comment lines by Kevin Sutter: An update on Java Persistence API 2.0
As the JPA Expert Group (JSR-317) nears completion of the JPA 2.0
specification, this article introduces you to some of the new concepts and features in this updated specification. It also explains how you can experience this new functionality with the Apache OpenJPA project, an open-source, robust, high performance, scalable implementation of the JPA specification.
|
 |
Articles |
 |
30 Sep 2009 |
|
| |
The Support Authority: Analyze memory management problems with the Memory Dump Diagnostic for Java
(MDD4J)
The Memory Dump Diagnostic for Java (MDD4J) tool helps you diagnose
memory leaks and other excessive memory consumption problems in applications
running in IBM Java Virtual Machines (JVMs). This article introduces you to
MDD4J and shows you how to use its sophisticated analysis engine and user
interface to peer into the Java heap so you can see which objects are
consuming the most amount of memory.
|
 |
Articles |
 |
30 Sep 2009 |
|
| |
Analyzing XML schemas with the Schema Infoset Model
As the use of schemas grows, the need for tools to manipulate schemas grows. The new Schema Infoset Model provides a complete modeling of schemas themselves, including the concrete representations as well as the abstract relationships within a schema or a set of schemas. This article will show some of the power of this library to easily query the model of a schema for detailed information about it; we could also update the schema to fix any problems found and write the schema back out.
|
 |
Articles |
 |
01 Jun 2002 |
|
| |
Classworking toolkit: Analyzing generics data structures
|
 |
Articles |
 |
28 Mar 2006 |
|
| |
All Hail Shale: Anatomy of a Shale application
Brett McLaughlin continues his introduction to Shale with an in-depth look at the framework's application directory structure. Using the Shale starter application introduced in the first article in this series, Brett walks you through the core directories, from src/ to dist/. He shows you how Shale stores its libraries, where custom files go, and where you can insert specialized behaviors into your Shale applications. Along the way, he gives you some important tips about managing the Shale directories and gets you started with an example application (based on the Shale starter application) that serves as the basis of his discussion for the remainder of the series.
|
 |
Articles |
 |
12 May 2006 |
|
| |
Java theory and practice: Anatomy of a flawed microbenchmark
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. In this month's Java theory and practice, columnist Brian Goetz explores why it is so much harder to measure the performance of Java language constructs than it looks.
|
 |
Articles |
 |
22 Feb 2005 |
|
| |
Classworking toolkit: Annotations vs. configuration files
Annotations let you specify metadata as part of your source code. With this feature, you can embed tool instructions in your code rather than creating separate configuration files that you then need to maintain in parallel to the source code. But, as Java consultant Dennis Sosnoski explains, configuration files still have their uses, especially for aspect-like functions that cut across the source code structure of an application.
|
 |
Articles |
 |
02 Aug 2005 |
|
| |
Classworking toolkit: Annotations with ASM
Are you tired of building and maintaining toString() methods for all your data classes? In this edition of Classworking toolkit, consultant Dennis Sosnoski shows how you can automate the process using J2SE 5.0 annotations and the ASM bytecode manipulation framework. He takes advantage of the new J2SE 5.0 instrumentation API to invoke ASM as classes are loaded into the JVM, providing on-the-fly class modification at run time.
|
 |
Articles |
 |
07 Jun 2005 |
|
| |
Practically Groovy: Ant scripting with Groovy
Both Ant and Maven rule the world of build processing, but XML is occasionally a less-than-expressive configuration format. In this second installment in his new series on the practical applications of Groovy, Andrew Glover introduces Groovy's builder utility, which makes it especially easy to combine Groovy with Ant and Maven for more expressive and controllable builds.
|
 |
Articles |
 |
14 Dec 2004 |
|
| |
Secrets from the Robocode masters: Anti-gravity movement
Anti-gravity movement, in its many modified forms, is the movement type of choice for most expert Robocoders. With it you can define points on the map to avoid, easily create movement patterns, and dodge enemy bullets. Alisdair Owens shows you how to implement this helpful technique and provides an example bot to take out for a test drive.
|
 |
Articles |
 |
01 May 2002 |
|
| |
Apache Ant 101: Make Java builds a snap
Whether you're a veteran user of Apache Ant in need of a refresher or just starting out with this open source Java-based build tool, this tutorial provides a wealth of information. With Java developer and Ant enthusiast Matt Chapman from the IBM Java Technology Centre, you'll walk through the steps involved in writing a build file for a simple Java project, and then look at some of Ant's other useful functions, including filesystem operations and pattern matching. You'll finish the course by writing our own Java class that extends Ant's functionality.
|
 |
Tutorials |
 |
17 Dec 2003 |
|
| |
Java programming dynamics, Part 3: Applied reflection
Learn how the Java Reflection API can be used to simplify the job of command line argument processing. In this article, Java consultant Dennis Sosnoski outlines an open source library that makes command line arguments practically handle themselves.
|
 |
Articles |
 |
15 Jul 2003 |
|
| |
Securing Java applications with Acegi, Part 1: Architectural overview and security filters
This series introduces Acegi Security System, a formidable open
source security framework for Java enterprise applications. In this first article,
consultant Bilal Siddiqui introduces you to the architecture and components of Acegi
and shows you how to use it to secure a simple Java enterprise application.
|
 |
Articles |
 |
27 Mar 2007 |
|
| |
XML and Related Technologies certification prep, Part 1: Architecture
A software system's architecture and performance requirements affect your decision of which XML technologies are most appropriate for your application's needs. This tutorial on architecture teaches you how to discern where and when to use XML in system design. It is the first tutorial in a series of five tutorials that you can use to help prepare for the IBM certification Test 142, XML and Related Technologies.
|
 |
Tutorials |
 |
29 Aug 2006 |
|
| |
Java theory and practice: Are all stateful Web applications broken?
The session state management mechanism provided by the Servlets framework, HttpSession, makes it easy to
create stateful applications, but it is also quite easy to
misuse. Many Web applications that use HttpSession
for mutable data (such as JavaBeans classes) do so with
insufficient coordination, exposing themselves to a host of
potential concurrency hazards.
|
 |
Articles |
 |
23 Sep 2008 |
|
| |
Taming Tiger: Are you SCJP 5 certified?
In April 2005, Sun updated its certification for J2SE 5. If you're interested in getting certified, or updating your current certification, this article provides a quick-and-dirty overview of the skills you'll need.
|
 |
Articles |
 |
30 Sep 2005 |
|
| |
The busy Java developer's guide to db4o: Arrays and collections
Collections and arrays introduce new levels of complexity to
the structured objects first discussed in The busy Java developer's guide to db4o: Beyond
simple objects. Fortunately, db4o isn't the least
bit fazed by handling multiplicity relationships -- and neither should you be.
|
 |
Articles |
 |
18 Sep 2007 |
|
| |
Java programming dynamics, Part 6: Aspect-oriented changes with Javassist
Java consultant Dennis Sosnoski saves the best for last in his three-part coverage of the Javassist framework. This time he shows how the Javassist search-and-replace support makes editing Java bytecode practically as easy as a text editor's Replace All command. Want to report all writes to a particular field or patch in a change to a parameter passed in a method call? Javassist makes it easy, and Dennis shows you how.
|
 |
Articles |
 |
02 Mar 2004 |
|
| |
Automation for the people: Asserting architectural soundness
Is your software architecture what you think it is? The designs we
communicate to each other aren't always what we expect when it comes to source code. Paul Duvall returns from his hiatus in this installment of Automation for the people to demonstrate how you can discover architectural deviations by writing tests using JUnit, JDepend, and Ant to discover problems proactively instead of long after the fact.
|
 |
Articles |
 |
10 Jul 2007 |
|
| |
Diagnosing Java code: Assertions and temporal logic in Java programming
Although traditional assertions can increase the amount of checking that can be done over Java code, there are many checks you just can't perform with them. One way to fill this gap is with temporal logic, a formalism used to describe how a program state will change over time. In this article, Eric Allen discusses assertions, introduces temporal logic, and describes a tool for processing temporal logic assertions in your programs.
|
 |
Articles |
 |
01 Jul 2002 |
|
| |
Assess Java RAS functions directly
This article is for developers working with the IBM(R) Virtual Machine for Java(TM) (JVM), predominately on z/OS(R). Following practical examples, learn how to use the Java Virtual Machine Reliability Accessibility Serviceability Interface (JVMRI) to inject signals directly into JVM. Follow along as Richard Cole gives a simple example of how you can use JVMRI to get dumps out of JVM. Find out how the agent works, how to compile it and load it into the JVM, how the trigger for this agent works, and how to run the trigger to get a dump.
|
 |
Articles |
 |
24 Feb 2005 |
|
| |
Mastering Grails: Asynchronous Grails with JSON and Ajax
JavaScript Object Notation (JSON) and Asynchronous JavaScript + XML (Ajax) are staples of Web 2.0 development. In this installment of the Mastering Grails series, author Scott Davis demonstrates the native JSON and Ajax capabilities baked into the Web framework.
|
 |
Articles |
 |
18 Nov 2008 |
|
| |
Tip: Attributes in ContentHandler
The one aspect of data processing with ContentHandler that the author didn't cover in his last tip was attribute processing. While attributes are most commonly used for information transfer between an XML document and an XML processor, they also often contain valuable business data. In this tip, Brett shows you how SAX handles elements and reports those elements, as well as how you can use code to extract element data.
|
 |
Articles |
 |
21 Aug 2003 |
|
| |
Mastering Grails: Authentication and authorization
Grails provides all the basic building blocks you need to put together a secure Web application, ranging from a simple login infrastructure to role-based
authorization, and in this installment of Mastering
Grails, Scott Davis gives you a hands-on lesson in securing your Grails application. You'll also learn about some plug-ins that can help you extend your applications' security capabilities in new directions.
|
 |
Articles |
 |
28 Apr 2009 |
|
| |
Lock down J2ME applications with Kerberos, Part 2: Authoring a request for a Kerberos ticket
In the last article in this series, you saw the outlines of a J2ME application that can connect securely to a Kerberos-enabled server; you also learned the details of how Kerberos encryption works at the byte level. This article gets into the meat of the application itself. You'll see how to use the J2ME's facilities and some open source libraries to perform surprisingly powerful encryption routines.
|
 |
Articles |
 |
25 Nov 2003 |
|
| |
Building Ajax-enabled JSP TagLib controls, Part 2: Auto-populate and field validator controls
Build Asynchronous JavaScript + XML (Ajax) controls that can be used in
business-line applications. These configurable JavaServer Pages (JSP) TagLib-based controls
leverage JavaScript Object Notation (JSON), JavaScript scripting language, and
Cascading Style Sheets (CSS). Because they are standard JSP TagLib controls, find out how
you can easily drop them into any application to provide more intuitive and responsive user
interfaces.
|
 |
Articles |
 |
25 Nov 2008 |
|
| |
In pursuit of code quality: Automate GUI testing with TestNG-Abbot
TestNG-Abbot is a testing framework that breathes new life into testing GUI components. This month, Andrew Glover walks you through the hardest part of GUI testing with TestNG-Abbot, which is understanding how a user scenario will play out. Once you've got that down, you'll find it surprisingly easy to isolate GUI components and then verify them using the framework's handy fixture objects.
|
 |
Articles |
 |
27 Feb 2007 |
|
| |
Automate acceptance tests with Selenium
Acceptance, or functional, testing is designed to put manual tasks through their paces, but testing these tasks by hand can be time consuming and prone to human error. In this article, the author shows architects, developers, and testers how to use the Selenium testing tools to automate acceptance tests; automating the tests saves times and helps eliminate tester mistakes. You also are provided with an example of how to apply Selenium in a real-world project using Ruby on Rails and Ajax.
|
 |
Articles |
 |
20 Dec 2005 |
|
| |
Automate your team's build and unit-testing process
Extreme programming and agile methods recommend that the development process include continuous integration and unit testing. A pragmatic way to support these practices is to set up an automated system to build and test the latest version of your source code every time it changes. This article guides you through the practical issues involved in setting up your own Linux-based build server for Java projects.
|
 |
Articles |
 |
11 Oct 2005 |
|
| |