XDoclet: Attribute-Oriented Programming - Welcome

##### XDoclet

- Overview
- News and Status
- Download/Installation
- Using XDoclet
- Best Practices
- FAQ
- License

##### Ant Task Reference

- <doclet .. />
- <ejbdoclet .. />
- <hibernatedoclet .. />
- <jdodoclet .. />
- <jmxdoclet .. />
- <mockdoclet .. />
- <portletdoclet .. />
- <springdoclet .. />
- <tapestrydoclet .. />
- <webdoclet .. />
- <wseedoclet .. />

##### Tag Reference

- apache (@soap @struts @axis @tapestry)
- bea (@weblogic)
- borland (@bes)
- caucho (@resin)
- ejb (@ejb @dao)
- exolab (@castor)
- hp (@hpas)
- hibernate (@hibernate)
- ibm (@websphere)
- java (@javabean)
- jboss (@jboss)
- jdo (@jdo)
- jmx (@jmx)
- jsf (@jsf)
- macromedia (@jrun)
- mockobjects (@mock)
- mvcsoft (@mvcsoft)
- mx4j (@mx4j)
- objectweb (@jonas)
- oracle (@oc4j)
- orion (@orion)
- portlet (@portlet)
- pramati (@pramati)
- spring (@spring)
- sun (@sunone)
- sybase (@easerver)
- tjdo (@tjdo)
- web (@web @jsp)
- webwork (@webwork)
- wsee (@wsee)
- xdoclet (@xdoclet @doc @msg)

##### Feature Documentation

- Using Value Objects
- EJB Environment Handling

##### Advanced

- Maven Plug-in
- Merge Points
- IDE Integration
- Migration from EJBDoclet
- Ant 1.5 Troubleshooting

##### Community

- Feedback
- Resources
- Tools

##### Development

- Developer Guide
- Javadoc (API)
- Template Language (*.xdt)
- XJavaDoc Site

##### Search XDoclet

##### Project Documentation

- About XDoclet
- Project Info
- Project Reports
- Development Process

## Welcome! What is XDoclet?

XDoclet is an open source code generation engine. It enables Attribute-Oriented Programming for java. In short, this means that you can add more significance to your code by adding meta data (attributes) to your java sources. This is done in special JavaDoc tags.

XDoclet will parse your source files and generate many artifacts such as XML descriptors and/or source code from it. These files are generated from templates that use the information provided in the source code and its JavaDoc tags.

XDoclet lets you apply Continuous Integration in component-oriented development. Developers should concentrate their editing work on only one Java source file per component.

This approach has several benefits:

1. You don't have to worry about out dating deployment meta-data whenever you touch the code. The deployment meta-data is continuously integrated.
2. Working with only one file per component gives you a better overview of what you're doing. If your component consists of several files, it's easy to lose track. If you have ever written an Enterprise Java Bean, you know what we mean. A single EJB can typically consists of 7 or more files. With XDoclet you only maintain one of them, and the rest is generated.
3. You dramatically reduce development time, and can concentrate on business logic, while XDoclet generates 85% of the code for you.

Currently XDoclet can only be used as part of the build process utilizing Jakarta Ant.

Although XDoclet originated as a tool for creating EJBs, it has evolved into a general-purpose code generation engine. XDoclet consists of a core and a constantly growing number of modules. It is fairly straightforward to write new modules if there is a need for a new kind of component.

XDoclet comes with a set of modules for generation of different kinds of files. Users and contributors can write their own modules (or modify existing ones) if they wish to extend the functionality of XDoclet.

## Why use XDoclet? My favorite IDE can do this for me!

A lot of people (over 60.000 downloads (see activity statistics) in 2002, 95.000 in 2003 and already more than 90.000 in 2004 (September)! An average of 7.000 page views each day!) are already improving development time by using XDoclet for development of J2EE applications. Here are some benefits you'll gain when using XDoclet:

- Cut Redundant Work. XDoclet helps you to eliminate redundant or "boiler plate" work. Code your business logic and let XDoclet generate the necessary boiler plate and support code for it.
- J2EE Made Easy. XDoclet's advanced code generation features makes it easier to code J2EE applications. You write the enterprise bean implementation and XDoclet generates interfaces, value objects, struts forms and much, much more for you. XDoclet follows many widely recognized J2EE patterns.
- Support for Leading Servers and Tools. XDoclet comes bundled with modules for all the leading application servers: JBoss, BEA WebLogic, IBM WebSphere, Oracle IAS, Orion, Borland, MacroMedia JRun, Jonas, Pramati, Sybase EAServer and many more. Supported tools: Castor, Hibernate, several JDO vendors, Struts, WebWork, MockObjects and many more.
- Extensible. XDoclet's modular design makes it easy for you to write your own modules. Identify repeatable or boiler plate code in your application and write XDoclet templates to generate them.
- Open, Distributed Development. XDoclet is developed by a group of experts around the world and distributed under a flexible BSD license. Avoid vendor lock-ins by using XDoclet. Also, the distributed character of XDoclet development makes sure that it will satisfy the needs of most users instead of a single vendor interest.

## XDoclet 1.1.2 Documentation

The documentation of the old, outdated and unsupported 1.1.2 release is available here.