I upgraded from a 6/13 build to a 6/25 build.  I'm now getting compile
errors because the generated interfaces use the incorrect
fully-qualified class name.

For example, if I have a FooBean which uses local interface of BarBean:

   package com.acme.foo.ejb;

   import com.acme.bar.ejb.*;

   public class BarBean ... {

      .
      .
      .

      /**
       [XDoclet tags snipped]
      */
      public BarLocal getBar();
   }

I get a warning from XDoclet:

[ejbdoclet] INFO:    Some classes refer to other classes that were not
found among the sources or on the class path.
[ejbdoclet]          (Perhaps the referred class doesn't exist? Hasn't
been generated yet?)
[ejbdoclet]          The referring classes do not import any the fully
qualified names of these classes.
[ejbdoclet]          However, since no packages are imported, xjavadoc
has assumed that the referred classes
[ejbdoclet]          belong to the same package as the referring class.
The classes are:
.
.
.

Furthermore, I get a compile error in FooLocal.java because the code
generated for the CMR field for Bar is something like:

   package com.acme.foo.ejb;

   import com.acme.bar.ejb.*;

      .
      .
      .
      public com.acme.foo.ejb.BarLocal getBar(  ) ;
      .
      .
      .

which is incorrect.  The previous version I used generated the method
signature without fully qualifying the return type; e.g.,

      public BarLocal getBar(  );

letting the '*' import resolve the class.

Why the change?  For better or for worse, I prefer to just import '*' to
keep the import list small; now it seems XDoclet is forcing me to
specifically import the generated classes.

Rich





-------------------------------------------------------
Sponsored by:
ThinkGeek at http://www.ThinkGeek.com/
_______________________________________________
Xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user

Reply via email to