Hi Sami,

I had the same problem when first trying out XDoclet, but was able to
overcome it. I've currently got a setup like the one you're describing,
where a SessionBeanSupport class provides basic implementations of the
plumbing methods and MySessionBean, for instance, extends
SessionBeanSupport and implements real business logic. Below are the
XDoclet tags in my implementation class (MySessionBean, for example),
which should help you out.

 * @ejb.bean  name="MySessionBean"
 *        description=" example bean"
 *        jndi-name="ejb/MySessionBean"
 *        type="Stateless"
 *        transaction-type="Container"
 *        remote-business-interface="com.bfd.ejb.MyInterface"
 *        local-business-interface="com.bfd.ejb.MyInterface "
 *
 * @ejb.interface       remote-class="com.bfd.interfaces.MyRemote"
 *            local-class="com.bfd.interfaces.MyLocal"
 *            local-extends="javax.ejb.EJBLocalObject"
 *            extends="javax.ejb.EJBObject"
 *
 * @ejb.home      remote-class="com.bfd.interfaces.MyHome"
 *            local-class="com.bfd.interfaces.MyLocalHome"
 *            local-extends="javax.ejb.EJBLocalHome"
 *            extends="javax.ejb.EJBHome"

I explicitly state the fully qualified names of the remote & local home
and business interfaces. Having tags similar to these in the
implementation class should produce the result you're looking for. I
also use the remote-/local-business-interface tag to ensure compile time
compatibility between my bean implementation and its various interfaces.
That's nothing to do with your post, but something I've found helpful as
it catches discrepancies before you deploy and saves a little bit of
head scratching occasionally.

Lastly, to be sure, you do need to keep the generate="false" tag in your
base sessionbean class (GenericSessionBean, I believe).

Best,

jonMC


-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]] On Behalf Of Sami
Lempinen
Sent: Saturday, February 01, 2003 3:32 AM
To: [EMAIL PROTECTED]
Subject: [Xdoclet-user] EJB inheritance - still unresolved?

Greetings!

I read back the list archives a little, and found some discussion
about the subject, but no clear resolution. I apologise if the matter
is already clear.

I have a base class for all session beans that provides certain
standard services to child classes (logging etc.), defined as

  public abstract class GenericSessionBean implements SessionBean

I then have other session beans that extend this base class, such as 

  public class PropertyManagerBean extends GenericSessionBean
    implements SessionBean

By default, Xdoclet seems to have the interfaces generated from
PropertyManagerBean extend the interfaces in GenericSessionBean, which
is not what I want. I only want the bean implementation extended, not
the interfaces, since this generates other problems related to the
create method signatures etc.

I tried the suggested @ejb.bean generate="false" in
GenericSessionBean, to no avail. The only way to achive what I want is
to remove the "implements SessionBean" from GenericSessionBean, which
seems a little suspect.

Is there way to extend only the implementation and not the interfaces?

Thanks!

-Sami

-- 
[EMAIL PROTECTED]             
VHF: Ilmaris / OG 9799
GSM: +358504876750
http://lempinen.net/veneveppi/


-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user



-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user

Reply via email to