Hi Haroon, I indeed forgot the diff for the MethodTagsHandler class. Sorry for the mistake. I am attaching a file with the proper diff and updating the blog.
Regards, Nicolas On Wed, Dec 07, 2005 at 05:04:04PM -0500, Haroon Rafique wrote: > On Monday at 7:47pm, NL=>Nicolas Leroux <[EMAIL PROTECTED]> wrote: > > NL> > NL> I checkout the CVS head version of xdoclet and modified it. > NL> > NL> Regards, > NL> > NL> Nicolas > > > Hi Nicolas, > > A few issues: > > * while building xjavadoc, I had a failure in the junit tests: > > [junit] Running xjavadoc.XJavaDocTest > [junit] Tests run: 10, Failures: 1, Errors: 0, Time elapsed: 0.649 sec > > Looking at TEST-xjavadoc.XJavaDocTest.txt I find this at the bottom: > > Testcase: testInnerClass took 0.013 sec > Testcase: testIsA took 0.041 sec > FAILED > Hello is Action > junit.framework.AssertionFailedError: Hello is Action > at xjavadoc.XJavaDocTest.testIsA(XJavaDocTest.java:221) > > I commented out, the junit tests and eventually got the xjavadoc jar file. > > * while building xdoclet, I had a failure during compilation: > > [builder] compile: > [builder] [javac] Compiling 32 source files to > /home/haroon/src/dist/cvs-src/xdoclet/modules/build/ejb/classes > [builder] [javac] > /home/haroon/src/dist/cvs-src/xdoclet/modules/ejb/src/xdoclet/modules/ejb/dd/RelationTagsHandler.java:384: > > cannot find symbol > [builder] [javac] symbol : method stripGenerics(java.lang.String) > [builder] [javac] location: class > xdoclet.tagshandler.MethodTagsHandler > [builder] [javac] return > MethodTagsHandler.stripGenerics(MethodTagsHandler.getMethodTypeFor(currentRelation.getLeftMethod())); > > It looks like you added a method to MethodTagsHandler but it does not show > up in the diff. > > Any ideas? > -- > Haroon Rafique > <[EMAIL PROTECTED]>
Index: core/src/xdoclet/tagshandler/MethodTagsHandler.java =================================================================== RCS file: /cvsroot/xdoclet/xdoclet/core/src/xdoclet/tagshandler/MethodTagsHandler.java,v retrieving revision 1.34 diff -b -u -r1.34 MethodTagsHandler.java --- core/src/xdoclet/tagshandler/MethodTagsHandler.java 9 Apr 2005 15:16:56 -0000 1.34 +++ core/src/xdoclet/tagshandler/MethodTagsHandler.java 8 Dec 2005 08:27:20 -0000 @@ -113,6 +113,11 @@ return hasExecutableMember(clazz, methodName, parameters, setCurrentMethod, FOR_METHOD); } + public static String stripGenerics(String methodName) + { + return methodName.replaceAll("\\<(.*)\\>", ""); + } + /** * Returns 'get' or 'is' getter prefix part of the current method. Returns empty string if the method doesn't start * with either of the two getter prefixes. Index: modules/ejb/src/xdoclet/modules/ejb/dd/RelationTagsHandler.java =================================================================== RCS file: /cvsroot/xdoclet/xdoclet/modules/ejb/src/xdoclet/modules/ejb/dd/RelationTagsHandler.java,v retrieving revision 1.12 diff -u -r1.12 RelationTagsHandler.java --- modules/ejb/src/xdoclet/modules/ejb/dd/RelationTagsHandler.java 15 Jan 2005 01:11:39 -0000 1.12 +++ modules/ejb/src/xdoclet/modules/ejb/dd/RelationTagsHandler.java 6 Dec 2005 10:30:04 -0000 @@ -21,7 +21,7 @@ import xdoclet.util.TypeConversionUtil; /** - * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles�y</a> + * @author <a href="mailto:[EMAIL PROTECTED]">Aslak Helles?y</a> * @author Ara Abrahamian ([EMAIL PROTECTED]) * @created Oct 15, 2001 * @xdoclet.taghandler namespace="EjbRel" @@ -379,6 +379,12 @@ return MethodTagsHandler.getMethodTypeFor(currentRelation.getLeftMethod()); } + public String leftFieldTypeWithoutGenerics() throws XDocletException + { + return MethodTagsHandler.stripGenerics(MethodTagsHandler.getMethodTypeFor(currentRelation.getLeftMethod())); + } + + /** * Describe what the method does * @@ -390,6 +396,11 @@ return MethodTagsHandler.getMethodTypeFor(currentRelation.getRightMethod()); } + public String rightFieldTypeWithoutGenerics() throws XDocletException + { + return MethodTagsHandler.stripGenerics(MethodTagsHandler.getMethodTypeFor(currentRelation.getRightMethod())); + } + /** * Evaluates the body block if current method's return type is not a java.util.Collection or java.util.Set. Used by * forAllRelationships. @@ -620,7 +631,8 @@ */ public String leftMultiplicity() throws XDocletException { - return currentRelation.getLeftMultiplicity(); + //Strip down the generics + return currentRelation.getLeftMultiplicity().replace("\\<(.*)\\>", ""); } /** @@ -631,7 +643,7 @@ */ public String rightMultiplicity() throws XDocletException { - return currentRelation.getRightMultiplicity(); + return currentRelation.getRightMultiplicity().replace("\\<(.*)\\>", ""); } /** @@ -642,7 +654,8 @@ */ protected boolean isSetOrCollection(String type) { - return (type.equals("java.util.Collection") || type.equals("java.util.Set")); + return (type.startsWith("java.util.Collection") || type.startsWith("java.util.Set") + || type.startsWith("Collection") || type.startsWith("Set")); } protected boolean hasRelationships() @@ -679,7 +692,7 @@ /** * Holds class/method of the two end points of a relationship. * - * @author Aslak Helles�y + * @author Aslak Helles?y * @created August 28, 2001 */ public class RelationHolder Index: modules/ejb/src/xdoclet/modules/ejb/dd/resources/relationships.xdt =================================================================== RCS file: /cvsroot/xdoclet/xdoclet/modules/ejb/src/xdoclet/modules/ejb/dd/resources/relationships.xdt,v retrieving revision 1.3 diff -u -r1.3 relationships.xdt --- modules/ejb/src/xdoclet/modules/ejb/dd/resources/relationships.xdt 16 Apr 2004 16:37:56 -0000 1.3 +++ modules/ejb/src/xdoclet/modules/ejb/dd/resources/relationships.xdt 6 Dec 2005 10:30:06 -0000 @@ -19,7 +19,7 @@ <cmr-field <XDtId:prefixedId prefix="CMRField"/>> <cmr-field-name><XDtEjbRel:leftFieldName/></cmr-field-name> <XDtEjbRel:ifIsLeftMany> - <cmr-field-type><XDtEjbRel:leftFieldType/></cmr-field-type> + <cmr-field-type><XDtEjbRel:leftFieldTypeWithoutGenerics/></cmr-field-type> </XDtEjbRel:ifIsLeftMany> </cmr-field> </XDtEjbRel:ifLeftNavigable> @@ -40,7 +40,7 @@ <cmr-field <XDtId:prefixedId prefix="CMRField"/>> <cmr-field-name><XDtEjbRel:rightFieldName/></cmr-field-name> <XDtEjbRel:ifIsRightMany> - <cmr-field-type><XDtEjbRel:rightFieldType/></cmr-field-type> + <cmr-field-type><XDtEjbRel:rightFieldTypeWithoutGenerics/></cmr-field-type> </XDtEjbRel:ifIsRightMany> </cmr-field> </XDtEjbRel:ifRightNavigable> @@ -70,4 +70,4 @@ </relationships> </XDtMerge:ifMergeFileExists> </XDtEjbRel:ifNotHasRelationships> - \ No newline at end of file + Index: modules/ejb/src/xdoclet/modules/ejb/home/HomeTagsHandler.java =================================================================== RCS file: /cvsroot/xdoclet/xdoclet/modules/ejb/src/xdoclet/modules/ejb/home/HomeTagsHandler.java,v retrieving revision 1.39 diff -u -r1.39 HomeTagsHandler.java --- modules/ejb/src/xdoclet/modules/ejb/home/HomeTagsHandler.java 14 Aug 2005 08:27:43 -0000 1.39 +++ modules/ejb/src/xdoclet/modules/ejb/home/HomeTagsHandler.java 6 Dec 2005 10:30:07 -0000 @@ -211,10 +211,11 @@ if (tagType.equals("ejb:finder")) { String ejbReturn = method.getReturnType().getType().getQualifiedName(); - if (ejbReturn.equals("java.util.Collection") || - ejbReturn.equals("java.util.Enumeration") || - ejbReturn.equals("java.util.Set")) { - homeMethodName.append(ejbReturn); + if (ejbReturn.startsWith("java.util.Collection") || + ejbReturn.startsWith("java.util.Enumeration") || + ejbReturn.startsWith("java.util.Set")) { + ejbReturn = ejbReturn.replaceAll("<(.*?)>", ""); + homeMethodName.append(ejbReturn + "<" + InterfaceTagsHandler.getComponentInterface(type, clazz) + ">"); } else { @@ -377,13 +378,13 @@ String sign = st.nextToken(); StringBuffer ret = new StringBuffer(); - if (sign.equals("Collection") || sign.equals("java.util.Collection")) { + if (sign.startsWith("Collection") || sign.startsWith("java.util.Collection")) { ret.append("java.util.Collection"); } - else if (sign.equals("Enumeration") || sign.equals("java.util.Enumeration")) { + else if (sign.startsWith("Enumeration") || sign.startsWith("java.util.Enumeration")) { ret.append("java.util.Enumeration"); } - else if (sign.equals("Set") || sign.equals("java.util.Set")) { + else if (sign.startsWith("Set") || sign.startsWith("java.util.Set")) { ret.append("java.util.Set"); } else { @@ -915,6 +916,7 @@ } setCurrentClassTag(tag); + setCurrentSignature(signature); if (tag.getAttributeValue("unchecked") != null) { @@ -1065,10 +1067,10 @@ { String currentType = currentType(); - if ("Collection".equals(currentType) || - "java.util.Collection".equals(currentType) || - "Set".equals(currentType) || - "java.util.Set".equals(currentType)) { + if (currentType.startsWith("Collection") || + currentType.startsWith("java.util.Collection") || + currentType.startsWith("Set") || + currentType.startsWith("java.util.Set")) { generate(template); } }