Topic:
Open Source Java

Open Source Java includes projects and initiatives including Apache's Jakarta (including Ant) and Batik.

O'Reilly Network articles about this topic:

What is Java Content Repository
(ONJava.com)
You might have heard of JSR-170, but what is a content repository, and what can you do with it? Well, do you want to manage documents with versioning, search, access control, and more? Content repositories offer these features, and JSR-170 codifies them into a single API. Sunil Patil shows how to use the reference implementation--Apache Jackrabbit--to create a blogging application.

Tapestry: A Component-Centric Framework
(ONJava.com)
Tapestry offers an open source framework for rapid development of web applications using Java. It offers high performance, good code re-use, line-precise error reporting, and more. Hemangini Kappla offers an introduction to this widely used framework.

Eclipse RCP: A Platform for Building Platforms
(ONJava.com)
Where do you start when building a Java desktop application? All Java gives you by default is public static void main (String[]); it's up to you from there. Eclipse's Rich Client Platform (RCP) offers a tested design, commonly-needed widgets, a standardized component model, pervasive extensibility, and more. Wayne Beaton has an introduction to get you up to speed with RCP-based development.

Ant 1.7: Using Antlibs
(ONJava.com)
Most Java developers use Ant to do builds and are familiar with its core tasks. But Ant's tasks tend toward an undesirable coupling: everything important had to be a core task because it was hard to distribute new plug-in tasks. Fortunately, Ant 1.7's new antlibs feature makes it much easier to distribute and use new Ant tasks. In this article, Kev Jackson shows you how to use, write, bundle, and test antlibs.

Deploying BIRT
(ONJava.com)
If you have a need for generating or displaying reports, you may want to have a word with BIRT. The Business Intelligence and Reporting Tools project is an open source Eclipse effort to enable the creation and deployment of complex reports. Jason Weathersby shows you how to grind out reports and display them in web applications and RCP-based desktop apps.

What Is Geronimo?
(ONJava.com)
Geronimo is Apache's open source, Java EE-compatible application server, based on a flexible system of interchangeable components. This makes it ideal for a wide range of enterprise deployments. In this article, Kunal Jaggi shows you how to get started with Geronimo.

Outsourcing Java SE
(ONJava.com)
Many eyes are on Sun, awaiting the promised eventual open-sourcing of its Java SE implementation. But Daniel Steinberg has another idea: instead of open-sourcing Java, Sun should outsource it, so that it can be developed by parties more attuned to the needs and opportunities of cross-platform development.

What Is Jetty
(ONJava.com)
Of course Tomcat is the first Java application server you think of, but is it the right tool for every job? The open source Jetty serves up JSPs and servlets in just a fraction of the memory needed by other app servers and is designed for easy embedding in other applications and non-traditional Java environments. Ethan McCallum takes a look at the big things in this small package.

Telling Stories at JavaOne
(ONJava.com)
JavaOne 2006 left attendees with an incomplete answer to the big question: will Sun open source Java? The answer was better than a definite maybe, but not by much. Daniel Steinberg looks back at the conference, its mixed message, and its many successes outside of the general sessions.

Using Lucene to Search Java Source Code
(ONJava.com)
Most uses of the Java-based Lucene search engine are for searching typical text documents. But what if you want to search Java code itself? Renuka Sindhgatta argues that this would be a boon for finding reusable code, and shows how to adapt Lucene to parse Java code for maximum searchability.

Give Your Business Logic a Framework with Drools
(ONJava.com)
It's almost too easy to express your business logic as a spaghetti-code fiasco. The result is hard to test, hard to maintain, and hard to update. Rule engines offer an alternative: express your business logic as rules, outside of your Java code, in a format even the business side of the office can understand. Paul Browne uses the open source Drools framework to introduce the idea.

Upload Files with JSF and MyFaces
(ONJava.com)
Want to support uploading of files from the user's browser to your web application? You could parse the multipart form data yourself--or you could let Java do it for you. JSF doesn't support this out of the box, but, as Andrei Cioroianu shows, several JSF-based frameworks do.

An Ant Modular Build Environment for Enterprise Applications
(ONJava.com)
Most Java developers already use Ant for their builds, but are you getting everything you could out of this tool? With a complex enterprise application, in which classes may be used in several tiers, it's important to control where the code lives and how it gets built, so you can build .jars with just the code needed for each tier. Les Hazlewood shows how this approach leads to faster builds and downloads, and even catches errant dependencies.

Building Modular Applications with Seppia
(ONJava.com)
Isn't object-oriented programming supposed to be about code reuse? The Seppia framework encourages reuse by allowing you to combine functionality collected in multiple .jar files, stitching the behavior together with JavaScript. Lorenzo Puccetti has an introduction to this interesting framework.

Introducing JBoss Remoting
(ONJava.com)
With JBoss World 2005 a week away, JBoss has introduced a new remoting framework. Before you say "another one?" John Mazzitelli hopes you'll take a look at JBoss Remoting, which rids you of RMI-style skeletons and stubs, and offers flexibility and extensibility on both the client and server sides.

Mock Objects in Unit Tests
(ONJava.com)
Unit testing your code against a service or process that's either too expensive (commercial databases) or just not done yet is something you can deal with by simulating the other piece with a mock object. EasyMock can suffice in some cases, but it can only create mock objects for interfaces. Mocquer, based on the Dunamis project, can create mocks for classes, too. Lu Jian shows how it works.

XML Messaging Using JBoss
(ONJava.com)
Simple communication in an enterprise system is possible through various schemes, but not all of them answer the question of coordination. Benoit Aumars presents a hypothetical case study that shows how generating and sharing information in XML is made easier with Java Messaging Service (JMS) and Java Management Extensions (JMX).

Documenting Projects with Apache Forrest
(ONJava.com)
Apache Forrest helps you develop the documentation to accompany your application, automatically providing a number of neat features such as menus, links, cross-references, and breadcrumb navigation. Kyle Downey provides an introduction.

Wiring Your Web Application with Open Source Java
(ONJava.com)
Building a web application with Java can be a complex process when architecting a combination of UI, business logic, and persistence. This article introduces a way to leverage open source software to lessen the burden.

Extending Maven Through Plugins
(ONJava.com)
Maven is the build tool that does everything for you, from compiling code to setting up structures for process and documentation. But what if there's something more that you do and you want to integrate it into Maven? Eric Pugh shows you how to do this with Maven plugins.

Analyze Your Classes
(ONJava.com)
Java reflection allows you to discover your code's abilities, but what about changing the code? Vikram Goyal introduces the Byte Code Engineering Library, which opens up classes for low-level changes from code.

Java for Bioinformatics
(ONJava.com)
Bioinformaticians and biological scientists have to sift through a lot of data. Visualization helps. While Perl has been a mainstay of bioinformatics, several projects and APIs in the Java world are making Java a viable development language. Stephen Montgomery surveys the scene.

Using the Jakarta Commons, Part 3
(ONJava.com)
Ever find yourself thinking, "Someone's surely solved this problem before?" The Jakarta Commons is a good place to start looking when that thought tickles your mind. In this third of three articles,
Vikram Goyal explores the logging, pooling, and validating packages in the Commons.

Using the Jakarta Commons, Part 2
(ONJava.com)
Ever find yourself thinking, "Someone's surely solved this problem before?" The Jakarta Commons is a good place to start looking when that thought tickles your mind. In this second of three articles,
Vikram Goyal explores the Packages and XML groups of the Commons.

Using the Jakarta Commons, Part 1
(ONJava.com)
Ever find yourself thinking "Someone's surely solved this problem before?" That's the beauty of open source. In this first of three articles, Vikram Goyal explores the Jakarta Commons, mature and well-defined reusable Java components.

JBoss Optimizations 101
(ONJava.com)
"First make it work, then make it fast." Your J2EE application works, but it's slower than you'd like under peak load. Before you rush out for new hardware, check out your configuration. Sacha Labourey and Juha Lindfors demonstrate a few simple techniques to improve JBoss performance without spending money.

Aspect-Oriented Programming and JBoss
(ONJava.com)
Is aspect-oriented programming (AOP) the OOP of the oughts? It promises to apply common behavior across different object models. Bill Burke and Adrian Brock explore AOP by example in a JBoss application.

Enums in Java (One More Time)
(ONJava.com)
Depending on who you ask, the lack of built-in enum support in Java is either a travesty or no big deal. They're convenient in some cases, and are often requested for future versions of Java. John I. Moore, Jr. explores the alternatives for emulating enums in core Java and presents the mini-language jEnum as proof-of-concept.

Reading and Writing Excel Files with POI
(ONJava.com)
The Jakarta POI project provides a nice Java API for reading and writing Microsoft file formats. After learning about the project, most people ask, "How can I write a spreadsheet?" Andrew C. Oliver and the POI folks demonstrate how to read and write Excel files using the Horrible SpreadSheet Format class.

Detecting Duplicate Code with PMD's CPD
(ONJava.com)
Code reuse has been a grail for years. Why, then, is there still so much copying and pasting going on? Tom Copeland introduces CPD, the Copy/Paste Detector, which can identify large swaths of duplicate Java code. Now go refactor!

Using Hierarchical Data Sets with Aspire and Tomcat
(ONJava.com)
While much of the database world is relational, a great deal of data is hierarchical--think web pages, XML, and Java classes. Aspire lets you retrieve and manipulate hierarchical data sets. Satya Komatineni explains why you might want to do this.

Introduction to Text Indexing with Apache Jakarta Lucene
(ONJava.com)
Lucene is an immensely popular free text indexing and searching API written in Java. In this first of a series of Lucene articles, Otis Gospodnetic explains how to get started with Lucene, introducing the project and its indexing capabilities.

Using JMeter
(ONJava.com)
Apache's JMeter is a Java-based tool for load
testing client-server applications. Budi Kurniawan demonstrates how to use JMeter to test the performance of your Web applications.

Configuring Tomcat with IIS Web Server
(ONJava.com)
In this installment of Using Tomcat, James Goodwill continues his discussion of the JK1.2 connectors with a turotial on configuring Tomcast with Microsoft's IIS server.

An Introduction to the Eclipse IDE
(ONJava.com)
Eclipse, an open source Java-based IDE, brings together all of
the tools a developer needs to be successful at Web application
development: an extensible IDE, a standards-based compiler,
remote debugging, Ant-based builds, JUnit-based testing, and
plug-ins for communicating with most application servers and
EJB containers.

Configuring Tomcat and Apache With JK 1.2
(ONJava.com)
The JK modules are a conduit between Apache and Tomcat. This series of articles covers using mod_jk with Apache and Tomcat. The first article shows you how to configure the servers for use with JK 1.2.

Jakarta Struts: Seven Lessons from the Trenches
(ONJava.com)
Chuck Cavaness, author of Programming Jakarta Struts, describes for Java programmers some of lessons he learned the hard way when he used the Struts framework to build a company application.

For Tomcat Developers, Aspire Comes in a JAR
(ONJava.com)Aspire.jar is a free, open source .jar file that can be used for declarative data access, configuration, logging and factory services needs. For Java developers who are continuing to adopt Tomcat as their primary development platform, this .jar file could save lot of time, while providing a highly-flexible data architecture.

Learning and Using Jakarta Digester
(ONJava.com)
Turning an XML doc into Java bean objects is a common task, but the SAX and DOM APIs are too low-level. Jakarta Digester uses a series of rules to simplify this important task.

Resin: The Instant Application Server
(ONJava.com)
Could you use a Java app server that's easy to set up, offers rapid development, and supports EJB/CMP and other standard Java features? Meet Resin. This article gets you installed and running a database-querying app in short order.

Build Flexible Logs With log4j
(ONJava.com)
log4j, an Apache Jakarta project, offers unprecedented levels of control over logging. This article offers a sample Web application to explain how to use log4j.

Demystifying Tomcat 4's server.xml File
(ONJava.com)
The Tomcat server.xml file allows you to configure Tomcat using a simple XML descriptor. This XML file is at the heart of Tomcat. This article focuses on the configuration all of the major Tomcat components.

2002 OSCON Java Wrap-Up
(ONJava.com)
This is the 2002 O'Reilly Open Source Convention's unofficial Java conference report. With the turnout and support we had, let's hope for an official open source Java conference next year.

Java Software Automation with Jakarta Ant
(ONJava.com)
Jakarta Ant is not only a tool, it's a powerful language that
allows you automate Java-based Web applications. This article describes automating a Java servlet with Ant.

Clustering with Tomcat
(ONJava.com)
Web applications can benefit from clustering. This article presents
a clustering solution for Jakarta Tomcat to
provide high scalability, load-balancing, and high availability using JavaSpaces
technology.

NetBeans: Open IDE, Open Platform, Open Source
(ONJava.com)
Because of its modular architecture, the NetBeans IDE is sometimes described as a "disintegrated" development environment -- it's a runtime in which arbitrary modules execute.
The runtime handles much of the
grunt work, and developers can concentrate on implementing their logic.

Clustering with JBoss 3.0
(ONJava.com)
For scalability and reliability, many Java developers look to their app server's clustering features. This article takes a look at clustering in the open source JBoss app server.

Java Development Kit for FreeBSD
(ONJava.com)
Efforts are underway to certify a build of the Java Development Kit for FreeBSD. This article shows you how to install the FreeBSD 1.3 JDK.

Web Development in Heavy Traffic
(ONJava.com)
For Web sites that deal with huge traffic levels, Web applications have to be robust 24/7. This article details how one site caches articles in a servlet container, tunes the JVM, and other tricks for high-load sites.

Developing for Jakarta Avalon
(ONJava.com)
This articles takes you through the steps of developing an application for Phoenix, the application server in Jakarta Avalon.

Developing Highly Distributed Applications with Jtrix
(ONJava.com)
Imagine a way to create Web services that are mobile, highly distributed for reliability, and scalable in both directions -- that is, resource usage can be scaled up or down as needed. That's Jtrix, a new open source project.

Using Jini to Build a Catastrophe-Resistant System
(ONJava.com)
Sept. 11 caught the IT departments of several firms without timely backups. To the author, the tragedy made clear the need for self-healing, distributed systems that could survive the unthinkable. The article describes such a system, based on Sun's Rio technology.

JBoss: Sun Needs Us
(ONJava.com)
In this interview, JBoss leaders Marc Fleury and Nathalie Mason argue that Sun should certify this open source J2EE project for the health of the platform: "We are seeing the beginning of
market-share loss to .NET. We urge Sun to certify us and give us the backing
and credibility to be succesful in competing against Microsoft as the
entry-level J2EE offering."

Developing with JAXB and Ant, Part 1
(ONJava.com)
Apache's Jakarta Ant is a powerful build tool for automating tasks in Java development, working with the JAXB API. In the process, you'll see how JAXB works with packages.

Using SOAP with Tomcat
(ONJava.com)
The Apache SOAP Project is an open source Java implementation of SOAP. This article examines how you can can create and deploy SOAP services with Apache's RPC model.

Using OpenJMS withTomcat
(ONJava.com)
This article illustrates how to integrate OpenJMS with Jakarta Tomcat. It deals exclusively with Tomcat v4 (or Catalina), which is the next-generation servlet/JSP container, and OpenJMS v.0.7.

XML Data Binding with Castor
(ONJava.com)
XML can make even simple things difficult. Wouldn't it be nice to be able to work with Java instead? The Castor XML data-binding framework provides a path between XML and Java objects and back again.

Will You See Open Source J2EE Implementations?
(ONJava.com)
O'Reilly & Associates' Executive Java Editor Mike Loukides looks at the state of open source J2EE and the hurdles open source projects like JBoss experience. He also wonders about Sun's current open source licensing policies regarding J2EE.

Brewing Java at the Point of Sale
(ONJava.com)
This article examines an open source Point-of-Sale (POS) application
written in Java to reduce complexity inherent in implementing a broadly-applicable POS transaction engine.

Clustering with JBoss/Jetty
(ONJava.com)
A project manager recounts his experiences on clustering with JBoss/Jetty, as well as having the source code to this open source J2EE container and server.

Introduction to Jakarta Struts Framework
(ONJava.com)
Sue Spielman shows us how to use Apache's Jakarta Struts framework, which encourages an application architecture based on the Model-View-Controller (MVC) design pattern, useful in building servlet- and JSP-based Web applications.

Getting Up To Speed with JXTA
(ONJava.com)
Get up to speed on JXTA in time for O'Reilly's P2P and Web Services Conference. This package includes an analysis of the JXTA framework, a
JXTA Shell tutorial, and a look at JuxtaNet, an alternative to Gnutella.

Using Tomcat 4 Security Realms
(ONJava.com)
In part 4 of his Using Tomcat series, James Goodwill covers Tomcat 4, focusing on security realms using both memory and JDBC realms (with a MySQL database example).

Web DbForms
(ONJava.com)
Many developers find themselves writing similar JSP and servlet code, again and again, when creating Web-based database applications. The open source project DbForms provides a solution which reduces the amount of coding to an absolute minimum.

Using PASX
(ONJava.com)
PASX is an open source component configuration and naming framework tool and solution for XML and JNDI application and Web services development.

Using Ant and WebLogic EJBs
(ONJava.com)
EJBs are complex. The steps required just to deploy them for Web application servers are difficult. But for developers using BEA WebLogic, life is much easier, thanks to Ant.

Jakarta Taglibs
(ONJava.com)
Sue Spielman covers Apache's Jakarta Taglib project, and how you can take advantage of some great open source JSP tag libraries.

Learning the JXTA Shell
(openp2p.com)
The JXTA shell brings the good ol' *nix command line to P2P. Rael Dornfest provide a first-look tutorial on how to use the shell.

Hello JXTA!
(ONJava.com)
Raffi Krikorian gives us an insider's view of JXTA, and how it can be used to develop a simple 'Hello World' P2P application.

Other documents about this topic:

Below are other references available on the web for this topic. Since other sites may change their links, please
if you find any that may need to be updated.

Jakarta Project
The goal of the Jakarta Project is to provide commercial-quality server solutions based on the Java Platform that are
developed in an open and cooperative fashion.
Jakarta is the "overall" project for many subprojects. For example, Tomcat is the Servlet+JSP Engine which is a subproject
of the Jakarta Project. Many people confuse Jakarta and Tomcat together even though the reality is that Jakarta is
essentially just this website and Tomcat is a product on this website. You can get information about each of the projects by
looking at the left side navigation under the "SubProjects" headings.

Tomcat
Tomcat is the Reference Implementation for the Java Servlet 2.2 and JavaServer Pages 1.1 Technologies. Tomcat is the official reference
implementation for these complementary technologies. To download Tomcat, click here.
[Source: Jakarta]

JFA
The JavaLobby Foundation Applications (JFA) is an effort to produce
high quality, open source, pure java applications in an attempt to
demonstrate the power of java. JFA software is released under the
JFA License which allows completely unencumbered redistribution and
reuse of the code.
Applications such as an Application Toolbar, Spreadsheet, Word
Processor, Email Client, Zip File Utility, and more have already been
started, and some are available for download now. A first class icon
collection has already been created and is being expanded every day.
Many developers have already volunteered to create these
applications, but more are still needed. Besides programmers, the JFA
project also needs people to write documentation, create graphics to
accompany the programs, and to organize other volunteers.
[Source: JFA]

NetBeans
NetBeans is an open source, modular IDE, written in Java. Currently it
supports Java development, but its architecture lends itself to supporting other languages as
well. Since it's written in Java, it'll run on any platform with a JVM
[Source: NetBeans]

Forte for Java
Underscoring its commitment to the open source community, Sun plans to release its entry-level Java IDE -- Forte for Java, Community Edition
-- to the open source community under the Mozilla Public License model. This marks the first step in a major new open tools framework
initiative, for which the Forte for Java, Community Edition source forms the foundation. This framework will support an open community of
developers, ISVs and application providers who will collaborate to develop a complete set of complementary and interoperable Java
components.
[Source: Sun]

JAX
The Java API for XML Messaging (JAXM), Java API for XML Parsing (JAXP), and Java API for XML Data Binding (JAXB) form the core of XML support in the Java 2EE. These API will likely be open sourced through Apache's Jakarta project. These along with the recently announced JXTA networking application API make up JAX (Java, Apache and XML). Others could soon be announced and available.
[Source: Sun]

UDDI
The Universal Description, Discovery and Integration (UDDI) standard (registry) is a sweeping industry
initiative. The Standard creates a platform-independent, open framework for describing services,
discovering businesses, and integrating business services using the Internet.
UDDI is the first cross-industry effort driven by platform and software providers, marketplace operators
and e-business leaders. These technology and business pioneers are acting as the initial catalysts to
quickly develop the UDDI standard.
The UDDI standard takes advantage of WorldWide Web Consortium (W3C) and Internet Engineering
Task Force (IETF) standards such as Extensible Markup Languare (XML), and HTTP and Domain
Name System (DNS) protocols. Additionally, cross platform programming features are addressed by
adopting early versions of the proposed Simple Object Access Protocol (SOAP) messaging
specifications found at the W3C Web site. The UDDI standard is the building block that will enable
businesses to quickly, easily and dynamically find and transact with one another using their preferred
applications.
[Source: UDDI]

Jato API
The Jato API converts XML documents into Java objects and back again. In January, Andy Krumel publicly released
the API in beta form at SourceForge. Based on the observation that transformations are mechanical and tedious, with
Jato a simple XML script describes the XML/Java mapping. In this article, the first of three, Andy explains how to use
Jato to perform basic Java-to-XML and XML-to-Java transformations. In Part 2, he will focus on performing complex
Java-to-XML transformations. Part 3 will explore converting an XML document into Java application objects.
[Source: JavaWorld]

Jakarta Taglibs Project
The goal of this Jakarta Taglibs project is to provide an open-source taglib repository.
Tag Library Overview
Tag libraries are composed of a set of custom tags. These custom tags help separate presentation from implementation. What this means is that web designers can change the layout without worrying about modifying the underlying logic. Custom tags also help developers avoid embedding scripting code within the JSP page as well as encourage reuse and ease maintainability.
[Source: Apache]

The Jakarta Taglibs Project, Part I
This article, the first of two parts, explores the Jakarta Taglibs Project (part of the not-for-profit Apache Software Foundation), which provides a wide array of open-source custom tag libraries for use in JavaServer Pages. First, a brief review of the concept of custom tag libraries is offered, followed by an overview of the workings of the Jakarta Taglibs Project and its various custom tag libraries, and concluding with the open-source development experiences of several members of the Jakarta community.
[Source: java.sun.com]

OpenJMS Tutorial
This is a tutorial on an open source JMS (Java Messaging Service) implementation, presented by Jim Alateras
[Source: O'Reilly Java Conference]

Jakarta-Taglibs Tutorial
This tutorial will give you an overview of how some of the basic tags in the Jakarta-Taglibs library were created. Tag libraries allow you to create custom actions and encapsulate functionality.
[Source: Apache]