Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tycho-user] old update sites

Tycho uses P2 under the covers, and P2 dropped support for old-style update sites when Eclipse did.

I think in the 4.4 release the support was removed when the old-style 2.2 plugins were removed, but it could have been earlier. The update site was decommissioned when migrating from 3.7 to 4.x


You can use an older version of Eclipse to mirror the plug-in, but at this point if you come across an update site without p2 metadata it’s probably not a supported plug-in any more.

Alex

On 1 Oct 2014, at 12:31, Knut Wannheden <knut.wannheden@xxxxxxxxxx> wrote:

Hi all,

I just encountered a problem with an "old" update site (i.e. pre p2 era). When running the build for a project where the target definition references this old update site I get the following error printed:

[INFO] Fetching site.xml fromhttp://wireframesketcher.com/updates/archive/ (0B at 0B/s)
[ERROR] Internal error: java.lang.RuntimeException: Failed to resolve target definition /home/hudson/hudson_home/jobs/test-compile/workspace/test/test.target: Failed to load p2 metadata repository from locationhttp://wireframesketcher.com/updates/archive: No repository found athttp://wireframesketcher.com/updates/archive. -> [Help 1]
org.apache.maven.InternalErrorException: Internal error: java.lang.RuntimeException: Failed to resolve target definition /home/hudson/hudson_home/jobs/test-compile/workspace/test/test.target
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:166)
at org.jvnet.hudson.maven3.launcher.Maven31Launcher.main(Maven31Launcher.java:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:330)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:238)
at jenkins.maven3.agent.Maven31Main.launch(Maven31Main.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:134)
at hudson.maven.Maven3Builder.call(Maven3Builder.java:69)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:328)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: Failed to resolve target definition /home/hudson/hudson_home/jobs/test-compile/workspace/test/test.target
at org.eclipse.tycho.p2.target.TargetDefinitionResolver.resolveContent(TargetDefinitionResolver.java:91)
at org.eclipse.tycho.p2.target.TargetDefinitionResolverService.resolveFromArguments(TargetDefinitionResolverService.java:70)
at org.eclipse.tycho.p2.target.TargetDefinitionResolverService.getTargetDefinitionContent(TargetDefinitionResolverService.java:60)
at org.eclipse.tycho.p2.target.TargetPlatformFactoryImpl.resolveTargetDefinitions(TargetPlatformFactoryImpl.java:213)
at org.eclipse.tycho.p2.target.TargetPlatformFactoryImpl.createTargetPlatform(TargetPlatformFactoryImpl.java:153)
at org.eclipse.tycho.p2.target.TargetPlatformFactoryImpl.createTargetPlatform(TargetPlatformFactoryImpl.java:126)
at org.eclipse.tycho.p2.target.TargetPlatformFactoryImpl.createTargetPlatform(TargetPlatformFactoryImpl.java:1)
at org.eclipse.tycho.p2.manager.ReactorRepositoryManagerImpl.computePreliminaryTargetPlatform(ReactorRepositoryManagerImpl.java:82)
at org.eclipse.tycho.p2.resolver.P2DependencyResolver.computePreliminaryTargetPlatform(P2DependencyResolver.java:215)
at org.eclipse.tycho.core.resolver.DefaultTychoResolver.resolveProject(DefaultTychoResolver.java:99)
at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead(TychoMavenLifecycleParticipant.java:75)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:310)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:154)
... 22 more
Caused by: org.eclipse.tycho.p2.target.facade.TargetDefinitionResolutionException: Failed to load p2 metadata repository from locationhttp://wireframesketcher.com/updates/archive
at org.eclipse.tycho.p2.target.TargetDefinitionResolver.loadRepository(TargetDefinitionResolver.java:210)
at org.eclipse.tycho.p2.target.TargetDefinitionResolver.resolveContentWithExceptions(TargetDefinitionResolver.java:127)
at org.eclipse.tycho.p2.target.TargetDefinitionResolver.resolveContent(TargetDefinitionResolver.java:86)
... 34 more
Caused by: org.eclipse.equinox.p2.core.ProvisionException: No repository found athttp://wireframesketcher.com/updates/archive.
at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.fail(AbstractRepositoryManager.java:395)
at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:692)
at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:96)
at org.eclipse.tycho.p2.remote.RemoteMetadataRepositoryManager.loadRepository(RemoteMetadataRepositoryManager.java:59)
at org.eclipse.tycho.p2.remote.RemoteMetadataRepositoryManager.loadRepository(RemoteMetadataRepositoryManager.java:52)
at org.eclipse.tycho.p2.target.TargetDefinitionResolver.loadRepository(TargetDefinitionResolver.java:208)
... 36 more

So it would seem like Tycho doesn't quite understand the old update sites. Although the error message does mention the site.xml ("Fetching site.xml from ...") so it seems like it at least understands them somewhat.

To solve this I decided to set up a local mirror of the old update site, but one which is a proper p2 repository. (See for example here: http://jutzig.wordpress.com/2012/06/07/how-to-mirror-eclipse-p2-repositories/.) But since I also knew about the Tycho p2 mirroring utility (plugin tycho-p2-extras-plugin goal mirror) I tried with that. To my big surprise this worked. I ended up with a p2 mirror of the "old" update site.

So it seems like Tycho does understand old update sites. Assuming that it is intentional that Tycho currently doesn't support old update sites during the target resolution, would it make sense to extend Tycho to be able to do this on the fly when resolving the target definition. That way I would not have to set up the local mirror.

Kind regards,

Knut Wannheden
_______________________________________________
tycho-user mailing list
tycho-user@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/tycho-user


Back to the top