Hi everybody.

In the latest release, GemStone's EJB server introduces improved deployment
validation. In particular, an entity bean's primary key class "must be [...]
not abstract". This collides with our requirement to use interfaces as
primary key class. Of course, all classes that implement our primary key
_interface_ do follow the rules, like implementing equals(), hashCode(), and
being serializable. However, we need to specify an interface in the
deployment descriptor.

I guess, the restriction is derived from a somewhat unclear phrase in the
EJB spec. Both EJB 1.0 and EJB 1.1 say something about primary key classes
having to have a public default constructor. This is of course not possible
in an interface.

We can circumvent the restriction by
setting -Dgsj.deployment.mildValidation=true in GemStone but we suspect it
to be enforced in future releases.

So what's the correct(TM) interpretation of the EJB spec concerning this
issue? Are interfaces allowed as primary key classes, given that all
implementing classes follow the rules?

Regards,

Hasko Heinecke
Daedalos Consulting AG

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff EJB-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to