tree 9fdc2327f9cfc1efaa2f76ef6315b7778123bf18
parent dd46e289137aedabdc76d0ad5e52247d428a9a31
author Richard Zowalla <richard.zowalla@hs-heilbronn.de> 1693462046 +0200
committer Richard Zowalla <richard.zowalla@hs-heilbronn.de> 1696845261 +0200

 Force the use of the URLConnectionHTTPConduit in CXF4 (default in 3.5.x).
 Newer CXF versions will use HttpClientHTTPConduit, which has some drawbacks regarding headers sent via jdk http client

 The following two test require a newer Java version (>11.0.14) to pass since they are using a previously forbidden header key 'date', which is enforced
 by the http client in older JDK versions.

  com.sun.ts.tests.jaxrs.ee.rs.core.headers.JAXRSClientgetDateTest_from_standalone
  com.sun.ts.tests.jaxrs.ee.rs.client.clientrequestcontext.JAXRSClientgetHeadersIsMutableTest_from_standalone

 This test will fail, if the HttpClientHTTPConduit is used as it adds an HTTP header with content-length 0 to the request. The old  URLConnectionHTTPConduit
 doesn't add any content-length at all (returning -1), so the test just pass.

  com.sun.ts.tests.jaxrs.ee.rs.core.headers.JAXRSClientgetLengthTest_from_standalone

  CXF 4.0.3-SNAPSHOT introduced a system property with https://github.com/apache/cxf/commit/3d70de80fb60b74040c0214fc6a28774362556e4 to force the old
  implementation. We are setting it here explicitly to pass the related JAX-RS tck tests.
