Menu

#44 Hardcoded method-intf

closed-fixed
nobody
ejbdoclet (127)
5
2002-01-12
2001-11-26
No

In asm-descriptor.j the many method-intf elements are
hardcoded to Home, but according to the EJB20 spec, it
can be LocalHome too. In fact, the legal values for
this element is (taken from spec):

The method-intf element must be one of the following:
<method-intf>Home</method-intf>
<method-intf>Remote</method-intf>
<method-intf>LocalHome</method-intf>
<method-intf>Local</method-intf>

Therefore, the InterfaceTagsHandler.methodIntf()
method should handle the local cases too, and the
hardcoded Home should be replaced with
<XDtEjbIntf:methodIntf/>

Discussion

  • Aslak Hellesřy

    Aslak Hellesřy - 2001-11-26
    • assigned_to: nobody --> rinkrank
     
  • Aslak Hellesřy

    Aslak Hellesřy - 2001-11-26

    Logged In: YES
    user_id=49846

    After looking into it a bit closer, I realise that the
    hardcoded Home occurs for finder methods. These are defined
    at the class level, so <XDtEjbIntf:methodIntf/> is not a
    good replacement.

    In stead, I suggest we add an extra finder-intf parameter
    that can take the values Home or LocalHome to the
    @ejb:finder and @ejb:pk tags. Then we should replace
    hardcoded Home with <XDtClass:classTagValue
    tagName="ejb:finder" paramName="finder-intf"/>.

    Comments?

     
  • Nobody/Anonymous

    Logged In: NO

    I think the latest cvs code fixes this problem (?). Could we
    close this bug?

    Ara.

     
  • Aslak Hellesřy

    Aslak Hellesřy - 2002-01-05

    Logged In: YES
    user_id=49846

    No, we can't close it. InterfaceTagsHandler.methodIntf()
    still only supports remote EJBs, and
    <XDtMethod:methodIntf/> is still being used in weblogic-ejb-
    jar.xml, and it return "Local" or "LocalHome" for local
    EJBs/Local homes.

     
  • Aslak Hellesřy

    Aslak Hellesřy - 2002-01-09

    Logged In: YES
    user_id=49846

    Taken from Chris Shaw's mail on January 9, 2001:

    <snip>

    In a Session Bean I have the following:
    /**
    * Retrieves next value in specified sequence
    *
    * @param name name of sequence
    * @return next number from sequence
    *
    * @ejb:interface-method view-type="local"
    *
    * @ejb:transaction
    * type="RequiresNew"
    *
    */
    public Integer getNextNumberInSequence(String name) {

    and in ejb-jar.xml it creates:
    <container-transaction>
    <method>
    <ejb-name>SequenceGenerator</ejb-name>
    <method-intf>Remote</method-intf>
    <method-name>getNextNumberInSequence</method-name>
    <method-params>
    <method-param>java.lang.String</method-param>
    </method-params>
    </method>
    <trans-attribute>RequiresNew</trans-attribute>
    </container-transaction>

    shouldn't the method-intf tag be created as:
    <method-intf>Local</method-intf>

    </snip>

    He's right. Aslak.

     
  • Aslak Hellesřy

    Aslak Hellesřy - 2002-01-09
    • assigned_to: rinkrank --> nobody
     
  • Nobody/Anonymous

    Logged In: NO

    Fixed. Recheck it asap and let me know if there's any
    problems (no problems with my tests).

    Ara.

     
  • Ara Abrahamian

    Ara Abrahamian - 2002-01-12
    • status: open --> closed-fixed
     

Log in to post a comment.

MongoDB Logo MongoDB