You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "Damitha Kumarage (JIRA)" <ji...@apache.org> on 2008/06/26 15:07:45 UTC

[jira] Commented: (AXIS2C-723) add new transport in Axis2/C

    [ https://issues.apache.org/jira/browse/AXIS2C-723?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12608416#action_12608416 ] 

Damitha Kumarage commented on AXIS2C-723:
-----------------------------------------

We can solve this problem as following.

In axis2.xml we define transports as following

    <TransportList>
        <!--  Transports supported       -->
        <transport name="http"/>
        <transport name="smtp"/>
        <transport name="tcp"/>
        <transport name="xmpp"/>
        <transport name="https"/>
        <transport name="amqp"/>
    </TransportList>

Then in configuration builder we parse this list and add these transport names into a array_list caled transport_list. Then in places of using transport enums we can use these transport names. What do you think?



> add new transport in Axis2/C
> ----------------------------
>
>                 Key: AXIS2C-723
>                 URL: https://issues.apache.org/jira/browse/AXIS2C-723
>             Project: Axis2-C
>          Issue Type: Improvement
>          Components: core/transport
>    Affects Versions: 1.1.0
>         Environment: OS:WindowsXP
>            Reporter: Atsushi Monna
>            Assignee: Damitha Kumarage
>
> I have a desire for new trasnport in Axis2/C.
> I found a hard cording the transports in axis2_const.h like this.
> #define AXIS2_TRANSPORT_HTTP "http"
> #define AXIS2_TRANSPORT_SMTP "smtp"
> #define AXIS2_TRANSPORT_TCP "tcp"
> #define AXIS2_TRANSPORT_XMPP "xmpp"
> #define AXIS2_TRANSPORT_HTTPS "https"
> typedef enum
> {
>     AXIS2_TRANSPORT_ENUM_HTTP = 0,
>     AXIS2_TRANSPORT_ENUM_SMTP,
>     AXIS2_TRANSPORT_ENUM_TCP,
>     AXIS2_TRANSPORT_ENUM_XMPP,
>     AXIS2_TRANSPORT_ENUM_HTTPS,
>     AXIS2_TRANSPORT_ENUM_MAX
> } AXIS2_TRANSPORT_ENUMS;
> And using like this.
>     /**
>      * Adds a transport in description.
>      * @param conf pointer to conf struct
>      * @param env pointer to environment struct
>      * @param transport  pointer to transport in description. conf assumes
>      * ownership of the struct
>      * @return AXIS2_SUCCESS on success, else AXIS2_FAILURE
>      */
>     AXIS2_EXTERN axis2_status_t AXIS2_CALL
>     axis2_conf_add_transport_in(axis2_conf_t *conf,
>         const axutil_env_t *env,
>         axis2_transport_in_desc_t *transport,
>         const AXIS2_TRANSPORT_ENUMS trans_enum);
> If we want to add a new transport, we must defin a transport in axis2_const.h and re-build Axis2/C modules.
> In Axis2 (Java), we don't need to re-build Axis2 modules, if we think so.
> We can only provid a class implemented TransportProvider I/F and add a entry at axis2.xml file.
> Axis2 said in key features, engine is completely transport-independent at "Transport Fremework".
> I think the realization like Axis2 is advisable.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-dev-help@ws.apache.org