Apache CXF 4.1.0 Release Notes

1. Overview

The 4.1.x versions of Apache CXF is a significant new version of CXF
that provides several new features and enhancements.  

New features include:
    * The release is based on JakartaEE 10
    * Support of Spring Framework 6.1 / Spring Boot 3.3 /  Spring Security 6.3
    * Support of OpenZipkin Brave 6.0
    * Jetty 12
    * Weld 5
    * Spring LDAP 3.2
    * Hazelcast 5.4.0
    * Woodstox 7.0.0
    * Hibernate 6.5
    * Hibernate Validator 8
    * AsyncHttpClient (AHC) 3.0.0

Important notes:
* CXF 4.1 now requires Java 17 as minimum

Users are encouraged to review the migration guide at:
https://cxf.apache.org/docs/41-migration-guide.html
for further information and requirements for upgrading from earlier
versions of CXF.


4.1.0 fixes over 54 JIRA issues reported by users and the community.


2. Installation Prerequisites 

Before installing Apache CXF, make sure the following products,
with the specified versions, are installed on your system:

    * Java 17 Development Kit
    * Apache Maven 3.x to build the samples


3.  Integrating CXF Into Your Application

If you use Maven to build your application, you need merely add
appropriate dependencies. See the pom.xml files in the samples.

If you don't use Maven, you'll need to add one or more jars to your
classpath. The file lib/WHICH_JARS should help you decide which 
jars you need.

4. Building the Samples

Building the samples included in the binary distribution is easy. Change to
the samples directory and follow the build instructions in the README.txt file 
included with each sample.

5. Reporting Problems

If you have any problems or want to send feedback of any kind, please e-mail the
CXF dev list, dev@cxf.apache.org.  You can also file issues in JIRA at:

http://issues.apache.org/jira/browse/CXF

6. Migration notes:

See the migration guide at:
http://cxf.apache.org/docs/41-migration-guide.html
for caveats when upgrading.

7. Specific issues, features, and improvements fixed in this version

** Bug
    * [CXF-8629] - AsyncHTTPConduit (hc5) should support chunked request / response
    * [CXF-8903] - Too many open files error in HttpClientHTTPConduit
    * [CXF-8931] - HttpClientHTTPConduit can't disable the http chunk mode
    * [CXF-8951] - Concurrent WebClient usage causes massive thread overhead
    * [CXF-8979] - XML (Woodstox/MSV) based schema validation is broken
    * [CXF-8980] - JaxRS client - receive timeout not working since CXF 4.0.1
    * [CXF-8987] - Java 21 - HttpClientHTTPConduit thread locked during shutdown 
    * [CXF-9004] - Jetty12 : always use pre-saved HTTP_REQUEST from InMessage to populate SecurityContext
    * [CXF-9007] - NullPointerException in XMLStreamDataWriter.writeNode
    * [CXF-9009] - Async operations fail in concurrent calls
    * [CXF-9011] - WSDLTo JAXWS Frontend service.vm Velocity template uses deprecated URL constructor
    * [CXF-9015] - Typo in JsonMapObjectReaderWriter treats \h as a special character instead of \n
    * [CXF-9021] - Warning "Could not resolve Schema for datatypes.dtd" when file was found
    * [CXF-9030] - "-suppress-generated-date" does not omit timestamps from @Generated
    * [CXF-9034] - IllegalAccessError: class org.apache.cxf.transport.http_jetty.JettyHTTPServerEngine
    * [CXF-9041] - Regression: CXF will only accept org.glassfish.jaxb.runtime.v2.ContextFactory
    * [CXF-9042] - Several unit tests are non-idempotent
    * [CXF-9052] - LoadDistributorFeature not comaptible with JAX-RS subresources
    * [CXF-9057] - Chunked Stream is closed regularly when Exception is thrown
    * [CXF-9058] - jaxws binding example in documentation no more work in v4.x because of jarkarta
    * [CXF-9060] - WSDL2Java Service generation results in 'unused import' warnings
    * [CXF-9064] - AsyncHTTPConduit doesn't close copied wrappedStream on close
    * [CXF-9066] - MaskSensitiveHelper does not mask multi-line content
    * [CXF-9067] - MaskSensitiveHelper incorrectly masks wrapper element
    * [CXF-9074] - HttpClientHTTPConduit ignores SSLContext in TLSClientParameters (Java HttpClient)
    * [CXF-9076] - Exception message is not unmarshalled with JDK17
    * [CXF-9077] - JAX-RS 3.1+: Add support for JSON-P and JSON-B providers by default
    * [CXF-9078] - AsyncHTTPConduit.java causing NullPointerException when closing
    * [CXF-9079] - java.lang.IllegalStateException: Encoding process already completed from LengthDelimitedEncoder



** New Feature
    * [CXF-8970] - ensure we can build and run without bouncycastle dependencies

** Improvement
    * [CXF-8671] - Support Jakarta EE 10
    * [CXF-8969] - Update to Brave 6
    * [CXF-8976] - Update to OpenTelemetry v1.39.0
    * [CXF-8993] - Migrate from net.sf.cglib (cglib) to org.springframework.cglib (spring)
    * [CXF-9013] - Move performance benchmark to distribution samples folder
    * [CXF-9016] - Upgrade Spring-Framework to 5.3.34 in Apache-cxf
    * [CXF-9026] - Integrate Jacoco into Apache CXF builds to collect code coverage stats
    * [CXF-9045] - Enhance samples/performance/jax-rs to accept host values
    * [CXF-9046] - JAX-RS performance client should close response objects after calls.
    * [CXF-9047] - http-undertow transport: enable to specify CipherSuites
    * [CXF-9055] - Follow OpenTelemetry semantic conventions for trace span and its attributes
    * [CXF-9059] - HttpConduit should flush output stream ahead of closing connections when HttpClient is autocloseable
    * [CXF-9062] - Be able to create AsyncHTTPConduit based on URLConnectionHTTPConduit
    * [CXF-9082] - SENSITIVE_HEADERS list is hardcoded
    * [CXF-9085] - Replace use of Google Guava with JDK API

** Test
    * [CXF-9006] - TrustedAuthorityValidatorCRLTest#testIsCertChainValid fails when using Red Hat OpenJDK on PPC64LE
    * [CXF-9010] - Update benchmark soap http doc lit suite for CXF 4.1.x 
    * [CXF-9014] - org.apache.cxf.systest.ws.action.SignatureWhitespaceTest test fail on RH OpenJDK
    * [CXF-9019] - Increase unit test coverage on cxf-rt-frontend-jaxws jaxws spi package.
    * [CXF-9023] - Increase unit test coverage on org.apache.cxf.bus
    * [CXF-9027] - Update Performance benchmark pom values
    * [CXF-9048] - Failed integration tests with upcomming santuario and wss4j library


** Task
    * [CXF-8891] - Evaluate changes to org.glassfish.jaxb:jaxb-runtime:4.0.3
    * [CXF-9029] - Update to JAXB runtime 4.0.5


