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 "nadir amra (JIRA)" <ji...@apache.org> on 2010/06/04 03:47:53 UTC

[jira] Commented: (AXIS2C-1142) Circular dependency between engine and http_common libraries

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

nadir amra commented on AXIS2C-1142:
------------------------------------

Update:  

I compiled the code to see what the core uses assuming that all the HTTP transport stuff (except for src/core/transport/transport_receiver.c) was not compiled as part of the engine.   I compiled assuming the use of the native HTTP implementation and using the guththila parser.

The only thing that the CORE engine uses are the following HTTP APIs:

axis2_http_header_free()
axis2_http_accept_record_free()

The files that use them are:

src/core/clientapi/svc_client.c
src/core/context/msg_ctx.c

So I think that there is a high probability that it is doable to remove the protocol specific stuff related to transports outside of the src/core and on the same level as neethi, guththila, etc.   

This should be done assuming we can come up with some way to make the above APIs some kind of generic interfaces that a transport would have to implement (if a transport does not need these APIs they can simply have no-op functions).

> Circular dependency between engine and http_common libraries
> ------------------------------------------------------------
>
>                 Key: AXIS2C-1142
>                 URL: https://issues.apache.org/jira/browse/AXIS2C-1142
>             Project: Axis2-C
>          Issue Type: Bug
>          Components: core/engine, core/transport
>    Affects Versions: 1.4.0
>         Environment: CentOS 4.6 (linux), GCC 3.4.6/4.2.3
>            Reporter: Steve Nairn
>            Priority: Minor
>         Attachments: http_common.patch
>
>
> Following discussion on the Axis2/C dev list, there is a circular dependency between libaxis2_engine and libaxis2_http_common.
> The http_common library contains references to a large number of symbols that are resolved by the engine library. Unfortunately the engine library contains references to axis2_http_accept_record_free and axis2_http_header_free, that are resolved by the http_common library. Therefore there is a circular dependency between the libraries.
> The circular dependency makes it very difficult to build these libraries on platforms that do not allow shared libraries to contain unresolved symbols (for example, Windows DLLs). 

-- 
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: c-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: c-dev-help@axis.apache.org