axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "nadir amra (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AXIS2C-1142) Circular dependency between engine and http_common libraries
Date Fri, 04 Jun 2010 01:47:53 GMT

    [ 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


Mime
View raw message