Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.1.0
-
None
-
None
-
OS:WindowsXP
Description
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.
Attachments
Issue Links
- is related to
-
AXIS2C-618 Engine has a dependancy on HTTP transport.
- Resolved