| 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 - ("Observer Effect") |
| </li> |
| <li>[<a href='https://issues.apache.org/jira/browse/AXIS2-5852'>AXIS2-5852</a>] - 'Axis2 task' 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'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'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'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 'contentType' 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'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> |