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

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.

Regards,
Senaka

> 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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to