axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Senaka Fernando (JIRA)" <>
Subject [jira] Commented: (AXIS2C-723) add new transport in Axis2/C
Date Thu, 26 Jun 2008 13:17:45 GMT


Senaka Fernando commented on AXIS2C-723:

Hi Damitha,

This is the point. Say the user (who is a developer) comes up with an all new transport, say
JMS (just as an example). Adding JMS on axis2.xml wont solve this issue. He will also have
to then edit the places where it is defined in the C source code and add this name. The request
made here can be solved by simply defining custom transports such as "user1", "user2", "user3"
in the C source code. Then say if a user comes up with JMS he can use the user1 slot and add
his implementation. If he comes up with one more say JSON, it can be added using user2. And,
likewise he can add up to 3 such transports.

Axis2/C users are not just end users but developers who are making small applications that
are useful to end users as well. This should better serve Atsushi's requirement.


> add new transport in Axis2/C
> ----------------------------
>                 Key: AXIS2C-723
>                 URL:
>             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
> {
> 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
> Axis2 said in key features, engine is completely transport-independent at "Transport
> 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:
For additional commands, e-mail:

View raw message