struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sebastian Götz <s.go...@inform-technology.de>
Subject Re: Java 11 support
Date Fri, 18 Jan 2019 07:46:04 GMT
Okay.

I have taken a look at the struts-2-5-x branch in github. There is a 
global property in the struts-parentof that defines the version for ASM:

<asm.version>5.2</asm.version>

The struts-masterpom of the current github *master branch* has:

<asm.version>7.0</asm.version>

But when I look into DefaultClassFinder$InfoBuildingVisitorclass (line 
461) of the *master branch* there is still ASM 5 used:

public class InfoBuildingVisitor extends ClassVisitor {
         private Info info;
         private ClassFinder classFinder;

         public InfoBuildingVisitor(ClassFinder classFinder) {
*            super(Opcodes.ASM5);*
             this.classFinder = classFinder;
         }

So first step would be to change this coupling to ASM's version 7 API.
And if possible back-porting this to the struts-2-5-x branch.
Right?

As I am not familiar with ASM at all, I cannot even estimate whether 
this is that has to be done or not.
But I offer any support I can give to have Java 11 ready as soon as 
possible.

Kind regards

Sebastain

Am 17.01.2019 um 14:45 schrieb Lukasz Lenart:
> Hm... I thought we switched to ASM 7.0 in struts-2-5-x branch - at least in
> the master branch we have it which means Struts 2.6 supports JDK 11
>
> czw., 17 sty 2019 o 14:11 Sebastian Götz <s.goetz@inform-technology.de>
> napisał(a):
>
>> Hi folks,
>>
>> it appears that there is some work left in the convention plugin. As I
>> can see from my IVY resolve process this plugin drags in asm 5.2. From
>> its sources it looks like it supports class version up to 1.8 (class
>> version 52).
>> As we compile with JDK 11 already (class version 55) we get a lot of
>> these exceptions:
>>
>>    java.lang.IllegalArgumentException
>>       at org.objectweb.asm.ClassReader.<init>(Unknown Source)
>>       at org.objectweb.asm.ClassReader.<init>(Unknown Source)
>>       at org.objectweb.asm.ClassReader.<init>(Unknown Source)
>>       at
>>
>> org.apache.struts2.convention.DefaultClassFinder.readClassDef(DefaultClassFinder.java:461)
>>       at
>>
>> org.apache.struts2.convention.DefaultClassFinder.<init>(DefaultClassFinder.java:93)
>>       at
>>
>> org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildClassFinder(PackageBasedActionConfigBuilder.java:395)
>>       at
>>
>> org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:377)
>>       at
>>
>> org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:333)
>>       at
>>
>> org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:52)
>>       at
>>
>> com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:206)
>>       at
>>
>> com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)
>>       at
>> org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:957)
>>       at
>>
>> org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:463)
>>       at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:496)
>>       at
>>
>> org.apache.struts2.dispatcher.InitOperations.initDispatcher(InitOperations.java:73)
>>       at
>>
>> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:61)
>>       at
>> eu.inform.servlet.context.URIExcludeFilter.init(URIExcludeFilter.java:37)
>>       at
>>
>> org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:270)
>>       at
>>
>> org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:251)
>>       at
>>
>> org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:102)
>>       at
>>
>> org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4491)
>>       at
>>
>> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5135)
>>       at
>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>>       at
>>
>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1432)
>>       at
>>
>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1422)
>>       at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>>       at
>>
>> org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
>>       at
>>
>> java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
>>       at
>>
>> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:944)
>>       at
>> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:831)
>>       at
>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>>       at
>>
>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1432)
>>       at
>>
>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1422)
>>       at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>>       at
>>
>> org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
>>       at
>>
>> java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
>>       at
>>
>> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:944)
>>       at
>>
>> org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:261)
>>       at
>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>>       at
>>
>> org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
>>       at
>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>>       at
>>
>> org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:801)
>>       at
>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>>       at org.apache.catalina.startup.Catalina.start(Catalina.java:695)
>>       at
>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)
>>       at
>>
>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>       at
>>
>> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>       at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>>       at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:350)
>>       at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)
>>
>> I tried to exclude asm 5.2 on favor of 7.0 which works from the
>> dependency resolving side. But the Struts2 ClassVisitor implementation
>> is tied to ASM 5:
>>
>> public class InfoBuildingVisitor extends ClassVisitor {
>>           private Info info;
>>           private ClassFinder classFinder;
>>
>>           public InfoBuildingVisitor(ClassFinder classFinder) {
>>               super(Opcodes.ASM5);
>>               this.classFinder = classFinder;
>>           }
>> ...
>> }
>>
>> Therefore this leads to the following problem:
>>
>> java.lang.UnsupportedOperationException: This feature requires ASM7
>>       at
>> org.objectweb.asm.ClassVisitor.visitNestMember(ClassVisitor.java:236)
>>       at org.objectweb.asm.ClassReader.accept(ClassReader.java:651)
>>       at org.objectweb.asm.ClassReader.accept(ClassReader.java:391)
>>       at
>>
>> org.apache.struts2.convention.DefaultClassFinder.readClassDef(DefaultClassFinder.java:462)
>>       at
>>
>> org.apache.struts2.convention.DefaultClassFinder.<init>(DefaultClassFinder.java:93)
>>       at
>>
>> org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildClassFinder(PackageBasedActionConfigBuilder.java:395)
>>       at
>>
>> org.apache.struts2.convention.PackageBasedActionConfigBuilder.findActions(PackageBasedActionConfigBuilder.java:377)
>>       at
>>
>> org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:333)
>>       at
>>
>> org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:52)
>>       at
>>
>> com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:206)
>>       at
>>
>> com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:66)
>>       at
>> org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:957)
>>       at
>>
>> org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:463)
>>       at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:496)
>>       at
>>
>> org.apache.struts2.dispatcher.InitOperations.initDispatcher(InitOperations.java:73)
>>       at
>>
>> org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:61)
>>       at
>> eu.inform.servlet.context.URIExcludeFilter.init(URIExcludeFilter.java:37)
>>       at
>>
>> org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:270)
>>       at
>>
>> org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:251)
>>       at
>>
>> org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:102)
>>       at
>>
>> org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4491)
>>       at
>>
>> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5135)
>>       at
>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>>       at
>>
>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1432)
>>       at
>>
>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1422)
>>       at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>>       at
>>
>> org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
>>       at
>>
>> java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
>>       at
>>
>> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:944)
>>       at
>> org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:831)
>>       at
>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>>       at
>>
>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1432)
>>       at
>>
>> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1422)
>>       at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
>>       at
>>
>> org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
>>       at
>>
>> java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)
>>       at
>>
>> org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:944)
>>       at
>>
>> org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:261)
>>       at
>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>>       at
>>
>> org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
>>       at
>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>>       at
>>
>> org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:801)
>>       at
>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
>>       at org.apache.catalina.startup.Catalina.start(Catalina.java:695)
>>       at
>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>> Method)
>>       at
>>
>> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>       at
>>
>> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>       at java.base/java.lang.reflect.Method.invoke(Method.java:566)
>>       at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:350)
>>       at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)
>>
>> Can someone verfiy that and propose a fix?
>>
>> Kind regards,
>>
>> Sebastian
>>
>>
>> Am 15.01.2019 um 09:45 schrieb Sebastian Götz:
>>> Great to hear that!
>>>
>>>
>>> Am 15.01.2019 um 09:37 schrieb Yasser Zamani:
>>>> Hi Sebastian,
>>>>
>>>> Yes the release will be ready this month hopefully this week already ☺
>>>>
>>>> Kind Regards.
>>>>
>>>>
>>>> From: Sebastian Götz<s.goetz@inform-technology.de>
>>>> Sent: Tuesday, January 15, 2019 10:51 AM
>>>> To: Yasser Zamani<yasserzamani@apache.org>
>>>> Subject: Re: Java 11 support
>>>>
>>>> Hi Yasser,
>>>>
>>>> sure! We are not in a hurry :-) but really looking forward to this
>> release. I tried with the 2.5.18 yesterday.
>>>> But then I will await the 2.5.20 release with pleasure.
>>>>
>>>> I know this sort of question sucks but will the release be ready this
>> month already or will it take somewhat longer.
>>>> Kind regards,
>>>>
>>>> Sebastian
>>>> Am 14.01.2019 um 19:06 schrieb Yasser Zamani:
>>>>
>>>> Hi Sebastian,
>>>>
>>>>
>>>>
>>>> I'm pleased to announce it seems we were able to add both java 9 and 11
>>>>
>>>> supports into Struts 2.5.20. Could you please wait a few days for its
>>>>
>>>> release and then test the bits? It currently can pass all tests with all
>>>>
>>>> jdks (see [1]) but it's so great if you will be able to test it in
>>>>
>>>> production also.
>>>>
>>>>
>>>>
>>>> Thanks for using Struts!
>>>>
>>>>
>>>>
>>>> Kind Regards.
>>>>
>>>>
>>>>
>>>> [1]https://travis-ci.org/apache/struts/builds/456910100
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> On 1/14/2019 11:13 AM, Sebastian Götz wrote:
>>>>
>>>> Hello all.
>>>>
>>>>
>>>>
>>>> I searched through the website and the issue tracker to find any roadmap
>>>>
>>>> info concerning Java 11 support.
>>>>
>>>> At the moment I try upgrading our webapp to Tomcat 9 with OpenJDK 11. I
>>>>
>>>> now from past upgrades that we had to use a Java8-support-plugin for a
>>>>
>>>> while.
>>>>
>>>> Now with JDK 11 it looks a bit more complex getting the Java 9 module
>>>>
>>>> stuff together correctly. But I think someone must have a plan for this
>>>>
>>>> migration.
>>>>
>>>>
>>>>
>>>> So the question is: how and when is it going to be possible to use
>>>>
>>>> struts2 with Java 11?
>>>>
>>>>
>>>>
>>>> Kind regards
>>>>
>>>>
>>>>
>>>> Sebastian Götz
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>>
>>>> To unsubscribe, e-mail:user-unsubscribe@struts.apache.org<mailto:
>> user-unsubscribe@struts.apache.org>
>>>> For additional commands, e-mail:user-help@struts.apache.org<mailto:
>> user-help@struts.apache.org>
>>>> --
>>>> Mit freundlichen Grüßen
>>>>
>>>> Sebastian Götz
>>>>
>>>> iNFORM Technology GmbH
>>>> Niederlassung Albstadt
>>>> Berliner Straße 24
>>>> 72458 Albstadt-Ebingen
>>>>
>>>> Tel: +49 7431 9816090
>>>> Fax: +49 7431 9816092
>>>> s.goetz@inform-technology.de<mailto:s.goetz@inform-technology.de>
>>>> http://www.inform-technology.de/
>>>>
>>>> *****************************************************
>>>>
>>>> Zentrale Stockach:
>>>> Bodenseeallee 18
>>>> D-78333 Stockach
>>>> Tel: +49 7771 9282 494
>>>>
>>>> *****************************************************
>>>>
>>>> Geschäftsführer: Dipl.-Ing. (FH) Heinz Roth | Handelsregister: HRB
>> 715948, Amtsgericht Freiburg | USt-ID Nr.: DE312290945
>>>> Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte
>> Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail
>> irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und
>> vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte
>> Weitergabe dieser Mail ist nicht gestattet.
>>>> This e-mail may contain confidential and/or privileged information. If
>> you are not the intended recipient (or have received this e-mail in error)
>> please notify the sender immediately and destroy this e-mail. Any
>> unauthorised copying, disclosure or distribution of the material in this
>> e-mail is strictly forbidden.
>>> --
>>> Mit freundlichen Grüßen
>>>
>>> Sebastian Götz
>>>
>>> iNFORM Technology GmbH
>>> Niederlassung Albstadt
>>> Berliner Straße 24
>>> 72458 Albstadt-Ebingen
>>>
>>> Tel: +49 7431 9816090
>>> Fax: +49 7431 9816092
>>> s.goetz@inform-technology.de <mailto:s.goetz@inform-technology.de>
>>> http://www.inform-technology.de/
>>>
>>> *****************************************************
>>>
>>> Zentrale Stockach:
>>> Bodenseeallee 18
>>> D-78333 Stockach
>>> Tel: +49 7771 9282 494
>>>
>>> *****************************************************
>>>
>>> Geschäftsführer: Dipl.-Ing. (FH) Heinz Roth | Handelsregister: HRB
>>> 715948, Amtsgericht Freiburg | USt-ID Nr.: DE312290945
>>>
>>> Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte
>>> Informationen. Wenn Sie nicht der richtige Adressat sind oder diese
>>> E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den
>>> Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie
>>> die unbefugte Weitergabe dieser Mail ist nicht gestattet.
>>>
>>> This e-mail may contain confidential and/or privileged information. If
>>> you are not the intended recipient (or have received this e-mail in
>>> error) please notify the sender immediately and destroy this e-mail.
>>> Any unauthorised copying, disclosure or distribution of the material
>>> in this e-mail is strictly forbidden.
>> --
>> Mit freundlichen Grüßen
>>
>> Sebastian Götz
>>
>> iNFORM Technology GmbH
>> Niederlassung Albstadt
>> Berliner Straße 24
>> 72458 Albstadt-Ebingen
>>
>> Tel: +49 7431 9816090
>> Fax: +49 7431 9816092
>> s.goetz@inform-technology.de <mailto:s.goetz@inform-technology.de>
>> http://www.inform-technology.de/
>>
>> *****************************************************
>>
>> Zentrale Stockach:
>> Bodenseeallee 18
>> D-78333 Stockach
>> Tel: +49 7771 9282 494
>>
>> *****************************************************
>>
>> Geschäftsführer: Dipl.-Ing. (FH) Heinz Roth | Handelsregister: HRB
>> 715948, Amtsgericht Freiburg | USt-ID Nr.: DE312290945
>>
>> Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte
>> Informationen. Wenn Sie nicht der richtige Adressat sind oder diese
>> E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den
>> Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie
>> die unbefugte Weitergabe dieser Mail ist nicht gestattet.
>>
>> This e-mail may contain confidential and/or privileged information. If
>> you are not the intended recipient (or have received this e-mail in
>> error) please notify the sender immediately and destroy this e-mail. Any
>> unauthorised copying, disclosure or distribution of the material in this
>> e-mail is strictly forbidden.
>>

-- 
Mit freundlichen Grüßen

Sebastian Götz

iNFORM Technology GmbH
Niederlassung Albstadt
Berliner Straße 24
72458 Albstadt-Ebingen

Tel: +49 7431 9816090
Fax: +49 7431 9816092
s.goetz@inform-technology.de <mailto:s.goetz@inform-technology.de>
http://www.inform-technology.de/

*****************************************************

Zentrale Stockach:
Bodenseeallee 18
D-78333 Stockach
Tel: +49 7771 9282 494

*****************************************************

Geschäftsführer: Dipl.-Ing. (FH) Heinz Roth | Handelsregister: HRB 
715948, Amtsgericht Freiburg | USt-ID Nr.: DE312290945

Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte 
Informationen. Wenn Sie nicht der richtige Adressat sind oder diese 
E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den 
Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie 
die unbefugte Weitergabe dieser Mail ist nicht gestattet.

This e-mail may contain confidential and/or privileged information. If 
you are not the intended recipient (or have received this e-mail in 
error) please notify the sender immediately and destroy this e-mail. Any 
unauthorised copying, disclosure or distribution of the material in this 
e-mail is strictly forbidden.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message