You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Mark Thomas <ma...@apache.org> on 2017/10/02 20:12:47 UTC
Java 9 support and Tomcat 7
Hi,
We have a problem with Java 9 support for JSPs with Tomcat 7.
The latest version of the ECJ compiler we can ship with Tomcat 7 is
4.4.2 since that is the latest version that supports Java 6 and Tomcat 7
is required (by the specs) to run on Java 6.
The earliest version of the ECJ compiler that supports Java 9 is 4.5.
Hence, we can't support Java 9 for JSPs and be spec compliant for Tomcat 7.
My current thinking is that we simply hard code the necessary constants
to configure ECJ for Java 9 into Tomcat 7 so it will work if the user:
a) replaces the ECJ JAR that ships with Tomcat 7 with a more recent
version; and
b) configures Jasper for Java 9
We could also try and catch if Jasper is configured for 1.9 but ECJ
doesn't support it.
Thoughts?
Mark
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: Java 9 support and Tomcat 7
Posted by Mark Thomas <ma...@apache.org>.
On 02/10/17 21:35, Konstantin Kolinko wrote:
> 2017-10-02 23:12 GMT+03:00 Mark Thomas <ma...@apache.org>:
>> Hi,
>>
>> We have a problem with Java 9 support for JSPs with Tomcat 7.
>>
>> The latest version of the ECJ compiler we can ship with Tomcat 7 is
>> 4.4.2 since that is the latest version that supports Java 6 and Tomcat 7
>> is required (by the specs) to run on Java 6.
>>
>> The earliest version of the ECJ compiler that supports Java 9 is 4.5.
>>
>> Hence, we can't support Java 9 for JSPs and be spec compliant for Tomcat 7.
>>
>>
>> My current thinking is that we simply hard code the necessary constants
>
> +1. Those constants are just strings.
> We already hardcoded them for Tomcat 6 and Java 8:
>
> https://svn.apache.org/viewvc/tomcat/archive/tc6.0.x/trunk/java/org/apache/jasper/compiler/JDTCompiler.java?revision=1803960&view=markup#l323
>
>
>> to configure ECJ for Java 9 into Tomcat 7 so it will work if the user:
>> a) replaces the ECJ JAR that ships with Tomcat 7 with a more recent
>> version; and
>> b) configures Jasper for Java 9
>>
>> We could also try and catch if Jasper is configured for 1.9 but ECJ
>> doesn't support it.
>>
>>
>> Thoughts?
>
> I hope that ECJ 4.4.2 can work when running on Java 9. (If it cannot
> at all - I'wouldn't be surprised - then more intrusive steps will be
> needed).
Based on a simple test with the ROOT web app ECJ 4.4.2 does work when
running on Java 9.
> A possibility is to provide separate downloads "for java 9" - like we
> do with different versions of TC-Native for Windows.
>
> Or have a separate download "for java 6, java 7" and ship ECJ 4.7.1
> with the default one.
> (I suspect that 4.7 runs on Java 8+, though I have not tested).
>
> Let's start with an easy solution first (string constants + drop-in
> replacement by an user).
This works. At least Jasper produces class files with a version number
of 53 which is the expected value for Java 9.
I'll go ahead and commit this shortly.
Mark
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: Java 9 support and Tomcat 7
Posted by Konstantin Kolinko <kn...@gmail.com>.
2017-10-02 23:12 GMT+03:00 Mark Thomas <ma...@apache.org>:
> Hi,
>
> We have a problem with Java 9 support for JSPs with Tomcat 7.
>
> The latest version of the ECJ compiler we can ship with Tomcat 7 is
> 4.4.2 since that is the latest version that supports Java 6 and Tomcat 7
> is required (by the specs) to run on Java 6.
>
> The earliest version of the ECJ compiler that supports Java 9 is 4.5.
>
> Hence, we can't support Java 9 for JSPs and be spec compliant for Tomcat 7.
>
>
> My current thinking is that we simply hard code the necessary constants
+1. Those constants are just strings.
We already hardcoded them for Tomcat 6 and Java 8:
https://svn.apache.org/viewvc/tomcat/archive/tc6.0.x/trunk/java/org/apache/jasper/compiler/JDTCompiler.java?revision=1803960&view=markup#l323
> to configure ECJ for Java 9 into Tomcat 7 so it will work if the user:
> a) replaces the ECJ JAR that ships with Tomcat 7 with a more recent
> version; and
> b) configures Jasper for Java 9
>
> We could also try and catch if Jasper is configured for 1.9 but ECJ
> doesn't support it.
>
>
> Thoughts?
I hope that ECJ 4.4.2 can work when running on Java 9. (If it cannot
at all - I'wouldn't be surprised - then more intrusive steps will be
needed).
A possibility is to provide separate downloads "for java 9" - like we
do with different versions of TC-Native for Windows.
Or have a separate download "for java 6, java 7" and ship ECJ 4.7.1
with the default one.
(I suspect that 4.7 runs on Java 8+, though I have not tested).
Let's start with an easy solution first (string constants + drop-in
replacement by an user).
Best regards,
Konstantin Kolinko
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org