Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tycho-user] Weird error when using p2-installable-unit

<environments combine.self="override"> workaround works for the small
example project I setup (see attached).

For the proper solution I've opened
https://bugs.eclipse.org/bugs/show_bug.cgi?id=365090

--
Regards,
Igor

On 11-11-29 6:51 AM, Max Rydahl Andersen wrote:
Looks like your build has multiple os/ws/arch configured and resolution
fails when trying to resolve for win32/win32/x86 combo. Here is the
relevant log message (from right above the error ;-) )

Couldn't see the forrest for trees.

[INFO] Cannot complete the request.  Generating details.
[INFO] {org.osgi.framework.executionenvironment=OSGi/Minimum-1.0,OSGi/Minimum-1.1, osgi.ws=win32, osgi.arch=x86, osgi.os=win32, org.eclipse.update.install.features=true, org.osgi.framework.system.packages=}
[ERROR] Cannot resolve project dependencies:
[ERROR]   You requested to install 'bundle org.eclipse.jdt.launching.macosx 3.2.100.v20110509' but it could not be found


Try adding the following to your test project pom.xml (insert<version>,
if you don't have corresponding<pluginManagement>).


  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>target-platform-configuration</artifactId>
        <configuration>
          <environments combine.self="override">
          </environments>
        </configuration>
      </plugin>
    </plugins>
  </build>
When I do that I get:

!ENTRY org.eclipse.osgi 4 0 2011-11-29 12:47:59.109
!MESSAGE An error occurred while automatically activating bundle org.eclipse.ui.workbench (147).
!STACK 0
org.osgi.framework.BundleException: The activator org.eclipse.ui.internal.WorkbenchPlugin for bundle org.eclipse.ui.workbench is invalid
         at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:171)
         at org.eclipse.osgi.framework.internal.core.BundleContextImpl.start(BundleContextImpl.java:679)
         at org.eclipse.osgi.framework.internal.core.BundleHost.startWorker(BundleHost.java:381)
…
         at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
         at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:345)
         at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:229)
         at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1207)
         at org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI.createExecutableExtension(RegistryStrategyOSGI.java:174)
         at org.eclipse.core.internal.registry.ExtensionRegistry.createExecutableExtension(ExtensionRegistry.java:905)
         at org.eclipse.core.internal.registry.ConfigurationElement.createExecutableExtension(ConfigurationElement.java:243)
         at org.eclipse.core.internal.registry.ConfigurationElementHandle.createExecutableExtension(ConfigurationElementHandle.java:55)
         at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:191)
         at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
         at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
         at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
         at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
         at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
         at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
         at org.eclipse.equinox.launcher.Main.main(Main.java:1386)
Caused by: java.lang.NoClassDefFoundError: org/eclipse/swt/SWTError
         at java.lang.Class.getDeclaredConstructors0(Native Method)
         at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
         at java.lang.Class.getConstructor0(Class.java:2699)
         at java.lang.Class.newInstance0(Class.java:326)
         at java.lang.Class.newInstance(Class.java:308)
         at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadBundleActivator(AbstractBundle.java:166)
         ... 34 more
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.SWTError
         at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)
         at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:429)
         at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:417)
         at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
         ... 40 more

If I actually go and physically remove the other target platforms in my parent:

  <plugin>
                                 <groupId>org.eclipse.tycho</groupId>
                                 <artifactId>target-platform-configuration</artifactId>
                                 <version>${tychoVersion}</version>
                                 <configuration>
                                         <resolver>p2</resolver>
                                         <ignoreTychoRepositories>true</ignoreTychoRepositories>
                                         <environments>
                                                 <environment>
                                                         <os>macosx</os>
                                                         <ws>cocoa</ws>
                                                         <arch>x86</arch>
                                                 </environment>
                                         </environments>
                                 </configuration>
                         </plugin>


Then it works!

That is just weird because we got other stuff that is os specific.

/max





This should tell Tycho to only resolve test project's dependencies for
the current os/ws/arch. If this helps, please open a bugreport, Tycho
should only resolve test runtime for the current system's os/ws/arch.

--
Regards,
Igor


On 11-11-28 7:45 PM, Max Rydahl Andersen wrote:
You should see way more logs

Yeah, I got it now.

For p2 you should see entire resolver data flow, separately for each os/ws/arch combo enabled in target resolver configuration
* Available IUs: shows all installable units visible to the project

Yes, launching.macosx is listed here
* Root IUs: shows project installable unit(s)


Yes, launching.macosx is listed here

* Extra IUs: shows installable units generated from<dependency/>
elements


Yes, launching.macosx is listed here

* Slice: shows installable units "reachable" from the root and extra IUs

its not listed here and then I get the error about it being non resolvable with no explanation ;(

I've taken the liberty to attach my raw log file for the output in case you can spot anything out of the ordinary.

Note, i've got rid of the object team feature problem so now i'm just trying to grok why it won't install this plugin ;(

I also tried the trick about only enabling it conditionally in a profile but when I did that it never gets attempted to be installed (which surprises me)






* Resolved IUs: shows IUs after resolving all conflicts and duplicates


For equinox
* Resolved OSGi state: resolved OSGi state, i.e. RESOLVED lines you see

--
Regards,
Igor

On 11-11-28 10:32 AM, Max Rydahl Andersen wrote:
Running the build with -X -Dtycho.debug.resolver=<artifactId>     will
provide detailed information about dependency resolution, starting with
all installable units visible to the project.

Okey, I'll try see what that will give me.

I looked in the code and I couldn't find a place where tycho.debug.resolver was used for anything beyond a boolean flag.
Where is the artifactid taken into account ?


DebugUtils checks for project artifactId

http://git.eclipse.org/c/tycho/org.eclipse.tycho.git/tree/tycho-core/src/main/java/org/eclipse/tycho/core/osgitools/DebugUtils.java


Ah gothca!

Thought you mean tycho.debug.resolver=<pluginid>    so I had tycho.debug.resolver=org.eclipse.jdt.launching.macosx and saw no diff output.

With tycho.debug.resolver=<my project artifactid>    I get a lot of RESOLVED: lines - I assume that is what you referenced to?

/max
http://about.me/maxandersen



_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user
_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user

/max
http://about.me/maxandersen






_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user
_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user

/max
http://about.me/maxandersen



_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/tycho-user

Attachment: multienv.zip
Description: Zip archive


Back to the top