XDoclet: Attribute-Oriented Programming - IDE Integration
Author: Aslak Hellesoy

##### 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

## IDE Integration

### IntelliJ IDEA

A set of live templates for IntelliJ IDEA development environment are provided. Copy xdoclet.xml (right click and use "Save Target As...") file to $idea$/config/templates folder. Here are the live templates:

Inside class comments
ejb.cmp, ejb.bmp, ejb.sfsb, ejb.ssb, ejb.mdb, ejb.ejb-ref, ejb.env, ejb.finder, ejb.perm
Inside both class and method comment
ejb.sec, ejb.trans
Inside class body
ejb.intf, ejb.lintf, ejb.rintf, ejb.create, ejb.pf, ejb.pfg, ejb.pk

For example:

    /**
     * |
     */
    public abstract class MyStatelessSessionBean extends javax.ejb.SessionBean
    {
    }

And type ejb.slsb and hit tab, you'll get:

    /**
     * @ejb.bean type="Stateless"
     *           name="MyStatelessSessionBean"
     *           jndi-name="ejb/MyStatelessSessionBean"
     */
    public abstract class MyStatelessSessionBean extends javax.ejb.SessionBean
    {
    }