eclipse-tycho / tycho

Tycho project repository (tycho)
https://tycho.eclipseprojects.io
Eclipse Public License 2.0
166 stars 189 forks source link

IntelliJ IDEA support #1054

Open lppedd opened 2 years ago

lppedd commented 2 years ago

Hi all! I'm currently trying to understand why Tycho isn't working in IntelliJ IDEA, testing with https://www.eclipse.org/mat/. (see also issue https://youtrack.jetbrains.com/issue/IDEA-186628)

I have managed to debug the IDEA Maven implementation, and this is the call stack just before a dependency is not found.

image

At this point DependencyHelper#hasASolution returns false.

image

Tycho gets called as a Maven extension, via AbstractMavenLifecycleParticipant#afterProjectsRead

image

Question is, how should it be called? Which projects should be passed in the session? One at a time? All? I'm a bit ignorant on how Tycho works so I'm sorry if my question seems a bit stupid.

laeubi commented 2 years ago

Question is, how should it be called? Which projects should be passed in the session? One at a time? All?

It heavily depends on you project setup, but given you have a multi-module project with a common parent/aggregator it should be called on these projects.

If you call it on a single one it must work to call mvn at exactly this folder stand alone. If not you can again use mvn -pl -am but you need the tycho-build extension then!

lppedd commented 2 years ago

Hi @laeubi, thanks for the quick answer. So, I think we need to find an easier Tycho project to test with IDEA, MAT seems too complicated. Would https://github.com/eclipse/tycho/tree/master/demo/itp01 be ok?

But anyway

should be called on these projects

Are you referring to all the non-parent projects?

tycho-build extension

I think this should not be required so I'll leave this solution aside for now.

laeubi commented 2 years ago

Beside the demos, there are also a lot of integration test that could be used as an executable example.

I think this should not be required so I'll leave this solution aside for now.

Then IntelliJ must be "smart enough" to compute the set of required projects itself :-)

Are you referring to all the non-parent projects?

In a very simplified fashion Tycho works this way:

  1. read all reactor projects
  2. resolve the target platform(s)
  3. resolve any dependencies between reactor projects and target platform content (probably taking pom specified stuff into account)
  4. Injecting the dependencies into the maven model
  5. Then the "normal" maven build takes over

So if you just run it on one project A, there might be the problem that you need also project B+C but Tycho (or more specifically maven) won't know about them and the build fails.

So either this one project must be self-contained (most probably not the case for any non trivial example), you need to know the required projects in advance (hard to guess for any non trivial example), or you use the tycho-build extension with -pl -am to compute the closure for your single project, see for this https://github.com/eclipse/tycho/tree/master/tycho-its/projects/reactor.makeBehaviour as an example and its corresponding test suite https://github.com/eclipse/tycho/blob/master/tycho-its/src/test/java/org/eclipse/tycho/test/reactor/makeBehaviour/MavenReactorMakeOptionsTest.java

As an alternative one can always build "all" projects (where all of course could be a subset of all possible maven projects in a given code repository).

Just another note: Its actually that ItelliJ do not support PDE than it not support Tycho as Tychos primary intend is to build PDE Artifacts with Maven so Eclipise is actually not using Tycho to build such a project!

lppedd commented 2 years ago

Ok I'll try to wrap my head around what you wrote, thanks 😄 Regarding PDE, IntellIJ supports PDE using the eclipse-pde-partial plugin, but Tycho support is needed to support automatic dependency resolution.

laeubi commented 2 years ago

Regarding PDE, IntellIJ supports PDE using the eclipse-pde-partial plugin, but Tycho support is needed to support automatic dependency resolution.

Automatic dependency resolution is what PDE does, so no Tycho there either (this is performed by P2).

Just let me know when anything is unclear.

lppedd commented 2 years ago

@laeubi so what you're saying is that I could run Maven via command line and then use the standard PDE support in IntelliJ?

laeubi commented 2 years ago

I don't know much about IntelliJ PDE support to guess if that works, but what I wanted to say is that any Plugin that claims to support PDE, should also support automatic dependency resolution based on a target platform and the manifest data. Otherwise it does not really supports PDE, but probably can read/write some of its meta-data :-)

lppedd commented 2 years ago

@laeubi oh ok! I mean, the plugin I linked supports reading the target configuration file and the manifest, and is capable of generating the correct IntelliJ module structure (I have used it for a big RCP application).

Being that Tycho is basically an extension to Maven, IntelliJ tries to setup the project using Maven, but fails.

laeubi commented 2 years ago

Alright, maybe then one should instruct InteliJ to not try using it as a maven project? I don't know how InteliJ setup the maven world, at laest you can do some testing yourself by issuing mvn dependency:tree in some folders to see whats going on at the maven/tycho level.

laeubi commented 2 years ago

By the way, currently there is a special property passed by m2e to a maven build that is read by Tycho to skip the extension in that case, is there also such property for intelij?

https://github.com/eclipse/tycho/blob/7b0ea29597e024fc71d850e82daa65d1e0b15801/tycho-core/src/main/java/org/eclipse/tycho/core/maven/TychoMavenLifecycleParticipant.java#L269-L275

Please don't use tycho.mode=maven as it is legacy and sceduled for removal:

lppedd commented 2 years ago

I'm doing some progress with debugging the demo project. That project points to https://download.eclipse.org/releases/2022-06/

<repositories>
 <repository>
   <id>eclipse</id>
   <layout>p2</layout>
   <url>https://download.eclipse.org/releases/2022-06</url>
 </repository>
</repositories>

And the P2 resolver uses some suffixes to look into the repository

image

However it cannot resolve it. Any idea what I'm missing?

laeubi commented 2 years ago

However it cannot resolve it. Any idea what I'm missing?

What is the exact error? Can you run the project on the command-line with mvn clean install ?

lppedd commented 2 years ago

What is the exact error?

image

mvn clean install

Yes it works 👀

[INFO] Fetching p2.index from https://download.eclipse.org/releases/2022-06/ (122B)
[INFO] Adding repository https://download.eclipse.org/releases/2022-06
[INFO] Fetching compositeContent.jar from https://download.eclipse.org/releases/2022-06/ (481B)
[INFO] Fetching compositeContent.xml from https://download.eclipse.org/technology/epp/packages/2022-06/ (442B)
[INFO] Fetching content.jar from https://download.eclipse.org/technology/epp/packages/2022-06/202206091200/ (87.05kB)
[INFO] Fetching p2.index from https://download.eclipse.org/releases/2022-06/202206151000/ (140B)
[INFO] Fetching content.xml.xz from https://download.eclipse.org/releases/2022-06/202206151000/ (792.86kB)
[INFO] Resolving dependencies of MavenProject: tycho.demo.itp01:tycho.demo.itp01:1.0.0-SNAPSHOT @ C:\Users\edoardo.luppi\Downloads\tycho-master\demo\itp01\tycho.demo.itp01\pom.xml
laeubi commented 2 years ago

Have you tried letting the code go on? Repositories are sadly queried on "best guess" sometimes and some failures are allowed, do you see the info print outs also in IntelliJ?

lppedd commented 2 years ago

It seems like there is no MetadataRepositoryFactory that actually checks remote URIs. All the ones I've seen check local JARs.

java.lang.NoClassDefFoundError: Could not initialize class org.apache.hc.client5.http.psl.PublicSuffixMatcherLoader

laeubi commented 2 years ago

I don't know how the InteliJ maven server works, but this seems something is not loaded/isolated as it should. Tycho start an internal OSGi Framework currently so if intelliJ reuses classloaders and/or mess up classpath you are maybe out of luck then.... but you can use mvnDebug to debug the commandline call and see what is different there compared to InteliJ.

lppedd commented 2 years ago

Got to the original error:

loader constraint violation: when resolving method 'org.slf4j.ILoggerFactory org.slf4j.impl.StaticLoggerBinder.getLoggerFactory()' the class loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @58d82974 of the current class, org/slf4j/LoggerFactory, and the class loader 'app' for the method's defining class, org/slf4j/impl/StaticLoggerBinder, have different Class objects for the type org/slf4j/ILoggerFactory used in the signature (org.slf4j.LoggerFactory is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @58d82974, parent loader org.codehaus.plexus.classworlds.realm.ClassRealm @4f554509; org.slf4j.impl.StaticLoggerBinder is in unnamed module of loader 'app')

It seems there are two conflicting versions of SLF4J. Sad 😢

laeubi commented 2 years ago

This might indicate the IntelliJ do not properly isolate class realms for extensions here.

lppedd commented 2 years ago

@laeubi yeah, probably. Do you think workarounds exists for this issue? Like for example manually loading the same class files in the EquinoxClassLoader classloader.

laeubi commented 2 years ago

Not really, maybe IntelliJ is missing the core-exports are missing here but that's hard to guess without deeper knowledge of that code. But I think you now have a good test-case for the IntelliJ people to investigate further on this issue.

bric3 commented 2 years ago

This might indicate the IntelliJ do not properly isolate class realms for extensions here.

To be fair, IJ isn't doing anything improperly, it's not OSGi based. So different trade-offs. As far as I know they IJ is based on pico container in regard of plugins.

laeubi commented 2 years ago

@bric3 that has nothing to do with OSGi or PicoContainer, the Tycho extension is starting an embedded OSGi framework (Maven itself do not use OSGi in any way...) and exports some stuff from its class realm into this framework, so if the classrealm is not setup property such issues can arise.

lppedd commented 2 years ago

@bric3 so there is a little difference here regarding how IntelliJ spawns the Maven server. It's not really a plugin, but it seems a new instance of the JVM is created.

https://github.com/JetBrains/intellij-community/blob/43bae47c6d4b65ded6969111034c172324dde329/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenServerManager.java#L474-L484

Also I see some code related to realms. https://github.com/JetBrains/intellij-community/blob/1e1f83264bbb4cb7ba3ed08fe0915aa990231611/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3XServerEmbedder.java#L164

lppedd commented 2 years ago

image

Then, a DefaultPlexusContainer spawned with that AppClassLoader is used to read lifecycle partecipants.

image

lppedd commented 2 years ago

Yep, confirmed.

image

bric3 commented 2 years ago

@bric3 that has nothing to do with OSGi or PicoContainer, the Tycho extension is starting an embedded OSGi framework (Maven itself do not use OSGi in any way...) and exports some stuff from its class realm into this framework, so if the classrealm is not setup property such issues can arise.

Ah ok i understand your point, thanks for the clarification.

lppedd commented 2 years ago

I'm trying out again IDEA.
I'm receiving exceptions like this one:

java.lang.RuntimeException: Failed to load p2 repository with ID 'dtp' from location http://my-url:8081/nexus/content/repositories/zeus/
    at org.eclipse.tycho.p2.target.TargetPlatformFactoryImpl.loadMetadataRepository(TargetPlatformFactoryImpl.java:297)
    at org.eclipse.tycho.p2.target.TargetPlatformFactoryImpl.gatherExternalInstallableUnits(TargetPlatformFactoryImpl.java:267)
    at org.eclipse.tycho.p2.target.TargetPlatformFactoryImpl.createTargetPlatform(TargetPlatformFactoryImpl.java:169)
    at org.eclipse.tycho.p2.target.TargetPlatformFactoryImpl.createTargetPlatform(TargetPlatformFactoryImpl.java:134)
    at org.eclipse.tycho.p2.target.TargetPlatformFactoryImpl.createTargetPlatform(TargetPlatformFactoryImpl.java:1)
    at org.eclipse.tycho.p2.manager.ReactorRepositoryManagerImpl.computePreliminaryTargetPlatform(ReactorRepositoryManagerImpl.java:90)
    at org.eclipse.tycho.p2.resolver.P2DependencyResolver.computePreliminaryTargetPlatform(P2DependencyResolver.java:224)
    at org.eclipse.tycho.core.resolver.DefaultTychoResolver.resolveProject(DefaultTychoResolver.java:125)
    at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.lambda$resolveProjects$0(TychoMavenLifecycleParticipant.java:157)
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
    at java.base/java.util.stream.WhileOps$1$1.accept(WhileOps.java:99)
    at java.base/java.util.Collections$2.tryAdvance(Collections.java:4747)
    at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127)
    at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502)
    at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488)
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
    at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
    at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
    at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
    at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497)
    at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.resolveProjects(TychoMavenLifecycleParticipant.java:188)
    at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead(TychoMavenLifecycleParticipant.java:114)
    at org.jetbrains.idea.maven.server.Maven3XServerEmbedder.loadExtensions(Maven3XServerEmbedder.java:1026)
    at org.jetbrains.idea.maven.server.Maven3XServerEmbedder.lambda$doResolveProject$1(Maven3XServerEmbedder.java:844)
    at org.jetbrains.idea.maven.server.Maven3ServerEmbedder$1.run(Maven3ServerEmbedder.java:367)
    at org.jetbrains.idea.maven.server.Maven3ServerEmbedder.executeWithSessionScope(Maven3ServerEmbedder.java:442)
    at org.jetbrains.idea.maven.server.Maven3ServerEmbedder.executeWithMavenSession(Maven3ServerEmbedder.java:375)
    at org.jetbrains.idea.maven.server.Maven3ServerEmbedder.executeWithMavenSession(Maven3ServerEmbedder.java:364)
    at org.jetbrains.idea.maven.server.Maven3XServerEmbedder.doResolveProject(Maven3XServerEmbedder.java:802)
    at org.jetbrains.idea.maven.server.Maven3XServerEmbedder.resolveProject(Maven3XServerEmbedder.java:767)
    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 java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359)
    at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
    at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
    at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562)
    at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796)
    at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.eclipse.equinox.p2.core.ProvisionException: Error while reading from repository: http://my-url:8081/nexus/content/repositories/zeus/site.xml.
    at org.eclipse.equinox.internal.p2.updatesite.UpdateSite.loadActualSiteFile(UpdateSite.java:255)
    at org.eclipse.equinox.internal.p2.updatesite.UpdateSite.load(UpdateSite.java:155)
    at org.eclipse.equinox.internal.p2.updatesite.metadata.UpdateSiteMetadataRepositoryFactory.initializeRepository(UpdateSiteMetadataRepositoryFactory.java:108)
    at org.eclipse.equinox.internal.p2.updatesite.metadata.UpdateSiteMetadataRepositoryFactory.load(UpdateSiteMetadataRepositoryFactory.java:62)
    at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.factoryLoad(MetadataRepositoryManager.java:63)
    at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:787)
    at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:685)
    at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:110)
    at org.eclipse.tycho.p2.remote.RemoteMetadataRepositoryManager.loadRepository(RemoteMetadataRepositoryManager.java:63)
    at org.eclipse.tycho.p2.remote.RemoteMetadataRepositoryManager.loadRepository(RemoteMetadataRepositoryManager.java:55)
    at org.eclipse.tycho.p2.target.TargetPlatformFactoryImpl.loadMetadataRepository(TargetPlatformFactoryImpl.java:293)

The repository has been defined under repositories

<repository>
    <id>dtp</id>
    <url>http://my-url:8081/nexus/content/repositories/zeus/</url>
    <layout>p2</layout>
</repository>

Why is Equinox looking for a site.xml? Obviously I don't have a site.xml in that Nexus repository.

laeubi commented 2 years ago

Nexus has a known bug with producing wrong P2 Metadata, so you probably ant to check with an official repository first.

lppedd commented 2 years ago

@laeubi in the end it was still related to

java.lang.NoClassDefFoundError: Could not initialize class org.apache.hc.client5.http.psl.PublicSuffixMatcherLoader

What I'm doing now is use offline p2 repositories only, so no HTTP client is used.

laeubi commented 2 years ago

Then something seems wrong with how intelij setup the classpath for the plugin.

lppedd commented 2 years ago

@laeubi yep! We had already discussed about this maybe a month ago. This time I wasn't immediately able to capture the internal Equinox classloader exception, so I thought it started working.

howlger commented 1 year ago

Ok I'll try to wrap my head around what you wrote, thanks 😄 Regarding PDE, IntellIJ supports PDE using the eclipse-pde-partial plugin, but Tycho support is needed to support automatic dependency resolution.

The so-called "Eclipse PDE Partial IDEA Plugin" seems to be not related to Eclipse PDE at all, but to be just a fake not based on Eclipse PDE, missing basic Eclipse PDE functionality, violating both trademarks, Eclipse® and PDE™. I've seen a couple of Stack Overflow questions showing that people have wasted a lot of time with this. You as an author of the so-called "Eclipse PDE Partial IDEA Plugin" should know that.

laeubi commented 1 year ago

@howlger I can't tell anything about that plugin becuase I don't use it but @lppedd don't seem to be the author but a contributor to the project (mostly: formatting if I get ti right):

https://github.com/JaneWardSandy/eclipse-pde-partial-idea/commits?author=lppedd

lppedd commented 1 year ago

@howlger I have no idea how the plugins works internally, as I'm not the author. I know it reproduces some of its functionalities, e.g. the Target Platform, and provides inspections to warn about wrong usages of packages.

lppedd commented 1 year ago

I've seen a couple of Stack Overflow questions showing that people have wasted a lot of time with this

This happens if you don't know the scope of that plugin. It doesn't try to reproduce PDE in its entirety, it does try to allow dependency resolution in the context of IntelliJ IDEA.

I think this is out of scope for this issue tho.

howlger commented 1 year ago

To be clear, @lppedd is not a committer and therefore not the author (not responsible for the naming), but a contributor and therefore an author with some knowledge how it works.

I doubt that your claim that "IntelliJ supports PDE" is true. It looks to me like that the IntelliJ plugin you mentioned is not a partial Eclipse PDE, but something that is 0% Eclipse PDE just trying to fake some Eclipse PDE features. If so, that would be unfair, both to the users who are being fooled by the name wasting their time and to the Eclipse PDE project.

It's unclear why you reported this issue to Tycho. How can the problem that IntelliJ IDEA does not support Maven plugins like Tycho be solved by Tycho?

lppedd commented 1 year ago

@howlger

It's unclear why you reported this issue to Tycho

This was meant is a way to track progress, plus as a way to get help from @laeubi if possible. When a Tycho user searches "tycho + intellij" this is probably what comes up.

We can convert this to a discussion if it makes it not a problem anymore for you. If you're worried about the name of the plugin, I can only say contact the author as I have zero power on that, I literally only applied EditorConfig to the project.

lppedd commented 1 year ago

And a personal note, I successfully used the plugin to develop a PDE-based RCP application. As I was saying earlier, it does not offer all the functionality, but it lets you setup the workspace in IJ at least. The name is not ok? Let's open an issue on the plugin page and ask for it to be changed, it takes 30 minutes to do it probably.

lppedd commented 1 year ago

fake some Eclipse PDE features

Well that's obvious I'd say.

If so, that would be unfair, both to the users who are being fooled by the name wasting their time and to the Eclipse PDE project

To be fair I'd only thank people trying to (fake) support PDE on other IDEs. I'll repeat myself: if you don't like the name, ask for it to be changed, but ask that to whom has the power to do it.

On my side I can't do anything more. I patched IJ to support Tycho, I think my work is done

laeubi commented 1 year ago

I patched IJ to support Tycho, I think my work is done

Would you mind adding a new section to https://github.com/eclipse-tycho/tycho/wiki that explains how Tycho can be used with InteliJ?

lppedd commented 1 year ago

explains how Tycho can be used with InteliJ

I can do it, but I think it's still not the time. For reference, to get Tycho on IJ a "personal" Community build is necessary as of now. See https://github.com/JetBrains/intellij-community/pull/2127

  1. clone IntelliJ Community
  2. cherry pick my PR's commits on your own branch
  3. build IntelliJ from that branch
  4. test it out. Slight code adjustments may be required depending on the use-case (e.g. resolving dependencies for an additional packaging type)

When I'll have more free time I'll implement what's described in the PR, and maybe the PR will be mergeable.

howlger commented 1 year ago

@lppedd I didn't say I dislike the name, and I didn't say I'm against supporting development of Eclipse plugins in other IDEs. Do not make conclusions from something I didn't say. Please discuss this with others. I'm not okay with people using a borrowed name and fooling others into wasting their time. I wish people would value the work of others and trademarks were not even needed. I know the plugin you mentioned only from Stack Overflow questions showing conceptual problems of this plugin and some reasons for dogfooding.

bric3 commented 1 year ago

I didn't say I dislike the name, and I didn't say I'm against supporting development of Eclipse plugins in other IDEs. Do not make conclusions from something I didn't say

The way it was phrased in the earlier comment led me to the same conclusion as @lppedd, thanks for the clarification.

I'm not okay with people using a borrowed name and fooling others into wasting their time.

I don't see the problem in that, I discovered this problem because it has exactly the key words I was searching : "Eclipse" "PDE". Also no one else was doing a similar work to begin with, i.e. to enable the development of Eclipse based applications or plugin using IntelliJ IDEA, and clearly I'm thanking a lot the main author of this plugin for this work he did mostly alone. Regarding the questions on Stack Overflow, every product well documented or not at all have questions on SO. Why not contributing back to this plugin to address the problems you've identified.

lppedd commented 1 year ago

@howlger well you came in pretty aggressively with trademark violation allegations towards me, just because I mentioned a plugin you found to have issues.

I take trademark seriously like you and if there is a problem on that level it should be solved. I would just like to respond to

I'm not okay with people using a borrowed name and fooling others into wasting their time

How do people lookup PDE support in IntelliJ? Searching "Eclipse PDE IntelliJ". Literally zero docs on the Eclipse site pointing to a solution or just saying "we don't do that", only 10-15 years old blog posts. You would be scared to know how much time I wasted trying to setup a working workspace on something that isn't Eclipse prior to knowing there was a plugin. And an open source, free, plugin that you can test out in 5 minutes is something that make people lose time... Yes, the docs of that plugin needs to explain better what "supporting PDE" means, I agree on that, but still, it's a single person experimenting, and in my opinion with success since I've used it.

jhonnen commented 1 year ago

Got to the original error:

loader constraint violation: when resolving method 'org.slf4j.ILoggerFactory org.slf4j.impl.StaticLoggerBinder.getLoggerFactory()' the class loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @58d82974 of the current class, org/slf4j/LoggerFactory, and the class loader 'app' for the method's defining class, org/slf4j/impl/StaticLoggerBinder, have different Class objects for the type org/slf4j/ILoggerFactory used in the signature (org.slf4j.LoggerFactory is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @58d82974, parent loader org.codehaus.plexus.classworlds.realm.ClassRealm @4f554509; org.slf4j.impl.StaticLoggerBinder is in unnamed module of loader 'app')

It seems there are two conflicting versions of SLF4J. Sad 😢

I get the same error when executing a tycho build via maven-embedder with the following app classpath and tycho 2.7.4:

'org.apache.maven:maven-embedder:3.8.6'
'org.apache.maven:maven-compat:3.8.6'
'org.slf4j:slf4j-simple:1.7.36'

The problematic slf4j dependency seems to be necessary, otherwise you don't get any output from maven.

howlger commented 1 year ago

@howlger well you came in pretty aggressively with trademark violation allegations towards me, just because I mentioned a plugin you found to have issues.

None of this is true. What exactly make you say this? Please read the Community Code of Conduct. I wrote "seems to be" as a reply to a claim of yours that I doubt. I don't even want to take my time to find out whether trademarks are actually being violated or not. If you take it as seriously as I do, then you don't care at all. ;)

bric3 commented 1 year ago

While there's a disagreement on the way things were written, let's stop discussing this matter here as it does not help the case at hand, i.e. having IntelliJ IDEA support of Tycho based maven projects. If this needs to be discussed I believe this should be followed in in the discussions.

jhonnen commented 1 year ago

Tycho 3.0.0-SNAPSHOT seems to work :+1:, maybe because of this? https://github.com/eclipse-tycho/tycho/blob/fe99a12958a7ab5fb8092b906ddc72f20b0ce365/sisu-osgi/sisu-osgi-connect/src/main/java/org/eclipse/sisu/osgi/connect/PlexusFrameworkConnectServiceFactory.java#L122-L123

lppedd commented 1 year ago

Just to align the Tycho guys, version 4.0.0 doesn't work anymore with IDEA, at least the SNAPSHOTs.

P2ResolverFactoryImpl: seems like an old version of the service is injected.
Here it's trying to invoke getService(Class), but we only have getService(String).

image

Did something change in the handling of Equinox dependencies?

lppedd commented 1 year ago

For completeness, this is the errors I get from the debug log.

[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] org.eclipse.tycho.core.shared

[ERROR] Could not resolve module: org.eclipse.tycho.core.shared [4]
  Unresolved requirement: Require-Bundle: org.eclipse.core.runtime; bundle-version="3.26.0"
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] FrameworkEvent ERROR

[ERROR] Could not resolve module: org.eclipse.tycho.core.shared [4]
  Unresolved requirement: Require-Bundle: org.eclipse.core.runtime; bundle-version="3.26.0"
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] org.eclipse.tycho.embedder-api

[ERROR] Could not resolve module: org.eclipse.tycho.embedder-api [7]
  Unresolved requirement: Import-Package: org.apache.maven.execution
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] FrameworkEvent ERROR

[ERROR] Could not resolve module: org.eclipse.tycho.embedder-api [7]
  Unresolved requirement: Import-Package: org.apache.maven.execution
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] org.eclipse.equinox.p2.updatesite

[ERROR] Could not resolve module: org.eclipse.equinox.p2.updatesite [29]
  Unresolved requirement: Import-Package: org.eclipse.equinox.p2.publisher.eclipse
    -> Export-Package: org.eclipse.equinox.p2.publisher.eclipse; bundle-symbolic-name="org.eclipse.equinox.p2.publisher.eclipse"; bundle-version="1.4.100.v20220420-1427"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.directorywatcher,  org.eclipse.equinox.p2.extensionlocation,  org.eclipse.equinox.p2.touchpoint.eclipse,  org.eclipse.equinox.p2.updatesite,  org.eclipse.equinox.p2.repository.tools"
       org.eclipse.equinox.p2.publisher.eclipse [30]
         Unresolved requirement: Import-Package: org.eclipse.equinox.internal.frameworkadmin.equinox
           -> Export-Package: org.eclipse.equinox.internal.frameworkadmin.equinox; bundle-symbolic-name="org.eclipse.equinox.frameworkadmin.equinox"; bundle-version="1.2.200.v20220315-2155"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.simpleconfigurator.manipulator"
              org.eclipse.equinox.frameworkadmin.equinox [31]
                Unresolved requirement: Require-Bundle: org.eclipse.equinox.common; bundle-version="3.16.0"
         Unresolved requirement: Import-Package: org.eclipse.equinox.simpleconfigurator.manipulator; version="[2.0.0,3.0.0)"
           -> Export-Package: org.eclipse.equinox.simpleconfigurator.manipulator; bundle-symbolic-name="org.eclipse.equinox.simpleconfigurator.manipulator"; bundle-version="2.2.0.v20210315-2228"; version="2.0.0"
              org.eclipse.equinox.simpleconfigurator.manipulator [32]
                Unresolved requirement: Import-Package: org.eclipse.equinox.internal.frameworkadmin.equinox
                  -> Export-Package: org.eclipse.equinox.internal.frameworkadmin.equinox; bundle-symbolic-name="org.eclipse.equinox.frameworkadmin.equinox"; bundle-version="1.2.200.v20220315-2155"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.simpleconfigurator.manipulator"
  Unresolved requirement: Import-Package: org.eclipse.equinox.internal.p2.publisher.eclipse
    -> Export-Package: org.eclipse.equinox.internal.p2.publisher.eclipse; bundle-symbolic-name="org.eclipse.equinox.p2.publisher.eclipse"; bundle-version="1.4.100.v20220420-1427"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.directorywatcher,  org.eclipse.equinox.p2.extensionlocation,  org.eclipse.equinox.p2.repository.tools,  org.eclipse.equinox.p2.updatesite,  org.eclipse.pde.build"
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] FrameworkEvent ERROR

[ERROR] Could not resolve module: org.eclipse.equinox.p2.updatesite [29]
  Unresolved requirement: Import-Package: org.eclipse.equinox.p2.publisher.eclipse
    -> Export-Package: org.eclipse.equinox.p2.publisher.eclipse; bundle-symbolic-name="org.eclipse.equinox.p2.publisher.eclipse"; bundle-version="1.4.100.v20220420-1427"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.directorywatcher,  org.eclipse.equinox.p2.extensionlocation,  org.eclipse.equinox.p2.touchpoint.eclipse,  org.eclipse.equinox.p2.updatesite,  org.eclipse.equinox.p2.repository.tools"
       org.eclipse.equinox.p2.publisher.eclipse [30]
         Unresolved requirement: Import-Package: org.eclipse.equinox.internal.frameworkadmin.equinox
           -> Export-Package: org.eclipse.equinox.internal.frameworkadmin.equinox; bundle-symbolic-name="org.eclipse.equinox.frameworkadmin.equinox"; bundle-version="1.2.200.v20220315-2155"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.simpleconfigurator.manipulator"
              org.eclipse.equinox.frameworkadmin.equinox [31]
                Unresolved requirement: Require-Bundle: org.eclipse.equinox.common; bundle-version="3.16.0"
         Unresolved requirement: Import-Package: org.eclipse.equinox.simpleconfigurator.manipulator; version="[2.0.0,3.0.0)"
           -> Export-Package: org.eclipse.equinox.simpleconfigurator.manipulator; bundle-symbolic-name="org.eclipse.equinox.simpleconfigurator.manipulator"; bundle-version="2.2.0.v20210315-2228"; version="2.0.0"
              org.eclipse.equinox.simpleconfigurator.manipulator [32]
                Unresolved requirement: Import-Package: org.eclipse.equinox.internal.frameworkadmin.equinox
                  -> Export-Package: org.eclipse.equinox.internal.frameworkadmin.equinox; bundle-symbolic-name="org.eclipse.equinox.frameworkadmin.equinox"; bundle-version="1.2.200.v20220315-2155"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.simpleconfigurator.manipulator"
  Unresolved requirement: Import-Package: org.eclipse.equinox.internal.p2.publisher.eclipse
    -> Export-Package: org.eclipse.equinox.internal.p2.publisher.eclipse; bundle-symbolic-name="org.eclipse.equinox.p2.publisher.eclipse"; bundle-version="1.4.100.v20220420-1427"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.directorywatcher,  org.eclipse.equinox.p2.extensionlocation,  org.eclipse.equinox.p2.repository.tools,  org.eclipse.equinox.p2.updatesite,  org.eclipse.pde.build"
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] org.eclipse.equinox.p2.publisher.eclipse

[ERROR] Could not resolve module: org.eclipse.equinox.p2.publisher.eclipse [30]
  Unresolved requirement: Import-Package: org.eclipse.equinox.internal.frameworkadmin.equinox
    -> Export-Package: org.eclipse.equinox.internal.frameworkadmin.equinox; bundle-symbolic-name="org.eclipse.equinox.frameworkadmin.equinox"; bundle-version="1.2.200.v20220315-2155"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.simpleconfigurator.manipulator"
       org.eclipse.equinox.frameworkadmin.equinox [31]
         Unresolved requirement: Require-Bundle: org.eclipse.equinox.common; bundle-version="3.16.0"
  Unresolved requirement: Import-Package: org.eclipse.equinox.simpleconfigurator.manipulator; version="[2.0.0,3.0.0)"
    -> Export-Package: org.eclipse.equinox.simpleconfigurator.manipulator; bundle-symbolic-name="org.eclipse.equinox.simpleconfigurator.manipulator"; bundle-version="2.2.0.v20210315-2228"; version="2.0.0"
       org.eclipse.equinox.simpleconfigurator.manipulator [32]
         Unresolved requirement: Import-Package: org.eclipse.equinox.internal.frameworkadmin.equinox
           -> Export-Package: org.eclipse.equinox.internal.frameworkadmin.equinox; bundle-symbolic-name="org.eclipse.equinox.frameworkadmin.equinox"; bundle-version="1.2.200.v20220315-2155"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.simpleconfigurator.manipulator"
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] FrameworkEvent ERROR

[ERROR] Could not resolve module: org.eclipse.equinox.p2.publisher.eclipse [30]
  Unresolved requirement: Import-Package: org.eclipse.equinox.internal.frameworkadmin.equinox
    -> Export-Package: org.eclipse.equinox.internal.frameworkadmin.equinox; bundle-symbolic-name="org.eclipse.equinox.frameworkadmin.equinox"; bundle-version="1.2.200.v20220315-2155"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.simpleconfigurator.manipulator"
       org.eclipse.equinox.frameworkadmin.equinox [31]
         Unresolved requirement: Require-Bundle: org.eclipse.equinox.common; bundle-version="3.16.0"
  Unresolved requirement: Import-Package: org.eclipse.equinox.simpleconfigurator.manipulator; version="[2.0.0,3.0.0)"
    -> Export-Package: org.eclipse.equinox.simpleconfigurator.manipulator; bundle-symbolic-name="org.eclipse.equinox.simpleconfigurator.manipulator"; bundle-version="2.2.0.v20210315-2228"; version="2.0.0"
       org.eclipse.equinox.simpleconfigurator.manipulator [32]
         Unresolved requirement: Import-Package: org.eclipse.equinox.internal.frameworkadmin.equinox
           -> Export-Package: org.eclipse.equinox.internal.frameworkadmin.equinox; bundle-symbolic-name="org.eclipse.equinox.frameworkadmin.equinox"; bundle-version="1.2.200.v20220315-2155"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.simpleconfigurator.manipulator"
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] org.eclipse.equinox.frameworkadmin.equinox

[ERROR] Could not resolve module: org.eclipse.equinox.frameworkadmin.equinox [31]
  Unresolved requirement: Require-Bundle: org.eclipse.equinox.common; bundle-version="3.16.0"
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] FrameworkEvent ERROR

[ERROR] Could not resolve module: org.eclipse.equinox.frameworkadmin.equinox [31]
  Unresolved requirement: Require-Bundle: org.eclipse.equinox.common; bundle-version="3.16.0"
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] org.eclipse.equinox.simpleconfigurator.manipulator

[ERROR] Could not resolve module: org.eclipse.equinox.simpleconfigurator.manipulator [32]
  Unresolved requirement: Import-Package: org.eclipse.equinox.internal.frameworkadmin.equinox
    -> Export-Package: org.eclipse.equinox.internal.frameworkadmin.equinox; bundle-symbolic-name="org.eclipse.equinox.frameworkadmin.equinox"; bundle-version="1.2.200.v20220315-2155"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.simpleconfigurator.manipulator"
       org.eclipse.equinox.frameworkadmin.equinox [31]
         Unresolved requirement: Require-Bundle: org.eclipse.equinox.common; bundle-version="3.16.0"
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] FrameworkEvent ERROR

[ERROR] Could not resolve module: org.eclipse.equinox.simpleconfigurator.manipulator [32]
  Unresolved requirement: Import-Package: org.eclipse.equinox.internal.frameworkadmin.equinox
    -> Export-Package: org.eclipse.equinox.internal.frameworkadmin.equinox; bundle-symbolic-name="org.eclipse.equinox.frameworkadmin.equinox"; bundle-version="1.2.200.v20220315-2155"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.simpleconfigurator.manipulator"
       org.eclipse.equinox.frameworkadmin.equinox [31]
         Unresolved requirement: Require-Bundle: org.eclipse.equinox.common; bundle-version="3.16.0"
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] FrameworkEvent ERROR

[ERROR] Could not resolve module: org.eclipse.equinox.p2.director.app [38]
  Unresolved requirement: Import-Package: org.eclipse.equinox.p2.core; version="[2.8.0,3.0.0)"
  Unresolved requirement: Import-Package: org.bouncycastle.openpgp
    -> Export-Package: org.bouncycastle.openpgp; bundle-symbolic-name="bcpg"; bundle-version="1.72.1"; version="1.72.1"; uses:="org.bouncycastle.asn1,org.bouncycastle.bcpg,org.bouncycastle.bcpg.attr,org.bouncycastle.bcpg.sig,org.bouncycastle.gpg,org.bouncycastle.openpgp.operator,org.bouncycastle.util"
       bcpg [58]
         Unresolved requirement: Import-Package: org.bouncycastle.asn1; version="1.72.1"
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] org.eclipse.equinox.p2.director.app

[ERROR] Could not resolve module: org.eclipse.equinox.p2.director.app [38]
  Unresolved requirement: Import-Package: org.eclipse.equinox.p2.core; version="[2.8.0,3.0.0)"
  Unresolved requirement: Import-Package: org.bouncycastle.openpgp
    -> Export-Package: org.bouncycastle.openpgp; bundle-symbolic-name="bcpg"; bundle-version="1.72.1"; version="1.72.1"; uses:="org.bouncycastle.asn1,org.bouncycastle.bcpg,org.bouncycastle.bcpg.attr,org.bouncycastle.bcpg.sig,org.bouncycastle.gpg,org.bouncycastle.openpgp.operator,org.bouncycastle.util"
       bcpg [58]
         Unresolved requirement: Import-Package: org.bouncycastle.asn1; version="1.72.1"
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] org.eclipse.equinox.p2.repository.tools

[ERROR] Could not resolve module: org.eclipse.equinox.p2.repository.tools [39]
  Unresolved requirement: Import-Package: org.eclipse.equinox.internal.p2.publisher.eclipse
    -> Export-Package: org.eclipse.equinox.internal.p2.publisher.eclipse; bundle-symbolic-name="org.eclipse.equinox.p2.publisher.eclipse"; bundle-version="1.4.100.v20220420-1427"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.directorywatcher,  org.eclipse.equinox.p2.extensionlocation,  org.eclipse.equinox.p2.repository.tools,  org.eclipse.equinox.p2.updatesite,  org.eclipse.pde.build"
       org.eclipse.equinox.p2.publisher.eclipse [30]
         Unresolved requirement: Import-Package: org.eclipse.equinox.internal.frameworkadmin.equinox
           -> Export-Package: org.eclipse.equinox.internal.frameworkadmin.equinox; bundle-symbolic-name="org.eclipse.equinox.frameworkadmin.equinox"; bundle-version="1.2.200.v20220315-2155"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.simpleconfigurator.manipulator"
              org.eclipse.equinox.frameworkadmin.equinox [31]
                Unresolved requirement: Require-Bundle: org.eclipse.equinox.common; bundle-version="3.16.0"
         Unresolved requirement: Import-Package: org.eclipse.equinox.simpleconfigurator.manipulator; version="[2.0.0,3.0.0)"
           -> Export-Package: org.eclipse.equinox.simpleconfigurator.manipulator; bundle-symbolic-name="org.eclipse.equinox.simpleconfigurator.manipulator"; bundle-version="2.2.0.v20210315-2228"; version="2.0.0"
              org.eclipse.equinox.simpleconfigurator.manipulator [32]
                Unresolved requirement: Import-Package: org.eclipse.equinox.internal.frameworkadmin.equinox
                  -> Export-Package: org.eclipse.equinox.internal.frameworkadmin.equinox; bundle-symbolic-name="org.eclipse.equinox.frameworkadmin.equinox"; bundle-version="1.2.200.v20220315-2155"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.simpleconfigurator.manipulator"
  Unresolved requirement: Import-Package: org.eclipse.equinox.simpleconfigurator.manipulator; version="2.0.0"
    -> Export-Package: org.eclipse.equinox.simpleconfigurator.manipulator; bundle-symbolic-name="org.eclipse.equinox.simpleconfigurator.manipulator"; bundle-version="2.2.0.v20210315-2228"; version="2.0.0"
  Unresolved requirement: Import-Package: org.eclipse.equinox.p2.publisher.eclipse
    -> Export-Package: org.eclipse.equinox.p2.publisher.eclipse; bundle-symbolic-name="org.eclipse.equinox.p2.publisher.eclipse"; bundle-version="1.4.100.v20220420-1427"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.directorywatcher,  org.eclipse.equinox.p2.extensionlocation,  org.eclipse.equinox.p2.touchpoint.eclipse,  org.eclipse.equinox.p2.updatesite,  org.eclipse.equinox.p2.repository.tools"
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] FrameworkEvent ERROR

[ERROR] Could not resolve module: org.eclipse.equinox.p2.repository.tools [39]
  Unresolved requirement: Import-Package: org.eclipse.equinox.internal.p2.publisher.eclipse
    -> Export-Package: org.eclipse.equinox.internal.p2.publisher.eclipse; bundle-symbolic-name="org.eclipse.equinox.p2.publisher.eclipse"; bundle-version="1.4.100.v20220420-1427"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.directorywatcher,  org.eclipse.equinox.p2.extensionlocation,  org.eclipse.equinox.p2.repository.tools,  org.eclipse.equinox.p2.updatesite,  org.eclipse.pde.build"
       org.eclipse.equinox.p2.publisher.eclipse [30]
         Unresolved requirement: Import-Package: org.eclipse.equinox.internal.frameworkadmin.equinox
           -> Export-Package: org.eclipse.equinox.internal.frameworkadmin.equinox; bundle-symbolic-name="org.eclipse.equinox.frameworkadmin.equinox"; bundle-version="1.2.200.v20220315-2155"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.simpleconfigurator.manipulator"
              org.eclipse.equinox.frameworkadmin.equinox [31]
                Unresolved requirement: Require-Bundle: org.eclipse.equinox.common; bundle-version="3.16.0"
         Unresolved requirement: Import-Package: org.eclipse.equinox.simpleconfigurator.manipulator; version="[2.0.0,3.0.0)"
           -> Export-Package: org.eclipse.equinox.simpleconfigurator.manipulator; bundle-symbolic-name="org.eclipse.equinox.simpleconfigurator.manipulator"; bundle-version="2.2.0.v20210315-2228"; version="2.0.0"
              org.eclipse.equinox.simpleconfigurator.manipulator [32]
                Unresolved requirement: Import-Package: org.eclipse.equinox.internal.frameworkadmin.equinox
                  -> Export-Package: org.eclipse.equinox.internal.frameworkadmin.equinox; bundle-symbolic-name="org.eclipse.equinox.frameworkadmin.equinox"; bundle-version="1.2.200.v20220315-2155"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.simpleconfigurator.manipulator"
  Unresolved requirement: Import-Package: org.eclipse.equinox.simpleconfigurator.manipulator; version="2.0.0"
    -> Export-Package: org.eclipse.equinox.simpleconfigurator.manipulator; bundle-symbolic-name="org.eclipse.equinox.simpleconfigurator.manipulator"; bundle-version="2.2.0.v20210315-2228"; version="2.0.0"
  Unresolved requirement: Import-Package: org.eclipse.equinox.p2.publisher.eclipse
    -> Export-Package: org.eclipse.equinox.p2.publisher.eclipse; bundle-symbolic-name="org.eclipse.equinox.p2.publisher.eclipse"; bundle-version="1.4.100.v20220420-1427"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.directorywatcher,  org.eclipse.equinox.p2.extensionlocation,  org.eclipse.equinox.p2.touchpoint.eclipse,  org.eclipse.equinox.p2.updatesite,  org.eclipse.equinox.p2.repository.tools"
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] org.eclipse.core.runtime

[ERROR] Could not resolve module: org.eclipse.core.runtime [45]
  Unresolved requirement: Require-Bundle: javax.inject; bundle-version="1.0.0"; visibility:="reexport"; resolution:="optional"
  Unresolved requirement: Require-Bundle: org.eclipse.core.contenttype; bundle-version="[3.3.0,4.0.0)"; visibility:="reexport"
    -> Bundle-SymbolicName: org.eclipse.core.contenttype; bundle-version="3.8.200.v20220817-1539"; tags:List<String>="osgi.connect"; singleton:="true"
       org.eclipse.core.contenttype [55]
         Unresolved requirement: Require-Bundle: org.eclipse.equinox.common; bundle-version="[3.13.0,4.0.0)"
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] FrameworkEvent ERROR

[ERROR] Could not resolve module: org.eclipse.core.runtime [45]
  Unresolved requirement: Require-Bundle: javax.inject; bundle-version="1.0.0"; visibility:="reexport"; resolution:="optional"
  Unresolved requirement: Require-Bundle: org.eclipse.core.contenttype; bundle-version="[3.3.0,4.0.0)"; visibility:="reexport"
    -> Bundle-SymbolicName: org.eclipse.core.contenttype; bundle-version="3.8.200.v20220817-1539"; tags:List<String>="osgi.connect"; singleton:="true"
       org.eclipse.core.contenttype [55]
         Unresolved requirement: Require-Bundle: org.eclipse.equinox.common; bundle-version="[3.13.0,4.0.0)"
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] FrameworkEvent ERROR

[ERROR] Could not resolve module: org.eclipse.equinox.p2.touchpoint.eclipse [49]
  Unresolved requirement: Import-Package: org.eclipse.equinox.internal.simpleconfigurator.manipulator
    -> Export-Package: org.eclipse.equinox.internal.simpleconfigurator.manipulator; bundle-symbolic-name="org.eclipse.equinox.simpleconfigurator.manipulator"; bundle-version="2.2.0.v20210315-2228"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.touchpoint.eclipse"
       org.eclipse.equinox.simpleconfigurator.manipulator [32]
         Unresolved requirement: Import-Package: org.eclipse.equinox.internal.frameworkadmin.equinox
           -> Export-Package: org.eclipse.equinox.internal.frameworkadmin.equinox; bundle-symbolic-name="org.eclipse.equinox.frameworkadmin.equinox"; bundle-version="1.2.200.v20220315-2155"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.simpleconfigurator.manipulator"
              org.eclipse.equinox.frameworkadmin.equinox [31]
                Unresolved requirement: Require-Bundle: org.eclipse.equinox.common; bundle-version="3.16.0"
  Unresolved requirement: Import-Package: org.eclipse.equinox.simpleconfigurator.manipulator; version="[2.0.0,3.0.0)"
    -> Export-Package: org.eclipse.equinox.simpleconfigurator.manipulator; bundle-symbolic-name="org.eclipse.equinox.simpleconfigurator.manipulator"; bundle-version="2.2.0.v20210315-2228"; version="2.0.0"
  Unresolved requirement: Import-Package: org.eclipse.equinox.p2.publisher.eclipse; resolution:="optional"
    -> Export-Package: org.eclipse.equinox.p2.publisher.eclipse; bundle-symbolic-name="org.eclipse.equinox.p2.publisher.eclipse"; bundle-version="1.4.100.v20220420-1427"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.directorywatcher,  org.eclipse.equinox.p2.extensionlocation,  org.eclipse.equinox.p2.touchpoint.eclipse,  org.eclipse.equinox.p2.updatesite,  org.eclipse.equinox.p2.repository.tools"
       org.eclipse.equinox.p2.publisher.eclipse [30]
         Unresolved requirement: Import-Package: org.eclipse.equinox.internal.frameworkadmin.equinox
           -> Export-Package: org.eclipse.equinox.internal.frameworkadmin.equinox; bundle-symbolic-name="org.eclipse.equinox.frameworkadmin.equinox"; bundle-version="1.2.200.v20220315-2155"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.simpleconfigurator.manipulator"
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] org.eclipse.equinox.p2.touchpoint.eclipse

[ERROR] Could not resolve module: org.eclipse.equinox.p2.touchpoint.eclipse [49]
  Unresolved requirement: Import-Package: org.eclipse.equinox.internal.simpleconfigurator.manipulator
    -> Export-Package: org.eclipse.equinox.internal.simpleconfigurator.manipulator; bundle-symbolic-name="org.eclipse.equinox.simpleconfigurator.manipulator"; bundle-version="2.2.0.v20210315-2228"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.touchpoint.eclipse"
       org.eclipse.equinox.simpleconfigurator.manipulator [32]
         Unresolved requirement: Import-Package: org.eclipse.equinox.internal.frameworkadmin.equinox
           -> Export-Package: org.eclipse.equinox.internal.frameworkadmin.equinox; bundle-symbolic-name="org.eclipse.equinox.frameworkadmin.equinox"; bundle-version="1.2.200.v20220315-2155"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.simpleconfigurator.manipulator"
              org.eclipse.equinox.frameworkadmin.equinox [31]
                Unresolved requirement: Require-Bundle: org.eclipse.equinox.common; bundle-version="3.16.0"
  Unresolved requirement: Import-Package: org.eclipse.equinox.simpleconfigurator.manipulator; version="[2.0.0,3.0.0)"
    -> Export-Package: org.eclipse.equinox.simpleconfigurator.manipulator; bundle-symbolic-name="org.eclipse.equinox.simpleconfigurator.manipulator"; bundle-version="2.2.0.v20210315-2228"; version="2.0.0"
  Unresolved requirement: Import-Package: org.eclipse.equinox.p2.publisher.eclipse; resolution:="optional"
    -> Export-Package: org.eclipse.equinox.p2.publisher.eclipse; bundle-symbolic-name="org.eclipse.equinox.p2.publisher.eclipse"; bundle-version="1.4.100.v20220420-1427"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.directorywatcher,  org.eclipse.equinox.p2.extensionlocation,  org.eclipse.equinox.p2.touchpoint.eclipse,  org.eclipse.equinox.p2.updatesite,  org.eclipse.equinox.p2.repository.tools"
       org.eclipse.equinox.p2.publisher.eclipse [30]
         Unresolved requirement: Import-Package: org.eclipse.equinox.internal.frameworkadmin.equinox
           -> Export-Package: org.eclipse.equinox.internal.frameworkadmin.equinox; bundle-symbolic-name="org.eclipse.equinox.frameworkadmin.equinox"; bundle-version="1.2.200.v20220315-2155"; version="0.0.0"; x-friends:="org.eclipse.equinox.p2.publisher,org.eclipse.equinox.p2.publisher.eclipse,org.eclipse.equinox.simpleconfigurator.manipulator"
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] org.eclipse.core.contenttype

[ERROR] Could not resolve module: org.eclipse.core.contenttype [55]
  Unresolved requirement: Require-Bundle: org.eclipse.equinox.common; bundle-version="[3.13.0,4.0.0)"
[ERROR] [2ed8f1c1-1dab-4327-8851-075163dc79c9][extension>org.eclipse.tycho:tycho-maven-plugin:4.0.0-SNAPSHOT] FrameworkEvent ERROR

[ERROR] Could not resolve module: org.eclipse.core.contenttype [55]
  Unresolved requirement: Require-Bundle: org.eclipse.equinox.common; bundle-version="[3.13.0,4.0.0)"