On Thu, Apr 7, 2022 at 2:12 PM Joakim Erdfelt <joakim.erdf...@gmail.com>
wrote:

> Regarding your JDK 17/18 support and your aQute issue.
>
> [INFO] --- ebr-maven-plugin:1.4.0-SNAPSHOT:bundle (default-bundle) @
> org.antlr.runtime ---
> [INFO] Gathering dependencies
> [INFO] Configured Artifact: org.antlr:antlr-runtime:3.5.2:jar
> [INFO] Unpacking
> /home/akurtakov/.m2/repository/org/antlr/antlr-runtime/3.5.2/antlr-runtime-3.5.2.jar
> to
> /home/akurtakov/git/orbit-recipes/antlr/org.antlr.runtime_3.5.2/target/dependency-bin
> with includes "**/*" and excludes "META-INF/maven/**/*.*"
> [INFO] Merging collected dependencies
> [INFO] Using 'UTF-8' encoding to copy filtered resources.
> [INFO] Copying 118 resources
> [INFO] Generating OSGi MANIFEST.MF
> [ERROR] An internal error occurred
> java.util.ConcurrentModificationException
>     at java.util.TreeMap.callMappingFunctionWithCheck (TreeMap.java:750)
>     at java.util.TreeMap.computeIfAbsent (TreeMap.java:604)
>     at aQute.bnd.osgi.Jar.putResource (Jar.java:288)
>     at aQute.bnd.osgi.Jar$1.visitFile (Jar.java:202)
>     at aQute.bnd.osgi.Jar$1.visitFile (Jar.java:177)
>     at java.nio.file.Files.walkFileTree (Files.java:2811)
>     at aQute.bnd.osgi.Jar.buildFromDirectory (Jar.java:176)
>     at aQute.bnd.osgi.Jar.<init> (Jar.java:119)
>     at aQute.bnd.osgi.Jar.<init> (Jar.java:172)
>     at org.apache.felix.bundleplugin.BundlePlugin.getOSGiBuilder
> (BundlePlugin.java:604)
>     at org.apache.felix.bundleplugin.ManifestPlugin.getAnalyzer
> (ManifestPlugin.java:285)
>     at org.apache.felix.bundleplugin.ManifestPlugin.execute
> (ManifestPlugin.java:111)
>     at org.eclipse.ebr.maven.BundleMojo.buildBundle (BundleMojo.java:358)
>     at org.eclipse.ebr.maven.BundleMojo.execute (BundleMojo.java:462)
>
> This is because of an old biz.aQute.bnd lib.
> Eclipse Jetty hit this same issue early, during the Java-17 Early Access
> builds.
> We build all the way up to Java-19 EA now.
>
> Update your biz.aQute.bndlib to version 5.3.0
>
>       <dependency>
>         <groupId>biz.aQute.bnd</groupId>
>         <artifactId>biz.aQute.bndlib</artifactId>
>         <version>5.3.0</version>
>       </dependency>
>
> If you manage the ebr-maven-plugin, then update it there.
> Otherwise, if you are a simple project using the ebr-maven-plugin, the
> above dependency in a <dependencyManagement> should be sufficient.
>

I just don't have the energy to try saving things anymore, if it's
important enough for many people - it will get saved! Thanks for your hints
though!


>
> Btw, we LOVE the new Tycho maven P2 repo featureset.
> It's eliminated a big headache on our releases.
> We were spending on a good day about 6+ man hours to get an old school P2
> repo out per release.
> On a problematic release it could easily top 40 man hours per release
> (ugh!).
>
> Now it's brain dead simple and just works, with an occasional bump in the
> Tycho version being used, which is automatically reported to us via the
> github tooling.
>

Exactly my experience and I hear/see the same comments everywhere people
did the change. The more people showing their success stories the better to
show the real gains.


>
> - Joakim
>
>
> On Thu, Apr 7, 2022 at 1:46 AM Aleksandar Kurtakov <akurt...@redhat.com>
> wrote:
>
>>
>>
>> On Thu, Apr 7, 2022 at 9:30 AM Aleksandar Kurtakov <akurt...@redhat.com>
>> wrote:
>>
>>>
>>>
>>> On Thu, Apr 7, 2022 at 8:34 AM Ed Merks <ed.me...@gmail.com> wrote:
>>>
>>>> Christian,
>>>>
>>>> I share your frustrations.  Yes, much is being done to make life easier
>>>> and/or better (direct Maven consumption and Github with github issues)
>>>> but somehow every change is also disruptive and very often time
>>>> consuming such that you much spend time on what feels like a gigantic
>>>> no-op...
>>>>
>>>> More comments below.
>>>>
>>>> On 07.04.2022 04:54, Christian Dietrich wrote:
>>>> > Hi all, my frustration of the current state has cost me another
>>>> > sleepless night and thus i need to start this discussion again.
>>>> >
>>>> > All of the following statements are subjective and describe my
>>>> > personal view and option and feelings.
>>>> >
>>>> > Trigger was
>>>> > https://www.eclipse.org/lists/cross-project-issues-dev/msg19066.html
>>>> > but is just another big drop to barrel to overflow.
>>>> >
>>>> > What is it about:
>>>> >
>>>> > - PlatformRel: Release of the basic eclipse platform and jdt on a
>>>> > regular basis
>>>> > - SimRel: All project release together with PlatformRel in versions
>>>> > that work together. This requires the projects to "paying attention"
>>>> > to ensure this holds true.
>>>> > - Orbit: Central place to pull 3rd dependencies from. This avoid each
>>>> > and every project packaging their own stuff and makes it possible for
>>>> > projects with the same dependency to work together seemlessly.
>>>> >
>>>> > Projects: Eclipse has projects with
>>>> > - some budget
>>>> > - a limited budget (i would categeorize Xtext with 4-6 days a month
>>>> here)
>>>> > - basically no buget
>>>> EMF, XSD, JustJ and Oomph have been budget free for close to 2 years.
>>>> >
>>>> > Projects and values:
>>>> > - Some projects value support for older platform and java versions,
>>>> > others dont
>>>> > - Some projects "pay attention", others dont
>>>> >
>>>> EMF tests against Helios.  I had been trying to keep Oomph running on
>>>> Juno, but that was no longer possible with all the nice though
>>>> disruptive p2 changes for PGP.   JustJ keeps up with new Adoptium
>>>> releases; I'm currently testing Java 18.
>>>>
>>>> > Xtext: what do i do for Xtext
>>>> > - work with community
>>>> > - fix bug
>>>> > - develop some smaller features
>>>> > - pay attention
>>>> >   - fix broken Jenkins files cause infrastructure changes
>>>> >   - test against upstream platform and jdt
>>>> >   - bump versions of 3rd party dependencies
>>>> >   - contribute to upstream project
>>>> >   - ....
>>>> >
>>>> Working with the community and as a community is key.  So I'm not so
>>>> happy to see comments like "That's more the problem of SimRel" as if we
>>>> aren't all part of the same community.   I know it's not fair to expect
>>>> the Platform to solve world hunger, but treating world hunger as
>>>> someone
>>>> else's problem is questionable.
>>>>
>>>> I know Xtext in particular is used in a vast downstream ecosystem and I
>>>> know that this consumption makes all the projects upstream from Xtext,
>>>> including EMF and the Platform more relevant to a broader community.
>>>> So
>>>> we should all be concerned about Xtext's welfare.  In addition to that,
>>>> somehow Xtext's downstream ecosystem needs to be leveraged to sponsor
>>>> these activities, and therein lies a major point of failure.
>>>>
>>>> > What makes me frustrated:
>>>> >
>>>> > I have the feeling that i spend 95% of my buget to accommodate for
>>>> > upstream infrastructure changes so that there is basically no time
>>>> > left for bugfixes or features. The 3 month simrel also adds time
>>>> > pressure to that "paying attention" if you take it serious.
>>>> Yes, welcome to my world.  It's almost impossible to find time to work
>>>> on new things in my own technologies.
>>>> >
>>>> > The trigger(s):
>>>> > - https://bugs.eclipse.org/bugs/show_bug.cgi?id=568936 with a
>>>> cleanup
>>>> > process in orbit we have to deal with stuff disappearing from orbit.
>>>> > it is clear that this is a debt in orbit and i am ok with spending a
>>>> > 2/3 month worth of budget to accomodate for it.
>>>> > -
>>>> https://www.eclipse.org/lists/cross-project-issues-dev/msg19066.html
>>>> > / https://bugs.eclipse.org/bugs/show_bug.cgi?id=579574
>>>> >
>>>> > the 2nd one is the defacto abolishment of orbit.
>>>> Yes, this doesn't feel like a community decision, does it?  And in the
>>>> end, Orbit can't be abolished because not all things are available as
>>>> OSGi bundles in Orbit.
>>>> >
>>>> > So if Xtext uses ASM and Platform/JDT uses ASM and they should work
>>>> > together we need to uses the same ASM.
>>>>
>>>> The topic here:
>>>>
>>>> https://github.com/eclipse-pde/eclipse.pde.ui/issues/11
>>>>
>>>> And here the issue is perhaps also the renaming of the bundle to use
>>>> the
>>>> direct Maven name.  Does PDE's decision also make the decision for
>>>> JDT?
>>>> I don't know...
>>>>
>>>> > What does this mean for Xtext
>>>> >
>>>> > - We need to be able to support older platforms and java versions
>>>> with
>>>> > newer tycho versions + the work for Jenkins file to make this
>>>> possible
>>>> > (8 different builds)
>>>> > - We need to find out how to use the p2 maven feature from oomph (at
>>>> a
>>>> > first glance i could not find an option) or replace oomph with target
>>>> > files.
>>>>
>>>> I hope someone will step forward to sponsor this feature; it looks some
>>>> promising that this will be the case...
>>>>
>>>> I think the issue here is mostly that you need bundles in a p2 repo,
>>>> right?
>>>>
>>>> > - Alternatively we can stop supporting more than 1 platform or Java
>>>> > versions.
>>>> >
>>>> That would provide less value to your consumers and make new versions
>>>> less consumable and less relevant.   I very often see very old Platform
>>>> versions being used because with all the great changes and evolutions
>>>> in
>>>> the Platform, also come regressions and breaking changes that hinder
>>>> adoption and potentially lead to dropping adoption altogether...
>>>> > I cannot tell how much work this will be because i am neither a tycho
>>>> > nor a Jenkinsfile nor an Oomph expert. I also have no pointers where
>>>> > to copy & paste from to make my life easier with that.
>>>> Perhaps there are some things I can do to help?
>>>> >
>>>> > So i dont know if i can make this possible with the budget i have
>>>> > (even less i can imagine projects with much less budget can do)
>>>> >
>>>> > So what can i do:
>>>> > - support only latest greated and pass the ball downstream
>>>> What specifically is leading to this inability to support older
>>>> versions
>>>> in this specific case?  What can be done to mitigate that?
>>>> > - pull Xtext out of simrel and with it all of its dependencies (that
>>>> > would also include lsp4e for example)
>>>> No please.
>>>> > - stay in simrel but stop "paying attention" and if stuff works
>>>> together
>>>> >
>>>> Would Xtext still work on the latest if you did nothing?
>>>> > Alternatives:
>>>> > - why no keep orbit as place for 3rd party dependencies. I dont know
>>>> > what would need to be done to  make use of the p2 maven feature there
>>>> > instead in the projects on their own.
>>>>
>>>> Perhaps a middle ground would be to build/provide an Orbit-like repo
>>>> that pulls things from Maven and publishes them in the p2 repository.
>>>> Apparently this is so easy to do, each project should do it itself.
>>>> But
>>>> if it's so easy to do, "we" could also do that in a central place as a
>>>> service to SimRel and to the broader community.  If the Platform
>>>> doesn't
>>>> want to do that, help with that, nor consume from that, that doesn't
>>>> prevent providing the same 3rd party Maven bundles being
>>>> provided/consumed/used by the Platform...
>>>>
>>>
>>> As someone who did a fair part of that work on Platform behalf, down to
>>> maintaining Orbit bundles, even keeping Orbit and EBR releng working at
>>> times and etc. - to me Orbit just proved to be extra step for no benefit
>>> with very few people stepping up to share the burden so the choice had to
>>> be made - do the work directly and skip the time consuming extra steps or
>>> let Platform suffer (we are already far behind on many dependencies which
>>> has the issue that we ship deps with CVEs(e.g. commons-fileupload), no
>>> support from upstream and etc.). Now that I've seen the faster and easier
>>> path I don't see much point in doing this extra work as once this happens I
>>> would be left to deal with it on my own again as history has shown to me.
>>>
>>
>> Let me add to the reasons why Orbit/EBR is no longer a go from my side.
>> Last week I tried working on adding Lucene 9 to it but local build failed
>> with:
>> [INFO] --- ebr-maven-plugin:1.4.0-SNAPSHOT:bundle (default-bundle) @
>> org.antlr.runtime ---
>> [INFO] Gathering dependencies
>> [INFO] Configured Artifact: org.antlr:antlr-runtime:3.5.2:jar
>> [INFO] Unpacking
>> /home/akurtakov/.m2/repository/org/antlr/antlr-runtime/3.5.2/antlr-runtime-3.5.2.jar
>> to
>> /home/akurtakov/git/orbit-recipes/antlr/org.antlr.runtime_3.5.2/target/dependency-bin
>> with includes "**/*" and excludes "META-INF/maven/**/*.*"
>> [INFO] Merging collected dependencies
>> [INFO] Using 'UTF-8' encoding to copy filtered resources.
>> [INFO] Copying 118 resources
>> [INFO] Generating OSGi MANIFEST.MF
>> [ERROR] An internal error occurred
>> java.util.ConcurrentModificationException
>>     at java.util.TreeMap.callMappingFunctionWithCheck (TreeMap.java:750)
>>     at java.util.TreeMap.computeIfAbsent (TreeMap.java:604)
>>     at aQute.bnd.osgi.Jar.putResource (Jar.java:288)
>>     at aQute.bnd.osgi.Jar$1.visitFile (Jar.java:202)
>>     at aQute.bnd.osgi.Jar$1.visitFile (Jar.java:177)
>>     at java.nio.file.Files.walkFileTree (Files.java:2811)
>>     at aQute.bnd.osgi.Jar.buildFromDirectory (Jar.java:176)
>>     at aQute.bnd.osgi.Jar.<init> (Jar.java:119)
>>     at aQute.bnd.osgi.Jar.<init> (Jar.java:172)
>>     at org.apache.felix.bundleplugin.BundlePlugin.getOSGiBuilder
>> (BundlePlugin.java:604)
>>     at org.apache.felix.bundleplugin.ManifestPlugin.getAnalyzer
>> (ManifestPlugin.java:285)
>>     at org.apache.felix.bundleplugin.ManifestPlugin.execute
>> (ManifestPlugin.java:111)
>>     at org.eclipse.ebr.maven.BundleMojo.buildBundle (BundleMojo.java:358)
>>     at org.eclipse.ebr.maven.BundleMojo.execute (BundleMojo.java:462)
>>     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo
>> (DefaultBuildPluginManager.java:137)
>>     at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute
>> (MojoExecutor.java:301)
>>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute
>> (MojoExecutor.java:211)
>>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute
>> (MojoExecutor.java:165)
>>     at org.apache.maven.lifecycle.internal.MojoExecutor.execute
>> (MojoExecutor.java:157)
>>     at
>> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
>> (LifecycleModuleBuilder.java:121)
>>     at
>> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject
>> (LifecycleModuleBuilder.java:81)
>>     at
>> org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build
>> (SingleThreadedBuilder.java:56)
>>     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute
>> (LifecycleStarter.java:127)
>>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
>>     at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
>>     at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
>>     at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
>>     at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
>>     at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
>>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native
>> Method)
>>     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke
>> (NativeMethodAccessorImpl.java:77)
>>     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke
>> (DelegatingMethodAccessorImpl.java:43)
>>     at java.lang.reflect.Method.invoke (Method.java:568)
>>     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced
>> (Launcher.java:282)
>>     at org.codehaus.plexus.classworlds.launcher.Launcher.launch
>> (Launcher.java:225)
>>     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode
>> (Launcher.java:406)
>>     at org.codehaus.plexus.classworlds.launcher.Launcher.main
>> (Launcher.java:347)
>>
>> So if I want to use Orbit am I on my own to make EBR work with Java
>> 17/18? Or should I be the one flipping configs/paths/etc. for every
>> different task I have to do? That way it's plain impossible to do any work.
>> And yes, I do make sure that Eclipse works just fine on latest JVM so it's
>> my top priority so can't afford to stick to old JVM as default.
>>  If one wants Orbit to still be considered seriously someone should step
>> up and make it actually work for all of us (if possible at all with fast
>> moving Java versions!) and I can assure you that I tried (
>> https://github.com/eclipse/ebr/commits?author=akurtakov)  but there are
>> just that many hours in the day and this happened to be lost cause from the
>> interest I've seem from the community.
>>
>>
>>>
>>>
>>>>
>>>> Would that help at least partially address your current concerns?   Or
>>>> is there something that's broken even with that approach?
>>>>
>>>> > Thanks and regards
>>>> > Christian
>>>> >
>>>> _______________________________________________
>>>> cross-project-issues-dev mailing list
>>>> cross-project-issues-dev@eclipse.org
>>>> To unsubscribe from this list, visit
>>>> https://www.eclipse.org/mailman/listinfo/cross-project-issues-dev
>>>>
>>>
>>>
>>> --
>>> Aleksandar Kurtakov
>>> Red Hat Eclipse Team
>>>
>>
>>
>> --
>> Aleksandar Kurtakov
>> Red Hat Eclipse Team
>> _______________________________________________
>> cross-project-issues-dev mailing list
>> cross-project-issues-dev@eclipse.org
>> To unsubscribe from this list, visit
>> https://www.eclipse.org/mailman/listinfo/cross-project-issues-dev
>>
> _______________________________________________
> cross-project-issues-dev mailing list
> cross-project-issues-dev@eclipse.org
> To unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/cross-project-issues-dev
>


-- 
Aleksandar Kurtakov
Red Hat Eclipse Team
_______________________________________________
cross-project-issues-dev mailing list
cross-project-issues-dev@eclipse.org
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/cross-project-issues-dev

Reply via email to