found the problem.  AAAAAAAAARRRRRRRRGGGGGGG!  I had
a set/get for a field of the dependent object that 
I forgot to map in the <dependent> deployment 
descriptor.

Even worse, I can't blame cryptic exceptions.  Orion
properly spit out the exception telling me that I
couldn't declare the get/set abstract since I was
missing the field in the descriptor.

Thanks for your help Jim.

-tim


> -----Original Message-----
> From: Tim Drury [mailto:[EMAIL PROTECTED]]
> Sent: Friday, November 10, 2000 4:41 PM
> To: Orion-Interest
> Subject: RE: ejb2: EJB->DO, 1 to many problem
> 
> 
> 
> Still not working but here is some more data.  For the
> hell of it, I added another field to my EJB:
> 
> public abstract void setFoo(Collection c);
> public abstract Collection getFoo();
> 
> and added <cmp-field><field-name>foo</..></..>
> 
> Doing this created a field in the EJB table with type
> "oid" (its a PostgreSQL thing), but it didn't create
> a Foo table because I didn't define a Foo dependent
> object.  I renamed my EdiEnvelope DO to Foo so it
> would get mapped to this field. When I deployed,
> the Foo field disappeared from the EJB table and the
> EdiEnvelope field (which doesn't have a DO object
> relationship anymore) appeared.  Clearing the 
> <dependant> and <relationship> field are being
> recognized but why is the DO field not appearing
> in the EJB table?
> 
> What did your database tables look like to handle the 
> EJB (1) --> (N) dependent object?
> 
> -tim
> 
> 
> > -----Original Message-----
> > From: Jim Archer [mailto:[EMAIL PROTECTED]]
> > Sent: Friday, November 10, 2000 3:46 PM
> > To: Tim Drury; Orion-Interest
> > Subject: RE: ejb2: EJB->DO, 1 to many problem
> > 
> > 
> > OK Tim. Let me know if you don't find it by some time this 
> > evening and I 
> > can look it over this weekend. All I ask is that if you do 
> > find it you let 
> > me know so I can not put time in to it unnecesserally.
> > 
> > I do have the PD1 spec and I'll send it to you, but I can't 
> > do so for an 
> > hour or so. You will find very minor changes, like the 
> removal of the 
> > deepcopy() method decloration (it was required in pd1, 
> > removed in pd2).
> > 
> > Jim
> > 
> > 
> > --On Friday, November 10, 2000 3:32 PM -0500 Tim Drury 
> > <[EMAIL PROTECTED]> wrote:
> > 
> > >
> > > I took out the bi-directional stuff (I had actually
> > > tried both ways).  No luck.  I went ahead and upgraded
> > > to 1.4.4 and it still gave me the same problem.  There
> > > must be an error in my code (something not abstract
> > > when it should be or visa versa) or something wrong
> > > with ejb-jar.xml.
> > >
> > > BTW, 1.4.4 still requires you create a <cmp-field> for
> > > your dependent object collection.
> > >
> > > ALSO: do you (or anyone on the list) have a copy of
> > > the ejb 2.0 pd1 spec?  I have pd2 and pdFinal, but
> > > not the one that Orion is based on.  Maybe that would
> > > help me find my problem.  I couldn't find pd1 on the
> > > sun site.
> > >
> > > -tim
> > >
> > >> -----Original Message-----
> > >> From: Jim Archer [mailto:[EMAIL PROTECTED]]
> > >> Sent: Friday, November 10, 2000 3:16 PM
> > >> To: Tim Drury; Orion-Interest
> > >> Subject: RE: ejb2: EJB->DO, 1 to many problem
> > >>
> > >>
> > >> Tim, I just reviewed your messages again, a bit more
> > >> carefully. I see your
> > >> using Orion 1.4 and you have posted your code and descriptors.
> > >>
> > >> It looks like you are defineing a *bidirectional*
> > >> relationship between your
> > >> EB and dependent. This will fail under Orion 1.4. The example
> > >> I sent you
> > >> will fail under 1.4, as it was designed to as a demonstration
> > >> of the bug. A
> > >> *unidirectional* relationship will work.
> > >>
> > >> Anyhow, I just added a comment to a bit of your descriptor
> > >> (right below)
> > >> that will make this a unidirectional relationship. Try that
> > >> change and if
> > >> it will deploy. If it does not deploy I'll take some time to
> > >> look over your
> > >> code and descriptors when I can, but not right away. I'm 
> > just became
> > >> swamped. Always a crisis!
> > >>
> > >> If you need the bidirectional relationship, you'll need to go
> > >> to 1.4.4,
> > >> where this is supposed to work, although I have not 
> tested it yet.
> > >>
> > >> <ejb-relation>
> > >>    <ejb-relation-name>EdiFile-EdiEnvelopes</ejb-relation-name>
> > >>    <ejb-relationship-role>
> > >>
> > >>
> > >> <ejb-relationship-role-name>EdiFile-has-EdiEnvelopes</ejb-rela
> > >> tionship-role
> > >> - name>
> > >>      <multiplicity>one</multiplicity>
> > >>      <role-source>
> > >>        <ejb-name>EdiFileEJB</ejb-name>
> > >>      </role-source>
> > >>      <cmr-field>
> > >>        <cmr-field-name>envelopes</cmr-field-name>
> > >>        <cmr-field-type>java.util.Collection</cmr-field-type>
> > >>      </cmr-field>
> > >>    </ejb-relationship-role>
> > >>
> > >>    <ejb-relationship-role>
> > >>
> > >> <ejb-relationship-role-name>EdiEnvelopes-belongsto-EdiFile</ej
> > >> b-relationshi
> > >> p -role-name>
> > >>     <multiplicity>many</multiplicity>
> > >>      <role-source>
> > >>        <dependent-name>EdiEnvelope</dependent-name>
> > >>      </role-source>
> > >>
> > >>      <!-- This cmr-field tag makes this a bidirectional
> > >> relationship that
> > >> will fail under Orion 1.4
> > >>      <cmr-field>
> > >>         <cmr-field-name>ediFile</cmr-field-name>
> > >>         </cmr-field>
> > >>      -->
> > >>
> > >>
> > >>    </ejb-relationship-role>
> > >>  </ejb-relation>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >> --On Friday, November 10, 2000 2:54 PM -0500 Tim Drury
> > >> <[EMAIL PROTECTED]> wrote:
> > >>
> > >> >
> > >> > I did put that in.  In fact, it was your examples
> > >> > that I based all my development on :)
> > >> >
> > >> > I just don't see any differences between your
> > >> > descriptor file and mine.
> > >> >
> > >> > -tim
> > >> >
> > >> >
> > >> >> -----Original Message-----
> > >> >> From: Jim Archer [mailto:[EMAIL PROTECTED]]
> > >> >> Sent: Friday, November 10, 2000 2:31 PM
> > >> >> To: Tim Drury; Orion-Interest
> > >> >> Subject: RE: ejb2: EJB->DO, 1 to many problem
> > >> >>
> > >> >>
> > >> >> Hi Tim...
> > >> >>
> > >> >> No, I didn't mean in the relationship tag. Sorry for the
> > >> >> confusion. My
> > >> >> fault entirely. I meant in the <entity> tag.
> > >> >>
> > >> >> The descriptor I pasted below is an example of one which
> > >> >> fails to deploy on
> > >> >> Orion 1.4.0 because of a now fixed Orion bug (I have not yet
> > >> >> retested but
> > >> >> Bugzilla says its fixed in 1.4.4). However, if you exampne
> > >> >> the part that
> > >> >> defines the entity beans you'll see what I mean. There is a
> > >> >> comment you
> > >> >> can't miss.
> > >> >>
> > >> >> Let us know if it works and if not we'll look at other things.
> > >> >>
> > >> >> Jim
> > >> >>
> > >> >>
> > >> >> <?xml version="1.0"?>
> > >> >> <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, 
> > Inc.//DTD Enterprise
> > >> >> JavaBeans 2.0//EN" 
> > "http://java.sun.com/j2ee/dtds/ejb-jar_2_0.dtd">
> > >> >> <ejb-jar>
> > >> >>       <description>Test Sample EJB 2.0 EB</description>
> > >> >>       <display-name>Person</display-name>
> > >> >>       <enterprise-beans>
> > >> >>               <entity>
> > >> >>                 <cmp-version>2.0</cmp-version>
> > >> >>                       <description>Person</description>
> > >> >>                       
> > >> >> <display-name>Test20CmpDoOM.eb.Person</display-name>
> > >> >>                       
> > <ejb-name>Test20CmpDoOM.eb.PersonEJB</ejb-name>
> > >> >>                       <home>Test20CmpDoOM.eb.PersonHome</home>
> > >> >>                       <remote>Test20CmpDoOM.eb.Person</remote>
> > >> >>                       
> > >> >> <ejb-class>Test20CmpDoOM.eb.PersonEJB</ejb-class>
> > >> >>                       
> > <persistence-type>Container</persistence-type>
> > >> >>                       
> > >> >> <prim-key-class>java.lang.String</prim-key-class>
> > >> >>                       <reentrant>True</reentrant>
> > >> >>
> > >> >>                       <!-- These lines should not be required
> > >> >> (according to the spec) -->
> > >> >>                       <!-- but without them 
> > deployment fails -->
> > >> >>                       
> > >> >> <cmp-field><field-name>addrDo</field-name></cmp-field>
> > >> >>                       
> > >> >> <cmp-field><field-name>emailDos</field-name></cmp-field>
> > >> >>                       
> > >> >>                       
> > >> >> <cmp-field><field-name>userId</field-name></cmp-field>
> > >> >>                       
> > >> >> <cmp-field><field-name>firstName</field-name></cmp-field>
> > >> >>                       
> > >> >> <cmp-field><field-name>lastName</field-name></cmp-field>
> > >> >>
> > >> >>                       <primkey-field>userId</primkey-field>
> > >> >>               </entity>
> > >> >>       </enterprise-beans>
> > >> >>
> > >> >>   <dependents>
> > >> >>               <dependent>
> > >> >>                       <dependent-name>addrDo</dependent-name>
> > >> >>                       
> > >> >> <dependent-class>Test20CmpDoOM.eb.AddrDo</dependent-class>
> > >> >>                       
> > >> >> <cmp-field><field-name>street</field-name></cmp-field>
> > >> >>                       
> > >> >> <cmp-field><field-name>city</field-name></cmp-field>
> > >> >>                       
> > >> >> <cmp-field><field-name>state</field-name></cmp-field>
> > >> >>                       
> > >> >> <cmp-field><field-name>zip</field-name></cmp-field>
> > >> >>               </dependent>
> > >> >>               <dependent>
> > >> >>                       <dependent-name>emailDo</dependent-name>
> > >> >>                       
> > >> >> <dependent-class>Test20CmpDoOM.eb.EmailDo</dependent-class>
> > >> >>                       
> > >> >> <cmp-field><field-name>email</field-name></cmp-field>
> > >> >>                       
> > >> >> <cmp-field><field-name>person</field-name></cmp-field>
> > >> >>               </dependent>
> > >> >>       </dependents>
> > >> >>
> > >> >>       <relationships>
> > >> >>               <ejb-relation>
> > >> >>                       
> > >> >> <ejb-relation-name>Person-Address</ejb-relation-name>
> > >> >>                       <ejb-relationship-role>
> > >> >>
> > >> >>       
> > >> >> <ejb-relationship-role-name>Person-has-Address</ejb-relationsh
> > >> >> ip-role-name>
> > >> >>                               <multiplicity>one</multiplicity>
> > >> >>                               
> > >> >> <role-source><ejb-name>Test20CmpDoOM.eb.Person</ejb-name></rol
> > >> >> e-source>
> > >> >>                               <cmr-field>
> > >> >>                                       
> > >> >> <cmr-field-name>addrDo</cmr-field-name>
> > >> >>                                       
> > >> >> <cmr-field-type>Test20CmpDoOM.eb.AddrDo</cmr-field-type>
> > >> >>                               </cmr-field>
> > >> >>                       </ejb-relationship-role>
> > >> >>                       <ejb-relationship-role>
> > >> >>
> > >> >>       
> > >> >> <ejb-relationship-role-name>Address-belongsto-User</ejb-relati
> > >> >> onship-role-
> > >> >> name>
> > >> >>                               <multiplicity>one</multiplicity>
> > >> >>                               
> > >> >> 
> > <role-source><dependent-name>addrDo</dependent-name></role-source>
> > >> >>                       </ejb-relationship-role>
> > >> >>               </ejb-relation>
> > >> >>               
> > >> >>               <ejb-relation>
> > >> >>                       
> > >> >> <ejb-relation-name>Person-Email</ejb-relation-name>
> > >> >>                       <ejb-relationship-role>
> > >> >>
> > >> >>       
> > >> >> <ejb-relationship-role-name>Person-has-Email</ejb-relationship
> > >> >> -role-name>
> > >> >>                               <multiplicity>one</multiplicity>
> > >> >>
> > >> >>       
> > >> >> <role-source><ejb-name>Test20CmpDoOM.eb.PersonEJB</ejb-name></
> > >> >> role-source>
> > >> >>                               <cmr-field>
> > >> >>                                       
> > >> >> <cmr-field-name>emailDos</cmr-field-name>
> > >> >>                                       
> > >> >> <cmr-field-type>java.util.Collection</cmr-field-type>
> > >> >>                               </cmr-field>
> > >> >>                       </ejb-relationship-role>
> > >> >>                       <ejb-relationship-role>
> > >> >>
> > >> >>       
> > >> >> <ejb-relationship-role-name>Email-belongsto-User</ejb-relation
> > >> >> ship-role-na
> > >> >> me>
> > >> >>                               
> > <multiplicity>many</multiplicity>
> > >> >>                               
> > >> >> 
> > <role-source><dependent-name>emailDo</dependent-name></role-source>
> > >> >>                               <!-- -->
> > >> >>                               <cmr-field>
> > >> >>                                       
> > >> >> <cmr-field-name>person</cmr-field-name>
> > >> >>                                       
> > >> >> <cmr-field-type>Test20CmpDoOM.eb.Person</cmr-field-type>
> > >> >>                               </cmr-field>
> > >> >>                               <!-- -->
> > >> >>                       </ejb-relationship-role>
> > >> >>               </ejb-relation>
> > >> >>       </relationships>
> > >> >>
> > >> >>    <assembly-descriptor>
> > >> >>       <security-role>
> > >> >>          <description>Users</description>
> > >> >>          <role-name>users</role-name>
> > >> >>       </security-role>
> > >> >>    </assembly-descriptor>
> > >> >> </ejb-jar>
> > >> >>
> > >> >>
> > >> >> --On Friday, November 10, 2000 2:19 PM -0500 Tim Drury
> > >> >> <[EMAIL PROTECTED]> wrote:
> > >> >>
> > >> >> >
> > >> >> > Jim,
> > >> >> >
> > >> >> > Thanks for the quick response.  I'm using 1.4 and I've
> > >> >> > gotten 1:1 to work.  I think my problem may be what
> > >> >> > you mentioned about a non-standard CMR field in
> > >> >> > ejb-jar.xml.  What are you talking about exactly?
> > >> >> > In the <relationship> tag?  Here is my relationship
> > >> >> > area again:
> > >> >> >
> > >> >> > <ejb-relation>
> > >> >> >   
> <ejb-relation-name>EdiFile-EdiEnvelopes</ejb-relation-name>
> > >> >> >   <ejb-relationship-role>
> > >> >> >
> > >> >> >
> > >> >> <ejb-relationship-role-name>EdiFile-has-EdiEnvelopes</ejb-rela
> > >> >> tionship-ro
> > >> >> > le- name>
> > >> >> >     <multiplicity>one</multiplicity>
> > >> >> >     <role-source>
> > >> >> >       <ejb-name>EdiFileEJB</ejb-name>
> > >> >> >     </role-source>
> > >> >> >     <cmr-field>
> > >> >> >       <cmr-field-name>envelopes</cmr-field-name>
> > >> >> >       <cmr-field-type>java.util.Collection</cmr-field-type>
> > >> >> >     </cmr-field>
> > >> >> >   </ejb-relationship-role>
> > >> >> >
> > >> >> >   <ejb-relationship-role>
> > >> >> >
> > >> >> >
> > >> >> <ejb-relationship-role-name>EdiEnvelopes-belongsto-EdiFile</ej
> > >> >> b-relations
> > >> >> > hip -role-name>
> > >> >> >     <multiplicity>many</multiplicity>
> > >> >> >     <role-source>
> > >> >> >       <dependent-name>EdiEnvelope</dependent-name>
> > >> >> >     </role-source>
> > >> >> >     <cmr-field>
> > >> >> >        <cmr-field-name>ediFile</cmr-field-name>
> > >> >> >        </cmr-field>
> > >> >> >   </ejb-relationship-role>
> > >> >> > </ejb-relation>
> > >> >> >
> > >> >> >
> > >> >> >> -----Original Message-----
> > >> >> >> From: Jim Archer [mailto:[EMAIL PROTECTED]]
> > >> >> >> Sent: Friday, November 10, 2000 1:14 PM
> > >> >> >> To: Orion-Interest
> > >> >> >> Cc: Tim Drury
> > >> >> >> Subject: Re: ejb2: EJB->DO, 1 to many problem
> > >> >> >>
> > >> >> >>
> > >> >> >> Hi Tim...
> > >> >> >>
> > >> >> >> I'll take a stab at trying to help with this. I have done a
> > >> >> >> lot of work
> > >> >> >> with dependent objects.
> > >> >> >>
> > >> >> >> First, using Orion 1.4.0 I found that unidirectional
> > >> >> >> dependents work as
> > >> >> >> they should (when an EB has dependents). If you have an EB
> > >> >> >> with dependents
> > >> >> >> in a 1-to-1 relationship, Orion will create one 
> table and map
> > >> >> >> the fields of
> > >> >> >> the dependent into the table for the EB. If you 
> have a 1-ri-n
> > >> >> >> relationship,
> > >> >> >> Orion will create two tables.
> > >> >> >>
> > >> >> >> I have found that Orion 1.4.0 does work with 
> dependents in a
> > >> >> >> unidirectional
> > >> >> >> relationship properly. The error your reporting seems
> > >> to indicate a
> > >> >> >> descriptor error. Remember that Orion 1.4.0 has a bug in
> > >> >> >> which you must
> > >> >> >> define the CMR field also as a CMP field (in 
> violation of all
> > >> >> >> EJB 2.0 spec
> > >> >> >> revisions).
> > >> >> >>
> > >> >> >> I have also found that Orion 1.4.0 fasils to work 
> > properly with
> > >> >> >> bidirectional dependent relationships. According 
> to Bugzilla,
> > >> >> >> this has been
> > >> >> >> fixed in Orion 1.4.4 but I have not attempted to 
> > test this yet.
> > >> >> >>
> > >> >> >> If you can tell us what version of Orion your 
> using and post
> > >> >> >> the relevant
> > >> >> >> portion of your descriptor we can probably offer better
> > >> assistence.
> > >> >> >>
> > >> >> >> Jim
> > >> >> >>
> > >> >> >>
> > >> >> >> --On Friday, November 10, 2000 10:42 AM -0500 Tim Drury
> > >> >> >> <[EMAIL PROTECTED]> wrote:
> > >> >> >>
> > >> >> >> >
> > >> >> >> > I've gotten EJB->dep obj working for 1-to-1 and
> > >> >> >> > I've gotten EJB->EJB 1-to-1 and 1-to-many working.
> > >> >> >> > But for the life of me, I cannot get EJB->dep obj
> > >> >> >> > working for 1-to-many.
> > >> >> >> >
> > >> >> >> > The object model is:
> > >> >> >> >
> > >> >> >> > EdiFile(EJB) ---- 1 to N ----- EdiEnvelope (DO)
> > >> >> >> >
> > >> >> >> > This is a unidirectional relationship.  I think
> > >> >> >> > someone has been trying bi-directional with no
> > >> >> >> > luck.
> > >> >> >> >
> > >> >> >> > The problem manifests itself in two ways.  First,
> > >> >> >> > Orion throws an error when it tries to compiles
> > >> >> >> > the stubs/skeletons:
> > >> >> >> >
> > >> >> >> > class EdiEnvelope_Dependent0 is an abstract class.
> > >> >> >> > It can't be instantiated.
> > >> >> >> >
> > >> >> >> > (well this is obvious; dependent objects are supposed
> > >> >> >> > to be abstract).
> > >> >> >> >
> > >> >> >> > Second, the database table for my EJB doesn't contain
> > >> >> >> > _any_ reference to the dependent object.  BTW, the
> > >> >> >> > table for the dependent object looks fine.
> > >> >> >> >
> > >> >> >> > Thanks for any help,
> > >> >> >> > -tim
> > >> >> >> >
> > >> >> >> >
> > >> >> >> >
> > >> >> >> > Here is my dependent object:
> > >> >> >> >
> > >> >> >> > ------------------------------------------------------
> > >> >> >> > package com.tfc.ejb;
> > >> >> >> >
> > >> >> >> > import java.rmi.RemoteException;
> > >> >> >> > import javax.ejb.RemoveException;
> > >> >> >> >
> > >> >> >> > import java.util.Date;
> > >> >> >> > import java.util.Collection;
> > >> >> >> > import java.util.Iterator;
> > >> >> >> >
> > >> >> >> > public abstract class EdiEnvelope implements
> > >> java.io.Serializable
> > >> >> >> > {
> > >> >> >> >    public abstract void 
> > setSenderIdQualifier(String s) throws
> > >> >> >> > RemoteException;
> > >> >> >> >    public abstract void setSenderId(String s) throws
> > >> >> >> RemoteException;
> > >> >> >> >    public abstract void setReceiverIdQualifier(String
> > >> s) throws
> > >> >> >> > RemoteException;
> > >> >> >> >    public abstract void setReceiverId(String s) throws
> > >> >> >> RemoteException;
> > >> >> >> >    public abstract void setDate(Date d) throws
> > >> RemoteException;
> > >> >> >> >    public abstract void setVersion(String s) throws
> > >> >> RemoteException;
> > >> >> >> >    public abstract void setControlNumber(long l) throws
> > >> >> >> RemoteException;
> > >> >> >> >    public abstract void setAck(boolean b) throws
> > >> RemoteException;
> > >> >> >> >    public abstract void setNumberOfGroups(int i) throws
> > >> >> >> RemoteException;
> > >> >> >> >    public abstract void setTransactionSets(Collection
> > >> c) throws
> > >> >> >> > RemoteException;
> > >> >> >> >    public abstract void setId(String s) throws
> > >> RemoteException;
> > >> >> >> >
> > >> >> >> >    public abstract String getSenderIdQualifier() throws
> > >> >> >> RemoteException;
> > >> >> >> >    public abstract String getSenderId() throws
> > >> RemoteException;
> > >> >> >> >    public abstract String getReceiverIdQualifier() throws
> > >> >> >> RemoteException;
> > >> >> >> >    public abstract String getReceiverId() throws
> > >> RemoteException;
> > >> >> >> >    public abstract Date getDate() throws RemoteException;
> > >> >> >> >    public abstract String getVersion() throws 
> > RemoteException;
> > >> >> >> >    public abstract long getControlNumber() throws
> > >> >> RemoteException;
> > >> >> >> >    public abstract boolean getAck() throws 
> RemoteException;
> > >> >> >> >    public abstract int getNumberOfGroups() throws
> > >> >> RemoteException;
> > >> >> >> >    public abstract Collection getTransactionSets() throws
> > >> >> >> RemoteException;
> > >> >> >> >    public abstract String getId() throws RemoteException;
> > >> >> >> >
> > >> >> >> >    public String ejbCreateEdiEnvelope() throws 
> > RemoteException
> > >> >> >> >    {
> > >> >> >> >       this.setId( (new 
> java.rmi.server.UID()).toString() );
> > >> >> >> >       return null;
> > >> >> >> >    }
> > >> >> >> >    public void ejbPostCreateEdiEnvelope() { }
> > >> >> >> >    public abstract EdiEnvelope deepCopy();
> > >> >> >> >
> > >> >> >> > } // end EdiEnvelope
> > >> >> >> > 
> ----------------------------------------------------------
> > >> >> >> >
> > >> >> >> > Here is my EJB:
> > >> >> >> >
> > >> >> >> > 
> ----------------------------------------------------------
> > >> >> >> > package com.tfc.ejb;
> > >> >> >> >
> > >> >> >> > import javax.ejb.EntityBean;
> > >> >> >> > import javax.ejb.CreateException;
> > >> >> >> > import javax.ejb.RemoveException;
> > >> >> >> > import java.rmi.RemoteException;
> > >> >> >> > import javax.ejb.EntityContext;
> > >> >> >> >
> > >> >> >> > import java.util.Date;
> > >> >> >> > import java.util.Iterator;
> > >> >> >> > import java.util.Collection;
> > >> >> >> >
> > >> >> >> > public abstract class EdiFileEJB implements EntityBean
> > >> >> >> > {
> > >> >> >> >    private EntityContext ec;
> > >> >> >> >
> > >> >> >> >    // accessors
> > >> >> >> >
> > >> >> >> >    public void setEntityContext(EntityContext ec) {
> > >> >> this.ec = ec; }
> > >> >> >> >    public void unsetEntityContext()               {
> > >> ec = null; }
> > >> >> >> >
> > >> >> >> >    public abstract void setFilename(String s);
> > >> >> >> >    public abstract void setDateDownloaded(Date d);
> > >> >> >> >    public abstract void setEnvelopes(Collection c);
> > >> >> >> >    public abstract void setId(String s);
> > >> >> >> >
> > >> >> >> >    public abstract String getFilename();
> > >> >> >> >    public abstract Date getDateDownloaded();
> > >> >> >> >    public abstract Collection getEnvelopes();
> > >> >> >> >    public abstract String getId();
> > >> >> >> >
> > >> >> >> >    public long getNumberOfEnvelopes()
> > >> >> >> >    {
> > >> >> >> >       Collection c = this.getEnvelopes();
> > >> >> >> >       return c.size();
> > >> >> >> >    }
> > >> >> >> >    public long getEnvelopeControlNumber(int index) throws
> > >> >> >> RemoteException
> > >> >> >> >    {
> > >> >> >> >       long controlNumber = 0;
> > >> >> >> >       Collection c = this.getEnvelopes();
> > >> >> >> >       try {
> > >> >> >> >          EdiEnvelope[] ea = (EdiEnvelope[])c.toArray();
> > >> >> >> >          EdiEnvelope e = ea[index];
> > >> >> >> >          controlNumber = e.getControlNumber();
> > >> >> >> >       } catch (Exception ex) {
> > >> >> >> >          throw new RemoteException("index out of 
> bounds");
> > >> >> >> >       }
> > >> >> >> >       return controlNumber;
> > >> >> >> >    }
> > >> >> >> >
> > >> >> >> >    public void addEnvelope(String senderIdQualifier,
> > >> >> >> >                            String senderId,
> > >> >> >> >                            String receiverIdQualifier,
> > >> >> >> >                            String receiverId,
> > >> >> >> >                            Date date,
> > >> >> >> >                            String version,
> > >> >> >> >                            long controlNumber,
> > >> >> >> >                            boolean ack) throws
> > >> RemoteException,
> > >> >> >> > CreateException
> > >> >> >> >    {
> > >> >> >> >       EdiEnvelope e = this.createEdiEnvelope();
> > >> >> >> >       e.setSenderIdQualifier(senderIdQualifier);
> > >> >> >> >       e.setSenderId(senderId);
> > >> >> >> >       e.setReceiverIdQualifier(receiverIdQualifier);
> > >> >> >> >       e.setReceiverId(receiverId);
> > >> >> >> >       e.setDate(date);
> > >> >> >> >       e.setVersion(version);
> > >> >> >> >       e.setControlNumber(controlNumber);
> > >> >> >> >       e.setAck(ack);
> > >> >> >> >       this.getEnvelopes().add(e);
> > >> >> >> >    }
> > >> >> >> >
> > >> >> >> >    public abstract EdiEnvelope createEdiEnvelope() throws
> > >> >> >> CreateException;
> > >> >> >> >
> > >> >> >> >    public String ejbCreate()
> > >> >> >> >    {
> > >> >> >> >       this.setId( (new 
> java.rmi.server.UID()).toString() );
> > >> >> >> >       return null;
> > >> >> >> >    }
> > >> >> >> >
> > >> >> >> >    public void ejbPostCreate() { }
> > >> >> >> >    public void ejbActivate() { }
> > >> >> >> >    public void ejbPassivate() { }
> > >> >> >> >    public void ejbLoad() { }
> > >> >> >> >    public void ejbStore() { }
> > >> >> >> >    public void ejbRemove() { }
> > >> >> >> > } // end EdiFileEJB
> > >> >> >> >
> > >> >> >> > ---------------------------------------------------
> > >> >> >> >
> > >> >> >> > and here are the relevent parts of ejb-jar.xml:
> > >> >> >> >
> > >> >> >> > ----------------------------------------------------
> > >> >> >> >
> > >> >> >> > ...
> > >> >> >> >        <entity>
> > >> >> >> >           <cmp-version>2.x</cmp-version>
> > >> >> >> >            <description>EDI file</description>
> > >> >> >> >            <ejb-name>EdiFileEJB</ejb-name>
> > >> >> >> >            <home>com.tfc.ejb.EdiFileHome</home>
> > >> >> >> >            <remote>com.tfc.ejb.EdiFile</remote>
> > >> >> >> >            <ejb-class>com.tfc.ejb.EdiFileEJB</ejb-class>
> > >> >> >> >            <persistence-type>Container</persistence-type>
> > >> >> >> >            <reentrant>False</reentrant>
> > >> >> >> >            <cmp-field>
> > >> >> >> >              <field-name>filename</field-name>
> > >> >> >> >            </cmp-field>
> > >> >> >> >            <cmp-field>
> > >> >> >> >              <field-name>dateDownloaded</field-name>
> > >> >> >> >            </cmp-field>
> > >> >> >> >            <cmp-field>
> > >> >> >> >              <field-name>envelopes</field-name>
> > >> >> >> >            </cmp-field>
> > >> >> >> >            <cmp-field>
> > >> >> >> >              <field-name>id</field-name>
> > >> >> >> >            </cmp-field>
> > >> >> >> >            <primkey-field>id</primkey-field>
> > >> >> >> >          
> > >> <prim-key-class>java.lang.String</prim-key-class>
> > >> >> >> >        </entity>
> > >> >> >> > ...
> > >> >> >> >
> > >> >> >> >       <dependent>
> > >> >> >> >          <dependent-name>EdiEnvelope</dependent-name>
> > >> >> >> >
> > >> >> <dependent-class>com.tfc.ejb.EdiEnvelope</dependent-class>
> > >> >> >> >            <cmp-field>
> > >> >> >> >              <field-name>senderIdQualifier</field-name>
> > >> >> >> >            </cmp-field>
> > >> >> >> >            <cmp-field>
> > >> >> >> >              <field-name>senderId</field-name>
> > >> >> >> >            </cmp-field>
> > >> >> >> >            <cmp-field>
> > >> >> >> >              <field-name>receiverIdQualifier</field-name>
> > >> >> >> >            </cmp-field>
> > >> >> >> >            <cmp-field>
> > >> >> >> >              <field-name>receiverId</field-name>
> > >> >> >> >            </cmp-field>
> > >> >> >> >            <cmp-field>
> > >> >> >> >              <field-name>date</field-name>
> > >> >> >> >            </cmp-field>
> > >> >> >> >            <cmp-field>
> > >> >> >> >              <field-name>version</field-name>
> > >> >> >> >            </cmp-field>
> > >> >> >> >            <cmp-field>
> > >> >> >> >              <field-name>controlNumber</field-name>
> > >> >> >> >            </cmp-field>
> > >> >> >> >            <cmp-field>
> > >> >> >> >              <field-name>ack</field-name>
> > >> >> >> >            </cmp-field>
> > >> >> >> >            <cmp-field>
> > >> >> >> >              <field-name>transactionSets</field-name>
> > >> >> >> >            </cmp-field>
> > >> >> >> >            <cmp-field>
> > >> >> >> >              <field-name>id</field-name>
> > >> >> >> >            </cmp-field>
> > >> >> >> >           
> <prim-key-class>java.lang.String</prim-key-class>
> > >> >> >> >            <primkey-field>id</primkey-field>
> > >> >> >> >        </dependent>
> > >> >> >> >
> > >> >> >> > ...
> > >> >> >> >
> > >> >> >> >       <ejb-relation>
> > >> >> >> >
> > >> >> <ejb-relation-name>EdiFile-EdiEnvelopes</ejb-relation-name>
> > >> >> >> >          <ejb-relationship-role>
> > >> >> >> >
> > >> >> >> >
> > >> >> >> 
> > <ejb-relationship-role-name>EdiFile-has-EdiEnvelopes</ejb-rela
> > >> >> >> tionship-ro
> > >> >> >> > le- name>
> > >> >> >> >             <multiplicity>one</multiplicity>
> > >> >> >> >             <role-source>
> > >> >> >> >                <ejb-name>EdiFileEJB</ejb-name>
> > >> >> >> >             </role-source>
> > >> >> >> >             <cmr-field>
> > >> >> >> >                <cmr-field-name>envelopes</cmr-field-name>
> > >> >> >> >
> > >> >> <cmr-field-type>java.util.Collection</cmr-field-type>
> > >> >> >> >             </cmr-field>
> > >> >> >> >          </ejb-relationship-role>
> > >> >> >> >          <ejb-relationship-role>
> > >> >> >> >
> > >> >> >> >
> > >> >> >> 
> > <ejb-relationship-role-name>EdiEnvelopes-belongsto-EdiFile</ej
> > >> >> >> b-relations
> > >> >> >> > hip -role-name>
> > >> >> >> >             <multiplicity>many</multiplicity>
> > >> >> >> >             <role-source>
> > >> >> >> >                
> <dependent-name>EdiEnvelope</dependent-name>
> > >> >> >> >             </role-source>
> > >> >> >> >             <cmr-field>
> > >> >> >> >                <cmr-field-name>ediFile</cmr-field-name>
> > >> >> >> >             </cmr-field>
> > >> >> >> >          </ejb-relationship-role>
> > >> >> >> >       </ejb-relation>
> > >> >> >> >
> > >> >> >>
> > >> >> >>
> > >> >> >>
> > >> >> >>
> > >> >>
> > >> >>
> > >> >>
> > >> >>
> > >>
> > >>
> > >>
> > >>
> > 
> > 
> > 
> > 
> 

Reply via email to