Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 354825

Summary: Tycho build doesn't work (revision 174)
Product: [RT] Gemini.JPA Reporter: Krum Tsvetkov <krum.tsvetkov>
Component: CoreAssignee: Michael Keith <michael.keith>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 Flags: michael.keith: iplog+
Version: 1.0.0   
Target Milestone: 1.1.0 M1   
Hardware: PC   
OS: Windows 7   
Whiteboard:
Attachments:
Description Flags
Patch to fix the Tycho build none

Description Krum Tsvetkov CLA 2011-08-16 09:53:41 EDT
The build with Tycho doesn't work any longer. It reports the error pasted below.
It is not clear when exactly the build stop working.

Aug 15, 2011 9:25:55 AM org.sonatype.guice.bean.reflect.NamedClass
WARNING: Error injecting: 
org.sonatype.tycho.equinox.embedder.DefaultEquinoxEmbedder
com.google.inject.ProvisionException: Guice provision errors:

1) No implementation for 
org.sonatype.tycho.equinox.EquinoxRuntimeLocator was bound.
   while locating org.sonatype.tycho.equinox.embedder.DefaultEquinoxEmbedder

1 error
         at 
com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:977)
         at 
com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1003)
         at 
org.sonatype.guice.bean.reflect.AbstractDeferredClass.get(AbstractDeferredClass.java:47)
         at 
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.ja
va:40)
         at 
com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter
.java:46)
         at 
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1021)
         at 
com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.ja
va:40)
         at com.google.inject.Scopes$1$1.get(Scopes.java:59)
         at 
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.ja
va:40)
         at 
com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:968)
         at 
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1021)
         at 
com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:964)
         at 
org.sonatype.guice.bean.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:79)
         at 
org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:53)
         at 
org.sonatype.guice.plexus.binders.PlexusRequirements$RequirementProvider.get(PlexusRequirements.jav
a:221)
         at 
org.sonatype.guice.plexus.binders.ProvidedPropertyBinding.injectProperty(ProvidedPropertyBinding.ja
va:49)
         at 
org.sonatype.guice.bean.inject.BeanInjector.doInjection(BeanInjector.java:105)
         at 
org.sonatype.guice.bean.inject.BeanInjector.injectMembers(BeanInjector.java:66)
         at 
com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:120)
         at 
com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:94)
         at 
com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
         at 
com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:968)
         at 
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1021)
         at 
com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:964)
         at 
com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1003)
         at 
org.sonatype.guice.bean.reflect.AbstractDeferredClass.get(AbstractDeferredClass.java:47)
         at 
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.ja
va:40)
         at 
com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter
.java:46)
         at 
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1021)
         at 
com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.ja
va:40)
         at com.google.inject.Scopes$1$1.get(Scopes.java:59)
         at 
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.ja
va:40)
         at 
com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:968)
         at 
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1014)
         at 
com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:964)
         at 
org.sonatype.guice.bean.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:79)
         at 
org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:53)
         at 
org.sonatype.guice.bean.locators.EntryListAdapter$ValueIterator.next(EntryListAdapter.java:112)
         at java.util.AbstractCollection.addAll(AbstractCollection.java:305)
         at 
org.apache.maven.DefaultMaven.getLifecycleParticipants(DefaultMaven.java:534)
         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:269)
         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
         at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
         at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
         at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
         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.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
         at 
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
         at 
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
         at 
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Aug 15, 2011 9:25:55 AM org.sonatype.guice.bean.reflect.NamedClass
WARNING: Error injecting: 
org.codehaus.tycho.maven.TychoMavenLifecycleParticipant
com.google.inject.ProvisionException: Guice provision errors:

1) No implementation for 
org.sonatype.tycho.equinox.EquinoxRuntimeLocator was bound.
   while locating org.sonatype.tycho.equinox.embedder.DefaultEquinoxEmbedder
   at 
ClassRealm[extension>org.sonatype.tycho:tycho-versions-plugin:0.11.0, 
parent: sun.misc.Launcher$AppClassL
oader@601bb1]
   at 
ClassRealm[extension>org.sonatype.tycho:tycho-versions-plugin:0.11.0, 
parent: sun.misc.Launcher$AppClassL
oader@601bb1]
   while locating org.sonatype.tycho.equinox.embedder.EquinoxEmbedder
   while locating org.codehaus.tycho.maven.TychoMavenLifecycleParticipant

1 error
         at 
com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:977)
         at 
com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1003)
         at 
org.sonatype.guice.bean.reflect.AbstractDeferredClass.get(AbstractDeferredClass.java:47)
         at 
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.ja
va:40)
         at 
com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter
.java:46)
         at 
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1021)
         at 
com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.ja
va:40)
         at com.google.inject.Scopes$1$1.get(Scopes.java:59)
         at 
com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.ja
va:40)
         at 
com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:968)
         at 
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1014)
         at 
com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:964)
         at 
org.sonatype.guice.bean.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:79)
         at 
org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:53)
         at 
org.sonatype.guice.bean.locators.EntryListAdapter$ValueIterator.next(EntryListAdapter.java:112)
         at java.util.AbstractCollection.addAll(AbstractCollection.java:305)
         at 
org.apache.maven.DefaultMaven.getLifecycleParticipants(DefaultMaven.java:534)
         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:269)
         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
         at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
         at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
         at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
         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.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
         at 
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
         at 
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
         at 
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
[ERROR] Internal error: com.google.inject.ProvisionException: Guice 
provision errors:
[ERROR]
[ERROR] 1) No implementation for 
org.sonatype.tycho.equinox.EquinoxRuntimeLocator was bound.
[ERROR] while locating 
org.sonatype.tycho.equinox.embedder.DefaultEquinoxEmbedder
[ERROR] at 
ClassRealm[extension>org.sonatype.tycho:tycho-versions-plugin:0.11.0, 
parent: sun.misc.Launcher$App
ClassLoader@601bb1]
[ERROR] at 
ClassRealm[extension>org.sonatype.tycho:tycho-versions-plugin:0.11.0, 
parent: sun.misc.Launcher$App
ClassLoader@601bb1]
[ERROR] while locating org.sonatype.tycho.equinox.embedder.EquinoxEmbedder
[ERROR] while locating 
org.codehaus.tycho.maven.TychoMavenLifecycleParticipant
[ERROR] at 
ClassRealm[extension>org.sonatype.tycho:tycho-versions-plugin:0.11.0, 
parent: sun.misc.Launcher$App
ClassLoader@601bb1]
[ERROR] at 
ClassRealm[extension>org.sonatype.tycho:tycho-versions-plugin:0.11.0, 
parent: sun.misc.Launcher$App
ClassLoader@601bb1]
[ERROR] while locating 
org.apache.maven.AbstractMavenLifecycleParticipant annotated with 
@com.google.inject.na
me.Named(value=TychoMavenLifecycleListener)
[ERROR]
[ERROR] 1 error
[ERROR] -> [Help 1]
org.apache.maven.InternalErrorException: Internal error: 
com.google.inject.ProvisionException: Guice provision
  errors:

1) No implementation for 
org.sonatype.tycho.equinox.EquinoxRuntimeLocator was bound.
   while locating org.sonatype.tycho.equinox.embedder.DefaultEquinoxEmbedder
   at 
ClassRealm[extension>org.sonatype.tycho:tycho-versions-plugin:0.11.0, 
parent: sun.misc.Launcher$AppClassL
oader@601bb1]
   at 
ClassRealm[extension>org.sonatype.tycho:tycho-versions-plugin:0.11.0, 
parent: sun.misc.Launcher$AppClassL
oader@601bb1]
   while locating org.sonatype.tycho.equinox.embedder.EquinoxEmbedder
   while locating org.codehaus.tycho.maven.TychoMavenLifecycleParticipant
   at 
ClassRealm[extension>org.sonatype.tycho:tycho-versions-plugin:0.11.0, 
parent: sun.misc.Launcher$AppClassL
oader@601bb1]
   at 
ClassRealm[extension>org.sonatype.tycho:tycho-versions-plugin:0.11.0, 
parent: sun.misc.Launcher$AppClassL
oader@601bb1]
   while locating org.apache.maven.AbstractMavenLifecycleParticipant 
annotated with @com.google.inject.name.Nam
ed(value=TychoMavenLifecycleListener)

1 error
         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:168)
         at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
         at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
         at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
         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.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
         at 
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
         at 
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
         at 
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: com.google.inject.ProvisionException: Guice provision errors:

1) No implementation for 
org.sonatype.tycho.equinox.EquinoxRuntimeLocator was bound.
   while locating org.sonatype.tycho.equinox.embedder.DefaultEquinoxEmbedder
   at 
ClassRealm[extension>org.sonatype.tycho:tycho-versions-plugin:0.11.0, 
parent: sun.misc.Launcher$AppClassL
oader@601bb1]
   at 
ClassRealm[extension>org.sonatype.tycho:tycho-versions-plugin:0.11.0, 
parent: sun.misc.Launcher$AppClassL
oader@601bb1]
   while locating org.sonatype.tycho.equinox.embedder.EquinoxEmbedder
   while locating org.codehaus.tycho.maven.TychoMavenLifecycleParticipant
   at 
ClassRealm[extension>org.sonatype.tycho:tycho-versions-plugin:0.11.0, 
parent: sun.misc.Launcher$AppClassL
oader@601bb1]
   at 
ClassRealm[extension>org.sonatype.tycho:tycho-versions-plugin:0.11.0, 
parent: sun.misc.Launcher$AppClassL
oader@601bb1]
   while locating org.apache.maven.AbstractMavenLifecycleParticipant 
annotated with @com.google.inject.name.Nam
ed(value=TychoMavenLifecycleListener)

1 error
         at 
com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:977)
         at 
org.sonatype.guice.bean.locators.LazyBeanEntry.getValue(LazyBeanEntry.java:79)
         at 
org.sonatype.guice.plexus.locators.LazyPlexusBean.getValue(LazyPlexusBean.java:53)
         at 
org.sonatype.guice.bean.locators.EntryListAdapter$ValueIterator.next(EntryListAdapter.java:112)
         at java.util.AbstractCollection.addAll(AbstractCollection.java:305)
         at 
org.apache.maven.DefaultMaven.getLifecycleParticipants(DefaultMaven.java:534)
         at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:269)
         at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
         ... 11 more
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the 
-e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, 
please read the following articles:
[ERROR] [Help 1]
Comment 1 Krum Tsvetkov CLA 2011-08-16 10:06:07 EDT
Created attachment 201567 [details]
Patch to fix the Tycho build

Mike, I was able to get the build working again (at least here at my place).
The problem was caused by the presence of some configuration for the tycho-versions-plugin. I am not exactly sure what the fragment was needed for. I deleted it and the build could continue.

Afterwards two other problems poped-up:
- the o.e.gemini.jpa.weaving bundle doesn't exist any longer, but was still referenced in the feature.xml

- the org.eclipse.gemini.jpa.test.embeddedjdbc didn't have a qualifier in the version inside the manifest

The attached patch fixes these and I was able to build the project successfully.
Comment 2 Michael Keith CLA 2011-08-16 11:13:00 EDT
Thanks very much for looking at this Krum.

I thought that the tycho-versions-plugin was something that you had put in from the beginning, but since you didn't know what it was, I looked back at the history and it appears to have been something that the local build person here put into my build files to allow building a specific version and got checked in with one of my checkins. Sorry about that. BTW, without using that plugin how would I be able to build a specific release version? Do we need this plugin for that?

The other bugs were mine, I just never got far enough in the build to see them :-)
Comment 3 Michael Keith CLA 2011-10-20 10:50:14 EDT
Build working again.