XDoclet Overview News and Status Download/Installation Using XDoclet Best Practices FAQ License Ant Task Reference <ejbdoclet .. /> <webdoclet .. /> <hibernatedoclet .. /> <mockdoclet .. /> <jdodoclet .. /> <jmxdoclet .. /> <doclet .. /> Tag Reference apache (@soap @struts) 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) macromedia (@jrun) mockobjects (@mock) mvcsoft (@mvcsoft) mx4j (@mx4j) objectweb (@jonas) oracle (@oc4j) orion (@orion) pramati (@pramati) sybase (@easerver) web (@web @jsp) webwork (@webwork) xdoclet (@xdoclet @doc) Feature Documentation Using Value Objects Advanced Maven Plug-in Merge Points Log4J Configuration IDE Integration Migration from EJBDoclet Ant 1.5 Troubleshooting Community Feedback Resources Tools Development Developer Guide Javadoc (API) Template Language (*.xdt) XJavaDoc Site Project Documentation Front Page Project Info Project Reports Development Process | ### packagetagshandler.packagesubstitution It's good practice to put interfaces (such as remote/local interfaces, data objects and home interfaces) in a separate "interfaces" package rather than in the EJB bean implementation package. Previous versions of XDoclet dictated this behavior, so if package name of a bean ended with .beans or .ejb interfaces were put into .interfaces package. It's no more the case. You have full control over it. If you don't use a packageSubstitution element, then all interfaces are generated to the same package as the bean implementation class. But if you want to follow the pattern and put interfaces into a separate package you can, by providing the list of package name tails that interfaces of beans inside that packages should be placed into the package you define. For example interfaces of test.ejb.CustomerBean will be placed in test.interfaces by the following packageSubstitution:
           <packageSubstitution packages="ejb,beans" substituteWith="interfaces"/>
#### Attributes
Attribute | Description | Required
--- | --- | ---
packages | Sets the Packages attribute of the PackageSubstitution object | No.
substituteWith | Sets the SubstituteWith attribute of the PackageSubstitution object | No.