Return-Path: Delivered-To: apmail-ws-axis-cvs-archive@www.apache.org Received: (qmail 24329 invoked from network); 10 Mar 2006 11:34:25 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 10 Mar 2006 11:34:25 -0000 Received: (qmail 98413 invoked by uid 500); 10 Mar 2006 11:34:20 -0000 Delivered-To: apmail-ws-axis-cvs-archive@ws.apache.org Received: (qmail 98327 invoked by uid 500); 10 Mar 2006 11:34:20 -0000 Mailing-List: contact axis-cvs-help@ws.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list axis-cvs@ws.apache.org Received: (qmail 98316 invoked by uid 500); 10 Mar 2006 11:34:20 -0000 Delivered-To: apmail-ws-axis2-cvs@ws.apache.org Received: (qmail 98308 invoked by uid 99); 10 Mar 2006 11:34:20 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 10 Mar 2006 03:34:20 -0800 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Fri, 10 Mar 2006 03:34:15 -0800 Received: (qmail 23544 invoked by uid 65534); 10 Mar 2006 11:33:48 -0000 Message-ID: <20060310113348.23541.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r384768 [1/2] - in /webservices/axis2/site/c: ./ M0_5/ style/ Date: Fri, 10 Mar 2006 11:33:36 -0000 To: axis2-cvs@ws.apache.org From: sahan@apache.org X-Mailer: svnmailer-1.0.7 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: sahan Date: Fri Mar 10 03:33:31 2006 New Revision: 384768 URL: http://svn.apache.org/viewcvs?rev=384768&view=rev Log: Site modifications for M0.5 Added: webservices/axis2/site/c/download.cgi webservices/axis2/site/c/download.html Modified: webservices/axis2/site/c/M0_5/architecture_notes.html webservices/axis2/site/c/M0_5/developerguide.html webservices/axis2/site/c/M0_5/index.html webservices/axis2/site/c/M0_5/installationguide.html webservices/axis2/site/c/M0_5/om_tutorial.html webservices/axis2/site/c/M0_5/userguide.html webservices/axis2/site/c/M0_5/userguide1.html webservices/axis2/site/c/M0_5/userguide2.html webservices/axis2/site/c/M0_5/userguide3.html webservices/axis2/site/c/coding_conventions.html webservices/axis2/site/c/cvs-usage.html webservices/axis2/site/c/dependencies.html webservices/axis2/site/c/downloads.html webservices/axis2/site/c/index.html webservices/axis2/site/c/issue-tracking.html webservices/axis2/site/c/mail-lists.html webservices/axis2/site/c/maven-reports.html webservices/axis2/site/c/maven_build_guide.html webservices/axis2/site/c/project-info.html webservices/axis2/site/c/style/maven-classic.css webservices/axis2/site/c/team-list.html Modified: webservices/axis2/site/c/M0_5/architecture_notes.html URL: http://svn.apache.org/viewcvs/webservices/axis2/site/c/M0_5/architecture_notes.html?rev=384768&r1=384767&r2=384768&view=diff ============================================================================== --- webservices/axis2/site/c/M0_5/architecture_notes.html (original) +++ webservices/axis2/site/c/M0_5/architecture_notes.html Fri Mar 10 03:33:31 2006 @@ -2,155 +2,90 @@ @import url("../style/maven-base.css"); @import url("../style/maven-classic.css");

C Specific Architectural Notes on Axis2/C

Send your feedback to: axis-c-dev@ws.apache.org (Prefix + Last published: 10 March 2006 + | Doc for M0.5


C Specific Architectural Notes on Axis2/C

Send your feedback to: axis-c-dev@ws.apache.org (Prefix the subject with [Axis2]). To subscribe to developer or user mailing lists see here

Introduction

One of the main design goals of Axis2/C is the re-useability of the -library -and the ability to plug into different platforms. There are many -features -that allow Axis2/C to be pluggable in to different platforms as well as -to enable the extension of the functionality of the Axis2/C.

Axis2 Environment

Axis2/C defines an environment to hold platform specific entities -such as -the allocating mechanism, the logging mechanism, etc. This environment -is -initialized -at the point of starting Axis2/C and will last for the lifetime of -Axis2/C -library. Different sub environments can also be created to suit the -particular -scenarios (eg: the thread specific environment). The Axis2 Environment -holds -following entities in order to abstract the platform.

Axis2 Allocator

Allocator is the wrapper for memory management mechanisms. It -defines the +library and the ability to plug into different platforms. There are many +features that allow Axis2/C to be pluggable in to different platforms as well +as to enable the extension of the functionality of the Axis2/C.

Axis2 Environment

Axis2/C defines an environment to hold platform specific entities such as +the allocating mechanism, the logging mechanism, etc. This environment is +initialized at the point of starting Axis2/C and will last for the lifetime +of Axis2/C library. Different sub environments can also be created to suit +the particular scenarios (eg: the thread specific environment). The Axis2 +Environment holds following entities in order to abstract the platform.

Axis2 Allocator

Allocator is the wrapper for memory management mechanisms. It defines the following primitives.

    -
  1. malloc -- method to allocate a memory block of given size
  2. -
  3. realloc -- method to change the size of the memory block
  4. -
  5. free -- method to free a memory block
  6. -

Axis2 Error

Axis2 Error defines error reporting mechanisms for Axis2 library. -All of +

  • malloc - method to allocate a memory block of given + size
  • +
  • realloc - method to change the size of the memory + block
  • +
  • free - method to free a memory block
  • +

    Axis2 Error

    Axis2 Error defines error reporting mechanisms for Axis2 library. All of the Axis2 internal functions use the axis2_error in the -environment to report errors. -

    Axis2 Log

    Axis2 Log defines the common logging mechanisms required for the -Axis2 -library. All of the internal Axis2/C code uses the functions defined in -the -axis2_log available in the environment.

    Axis2 Thread Pool

    Axis2 Thread Pool defines the thread management functions. It hides -the +environment to report errors.

    Axis2 Log

    Axis2 Log defines the common logging mechanisms required for the Axis2 +library. All of the internal Axis2/C code uses the functions defined in the +axis2_log available in the environment.

    Axis2 Thread Pool

    Axis2 Thread Pool defines the thread management functions. It hides the complex thread pooling functions as well as the platform specific -implementations of threads. Axis2 internal library uses this -interface -to manipulate threads and they deal with a common thread type which is -defined -as -axis2_thread.

    Axis2 Environment is the starting point for the platform abstraction -of -Axis2/C. It can be used to plug platform specific memory management, -error -reporting, logging and thread pooling mechanisms to Axis2 core -functions.

    Dynamic Loading

    Axis2 is a modular program where the user can add functionality by -selecting a set of modules. The modules can either be compiled at the -source -tree of -Axis2 or separately. These modules should be compiled as -Dynamic +implementations of threads. Axis2 internal library uses this interface to +manipulate threads and they deal with a common thread type which is defined +as axis2_thread.

    Axis2 Environment is the starting point for the platform abstraction of +Axis2/C. It can be used to plug platform specific memory management, error +reporting, logging and thread pooling mechanisms to Axis2 core functions.

    Dynamic Loading

    Axis2 is a modular program where the user can add functionality by +selecting a set of modules. The modules can either be compiled at the source +tree of Axis2 or separately. These modules should be compiled as Dynamic Shared Objects (DSOs) that exist separately. Services are also loaded -dynamically by reading the axis2.xml. This dynamic loading is mandatory -in -order to provide hot deployment / update as well as to facilitate the -runtime -selection of transports.

    The DSO support for loading individual Axis2 components is based on -the -component named class_loader which must be statically -compiled with -Axis2 -core components (in the util package). But the -disadvantage of this -approach -is that the class_loader completely depends on the DSO -functionality of -the -underlying operating system, which limits the portability.

    Transport Abstraction

    One of the key advantages of Axis2 is that the Axis2 engine and the -other -SOAP processing is independent from the transport aspect. Users can -develop +dynamically by reading the contents of the services folder . This dynamic +loading is mandatory in order to provide hot deployment / update as well as +to facilitate the runtime selection of transports.

    The DSO support for loading individual Axis2 components is based on the +component named class_loader which must be statically compiled +with Axis2 core components (in the util package). But the +disadvantage of this approach is that the class_loader +completely depends on the DSO functionality of the underlying operating +system, which limits the portability.

    Transport Abstraction

    One of the key advantages of Axis2 is that the Axis2 engine and the other +SOAP processing is independent from the transport aspect. Users can develop their own transports and the interface is defined in axis2_transport_sender.h and -axis2_transport_receiver.h.

    Currently Axis2/C supports HTTP transport. The transport receiver is -a +axis2_transport_receiver.h.

    Currently Axis2/C supports HTTP transport. The transport receiver is a Simple HTTP server provided by Axis2 or the Axis2 Apache2 module. The -transport sender uses sockets to connect and send the SOAP Message.

    Inside the HTTP transport,  the receivers and clients are -abstracted so -that the user can easily plug in their own senders and receivers (eg: -A -libcurl based client can be implemented instead of the -simple http -client -available in the axis2 distribution)

    Stream Abstraction

    Stream is a representation of a sequence of bytes. Since Axis2 -heavily -uses -streaming mechanisms to read / write xml, an implementation independent -stream -abstraction is required in order to integrate Axis2 in other -environments -seamlessly. The core components of Axis2 deal with this abstracted -stream -and does not worry about the implementation specific details. The -creating -point of the stream (eg: the transport receiver) knows what type of -stream -should -be created (eg: socket, file, etc) and creates the appropriate -stream. -Thereafter, rest of the components are independent from the -implementation -details of the stream.

    Also the stream serves as a main point in internationalization -support. It +transport sender uses sockets to connect and send the SOAP Message.

    Inside the HTTP transport,  the receivers and clients are abstracted so +that the user can easily plug in their own senders and receivers (eg: A +libcurl based client can be implemented instead of the simple +http client available in the axis2 distribution)

    Stream Abstraction

    Stream is a representation of a sequence of bytes. Since Axis2 heavily +uses streaming mechanisms to read / write xml, an implementation independent +stream abstraction is required in order to integrate Axis2 in other +environments seamlessly. The core components of Axis2 deal with this +abstracted stream and does not worry about the implementation specific +details. The creating point of the stream (eg: the transport receiver) knows +what type of stream should be created (eg: socket, file, etc) and creates the +appropriate stream. Thereafter, rest of the components are independent from +the implementation details of the stream.

    Also the stream serves as a main point in internationalization support. It can convert the the internal byte representation to a different type of -encodings specified by the user. This can be achieved by plugging an -encoding +encodings specified by the user. This can be achieved by plugging an encoding engine to the stream.

    Threading Model

    Axis2 core functions, such as hot deployment / update, asynchronous -invocation, concurrent request processing in simple axis2 server, -etc  -heavily depends on threads. At the same time these threads should be -platform -independent inside the Axis2 core components. Another important -requirement -in threading model is the ability to pool the threads. This thread -pooling -mechanism should be Axis2 independent and Axis2 core components -should -be able to deal with the thread pooling mechanisms via a uniform -interface.

    So the above two aspects lead to two main requirements in the -threading +invocation, concurrent request processing in simple axis2 server, etc  +heavily depends on threads. At the same time these threads should be platform +independent inside the Axis2 core components. Another important requirement +in threading model is the ability to pool the threads. This thread pooling +mechanism should be Axis2 independent and Axis2 core components should be +able to deal with the thread pooling mechanisms via a uniform interface.

    So the above two aspects lead to two main requirements in the threading model:

    1. Ability to define a platform independent threading mechanism.
    2. Ability to define an implementation independent thread pool.
    3. -

    These two requirements are implemented in current Axis2 using a -platform -independent thread type axis2_thread and an -implementation -independent thread pool axis2_thread_pool.

    Parser Abstraction

    Axis2 architecture depends on the XML pull model. But in C there is -no -such API (such as StAX API). Therefore XML pull API, which is specific -to +

    These two requirements are implemented in current Axis2 using a platform +independent thread type axis2_thread and an implementation +independent thread pool axis2_thread_pool.

    Parser Abstraction

    Axis2 architecture depends on the XML pull model. But in C there is no +such API (such as StAX API). Therefore XML pull API, which is specific to Axis2 is defined in as axis2_xml_reader and -axis2_xml_writer. Any implementation of this API can be -plugged -into the Axis2 core as long as they follow the API strictly. If an -external XML parser needs to be plugged into Axis2, a wrapper that maps -the +axis2_xml_writer. Any implementation of this API can be plugged +into the Axis2 core as long as they follow the API strictly. If an external +XML parser needs to be plugged into Axis2, a wrapper that maps the reading/writing functions to the Axis2 XML reader/writer API should be written.


    Modified: webservices/axis2/site/c/M0_5/developerguide.html URL: http://svn.apache.org/viewcvs/webservices/axis2/site/c/M0_5/developerguide.html?rev=384768&r1=384767&r2=384768&view=diff ============================================================================== --- webservices/axis2/site/c/M0_5/developerguide.html (original) +++ webservices/axis2/site/c/M0_5/developerguide.html Fri Mar 10 03:33:31 2006 @@ -2,8 +2,8 @@ @import url("../style/maven-base.css"); @import url("../style/maven-classic.css");

    Axis2/C Developer Guide

    -Milestone 0.5 Release

    Send your feedback to mailing list: axis-c-dev@ws.apache.org (Prefix + Last published: 10 March 2006 + | Doc for M0.5


    Axis2/C Developer Guide

    -Milestone 0.5 Release

    Send your feedback to mailing list: axis-c-dev@ws.apache.org (Prefix the subject with [Axis2]). To subscribe to developer mailing lists see here

    Content

    This guide walks you through the following topics that might help you get familiar with the Axis2/C project quickly.

      Modified: webservices/axis2/site/c/M0_5/index.html URL: http://svn.apache.org/viewcvs/webservices/axis2/site/c/M0_5/index.html?rev=384768&r1=384767&r2=384768&view=diff ============================================================================== --- webservices/axis2/site/c/M0_5/index.html (original) +++ webservices/axis2/site/c/M0_5/index.html Fri Mar 10 03:33:31 2006 @@ -2,8 +2,8 @@ @import url("../style/maven-base.css"); @import url("../style/maven-classic.css");

      Axis2/C Milestone 0.5 Release Documentation

      Getting Started

        + Last published: 10 March 2006 + | Doc for M0.5

      Axis2/C Milestone 0.5 Release Documentation

      Getting Started

      • Installation Guide
      • Developer Guide
      • User Guide
      • Modified: webservices/axis2/site/c/M0_5/installationguide.html URL: http://svn.apache.org/viewcvs/webservices/axis2/site/c/M0_5/installationguide.html?rev=384768&r1=384767&r2=384768&view=diff ============================================================================== --- webservices/axis2/site/c/M0_5/installationguide.html (original) +++ webservices/axis2/site/c/M0_5/installationguide.html Fri Mar 10 03:33:31 2006 @@ -2,13 +2,12 @@ @import url("../style/maven-base.css"); @import url("../style/maven-classic.css");

        Axis2/C Installation Guide

        -Milestone Release 0.5

        This document will give you in step by step instructions on how to install + Last published: 10 March 2006 + | Doc for M0.5


        Axis2/C Installation Guide

        -Milestone Release 0.5

        This document will give you in step by step instructions on how to install Axis2/C, run the server & web service client samples on Linux & MS Windows operating systems.

        This release comes in two forms, source and binary. Instructions are given -below to install in both methods.

        Hope you would enjoy this first working version of Axis2/C SOAP engine.

        Send your feedback to mailing list: axis-c-dev@ws.apache.org (Prefix -the subject with [Axis2]). To subscribe to developer mailing lists -see here

        Contents

          +below to install in both methods.

          Hope you would enjoy this version of Axis2/C SOAP engine.

          Send your feedback to mailing list: axis-c-dev@ws.apache.org (Prefix +the subject with [Axis2]). To subscribe to developer mailing lists see here

        Installing and running on Linux

        This can be done using binary or source distributions

        To get both the binary and source distributions, you need libxml2 from here.

        (NOTE: most Linux systems has libxml2 by default.)

        1. Using binary release

        The following steps need to be taken to install and run Axis2/C using +

      Installing and running on Linux

      This can be done using binary or source distributions

      To get both the binary and source distributions, you need libxml2 from here.

      (NOTE: most Linux systems has libxml2 by default.)

      1. Using binary release

      The following steps need to be taken to install and run Axis2/C using binary distribution on Linux

      1. Extract the binary tar package to a folder.

      • Set AXIS2C_HOME environment variable pointing to the location where you have extracted Axis2C
      • AXIS2C_HOME='/your_path_to_axis2c'
      • -
      • export AXIS2C_HOME
      • +
      • export AXIS2C_HOME +

        Note: You will need to set AXIS2C_HOME only if you need to run axis2c + samples or tests. The reason is

        +

        that from sample and test codes it used AXIS2C_HOME to get the path to + axis2c. To write your own

        +

        services or clients this is not neccessary.

        +

      2. Run the simple axis server:

      • To start the simple axis server on port 9090, run the following command lines. @@ -69,7 +74,7 @@ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your_path_to_axis2c/lib
      -

    2. Using source release

    The following steps need to be taken to install and run Axis2/C using +

    2. Using source release

    The following steps need to be taken to install and run Axis2/C using source distribution on Linux

    1. Extract the source tar package to a folder.
    2. Set AXIS2C_HOME environment variable pointing to the location where you @@ -85,22 +90,8 @@
    3. Set parser location -
        -
      • You need to set the following two environment variables to point to - libxml2. -
          -
        • LIBXML2_INCLUDE
        • -
        • LIBXML2_LIB
        • -
        -
      • -
      • If you are using the default installation of libxml2, usually those - are, -
          -
        • LIBXML2_LIB=/usr/lib
        • -
        • LIBXML2_INCLUDE=/usr/include/libxml2
        • -
        -
      • -
      +

      Include path and library path to parser should be set. For libxml2 + this is automatically resolved by configure script.

    4. Build the source
        @@ -112,19 +103,19 @@
    5. use './configure --help' for possible command line options.
    6. -
    7. NOTE: you may wish to use './configure --prefix=$AXIS2C_HOME' to - ensure AXIS2C_HOME and install folder are the same
    8. +
    9. NOTE: If you don't provide a --prefix configure option, it will by + defaul install into /usr/local/axis2c folder.
    10. If you need to get the samples working, you also need to give the configure option --enable-samples=yes
    11. -
    12. Go to AXIS2C_HOME by running cd $AXIS2C_HOME
    13. +
    14. Go to where you installed axis2c.
    15. Start simple axis server
      • To start the simple axis server on port 9090 run the following command lines
          -
        • cd $AXIS2C_HOME/bin
        • +
        • cd axis2c/bin
        • ./axis2_http_server
      • @@ -134,15 +125,15 @@
      • Run the sample clients in a new shell using the following command lines
          -
        • cd $AXIS2C_HOME/bin/samples
        • +
        • cd bin/samples
        • ./echo will invoke the echo service.
        • ./math will invoke the math service.
        • To see the possible command line options for sample clients run them with '-h' option
      • -

    Installing and running on MS Windows (win32)

    This too can be done using binary or source distributions

    To get both the binary and source distribution, you need libxml2 from here.

    (NOTE: most Linux systems has libxml2 by default. On Windows you need to -download and install libxml2)

    1. Using binary release

    Requirements

      +

    Installing and running on MS Windows (win32)

    This too can be done using binary or source distributions

    To get both the binary and source distribution, you need libxml2 from here.

    (NOTE: most Linux systems has libxml2 by default. On Windows you need to +download and install libxml2)

    1. Using binary release

    Requirements

    • The binaries shipped with this version is compiled with Microsoft visual studio compiler (cl)
    • @@ -158,7 +149,7 @@ zlib-1.2.3.win32]
    -

    Binaries in the release

      +

    Binaries in the release

    • Extract the binary distribution to a folder of your choice. (example: C:\axis2c)
    • The C:\axis2c folder structure is as follows:
    • @@ -177,7 +168,7 @@
  • Copy libxml2.dll, iconv.dll and zlib1.dll downloaded to C:\axis2c\lib
  • -

    Running the binaries

      +

    Running the binaries

    • First you need to set couple of environment variables before you can run the server and samples.
        @@ -200,7 +191,7 @@
      • Example: C:\axis2c\bin\samples>echo.exe
    • -

    2. Using the source release.

    Requirements

      +

    2. Using the source release.

    Requirements

    • The makefile shipped with this version needs Microsoft visual studio compiler (cl) and nmake build tool
    • @@ -217,7 +208,7 @@ zlib-1.2.3.win32]
    -

    Editing configure.in file

      +

    Editing configure.in file

    • The default places for libxml2 and iconv are speceficed in configure.in.
      • Example:Default location for libxml2 is C:\libxml2
      • @@ -232,7 +223,7 @@ accordingly.

      • You need to have zlib1.dll in a library path. You may copy this dll to libxml2/lib.
      • -

    Compiling the source.

    The following steps and command lines will take you through the source +

    Compiling the source.

    The following steps and command lines will take you through the source compilation

    • Extract the source distribution to a folder of your choice. (Example: C:\axis2c)
    • @@ -258,7 +249,7 @@
    • include - all include files of axis2
    • logs - system and client logs are written to this folder
    -

    Running the binaries

      +

    Running the binaries