Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jakartaee-tck-dev] Unable to run Servlet TCK on Java 11
  • From: Mark Thomas <markt@xxxxxxxxxx>
  • Date: Fri, 19 Jun 2020 15:48:01 +0100
  • Autocrypt: addr=markt@xxxxxxxxxx; prefer-encrypt=mutual; keydata= xsFNBEq0DukBEAD4jovHOPJDxoD+JnO1Go2kiwpgRULasGlrVKuSUdP6wzcaqWmXpqtOJKKw W2MQFQLmg7nQ9RjJwy3QCbKNDJQA/bwbQT1F7WzTCz2S6vxC4zxKck4t6RZBq2dJsYKF0CEh 6ZfY4dmKvhq+3istSoFRdHYoOPGWZpuRDqfZPdGm/m335/6KGH59oysn1NE7a2a+kZzjBSEg v23+l4Z1Rg7+fpz1JcdHSdC2Z+ZRxML25eVatRVz4yvDOZItqDURP24zWOodxgboldV6Y88C 3v/7KRR+1vklzkuA2FqF8Q4r/2f0su7MUVviQcy29y/RlLSDTTYoVlCZ1ni14qFU7Hpw43KJ tgXmcUwq31T1+SlXdYjNJ1aFkUi8BjCHDcSgE/IReKUanjHzm4XSymKDTeqqzidi4k6PDD4j yHb8k8vxi6qT6Udnlcfo5NBkkUT1TauhEy8ktHhbl9k60BvvMBP9l6cURiJg1WS77egI4P/8 2oPbzzFiGFqXyJKULVgxtdQ3JikCpodp3f1fh6PlYZwkW4xCJLJucJ5MiQp07HAkMVW5w+k8 Xvuk4i5quh3N+2kzKHOOiQCDmN0sz0XjOE+7XBvM1lvz3+UarLfgSVmW8aheLd7eaIl5ItBk 8844ZJ60LrQ+JiIqvqJemxyIM6epoZvY5a3ZshZpcLilC5hW8QARAQABzSJNYXJrIEUgRCBU aG9tYXMgPG1hcmt0QGFwYWNoZS5vcmc+wsF3BBMBCgAhBQJKtA7pAhsDBQsJCAcDBRUKCQgL BRYCAwEAAh4BAheAAAoJEBDAHFovYFnn2YgQAKN6FLG/I1Ij3PUlC/XNlhasQxPeE3w2Ovtt weOQPYkblJ9nHtGH5pNqG2/qoGShlpI04jJy9GxWKOo7NV4v7M0mbVlCXVgjdlvMFWdL7lno cggwJAFejQcYlVtxyhu4m50LBvBunEhxCbQcKnnWmkB7Ocm0Ictaqjc9rCc1F/aNhVMUpJ0z G1kyTp9hxvN6TbCQlacMx5ocTWzL0zn6QZhbUfrYwfxYJmSnkVYZOYzXIXIsLN5sJ9Q4P8tj Y4qWgd+bQvOqPWrkzL9LVRnGOrSYIsoM5zWdoj1g1glMzK/ZqJdRqqqBhe6FYTbXipz8oX8i mCebcaxZnfLhGiqqX+yDa3YUwDiqom+sZOc0iXGvKkqltPLpNeF0MVT7aZjalsQ/v2Ysb24R Ql9FfjfWmvT8ZPWz8Kore1AI4UcIIgFVtM+zuLlL9CIsGjg+gHDE2dhZDY0qfizlHL9CoAWU DM3pIfxM2V4BRn1xO+j/mModhjmYLZvnFVz4KGkNO7wRkofAANIWYo3WI5x83BGDH371t3NR rrpSSFP0XpQX6/Leaj2j6U6puABL2qBxhscsO6chc3u4/+019ff+peZVsc9ttcTQXsKIujmM b8p2sk5usmv6PKVX3oW/RAxpbVHU5kZ5px1Hq7mMQdZfLs5ff4YymXBH02z4/RmSzPam0Xb5 zsFNBEq0DukBEADCNEkws5YroBmbu8789Xf006gTl5LzD/Hdt3sAp9iCfPgucO+l7U+xbo1X HTMJQwEVfS+Rx3RbaLYRG+hU7FuJLQB/5NaCDNRuqw5KHyQtJUH+zo84IqqfMzG8aOSdHg1y r2xKH4QTmgQONBu/W0xEZmZro6TjYNwkk2pwXK2yuImZPUOy+mK1qF8Wm3hTtkPE+FFSNFIa eHDoTGmx/0Riu/K7dNJTrC0TlRpn2K6d60zB53YYTc+0DYSDyB0FupXiAx/+XEGn3Q7eNi2B V6w50v5r51QP8zptiFflMfFKNAfV8xS5MteQd98YS5qqd/LPo3gS5HFPQaSL0k3RTClv7fQN HcZFqmv0OWpix6zm2npYxhqsTDGeSa52/uXehVXF5JubYFifMSLpbGVZqdrmG5hr2cycxsjF iY0zJOaRitmN/JWbOGLiwrcN4ukKNyFntFG5jPaFnJdx9rHfyJNeF9cgv9JlZeFxJ6WqIAhl KOuH3K8/py0SPE6ZOFfRo0YUxvh25K/siOcPLm613aOxyY7YfQ8ME2vgn7I0mAtg9am+YFDa bGqj839odwZdzZv2T2mUHnybFTJFBuMWGWKYstYDS6eZEmhupbPvUKkDug/mO+gdo+pSKF9Y S6DM5RtCdTNJq4NZY50ypBb5RSj+INHPocIp2V/DDTbzySsu6wARAQABwsFfBBgBCgAJBQJK tA7pAhsMAAoJEBDAHFovYFnnLe0P/i34oK5cE2LlqUEITEcTO94x1EX0UmtKokRfQ3AYWK8X eFD8cmSty72hMkL+1c0V//4Qc53SUyLIWXk8FKWF7hdL3zyuBqlRb55721CYC35GA/jR90p0 k1vr701gaat2cNTOVC0/6H9cE5yYXT+zMr9TSiKCDwONhhSbmAJZc6X0fgsmCD7I5xUI5Vri hN/Wx0CZBtrXGUyE4hgFaYSGptZmkY5Ln1e+nI185Bda7bpLwcAIGrI9nYtVXgf71ybGKdPP tFfXIoPXuctn99M7NnWBhNuGDms2YWkOC7eeWBTxKkZDWR3vRmRy52B6GxR7USk/KXs7yqGP kfT/c4CZFfOurZUXXuC3PvOme0DQmqwExtJormoG4Fy6suEFPrfhYMigTy7kSbVTCOBMjQLH +U/FFNshvg9+M/ZvaKT+0lpRvBSuG5ngsC0bO0xWsXhb6qfH2h53g4VcwFvCBL5IfqgAeUbC nGGHNcGWpmwdeb7D7ahrNZSHEUUYR7lTbjkYS01/QDOcEwNZOqDRIJUQOOUq35721VeROkdh ZmMZtFlsQeQJsWoqGrQo/kEYicVlMVOgjmOOzOa5fRb/IqlGlBn4a4me3hWthLLtMy+OOEim 6ENjntVTBQiTP/YqrxWDbCkaD7b2e9wY5N3JlRxMIQHfcHaND3PRdQSn7oHYXmJl
  • Delivered-to: jakartaee-tck-dev@xxxxxxxxxxx
  • List-archive: <https://www.eclipse.org/mailman/private/jakartaee-tck-dev>
  • List-help: <mailto:jakartaee-tck-dev-request@eclipse.org?subject=help>
  • List-subscribe: <https://www.eclipse.org/mailman/listinfo/jakartaee-tck-dev>, <mailto:jakartaee-tck-dev-request@eclipse.org?subject=subscribe>
  • List-unsubscribe: <https://www.eclipse.org/mailman/options/jakartaee-tck-dev>, <mailto:jakartaee-tck-dev-request@eclipse.org?subject=unsubscribe>
  • User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0

Thanks both, that helps.

Option 3 would be very attractive if the TCK could be built with Java
11. I just tried to build the Servlet TCK and the build failed. Issues
with use of java.endorsed.dirs by the looks of it.

It should be possible to fix the Java 11 build issues with the TCK but
my sense is that that could be a fair amount of work.

I started down the option 4 route last night but stopped to re-evaluate
as the work required continued to grow. It is do-able, but work looks to
be enough to justify at least exploring other options a little more.

Given all of the above, I am going to take a look at option 5 and try
and get a sense of how much work is involved.

As an aside, Apache Tomcat intends to certify with Java 8 and Java 11
for Servlet, JSP, EL and WebSocket.

Mark


On 19/06/2020 14:46, Kevin Sutter wrote:
> I agree with Scott.  Our first priority is to certify with Java 11.
>  But, we need the ability to allow implementations to certify with Java
> 8, if they desire.  So, would Option 3 satisfy both requirements?  This
> approach sounds like it would require two versions of this TCK -- one
> for Java 11 and one for Java 8.  Maybe one of the tricks with Option 4
> or 5 would be a more flexible approach?
> 
> At this point, I don't know if Glassfish will be certifying against Java
> SE 8...  I do know that Open Liberty would like to certify against both
> Java 11 and Java 8.
> 
> ---------------------------------------------------
> Kevin Sutter
> STSM, MicroProfile and Jakarta EE architect @ IBM
> e-mail:  sutter@xxxxxxxxxx     Twitter:  @kwsutter
> phone: tl-553-3620 (office), 507-253-3620 (office)    
> LinkedIn: https://www.linkedin.com/in/kevinwsutter
> 
> 
> 
> From:        Scott Stark <starksm64@xxxxxxxxx>
> To:        jakartaee-tck developer discussions
> <jakartaee-tck-dev@xxxxxxxxxxx>
> Date:        06/19/2020 08:26
> Subject:        [EXTERNAL] Re: [jakartaee-tck-dev] Unable to run Servlet
> TCK on Java 11
> Sent by:        jakartaee-tck-dev-bounces@xxxxxxxxxxx
> ------------------------------------------------------------------------
> 
> 
> 
> From the release plan:
> _https://eclipse-ee4j.github.io/jakartaee-platform/jakartaee9/JakartaEE9ReleasePlan_
> 
> The TCK requirement is that it MUST be run against Java 11, but may
> additionally use 8:
> 
> Java SE Version
> 
> For inclusion in Jakarta EE 9, specification’s APIs MUST be compiled at
> the Java SE 8 source level. However, compatible implementations of the
> Jakarta EE 9 Web Profile and Full Profile MUST certify compatibility on
> Java SE 11. Compatible Implementations MAY additionally certify and
> support Java SE 8.
> 
> ---
> 
> So option 3 would seem to be the best approach in my view. Tag the
> current TCK source so that running a Java SE 8 version of the TCK could
> look to use that if it is desired.
> 
> Is GlassFish going to certify against Java SE 8?
> 
> 
> 
> On Fri, Jun 19, 2020 at 8:08 AM Mark Thomas <_markt@apache.org_
> <mailto:markt@xxxxxxxxxx>> wrote:
> 
> Hi,
> 
> I am currently working the Servlet TCK and have hit an issue when
> running on Java 11.
> 
> The Servlet TCK tests HTTP/2 functionality. To do this is uses an HTTP/2
> client provided by http.jar. This appears the Java 9 module
> jdk.incubator.http ported to Java 8. I can't find the source code for
> ported version anywhere. The issue is that the ported code references
> sun.misc.InnocuousThread which isn't present in Java 11.
> 
> I have looked at several potential solutions:
> 
> 1. Avoid the code that triggers loading of InnocuousThread
> This isn't possible.
> 
> 2. Switch to a different HTTP/2 client. Apache HttpClient 5.0 supports
> HTTP/2 but that would require an upgrade to HttpClient 5.0 for at least
> all of the Servlet 5.0 TCK. It should be a safe upgrade but there are
> risks attached to an upgrade. I dismissed this option due to the risks.
> 
> 3. Provide a Java 11 version of these TCK tests that uses the
> java.net.http API. This should be fairly easy to write but it would then
> require the Servlet TCK to be compiled with Java 11. I am assuming that
> a change to compiling with Java 11 is not an option at this stage.
> 
> 4. Use reflection to provide a Java 8 compilable solution that uses Java
> 11 features when running on Java 11. This looks possible but is a lot of
> work. It appears to be made more complex by changes in the API between
> the incubator stage in Java 9 and the final version in Java 11.
> 
> 5. Use BCEL to remove the references to InnocuousThread in http.jar.
> This looks doable at this stage. There may be further complications once
> the InnocuousThread issues are fixed.
> 
> My current thinking is:
> - explore option 5
> - if it works, provide the code I use to 'patch' http.jar in a text file
>   along side the HTTP/2 tests along with the patched JAR in a PR
> 
> Thoughts on my proposed solution? Suggestions of a better solution?
> 
> Thanks,
> 
> Mark
> _______________________________________________
> jakartaee-tck-dev mailing list_
> __jakartaee-tck-dev@eclipse.org_ <mailto:jakartaee-tck-dev@xxxxxxxxxxx>
> To unsubscribe from this list, visit
> _https://www.eclipse.org/mailman/listinfo/jakartaee-tck-dev________________________________________________
> jakartaee-tck-dev mailing list
> jakartaee-tck-dev@xxxxxxxxxxx
> To unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/jakartaee-tck-dev
> 
> 
> 
> _______________________________________________
> jakartaee-tck-dev mailing list
> jakartaee-tck-dev@xxxxxxxxxxx
> To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jakartaee-tck-dev
> 



Back to the top