You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-commits@axis.apache.org by ro...@apache.org on 2026/02/02 14:55:22 UTC

(axis-axis2-c-core) branch master updated (36badf740 -> d7d4cbd7b)

This is an automated email from the ASF dual-hosted git repository.

robertlazarski pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/axis-axis2-c-core.git


    from 36badf740 Add MkDocs documentation site with Material theme
     new 4021f18dd Update documentation for accuracy and modernization
     new 44f01e024 Remove IIS/ISAPI integration (unmaintained since 2009)
     new d7d4cbd7b Add 2.0.0 release notes from Jira

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 ChangeLog                                          |  16 +-
 INSTALL                                            | 508 ++++++-----------
 NEWS                                               | 139 +++--
 docs/HTTP11_SOAP_HTTP_CLIENT_C.md                  |   1 -
 docs/community/issues.md                           |  20 +-
 docs/community/license.md                          |   2 +-
 docs/community/mailing-lists.md                    |  28 +-
 docs/downloads.md                                  |   8 +-
 docs/getting-started/installation.md               |   9 +-
 docs/release-notes-2.0.0.md                        | 185 +++++++
 ides/vc/axis2c/axis2c.sln                          |   2 -
 ides/vc/axis2c/mod_axis2_IIS/mod_axis2_IIS.sln     |  20 -
 ides/vc/axis2c/mod_axis2_IIS/mod_axis2_IIS.vcproj  | 270 ---------
 ides/vc6/axis2c/axis2c.dsw                         |  15 -
 ides/vc6/axis2c/mod_axis2_IIS/mod_axis2_IIS.dsp    | 147 -----
 ides/vc9/axis2c/axis2c.sln                         |   2 -
 ides/vc9/axis2c/mod_axis2_IIS/mod_axis2_IIS.sln    |  20 -
 ides/vc9/axis2c/mod_axis2_IIS/mod_axis2_IIS.vcproj | 264 ---------
 src/core/transport/http/server/IIS/README          |  61 ---
 .../http/server/IIS/axis2_iis_constants.h          |  51 --
 .../http/server/IIS/axis2_iis_out_transport_info.c | 153 ------
 .../http/server/IIS/axis2_iis_out_transport_info.h |  61 ---
 .../transport/http/server/IIS/axis2_iis_regedit.js | 101 ----
 .../transport/http/server/IIS/axis2_iis_stream.c   | 313 -----------
 .../transport/http/server/IIS/axis2_iis_stream.h   |  45 --
 .../transport/http/server/IIS/axis2_iis_worker.c   | 608 ---------------------
 .../transport/http/server/IIS/axis2_iis_worker.h   |  62 ---
 .../transport/http/server/IIS/axis2_isapi_plugin.c | 476 ----------------
 .../IIS/iis_iaspi_plugin_51/axis2_isapi_51.c       | 153 ------
 src/core/transport/http/server/IIS/mod_axis2.def   |   7 -
 src/core/transport/http/server/Makefile.am         |   2 +-
 31 files changed, 480 insertions(+), 3269 deletions(-)
 create mode 100644 docs/release-notes-2.0.0.md
 delete mode 100644 ides/vc/axis2c/mod_axis2_IIS/mod_axis2_IIS.sln
 delete mode 100644 ides/vc/axis2c/mod_axis2_IIS/mod_axis2_IIS.vcproj
 delete mode 100644 ides/vc6/axis2c/mod_axis2_IIS/mod_axis2_IIS.dsp
 delete mode 100644 ides/vc9/axis2c/mod_axis2_IIS/mod_axis2_IIS.sln
 delete mode 100644 ides/vc9/axis2c/mod_axis2_IIS/mod_axis2_IIS.vcproj
 delete mode 100644 src/core/transport/http/server/IIS/README
 delete mode 100644 src/core/transport/http/server/IIS/axis2_iis_constants.h
 delete mode 100644 src/core/transport/http/server/IIS/axis2_iis_out_transport_info.c
 delete mode 100644 src/core/transport/http/server/IIS/axis2_iis_out_transport_info.h
 delete mode 100644 src/core/transport/http/server/IIS/axis2_iis_regedit.js
 delete mode 100644 src/core/transport/http/server/IIS/axis2_iis_stream.c
 delete mode 100644 src/core/transport/http/server/IIS/axis2_iis_stream.h
 delete mode 100644 src/core/transport/http/server/IIS/axis2_iis_worker.c
 delete mode 100644 src/core/transport/http/server/IIS/axis2_iis_worker.h
 delete mode 100644 src/core/transport/http/server/IIS/axis2_isapi_plugin.c
 delete mode 100644 src/core/transport/http/server/IIS/iis_iaspi_plugin_51/axis2_isapi_51.c
 delete mode 100644 src/core/transport/http/server/IIS/mod_axis2.def


(axis-axis2-c-core) 03/03: Add 2.0.0 release notes from Jira

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

robertlazarski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/axis-axis2-c-core.git

commit d7d4cbd7bd3822184581b38ab1fdf80a2c95fafd
Author: Robert Lazarski <ro...@gmail.com>
AuthorDate: Mon Feb 2 04:18:29 2026 -1000

    Add 2.0.0 release notes from Jira
    
    Updated NEWS and ChangeLog with 2.0.0 release information including:
    - 115 bug fixes
    - 4 new features
    - 12 improvements
    - 5 tasks
    
    Created detailed docs/release-notes-2.0.0.md with complete Jira issue
    listing in markdown table format for the documentation site.
    
    Key highlights:
    - HTTP/2 transport support for JSON (AXIS2C-1707)
    - JSON support via json-c (AXIS2C-1645)
    - SNI support (AXIS2C-1706)
    - Security hardening (AXIS2C-1708)
    - Numerous memory leak fixes
    - IIS/ISAPI and AMQP removed (unmaintained)
    
    Co-Authored-By: Claude Opus 4.5 <no...@anthropic.com>
---
 ChangeLog                   |  16 +++-
 NEWS                        | 139 ++++++++++++++++++++++-----------
 docs/release-notes-2.0.0.md | 185 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 293 insertions(+), 47 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 19b66f86e..f821c7f64 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
+Axis2/C (2.0.0)
+   * HTTP/2 transport support for JSON requests (AXIS2C-1707)
+   * JSON support via json-c library (AXIS2C-1645)
+   * SNI (Server Name Indication) support (AXIS2C-1706)
+   * Modern security hardening - SSL/TLS peer validation by default (AXIS2C-1708)
+   * Native C WSDL2C code generator
+   * Enhanced REST support (AXIS2C-1636)
+   * Clone method for axiom_node (AXIS2C-677)
+   * Server bind to custom address support (AXIS2C-1383, AXIS2C-1484)
+   * 115 bug fixes including memory leaks, SSL handling, code generation
+   * Removed: IIS/ISAPI integration (unmaintained since 2009)
+   * Removed: AMQP transport (experimental, unmaintained)
+-- Apache Axis2/C Team, 2026
+
 Axis2/C (1.7.0)
-   * HTTP Session support 
+   * HTTP Session support
    * HTTP KeepAlive support
    * Performance improvement to Guththila Parser
    * Transport URL support
diff --git a/NEWS b/NEWS
index 919cdd827..05eacca4d 100644
--- a/NEWS
+++ b/NEWS
@@ -1,100 +1,147 @@
-Apache Axis2/C Team is pleased to announce the release of Apache Axis2/C 
-version 1.7.0.
+Apache Axis2/C Team is pleased to announce the release of Apache Axis2/C
+version 2.0.0.
 
-You can download this release from http://axis.apache.org/axis2/c/core/download.cgi
+You can download this release from https://github.com/apache/axis-axis2-c-core
 
 Key Features
 ============
 
-   1. Support for one-way messaging (In-Only) and 
+   1. Support for one-way messaging (In-Only) and
       request response messaging (In-Out)
-   
-   2. Client APIs : Easy to use service client API and 
-   	  more advanced operation client API
 
-   3. Transports supported : HTTP
+   2. Client APIs: Easy to use service client API and
+      more advanced operation client API
+
+   3. Transports supported: HTTP
           * Inbuilt HTTP server called simple axis server
           * Apache2 httpd module called mod_axis2 for server side
-          * IIS module for server side. Supports IIS 5.1, 6 and 7.
           * Client transport with ability to enable SSL support
           * Basic HTTP Authentication
           * Digest HTTP Authentication
           * libcurl based client transport
           * CGI interface
 
-   4. Transports supported : HTTPS
+   4. Transports supported: HTTPS
           * HTTPS Transport implementation using OpenSSL
+          * SNI (Server Name Indication) support
 
-   5. Transports supported : TCP
+   5. Transports supported: TCP
           * for both client and server side
 
-   6. Transports supported : AMQP
-          * AMQP Transport implementation using Apache Qpid
-	    * Available only in Linux platforms.	
-	    * At an experimental stage. Please refer the INSTALL file to build this.
+   6. Transports supported: HTTP/2 (NEW in 2.0.0)
+          * HTTP/2 transport for JSON requests via Apache mod_http2
+          * Stream multiplexing and header compression
+          * Large payload support (50MB+)
 
    7. Transport proxy support (HTTP)
           * Proxy Authentication (Basic/Digest)
 
    8. Module architecture, mechanism to extend the SOAP processing model.
 
-   9. WS-Addressing support, both the submission (2004/08) and 
-   	  final (2005/08) versions, implemented as a module.
+   9. WS-Addressing support, both the submission (2004/08) and
+      final (2005/08) versions, implemented as a module.
 
   10. MTOM/XOP support.
 
-  11. AXIOM, an XML object model optimized for SOAP 1.1/1.2 messages; 
+  11. AXIOM, an XML object model optimized for SOAP 1.1/1.2 messages;
       This has complete XML infoset support.
 
-  12. XPath support for Axiom XML Object model  
+  12. XPath support for Axiom XML Object model
 
   13. XML parser abstraction
           * Libxml2 wrapper
           * Guththila pull parser support
 
-  14. Both directory based and archive based deployment models for deploying 
+  14. JSON support (NEW in 2.0.0)
+          * JSON message processing via json-c library
+          * JSON-RPC message receiver
+
+  15. Both directory based and archive based deployment models for deploying
       services and modules
 
-  15. Description hierarchy providing access to static data of Axis2/C runtime 
-  	  (configuration, service groups, services, operations and messages)
+  16. Description hierarchy providing access to static data of Axis2/C runtime
+      (configuration, service groups, services, operations and messages)
 
-  16. Context hierarchy providing access to dynamic 
-      Axis2/C runtime information (corresponding contexts to map to 
-	  each level of description hierarchy)
+  17. Context hierarchy providing access to dynamic
+      Axis2/C runtime information (corresponding contexts to map to
+      each level of description hierarchy)
 
-  17. Message receiver abstraction
+  18. Message receiver abstraction
           * Inbuilt raw XML message receiver
+          * JSON-RPC message receiver (NEW in 2.0.0)
 
-  18. Code generation tool for stub and skeleton generation for a given 
+  19. Code generation tool for stub and skeleton generation for a given
       WSDL (based on Java tool)
-          *  Axis Data Binding (ADB) support
+          * Axis Data Binding (ADB) support
 
-  19. REST support (more POX like) using HTTP POST, GET, HEAD, PUT and DELETE
-          *  Support for RESTful Services
+  20. Native C WSDL2C code generator (NEW in 2.0.0)
+          * Pure C implementation with libxml2 dependency only
+          * Fast, reliable WSDL to C code generation
 
-  20. Comprehensive documentation
+  21. REST support (more POX like) using HTTP POST, GET, HEAD, PUT and DELETE
+          * Support for RESTful Services
+
+  22. Comprehensive documentation
           * Axis2/C Manual
+          * MkDocs-based documentation site
+
+  23. WS-Policy implementation called Neethi/C, with WS-SecurityPolicy extension
 
-  21. WS-Policy implementation called Neethi/C, with WS-SecurityPolicy extension
+  24. HTTP KeepAlive support.
 
-  22. HTTP KeepAlive support.
+  25. HTTP session handling.
 
-  23. HTTP session handling.
+  26. Security hardening (NEW in 2.0.0)
+          * SSL/TLS peer name validation enabled by default
+          * JSON payload size and depth limits
 
 
 Major Changes Since Last Release
 ================================
 
-   1. Preformance improvements to guththila parser. 
-   2. HTTP Session support
-   3. HTTP Keep Alive support
-   4. Improvments to Axiom/C
-   5. Many bug fixes. 
-
-We welcome your early feedback on this implementation.
-
-Thanks for your interest in Axis2/C !!!
-
--- Apache Axis2/C Team -- 
-
+Version 2.0.0 includes 17 years of accumulated fixes and improvements since
+version 1.6.0 (2009). This release resolves over 115 issues from the Jira
+issue tracker.
+
+New Features:
+   * HTTP/2 transport support for JSON requests (AXIS2C-1707)
+   * JSON support for Axis2/C (AXIS2C-1645)
+   * SNI (Server Name Indication) support (AXIS2C-1706)
+   * Clone method for axiom_node (AXIS2C-677)
+   * MTOM support for code generation with adb (AXIS2C-1181)
+   * Server bind to custom address (AXIS2C-1383, AXIS2C-1484)
+
+Improvements:
+   * Modern security hardening (AXIS2C-1708)
+   * Enhanced REST support (AXIS2C-1636)
+   * HTTP header reading performance (AXIS2C-1480)
+   * Custom HTTP User-Agent header (AXIS2C-1612)
+   * Base64 whitespace handling (AXIS2C-1666)
+   * Libcurl debug logging (AXIS2C-1371)
+   * Multi-threading client transport optimization (AXIS2C-1328)
+   * Prevention of name clashes with multiple services (AXIS2C-1330)
+
+Bug Fixes (115 issues resolved):
+   * Numerous memory leak fixes throughout the codebase
+   * SSL/TLS connection handling improvements
+   * WSDL2C code generation fixes
+   * HTTP transport reliability improvements
+   * XML serialization/deserialization fixes
+   * Cookie handling fixes
+   * Proxy authentication fixes
+   * macOS and FreeBSD build fixes
+
+Removed:
+   * IIS/ISAPI integration (unmaintained since 2009, use WSL2 instead)
+   * AMQP transport (experimental, unmaintained)
+
+For the complete list of resolved issues, see:
+https://issues.apache.org/jira/projects/AXIS2C/versions/12315139
+
+
+We welcome your feedback on this implementation.
+
+Thanks for your interest in Axis2/C!
+
+-- Apache Axis2/C Team --
 
diff --git a/docs/release-notes-2.0.0.md b/docs/release-notes-2.0.0.md
new file mode 100644
index 000000000..2fb1fe9f3
--- /dev/null
+++ b/docs/release-notes-2.0.0.md
@@ -0,0 +1,185 @@
+# Release Notes - Axis2/C Version 2.0.0
+
+Version 2.0.0 is a major release that includes 17 years of accumulated fixes and improvements since version 1.6.0 (2009). This release resolves over 115 issues from the Apache Jira issue tracker.
+
+## Bug Fixes
+
+| Issue | Summary |
+|-------|---------|
+| [AXIS2C-787](https://issues.apache.org/jira/browse/AXIS2C-787) | axutil_qname_to_string serialize with the prefix |
+| [AXIS2C-936](https://issues.apache.org/jira/browse/AXIS2C-936) | On incomplete response message, the client receives response data for the elements up to the error, but no indication of the error |
+| [AXIS2C-1001](https://issues.apache.org/jira/browse/AXIS2C-1001) | Axis2/C Stress tests fail |
+| [AXIS2C-1005](https://issues.apache.org/jira/browse/AXIS2C-1005) | dual clients report an error in log |
+| [AXIS2C-1153](https://issues.apache.org/jira/browse/AXIS2C-1153) | memory leak in code generated by WSDL2C, op not freed in axis2_stub_populate_services_for_myService |
+| [AXIS2C-1182](https://issues.apache.org/jira/browse/AXIS2C-1182) | adb_XXXX_add_nodes(_XXXX, env, _Y) FAILURES |
+| [AXIS2C-1192](https://issues.apache.org/jira/browse/AXIS2C-1192) | axis2c dual sample clients give a memory corruption in consecutive execution |
+| [AXIS2C-1197](https://issues.apache.org/jira/browse/AXIS2C-1197) | CodeGenerationException thrown without info about input files problem |
+| [AXIS2C-1204](https://issues.apache.org/jira/browse/AXIS2C-1204) | memory leak for In-Only message with no parameter |
+| [AXIS2C-1214](https://issues.apache.org/jira/browse/AXIS2C-1214) | memory leak when server returns an error |
+| [AXIS2C-1217](https://issues.apache.org/jira/browse/AXIS2C-1217) | multiple memory leaks on the client side |
+| [AXIS2C-1222](https://issues.apache.org/jira/browse/AXIS2C-1222) | Axis2/C AXIOM libxml2 parser frees the IO context before calling the AXIS2_CLOSE_INPUT_CALLBACK |
+| [AXIS2C-1224](https://issues.apache.org/jira/browse/AXIS2C-1224) | Error in WSDL2C while generating stubs in C |
+| [AXIS2C-1227](https://issues.apache.org/jira/browse/AXIS2C-1227) | engine not freed when server return an error |
+| [AXIS2C-1236](https://issues.apache.org/jira/browse/AXIS2C-1236) | Memory issues in Axis2/C service client |
+| [AXIS2C-1239](https://issues.apache.org/jira/browse/AXIS2C-1239) | Build failure in freebsd |
+| [AXIS2C-1258](https://issues.apache.org/jira/browse/AXIS2C-1258) | memory leaks in when using tls |
+| [AXIS2C-1261](https://issues.apache.org/jira/browse/AXIS2C-1261) | When several fire and forget sends are done using svc client it segfaults |
+| [AXIS2C-1262](https://issues.apache.org/jira/browse/AXIS2C-1262) | Leaking a axiom_soap_envelope_t in axiom_soap_builder_create error path |
+| [AXIS2C-1275](https://issues.apache.org/jira/browse/AXIS2C-1275) | Axiom default namespace serialization and deserialization are not compatible |
+| [AXIS2C-1289](https://issues.apache.org/jira/browse/AXIS2C-1289) | Incorrect deserialization when the first child is an empty element |
+| [AXIS2C-1294](https://issues.apache.org/jira/browse/AXIS2C-1294) | Same handler inserted in two places |
+| [AXIS2C-1312](https://issues.apache.org/jira/browse/AXIS2C-1312) | axis2_http_client_connect_ssl_host() cannot make an https connection through http proxy when the proxy requires authentication |
+| [AXIS2C-1338](https://issues.apache.org/jira/browse/AXIS2C-1338) | "make install" overly eager |
+| [AXIS2C-1339](https://issues.apache.org/jira/browse/AXIS2C-1339) | Wrong unique class names generation |
+| [AXIS2C-1342](https://issues.apache.org/jira/browse/AXIS2C-1342) | When enable "persistOperationContext" parameter in axis2.xml, server crashes |
+| [AXIS2C-1353](https://issues.apache.org/jira/browse/AXIS2C-1353) | Externally passed configuration context and service should not be freed within service client |
+| [AXIS2C-1355](https://issues.apache.org/jira/browse/AXIS2C-1355) | Changing service client options between messages |
+| [AXIS2C-1367](https://issues.apache.org/jira/browse/AXIS2C-1367) | sprintf format I32d not supported by Visual C++ 6.0 |
+| [AXIS2C-1373](https://issues.apache.org/jira/browse/AXIS2C-1373) | Name matching fails with choice element |
+| [AXIS2C-1374](https://issues.apache.org/jira/browse/AXIS2C-1374) | adb generated code has warnings |
+| [AXIS2C-1376](https://issues.apache.org/jira/browse/AXIS2C-1376) | Lots of memory leak in axis2/c library |
+| [AXIS2C-1378](https://issues.apache.org/jira/browse/AXIS2C-1378) | operation name is corrupted by the time it reaches dispatcher |
+| [AXIS2C-1379](https://issues.apache.org/jira/browse/AXIS2C-1379) | typedef done too late in special cases - CADBBeanTemplateHeader.xsl |
+| [AXIS2C-1388](https://issues.apache.org/jira/browse/AXIS2C-1388) | Memory leak AXIS2C |
+| [AXIS2C-1390](https://issues.apache.org/jira/browse/AXIS2C-1390) | When creating the build.sh script for C-language the flatten-file option is not properly used |
+| [AXIS2C-1401](https://issues.apache.org/jira/browse/AXIS2C-1401) | WSDL2C produces to WSDL2JAVA incompatible ADB-Binding for WSDL file |
+| [AXIS2C-1403](https://issues.apache.org/jira/browse/AXIS2C-1403) | Code generation having problem in Windows |
+| [AXIS2C-1404](https://issues.apache.org/jira/browse/AXIS2C-1404) | MTOM does not work with CGI installation of Axis |
+| [AXIS2C-1408](https://issues.apache.org/jira/browse/AXIS2C-1408) | axis2_dep_engine_load_client exits with the env status to AXIS2FAILURE |
+| [AXIS2C-1411](https://issues.apache.org/jira/browse/AXIS2C-1411) | thread_unix and thread_windows inconsistency as for axutil_thread_exit |
+| [AXIS2C-1421](https://issues.apache.org/jira/browse/AXIS2C-1421) | adb-bindings for typeless parameter only gives access to the first element if passed an array |
+| [AXIS2C-1447](https://issues.apache.org/jira/browse/AXIS2C-1447) | axutil_hash_free() should free using ht->env |
+| [AXIS2C-1465](https://issues.apache.org/jira/browse/AXIS2C-1465) | crash in axis2_http_sender_configure_proxy_auth |
+| [AXIS2C-1475](https://issues.apache.org/jira/browse/AXIS2C-1475) | Bad interaction between AXIS2_XML_PARSER_TYPE_BUFFER, axiom_soap_body_has_fault and XML escape sequence |
+| [AXIS2C-1482](https://issues.apache.org/jira/browse/AXIS2C-1482) | excessive retrying by client if server busy |
+| [AXIS2C-1486](https://issues.apache.org/jira/browse/AXIS2C-1486) | ADB generated code generates memory leak |
+| [AXIS2C-1490](https://issues.apache.org/jira/browse/AXIS2C-1490) | axiom_soap_builder_construct_node should check that the Header element is in a Soap namespace |
+| [AXIS2C-1491](https://issues.apache.org/jira/browse/AXIS2C-1491) | memory leak at axis2_dep_engine_get_svc_dir |
+| [AXIS2C-1492](https://issues.apache.org/jira/browse/AXIS2C-1492) | maximum value of xsd:unsignedInt cannot exceed maximum value of signed integer (2147483647) |
+| [AXIS2C-1495](https://issues.apache.org/jira/browse/AXIS2C-1495) | An error found while receiving www-form-urlencoded parameter values sent by POST method in REST style |
+| [AXIS2C-1499](https://issues.apache.org/jira/browse/AXIS2C-1499) | double-freeing in axis2_http_worker_process_request() |
+| [AXIS2C-1506](https://issues.apache.org/jira/browse/AXIS2C-1506) | 3 bugs in C code generation (invalid characters in c tokens, cyclic inclusion and uppercase-lowercase mismatch) |
+| [AXIS2C-1507](https://issues.apache.org/jira/browse/AXIS2C-1507) | SOAP Exception fields not available |
+| [AXIS2C-1508](https://issues.apache.org/jira/browse/AXIS2C-1508) | function axutil_strtol in util/src/types.c can't convert negative number from string |
+| [AXIS2C-1509](https://issues.apache.org/jira/browse/AXIS2C-1509) | The response message from axis2/c has not charSet in the ContentType |
+| [AXIS2C-1513](https://issues.apache.org/jira/browse/AXIS2C-1513) | C-language using unwrapped code does not compile |
+| [AXIS2C-1515](https://issues.apache.org/jira/browse/AXIS2C-1515) | WSDL2C: generated code in axis2_svc_skel_invoke() should not set error on NULL return value |
+| [AXIS2C-1516](https://issues.apache.org/jira/browse/AXIS2C-1516) | code generated from WSDL2C is not compiling |
+| [AXIS2C-1519](https://issues.apache.org/jira/browse/AXIS2C-1519) | WSDL2C with xml mapping generates client code with memory leak |
+| [AXIS2C-1520](https://issues.apache.org/jira/browse/AXIS2C-1520) | Unknown Error when using diacritic marks in XML request element value |
+| [AXIS2C-1527](https://issues.apache.org/jira/browse/AXIS2C-1527) | Local to UTC time calculation wrong |
+| [AXIS2C-1529](https://issues.apache.org/jira/browse/AXIS2C-1529) | wsdl2c generates skeleton code with memoryleak inside |
+| [AXIS2C-1531](https://issues.apache.org/jira/browse/AXIS2C-1531) | Last POST char truncated |
+| [AXIS2C-1532](https://issues.apache.org/jira/browse/AXIS2C-1532) | Last POST parameter is skipped when it has no value |
+| [AXIS2C-1533](https://issues.apache.org/jira/browse/AXIS2C-1533) | Redundant redeclarations and undefined macros |
+| [AXIS2C-1534](https://issues.apache.org/jira/browse/AXIS2C-1534) | XML writers handle errors differently, add char offset in case of errors |
+| [AXIS2C-1535](https://issues.apache.org/jira/browse/AXIS2C-1535) | Getting HTTP Status Code as 0 instead of 408 |
+| [AXIS2C-1536](https://issues.apache.org/jira/browse/AXIS2C-1536) | guththila stucked with empty XML comments |
+| [AXIS2C-1537](https://issues.apache.org/jira/browse/AXIS2C-1537) | HTTP server crashes during shutdown |
+| [AXIS2C-1539](https://issues.apache.org/jira/browse/AXIS2C-1539) | Initialization/finalization of libxml2 in wrong place |
+| [AXIS2C-1540](https://issues.apache.org/jira/browse/AXIS2C-1540) | axis2/c does not build on Mac OS X |
+| [AXIS2C-1542](https://issues.apache.org/jira/browse/AXIS2C-1542) | Memory leak in axis2c generated code |
+| [AXIS2C-1546](https://issues.apache.org/jira/browse/AXIS2C-1546) | Logging of long input/output messages contains garbage data on Windows |
+| [AXIS2C-1548](https://issues.apache.org/jira/browse/AXIS2C-1548) | WSDL2C generates improper code |
+| [AXIS2C-1550](https://issues.apache.org/jira/browse/AXIS2C-1550) | HTTPS using axis2c.xml or embedded axis2 lib does not work with SSL authentication |
+| [AXIS2C-1551](https://issues.apache.org/jira/browse/AXIS2C-1551) | Crash when reusing svc_client with non-blocking call |
+| [AXIS2C-1555](https://issues.apache.org/jira/browse/AXIS2C-1555) | Proxy authentication not working when using HTTPS |
+| [AXIS2C-1559](https://issues.apache.org/jira/browse/AXIS2C-1559) | axiom_node_to_string() doesn't return elements containing special latin characters |
+| [AXIS2C-1564](https://issues.apache.org/jira/browse/AXIS2C-1564) | axutil_uri_parse_string() only parses URLs, not URIs |
+| [AXIS2C-1566](https://issues.apache.org/jira/browse/AXIS2C-1566) | Client sends cookie only just after server sends Set-Cookie header |
+| [AXIS2C-1567](https://issues.apache.org/jira/browse/AXIS2C-1567) | F_OK not defined with MacOSX builds |
+| [AXIS2C-1568](https://issues.apache.org/jira/browse/AXIS2C-1568) | In keep alive mode, client reuses a connection even if the connection has already closed |
+| [AXIS2C-1573](https://issues.apache.org/jira/browse/AXIS2C-1573) | Generated code failed to compile when the type names in WSDL has '.' |
+| [AXIS2C-1574](https://issues.apache.org/jira/browse/AXIS2C-1574) | Generated code has duplicate property_Type definitions |
+| [AXIS2C-1575](https://issues.apache.org/jira/browse/AXIS2C-1575) | Generated code has undefined variables qname_uri and qname_prefix |
+| [AXIS2C-1579](https://issues.apache.org/jira/browse/AXIS2C-1579) | Wrong xsi:type in the response |
+| [AXIS2C-1580](https://issues.apache.org/jira/browse/AXIS2C-1580) | Generated code crashed when it deserializes 'any' type |
+| [AXIS2C-1581](https://issues.apache.org/jira/browse/AXIS2C-1581) | Generated code creates bad action in multi-parts request |
+| [AXIS2C-1584](https://issues.apache.org/jira/browse/AXIS2C-1584) | Asynchronous call crashes and memory leaks |
+| [AXIS2C-1586](https://issues.apache.org/jira/browse/AXIS2C-1586) | Memory leak in axis2_http_worker_process_request (http_worker.c) |
+| [AXIS2C-1590](https://issues.apache.org/jira/browse/AXIS2C-1590) | axiom_attribute reference counting broken |
+| [AXIS2C-1591](https://issues.apache.org/jira/browse/AXIS2C-1591) | axiom_element_add_attribute and duplicate names |
+| [AXIS2C-1593](https://issues.apache.org/jira/browse/AXIS2C-1593) | Strange handling of xsi:type in requests |
+| [AXIS2C-1595](https://issues.apache.org/jira/browse/AXIS2C-1595) | Memory leak in http_worker.c: array_list allocated by axutil_tokenize() |
+| [AXIS2C-1596](https://issues.apache.org/jira/browse/AXIS2C-1596) | Memory leaks in http_transport_utils.c |
+| [AXIS2C-1605](https://issues.apache.org/jira/browse/AXIS2C-1605) | sockets are being left in CLOSE_WAIT state by client when using SSL |
+| [AXIS2C-1608](https://issues.apache.org/jira/browse/AXIS2C-1608) | Segmentation fault when HTTP request includes multiple cookies in a cookie HTTP-header |
+| [AXIS2C-1609](https://issues.apache.org/jira/browse/AXIS2C-1609) | memory leak in axutil_hash_first() / axutil_hash_next() in generated xml deserializer code |
+| [AXIS2C-1613](https://issues.apache.org/jira/browse/AXIS2C-1613) | No error is set during deserialization when an unexpected NULL value is return |
+| [AXIS2C-1614](https://issues.apache.org/jira/browse/AXIS2C-1614) | Stop deserialization process when a required attribute is missing |
+| [AXIS2C-1616](https://issues.apache.org/jira/browse/AXIS2C-1616) | Conflict with data type names |
+| [AXIS2C-1617](https://issues.apache.org/jira/browse/AXIS2C-1617) | Fixes for memory leaks in generated code |
+| [AXIS2C-1618](https://issues.apache.org/jira/browse/AXIS2C-1618) | Error by reading SSL-stream |
+| [AXIS2C-1622](https://issues.apache.org/jira/browse/AXIS2C-1622) | echo_rest sample seg fault with libcurl |
+| [AXIS2C-1626](https://issues.apache.org/jira/browse/AXIS2C-1626) | query string not passed when http get rest without soap |
+| [AXIS2C-1632](https://issues.apache.org/jira/browse/AXIS2C-1632) | Patch to fix Stability issues and memory leaks on hash keys |
+| [AXIS2C-1635](https://issues.apache.org/jira/browse/AXIS2C-1635) | Fix for various memleaks & corruptions |
+| [AXIS2C-1651](https://issues.apache.org/jira/browse/AXIS2C-1651) | Static-WSDL retrieval does strange string operation |
+| [AXIS2C-1659](https://issues.apache.org/jira/browse/AXIS2C-1659) | Segmentation fault in axutil_hash_find_entry |
+| [AXIS2C-1662](https://issues.apache.org/jira/browse/AXIS2C-1662) | mod_log may corrupt the node list (on a chunked fault) |
+| [AXIS2C-1664](https://issues.apache.org/jira/browse/AXIS2C-1664) | Memory leak when replacing value of item in hash table |
+| [AXIS2C-1669](https://issues.apache.org/jira/browse/AXIS2C-1669) | Misc patches for mem leak, REST Call, SSL, XPATH |
+| [AXIS2C-1670](https://issues.apache.org/jira/browse/AXIS2C-1670) | Contents of every file in current directory read during axis2_stub_create_with_endpoint_ref_and_client_home() |
+| [AXIS2C-1672](https://issues.apache.org/jira/browse/AXIS2C-1672) | Build error on MacOSX |
+| [AXIS2C-1685](https://issues.apache.org/jira/browse/AXIS2C-1685) | Unable to serialize/deserialize object, wrong element type or null node |
+| [AXIS2C-1696](https://issues.apache.org/jira/browse/AXIS2C-1696) | Document GTest-related build requirements |
+| [AXIS2C-1699](https://issues.apache.org/jira/browse/AXIS2C-1699) | Wrong C code generation for sequence types |
+| [AXIS2C-1700](https://issues.apache.org/jira/browse/AXIS2C-1700) | Enable SSL/TLS peer name validation by default |
+| [AXIS2C-1701](https://issues.apache.org/jira/browse/AXIS2C-1701) | Memory leak on duplicate XML namespace declaration |
+| [AXIS2C-1702](https://issues.apache.org/jira/browse/AXIS2C-1702) | Memory leak in http transport |
+
+## New Features
+
+| Issue | Summary |
+|-------|---------|
+| [AXIS2C-677](https://issues.apache.org/jira/browse/AXIS2C-677) | Clone method required for axiom_node |
+| [AXIS2C-1181](https://issues.apache.org/jira/browse/AXIS2C-1181) | Unable to support MTOM for code generation with adb |
+| [AXIS2C-1383](https://issues.apache.org/jira/browse/AXIS2C-1383) | Ability to select the interface(s) that the axis2_http_server listens at for http requests |
+| [AXIS2C-1484](https://issues.apache.org/jira/browse/AXIS2C-1484) | Allow servers to bind to custom address only instead of INADDR_ANY |
+
+## Improvements
+
+| Issue | Summary |
+|-------|---------|
+| [AXIS2C-1187](https://issues.apache.org/jira/browse/AXIS2C-1187) | HTTP Authentication related code should be moved to a separate method |
+| [AXIS2C-1328](https://issues.apache.org/jira/browse/AXIS2C-1328) | Implementing new transport to optimize Axis2/C when used in a multi-threading client environment |
+| [AXIS2C-1330](https://issues.apache.org/jira/browse/AXIS2C-1330) | Prevent name clashes when using multiple services that happen to have identical named items |
+| [AXIS2C-1371](https://issues.apache.org/jira/browse/AXIS2C-1371) | Axis should log libcurl debug information |
+| [AXIS2C-1480](https://issues.apache.org/jira/browse/AXIS2C-1480) | Improve performance of reading HTTP headers |
+| [AXIS2C-1494](https://issues.apache.org/jira/browse/AXIS2C-1494) | Response received from the server is partially erased when non-ascii characters present in xml tags |
+| [AXIS2C-1565](https://issues.apache.org/jira/browse/AXIS2C-1565) | CPU utilization is 100% for SOAP queries for synchronous calls |
+| [AXIS2C-1612](https://issues.apache.org/jira/browse/AXIS2C-1612) | Custom HTTP HEADER USER AGENT |
+| [AXIS2C-1636](https://issues.apache.org/jira/browse/AXIS2C-1636) | Enhanced REST support for Axis2/C |
+| [AXIS2C-1645](https://issues.apache.org/jira/browse/AXIS2C-1645) | JSON support for Axis2/C |
+| [AXIS2C-1666](https://issues.apache.org/jira/browse/AXIS2C-1666) | base64 ignore some whitespaces |
+| [AXIS2C-1706](https://issues.apache.org/jira/browse/AXIS2C-1706) | SNI support |
+
+## Tasks
+
+| Issue | Summary |
+|-------|---------|
+| [AXIS2C-934](https://issues.apache.org/jira/browse/AXIS2C-934) | Organize Test Cases |
+| [AXIS2C-1419](https://issues.apache.org/jira/browse/AXIS2C-1419) | Fixing memory leak |
+| [AXIS2C-1679](https://issues.apache.org/jira/browse/AXIS2C-1679) | Support Multipart soap in code generation tool |
+| [AXIS2C-1707](https://issues.apache.org/jira/browse/AXIS2C-1707) | Add HTTP/2 transport support for JSON requests |
+| [AXIS2C-1708](https://issues.apache.org/jira/browse/AXIS2C-1708) | Modern security hardening |
+
+## Removed Features
+
+The following features have been removed in version 2.0.0:
+
+- **IIS/ISAPI Integration**: Unmaintained since 2009. Windows users should use WSL2 with Apache httpd instead.
+- **AMQP Transport**: Experimental feature that was never fully completed.
+
+## Upgrade Notes
+
+### Breaking Changes
+
+1. **SSL/TLS Peer Validation**: SSL/TLS peer name validation is now enabled by default (AXIS2C-1700). Applications that previously connected to servers with invalid certificates will now fail. To restore the old behavior (not recommended), disable peer verification in your SSL configuration.
+
+2. **IIS Support Removed**: Applications using IIS integration must migrate to Apache httpd (running natively or via WSL2 on Windows).
+
+### New Dependencies
+
+- **json-c** (optional): Required for JSON support. Install via `apt install libjson-c-dev` on Debian/Ubuntu.
+- **nghttp2** (optional): Required for HTTP/2 support. Install via `apt install libnghttp2-dev` on Debian/Ubuntu.


(axis-axis2-c-core) 02/03: Remove IIS/ISAPI integration (unmaintained since 2009)

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

robertlazarski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/axis-axis2-c-core.git

commit 44f01e0242b4719fa10678f352684c526f6ce2b9
Author: Robert Lazarski <ro...@gmail.com>
AuthorDate: Mon Feb 2 04:02:37 2026 -1000

    Remove IIS/ISAPI integration (unmaintained since 2009)
    
    IIS support has not been maintained or tested since version 1.6.0 (2009).
    With WSL2 providing excellent Linux compatibility on Windows, native IIS
    integration is no longer justified given the maintenance burden.
    
    Removed:
    - src/core/transport/http/server/IIS/ - ISAPI plugin and IIS worker code
    - ides/vc*/axis2c/mod_axis2_IIS/ - Visual Studio project files
    - References in VS solution files and Makefile.am
    
    Windows users should use WSL2 with Apache httpd (see INSTALL Section 2).
    
    Co-Authored-By: Claude Opus 4.5 <no...@anthropic.com>
---
 ides/vc/axis2c/axis2c.sln                          |   2 -
 ides/vc/axis2c/mod_axis2_IIS/mod_axis2_IIS.sln     |  20 -
 ides/vc/axis2c/mod_axis2_IIS/mod_axis2_IIS.vcproj  | 270 ---------
 ides/vc6/axis2c/axis2c.dsw                         |  15 -
 ides/vc6/axis2c/mod_axis2_IIS/mod_axis2_IIS.dsp    | 147 -----
 ides/vc9/axis2c/axis2c.sln                         |   2 -
 ides/vc9/axis2c/mod_axis2_IIS/mod_axis2_IIS.sln    |  20 -
 ides/vc9/axis2c/mod_axis2_IIS/mod_axis2_IIS.vcproj | 264 ---------
 src/core/transport/http/server/IIS/README          |  61 ---
 .../http/server/IIS/axis2_iis_constants.h          |  51 --
 .../http/server/IIS/axis2_iis_out_transport_info.c | 153 ------
 .../http/server/IIS/axis2_iis_out_transport_info.h |  61 ---
 .../transport/http/server/IIS/axis2_iis_regedit.js | 101 ----
 .../transport/http/server/IIS/axis2_iis_stream.c   | 313 -----------
 .../transport/http/server/IIS/axis2_iis_stream.h   |  45 --
 .../transport/http/server/IIS/axis2_iis_worker.c   | 608 ---------------------
 .../transport/http/server/IIS/axis2_iis_worker.h   |  62 ---
 .../transport/http/server/IIS/axis2_isapi_plugin.c | 476 ----------------
 .../IIS/iis_iaspi_plugin_51/axis2_isapi_51.c       | 153 ------
 src/core/transport/http/server/IIS/mod_axis2.def   |   7 -
 src/core/transport/http/server/Makefile.am         |   2 +-
 21 files changed, 1 insertion(+), 2832 deletions(-)

diff --git a/ides/vc/axis2c/axis2c.sln b/ides/vc/axis2c/axis2c.sln
index ed76d9026..287825f96 100644
--- a/ides/vc/axis2c/axis2c.sln
+++ b/ides/vc/axis2c/axis2c.sln
@@ -107,8 +107,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "axis2_tcp_server", "axis2_t
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_axis2", "mod_axis2\mod_axis2.vcproj", "{9CA2AEC7-8781-4B5E-B2A2-C143ABF5E818}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_axis2_IIS", "mod_axis2_IIS\mod_axis2_IIS.vcproj", "{1D949369-9C4B-4C59-9F2A-278FD8CE0D41}"
-EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcpmon", "tcpmon\tcpmon.vcproj", "{56180647-96CF-4415-B3FB-34E41CEAD595}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "guththila", "guththila\guththila.vcproj", "{81FDD803-8611-4EB4-AB0E-85F498061A2D}"
diff --git a/ides/vc/axis2c/mod_axis2_IIS/mod_axis2_IIS.sln b/ides/vc/axis2c/mod_axis2_IIS/mod_axis2_IIS.sln
deleted file mode 100644
index 95f65c4d4..000000000
--- a/ides/vc/axis2c/mod_axis2_IIS/mod_axis2_IIS.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_axis2_IIS", "mod_axis2_IIS.vcproj", "{1D949369-9C4B-4C59-9F2A-278FD8CE0D41}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Win32 = Debug|Win32
-		Release|Win32 = Release|Win32
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{1D949369-9C4B-4C59-9F2A-278FD8CE0D41}.Debug|Win32.ActiveCfg = Debug|Win32
-		{1D949369-9C4B-4C59-9F2A-278FD8CE0D41}.Debug|Win32.Build.0 = Debug|Win32
-		{1D949369-9C4B-4C59-9F2A-278FD8CE0D41}.Release|Win32.ActiveCfg = Release|Win32
-		{1D949369-9C4B-4C59-9F2A-278FD8CE0D41}.Release|Win32.Build.0 = Release|Win32
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
diff --git a/ides/vc/axis2c/mod_axis2_IIS/mod_axis2_IIS.vcproj b/ides/vc/axis2c/mod_axis2_IIS/mod_axis2_IIS.vcproj
deleted file mode 100644
index 113d7ea37..000000000
--- a/ides/vc/axis2c/mod_axis2_IIS/mod_axis2_IIS.vcproj
+++ /dev/null
@@ -1,270 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="mod_axis2_IIS"
-	ProjectGUID="{1D949369-9C4B-4C59-9F2A-278FD8CE0D41}"
-	RootNamespace="mod_iis"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)deploy\lib"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories=".\..\..\..\..\include;.\..\..\..\..\util\include;.\..\..\..\..\axiom\include;"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_IIS_EXPORTS;_CRT_SECURE_NO_DEPRECATE;"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="4"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-				CallingConvention="0"
-				CompileAs="1"
-				DisableSpecificWarnings="4100"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="axiom.lib axis2_parser.lib axutil.lib axis2_engine.lib axis2_http_receiver.lib axis2_http_sender.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="$(SolutionDir)deploy\lib"
-				ModuleDefinitionFile=".\..\..\..\..\src\core\transport\http\server\IIS\mod_axis2.def"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;MOD_IIS_EXPORTS"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="axiom.lib axis2_parser.lib axis2_util.lib axis2_engine.lib axis2_http_receiver.lib axis2_http_sender.lib"
-				LinkIncremental="1"
-				ModuleDefinitionFile="mod_axis2.def"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-		<ProjectReference
-			ReferencedProjectIdentifier="{7C816A64-FA96-4C6C-8DB0-5256441F54BC}"
-			RelativePathToProject=".\axiom\axiom.vcproj"
-		/>
-		<ProjectReference
-			ReferencedProjectIdentifier="{D7D7FBA1-5E43-4586-8F69-D4ED2628D2D8}"
-			RelativePathToProject=".\axis2_parser\axis2_parser.vcproj"
-		/>
-		<ProjectReference
-			ReferencedProjectIdentifier="{9524B8C5-79D9-4470-9A47-8BD163ABBB15}"
-			RelativePathToProject=".\axis2_engine\axis2_engine.vcproj"
-		/>
-		<ProjectReference
-			ReferencedProjectIdentifier="{9441F689-6ED3-4FF8-9B13-2E80E391DF39}"
-			RelativePathToProject=".\axis2_http_receiver\axis2_http_receiver.vcproj"
-		/>
-		<ProjectReference
-			ReferencedProjectIdentifier="{7332F525-8C77-4FB3-A0C0-FCEB2382F03C}"
-			RelativePathToProject=".\axis2_http_sender\axis2_http_sender.vcproj"
-		/>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_out_transport_info.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_stream.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_worker.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\core\transport\http\server\IIS\axis2_isapi_plugin.c"
-				>
-			</File>
-			<Filter
-				Name="IIS_5.1"
-				>
-				<File
-					RelativePath="..\..\..\..\src\core\transport\http\server\IIS\iis_iaspi_plugin_51\axis2_isapi_51.c"
-					>
-				</File>
-			</Filter>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_constants.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_out_transport_info.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_stream.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_worker.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\core\transport\http\server\IIS\axis2_isapi_plugin.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-			<File
-				RelativePath="..\..\..\..\modules\core\transport\http\server\IIS\mod_axis2.def"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/ides/vc6/axis2c/axis2c.dsw b/ides/vc6/axis2c/axis2c.dsw
index 9d75834e8..51ab48694 100644
--- a/ides/vc6/axis2c/axis2c.dsw
+++ b/ides/vc6/axis2c/axis2c.dsw
@@ -171,21 +171,6 @@ Package=<4>
 
 ###############################################################################
 
-Project: "mod_axis2_IIS"=.\mod_axis2_IIS\mod_axis2_IIS.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
-}}}
-
-Package=<4>
-{{{
-    Begin Project Dependency
-    Project_Dep_Name axis2_http_sender
-    End Project Dependency
-}}}
-
-###############################################################################
-
 Project: "neethi"=.\neethi\neethi.dsp - Package Owner=<4>
 
 Package=<5>
diff --git a/ides/vc6/axis2c/mod_axis2_IIS/mod_axis2_IIS.dsp b/ides/vc6/axis2c/mod_axis2_IIS/mod_axis2_IIS.dsp
deleted file mode 100644
index e0a2881bb..000000000
--- a/ides/vc6/axis2c/mod_axis2_IIS/mod_axis2_IIS.dsp
+++ /dev/null
@@ -1,147 +0,0 @@
-# Microsoft Developer Studio Project File - Name="mod_axis2_IIS" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=mod_axis2_IIS - Win32 Debug
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE 
-!MESSAGE NMAKE /f "mod_axis2_IIS.mak".
-!MESSAGE 
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE 
-!MESSAGE NMAKE /f "mod_axis2_IIS.mak" CFG="mod_axis2_IIS - Win32 Debug"
-!MESSAGE 
-!MESSAGE Possible choices for configuration are:
-!MESSAGE 
-!MESSAGE "mod_axis2_IIS - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "mod_axis2_IIS - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE 
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF  "$(CFG)" == "mod_axis2_IIS - Win32 Release"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release"
-# PROP BASE Intermediate_Dir "Release"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release"
-# PROP Intermediate_Dir "Release"
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MOD_AXIS2_IIS_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MOD_AXIS2_IIS_EXPORTS" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0xc0c /d "NDEBUG"
-# ADD RSC /l 0xc0c /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-
-!ELSEIF  "$(CFG)" == "mod_axis2_IIS - Win32 Debug"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 1
-# PROP BASE Output_Dir "Debug"
-# PROP BASE Intermediate_Dir "Debug"
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 1
-# PROP Output_Dir "Debug"
-# PROP Intermediate_Dir "Debug"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "MOD_AXIS2_IIS_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /w /W0 /Z7 /Od /I "..\..\..\..\util\include" /I "..\..\..\..\util\src\\" /I "..\..\..\..\util\src\minizip\\" /I "..\..\..\..\axiom\include" /I "..\..\..\..\axiom\src\om" /I "..\..\..\..\axiom\src\soap" /I "..\..\..\..\util\include\platforms" /I "..\..\..\..\neethi\include" /I "..\..\..\..\neethi\src" /I "..\..\..\..\neethi\src\secpolicy\builder" /I "..\..\..\..\neethi\src\secpolicy\model" /I "..\..\..\..\src\core\clientapi" /I "..\..\..\..\src\core\deployment" /I " [...]
-# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0xc0c /d "_DEBUG"
-# ADD RSC /l 0xc0c /d "_DEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib axiom.lib axis2_parser.lib axutil.lib axis2_engine.lib axis2_http_receiver.lib axis2_http_sender.lib /nologo /dll /incremental:no /pdb:"../../../../build/deploy/lib/mod_axis2_IIS.pdb" /debug /machine:I386 /out:"../../../../build/deploy/lib/mod_axis2_IIS.dll" /pdbtype:sept /libpath:"../../../../build/deploy/lib"
-# SUBTRACT LINK32 /pdb:none
-
-!ENDIF 
-
-# Begin Target
-
-# Name "mod_axis2_IIS - Win32 Release"
-# Name "mod_axis2_IIS - Win32 Debug"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_out_transport_info.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_stream.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_worker.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\..\src\core\transport\http\server\IIS\iis_iaspi_plugin_51\axis2_isapi_51.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\..\src\core\transport\http\server\IIS\axis2_isapi_plugin.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_constants.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_out_transport_info.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_stream.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_worker.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\..\..\src\core\transport\http\server\IIS\axis2_isapi_plugin.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# Begin Source File
-
-SOURCE=..\..\..\..\src\core\transport\http\server\IIS\mod_axis2.def
-# End Source File
-# End Group
-# End Target
-# End Project
diff --git a/ides/vc9/axis2c/axis2c.sln b/ides/vc9/axis2c/axis2c.sln
index 727eb3894..9868144a2 100644
--- a/ides/vc9/axis2c/axis2c.sln
+++ b/ides/vc9/axis2c/axis2c.sln
@@ -111,8 +111,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "axis2_tcp_server", "axis2_t
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_axis2", "mod_axis2\mod_axis2.vcproj", "{9CA2AEC7-8781-4B5E-B2A2-C143ABF5E818}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_axis2_IIS", "mod_axis2_IIS\mod_axis2_IIS.vcproj", "{1D949369-9C4B-4C59-9F2A-278FD8CE0D41}"
-EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tcpmon", "tcpmon\tcpmon.vcproj", "{56180647-96CF-4415-B3FB-34E41CEAD595}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "guththila", "guththila\guththila.vcproj", "{81FDD803-8611-4EB4-AB0E-85F498061A2D}"
diff --git a/ides/vc9/axis2c/mod_axis2_IIS/mod_axis2_IIS.sln b/ides/vc9/axis2c/mod_axis2_IIS/mod_axis2_IIS.sln
deleted file mode 100644
index 95f65c4d4..000000000
--- a/ides/vc9/axis2c/mod_axis2_IIS/mod_axis2_IIS.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 9.00
-# Visual Studio 2005
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_axis2_IIS", "mod_axis2_IIS.vcproj", "{1D949369-9C4B-4C59-9F2A-278FD8CE0D41}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Win32 = Debug|Win32
-		Release|Win32 = Release|Win32
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{1D949369-9C4B-4C59-9F2A-278FD8CE0D41}.Debug|Win32.ActiveCfg = Debug|Win32
-		{1D949369-9C4B-4C59-9F2A-278FD8CE0D41}.Debug|Win32.Build.0 = Debug|Win32
-		{1D949369-9C4B-4C59-9F2A-278FD8CE0D41}.Release|Win32.ActiveCfg = Release|Win32
-		{1D949369-9C4B-4C59-9F2A-278FD8CE0D41}.Release|Win32.Build.0 = Release|Win32
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
diff --git a/ides/vc9/axis2c/mod_axis2_IIS/mod_axis2_IIS.vcproj b/ides/vc9/axis2c/mod_axis2_IIS/mod_axis2_IIS.vcproj
deleted file mode 100644
index 643e6fd6d..000000000
--- a/ides/vc9/axis2c/mod_axis2_IIS/mod_axis2_IIS.vcproj
+++ /dev/null
@@ -1,264 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="9.00"
-	Name="mod_axis2_IIS"
-	ProjectGUID="{1D949369-9C4B-4C59-9F2A-278FD8CE0D41}"
-	RootNamespace="mod_iis"
-	Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="$(SolutionDir)deploy\lib"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories=".\..\..\..\..\include;.\..\..\..\..\util\include;.\..\..\..\..\axiom\include;"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_IIS_EXPORTS;_CRT_SECURE_NO_DEPRECATE;"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="4"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-				CallingConvention="0"
-				CompileAs="1"
-				DisableSpecificWarnings="4100"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="axiom.lib axis2_parser.lib axutil.lib axis2_engine.lib axis2_http_receiver.lib axis2_http_sender.lib"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="$(SolutionDir)deploy\lib"
-				ModuleDefinitionFile=".\..\..\..\..\src\core\transport\http\server\IIS\mod_axis2.def"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
-			IntermediateDirectory="$(ConfigurationName)"
-			ConfigurationType="2"
-			CharacterSet="1"
-			WholeProgramOptimization="1"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;MOD_IIS_EXPORTS"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="axiom.lib axis2_parser.lib axis2_util.lib axis2_engine.lib axis2_http_receiver.lib axis2_http_sender.lib"
-				LinkIncremental="1"
-				ModuleDefinitionFile="mod_axis2.def"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				RandomizedBaseAddress="1"
-				DataExecutionPrevention="0"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-		<ProjectReference
-			ReferencedProjectIdentifier="{7C816A64-FA96-4C6C-8DB0-5256441F54BC}"
-		/>
-		<ProjectReference
-			ReferencedProjectIdentifier="{D7D7FBA1-5E43-4586-8F69-D4ED2628D2D8}"
-		/>
-		<ProjectReference
-			ReferencedProjectIdentifier="{9524B8C5-79D9-4470-9A47-8BD163ABBB15}"
-		/>
-		<ProjectReference
-			ReferencedProjectIdentifier="{9441F689-6ED3-4FF8-9B13-2E80E391DF39}"
-		/>
-		<ProjectReference
-			ReferencedProjectIdentifier="{7332F525-8C77-4FB3-A0C0-FCEB2382F03C}"
-		/>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_out_transport_info.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_stream.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_worker.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\core\transport\http\server\IIS\axis2_isapi_plugin.c"
-				>
-			</File>
-			<Filter
-				Name="IIS_5.1"
-				>
-				<File
-					RelativePath="..\..\..\..\src\core\transport\http\server\IIS\iis_iaspi_plugin_51\axis2_isapi_51.c"
-					>
-				</File>
-			</Filter>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-			<File
-				RelativePath="..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_constants.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_out_transport_info.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_stream.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\core\transport\http\server\IIS\axis2_iis_worker.h"
-				>
-			</File>
-			<File
-				RelativePath="..\..\..\..\src\core\transport\http\server\IIS\axis2_isapi_plugin.h"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-			<File
-				RelativePath="..\..\..\..\modules\core\transport\http\server\IIS\mod_axis2.def"
-				>
-			</File>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>
diff --git a/src/core/transport/http/server/IIS/README b/src/core/transport/http/server/IIS/README
deleted file mode 100644
index 1a47cc4fe..000000000
--- a/src/core/transport/http/server/IIS/README
+++ /dev/null
@@ -1,61 +0,0 @@
-How to Configure IIS Module for Axis2C
-________________________________________
-
-Use the Axis2/C VC project or makefile to build the component.
-
-In this document it is assumed that the mod_axis2_IIS.dll is in the directory
-c:\axis2c\lib\mod_axis2_IIS.dll and axis2c_home is c:\axis2c
-
-Add the following key to the registry.
-
-HKEY_LOCAL_MACHINE\SOFTWARE\Apache Axis2c\IIS ISAPI Redirector
-
-Add a string value with the name axis2c_home and a value of c:\axis2c
-
-Add a string value with the name log_file and a value of c:\axis2c\logs\axis2.log
-
-Add a string value with the name log_level. The value can be one of trace, error, info, critical, debug, warning
-
-You can add a string value with the name services_url_prefix. This is optional and defaults to "/services".
-As an example, if you have "/web_services" as the prefix, then all the services hosted would have the endpoint prefix of : 
-http://localhost/axis2/web_services.
-Note: don't forget the / at the begining.
-
-If you wish, you can also change the location as well by adding a string value with the name axis2_location. 
-This is also optional and defaults to /axis2. If you have /myserser as the value you can access your web 
-services with a url like http://localhost/myserver/services.
-Note: Don't forget the / at the beginning.
-
-Now you can do all the registry editing using the JScript file axis2_iis_regedit.js 
-provided with the distribution. When you build axis2/C with the IIS module the file 
-is copied to the root directory of the binary distribution. Just double click it and 
-everything will be set to the defaults. The axis2c_home is taken as the current directory, 
-so make sure you run the file in the Axis2/C repository location (or root of the binary distribution). 
-If you want to change the values you can manually edit the the .js file or give it as command line arguments 
-to the script when running the script. To run the jscript from the command line use the command 
-:\cscript axis2_iis_regedit.js optional arguments. 
-We recomend the manual editing as it is the easiest way to specify the values
-
-IIS 5.1 or Below
-
-Using the IIS management console, add a new virtual directory to your IIS/PWS Web site.
-The name of the virtual directory must be axis2. Its physical path should be the directory
-where you placed mod_axis2_IIS.dll (in our example it is c:\axis2c\lib). When creating this new
-virtual directory, assign execute access to it.
-
-By Using the IIS management console, add mod_axis2_IIS.dll as a filter in your IIS/PWS web site and restart the IIS admin service.
-
- 
-IIS 6 & 7
-
-Using the IIS management console, add the mod_axis2_IIS.dll as a Wildcard Script Map.
-    Executable should be the complete path to the mod_axis2_IIS.dll
-    You can put any name as the name of the Wildcard Script Map
-
-Please don't add the mod_axis2_IIS.dll as a filter to IIS as in the IIS 5.1 case.
-
-Note: If the Axis2/C failed to load, verify that Axis2/C and its dependent DLLs are in the System Path (not the user path). 
-
-
-
-	
diff --git a/src/core/transport/http/server/IIS/axis2_iis_constants.h b/src/core/transport/http/server/IIS/axis2_iis_constants.h
deleted file mode 100644
index fb6929bff..000000000
--- a/src/core/transport/http/server/IIS/axis2_iis_constants.h
+++ /dev/null
@@ -1,51 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef	AXIS2_IIS_CONSTANTS_H
-#define AXIS2_IIS_CONSTANTS_H
-
-#define INTERNET_MAX_PATH_LENGTH        2048
-#define INTERNET_MAX_SCHEME_LENGTH      32  /* longest protocol name length */
-#define INTERNET_MAX_URL_LENGTH         (INTERNET_MAX_SCHEME_LENGTH +sizeof("://") +INTERNET_MAX_PATH_LENGTH) 
-
-#define URI_MATCHED						1
-#define URI_UN_MATCHED					2
-
-#define EXTENSION_URL					"/axis2/mod_axis2_IIS.dll\? "
-#define EXTENSION_URL_AXIS2				"/axis2/"
-#define EXTENSION_URL_MODIIS			"mod_axis2_IIS.dll\? "
-
-
-#define MAX_SERVERNAME					128
-#define MAX_PORT_LEN					8
-
-#define MAX_HTTP_VERSION_LEN			16
-#define MAX_HTTP_CONTENT_TYPE_LEN		2048
-#define MAX_CONTENT_ENCODING_LEN		16
-#define MAX_HTTP_METHOD_LEN				8
-#define MAX_TCP_PORT_LEN				8
-#define MAX_CONTENT_LEN					16
-
-#define OK								200
-#define HTTP_INTERNAL_SERVER_ERROR		500
-#define HTTP_ACCEPTED					202
-
-#define AXIS2_STRICMP                   _stricmp
-
-#endif  /*AXIS2_IIS_CONSTANTS_H*/
-
diff --git a/src/core/transport/http/server/IIS/axis2_iis_out_transport_info.c b/src/core/transport/http/server/IIS/axis2_iis_out_transport_info.c
deleted file mode 100644
index 4ad006953..000000000
--- a/src/core/transport/http/server/IIS/axis2_iis_out_transport_info.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "axis2_iis_out_transport_info.h"
-#include <axutil_string.h>
-#include <axis2_http_transport.h>
-#include <axutil_string.h>
-
-#include "axis2_iis_constants.h"
-
-/**
- * @brief IIS Out transport info impl structure
- * Axis2 iis_out_transport_info_impl
- */
-
-typedef struct axis2_iis_out_transport_info_s
-{
-    axis2_http_out_transport_info_t out_transport_info;
-    axis2_char_t *encoding;
-    axis2_char_t content_type[MAX_HTTP_CONTENT_TYPE_LEN];
-} axis2_iis_out_transport_info_t;
-
-#define AXIS2_INTF_TO_IMPL(out_transport_info) \
-                ((axis2_iis_out_transport_info_t *)(out_transport_info))
-
-void AXIS2_CALL
-axis2_iis_out_transport_info_free(
-    axis2_http_out_transport_info_t * out_transport_info,
-    const axutil_env_t * env)
-{
-    axis2_iis_out_transport_info_t *info = NULL;
-    AXIS2_ENV_CHECK(env, void);
-
-    info = AXIS2_INTF_TO_IMPL(out_transport_info);
-
-    if(info->encoding)
-    {
-        AXIS2_FREE(env->allocator, info->encoding);
-        info->encoding = NULL;
-    }
-
-    AXIS2_FREE(env->allocator, info);
-    return;
-}
-
-void AXIS2_CALL
-axis2_iis_out_transport_info_free_void_arg(
-    void *transport_info,
-    const axutil_env_t * env)
-{
-    axis2_http_out_transport_info_t *transport_info_l = NULL;
-
-    AXIS2_ENV_CHECK(env, void);
-    transport_info_l = (axis2_http_out_transport_info_t *)transport_info;
-    axis2_http_out_transport_info_free(transport_info_l, env);
-    return;
-}
-
-axis2_status_t AXIS2_CALL
-axis2_iis_out_transport_info_set_content_type(
-    axis2_http_out_transport_info_t * info,
-    const axutil_env_t * env,
-    const axis2_char_t * content_type)
-{
-    axis2_iis_out_transport_info_t *info_impl = NULL;
-
-    info_impl = AXIS2_INTF_TO_IMPL(info);
-    info_impl->content_type[0] = '\0';
-    if(info_impl->encoding)
-    {
-        sprintf(info_impl->content_type, "%s%s%s", content_type, ";charset:", info_impl->encoding);
-    }
-    else
-    {
-        strcat(info_impl->content_type, content_type);
-    }
-    return AXIS2_SUCCESS;
-}
-
-axis2_status_t AXIS2_CALL
-axis2_iis_out_transport_info_set_char_encoding(
-    axis2_http_out_transport_info_t * info,
-    const axutil_env_t * env,
-    const axis2_char_t * encoding)
-{
-    axis2_iis_out_transport_info_t *info_impl = NULL;
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK(env->error, encoding, AXIS2_FAILURE);
-
-    info_impl = AXIS2_INTF_TO_IMPL(info);
-
-    if(info_impl->encoding)
-    {
-        AXIS2_FREE(env->allocator, info_impl->encoding);
-    }
-    info_impl->encoding = axutil_strdup(env, encoding);
-
-    return AXIS2_SUCCESS;
-}
-
-axis2_http_out_transport_info_t *AXIS2_CALL
-axis2_iis_out_transport_info_create(
-    const axutil_env_t * env,
-    LPEXTENSION_CONTROL_BLOCK lpECB)
-{
-    axis2_iis_out_transport_info_t *info = NULL;
-    axis2_http_out_transport_info_t *http_out_info = NULL;
-    AXIS2_ENV_CHECK(env, NULL);
-
-    info = (axis2_iis_out_transport_info_t *)AXIS2_MALLOC(env->allocator,
-        sizeof(axis2_iis_out_transport_info_t));
-
-    if(!info)
-    {
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
-    info->encoding = NULL;
-
-    http_out_info = &(info->out_transport_info);
-
-    axis2_http_out_transport_info_set_content_type_func(http_out_info, env,
-        axis2_iis_out_transport_info_set_content_type);
-    axis2_http_out_transport_info_set_char_encoding_func(http_out_info, env,
-        axis2_iis_out_transport_info_set_char_encoding);
-    axis2_http_out_transport_info_set_free_func(http_out_info, env,
-        axis2_iis_out_transport_info_free);
-
-    return http_out_info;
-}
-
-axis2_char_t *
-axis2_iis_out_transport_get_content(
-    axis2_http_out_transport_info_t * info)
-{
-    axis2_iis_out_transport_info_t *info_impl = NULL;
-    info_impl = AXIS2_INTF_TO_IMPL(info);
-    return info_impl->content_type;
-}
diff --git a/src/core/transport/http/server/IIS/axis2_iis_out_transport_info.h b/src/core/transport/http/server/IIS/axis2_iis_out_transport_info.h
deleted file mode 100644
index 893ffdf5e..000000000
--- a/src/core/transport/http/server/IIS/axis2_iis_out_transport_info.h
+++ /dev/null
@@ -1,61 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef AXIS2_IIS_OUT_TRANSPORT_INFO_H
-#define AXIS2_IIS_OUT_TRANSPORT_INFO_H
-
-/**
- * @ingroup axis2_core_transport_http
- * @{
- */
-
-/**
- * @file axis2_iis_out_transport_info.h
- * @brief axis2 IIS Out Transport Info
- */
-
-#include <axis2_http_out_transport_info.h>
-#include <httpext.h>
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-    axis2_http_out_transport_info_t *AXIS2_CALL
-
-    axis2_iis_out_transport_info_create(
-        const axutil_env_t * env,
-        LPEXTENSION_CONTROL_BLOCK lpECB);
-
-    /**
-     * Free http_out_transport_info passed as void pointer. This will be
-     * cast into appropriate type and then pass the cast object
-     * into the http_out_transport_info structure's free method
-     */
-    void AXIS2_CALL
-    axis2_iis_out_transport_info_free_void_arg(
-        void *transport_info,
-        const axutil_env_t * env);
-
-    axis2_char_t *axis2_iis_out_transport_get_content(
-        axis2_http_out_transport_info_t * out_transport_info);
-
-#ifdef __cplusplus
-}
-#endif
-#endif                          /* AXIS2_IIS_OUT_TRANSPORT_INFO_H */
diff --git a/src/core/transport/http/server/IIS/axis2_iis_regedit.js b/src/core/transport/http/server/IIS/axis2_iis_regedit.js
deleted file mode 100644
index a328dc90a..000000000
--- a/src/core/transport/http/server/IIS/axis2_iis_regedit.js
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- *
- */
-var WshShell = WScript.CreateObject("WScript.Shell");
-
-/* You can change the following values to suite your requirements */
-/* Axis2/C repo location. axis2.xml, modules folder and services folder should be in this dir */
-var axis2c_home             = WshShell.CurrentDirectory;
-/* Log level. Possible values are trace, error, info, critical, user, debug and warning */
-var log_level               = "debug";
-/* Full path to the log file */
-var log_file                = axis2c_home + "/logs/axis2.log";
-/* Services URL prefix. This is the folder where services are hosted. Optional */
-var services_url_prefix;
-/* Max log file size */
-var max_log_file_size;
-/* Axis2 location */
-var axis2_location;
-
-/* Don't change anything below */
-var axis2c_home_str         = "axis2c_home";
-var log_level_str           = "log_level";
-var log_file_str            = "log_file";
-var services_url_prefix_str = "services_url_prefix";
-var max_log_file_size_str   = "max_log_file_size";
-var axis2_location_str      = "axis2_location"
-
-var reg_location            = "HKLM\\Software\\Apache Axis2C\\IIS ISAPI Redirector\\"
-/* If specified get the values from the command prompt */
-var args = WScript.Arguments;
-if (args.length > 0) {
-    axis2c_home = args.Item(0);
-    if (axis2c_home) {
-            log_file = axis2c_home + "/logs/axis2.log";
-    }
-}
-if (args.length > 1) {
-    log_level = args.Item(1);
-}
-if (args.length > 2) {
-    log_file = args.Item(2);
-}
-if (args.length > 3) {
-    services_url_prefix = args.Item(3);
-}
-if (args.length > 4) {
-    max_log_file_size = args.Item(4);
-}
-if (args.length > 5) {
-    axis2_location = args.Item(5);
-}
-/* Write the axis2c_home entry. This is used by Axis2/C to find the repo location */
-WshShell.RegWrite (reg_location + axis2c_home_str, axis2c_home, "REG_SZ");
-/* Write the log_level registry entry */
-WshShell.RegWrite (reg_location + log_level_str, log_level, "REG_SZ");
-/* Write the log file name */
-WshShell.RegWrite (reg_location + log_file_str, log_file, "REG_SZ");
-/* Write the services url prefix. We write this only if specified */
-try {
-    var services_url_prefix_key = WshShell.RegRead (reg_location + services_url_prefix_str);
-    if (services_url_prefix_key) {
-        WshShell.RegDelete (reg_location + services_url_prefix_str);    
-    }
-} catch (e) {}
-if (services_url_prefix) {
-    WshShell.RegWrite (reg_location + services_url_prefix_str, services_url_prefix, "REG_SZ");
-}
-/* We write max_log_file_size only if specified */
-try {
-    var max_log_file_size_key = WshShell.RegRead (reg_location + max_log_file_size_str);
-    if (max_log_file_size_key) {
-        WshShell.RegDelete (reg_location + max_log_file_size_str);    
-    }
-} catch (e) {}
-if (max_log_file_size) {
-    WshShell.RegWrite (reg_location + max_log_file_size_str, max_log_file_size, "REG_SZ");
-}
-
-try{
-    var axis2_location_key = WshShell.RegRead (reg_location + axis2_location_str);
-    if (axis2_location_key) {
-            WshShell.RegDelete (reg_location + axis2_location_str);    
-    }
-} catch (e) {}
-if (axis2_location) {
-    WshShell.RegWrite (reg_location + axis2_location_str, axis2_location, "REG_SZ");
-}
\ No newline at end of file
diff --git a/src/core/transport/http/server/IIS/axis2_iis_stream.c b/src/core/transport/http/server/IIS/axis2_iis_stream.c
deleted file mode 100644
index 90fc8baed..000000000
--- a/src/core/transport/http/server/IIS/axis2_iis_stream.c
+++ /dev/null
@@ -1,313 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <string.h>
-#include <stdlib.h>
-#include "axis2_iis_stream.h"
-#include <httpext.h>
-
-/**
- * @brief Stream struct impl
- * Streaming mechanisms for iis web server
- */
-
-typedef struct iis_stream_impl
-{
-    axutil_stream_t stream;
-    axutil_stream_type_t stream_type;
-    LPEXTENSION_CONTROL_BLOCK lpECB;
-    unsigned int cur_pos;
-    void *cur_position;
-} iis_stream_impl_t;
-
-#define AXIS2_INTF_TO_IMPL(stream) ((iis_stream_impl_t *)(stream))
-
-axutil_stream_type_t AXIS2_CALL
-iis_stream_get_type(
-    axutil_stream_t * stream,
-    const axutil_env_t * env);
-
-int AXIS2_CALL iis_stream_write(
-    axutil_stream_t * stream,
-    const axutil_env_t * env,
-    const void *buffer,
-    size_t count);
-
-int AXIS2_CALL iis_stream_read(
-    axutil_stream_t * stream,
-    const axutil_env_t * env,
-    void *buffer,
-    size_t count);
-
-int AXIS2_CALL iis_stream_skip(
-    axutil_stream_t * stream,
-    const axutil_env_t * env,
-    int count);
-
-int AXIS2_CALL iis_stream_get_char(
-    axutil_stream_t * stream,
-    const axutil_env_t * env);
-
-axutil_stream_t *AXIS2_CALL
-axutil_stream_create_iis(
-    const axutil_env_t * env,
-    LPEXTENSION_CONTROL_BLOCK lpECB)
-{
-    iis_stream_impl_t *stream_impl = NULL;
-    AXIS2_ENV_CHECK(env, NULL);
-    AXIS2_PARAM_CHECK(env->error, lpECB, NULL);
-
-    stream_impl = (iis_stream_impl_t *)AXIS2_MALLOC(env->allocator, sizeof(iis_stream_impl_t));
-
-    if(!stream_impl)
-    {
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
-    stream_impl->cur_pos = 0;
-    stream_impl->cur_position = NULL;
-    stream_impl->lpECB = lpECB;
-    stream_impl->stream_type = AXIS2_STREAM_MANAGED;
-
-    axutil_stream_set_read(&(stream_impl->stream), env, iis_stream_read);
-    axutil_stream_set_write(&(stream_impl->stream), env, iis_stream_write);
-    axutil_stream_set_skip(&(stream_impl->stream), env, iis_stream_skip);
-
-    return &(stream_impl->stream);
-}
-
-int AXIS2_CALL
-iis_stream_read(
-    axutil_stream_t * stream,
-    const axutil_env_t * env,
-    void *buffer,
-    size_t count)
-{
-    void *temp_buff = NULL;
-    unsigned int data_to_read = 0;
-    DWORD ret_val = TRUE;
-    DWORD read_bytes = (DWORD)count;
-    iis_stream_impl_t *stream_impl = NULL;
-    char *temp = NULL;
-
-    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
-    stream_impl = (iis_stream_impl_t *)stream;
-
-    if(stream_impl->cur_pos == 0)
-        stream_impl->cur_position = stream_impl->lpECB->lpbData;
-
-    /* If this is the case all the bytes are in the lpECB->lpbData buffer*/
-    if(stream_impl->lpECB->cbAvailable == stream_impl->lpECB->cbTotalBytes)
-    {
-        /* Cannot read more than in the buffer.*/
-        if(count + stream_impl->cur_pos <= stream_impl->lpECB->cbAvailable)
-            data_to_read = (unsigned)count;
-        else
-            data_to_read = stream_impl->lpECB->cbTotalBytes - stream_impl->cur_pos;
-
-        memcpy(buffer, stream_impl->cur_position, data_to_read);
-        temp = (char *)(stream_impl->cur_position);
-        temp += data_to_read;
-        stream_impl->cur_position = temp;
-        temp = NULL;
-        stream_impl->cur_pos += data_to_read;
-        read_bytes = data_to_read;
-    }
-    else if(stream_impl->lpECB->cbAvailable == -1)
-    {
-        ret_val = stream_impl->lpECB->ReadClient(stream_impl->lpECB->ConnID, buffer, &read_bytes);
-    }
-    else if(stream_impl->lpECB->cbAvailable < stream_impl->lpECB->cbTotalBytes)
-    {
-        if(stream_impl->cur_pos > stream_impl->lpECB->cbAvailable)
-        {
-            ret_val = stream_impl->lpECB->ReadClient(stream_impl->lpECB->ConnID, buffer,
-                &read_bytes);
-        }
-        else if(stream_impl->cur_pos + count > stream_impl->lpECB->cbAvailable
-            && stream_impl->cur_pos < stream_impl->lpECB->cbAvailable)
-        {
-            int read_length = 0;
-            if(count + stream_impl->cur_pos <= stream_impl->lpECB->cbAvailable)
-                read_length = (unsigned)count;
-            else
-                read_length = stream_impl->lpECB->cbTotalBytes - stream_impl->cur_pos;
-            data_to_read = stream_impl->lpECB->cbAvailable - stream_impl->cur_pos;
-            memcpy(buffer, stream_impl->cur_position, data_to_read);
-
-            read_bytes = stream_impl->cur_pos + read_length - stream_impl->lpECB->cbAvailable;
-            temp_buff = malloc(read_bytes);
-
-            if(temp_buff == NULL)
-                return data_to_read;
-            ret_val = stream_impl->lpECB->ReadClient(stream_impl->lpECB->ConnID, temp_buff,
-                &read_bytes);
-            memcpy(((char *)buffer + data_to_read), temp_buff, read_bytes);
-            read_bytes += data_to_read;
-            temp = (char *)(stream_impl->cur_position);
-            temp += read_bytes;
-            stream_impl->cur_position = temp;
-            stream_impl->cur_pos += (unsigned)read_bytes;
-        }
-        else
-        {
-            memcpy(buffer, stream_impl->cur_position, count);
-            temp = (char *)(stream_impl->cur_position);
-            temp += count;
-            stream_impl->cur_position = temp;
-            temp = NULL;
-            stream_impl->cur_pos += (unsigned)count;
-            read_bytes = (int)count;
-        }
-    }
-    if(ret_val == TRUE)
-        return read_bytes;
-    else
-        return -1;
-}
-
-int AXIS2_CALL
-iis_stream_write(
-    axutil_stream_t * stream,
-    const axutil_env_t * env,
-    const void *buf,
-    size_t count)
-{
-    DWORD ret_val = NO_ERROR;
-    unsigned long bytes_sent = 0;
-    iis_stream_impl_t *stream_impl = NULL;
-    axis2_char_t *buffer = NULL;
-
-    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
-    AXIS2_PARAM_CHECK(env->error, buf, AXIS2_FAILURE);
-    stream_impl = AXIS2_INTF_TO_IMPL(stream);
-    buffer = (axis2_char_t *)buf;
-    bytes_sent = (unsigned)strlen(buffer);
-
-    if(count <= 0)
-    {
-        return (int)count;
-    }
-    /* assume that buffer is not null terminated */
-    ret_val = stream_impl->lpECB->WriteClient(stream_impl->lpECB->ConnID, buffer, &bytes_sent,
-        HSE_IO_SYNC);
-    if(ret_val == TRUE)
-        return (int)bytes_sent;
-    else
-        return -1;
-}
-
-int AXIS2_CALL
-iis_stream_skip(
-    axutil_stream_t * stream,
-    const axutil_env_t * env,
-    int count)
-{
-    DWORD ret_val = TRUE;
-    iis_stream_impl_t *stream_impl = NULL;
-    void *temp_buff = NULL;
-    int data_to_read = 0;
-    DWORD read_bytes = (DWORD)count;
-    char *temp = NULL;
-
-    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
-    stream_impl = (iis_stream_impl_t *)stream;
-
-    if(stream_impl->cur_pos == 0)
-        stream_impl->cur_position = stream_impl->lpECB->lpbData;
-
-    if(stream_impl->lpECB->cbAvailable == stream_impl->lpECB->cbTotalBytes)
-    {
-        if(count + stream_impl->cur_pos <= stream_impl->lpECB->cbAvailable)
-            data_to_read = count;
-        else
-            data_to_read = stream_impl->lpECB->cbAvailable - stream_impl->cur_pos;
-
-        temp = (char *)(stream_impl->cur_position);
-        temp += data_to_read;
-        stream_impl->cur_position = temp;
-        temp = NULL;
-        stream_impl->cur_pos += data_to_read;
-        read_bytes = data_to_read;
-    }
-    else if(stream_impl->lpECB->cbAvailable == -1)
-    {
-        temp_buff = malloc(read_bytes);
-        ret_val
-            = stream_impl->lpECB->ReadClient(stream_impl->lpECB->ConnID, temp_buff, &read_bytes);
-        free(temp_buff);
-    }
-    else if(stream_impl->lpECB->cbAvailable < stream_impl->lpECB->cbTotalBytes)
-    {
-        if(stream_impl->cur_pos > stream_impl->lpECB->cbAvailable)
-        {
-            temp_buff = malloc(read_bytes);
-            ret_val = stream_impl->lpECB->ReadClient(stream_impl->lpECB->ConnID, temp_buff,
-                &read_bytes);
-            free(temp_buff);
-        }
-        else if(stream_impl->cur_pos + count > stream_impl->lpECB->cbAvailable
-            && stream_impl->cur_pos < stream_impl->lpECB->cbAvailable)
-        {
-            data_to_read = stream_impl->lpECB->cbAvailable - stream_impl->cur_pos;
-            read_bytes = stream_impl->cur_pos + count - stream_impl->lpECB->cbAvailable;
-            temp_buff = malloc(read_bytes);
-
-            if(temp_buff == NULL)
-                return data_to_read;
-
-            ret_val = stream_impl->lpECB->ReadClient(stream_impl->lpECB->ConnID, temp_buff,
-                &read_bytes);
-            read_bytes += data_to_read;
-            free(temp_buff);
-        }
-        else
-        {
-            temp = (char *)(stream_impl->cur_position);
-            temp += count;
-            stream_impl->cur_position = temp;
-            temp = NULL;
-            stream_impl->cur_pos += count;
-            read_bytes = count;
-        }
-    }
-    if(ret_val == FALSE)
-    {
-        return -1;
-    }
-    return read_bytes;
-}
-
-int AXIS2_CALL
-iis_stream_get_char(
-    axutil_stream_t * stream,
-    const axutil_env_t * env)
-{
-    int ret = -1;
-    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
-
-    return ret;
-}
-
-axutil_stream_type_t AXIS2_CALL
-iis_stream_get_type(
-    axutil_stream_t * stream,
-    const axutil_env_t * env)
-{
-    AXIS2_ENV_CHECK(env, AXIS2_CRITICAL_FAILURE);
-    return AXIS2_INTF_TO_IMPL(stream)->stream_type;
-}
diff --git a/src/core/transport/http/server/IIS/axis2_iis_stream.h b/src/core/transport/http/server/IIS/axis2_iis_stream.h
deleted file mode 100644
index 091edb05c..000000000
--- a/src/core/transport/http/server/IIS/axis2_iis_stream.h
+++ /dev/null
@@ -1,45 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef IIS_STREAM_H
-#define IIS_STREAM_H
-
-#include <axis2_const.h>
-#include <axis2_defines.h>
-#include <axutil_env.h>
-#include <axutil_stream.h>
-#include <httpext.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-    /** brief Constructor for creating IIS stream
-      * @return axutil_stream (IIS)
-      */
-    axutil_stream_t *AXIS2_CALL
-    axutil_stream_create_iis(
-        const axutil_env_t * env,
-        LPEXTENSION_CONTROL_BLOCK lpECB);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif                          /* IIS_STREAM_H */
diff --git a/src/core/transport/http/server/IIS/axis2_iis_worker.c b/src/core/transport/http/server/IIS/axis2_iis_worker.c
deleted file mode 100644
index c5de72374..000000000
--- a/src/core/transport/http/server/IIS/axis2_iis_worker.c
+++ /dev/null
@@ -1,608 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <axis2_http_transport.h>
-#include <axis2_conf.h>
-#include <axutil_string.h>
-#include <axis2_msg_ctx.h>
-#include <axis2_http_out_transport_info.h>
-#include <axis2_http_transport_utils.h>
-#include <axis2_op_ctx.h>
-#include <axis2_engine.h>
-#include <axutil_uuid_gen.h>
-#include <axis2_conf_init.h>
-#include <axutil_url.h>
-#include <axiom_soap.h>
-#include "axis2_iis_out_transport_info.h"
-#include "axis2_iis_stream.h"
-#include "axis2_iis_worker.h"
-
-/* Files from iis */
-#include <httpfilt.h>
-#include <httpext.h>
-
-#include "axis2_iis_constants.h"
-
-#define READ_SIZE  2048
-
-axis2_status_t AXIS2_CALL
-axis2_worker_get_original_url(
-    char url[],
-    char ret_url[]);
-
-axis2_char_t * AXIS2_CALL
-axis2_iis_worker_get_bytes(
-    const axutil_env_t * env,
-    axutil_stream_t * stream);
-
-axis2_status_t AXIS2_CALL
-start_response(
-    const axutil_env_t * env,
-    LPEXTENSION_CONTROL_BLOCK lpECB,
-    int status,
-    const char *reason,
-    axutil_array_list_t *headers);
-
-axis2_status_t
-write_response(
-    LPEXTENSION_CONTROL_BLOCK lpECB,
-    const void *b,
-    unsigned int l);
-
-axutil_hash_t *
-axis2_iis_worker_read_http_headers(
-    const axutil_env_t * env,
-    LPEXTENSION_CONTROL_BLOCK lpECB);
-
-AXIS2_IMPORT extern axis2_char_t *axis2_request_url_prefix;
-
-static struct reasons
-{
-    axis2_char_t * status_code;
-    int status_len;
-} reasons[] = { { "200 OK", 6 }, { "202 Accepted", 12 }, { "500 Internal Server Error", 25 } };
-
-struct axis2_iis_worker
-{
-    axis2_conf_ctx_t * conf_ctx;
-};
-
-char *
-status_reason(
-    int status);
-
-axis2_iis_worker_t * AXIS2_CALL
-axis2_iis_worker_create(
-    const axutil_env_t * env,
-    axis2_char_t * repo_path)
-{
-    axis2_iis_worker_t * iis_worker = NULL;
-
-    iis_worker = (axis2_iis_worker_t *)AXIS2_MALLOC(env->allocator, sizeof(axis2_iis_worker_t));
-    if(!iis_worker)
-    {
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
-    iis_worker->conf_ctx = axis2_build_conf_ctx(env, repo_path);
-    if(!iis_worker->conf_ctx)
-    {
-        axis2_iis_worker_free((axis2_iis_worker_t *)iis_worker, env);
-        return NULL;
-    }
-    return iis_worker;
-}
-
-void AXIS2_CALL
-axis2_iis_worker_free(
-    axis2_iis_worker_t * iis_worker,
-    const axutil_env_t * env)
-{
-    if(iis_worker->conf_ctx)
-    {
-        axis2_conf_ctx_free(iis_worker->conf_ctx, env);
-        iis_worker->conf_ctx = NULL;
-    }
-    AXIS2_FREE(env->allocator, iis_worker);
-    return;
-}
-
-int AXIS2_CALL
-axis2_iis_worker_process_request(
-    axis2_iis_worker_t * iis_worker,
-    const axutil_env_t * env,
-    LPEXTENSION_CONTROL_BLOCK lpECB)
-{
-    axis2_conf_ctx_t * conf_ctx = NULL;
-    axutil_stream_t * out_stream = NULL;
-    axis2_transport_out_desc_t * out_desc = NULL;
-    axis2_transport_in_desc_t * in_desc = NULL;
-    axis2_char_t soap_action[INTERNET_MAX_URL_LENGTH];
-    axis2_char_t original_url[INTERNET_MAX_URL_LENGTH];
-    axis2_char_t req_url[INTERNET_MAX_URL_LENGTH];
-    DWORD cbSize = 0;
-    CHAR server_name[MAX_SERVERNAME];
-    axis2_char_t port[MAX_TCP_PORT_LEN];
-    axis2_char_t redirect_url[INTERNET_MAX_PATH_LENGTH];
-    axis2_char_t accept_language[INTERNET_MAX_PATH_LENGTH];
-    axutil_hash_t *headers = NULL;
-    axis2_char_t peer_ip[50];
-    axis2_char_t accept_header[INTERNET_MAX_URL_LENGTH];
-    axis2_char_t accept_charset[INTERNET_MAX_URL_LENGTH];
-    /*axutil_property_t *peer_property = NULL;*/
-
-    axis2_http_header_t *content_type_header = NULL;
-    axis2_http_header_t *content_length_header = NULL;
-
-    /* New Code variables */
-    axis2_http_transport_in_t request;
-    axis2_http_transport_out_t response;
-
-    /* initialize tranport in structure */
-    axis2_http_transport_utils_transport_in_init(&request, env);
-
-    /* initialize tranport out structure */
-    axis2_http_transport_utils_transport_out_init(&response, env);
-
-    soap_action[0] = '\0';
-
-    /*Check the parameters*/
-    if(!lpECB)
-    {
-        AXIS2_ERROR_SET_ERROR_NUMBER(env->error, AXIS2_ERROR_INVALID_NULL_PARAM);
-        return AXIS2_FAILURE;
-    }
-    conf_ctx = iis_worker->conf_ctx;
-    if(!conf_ctx)
-    {
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NULL_CONFIGURATION_CONTEXT, AXIS2_FAILURE);
-        return AXIS2_FAILURE;
-    }
-
-    cbSize = INTERNET_MAX_PATH_LENGTH;
-    if(lpECB->GetServerVariable(lpECB->ConnID, "SERVER_NAME", server_name, &cbSize) == FALSE)
-    {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot get server name from IIS.");
-        return AXIS2_FAILURE;
-    }
-    cbSize = MAX_TCP_PORT_LEN;
-    if(lpECB->GetServerVariable(lpECB->ConnID, "SERVER_PORT", port, &cbSize) == FALSE)
-    {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot get server port from IIS.");
-        return AXIS2_FAILURE;
-    }
-    request.svr_port = port;
-
-    cbSize = INTERNET_MAX_PATH_LENGTH;
-    if(lpECB->GetServerVariable(lpECB->ConnID, "HTTP_URL", redirect_url, &cbSize) == FALSE)
-    {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Cannot get server port from IIS.");
-        return AXIS2_FAILURE;
-    }
-
-    /* We have a mapped URL only when the server version is 5 or less than that. */
-    if(server_version <= 5)
-    {
-        axis2_worker_get_original_url(redirect_url, original_url);
-        /* create the url using the above variables */
-        sprintf(req_url, "%s%s%s%s%s", "http://", server_name, ":", port, original_url);
-    }
-    else
-    {
-        sprintf(req_url, "%s%s%s%s%s", "http://", server_name, ":", port, redirect_url);
-    }
-    /* Set the request url */
-    request.request_uri = req_url;
-
-    out_stream = axutil_stream_create_basic(env);
-    out_desc = axis2_conf_get_transport_out(axis2_conf_ctx_get_conf(iis_worker->conf_ctx, env),
-        env, AXIS2_TRANSPORT_ENUM_HTTP);
-    in_desc = axis2_conf_get_transport_in(axis2_conf_ctx_get_conf(iis_worker->conf_ctx, env), env,
-        AXIS2_TRANSPORT_ENUM_HTTP);
-
-    /* Create the in message context */
-    request.msg_ctx = axis2_msg_ctx_create(env, conf_ctx, in_desc, out_desc);
-    axis2_msg_ctx_set_server_side(request.msg_ctx, env, AXIS2_TRUE);
-    axis2_msg_ctx_set_transport_out_stream(request.msg_ctx, env, out_stream);
-
-    /* Get the SOAPAction Header */
-    cbSize = INTERNET_MAX_URL_LENGTH;
-    if(lpECB->GetServerVariable(lpECB->ConnID, "HTTP_SOAPAction", soap_action, &cbSize))
-    {
-        request.soap_action = soap_action;
-    }
-
-    /* Create the in stream */
-    request.in_stream = axutil_stream_create_iis(env, lpECB);
-    if(!request.in_stream)
-    {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "Error occured in creating input stream.");
-        return AXIS2_FAILURE;
-    }
-
-    /* Get the Remote Adrress */
-    if(lpECB->GetServerVariable(lpECB->ConnID, "REMOTE_ADDR", peer_ip, &cbSize))
-    {
-        request.remote_ip = peer_ip;
-    }
-
-    /* Set the http headers into the message context */
-    headers = axis2_iis_worker_read_http_headers(env, lpECB);
-    if(axis2_msg_ctx_set_transport_headers(request.msg_ctx, env, headers) == AXIS2_FAILURE)
-    {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "IIS: Error occured in setting transport headers.");
-    }
-    /* Set the content length */
-    request.content_length = lpECB->cbTotalBytes;
-    /* Set the HTTP method */
-    if(axutil_strcasecmp(lpECB->lpszMethod, "POST") == 0)
-    {
-        request.request_method = AXIS2_HTTP_METHOD_POST;
-    }
-    else if(axutil_strcasecmp(lpECB->lpszMethod, "GET") == 0)
-    {
-        request.request_method = AXIS2_HTTP_METHOD_GET;
-    }
-    else if(axutil_strcasecmp(lpECB->lpszMethod, "HEAD") == 0)
-    {
-        request.request_method = AXIS2_HTTP_METHOD_HEAD;
-    }
-    else if(axutil_strcasecmp(lpECB->lpszMethod, "PUT") == 0)
-    {
-        request.request_method = AXIS2_HTTP_METHOD_PUT;
-    }
-    else if(axutil_strcasecmp(lpECB->lpszMethod, "DELETE") == 0)
-    {
-        request.request_method = AXIS2_HTTP_METHOD_DELETE;
-    }
-    else
-    {
-        AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "IIS: Unsupported HTTP Method.");
-        return AXIS2_FAILURE;
-    }
-    /* Set the URL prefix. axis2_request_url_prefix is a global variable set at the init time */
-    request.request_url_prefix = axis2_request_url_prefix;
-    /* Create the transport out info */
-    request.out_transport_info = axis2_iis_out_transport_info_create(env, lpECB);
-    /* Set the content type */
-    request.content_type = lpECB->lpszContentType;
-
-    /* Get accept headaer */
-    cbSize = INTERNET_MAX_PATH_LENGTH;
-    if(lpECB->GetServerVariable(lpECB->ConnID, "HTTP_Accept", accept_header, &cbSize))
-    {
-        request.accept_header = accept_header;
-    }
-
-    /* Get the accept langauge */
-    cbSize = INTERNET_MAX_PATH_LENGTH;
-    if(lpECB->GetServerVariable(lpECB->ConnID, "HTTP_Accept-Language", accept_language, &cbSize))
-    {
-        request.accept_language_header = accept_language;
-    }
-
-    cbSize = INTERNET_MAX_PATH_LENGTH;
-    if(lpECB->GetServerVariable(lpECB->ConnID, "HTTP_Accept-Charset", accept_charset, &cbSize))
-    {
-        request.accept_charset_header = accept_charset;
-    }
-
-    /* Now we have set everything. We can call process method to process the request */
-    if(axis2_http_transport_utils_process_request(env, conf_ctx, &request, &response)
-        == AXIS2_FAILURE)
-    {
-        return AXIS2_FAILURE;
-    }
-
-    /* Write the response */
-    if(response.response_data && response.response_data_length > 0)
-    {
-        axis2_char_t content_length_str[16] = { 0 };
-        axis2_bool_t is_out_headers_created = AXIS2_FALSE;
-        if(!response.output_headers)
-        {
-            response.output_headers = axutil_array_list_create(env, 2);
-            is_out_headers_created = AXIS2_TRUE;
-        }
-        sprintf(content_length_str, "%d", response.response_data_length);
-        if(!response.content_type)
-        {
-            content_type_header = axis2_http_header_create(env, "Content-Type",
-                axis2_iis_out_transport_get_content(request.out_transport_info));
-        }
-        else
-        {
-            content_type_header = axis2_http_header_create(env, "Content-Type",
-                response.content_type);
-        }
-        content_length_header = axis2_http_header_create(env, "Content-Length", content_length_str);
-        axutil_array_list_add(response.output_headers, env, content_length_header);
-        axutil_array_list_add(response.output_headers, env, content_type_header);
-        /* Write the headers */
-        start_response(env, lpECB, response.http_status_code, response.http_status_code_name,
-            response.output_headers);
-        /* Write the response body */
-        if(write_response(lpECB, response.response_data, response.response_data_length)
-            == AXIS2_FAILURE)
-        {
-            AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "IIS: Writing data to IIS");
-            return AXIS2_FAILURE;
-        }
-        if(is_out_headers_created)
-        {
-            if(content_length_header)
-            {
-                axis2_http_header_free(content_length_header, env);
-            }
-            if(content_type_header)
-            {
-                axis2_http_header_free(content_type_header, env);
-            }
-            axutil_array_list_free(response.output_headers, env);
-        }
-    }
-    else
-    {
-        /* If we don't have a body we should write the HTTP headers */
-        start_response(env, lpECB, response.http_status_code, response.http_status_code_name,
-            response.output_headers);
-        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI, "Response is NULL");
-    }
-
-    /* Do some cleaning */
-    axis2_http_transport_utils_transport_in_uninit(&request, env);
-    axis2_http_transport_utils_transport_out_uninit(&response, env);
-    return AXIS2_SUCCESS;
-}
-
-axis2_status_t
-write_response(
-    LPEXTENSION_CONTROL_BLOCK lpECB,
-    const void *b,
-    unsigned int l)
-{
-    if(lpECB && b)
-    {
-        if(l)
-        {
-            unsigned int written = 0;
-            char *buf = (char *)b;
-            /* If couldn't write the data at onece try again until all the data is written.*/
-            while(written < l)
-            {
-                DWORD try_to_write = l - written;
-                if(!lpECB-> WriteClient(lpECB->ConnID, buf + written, &try_to_write, 0))
-                {
-                    return AXIS2_FAILURE;
-                }
-                written += try_to_write;
-            }
-        }
-        return AXIS2_SUCCESS;
-    }
-    return AXIS2_FAILURE;
-}
-
-axis2_status_t AXIS2_CALL
-start_response(
-    const axutil_env_t *env,
-    LPEXTENSION_CONTROL_BLOCK lpECB,
-    int status,
-    const char *reason,
-    axutil_array_list_t *headers)
-{
-    static char crlf[3] = { (char)13, (char)10, '\0' };
-    unsigned int num_of_headers = 0;
-
-    if(status < 100 || status > 1000)
-    {
-        return AXIS2_FAILURE;
-    }
-    if(lpECB)
-    {
-        size_t len_of_status;
-        char *status_str;
-        char *headers_str;
-
-        /*
-         * Create the status line
-         */
-        if(reason)
-        {
-            status_str = (char *)_alloca((6 + strlen(reason)) * sizeof(char));
-            sprintf(status_str, "%d %s", status, reason);
-            len_of_status = strlen(status_str);
-        }
-        else
-        {
-            switch(status)
-            {
-                case 200:
-                    status_str = reasons[0].status_code;
-                    len_of_status = reasons[0].status_len;
-                    break;
-                case 202:
-                    status_str = reasons[1].status_code;
-                    len_of_status = reasons[1].status_len;
-                    break;
-                case 500:
-                    status_str = reasons[2].status_code;
-                    len_of_status = reasons[2].status_len;
-                    break;
-                default:
-                    status_str = reasons[0].status_code;
-                    len_of_status = reasons[0].status_len;
-                    break;
-            }
-        }
-        /*
-         * Create response headers string
-         */
-        if(headers && (num_of_headers = axutil_array_list_size(headers, env)) > 0)
-        {
-            size_t i, len_of_headers;
-            axis2_http_header_t *header = NULL;
-            for(i = 0, len_of_headers = 0; i < num_of_headers; i++)
-            {
-                header = axutil_array_list_get(headers, env, (int)i);
-                len_of_headers += strlen(axis2_http_header_get_name(header, env));
-                len_of_headers += strlen(axis2_http_header_get_value(header, env));
-                len_of_headers += 4; /* extra for colon, space and crlf */
-            }
-            len_of_headers += 3; /* crlf and terminating null char */
-            headers_str = (char *)_alloca(len_of_headers * sizeof(char));
-            headers_str[0] = '\0';
-            for(i = 0; i < num_of_headers; i++)
-            {
-                header = axutil_array_list_get(headers, env, (int)i);
-                strcat(headers_str, axis2_http_header_get_name(header, env));
-                strcat(headers_str, ": ");
-                strcat(headers_str, axis2_http_header_get_value(header, env));
-                strcat(headers_str, "\r\n");
-            }
-            strcat(headers_str, "\r\n");
-        }
-        else
-        {
-            headers_str = crlf;
-        }
-        if(!lpECB-> ServerSupportFunction(lpECB->ConnID, HSE_REQ_SEND_RESPONSE_HEADER, status_str,
-            (LPDWORD) & len_of_status, (LPDWORD)headers_str))
-        {
-            return AXIS2_FAILURE;
-        }
-        return AXIS2_SUCCESS;
-    }
-    return AXIS2_FAILURE;
-}
-
-axis2_status_t AXIS2_CALL
-axis2_worker_get_original_url(
-    char url[],
-    char ret_url[])
-{
-    extern axis2_char_t *axis2_location;
-    strcpy(ret_url, axis2_location);
-    strcat(ret_url, &url[25]);
-    return URI_MATCHED;
-}
-
-axis2_char_t * AXIS2_CALL
-axis2_iis_worker_get_bytes(
-    const axutil_env_t * env,
-    axutil_stream_t * stream)
-{
-    axutil_stream_t * tmp_stream = NULL;
-    int return_size = -1;
-    axis2_char_t * buffer = NULL;
-    axis2_bool_t loop_state = AXIS2_TRUE;
-    AXIS2_ENV_CHECK(env, NULL);
-    AXIS2_PARAM_CHECK(env->error, stream, NULL);
-
-    tmp_stream = axutil_stream_create_basic(env);
-    while(loop_state)
-    {
-        int read = 0;
-        int write = 0;
-        char buf[READ_SIZE];
-
-        read = axutil_stream_read(stream, env, buf, READ_SIZE);
-        if(read < 0)
-        {
-            break;
-        }
-        write = axutil_stream_write(tmp_stream, env, buf, read);
-        if(read < (READ_SIZE - 1))
-        {
-            break;
-        }
-    }
-    return_size = axutil_stream_get_len(tmp_stream, env);
-    if(return_size > 0)
-    {
-        buffer = (char *)AXIS2_MALLOC(env->allocator, sizeof(char) * (return_size + 2));
-        return_size = axutil_stream_read(tmp_stream, env, buffer, return_size + 1);
-        buffer[return_size + 1] = '\0';
-    }
-    axutil_stream_free(tmp_stream, env);
-    return buffer;
-}
-
-/** Read all HTTP headers.
- */
-axutil_hash_t *
-axis2_iis_worker_read_http_headers(
-    const axutil_env_t * env,
-    LPEXTENSION_CONTROL_BLOCK lpECB)
-{
-    const char szHTTP_[] = "HTTP_";
-    char szBuffer[4096];
-    DWORD dwBufferSize = sizeof szBuffer;
-    axutil_hash_t *headers = NULL;
-    axis2_http_header_t* http_header = NULL;
-
-    BOOL bGet = lpECB->GetServerVariable(lpECB->ConnID, "ALL_HTTP", szBuffer, &dwBufferSize);
-    if(bGet)
-    {
-        /* Find lines, split key/data pair and write them as output */
-        LPTSTR pOpts = NULL;
-        LPTSTR pEnd = NULL;
-        LPTSTR pChar = NULL;
-        char szTmpBuf[512];
-        char szTmpName[256];
-
-        headers = axutil_hash_make(env);
-        szTmpBuf[0] = 0;
-        for(pChar = szBuffer; '\0' != *pChar;)
-        {
-            if(*pChar == '\r' || *pChar == '\n')
-            {
-                pChar++;
-                continue;
-            }
-            pOpts = strchr(pChar, ':');/* findseparator */
-            if(pOpts && *pOpts)
-            {
-                pEnd = pOpts;
-                while(*pEnd && *pEnd != '\r' && *pEnd != '\n')
-                {
-                    pEnd++;
-                }
-                *pOpts = '\0'; /* split the strings */
-                *pEnd = '\0';
-                if(0 == strncmp(pChar, szHTTP_, strlen(szHTTP_)))
-                {
-                    pChar += strlen(szHTTP_);
-                }
-                strcpy(szTmpName, pChar);
-                axutil_string_replace(szTmpName, '_', '-');
-                http_header = axis2_http_header_create(env, szTmpName, pOpts + 1);
-                /* AXIS2C-1632: Don't strdup keys - hash_set copies them internally. */
-                axutil_hash_set(headers, szTmpName, AXIS2_HASH_KEY_STRING,
-                    http_header);
-                pChar = pEnd + 1;
-            }
-        }
-    }
-    else
-    {
-        AXIS2_LOG_DEBUG(env->log, AXIS2_LOG_SI,
-            "axis2_iis_worker_read_http_headers: no http headers");
-    }
-    return headers;
-}
-
diff --git a/src/core/transport/http/server/IIS/axis2_iis_worker.h b/src/core/transport/http/server/IIS/axis2_iis_worker.h
deleted file mode 100644
index aa5656701..000000000
--- a/src/core/transport/http/server/IIS/axis2_iis_worker.h
+++ /dev/null
@@ -1,62 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef AXIS2_APACHE2_WORKER_H
-#define AXIS2_APACHE2_WORKER_H
-
-#include <axis2_const.h>
-#include <axis2_defines.h>
-#include <axutil_env.h>
-#include <axis2_conf_ctx.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-
-#endif  /* 
- */
-    
-typedef struct axis2_iis_worker axis2_iis_worker_t;
-    
-int server_version;
-
-int AXIS2_CALL
- axis2_iis_worker_process_request(
-     axis2_iis_worker_t * iis_worker,
-     const axutil_env_t * env,
-     void *r);
-    
-
-void AXIS2_CALL
- axis2_iis_worker_free(
-     axis2_iis_worker_t * iis_worker,
-     const axutil_env_t * env);
-    
-
-axis2_iis_worker_t * AXIS2_CALL 
-   axis2_iis_worker_create(        
-       const axutil_env_t * env,
-       axis2_char_t * repo_path);
-    
-
-#ifdef __cplusplus
-}
-#endif  /* 
- */
-
-#endif  /* AXIS2_IIS_WORKER_H */
diff --git a/src/core/transport/http/server/IIS/axis2_isapi_plugin.c b/src/core/transport/http/server/IIS/axis2_isapi_plugin.c
deleted file mode 100644
index e647f28e6..000000000
--- a/src/core/transport/http/server/IIS/axis2_isapi_plugin.c
+++ /dev/null
@@ -1,476 +0,0 @@
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */  
-
-#include <windows.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <httpfilt.h>
-#include <httpext.h>
-
-#include "axis2_iis_constants.h"
-#include "axis2_iis_worker.h"
-
-/* Axis headers */ 
-#include <axutil_error_default.h>
-#include <axutil_log_default.h>
-#include <axutil_thread_pool.h>
-#include <axiom_xml_reader.h>
-#include <axutil_log.h>
-
-#ifndef _WIN32_WINNT 
-#define _WIN32_WINNT 0x0500 
-#endif 
-
-#define	AXIS2_IIS_LOG_FILE_TAG		 "log_file"
-#define AXIS2_IIS_LOG_LEVEL_TAG		 "log_level" 
-#define AXIS2_IIS_REPO_PATH_TAG		 "axis2c_home"
-#define AXIS2_IIS_EXTENSION_URI_TAG	 "extension_uri"
-#define AXIS2_IIS_REDIRECT_WORD_TAG	 "redirect_uri"
-#define AXIS2_IIS_AXIS2_LOCATION	 "axis2_location"
-#define AXIS2_IIS_SERVICE_URL_PREFIX "services_url_prefix"
-
-#define AXIS2_IIS_LOG_TRACE_VERB	 "trace"
-#define AXIS2_IIS_LOG_ERROR_VERB	 "error"
-#define AXIS2_IIS_LOG_INFO_VERB		 "info"
-#define AXIS2_IIS_LOG_USER_VERB      "user"
-#define AXIS2_IIS_LOG_CRITICAL_VERB	 "critical"
-#define AXIS2_IIS_LOG_WARN_VERB		 "warning"
-#define AXIS2_IIS_LOG_DEBUG_VERB	 "debug"
-
-#define MAX_FILE_PATH				 256
-#define REGISTRY_LOCATION			 "Software\\Apache Axis2c\\IIS ISAPI Redirector"
-
-static int is_inited = FALSE;
-static axis2_iis_worker_t *axis2_worker		 = NULL;
-static const axutil_env_t *axutil_env		 = NULL;
-
-/* Configuration parameters */
-axis2_char_t *axis2_location			 = "/axis2";
-static axis2_char_t *axis2_service_url_prefix= "/services";
-static axis2_char_t repo_path[MAX_FILE_PATH];
-static axis2_char_t log_file[MAX_FILE_PATH];
-static axutil_log_levels_t log_level		 = AXIS2_LOG_LEVEL_CRITICAL;
-
-/* Path variables */ 
-static char szOriginalPath[_MAX_PATH + 1];
-static char szPath[_MAX_PATH + 1];
-
-axis2_char_t    general_error[] = "<html>\r\n" 
-                        "<head><title> An IIS server error occurred. </title></head>\r\n" 
-                        "<h1> An IIS server error occurred </h1>\r\n" 
-                        "<hr>\r\n" 
-                        "An error occurred in IIS while processing this request.</hr></html>"; 
-
-axis2_char_t	initializing_error[] = "<html>\r\n" 
-                        "<head><title> An IIS server error occurred. </title></head>\r\n" 
-                        "<h1> An IIS server error occurred </h1>\r\n" 
-                        "<hr>\r\n" 
-                        "An error occurred while initilizing Axis2/C.</hr></html>"; 
-
-
-/*
- * This is a utility functipn for reading configuration data from the registery.
- */ 
-static axis2_status_t AXIS2_CALL 
-read_registery_init_data();
-
-/*
- * Utility function for reading 
- */ 
-static axis2_status_t AXIS2_CALL get_registry_config_parameter(
-    HKEY hkey,
-    const char *tag,
-    char *b,
-    DWORD sz);
-
-/*
- * Parse the given string and return the corresponding log_level
- */ 
-axutil_log_levels_t AXIS2_CALL axis2_iis_parse_log_level(char level[]);
-
-/*
- * Initialize axis. This function is called in the begining of the module loading.
- * It initializes the axis by reading values from the configuration and creating the
- * required structures for the axis2c
-*/
-axis2_status_t AXIS2_CALL init_axis2();
-    
-/* 
- * This is the function to be called after the processing 
- * is over for non Axis2 requets
- */
-VOID 
-WINAPI 
-ExecUrlCompletion ( 
-    EXTENSION_CONTROL_BLOCK *   pecb, 
-    PVOID                       pContext, 
-    DWORD                       cbIO, 
-    DWORD                       dwError 
-    ); 
-
-/* 
- * If somethign went wrong in the IIS server when 
- * we are proccessing we send this 
- */
-BOOL 
-send_error(		
-	EXTENSION_CONTROL_BLOCK * pecb, 
-    CHAR error[]); 
-
-axis2_status_t AXIS2_CALL init_axis2();
-
-BOOL 
-WINAPI 
-GetExtensionVersion(HSE_VERSION_INFO * pVer)  
-{     
-    pVer->dwExtensionVersion = MAKELONG( HSE_VERSION_MINOR, 
-                                         HSE_VERSION_MAJOR); 
-    strncpy( pVer->lpszExtensionDesc, 
-             "WildCardMap Sample ISAPI Extension", HSE_MAX_EXT_DLL_NAME_LEN ); 
-
-    pVer->lpszExtensionDesc[HSE_MAX_EXT_DLL_NAME_LEN-1] = '\0'; 
-	server_version = 5;
-	return TRUE; 
-} 
-
-DWORD 
-WINAPI 
-HttpExtensionProc(EXTENSION_CONTROL_BLOCK * pecb) 
-
-{ 
-    HSE_EXEC_URL_INFO   ExecUrlInfo; 
-    DWORD               cbData = INTERNET_MAX_URL_LENGTH; 
-    char				url[INTERNET_MAX_URL_LENGTH]; 
-	axis2_bool_t		is_for_us = AXIS2_TRUE;
-
-    /* Get the URL */      
-    if ( pecb->GetServerVariable( pecb->ConnID, 
-                                  "URL", 
-                                  url, 
-                                  &cbData ) == FALSE ) 
-    { 
-        return HSE_STATUS_ERROR;  
-    } 
-
-	if (!is_inited) 
-	{			
-		DWORD dwBufferSize = 0;
-		axis2_char_t server_software[256];
-		axis2_char_t *version = NULL;
-
-		ZeroMemory(szOriginalPath, sizeof szOriginalPath);
-		dwBufferSize = sizeof szOriginalPath;
-
-#if _WIN32_WINNT >= 0x0502
-		GetDllDirectory( dwBufferSize, szOriginalPath );
-#else
-		GetCurrentDirectory( dwBufferSize, szOriginalPath );
-#endif
-		ZeroMemory(szPath, sizeof szPath);
-		dwBufferSize = sizeof szPath;
-		/* Get the current physical paht */
-		if (pecb->GetServerVariable(pecb->ConnID, "APPL_PHYSICAL_PATH", szPath, &dwBufferSize) == FALSE)
-		{
-			send_error(pecb, initializing_error);
-			return HSE_STATUS_ERROR;				
-		}
-		/* Retrieve the server version */
-		dwBufferSize = 32;
-		if (pecb->GetServerVariable(pecb->ConnID, "SERVER_SOFTWARE", server_software, &dwBufferSize) == FALSE)
-		{
-			send_error(pecb, initializing_error);
-			return HSE_STATUS_ERROR;				
-		}
-		version = axutil_strchr(server_software, '/');	
-		if (version)
-		{
-			server_version = atoi(version + 1);
-		}
-#if _WIN32_WINNT >= 0x0502
-		SetDllDirectory( szPath );
-#else
-		SetCurrentDirectory( szPath );
-#endif
-		/* If we haven't initialized axis2/c before initialization failed */
-		if (AXIS2_FAILURE == init_axis2())
-		{
-			send_error(pecb, initializing_error);
-			return HSE_STATUS_ERROR;
-		}
-#if _WIN32_WINNT >= 0x0502
-		SetDllDirectory( szOriginalPath );
-#else
-		SetCurrentDirectory( szOriginalPath );
-#endif
-	}
-
-	/* Check weather we have a request for Axis2/C */
-	if (server_version >= 6 && strlen(url) >= strlen(axis2_location))
-    {
-		int i = 0;
-		is_for_us = AXIS2_TRUE;	
-		while (axis2_location[i] != '\0')
-		{
-			if (axis2_location[i] != (url)[i]) {
-				is_for_us = AXIS2_FALSE;
-				break;
-			}
-			i++;
-		}		
-		if (url[i] != '/' && url[i] != '\0')
-		{
-			is_for_us = AXIS2_FALSE;
-		}
-	}
-		
-	if (is_for_us)
-	{			
-		/* Windows cannot find the correct dlls unless the path is set*/ 
-#if _WIN32_WINNT >= 0x0502
-		SetDllDirectory( szPath );
-#else
-		SetCurrentDirectory( szPath );
-#endif
-		pecb->dwHttpStatusCode = HTTP_INTERNAL_SERVER_ERROR;
-		/* We are sure that worker is not NULL since it is NULL init_axis2 would have failed */
-		axis2_iis_worker_process_request(axis2_worker, axutil_env, pecb);
-
-	    /* Windows cannot find the correct dlls unless the dir is set
-		 but we want to reset to previous dir after the load */
-#if _WIN32_WINNT >= 0x0502
-		SetDllDirectory( szOriginalPath );
-#else
-		SetCurrentDirectory( szOriginalPath );
-#endif
-		return HSE_STATUS_SUCCESS;
-	}
-	else if (server_version >= 6)
-	{
-		/* For IIS 5.1 or earlier this code is never executed. Since the URL is 
-		redirected to Axis2/C by the Filter */
-
-		/* If not for Axis2/C let the request go to who ever wants it */
-		ExecUrlInfo.pszUrl = NULL;          /* Use original request URL */
-		ExecUrlInfo.pszMethod = NULL;       /* Use original request method */
-		ExecUrlInfo.pszChildHeaders = NULL; /* Use original request headers */
-		ExecUrlInfo.pUserInfo = NULL;       /* Use original request user info */
-		ExecUrlInfo.pEntity = NULL;         /* Use original request entity */
-		
-		/* Provent recursion */
-		ExecUrlInfo.dwExecUrlFlags = HSE_EXEC_URL_IGNORE_CURRENT_INTERCEPTOR; 
-	     
-		/* Associate the completion routine and the current URL with this request. */ 
-		if ( pecb->ServerSupportFunction( pecb->ConnID, 
-										  HSE_REQ_IO_COMPLETION, 
-										  ExecUrlCompletion, 
-										  NULL,  
-										  NULL) == FALSE ) 
-		{        
-			return HSE_STATUS_ERROR; 
-		} 
-	    		
-		/* Ok, now that everything is set up, let's call the child request */     
-		if ( pecb->ServerSupportFunction( pecb->ConnID, 
-										  HSE_REQ_EXEC_URL, 
-										  &ExecUrlInfo, 
-										  NULL, 
-										  NULL ) == FALSE ) 
-		{         
-			return HSE_STATUS_ERROR; 
-		} 
-		/* Return pending and let the completion clean up */ 
-		return HSE_STATUS_PENDING; 
-	} 
-	return HSE_STATUS_ERROR;
-} 
-
-VOID 
-WINAPI 
-ExecUrlCompletion ( 
-    EXTENSION_CONTROL_BLOCK *   pecb, 
-    PVOID                       pContext, 
-    DWORD                       cbIO, 
-    DWORD                       dwError 
-    ) 
-{ 
-	/* We are done so notify */
-    pecb->ServerSupportFunction( 
-        pecb->ConnID, 
-        HSE_REQ_DONE_WITH_SESSION, 
-        NULL, 
-        NULL, 
-        NULL); 
-} 
-
-
-BOOL 
-send_error(		
-	EXTENSION_CONTROL_BLOCK * pecb, 
-    axis2_char_t error[]) 
-{ 
-    DWORD   cbData;             
-    pecb->dwHttpStatusCode = 500;     
-    /* Send headers and response */    
-    pecb->ServerSupportFunction( pecb->ConnID, 
-                                 HSE_REQ_SEND_RESPONSE_HEADER, 
-                                 "500 Server Error", 
-                                 NULL, 
-                                 (LPDWORD)"Content-Type: text/html\r\n\r\n" ); 
-
-    cbData = axutil_strlen( error ); 
-    return pecb->WriteClient( pecb->ConnID, 
-                              error, 
-                              &cbData, 
-                              HSE_IO_SYNC ); 
-} 
-
-axis2_status_t AXIS2_CALL read_registery_init_data() 
-{
-    long rc = 0;
-    axis2_status_t ok = TRUE;
-    char tmpbuf[INTERNET_MAX_URL_LENGTH];
-    HKEY hkey;
-	AXIS2_IMPORT extern axis2_char_t *axis2_request_url_prefix;
-
-    rc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, REGISTRY_LOCATION, (DWORD) 0, KEY_READ, &hkey);
-    if (ERROR_SUCCESS != rc)
-    {
-        return AXIS2_FAILURE;
-    }
-    if (get_registry_config_parameter(hkey, AXIS2_IIS_REPO_PATH_TAG, tmpbuf, sizeof(repo_path)))
-    {
-        strcpy(repo_path, tmpbuf);
-    }
-    else
-    {
-		return AXIS2_FAILURE;
-    }
-    if (get_registry_config_parameter(hkey, AXIS2_IIS_LOG_FILE_TAG, tmpbuf, sizeof(log_file)))
-    {
-        strcpy(log_file, tmpbuf);
-    }
-    else
-    {
-		return AXIS2_FAILURE;
-    }
-    if (get_registry_config_parameter(hkey, AXIS2_IIS_LOG_LEVEL_TAG, tmpbuf, sizeof(tmpbuf)))
-    {
-        log_level = axis2_iis_parse_log_level(tmpbuf);
-    }
-	else 
-	{
-		return AXIS2_FAILURE;
-	}
-	if (get_registry_config_parameter(hkey, AXIS2_IIS_SERVICE_URL_PREFIX, tmpbuf, sizeof(tmpbuf)))
-	{
-		axis2_request_url_prefix = _strdup(tmpbuf); 
-	}
-	if (get_registry_config_parameter(hkey, AXIS2_IIS_AXIS2_LOCATION, tmpbuf, sizeof(tmpbuf)))
-	{
-		axis2_location = _strdup(tmpbuf); 
-	}
-    RegCloseKey(hkey);
-    return ok;
-}
-
-axutil_log_levels_t AXIS2_CALL 
-axis2_iis_parse_log_level(char level[]) 
-{
-    if (0 == AXIS2_STRICMP(level, AXIS2_IIS_LOG_TRACE_VERB))
-    {
-        return AXIS2_LOG_LEVEL_TRACE;
-    }
-    if (0 == AXIS2_STRICMP(level, AXIS2_IIS_LOG_DEBUG_VERB))
-    {
-        return AXIS2_LOG_LEVEL_DEBUG;
-    }
-    if (0 == AXIS2_STRICMP(level, AXIS2_IIS_LOG_INFO_VERB))
-    {
-        return AXIS2_LOG_LEVEL_INFO;
-    }
-    if (0 == AXIS2_STRICMP(level, AXIS2_IIS_LOG_USER_VERB))
-    {
-        return AXIS2_LOG_LEVEL_USER;
-    }
-    if (0 == AXIS2_STRICMP(level, AXIS2_IIS_LOG_WARN_VERB))
-    {
-        return AXIS2_LOG_LEVEL_WARNING;
-    }
-    if (0 == AXIS2_STRICMP(level, AXIS2_IIS_LOG_ERROR_VERB))
-    {
-        return AXIS2_LOG_LEVEL_ERROR;
-    }
-    if (0 == AXIS2_STRICMP(level, AXIS2_IIS_LOG_CRITICAL_VERB))
-    {
-        return AXIS2_LOG_LEVEL_CRITICAL;
-    }
-    return AXIS2_LOG_LEVEL_DEBUG;
-}
-
-axis2_status_t AXIS2_CALL 
-get_registry_config_parameter(HKEY hkey, const char *tag, char *b, DWORD sz) 
-{
-    DWORD type = 0;
-    LONG lrc;
-
-    lrc = RegQueryValueEx(hkey, tag, (LPDWORD) 0, &type, (LPBYTE) b, &sz);
-    if ((ERROR_SUCCESS != lrc) || (type != REG_SZ))
-    {
-        return FALSE;
-    }
-    b[sz] = '\0';
-    return TRUE;
-}
-
-/**
- * This method initializes the axis2 engine. All the required variables are set to 
- * their initial values in this method.
-*/ 
-axis2_status_t AXIS2_CALL init_axis2() 
-{
-    /*
-     * These are the varibles required to initialize axis.
-     */ 
-    axis2_status_t status = FALSE;
-    /* We need to init xml readers before we go into threaded env */     
-    if (!is_inited)
-    {
-        axiom_xml_reader_init();
-        status = read_registery_init_data();
-		if (status == AXIS2_FAILURE)
-		{
-			return AXIS2_FAILURE;
-		}
-        axutil_error_init();
-		/* Initialize the environement */
-        axutil_env = axutil_env_create_all(log_file, log_level);
-        if (!axutil_env)
-        {
-            return AXIS2_FAILURE;
-        }
-        axis2_worker = axis2_iis_worker_create(axutil_env, repo_path);
-        if (!axis2_worker)
-        {
-            return AXIS2_FAILURE;
-        }
-        is_inited = AXIS2_TRUE;
-		return AXIS2_SUCCESS;
-    }
-    return AXIS2_FAILURE;
-}
diff --git a/src/core/transport/http/server/IIS/iis_iaspi_plugin_51/axis2_isapi_51.c b/src/core/transport/http/server/IIS/iis_iaspi_plugin_51/axis2_isapi_51.c
deleted file mode 100644
index d2c8f09cb..000000000
--- a/src/core/transport/http/server/IIS/iis_iaspi_plugin_51/axis2_isapi_51.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <windows.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <httpfilt.h>
-    
-#include <axis2_const.h>
-#include <axis2_defines.h>
-#include <axutil_env.h>
-#include <axutil_stream.h>
-
-#include "..\\axis2_iis_constants.h"
-
-#define REGISTRY_LOC			 "Software\\Apache Axis2c\\IIS ISAPI Redirector"
-#define AXIS2_IIS_AXIS2_LOC		 "axis2_location" 
-static char *axis2_loc = "/axis2";
-
-static axis2_char_t redirect_word[INTERNET_MAX_URL_LENGTH] = "/axis2/mod_axis2_IIS.dll\?";
-/*
- * Search a given uri to find weather it matches a uri for the axis2
- * The uri format for axis2 is of the form
- * scheme://server:port/axis2/other_parts
- * This function search  a give uri for the /axis2/. If a match
- * is found it will replace the /axis2 part of the url with /axis2/mod_iis.dll?
- */
-axis2_bool_t AXIS2_CALL
-get_extension_url(
-    char url[],
-    char ret_url[]);
-
-/*
- * This function is called by the IIS server at the server 
- * initialization. So this is the ideal plcae for initializing 
- * axis2c.
- */
-BOOL WINAPI
-GetFilterVersion(
-    PHTTP_FILTER_VERSION pVer)
-{
-    DWORD type = 0, size = 0;
-    LONG lrc = 0;
-    char tmpbuf[INTERNET_MAX_URL_LENGTH];
-    HKEY hkey;
-    ULONG http_filter_revision = HTTP_FILTER_REVISION;
-    pVer->dwFilterVersion = pVer->dwServerFilterVersion;
-    if(pVer->dwFilterVersion > http_filter_revision)
-    {
-        pVer->dwFilterVersion = http_filter_revision;
-    }
-
-    /*
-     Receive notifictions when
-     1. Server preprocessed the headers.
-     2. Log
-     3. All the request coming in secure and none secure ports.
-     */
-    pVer->dwFlags = (SF_NOTIFY_ORDER_HIGH | SF_NOTIFY_PREPROC_HEADERS | SF_NOTIFY_SECURE_PORT
-        | SF_NOTIFY_NONSECURE_PORT | SF_NOTIFY_AUTH_COMPLETE);
-
-    /* Give a short discription about the module.*/
-    strcpy(pVer->lpszFilterDesc, "axis2c filter");
-    /* Get the axis2 location from the registry configuration */
-    lrc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, REGISTRY_LOC, (DWORD)0, KEY_READ, &hkey);
-    if(ERROR_SUCCESS != lrc)
-    {
-        return FALSE;
-    }
-    size = INTERNET_MAX_URL_LENGTH;
-    lrc = RegQueryValueEx(hkey, AXIS2_IIS_AXIS2_LOC, (LPDWORD)0, &type, (LPBYTE)tmpbuf, &size);
-    if((ERROR_SUCCESS == lrc) && (type == REG_SZ))
-    {
-        tmpbuf[size] = '\0';
-        axis2_loc = _strdup(tmpbuf);
-    }
-    RegCloseKey(hkey);
-    return TRUE;
-}
-
-/*
- When a notification happens this function is called by the IIS.
- */
-DWORD WINAPI
-HttpFilterProc(
-    PHTTP_FILTER_CONTEXT pfc,
-    DWORD notificationType,
-    LPVOID pvNotification)
-{
-    DWORD bufferLength = INTERNET_MAX_URL_LENGTH;
-    char url[INTERNET_MAX_URL_LENGTH];
-    char modified_url[INTERNET_MAX_URL_LENGTH];
-
-    if(notificationType == SF_NOTIFY_PREPROC_HEADERS)
-    {
-        pfc->GetServerVariable(pfc, "HTTP_URL", url, &bufferLength);
-        if(get_extension_url(url, modified_url))
-        {
-            ((PHTTP_FILTER_PREPROC_HEADERS)pvNotification)->SetHeader(pfc, "url", modified_url);
-            return SF_STATUS_REQ_HANDLED_NOTIFICATION;
-        }
-    }
-    return SF_STATUS_REQ_NEXT_NOTIFICATION;
-}
-
-axis2_bool_t AXIS2_CALL
-get_extension_url(
-    char url[],
-    char ret_url[])
-{
-    axis2_bool_t is_for_us = AXIS2_FALSE;
-    int i = 0;
-    /* Should contain "/axis2/"*/
-    ret_url[0] = '\0';
-    if(strlen(url) >= strlen(axis2_loc))
-    {
-        is_for_us = AXIS2_TRUE;
-        while(axis2_loc[i] != '\0')
-        {
-            if(axis2_loc[i] != (url)[i])
-            {
-                is_for_us = AXIS2_FALSE;
-                break;
-            }
-            i++;
-        }
-        if(url[i] != '/' && url[i] != '\0')
-        {
-            is_for_us = AXIS2_FALSE;
-        }
-    }
-    if(is_for_us)
-    {
-        strcpy(ret_url, redirect_word);
-        strcat(ret_url, &url[i]);
-    }
-    return is_for_us;
-}
diff --git a/src/core/transport/http/server/IIS/mod_axis2.def b/src/core/transport/http/server/IIS/mod_axis2.def
deleted file mode 100644
index 22205e7fa..000000000
--- a/src/core/transport/http/server/IIS/mod_axis2.def
+++ /dev/null
@@ -1,7 +0,0 @@
-LIBRARY	"mod_axis2_IIS"
-
-EXPORTS
-	GetExtensionVersion
-	HttpExtensionProc
-	GetFilterVersion
-	HttpFilterProc	
\ No newline at end of file
diff --git a/src/core/transport/http/server/Makefile.am b/src/core/transport/http/server/Makefile.am
index cfb9acf4f..33d6d5588 100644
--- a/src/core/transport/http/server/Makefile.am
+++ b/src/core/transport/http/server/Makefile.am
@@ -17,4 +17,4 @@
 SUBDIRS=@APACHE2BUILD@
 
 # HTTP/2 JSON system only needs Apache integration (mod_axis2)
-EXTRA_DIST=IIS
+# IIS/ISAPI integration removed (February 2026) - unmaintained since 2009


(axis-axis2-c-core) 01/03: Update documentation for accuracy and modernization

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

robertlazarski pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/axis-axis2-c-core.git

commit 4021f18dda5a7bed160e3a73ef19cbf2e4c5ff04
Author: Robert Lazarski <ro...@gmail.com>
AuthorDate: Mon Feb 2 04:01:12 2026 -1000

    Update documentation for accuracy and modernization
    
    - Replace GitHub Issues with Apache Jira (issues.apache.org/jira/projects/AXIS2C)
    - Reference official ASF security policy for vulnerability reporting
    - Fix dependency: Jansson -> json-c (matches actual codebase)
    - Fix mailing lists: java-user/java-dev -> c-user/c-dev
    - Mark Windows/IIS sections as legacy/unsupported (unmaintained since 2009)
    - Add WSL2 as recommended approach for Windows users
    - Remove IIS references in preparation for IIS code removal
    - Streamline CGI documentation (Apache only)
    
    Co-Authored-By: Claude Opus 4.5 <no...@anthropic.com>
---
 INSTALL                              | 508 +++++++++++------------------------
 docs/HTTP11_SOAP_HTTP_CLIENT_C.md    |   1 -
 docs/community/issues.md             |  20 +-
 docs/community/license.md            |   2 +-
 docs/community/mailing-lists.md      |  28 +-
 docs/downloads.md                    |   8 +-
 docs/getting-started/installation.md |   9 +-
 7 files changed, 186 insertions(+), 390 deletions(-)

diff --git a/INSTALL b/INSTALL
index 523fdc047..698e63056 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
 Table of Contents
 =================
 1. Getting Axis2/C Working on Linux
-	
+
 	1.1 Setting up Prerequisites
 		1.1.1 Mandatory
 		1.1.2 Optional
@@ -17,45 +17,27 @@ Table of Contents
 			(a) Server
 			(b) Clients
 
-2. Getting Axis2/C Working on Windows (Win32)
-	
-	2.1 Setting up Prerequisites
-		2.1.1 Mandatory
-		2.1.2 Optional
-	2.2 Using Binary Release
-	2.3 Using Source Release
-		2.3.1 Setting Build Options
-			(a) Enable Guththila
-			(b) Enable libxml2
-			(c) Enable SSL Support
-			(d) Enable libcurl
-			(e) Setting zlib Location
-		2.3.2 Compiling the Source
-	2.4 Running Samples
-		2.4.1 HTTP transport
-			(a) Server
-			(b) Clients
+2. Getting Axis2/C Working on Windows
+
+	2.1 RECOMMENDED: Windows Subsystem for Linux (WSL2)
+	2.2 Native Windows Build (Legacy - Unsupported since 2009)
 
 3. Installing Apache2 Web Server Integration Module (mod_axis2)
 
 	3.1 Building mod_axis2 from Source
 		3.1.1 On Linux
-		3.1.2 On Windows (Win32)
+		3.1.2 On Windows (Win32) - LEGACY/UNSUPPORTED
 	3.2 Deploying in Apache2 Web Server
 	3.3 HTTP/2 Support (Optional)
 
-4. Installing IIS (Internet Information Server) Integration Module 
-   (mod_axis2_IIS)
-	
-	4.1 Building mod_axis2_IIS from Source
-	4.2 Deploying in the IIS
-	
-5. Using Axis2/C with CGI
+4. Using Axis2/C with CGI
 
-	5.1  Deploying in Apache2
-	5.2  Deploying in IIS
+	4.1  Deploying in Apache2
 
-6. FAQ
+5. FAQ
+
+Note: IIS/ISAPI integration (mod_axis2_IIS) was removed in 2026 after being
+unmaintained since 2009. Windows users should use WSL2 (see Section 2).
 
 
 1. Getting Axis2/C Working on Linux
@@ -540,216 +522,138 @@ Table of Contents
 		   $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${AXIS2C_HOME}/lib
 
 
-2. Getting Axis2/C Working on Windows (Win32)
-=============================================
-	
+2. Getting Axis2/C Working on Windows
+=====================================
+
+	RECOMMENDED: Windows Subsystem for Linux (WSL2)
+	-----------------------------------------------
+
+	For Windows users, we strongly recommend using WSL2 with Ubuntu. WSL2
+	provides full Linux kernel compatibility with minimal overhead and is
+	the tested and supported path for Axis2/C on Windows.
+
+	WSL2 Setup:
+
+	(a) Install WSL2 (requires Windows 10 version 2004+ or Windows 11):
+
+		Open PowerShell as Administrator and run:
+		> wsl --install
+
+		This installs Ubuntu by default. Restart when prompted.
+
+	(b) Launch Ubuntu from the Start menu and complete initial setup.
+
+	(c) Follow the Linux instructions in Section 1 above.
+
+		$ sudo apt update
+		$ sudo apt install build-essential autoconf automake libtool \
+		    libssl-dev libnghttp2-dev libjson-c-dev libxml2-dev
+		$ git clone https://github.com/apache/axis-axis2-c-core.git
+		$ cd axis-axis2-c-core
+		$ ./configure --prefix=$(pwd)/deploy [options]
+		$ make && make install
+
+	WSL2 Benefits:
+	- Full compatibility with Linux build system and dependencies
+	- Easy package installation via apt
+	- Excellent performance (native Linux kernel)
+	- Seamless file system integration with Windows
+	- Supported by active Axis2/C development
+
+	Native Windows Build (Legacy - Unsupported)
+	--------------------------------------------
+
+	WARNING: The native MSVC build has not been actively maintained or tested
+	by Axis2/C committers since 2009 (version 1.6.0). The instructions below
+	are preserved for historical reference only.
+
+	Known limitations of the legacy Windows build:
+	- Does NOT support HTTP/2 (requires nghttp2, not ported to Windows)
+	- Does NOT support JSON processing (requires json-c, not ported)
+	- References outdated tools (Visual Studio 2005, Windows XP-era libraries)
+	- May not compile with modern Visual Studio versions
+	- No IIS integration testing on modern IIS versions (10+)
+
+	If you require native Windows builds, community contributions to modernize
+	the Windows build system are welcome. Please contact c-dev@axis.apache.org.
+
+	--- BEGIN LEGACY INSTRUCTIONS (2009) ---
+
 	2.1 Setting up Prerequisites
 	----------------------------
-	
+
 	2.1.1 Mandatory
 	---------------
-    (a) The binaries shipped with this version are compiled with 
-		Microsoft Visual Studio compiler (cl). And also the makefile that is 
-		shipped with this version needs Microsoft Visual Studio compiler (cl) 
-		and nmake build tool. 
-
-    	NOTE : You can download Microsoft VS Express2005 Edition and 
-			   Platform SDK from Microsoft website. You need to add the path to 
-			   Platform SDK Include and Lib folders to the makefile in order 
-			   for you to compile the source.
+	(a) The binaries shipped with this version are compiled with
+		Microsoft Visual Studio compiler (cl). And also the makefile that is
+		shipped with this version needs Microsoft Visual Studio compiler (cl)
+		and nmake build tool.
 
-	
 	2.1.2 Optional
 	--------------
-	(a) libxml2 [http://www.zlatkovic.com/pub/libxml 
-				 version >= libxml2-2.6.20.win32]
-
-    (b) zlib [http://www.zlatkovic.com/pub/libxml
-              version >= zlib-1.2.3.win32]
-
-    (c) iconv [http://www.zlatkovic.com/pub/libxml 
-			   version >= iconv-1.9.1.win32]
-	   
-    (d) openssl [http://www.slproweb.com/products/Win32OpenSSL.html
-               version >= openssl 0.9.8e]
+	(a) libxml2
+	(b) zlib
+	(c) iconv
+	(d) openssl
 
-	2.2 Using Binary Release
+	2.2 Using Source Release
 	------------------------
 
-    Extract the binary distribution to a folder of your choice. 
-    (example: C:\axis2c)
-
-    The c:\axis2c folder structure is as follows.
-
-    axis2c
-      |
-      +- bin         - server 
-      |   
-      +- samples - samples go here
-      |         |
-      |         +- bin - sample client executables
-      |         |
-      |         +- lib - sample libraries
-      |         |
-      |         +- src - source files of the sampels in bin and lib folders
-      |
-      |
-      +- docs        - documentation 
-      |
-      +- include     - all include files of axis2 
-      |
-      +- lib         - library modules
-      |
-      +- logs        - system and client logs are written to this folder
-      |
-      +- modules     - deployed modules 
-      |
-      +- services    - deployed services 
-      
-	You might optionally require to copy zlib1.dll ,iconv.dll and libxml2.dll. Copy 
-    them to C:\axis2c\lib .
-    (Or you can have these dll's in some other place and add that 
-	location to PATH environment variable)
-	
-	2.3 Using Source Release
-	------------------------
-
-	2.3.1 Setting Build Options
+	2.2.1 Setting Build Options
 	---------------------------
-	Please edit the <source_distribution>\build\win32\configure.in file 
+	Please edit the <source_distribution>\build\win32\configure.in file
 	to set the following build options.
 
 	(a) Enable Guththila
-	--------------------
-	
-		- Now Guththila is the default parser. Unless you enable libxml2 Guththila will be built.
+		- Guththila is the default parser unless you enable libxml2.
 
-   	(b) Enable libxml2
-	------------------
-	
+	(b) Enable libxml2
 		- Set the ENABLE_LIBXML2 option to 1
-		- Set the LIBXML2_BIN_DIR to the location where libxml2 is installed to
-		- Set the ICONV_BIN_DIR to the location where iconv is installed to
-	
+		- Set the LIBXML2_BIN_DIR to the location where libxml2 is installed
+		- Set the ICONV_BIN_DIR to the location where iconv is installed
+
 	(c) Enable SSL Support
-	----------------------
-	
 		- Set ENABLE_SSL option to 1
-		- Set OPENSSL_BIN_DIR to the location where OpenSSL is installed to
+		- Set OPENSSL_BIN_DIR to the location where OpenSSL is installed
 
 	(d) Enable libcurl
-	------------------
-	
 		- Set ENABLE_LIBCURL to 1
-		- Set LIBCURL_BIN_DIR to the location where libcurl is installed to
-
-    (e) Setting zlib Location
-    -------------------------
-
-        Set the ZLIB_BIN_DIR to the location where zlib is installed to
-
-        Default location for zlib is E:\zlib-1.2.3.win32 and the folder
-        structure should look like the following
-
-        E:\zlib-1.2.3.win32
-            |
-            +- include
-            |
-            +- bin
-            |
-            +- lib
-
-        You can either extract zlib to this folder or extract it to a location
-        of your choice and edit the configure.in file accordingly.
+		- Set LIBCURL_BIN_DIR to the location where libcurl is installed
 
-        NOTE : You need to have zlib1.dll in the library path.
+	(e) Setting zlib Location
+		- Set the ZLIB_BIN_DIR to the location where zlib is installed
 
-
-		
-	2.3.2 Compiling the Source
+	2.2.2 Compiling the Source
 	--------------------------
 
-   	Extract the source distribution to a folder of your choice.
-	Example: 
-		C:\axis2c
-    	
+	Extract the source distribution to a folder of your choice.
+
 	Open a DOS shell and type:
-        
+
 	> cd %AXIS2C_HOME%\build\win32
-    > vcvars32.bat
-    > nmake install
-
-	NOTE : You may need to set the PATH environment variable to vcvars32.bat 
-		   if Windows complains that it cannot find this batch file. This file 
-		   is located in <Your MS Visual Studio Install Directory>\VC\bin 
-		   directory.
-
-   	That's it! This will build the system and create a directory named 'deploy' 
-	under the build directory.
-
-   	The deploy folder structure is as follows.
-
-    	deploy
-      	|
-      	+- bin         - server and other executables
-      	|   
-      	+- samples - samples go here
-      	|         |
-      	|         +- bin - sample client executables
-        |         |
-        |         +- lib - sample libraries
-        |         |     
-        |         +- src - sources of the samples in bin and lib folders 
-      	|
-        |
-      	+- lib         - library modules
-      	|
-      	+- services    - deployed services 
-      	|
-      	+- modules     - deployed modules 
-      	|
-      	+- include     - all include files of axis2 
-      	|
-      	+- logs        - system and client logs are written to this folder
-	
-	2.4 Running Samples
-	-------------------
-    
-	You need to set a couple of environment variables before you can run the 
-	server and samples.
+	> vcvars32.bat
+	> nmake install
 
-    Set the variable AXIS2C_HOME to the deploy folder (C:\axis2c)
-    Add the path to lib directory to the PATH variable (%AXIS2C_HOME%\lib)
+	2.3 Running Samples
+	-------------------
 
-	You might optionally require to copy the iconv.dll, zlib1.dll, libxml2.dll to 
-	the %AXIS2C_HOME%\lib folder.
+	Set the variable AXIS2C_HOME to the deploy folder (C:\axis2c)
+	Add the path to lib directory to the PATH variable (%AXIS2C_HOME%\lib)
 
-	2.4.1 HTTP transport
+	2.3.1 HTTP transport
 	--------------------
-			
-	(a) Server
-	----------
-
-   	> cd %AXIS2C_HOME%\bin
-	> axis2_http_server.exe 
 
-   	You should see the message
-      		Started Simple Axis2 HTTP Server...
+	(a) Server
 
-   	By default the log is created under %AXIS2C_HOME%\logs folder with the 
-	name axis2.log.
+	> cd %AXIS2C_HOME%\bin
+	> axis2_http_server.exe
 
-   	NOTE : You may provide command line options to change the default behaviour.
-		   Type 'axis2_http_server.exe -h' to learn about the usage
-			
 	(b) Clients
-	-----------
 
-   	Now you can run any sample client deployed under %AXIS2C_HOME%\samples\bin
-    		
-	Example:
-   		> cd %AXIS2C_HOME%\samples\bin
-		> echo.exe
+	> cd %AXIS2C_HOME%\samples\bin
+	> echo.exe
+
+	--- END LEGACY INSTRUCTIONS ---
 
 
 3. Installing Apache2 Web Server Integration Module (mod_axis2)
@@ -798,20 +702,24 @@ Table of Contents
 
    	This will install mod_axis2.so into your "<your_path_to_axis2c>/lib"
 
-	3.1.2 On Windows (Win32)
-	------------------------
-	
-   	Provide the apache2 location in configure.in file in APACHE_BIN_DIR
-    	
+	3.1.2 On Windows (Win32) - LEGACY/UNSUPPORTED
+	---------------------------------------------
+
+	WARNING: Windows Apache module has not been maintained since 2009.
+	See Section 2 for recommended WSL2 approach.
+
+	--- BEGIN LEGACY INSTRUCTIONS ---
+
+	Provide the apache2 location in configure.in file in APACHE_BIN_DIR
+
 	Example:
-   		APACHE_BIN_DIR = E:\Apache22
+		APACHE_BIN_DIR = E:\Apache22
 
-   	After compiling the sources (as described in section 2.3) build the 
+	After compiling the sources (as described in section 2) build the
 	mod_axis2.dll by issuing the command 'nmake axis2_apache_module'.
-   	This will build mod_axis2.dll and copy it to %AXIS2C_HOME%\lib directory.
-    	
-	Example:
-   		C:\axis2c\build\deploy\lib 
+	This will build mod_axis2.dll and copy it to %AXIS2C_HOME%\lib directory.
+
+	--- END LEGACY INSTRUCTIONS --- 
 	
 	3.2 Deploying in Apache2 Web Server
 	-----------------------------------
@@ -916,162 +824,58 @@ HTTP/2 is recommended for JSON based production deployments handling high traffi
 or large payloads where performance improvements are valuable. SOAP and XML
 are not supported in HTTP/2 due to high effort and few benefits.
 
-4. Installing IIS (Interner Information Server) Integration Module
-   (mod_axis2_IIS)
-==================================================================
-	
-	4.1 Building mod_axis2_IIS from Source
-	--------------------------------------
-	
-    After compiling the source (as described in section 2.3) build the
-    mod_axis2.dll by issuing the command 'nmake axis2_IIS_module'.
-    This will build the mod_axis2_IIS.dll and copy it to %AXIS2C_HOME%\lib
-	directory.
-    
-	Example:
-    	C:\axis2c\build\deploy\lib 
-	
-	4.2 Deploying in the IIS
-	------------------------
-
-    Add the following key to the registery.
-
-    HKEY_LOCAL_MACHINE\SOFTWARE\Apache Axis2c\IIS ISAPI Redirector
-
-    Under this registry key add the following entries.
-
-    A String value with the name "axis2c_home". The value is the AXIS2C_HOME.
-	Example : c:\axis2c
-
-    A String value with the name "log_file". The value is the absolute path of
-	the log file.
-	Example: c:\axis2c\logs\axis2.log
-
-    A String value with the name "log_level". The value can be one of the
-	followings.
-		trace    - Log trace messages
- 		error    - Log errors critical errors
- 		info     - Log info and above
- 		critical - Log critical errors only 
-		debug	 - Log debug and above (default)
-	 	warning  - Log warnings
-
-    You can add a string value with the name services_url_prefix. This is optional and defaults 
-    to "/services". As an example, if you have "/web_services" as the prefix, then all the 
-    services hosted would have the endpoint prefix of : http://localhost/axis2/web_services.
-    Note: don't forget the / at the begining.
-
-    If you wish, you can also change the location as well by adding a string value with the name 
-    axis2_location. This is also optional and defaults to /axis2. If you have /myserser as the 
-    value you can access your web  services with a url like http://localhost/myserver/services.
-    Note: Don't forget the / at the beginning.
-
-    Now you can do all the registry editing using the JScript file axis2_iis_regedit.js 
-    provided with the distribution. When you build axis2/C with the IIS module the file 
-    is copied to the root directory of the binary distribution. Just double click it and 
-    everything will be set to the defaults. The axis2c_home is taken as the current directory, 
-    so make sure you run the file in the Axis2/C repository location (or root of the binary 
-    distribution). If you want to change the values you can manually edit the the .js file or 
-    give it as command line arguments to the script when running the script. To run the jscript 
-    from the command line use the command :\cscript axis2_iis_regedit.js optional arguments. 
-    We recomend the manual editing as it is the easiest way to specify the values
-
-    IIS 5.1 or Below
-    -----------------
-    Using the IIS management console, add a new virtual directory to the
-	IIS/PWS web site called "axis2". The physical path of this virtual
-	directory should be the axis2\lib directory (Where the mod_axis2_IIS.dll
-	is in)
-    Assign excecute permissions to this virtual directory.
-
-    Using the IIS management console, add mod_axis2_IIS.dll as a filter to the
-	IIS/PWS web site. The name of the filter can be any meaningful name. 
-
-    Restart IIS and test whether mod_axis2_IIS module is loaded by typing the
-	URL http://localhost/axis2 in your Web browser.
-    
-    IIS 6 & 7
-    ---------
-    Using the IIS management console, add the mod_axis2_IIS.dll as a Wildcard Script Map.
-      Executable should be the complete path to the mod_axis2_IIS.dll
-      You can put any name as the name of the Wildcard Script Map
+4. Using Axis2/C with CGI
+=========================
 
-    Please don't add the mod_axis2_IIS.dll as a filter to IIS as in the IIS 5.1 case.
-    
-    Note: If the Axis2/C failed to load, verify that Axis2/C and its dependent DLLs are in the 
-    System Path (not the user path). 
+	4.1  Deploying in Apache2
+	-------------------------
 
-5. Using Axis2/C with CGI
-	5.1  Deploying in Apache2
-		
-       		If you haven't already done so you need to configure and set up an cgi-bin/ directory
-	        that holds your CGI scripts,where we will put Axis2/C cgi executable axis2.cgi.
+	If you haven't already done so you need to configure and set up a cgi-bin/
+	directory that holds your CGI scripts, where we will put Axis2/C cgi
+	executable axis2.cgi.
 
-	(Note: most of recent Apache web servers already have an cgi-bin dir set up, usually 
-		/usr/lib/cgi-bin/. )
+	(Note: most Apache web servers already have a cgi-bin dir set up, usually
+	/usr/lib/cgi-bin/.)
 
-	Add following to your Apache2 configuration (httpd.conf) file.
+	Add the following to your Apache2 configuration (httpd.conf) file:
 
-        ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/    (Or some other directory of your choice)
+		ScriptAlias /cgi-bin/ /usr/local/apache/cgi-bin/
 
-	OR you can use
+	OR you can use:
 
-       <Directory /usr/local/apache/cgi-bin/>
-               Options +ExecCGI
-       </Directory>
+		<Directory /usr/local/apache/cgi-bin/>
+			Options +ExecCGI
+		</Directory>
 
-       AddHandler cgi-script .cgi
+		AddHandler cgi-script .cgi
 
-	{ It's recomended to restrict all your cgi scripts to single ScriptAlias directory for security reasons.}
+	(It's recommended to restrict all CGI scripts to a single ScriptAlias
+	directory for security reasons.)
 
-	Now we have to set up configuration parameters via environment variables for the cgi 
-	deployment using the SetEnv directive.
+	Now set up configuration parameters via environment variables for the CGI
+	deployment using the SetEnv directive. You need to have mod_env enabled.
 
-	 { You need to have mod_env enabled for this to work )
-	Add the following to your apache2 configuration file (httpd.conf)
+	Add the following to your apache2 configuration file (httpd.conf):
 
-        SetEnv AXIS2C_HOME <your path to axis2c home dir>
+		SetEnv AXIS2C_HOME /usr/local/axis2c/
 
-        ( i.e. SetEnv AXIS2C_HOME /usr/local/axis2c/ )
+	If you have chosen another alias for your cgi-bin you can also set up an
+	AXIS2C_URL_PREFIX environment variable (not needed if using /cgi-bin/).
 
-	If you have chosen another alias for you cgi-bin you can also set up an AXIS2C_URL_PREFIX
-        environment variable, but it's not needed if you have chosen /cgi-bin/.
-	AXIS2C_URL_PREFIX defines your web services deployment url prefix. Lets say you have chosen URL
-        /private/scripts/ for your cgi-bin URL and named your cgi exec as 'axis2.cgi',
-	Then you need to set AXIS2_URL_PREFIX environment variable as follows:
+	Example:
+		SetEnv AXIS2C_URL_PREFIX /private/scripts/axis2.cgi/
 
-        SetEnv AXIS2C_URL_PREFIX /private/scripts/axis2.cgi/
+	Copy the Axis2/C cgi executable "axis2.cgi" from ${AXIS2C_HOME}/bin to
+	your cgi-bin directory.
 
-       
-       Now we have configured apache such that all requests with URL  http://<domain-name>/cgi-bin/ requests
-       are located at your configured cgi folder. We have granted Apache server to execute CGI from that directory 
-       and treat files with .cgi extensions as CGI executables.
+	Your Axis2 endpoints will look like this when deployed under CGI:
 
-       Now you need to copy the Axis2/C cgi executable "axis2.cgi" located in <AXIS2C_HOME>\bin directory.
-		
-       5.2  Deploying in IIS
-		
-		IIS 5.1
-		1. Open your 'Internet services manager'	
-		2. Under your computer name and 'Default Web Site' you must create an virtual
-		   directory called 'cgi-bin' (if you haven't done so by now) so right click
-		   'Default Web Site' -> New -> Virtual Directory.
-		3. In wizard enter 'cgi-bin' as Alias.
-		4. Choose a directory of your choice for cgi scripts placement. (like C:\www\cgi-bin\)
-		5. In access permissions select Read and Execute.
-		6. Finish the wizard so that Virtual Directory is created.
-		7. Open your selected folder (i.e. C:\www\cgi-bin\) and copy axis2.cgi there.
-	
-	
-   NOTE: 
- 	Your Axis2 endpoints now looks like this when deployed under cgi.
+		http://domain-name.com/cgi-bin/axis2.cgi/services/<service name>
 
-         http://domain-name.com/cgi-bin/axis2.cgi/<services directory>/<service name>
+	For example, the echo service endpoint would be:
+		http://domain-name.com/cgi-bin/axis2.cgi/services/echo
 
-	For the echo service found under /services/ directory of Axis2, the endpoint will become
-         http://domain-name.com/cgi-bin/axis2.cgi/services/echo
-	
-6. FAQ
+5. FAQ
 ======
 
 1. Although I was able to get simple axis server up, unable to run samples.
diff --git a/docs/HTTP11_SOAP_HTTP_CLIENT_C.md b/docs/HTTP11_SOAP_HTTP_CLIENT_C.md
index a5c05993e..957374667 100644
--- a/docs/HTTP11_SOAP_HTTP_CLIENT_C.md
+++ b/docs/HTTP11_SOAP_HTTP_CLIENT_C.md
@@ -101,7 +101,6 @@ Different server environments require custom stream adapters:
 | Server | Stream Adapter | Description |
 |--------|---------------|-------------|
 | Apache httpd | `apache2_stream.c` | Wraps Apache bucket brigades |
-| Microsoft IIS | `axis2_iis_stream.c` | ISAPI extension I/O |
 | CGI | `axis2_cgi_stream.c` | stdin/stdout for CGI |
 | Standalone | `simple_http_svr_conn.c` | Direct socket I/O |
 
diff --git a/docs/community/issues.md b/docs/community/issues.md
index 5d08dee7c..f071a00b1 100644
--- a/docs/community/issues.md
+++ b/docs/community/issues.md
@@ -1,10 +1,10 @@
 # Issue Tracker
 
-## GitHub Issues
+## Apache Jira
 
-Apache Axis2/C uses GitHub Issues for bug tracking and feature requests:
+Apache Axis2/C uses Apache Jira for bug tracking and feature requests:
 
-- **Issue Tracker**: [github.com/apache/axis-axis2-c-core/issues](https://github.com/apache/axis-axis2-c-core/issues)
+- **Issue Tracker**: [issues.apache.org/jira/projects/AXIS2C](https://issues.apache.org/jira/projects/AXIS2C/summary)
 
 ## Reporting Bugs
 
@@ -60,23 +60,23 @@ For new features:
 
 **Do not report security vulnerabilities through public issues.**
 
-See [Security Policy](../SECURITY.md) for responsible disclosure procedures.
+Apache Axis2/C follows the Apache Software Foundation security policy for reporting vulnerabilities. Please refer to the official ASF security documentation:
 
-## Legacy JIRA
+- [ASF Security Team](https://www.apache.org/security/) - Official procedures for reporting security issues to Apache projects
 
-Historical issues may be found in the Apache JIRA (read-only):
+## Browsing Issues
 
-- [AXIS2C JIRA](https://issues.apache.org/jira/browse/AXIS2C)
+You can browse existing issues directly:
 
-Note: New issues should be filed on GitHub, not JIRA.
+- [All Issues](https://issues.apache.org/jira/browse/AXIS2C)
 
 ## Contributing Fixes
 
 If you'd like to fix an issue yourself:
 
-1. Comment on the issue to claim it
+1. Comment on the Jira issue to claim it
 2. Fork the repository
 3. Create a branch for your fix
-4. Submit a pull request
+4. Submit a pull request referencing the Jira issue
 
 See [Contributing Guide](contributing.md) for details.
diff --git a/docs/community/license.md b/docs/community/license.md
index 33a75242a..0189383c7 100644
--- a/docs/community/license.md
+++ b/docs/community/license.md
@@ -195,7 +195,7 @@ Axis2/C may include or link to third-party libraries with their own licenses:
 |---------|---------|
 | OpenSSL | Apache 2.0 / OpenSSL License |
 | nghttp2 | MIT License |
-| Jansson | MIT License |
+| json-c | MIT License |
 | libxml2 | MIT License |
 | APR | Apache 2.0 |
 
diff --git a/docs/community/mailing-lists.md b/docs/community/mailing-lists.md
index 68faa7e3b..d4b0e7462 100644
--- a/docs/community/mailing-lists.md
+++ b/docs/community/mailing-lists.md
@@ -8,19 +8,19 @@ Apache Axis2/C uses mailing lists for community discussion, development coordina
 
 For users of Axis2/C - questions, help, and general discussion.
 
-- **Subscribe**: [java-user-subscribe@axis.apache.org](mailto:java-user-subscribe@axis.apache.org)
-- **Unsubscribe**: [java-user-unsubscribe@axis.apache.org](mailto:java-user-unsubscribe@axis.apache.org)
-- **Post**: [java-user@axis.apache.org](mailto:java-user@axis.apache.org)
-- **Archive**: [lists.apache.org](https://lists.apache.org/list.html?java-user@axis.apache.org)
+- **Subscribe**: [c-user-subscribe@axis.apache.org](mailto:c-user-subscribe@axis.apache.org)
+- **Unsubscribe**: [c-user-unsubscribe@axis.apache.org](mailto:c-user-unsubscribe@axis.apache.org)
+- **Post**: [c-user@axis.apache.org](mailto:c-user@axis.apache.org)
+- **Archive**: [lists.apache.org](https://lists.apache.org/list.html?c-user@axis.apache.org)
 
 ### Developer List
 
 For Axis2/C development discussion - patches, design, releases.
 
-- **Subscribe**: [java-dev-subscribe@axis.apache.org](mailto:java-dev-subscribe@axis.apache.org)
-- **Unsubscribe**: [java-dev-unsubscribe@axis.apache.org](mailto:java-dev-unsubscribe@axis.apache.org)
-- **Post**: [java-dev@axis.apache.org](mailto:java-dev@axis.apache.org)
-- **Archive**: [lists.apache.org](https://lists.apache.org/list.html?java-dev@axis.apache.org)
+- **Subscribe**: [c-dev-subscribe@axis.apache.org](mailto:c-dev-subscribe@axis.apache.org)
+- **Unsubscribe**: [c-dev-unsubscribe@axis.apache.org](mailto:c-dev-unsubscribe@axis.apache.org)
+- **Post**: [c-dev@axis.apache.org](mailto:c-dev@axis.apache.org)
+- **Archive**: [lists.apache.org](https://lists.apache.org/list.html?c-dev@axis.apache.org)
 
 ### Commits List
 
@@ -31,7 +31,7 @@ Automated notifications of code commits.
 
 ## How to Subscribe
 
-1. Send an empty email to the subscribe address (e.g., `java-user-subscribe@axis.apache.org`)
+1. Send an empty email to the subscribe address (e.g., `c-user-subscribe@axis.apache.org`)
 2. Reply to the confirmation email
 3. You will receive a welcome message confirming your subscription
 
@@ -44,14 +44,8 @@ Automated notifications of code commits.
 
 ## Alternative Channels
 
-### GitHub Discussions
-
-For quick questions and community interaction:
-
-- [GitHub Discussions](https://github.com/apache/axis-axis2-c-core/discussions)
-
-### GitHub Issues
+### Apache Jira
 
 For bug reports and feature requests:
 
-- [Issue Tracker](https://github.com/apache/axis-axis2-c-core/issues)
+- [Issue Tracker](https://issues.apache.org/jira/projects/AXIS2C/summary)
diff --git a/docs/downloads.md b/docs/downloads.md
index d9d5466be..5f0935427 100644
--- a/docs/downloads.md
+++ b/docs/downloads.md
@@ -60,24 +60,24 @@ Axis2/C requires these dependencies:
 |---------|---------|---------|----------|
 | OpenSSL | 1.1.1+ | TLS/SSL support | Yes |
 | nghttp2 | 1.40+ | HTTP/2 protocol | For HTTP/2 |
-| Jansson | 2.12+ | JSON parsing | For JSON-RPC |
+| json-c | 0.18+ | JSON parsing | For JSON-RPC |
 | libxml2 | 2.9+ | XML/SOAP parsing | For SOAP |
 
 ### Installing Dependencies
 
 **Ubuntu/Debian:**
 ```bash
-sudo apt install libssl-dev libnghttp2-dev libjansson-dev libxml2-dev
+sudo apt install libssl-dev libnghttp2-dev libjson-c-dev libxml2-dev
 ```
 
 **Fedora/RHEL:**
 ```bash
-sudo dnf install openssl-devel nghttp2-devel jansson-devel libxml2-devel
+sudo dnf install openssl-devel nghttp2-devel json-c-devel libxml2-devel
 ```
 
 **macOS (Homebrew):**
 ```bash
-brew install openssl nghttp2 jansson libxml2
+brew install openssl nghttp2 json-c libxml2
 ```
 
 ## Verification
diff --git a/docs/getting-started/installation.md b/docs/getting-started/installation.md
index 3fc56ac81..e7eb7ac40 100644
--- a/docs/getting-started/installation.md
+++ b/docs/getting-started/installation.md
@@ -31,18 +31,17 @@ The `INSTALL` file covers:
    - Running samples
 
 2. **Getting Axis2/C Working on Windows**
-   - Prerequisites
-   - Build options (Guththila, libxml2, SSL, libcurl, zlib)
-   - Compiling the source
+   - WSL2 (recommended)
+   - Legacy native build (unsupported since 2009)
 
 3. **Apache2 Web Server Integration (mod_axis2)**
    - Building from source
    - Deploying in Apache2
    - HTTP/2 support
 
-4. **IIS Integration (mod_axis2_IIS)**
+4. **CGI Deployment**
 
-5. **CGI Deployment**
+Note: IIS integration was removed in 2026 due to being unmaintained since 2009.
 
 ## Prerequisites