I'm not sure if this is a bug or not. 

I have two entity beans with a 1:m relationship.  For some reason I cannot get the 
tags to generate the correct data in the weblogic-cmp-rdbms-jar.xml file. 

The tags are generated correct in the ejb-jar.xml. 

in the 1 side of the relationship I have the following. 
 /**
     * getEventDefinitions
     * Returns a collection of items (via its Local interface)
     * @ejb.interface-method view-type="local"
     * @ejb:relation
     *   name="StateMachineDefinition-EventDefinition"
     *   role-name="StateMachineDefinition-Has-Many-EventDefinitions"
     *   target-ejb="EventDefinition"
     *   target-role-name="EventDefinition-Has-A-StateMachineDefinition"
     *   target-multiple="no"
     * @weblogic:column-map
     *   foreign-key-column="state_machine_definition_id"
     *   key-column="event_definition_id"
     */
    public abstract Collection getEventDefinitions();

    /**
     * @ejb.interface-method view-type="local"
     */
    public abstract void setEventDefinitions(Collection edLocal);


Then on the Many Side of the relationship I have the following: 
 /**
     * @ejb.interface-method view-type="local"
     * @ejb:relation
     *   name="EventDefinition-StateMachineDefinition"
     *   role-name="EventDefinition-Has-A-StateMachineDefinition"
     *   target-ejb="StateMachineDefinition"
     *   target-role-name="StateMachineDefinition-Has-Many-EventDefinitions"
     *   target-multiple="yes"
     * @weblogic:column-map
     *   key-column="state_machine_definition_id"
     *   foreign-key-column="event_definition_id"
     * @weblogic.dbms-column
     *
     */
    public abstract StateMachineDefinitionLocal getStateMachineDefinition();

    /**
     * @ejb.interface-method view-type="local"
     **/
    public abstract void setStateMachineDefinition(StateMachineDefinitionLocal 
smdLocal);

Here are a few problems that I run into.  While EventDefinition(m) has a foreign 
key(state_machine_definition_id) the StateMachineDefinition does not have a foreign 
key, but xdoclet requires the foreign-key to be specified. 

What ends up happening from these tags  is that only one relationship role gets 
generated in weblogic-cmp.rdbms-jar.xml

Something I am unsure about is if the @ejb:relation name attribute must be the same 
for both beans.  I have tried this but I still do not get the correct xml generated.  

Here is what gets generated in the ejb-jar.xml:

 <!-- Relationships -->
   <relationships >
      <ejb-relation >
         <ejb-relation-name>EventDefinition-StateMachineDefinition</ejb-relation-name>

         <ejb-relationship-role >
            
<ejb-relationship-role-name>EventDefinition-Has-A-StateMachineDefinition</ejb-relationship-role-name>
            <multiplicity>Many</multiplicity>
            <relationship-role-source >
               <ejb-name>EventDefinition</ejb-name>
            </relationship-role-source>
            <cmr-field >
               <cmr-field-name>stateMachineDefinition</cmr-field-name>
            </cmr-field>
         </ejb-relationship-role>

         <ejb-relationship-role >
            
<ejb-relationship-role-name>StateMachineDefinition-Has-Many-EventDefinitions</ejb-relationship-role-name>
            <multiplicity>One</multiplicity>
            <relationship-role-source >
               <ejb-name>StateMachineDefinition</ejb-name>
            </relationship-role-source>
         </ejb-relationship-role>

      </ejb-relation>
      <ejb-relation >
         <ejb-relation-name>StateMachineDefinition-EventDefinition</ejb-relation-name>

         <ejb-relationship-role >
            
<ejb-relationship-role-name>StateMachineDefinition-Has-Many-EventDefinitions</ejb-relationship-role-name>
            <multiplicity>One</multiplicity>
            <relationship-role-source >
               <ejb-name>StateMachineDefinition</ejb-name>
            </relationship-role-source>
            <cmr-field >
               <cmr-field-name>eventDefinitions</cmr-field-name>
               <cmr-field-type>java.util.Collection</cmr-field-type>
            </cmr-field>
         </ejb-relationship-role>

         <ejb-relationship-role >
            
<ejb-relationship-role-name>EventDefinition-Has-A-StateMachineDefinition</ejb-relationship-role-name>
            <multiplicity>Many</multiplicity>
            <relationship-role-source >
               <ejb-name>EventDefinition</ejb-name>
            </relationship-role-source>
         </ejb-relationship-role>

      </ejb-relation>
   </relationships>


Then in WEblogic=cmp-rdbs.-jar.xml I get the following:

<weblogic-rdbms-relation>
      <relation-name>EventDefinition-StateMachineDefinition</relation-name>
      <weblogic-relationship-role>

         
<relationship-role-name>EventDefinition-Has-A-StateMachineDefinition</relationship-role-name>
         <column-map>
            <foreign-key-column>event_definition_id</foreign-key-column>
            <key-column>state_machine_definition_id</key-column>
         </column-map>
      </weblogic-relationship-role>
   </weblogic-rdbms-relation>
   <weblogic-rdbms-relation>
      <relation-name>StateMachineDefinition-EventDefinition</relation-name>
      <weblogic-relationship-role>

         
<relationship-role-name>StateMachineDefinition-Has-Many-EventDefinitions</relationship-role-name>
         <column-map>
            <foreign-key-column>state_machine_definition_id</foreign-key-column>
            <key-column>event_definition_id</key-column>
         </column-map>
      </weblogic-relationship-role>
   </weblogic-rdbms-relation>


>From this Weblogic generates this error, because weblogic-cmp-rdbms-jar.xml is not 
>being generated correctly.  

        Error while reading 'META-INF/weblogic-cmp-rdbms-jar.xml'. The error was:


        In relationship StateMachineDefinition-EventDefinition, the 
<ejb-relationship-role>, EventDefinition-Has-A-StateMachineDefinition, defined in 
ejb-jar.xml must have a corresponding <
weblogic-relationship-role> in the RDBMS CMP deployment descriptor file with the same 
name.


-------------------------------------------------------
This SF.net email is sponsored by: The SF.net Donation Program.
Do you like what SourceForge.net is doing for the Open
Source Community?  Make a contribution, and help us add new
features and functionality. Click here: http://sourceforge.net/donate/
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user

Reply via email to