Menu

#332 fixed bug in xdoclet task

CVS HEAD
closed-accepted
JbossSOAP (10)
5
2003-03-21
2002-12-14
No

hi,

here we go, another patch from your buddy fawce (2nd
lifetime). there were two bugs in the jboss_net.xdt
resource file, first it did not properly handle ejb's with a
view-type of "both", and secondly, did not put the fully
qualified classname in the homeInterfaceName. This
patch fixes both.
thanks,
fawce

=========================================

RCS
file: /usr/local/cvsroot//tamale_jboss4/jboss.net/src/resou
rces/xdoclet/modules/jboss/net/resources/jboss-
net_xml.xdt,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
---
tamale_jboss4/jboss.net/src/resources/xdoclet/modules/j
boss/net/resources/jboss-net_xml.xdt 2002/10/07
06:33:28 1.1
+++
tamale_jboss4/jboss.net/src/resources/xdoclet/modules/j
boss/net/resources/jboss-net_xml.xdt 2002/12/14
00:33:31 1.2
@@ -1,9 +1,9 @@
<?xml version="1.0"
encoding="<XDtConfig:configParameterValue
paramName='XmlEncoding'/>"?>

-<!-- -->
-<!-- This JBoss.Net Web Service Descriptor has been
generated by XDoclet -->
-<!-- and brought to you by F. M. Brier, C. G. Jung and
J. Essington -->
-<!-- -->
+<!--

-->
+<!-- This JBoss.Net Web Service Descriptor has been
generated by XDoclet -->
+<!-- and brought to you by F. M. Brier, C. G. Jung and
J. Essington -->
+<!--

-->

<deployment
name="<XDtConfig:configParameterValue
paramName='WebDeploymentName'/>"
@@ -27,7 +27,21 @@
</XDtClass:ifClassTagValueEquals>
</XDtClass:ifDoesntHaveClassTag>
<parameter name="handlerClass"
value="org.jboss.net.axis.server.EJBProvider"/>
- <parameter name="beanJndiName"
value="<XDtEjb:ifRemoteEjb><XDtEjbHome:jndiName
type="remote"/></XDtEjb:ifRemoteEjb><XDtEjb:ifLocalEj
b><XDtEjbHome:jndiName
type="local"/></XDtEjb:ifLocalEjb>"/>
+ <XDtEjb:ifNotLocalEjb>
+ <XDtEjb:ifRemoteEjb>
+ <parameter
name="beanJndiName" value="<XDtEjbHome:jndiName
type="remote"/>" />
+ <parameter
name="homeInterfaceName"
value="<XDtEjbHome:homeInterface type="remote"/>" />
+ </XDtEjb:ifRemoteEjb>
+ <!--If this bean is neither remote
nor local, it is a both, and we can use Local-->
+ <XDtEjb:ifNotRemoteEjb>
+ <parameter
name="beanJndiName" value="<XDtEjbHome:jndiName
type="local"/>"/>
+ <parameter
name="homeInterfaceName"
value="<XDtEjbHome:homeInterface type="local"/>" />
+ </XDtEjb:ifNotRemoteEjb>
+ </XDtEjb:ifNotLocalEjb>
+ <XDtEjb:ifLocalEjb>
+ <parameter
name="beanJndiName" value="<XDtEjbHome:jndiName
type="local"/>"/>
+ <parameter
name="homeInterfaceName"
value="<XDtEjbHome:homeInterface type="local"/>" />
+ </XDtEjb:ifLocalEjb>
<parameter name="allowedMethods"
value="<XDtClass:ifHasClassTag tagName="jboss-
net:web-service" paramName="expose-
all">*</XDtClass:ifHasClassTag><XDtClass:ifDoesntHav
eClassTag tagName="jboss-net:web-service"
paramName="expose-
all"><XDtMethod:forAllMethods><XDtEjbIntf:ifIsInterface
Method><XDtMethod:ifHasMethodTag tagName="jboss-
net:web-method"><XDtEjbIntf:interfaceMethodName/>
</XDtMethod:ifHasMethodTag></XDtEjbIntf:ifIsInterfaceM
ethod></XDtMethod:forAllMethods></XDtClass:ifDoesnt
HaveClassTag>"/>
<requestFlow name="<XDtClass:classTagValue
tagName='jboss-net:web-service'
paramName='urn'/>Request">

@@ -47,11 +61,11 @@
</XDtClass:ifHasClassTag>
</handler>
</XDtClass:ifHasClassTag>
- <handler
type="java:org.jboss.net.axis.server.TransactionRequest
Handler"/>
+ <handler name="TransactionRequestHandler"
type="java:org.jboss.net.axis.server.TransactionRequest
Handler"/>
</requestFlow>
<responseFlow name="<XDtClass:classTagValue
tagName='jboss-net:web-service'
paramName='urn'/>Response">
- <handler
type="java:org.jboss.net.axis.server.SerialisationRespon
seHandler"/>
- <handler
type="java:org.jboss.net.axis.server.TransactionRespons
eHandler"/>
+ <handler name="SerialisationResponseHandler"
type="java:org.jboss.net.axis.server.SerialisationRespon
seHandler"/>
+ <handler name="TransactionResponseHandler"
type="java:org.jboss.net.axis.server.TransactionRespons
eHandler"/>
</responseFlow>
</service>
</XDtClass:ifHasClassTag>

Discussion

  • Anonymous

    Anonymous - 2002-12-18

    Logged In: YES
    user_id=175199

    local/home thingy is right.

    about the name qualification, I have to recheck (could be that
    it is not needed at all due to EJBProvider using reflection
    instead of forName() resolution.

     
  • Anonymous

    Anonymous - 2002-12-18
    • assigned_to: nobody --> cgjung
    • status: open --> open-accepted
     
  • Anonymous

    Anonymous - 2003-01-20

    Logged In: YES
    user_id=175199

    I checked your diff now just via the web, but still, it puzzles
    me.

    a) from the xdoclet-ejb behaviour, a view-type of both should
    make both the ifRemoteEjb and the ifLocalEjb tags true,
    hence the remote one is preferred and taken. There is no
    ifBothEjb to my knowledge, hence this should work in any
    case, maybe we could add a jboss-net tag that chooses the
    right interface in that case?

    b) the parameter homeInterfaceName is new (or old) to me.
    interface. Has this been introduced lately or was this a relict
    from a previous axis/jboss-net version? Since EJBProvider
    uses the jndiName to lookup and reflect the beans home
    anyway, you do not need to specify the classname. At least
    in head, I could not find it anymore.

     
  • Anonymous

    Anonymous - 2003-03-21
    • status: open-accepted --> closed-accepted
     
  • Anonymous

    Anonymous - 2003-03-21

    Logged In: YES
    user_id=175199

    thx finally. I found the flaw. We now use as much local as
    possible, only if not local, we use the more expensive remote
    versions.

     

Log in to post a comment.