Apache Axis2 2.0.1 Release Notes
--------------------------------

## Java Version Support

Apache Axis2 2.0.1 adds **OpenJDK 21 and 25 support** and **requires OpenJDK 17 as the minimum version** (upgraded from Java 8). The SecurityManager APIs removed in Java 21 are handled transparently, and legacy Date/Calendar APIs have been modernized to use java.time APIs. All features are fully tested and supported on Java 17, 21, and 25.

## New Features

- **AXIS2-6098**: HTTP/2 transport module with multiplexing, ALPN negotiation, and adaptive timeouts. Includes standalone HTTP/2 Java client example (`Http2JsonClient`).
- **AXIS2-6103**: Streaming JSON message formatters (`MoshiStreamingMessageFormatter`, `JSONStreamingMessageFormatter`) with `FlushingOutputStream` that flushes every 64KB. Prevents reverse proxy 502 errors on large responses. Field-level filtering via `FieldFilteringMessageFormatter` and `?fields=` query parameter. MCP (Model Context Protocol) support for AI agents with auto-generated `inputSchema` from Java method parameter types.
- **AXIS2-6100**: OpenAPI 3.0.1 spec generation and Swagger UI from Axis2 service definitions.
- **axis2-spring-boot-starter**: New module for Spring Boot autoconfiguration of Axis2.
- **AXIS2-6040**: `Automatic-Module-Name` defined for Java 9+ module system compatibility.


## Removed Features

- **AXIS2-6105**: Eclipse codegen and service plugins, IntelliJ IDEA plugin, OSGi module (AXIS2-6076), JiBX data binding, SOAPMonitor, Scripting (BSF/JSR-223), FastInfoset. See [AXIS2-6105](https://issues.apache.org/jira/browse/AXIS2-6105) for details.
- **AXIS2-6102**: WSDL 2.0 (Woden) implementation removed. WSDL 1.1 remains fully supported.
- **AXIS2-6097**: Clustering feature removed.
- **AXIS2-6079**: Java Security Manager / AccessController code removed (deprecated in Java 17, removed in Java 24).

## Breaking Changes

- **Minimum Java Version**: Requires **Java 17** (previously Java 8)
- **API Modernization**: Legacy Date/Calendar usage replaced with java.time.Instant APIs
- **Security**: SecurityManager dependent code removed for Java 21+ compatibility
- **Removed modules**: Users of JiBX, SOAPMonitor, Scripting, FastInfoset, Eclipse/IDEA plugins, OSGi, WSDL 2.0, or Clustering must migrate before upgrading from 2.0.0

<h2>        Bug
</h2>
<ul>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-4146'>AXIS2-4146</a>] -         HTTP status code 400 is changed to 500
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-5696'>AXIS2-5696</a>] -         Axis 2 threads are not closing properly
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-5788'>AXIS2-5788</a>] -         ConfigurationContext.getServiceGroupContext(id) always touches the id - (&quot;Observer Effect&quot;)
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-5852'>AXIS2-5852</a>] -          &#39;Axis2 task&#39; threads stays in waiting state without terminating
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-5858'>AXIS2-5858</a>] -         soap:address location&#39;s value is wrong  with IPv6
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-5862'>AXIS2-5862</a>] -         Handler / Phase Indexes incorrect?
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-5904'>AXIS2-5904</a>] -         Intermittent Rampart policy configuration missing Error
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-5965'>AXIS2-5965</a>] -         .class files up to 3 times redundantly in jar file
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-5966'>AXIS2-5966</a>] -         Axis2 1.8.0-SNAPSHOT fix did not work for JDK 11
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-5972'>AXIS2-5972</a>] -         missing namespace declaration - attribute present in multiple XSD&#39;s not parsed correctly
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6031'>AXIS2-6031</a>] -         xmlbeans generator generates methods with @deprecated in javadoc only, but not marked with @Deprecated annotation
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6047'>AXIS2-6047</a>] -          Missing Port in the Host header of the requests coming from HTTPClient4TransportSender implementation.
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6055'>AXIS2-6055</a>] -         Basic Auth credentials are missing in request
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6061'>AXIS2-6061</a>] -         Axis2 client parses soap envolope in case of a http-404
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6074'>AXIS2-6074</a>] -         Issue with empty enum tags
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6083'>AXIS2-6083</a>] -         Cookie Handling not work with 2.0.0
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6086'>AXIS2-6086</a>] -         AxisServlet - processAxisFault - does not guard against NumberFormatException
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6087'>AXIS2-6087</a>] -         Master branch using 1.8.0 AAR/MAR dependencies - switch to 2.0.0?
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6090'>AXIS2-6090</a>] -         Tomcat Version too high?
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6091'>AXIS2-6091</a>] -         Problem handling HTTP Response in OutInAxisOperationClient / TransportUtils
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6094'>AXIS2-6094</a>] -         CRC of some axis2 jars distributed via WAR archive is different than CRC of jars distributed via public repositories
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6095'>AXIS2-6095</a>] -         Axis2&#39;s IDL parser (Corba Module) gives fault on valid comment
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6096'>AXIS2-6096</a>] -         Attempted read on closed stream for multithreaded environment
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6101'>AXIS2-6101</a>] -         Adapt to changes in HttpClient 5.6
</li>
</ul>
                
<h2>        Improvement
</h2>
<ul>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-3879'>AXIS2-3879</a>] -         Ability to change the http status code in the response being sent to the client
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-5762'>AXIS2-5762</a>] -         Add Transport Ports to MessageContext
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-5881'>AXIS2-5881</a>] -         Small improvement to the listServices.jsp to sort services and operations
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6040'>AXIS2-6040</a>] -         Define Automatic-Module-Name for Java9 module system compatibility
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6053'>AXIS2-6053</a>] -         cvc-complex-type.3.2.2: Attribute &#39;contentType&#39; is not allowed to appear in element ...
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6082'>AXIS2-6082</a>] -         Make Axis2 build reproducible
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6085'>AXIS2-6085</a>] -         Build instructions in README don&#39;t mention bash requirement
</li>
</ul>
            
<h2>        Task
</h2>
<ul>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6076'>AXIS2-6076</a>] -         OSGI jakarta support is unmaintained
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6079'>AXIS2-6079</a>] -         Remove the Java Security Manager from AccessController and Java2SecTest
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6097'>AXIS2-6097</a>] -         Remove Clustering feature
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6098'>AXIS2-6098</a>] -         Add HTTP/2 transport and docs explaining the benefits
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6100'>AXIS2-6100</a>] -         Add REST support for OpenAPI (formerly known as Swagger)
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6102'>AXIS2-6102</a>] -         Woden (WSDL 2.0) Removal
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6103'>AXIS2-6103</a>] -         Add MCP protocol support for AI agents
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6105'>AXIS2-6105</a>] -         Remove OSGi bundle packaging from transport modules
</li>
<li>[<a href='https://issues.apache.org/jira/browse/AXIS2-6106'>AXIS2-6106</a>] -         Remove unmaintained XMPP transport module
</li>
</ul>
