[XDoclet-JIRA] Commented: (XDT-1683) ejbDoclet packageSubstitution issue with useFirst="true"
"Andrew Hoffman (JIRA)" <[email protected]> Thu, 19 Apr 2007 13:28:57 -0500 (CDT)
| Newsgroups | gmane.comp.java.xdoclet.devel |
|---|---|
| Message-ID | <115582099.1177007337377.JavaMail.j2ee@atlassian01.managed.contegix.com> |
[ http://opensource.atlassian.com/projects/xdoclet/browse/XDT-1683?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_17780 ]
Andrew Hoffman commented on XDT-1683:
-------------------------------------
Sorry, just realized I had a typo... where I have the useFirst attribute, the packageSubstitution should have read:
<packageSubstitution packages="ejb" substituteWith="ejbinterfaces" useFirst="true"/>
I wrote "userFirst" instead of "useFirst" :) It does have "useFirst" in the actual build script.
> ejbDoclet packageSubstitution issue with useFirst="true"
> --------------------------------------------------------
>
> Key: XDT-1683
> URL: http://opensource.atlassian.com/projects/xdoclet/browse/XDT-1683
> Project: XDoclet
> Issue Type: Bug
> Components: EJB Module
> Affects Versions: 1.2.3
> Environment: win2003 server, xdoclet-1.2.3 within Eclipse 3.2.1, custom xdoclet-build script
> Reporter: Andrew Hoffman
> Assignee: xdoclet-devel (Use for new issues)
>
> An issue has surfaced within our ejb-doclet code generation, stemming from a change in our ejb package structures. Intially, all our ejb classes where in a single package (example: com.abc.main.ejb) and interfaces were being generated to another folder via package substitution (example: com.abc.main.ejbinterfaces). Our packageSubstitution element of the ejbdoclet task looked like this:
> <packageSubstitution packages="ejb" substituteWith="ejbinterfaces"/>
> This works great for all files within the ejb package at a single level... however, we recently decided to ADD some new files in a sub-package (example: com.abc.main.ejb.newbeans), and discovered (as is proper, we now know) that the sub-package files were not being caught by the package substitution, and all generated files for the sub-package were put in the same source folder (com.abc.main.ejb.newbeans). Soe we then discovered the useFirst attribute and tried this in our xdoclet script:
> <packageSubstitution packages="ejb" substituteWith="ejbinterfaces" userFirst="true"/>
> We THOUGHT this should accomplish what we wanted, but instead it looks like the package substitution is "double substituting" matching package names in our packages... all of the generated interfaces are now going into an "ejbinterfacesinterfaces" package (example: com.abc.main.ejbinterfacesinterfaces and com.abc.main.ejbinterfacesinterfaces.newbeans)
> If you switch the substituteWith attribute from "ejbinterfaces" to just "interfaces", all works as expected for main package and sub-package, but we believe the fact that the substituteWith attribute STARTS WITH the same string as the packages attribute, the substitution is double-matching against the new "ejbinterfaces" packages (first result of the substitution) and RE-matching to change it to "ejbinterfacesinterfaces".
> Now, short of a TON of refactoring from "com.abc.main.ejbinterfaces" to "com.abc.main.interfaces", we're stuck creating a whole set of new ant tasks within ejbdoclet to refactor the generated "interfaces" classes BACK into "ejbinterfaces" packages (copy "interfaces" to "ejbinterfaces", delete "interfaces", replace all references to "com.abc.main.interfaces" with "com.abc.main.ejbinterfaces" within generated class files.
> Looks like the packageSubstitution task SHOULD be able to handle the situation where packages and substituteWith start with the same text, but ARE NOT an exact match.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/xdoclet/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/