[ 
https://issues.apache.org/jira/browse/AXIS2C-723?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Lazarski resolved AXIS2C-723.
------------------------------------
    Resolution: Won't Fix

  1. Obsolete Discussion: The 2007 proposals discussed theoretical Java-style 
plugin systems  
  that never materialized                                                       
              
  2. Better Solution Implemented: HTTP/2 support was added through a superior 
architecture    
  that:                                                                         
              
    - Uses C polymorphism via interface patterns                                
              
    - Requires zero changes to transport enums                                  
              
    - Provides 100% backward compatibility                                      
              
    - Enables future protocol additions through new interface implementations   
              
  3. Clear Development Path: The docs/HTTP2_*.md documentation provides a 
well-defined pattern
   for adding HTTP/3 and other protocols without modifying core headers         
              
  4. The transport enum serves a different purpose: It's used for transport 
descriptor        
  registration in axis2.xml, not for protocol-level request processing          
              
                                                                                
              
  The interface pattern approach is architecturally cleaner than what 
AXIS2C-723 proposed and 
  has been successfully implemented for HTTP/2.                                 
              

> Should dynamically resolve to transport
> ---------------------------------------
>
>                 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
>            Priority: Major
>
> 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 was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to