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 21:39:40 UTC

(axis-axis2-c-core) branch master updated (a0ba27786 -> d7b6f5e82)

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 a0ba27786 Fix MkDocs warnings in JSON/HTTP2 userguide
     new d8a10a155 Add ASF-compliant release process documentation
     new a521b23cd Update 2.0.0 release notes with removed features and breaking changes
     new d7b6f5e82 Add native WSDL2C code generator documentation links

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:
 docs/community/release-process.md | 470 ++++++++++++++++++++++++++++++++++++++
 docs/guide/codegen.md             |  58 ++++-
 docs/index.md                     |   2 +-
 docs/release-notes-2.0.0.md       |  27 ++-
 mkdocs.yml                        |   1 +
 5 files changed, 549 insertions(+), 9 deletions(-)
 create mode 100644 docs/community/release-process.md


(axis-axis2-c-core) 02/03: Update 2.0.0 release notes with removed features and breaking changes

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 a521b23cdbeb34a2dd77adf0a6e9dcb6b364c4fc
Author: Robert Lazarski <ro...@gmail.com>
AuthorDate: Mon Feb 2 11:25:06 2026 -1000

    Update 2.0.0 release notes with removed features and breaking changes
    
    Document all features removed as part of AXIS2C-1708 security hardening:
    - NTLM authentication (security vulnerabilities)
    - TCP transport (no HTTP semantics, no TLS)
    - CGI transport (obsolete, security concerns)
    - libcurl HTTP backend (redundant, MTOM broken)
    - AMQP transport (unmaintained since 2010)
    
    Add migration guidance in Breaking Changes section for each removed
    feature with recommended alternatives.
    
    Co-Authored-By: Claude Opus 4.5 <no...@anthropic.com>
---
 docs/release-notes-2.0.0.md | 27 +++++++++++++++++++++++----
 1 file changed, 23 insertions(+), 4 deletions(-)

diff --git a/docs/release-notes-2.0.0.md b/docs/release-notes-2.0.0.md
index 2fb1fe9f3..7ad1663b6 100644
--- a/docs/release-notes-2.0.0.md
+++ b/docs/release-notes-2.0.0.md
@@ -166,18 +166,37 @@ Version 2.0.0 is a major release that includes 17 years of accumulated fixes and
 
 ## Removed Features
 
-The following features have been removed in version 2.0.0:
+The following features have been removed in version 2.0.0 as part of security hardening ([AXIS2C-1708](https://issues.apache.org/jira/browse/AXIS2C-1708)) and deprecation cleanup:
+
+- **NTLM Authentication** (`--enable-heimdal`, `--enable-libntlm`): Removed due to critical security vulnerabilities including pass-the-hash attacks, NTLM relay attacks, and weak cryptography. Microsoft is deprecating NTLM in Windows systems. Use Kerberos, OAuth 2.0, or mutual TLS instead.
+
+- **TCP Transport** (`--enable-tcp`): Obsolete transport that lacks HTTP semantics (no Content-Length, chunked encoding, headers, status codes). Incompatible with TLS (requires HTTP for ALPN negotiation) and web infrastructure (proxies, load balancers, firewalls expect HTTP). Use HTTP/2 instead, which provides multiplexing benefits with full HTTP semantics.
+
+- **CGI Transport** (`--enable-cgi`): Obsolete deployment model with security concerns and performance overhead of process-per-request. Use mod_axis2 with Apache httpd instead.
+
+- **libcurl HTTP Backend** (`--enable-libcurl`): Redundant with native HTTP client implementation. MTOM was broken with libcurl ([AXIS2C-1270](https://issues.apache.org/jira/browse/AXIS2C-1270)). HTTP/2 support uses nghttp2 instead.
+
+- **AMQP Transport** (`--with-qpid`): Unmaintained since 2010. Apache Qpid C++ is in maintenance mode. Modern messaging systems use REST APIs, gRPC, or native AMQP 1.0 clients. ([AXIS2C-1641](https://issues.apache.org/jira/browse/AXIS2C-1641))
 
 - **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.
+1. **SSL/TLS Peer Validation**: SSL/TLS peer name validation is now enabled by default ([AXIS2C-1700](https://issues.apache.org/jira/browse/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. **NTLM Authentication Removed**: Applications using NTLM authentication must migrate to Kerberos (for Windows/AD environments), OAuth 2.0/OpenID Connect (for modern applications), or mutual TLS (for service-to-service communication).
+
+3. **TCP Transport Removed**: Applications using raw TCP transport (`AXIS2_TRANSPORT_TCP`) must migrate to HTTP/1.1 or HTTP/2 transport. HTTP/2 provides similar multiplexing benefits with full HTTP semantics and TLS support.
+
+4. **CGI Deployment Removed**: Applications deployed via CGI must migrate to mod_axis2 with Apache httpd or the standalone axis2_http_server.
+
+5. **libcurl Backend Removed**: Applications that explicitly enabled libcurl (`--enable-libcurl`) will now use the native HTTP client. This should be transparent for most use cases.
+
+6. **AMQP Transport Removed**: Applications using AMQP transport must migrate to alternative messaging solutions or REST-based APIs.
 
-2. **IIS Support Removed**: Applications using IIS integration must migrate to Apache httpd (running natively or via WSL2 on Windows).
+7. **IIS Support Removed**: Applications using IIS integration must migrate to Apache httpd (running natively or via WSL2 on Windows).
 
 ### New Dependencies
 


(axis-axis2-c-core) 01/03: Add ASF-compliant release process documentation

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 d8a10a155d6d32e3f09096cbc748403c6bafcf12
Author: Robert Lazarski <ro...@gmail.com>
AuthorDate: Mon Feb 2 09:42:52 2026 -1000

    Add ASF-compliant release process documentation
    
    Create comprehensive release process document for Axis2/C based on
    ASF guidelines, following the Apache httpd model of source-only releases.
    
    Key aspects documented:
    - PGP key requirements and KEYS file management
    - Version update checklist for configure.ac and submodules
    - Source distribution creation and verification
    - GPG signing and SHA-512 checksums (MD5/SHA-1 deprecated)
    - ASF dist.apache.org staging and release workflow
    - Vote process (72 hours, 3 PMC binding votes)
    - MkDocs site deployment to axis-site repository
    - Announcement templates for mailing lists
    
    Notes on why Nexus doesn't apply (C project, not Maven) and why
    source-only releases are appropriate per ASF policy and httpd precedent.
    
    Co-Authored-By: Claude Opus 4.5 <no...@anthropic.com>
---
 docs/community/release-process.md | 470 ++++++++++++++++++++++++++++++++++++++
 mkdocs.yml                        |   1 +
 2 files changed, 471 insertions(+)

diff --git a/docs/community/release-process.md b/docs/community/release-process.md
new file mode 100644
index 000000000..7227a70db
--- /dev/null
+++ b/docs/community/release-process.md
@@ -0,0 +1,470 @@
+# Axis2/C Release Process
+
+This document describes the Apache Software Foundation (ASF) release process for Apache Axis2/C. All releases must comply with [ASF Release Policy](https://www.apache.org/legal/release-policy.html).
+
+## Prerequisites
+
+### Release Manager Requirements
+
+The Release Manager (RM) must:
+
+1. **Be an Apache committer** with write access to the repository
+2. **Have a PGP key** that meets [ASF requirements](https://www.apache.org/dev/release-signing.html):
+   - RSA key with at least 4096 bits (recommended)
+   - Key must be signed by other Apache committers (web of trust)
+   - Public key must be uploaded to public key servers
+
+3. **Export and register your PGP key**:
+   ```bash
+   # Export your public key
+   gpg --armor --export your-key-id >> KEYS
+
+   # Verify key is available
+   gpg --list-secret-keys
+   ```
+
+4. **Append your key to the KEYS file** at:
+   - `https://dist.apache.org/repos/dist/release/axis/axis2/c/core/KEYS`
+   - `https://dist.apache.org/repos/dist/dev/axis/axis2/c/core/KEYS`
+
+### Build Environment
+
+Ensure you have:
+
+- GCC or Clang compiler
+- Autotools (autoconf, automake, libtool)
+- OpenSSL development headers
+- Apache httpd development headers (for mod_axis2)
+- Optional: libxml2, json-c, nghttp2
+
+## Release Process Overview
+
+1. Prepare the release branch
+2. Update version numbers and documentation
+3. Build and test source distribution
+4. Sign artifacts and generate checksums
+5. Upload to ASF staging area
+6. Call for vote
+7. After vote passes: promote release
+8. Deploy updated website
+9. Announce release
+
+### Source-Only Releases
+
+Axis2/C follows the same release model as [Apache httpd](https://httpd.apache.org/dev/release.html): **source-only releases**.
+
+Per the [ASF Release Policy](https://www.apache.org/legal/release-policy.html):
+
+> "Every ASF release **MUST** contain one or more source packages... binary/bytecode packages **MAY** be distributed alongside official Apache releases."
+
+The Apache HTTP Server Project explicitly states:
+
+> "The Apache HTTP Server Project itself does not provide binary releases of software, only source code."
+
+**Why source-only for Axis2/C:**
+
+- **ASF Policy Compliance**: Source releases are required; binaries are optional
+- **Apache httpd Precedent**: The flagship ASF C project releases source-only
+- **ABI Complexity**: C binary compatibility varies by compiler, flags, and linked libraries
+- **Platform Diversity**: Maintaining binaries for Linux, macOS, FreeBSD, Android is impractical
+- **Modern Practice**: Users install via system package managers (apt, yum, brew) or build from source
+- **Enterprise Expectations**: Production deployments typically build from source with custom configurations
+
+Users who need pre-built binaries should use their distribution's package manager or build from source.
+
+### Note on Nexus Staging Repository
+
+Unlike Java projects (such as Axis2/Java) which use the [Nexus staging repository](https://repository.apache.org) to publish Maven artifacts to Maven Central, Axis2/C is a native C library that does not produce Maven artifacts.
+
+For C projects, the release distribution mechanism is:
+
+- **Source tarballs** are uploaded directly to `dist.apache.org` SVN repositories
+- There is no Nexus step required for Axis2/C releases
+
+This is consistent with Apache httpd and other Apache C projects.
+
+## Step 1: Prepare the Release
+
+### 1.1 Create a Release Branch (Optional)
+
+For major releases, consider creating a release branch:
+
+```bash
+git checkout master
+git pull origin master
+git checkout -b release/2.0.0
+```
+
+For minor/patch releases, you may release directly from master.
+
+### 1.2 Update Version Numbers
+
+Update version in these files:
+
+| File | Description |
+|------|-------------|
+| `configure.ac` | `AC_INIT(axis2c-src, X.Y.Z)` and `VERSION_NO` |
+| `util/configure.ac` | `VERSION_NO` |
+| `axiom/configure.ac` | `VERSION_NO` |
+| `guththila/configure.ac` | `VERSION_NO` |
+| `neethi/configure.ac` | `VERSION_NO` |
+| `samples/configure.ac` | Version references |
+| `NOTICE` | Copyright year range |
+| `NEWS` | Release notes summary |
+| `doxygenconf` | `PROJECT_NUMBER` |
+
+### 1.3 Update Documentation
+
+- Update `docs/release-notes-X.Y.Z.md` with resolved issues
+- Review and update `INSTALL` file if needed
+- Verify all documentation links work
+
+### 1.4 Regenerate Build System
+
+```bash
+./autogen.sh
+```
+
+## Step 2: Build and Test
+
+### 2.1 Build from Source
+
+```bash
+./configure --prefix=/tmp/axis2c-test \
+    --enable-tests=yes \
+    --with-apache2=/usr/include/apache2 \
+    --enable-tcp=yes
+make clean
+make
+make check
+make install
+```
+
+### 2.2 Run Test Suite
+
+```bash
+make check
+```
+
+Verify all tests pass. Fix any failures before proceeding.
+
+### 2.3 Create Source Distribution
+
+```bash
+make dist
+# Creates: axis2c-src-X.Y.Z.tar.gz
+```
+
+### 2.4 Verify Source Distribution Builds
+
+```bash
+# Extract and build from source tarball
+tar xzf axis2c-src-X.Y.Z.tar.gz
+cd axis2c-src-X.Y.Z
+./configure --prefix=/tmp/axis2c-verify
+make
+make check
+```
+
+## Step 3: Sign and Checksum
+
+ASF releases require GPG signatures and SHA-512 checksums (MD5 and SHA-1 are no longer acceptable).
+
+### 3.1 Sign Artifacts
+
+```bash
+#!/bin/bash
+VERSION="2.0.0"
+
+# Sign source distribution
+gpg --armor --detach-sign axis2c-src-${VERSION}.tar.gz
+```
+
+### 3.2 Create SHA-512 Checksums
+
+```bash
+#!/bin/bash
+VERSION="2.0.0"
+
+sha512sum axis2c-src-${VERSION}.tar.gz > axis2c-src-${VERSION}.tar.gz.sha512
+```
+
+### 3.3 Verify Signatures
+
+```bash
+# Verify GPG signatures
+gpg --verify axis2c-src-${VERSION}.tar.gz.asc axis2c-src-${VERSION}.tar.gz
+
+# Verify checksums
+sha512sum -c axis2c-src-${VERSION}.tar.gz.sha512
+```
+
+## Step 4: Upload to Staging
+
+### 4.1 Upload to ASF Development Area
+
+Use SVN to upload to the development distribution area:
+
+```bash
+# Checkout dev area
+svn checkout https://dist.apache.org/repos/dist/dev/axis/axis2/c/core/ axis2c-dev-dist
+cd axis2c-dev-dist
+
+# Create version directory
+mkdir ${VERSION}
+cd ${VERSION}
+
+# Copy source artifacts
+cp /path/to/axis2c-src-${VERSION}.tar.gz .
+cp /path/to/axis2c-src-${VERSION}.tar.gz.asc .
+cp /path/to/axis2c-src-${VERSION}.tar.gz.sha512 .
+cp /path/to/KEYS .
+
+# Commit
+cd ..
+svn add ${VERSION}
+svn commit -m "Axis2/C ${VERSION} release candidate"
+```
+
+### 4.2 Prepare Site Staging Area
+
+```bash
+# Clone site repository
+git clone https://gitbox.apache.org/repos/asf/axis-site.git
+cd axis-site
+
+# Create staging directory
+cp -r axis2/c/core axis2/c/core-staging
+
+# Build documentation using MkDocs
+cd /path/to/axis-axis2-c-core
+./mkdocs-venv/bin/mkdocs build
+
+# Copy built site to staging
+cp -r site/* /path/to/axis-site/axis2/c/core-staging/
+
+# Commit staging site
+cd /path/to/axis-site
+git add axis2/c/core-staging
+git commit -m "Axis2/C ${VERSION} site staging"
+git push
+```
+
+## Step 5: Call for Vote
+
+### 5.1 Send Vote Email
+
+Send a vote email to `c-dev@axis.apache.org` with the following format:
+
+```
+Subject: [VOTE] Release Apache Axis2/C X.Y.Z
+
+Hi,
+
+I would like to call for a vote to release Apache Axis2/C X.Y.Z.
+
+Release artifacts:
+https://dist.apache.org/repos/dist/dev/axis/axis2/c/core/X.Y.Z/
+
+Source repository tag:
+https://github.com/apache/axis-axis2-c-core/releases/tag/vX.Y.Z
+
+Site preview:
+https://axis.apache.org/axis2/c/core-staging/
+
+Release notes:
+https://github.com/apache/axis-axis2-c-core/blob/vX.Y.Z/docs/release-notes-X.Y.Z.md
+
+The vote is open for at least 72 hours.
+
+[ ] +1 Release this package
+[ ] +0 No opinion
+[ ] -1 Do not release (provide reason)
+
+Voting guide:
+- Download and verify signatures: gpg --verify *.asc
+- Verify checksums: sha512sum -c *.sha512
+- Build from source and run tests
+- Review release notes and documentation
+```
+
+### 5.2 Vote Requirements
+
+Per ASF policy:
+- Voting period must be **at least 72 hours**
+- Requires **at least 3 binding +1 votes** from PMC members
+- **No -1 votes** from PMC members (or issues must be resolved)
+
+## Step 6: After Vote Passes
+
+### 6.1 Tag the Release
+
+```bash
+git tag -s vX.Y.Z -m "Apache Axis2/C X.Y.Z release"
+git push origin vX.Y.Z
+```
+
+### 6.2 Promote Artifacts to Release Area
+
+```bash
+# Move from dev to release
+svn mv https://dist.apache.org/repos/dist/dev/axis/axis2/c/core/${VERSION} \
+       https://dist.apache.org/repos/dist/release/axis/axis2/c/core/ \
+       -m "Promote Axis2/C ${VERSION} release"
+```
+
+### 6.3 Update KEYS File
+
+If new committer keys were added:
+
+```bash
+svn checkout https://dist.apache.org/repos/dist/release/axis/axis2/c/core/ axis2c-release
+cd axis2c-release
+# Append new keys
+cat new_KEYS >> KEYS
+svn commit -m "Update KEYS for ${VERSION} release"
+```
+
+### 6.4 Archive Old Releases
+
+Per ASF policy, only keep the latest release in the main distribution area:
+
+```bash
+# Move old versions to archive
+svn mv https://dist.apache.org/repos/dist/release/axis/axis2/c/core/OLD_VERSION \
+       https://archive.apache.org/dist/axis/axis2/c/core/ \
+       -m "Archive Axis2/C OLD_VERSION"
+```
+
+## Step 7: Deploy Website
+
+### 7.1 Publish Site
+
+```bash
+cd /path/to/axis-site
+
+# Replace production with staging
+git rm -r axis2/c/core
+git mv axis2/c/core-staging axis2/c/core
+git commit -m "Apache Axis2/C ${VERSION} site"
+git push
+```
+
+### 7.2 Verify Site Deployment
+
+The site will automatically deploy via ASF infrastructure. Verify:
+- https://axis.apache.org/axis2/c/core/
+
+This may take several hours to propagate to all mirrors.
+
+## Step 8: Announce Release
+
+### 8.1 Wait for Mirror Propagation
+
+Wait for:
+- Distributions available on mirrors (check https://downloads.apache.org/axis/axis2/c/core/)
+- Site updated and accessible
+
+### 8.2 Send Announcement
+
+**To c-user@axis.apache.org and c-dev@axis.apache.org:**
+
+```
+Subject: [ANNOUNCE] Apache Axis2/C X.Y.Z Released
+
+The Apache Axis2/C team is pleased to announce the release of
+Apache Axis2/C X.Y.Z.
+
+Apache Axis2/C is a high-performance web services framework
+written in C, supporting HTTP/2, JSON-RPC, and legacy SOAP.
+
+Download:
+https://axis.apache.org/axis2/c/core/download.html
+
+Release Notes:
+https://axis.apache.org/axis2/c/core/release-notes-X.Y.Z.html
+
+Key changes in this release:
+- [List major changes]
+
+Regards,
+The Apache Axis2/C Team
+```
+
+**To announce@apache.org** (separate email, from @apache.org address):
+
+```
+Subject: [ANNOUNCE] Apache Axis2/C X.Y.Z Released
+
+The Apache Axis2/C team is pleased to announce the release of
+Apache Axis2/C version X.Y.Z.
+
+Apache Axis2/C is a high-performance SOAP/HTTP web services
+framework written in C. It provides support for WS-* specifications
+through Rampart/C and modern HTTP/2 + JSON-RPC protocols.
+
+Download: https://axis.apache.org/axis2/c/core/
+Documentation: https://axis.apache.org/axis2/c/core/
+
+Regards,
+The Apache Axis2/C Team
+```
+
+## Step 9: Post-Release Tasks
+
+### 9.1 Update JIRA
+
+- Mark the version as released in JIRA
+- Create the next version if not exists
+- Close resolved issues for this release
+
+### 9.2 Update DOAP File
+
+If one exists, update `doap.rdf` with the new release information.
+
+### 9.3 Merge Release Branch
+
+If a release branch was used:
+
+```bash
+git checkout master
+git merge release/X.Y.Z
+git push origin master
+```
+
+### 9.4 Prepare for Next Release
+
+- Update version in configure.ac to next SNAPSHOT/development version
+- Create empty release notes file for next version
+
+## Troubleshooting
+
+### Vote Fails
+
+If the vote fails:
+1. Address all concerns raised during voting
+2. Increment the release candidate number (rc2, rc3, etc.)
+3. Upload new artifacts to dev area
+4. Call for a new vote
+
+### Build Issues
+
+If builds fail on different platforms:
+1. Set up CI testing before release
+2. Consider using Docker for reproducible builds
+3. Test on multiple platforms (Linux, macOS, FreeBSD)
+
+### Signature Verification Fails
+
+1. Ensure your key is uploaded to key servers
+2. Verify KEYS file contains your public key
+3. Re-sign artifacts if needed
+
+## References
+
+- [ASF Release Policy](https://www.apache.org/legal/release-policy.html)
+- [ASF Release Publishing](https://infra.apache.org/release-publishing.html)
+- [Release Signing](https://www.apache.org/dev/release-signing.html)
+- [Apache Voting Process](https://www.apache.org/foundation/voting.html)
+- [Apache httpd Release Guidelines](https://httpd.apache.org/dev/release.html) - Reference for C project source-only releases
+- [Axis2/C Issue Tracker](https://issues.apache.org/jira/projects/AXIS2C)
diff --git a/mkdocs.yml b/mkdocs.yml
index 520311fed..4922a4215 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -103,6 +103,7 @@ nav:
     - Mailing Lists: community/mailing-lists.md
     - Issue Tracker: community/issues.md
     - Contributing: community/contributing.md
+    - Release Process: community/release-process.md
     - License: community/license.md
     - Legal: HTTP2_LEGAL.md
   - Legacy:


(axis-axis2-c-core) 03/03: Add native WSDL2C code generator documentation links

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 d7b6f5e8245365908ca325e41218179852ac3a70
Author: Robert Lazarski <ro...@gmail.com>
AuthorDate: Mon Feb 2 11:32:24 2026 -1000

    Add native WSDL2C code generator documentation links
    
    Update homepage to link to native code generator in Legacy SOAP section.
    
    Expand codegen.md with:
    - Quick start guide for WSDL2C usage
    - Databinding modes (adb, none)
    - Links to all native codegen documentation:
      - CODEGEN_APPROACHES.md (Java XSL vs native C)
      - BUILD_SYSTEM_EVALUATION.md (CMake vs Autotools)
      - NESTED_ARRAYS_ANALYSIS.md (design decision)
      - test/README.md (ADB test framework)
      - test/adb_test_plan.md (90+ test categories)
      - test/ADB_FEATURE_PARITY.md (Java vs C comparison)
    
    Co-Authored-By: Claude Opus 4.5 <no...@anthropic.com>
---
 docs/guide/codegen.md | 58 +++++++++++++++++++++++++++++++++++++++++++++++----
 docs/index.md         |  2 +-
 2 files changed, 55 insertions(+), 5 deletions(-)

diff --git a/docs/guide/codegen.md b/docs/guide/codegen.md
index 76b8a704f..7e038b30c 100644
--- a/docs/guide/codegen.md
+++ b/docs/guide/codegen.md
@@ -1,17 +1,67 @@
-# Axis2/C Code Generation Approaches
+# Axis2/C Code Generation (WSDL2C)
+
+The Axis2/C native code generator (WSDL2C) generates C code from WSDL definitions, creating type-safe structures and serialization functions for SOAP web services.
+
+## Overview
+
+The native WSDL2C generator (`tools/codegen/native/`) is a pure C implementation that:
+
+- Parses WSDL 1.1/2.0 definitions
+- Generates ADB (Axis Data Binding) C structures
+- Creates serialization/deserialization functions
+- Produces client stubs and service skeletons
+- Requires no Java dependencies
+
+## Quick Start
+
+```bash
+# Build the native code generator
+cd tools/codegen/native
+make
+
+# Generate C code from a WSDL file
+./wsdl2c -uri MyService.wsdl -o output_dir -d adb
+```
+
+## Databinding Modes
+
+| Mode | Description |
+|------|-------------|
+| `adb` | Full ADB databinding with type-safe C structures (recommended) |
+| `none` | Raw XML in/out mode without databinding |
+
+## Related Documentation
+
+The native code generator has extensive documentation covering architecture, testing, and design decisions:
+
+### Architecture & Design
+
+- **[Code Generation Approaches](https://github.com/apache/axis-axis2-c-core/blob/master/tools/codegen/native/CODEGEN_APPROACHES.md)** - Comparison of Java XSL templates vs native C generator, explaining the evolution and benefits of the current approach
+
+- **[Build System Evaluation](https://github.com/apache/axis-axis2-c-core/blob/master/tools/codegen/native/BUILD_SYSTEM_EVALUATION.md)** - Analysis of CMake vs Autotools for the code generator build system
+
+- **[Nested Arrays Analysis](https://github.com/apache/axis-axis2-c-core/blob/master/tools/codegen/native/NESTED_ARRAYS_ANALYSIS.md)** - Technical analysis and business decision on nested array support (intentionally not implemented due to complexity vs. real-world usage)
+
+### Testing & Validation
+
+- **[ADB Test Suite README](https://github.com/apache/axis-axis2-c-core/blob/master/tools/codegen/native/test/README.md)** - Overview of the comprehensive ADB test framework
+
+- **[ADB Test Plan](https://github.com/apache/axis-axis2-c-core/blob/master/tools/codegen/native/test/adb_test_plan.md)** - Detailed test plan based on Axis2/Java's 90+ test categories
+
+- **[ADB Feature Parity](https://github.com/apache/axis-axis2-c-core/blob/master/tools/codegen/native/test/ADB_FEATURE_PARITY.md)** - Feature comparison matrix between Axis2/Java ADB and Axis2/C native generator
 
 ## Historical Context: Java XSL Templates vs Native C Generator
 
 Axis2/C has evolved through two distinct code generation approaches, each addressing different architectural needs and performance requirements. Many JIRA issues reference the original Java-based XSL template system, making it important to understand the relationship between these approaches.
 
-## Java-Based XSL Template Approach (Legacy)
+### Java-Based XSL Template Approach (Legacy)
 
 The original Axis2/C code generation relied on Java-based XSL transformations that processed WSDL schemas and generated C code through template expansion. This approach used complex XSL stylesheets (like `CADBBeanTemplateSource.xsl`) to transform XML schema definitions into C data binding code. Issues like AXIS2C-1614, AXIS2C-1617, and others contain patches targeting these XSL templates, which handled concerns such as required attribute validation (`<xsl:if test="not(@optional)">`) and  [...]
 
-## Native C Generator Approach (Current)
+### Native C Generator Approach (Current)
 
 The current native WSDL2C generator (`tools/codegen/native/`) represents a ground-up rewrite in pure C, eliminating Java dependencies while providing equivalent functionality. This approach generates ADB (Axis Data Binding) code directly from WSDL parsing, creating type-safe C structures and functions for serialization/deserialization. The native generator addresses the same fundamental issues as the XSL templates but through direct C code generation - for example, AXIS2C-1614's required [...]
 
-## JIRA Issue Context
+### JIRA Issue Context
 
 When reviewing historical JIRA issues, patches targeting XSL templates indicate problems that have been addressed in the native generator through equivalent C-based solutions. The comprehensive test suites in `tools/codegen/native/test/` validate that the native generator maintains compatibility with expected behaviors while providing the architectural benefits of a pure C implementation.
diff --git a/docs/index.md b/docs/index.md
index 508757030..9f627d9c8 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -22,7 +22,7 @@ Apache Axis2/C is a high-performance web services framework written in C. Origin
 
 - [WS-Security via Rampart/C](https://axis.apache.org/axis2/c/rampart/) - XML Signature, Encryption, SAML
 - WS-Addressing, WS-Policy
-- WSDL 1.1/2.0 support
+- WSDL 1.1/2.0 support with [native WSDL2C code generator](guide/codegen.md)
 - MTOM/XOP binary attachments
 
 **Note:** A Rampart/C 2.0.0 release is planned to accompany Axis2/C 2.0.0, but this may be the final release. The [WS-Security 1.0 specification](http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf) (OASIS 2004) is mature and considered legacy technology in 2026, with most new applications using TLS, OAuth 2.0, or JWT for security.