Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » B3 » Build Update Site
Build Update Site [message #544147] Thu, 01 July 2010 18:28 Go to next message
Michael Heiss is currently offline Michael HeissFriend
Messages: 25
Registered: July 2009
Junior Member
Hi,

We are currently developing a software product based on Eclipse and due to several reasons we want to build and maintain or own internal UpdateSite where all the required external Features (Birt, GEF, Subversion,....) are available to install using the update manager P2.

And thats the point where my problems are starting ..... Smile How do i build an UpdateSite including only the features that i want?

Can anybody tell my whether B3 is the right tool to do that?

Thanks in advance. Smile

Best regards,
Michael
Re: Build Update Site [message #544158 is a reply to message #544147] Thu, 01 July 2010 19:31 Go to previous messageGo to next message
Henrik Lindberg is currently offline Henrik LindbergFriend
Messages: 2501
Registered: July 2009
Senior Member
Hi,
That is the exact use case fir which the b3 aggregator was crested to
support. There are many options, from simply mirroring a repo, filtering
and pruning the content, to reauthorizing categories.

There is documentation on the wiki.
- henrik

Michael Hei <m-heiss@aon.at> wrote:
> Hi,
>
> We are currently developing a software product based on Eclipse and
> due to several reasons we want to build and maintain or own internal
> UpdateSite where all the required external Features (Birt, GEF,
> Subversion,....) are available to install using the update manager P2.
>
> And thats the point where my problems are starting ..... :) How do i
> build an UpdateSite including only the features that i want?
>
> Can anybody tell my whether B3 is the right tool to do that?
>
> Thanks in advance. :)
>
> Best regards,
> Michael


--
- henrik
Re: Build Update Site [message #544160 is a reply to message #544158] Thu, 01 July 2010 19:44 Go to previous messageGo to next message
Filip Hrbek is currently offline Filip HrbekFriend
Messages: 233
Registered: July 2009
Senior Member
I'd just add where to get the latest b3 aggregator (under hot development but with most known bugs fixed):

http://download.eclipse.org/modeling/emft/b3/updates-3.7mile stones for Eclipse IDE integration

and

http://download.eclipse.org/modeling/emft/b3/headless-3.7mil estones for command line tools.

The documentation is here:

http://wiki.eclipse.org/Eclipse_b3/aggregator/manual

Filip


Henrik Lindberg wrote:
> Hi,
> That is the exact use case fir which the b3 aggregator was crested to
> support. There are many options, from simply mirroring a repo, filtering
> and pruning the content, to reauthorizing categories.
>
> There is documentation on the wiki.
> - henrik
>
> Michael Hei<m-heiss@aon.at> wrote:
>> Hi,
>>
>> We are currently developing a software product based on Eclipse and
>> due to several reasons we want to build and maintain or own internal
>> UpdateSite where all the required external Features (Birt, GEF,
>> Subversion,....) are available to install using the update manager P2.
>>
>> And thats the point where my problems are starting ..... :) How do i
>> build an UpdateSite including only the features that i want?
>>
>> Can anybody tell my whether B3 is the right tool to do that?
>>
>> Thanks in advance. :)
>>
>> Best regards,
>> Michael
>
>
Re: Build Update Site [message #544164 is a reply to message #544160] Thu, 01 July 2010 20:54 Go to previous messageGo to next message
Michael Heiss is currently offline Michael HeissFriend
Messages: 25
Registered: July 2009
Junior Member
Thanks for reply. Glad to see that i found the right tool Smile

I will try the latest milestone becuase with the version mentioned in the wiki i had some troubles when excluding features.
Re: Build Update Site [message #544258 is a reply to message #544160] Fri, 02 July 2010 07:43 Go to previous messageGo to next message
Lars Fischer is currently offline Lars FischerFriend
Messages: 105
Registered: July 2009
Senior Member
Hello Filip,

On 01.07.2010 21:44, Filip Hrbek wrote:
> I'd just add where to get the latest b3 aggregator (under hot
> development but with most known bugs fixed):
>
> http://download.eclipse.org/modeling/emft/b3/updates-3.7mile stones for
> Eclipse IDE integration
>
> and
>
> http://download.eclipse.org/modeling/emft/b3/headless-3.7mil estones for
> command line tools.
>
> The documentation is here:
>
> http://wiki.eclipse.org/Eclipse_b3/aggregator/manual

I would like to use b3 with the same purpose to create a composed p2
repository. Source of the contents are artifacts from a maven repository.

I created a contribution with a "maven2" nature repository. After
setting this, the repository loader starts running and than this job
hangs. CPU shows maximum usage, but the jobs never finishes and I have
to kill eclipse.

I tried this with helios release and latest 3.7 milestone.

Regards,
Lars
Re: Build Update Site [message #544283 is a reply to message #544258] Fri, 02 July 2010 08:44 Go to previous messageGo to next message
Filip Hrbek is currently offline Filip HrbekFriend
Messages: 233
Registered: July 2009
Senior Member
Hello Lars,

I think that most likely your job does not really hang but tries to scan the m2 repository which seems to be very large.

For aggregating repositories we need to retrieve full information about the artifacts including their dependencies. The only way (at least up to our knowledge) of getting this from an m2 repository is to traverse all its directories recursively and analyze all pom files. This operation is really resource consuming (both CPU and bandwidth).

You can optionally install a non-EPL'd extension of the aggregator from http://download.cloudsmith.com/b3/external-3.6 which adds a nexus index reader. To install it successfully, you must also register m2eclipse repository (http://m2eclipse.sonatype.org/sites/m2e ) in your p2 installer. However, this only speeds up retrieving initial information about the components, but even though we must visit each pom to get more information than is present in the index.

So, if your m2 repository is rather large, all I can recommend is to be patient. With the nexus indexer support you should see a reliable progress bar (if you open job progress view in your Ecilpse IDE) showing how much is done.

Note: Once you load the repository in your b3 aggregator editor, launching the actual aggregation loads it again into a different p2 profile (dedicated for the aggregation) which means that it will take similar time again.

Not sure if this helps you but it's how things work now.

Filip


On 2.7.2010 9:43, Lars Fischer wrote:
> Hello Filip,
>
> On 01.07.2010 21:44, Filip Hrbek wrote:
>> I'd just add where to get the latest b3 aggregator (under hot
>> development but with most known bugs fixed):
>>
>> http://download.eclipse.org/modeling/emft/b3/updates-3.7mile stones for
>> Eclipse IDE integration
>>
>> and
>>
>> http://download.eclipse.org/modeling/emft/b3/headless-3.7mil estones for
>> command line tools.
>>
>> The documentation is here:
>>
>> http://wiki.eclipse.org/Eclipse_b3/aggregator/manual
>
> I would like to use b3 with the same purpose to create a composed p2
> repository. Source of the contents are artifacts from a maven repository.
>
> I created a contribution with a "maven2" nature repository. After
> setting this, the repository loader starts running and than this job
> hangs. CPU shows maximum usage, but the jobs never finishes and I have
> to kill eclipse.
>
> I tried this with helios release and latest 3.7 milestone.
>
> Regards,
> Lars
>
Re: Build Update Site [message #544324 is a reply to message #544283] Fri, 02 July 2010 10:59 Go to previous messageGo to next message
Lars Fischer is currently offline Lars FischerFriend
Messages: 105
Registered: July 2009
Senior Member
On 02.07.2010 10:44, Filip Hrbek wrote:
> I think that most likely your job does not really hang but tries to scan
> the m2 repository which seems to be very large.

I tested it with an very small repo (5 jars). In this case, the load is
very fast, bun no items are listed within the repository in the .3aggr
editor.


> For aggregating repositories we need to retrieve full information about
> the artifacts including their dependencies. The only way (at least up to
> our knowledge) of getting this from an m2 repository is to traverse all
> its directories recursively and analyze all pom files. This operation is
> really resource consuming (both CPU and bandwidth).
>
> You can optionally install a non-EPL'd extension of the aggregator from
> http://download.cloudsmith.com/b3/external-3.6 which adds a nexus index
> reader. To install it successfully, you must also register m2eclipse
> repository (http://m2eclipse.sonatype.org/sites/m2e ) in your p2
> installer. However, this only speeds up retrieving initial information
> about the components, but even though we must visit each pom to get more
> information than is present in the index.
>
> So, if your m2 repository is rather large, all I can recommend is to be
> patient. With the nexus indexer support you should see a reliable
> progress bar (if you open job progress view in your Ecilpse IDE) showing
> how much is done.
>
> Note: Once you load the repository in your b3 aggregator editor,
> launching the actual aggregation loads it again into a different p2
> profile (dedicated for the aggregation) which means that it will take
> similar time again.
>
> Not sure if this helps you but it's how things work now.

I installed both additional tools and restarted the eclipse. The b3aggr
file contains a contribution to my local maven repository. It is also
indexed by m2eclipse. I cleaned it up, so the total size of all jars is
5 MB.

But in the end there is no success. The Repository Loader is still
running without an end.

Do I have to connect the mapped maven repository to the m2eclipse index?


The eclipse error log contains this enty. Maybe this could help?


eclipse.buildId=I20100608-0911
java.version=1.6.0_20
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE
Framework arguments: -product org.eclipse.epp.package.rcp.product
Command-line arguments: -os win32 -ws win32 -arch x86 -product
org.eclipse.epp.package.rcp.product


Warning
Fri Jul 02 12:51:31 CEST 2010
org.eclipse.b3.p2.maven.pom.impl.PomFactoryImpl cannot be cast to
org.maven.ide.components.pom.PomFactory

java.lang.ClassCastException:
org.eclipse.b3.p2.maven.pom.impl.PomFactoryImpl cannot be cast to
org.maven.ide.components.pom.PomFactory
at
org.maven.ide.components.pom.impl.PomFactoryImpl.init(PomFac toryImpl.java:38)
at org.maven.ide.components.pom.PomFactory.<clinit>(PomFactory.java:30)
at
org.maven.ide.eclipse.embedder.MavenModelManager.<clinit>(MavenModelManager.java:81)
at org.maven.ide.eclipse.MavenPlugin.start(MavenPlugin.java:338 )
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl$1 .run(BundleContextImpl.java:783)
at java.security.AccessController.doPrivileged(Native Method)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tartActivator(BundleContextImpl.java:774)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tart(BundleContextImpl.java:755)
at
org.eclipse.osgi.framework.internal.core.BundleHost.startWor ker(BundleHost.java:370)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.star t(AbstractBundle.java:284)
at
org.eclipse.osgi.framework.util.SecureAction.start(SecureAct ion.java:417)
at
org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger (BundleLoader.java:265)
at
org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter .postFindLocalClass(EclipseLazyStarter.java:106)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoc alClass(ClasspathManager.java:453)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.fin dLocalClass(DefaultClassLoader.java:216)
at
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass (BundleLoader.java:393)
at
org.eclipse.osgi.internal.loader.SingleSourcePackage.loadCla ss(SingleSourcePackage.java:33)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClassInter nal(BundleLoader.java:466)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund leLoader.java:422)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund leLoader.java:410)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loa dClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:23 89)
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.load BundleActivator(AbstractBundle.java:151)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tart(BundleContextImpl.java:751)
at
org.eclipse.osgi.framework.internal.core.BundleHost.startWor ker(BundleHost.java:370)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.star t(AbstractBundle.java:284)
at
org.eclipse.osgi.framework.util.SecureAction.start(SecureAct ion.java:417)
at
org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger (BundleLoader.java:265)
at
org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter .postFindLocalClass(EclipseLazyStarter.java:106)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoc alClass(ClasspathManager.java:453)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.fin dLocalClass(DefaultClassLoader.java:216)
at
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass (BundleLoader.java:393)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClassInter nal(BundleLoader.java:469)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund leLoader.java:422)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund leLoader.java:410)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loa dClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at
org.eclipse.osgi.internal.loader.BundleLoader.loadClass(Bund leLoader.java:338)
at
org.eclipse.osgi.framework.internal.core.BundleHost.loadClas s(BundleHost.java:232)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.load Class(AbstractBundle.java:1197)
at
org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI .createExecutableExtension(RegistryStrategyOSGI.java:174)
at
org.eclipse.core.internal.registry.ExtensionRegistry.createE xecutableExtension(ExtensionRegistry.java:904)
at
org.eclipse.core.internal.registry.ConfigurationElement.crea teExecutableExtension(ConfigurationElement.java:243)
at
org.eclipse.core.internal.registry.ConfigurationElementHandl e.createExecutableExtension(ConfigurationElementHandle.java: 55)
at
org.eclipse.jdt.core.JavaCore.computeClasspathContainerIniti alizer(JavaCore.java:2752)
at
org.eclipse.jdt.core.JavaCore.getClasspathContainerInitializ er(JavaCore.java:2728)
at
org.eclipse.jdt.internal.core.JavaModelManager.initializeCon tainer(JavaModelManager.java:2688)
at
org.eclipse.jdt.internal.core.JavaModelManager$11.run(JavaMo delManager.java:2613)
at org.eclipse.core.internal.resources.Workspace.run(Workspace. java:1975)
at
org.eclipse.jdt.internal.core.JavaModelManager.initializeAll Containers(JavaModelManager.java:2653)
at
org.eclipse.jdt.internal.core.JavaModelManager.getClasspathC ontainer(JavaModelManager.java:1845)
at org.eclipse.jdt.core.JavaCore.initializeAfterLoad(JavaCore.j ava:3463)
at
org.eclipse.jdt.internal.ui.InitializeAfterLoadJob$RealJob.r un(InitializeAfterLoadJob.java:35)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)



Regards,
Lars
Re: Build Update Site [message #544463 is a reply to message #544324] Fri, 02 July 2010 18:19 Go to previous messageGo to next message
Michael Heiss is currently offline Michael HeissFriend
Messages: 25
Registered: July 2009
Junior Member
I tried to build an custom update site but now i ran into an exception during the verification.

java.util.NoSuchElementException
at org.eclipse.emf.common.util.AbstractEList$EIterator.doNext(AbstractEList.java:717)
at org.eclipse.emf.common.util.AbstractEList$EIterator.next(AbstractEList.java:696)
at org.eclipse.b3.aggregator.engine.RepositoryVerifier.resolvePartialIU(RepositoryVerifier.java:339)
at org.eclipse.b3.aggregator.engine.RepositoryVerifier.run(RepositoryVerifier.java:201)
at org.eclipse.b3.aggregator.engine.Builder.runRepositoryVerifier(Builder.java:1091)
at org.eclipse.b3.aggregator.engine.Builder.run(Builder.java:607)
at org.eclipse.b3.aggregator.presentation.AggregatorActionBarContributor$BuildRepoAction$1.run(AggregatorActionBarContributor.java:267)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)


I debuged the application and found the IU that causes the error:
org.eclipse.b3.p2.impl.InstallableUnitImpl@5b9e775d (id: org.eclipse.team.svn.ui.capabilities, version: 0.7.9.I20100512-1900, filter: null, resolved: false, singleton: false


I get the error message using the latest version (3.7) as well as with version 3.6.
Re: Build Update Site [message #544476 is a reply to message #544463] Fri, 02 July 2010 18:24 Go to previous messageGo to next message
Filip Hrbek is currently offline Filip HrbekFriend
Messages: 233
Registered: July 2009
Senior Member
Could you please enter a bugzilla issue on this?

Thanks,

Filip

Michael Heiss wrote:
> I tried to build an custom update site but now i ran into an exception
> during the verification.
>
>
> java.util.NoSuchElementException
> at
> org.eclipse.emf.common.util.AbstractEList$EIterator.doNext(A bstractEList.java:717)
>
> at
> org.eclipse.emf.common.util.AbstractEList$EIterator.next(Abs tractEList.java:696)
>
> at
> org.eclipse.b3.aggregator.engine.RepositoryVerifier.resolveP artialIU(RepositoryVerifier.java:339)
>
> at
> org.eclipse.b3.aggregator.engine.RepositoryVerifier.run(Repo sitoryVerifier.java:201)
>
> at
> org.eclipse.b3.aggregator.engine.Builder.runRepositoryVerifi er(Builder.java:1091)
>
> at org.eclipse.b3.aggregator.engine.Builder.run(Builder.java:60 7)
> at
> org.eclipse.b3.aggregator.presentation.AggregatorActionBarCo ntributor$BuildRepoAction$1.run(AggregatorActionBarContribut or.java:267)
>
> at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
>
>
> I debuged the application and found the IU that causes the error:
>
> org.eclipse.b3.p2.impl.InstallableUnitImpl@5b9e775d (id:
> org.eclipse.team.svn.ui.capabilities, version: 0.7.9.I20100512-1900,
> filter: null, resolved: false, singleton: false
>
>
> I get the error message using the latest version (3.7) as well as with
> version 3.6.
>
Re: Build Update Site [message #544477 is a reply to message #544463] Fri, 02 July 2010 18:27 Go to previous messageGo to next message
Henrik Lindberg is currently offline Henrik LindbergFriend
Messages: 2501
Registered: July 2009
Senior Member
It should not do that. Please log an issue for emft.b3.aggregator...
- henrik

Michael Heiss <m-heiss@aon.at> wrote:
> I tried to build an custom update site but now i ran into an exception
> during the verification.
>
>
> java.util.NoSuchElementException
> at
> org.eclipse.emf.common.util.AbstractEList$EIterator.doNext(A bstractEList.java:717)
> at
> org.eclipse.emf.common.util.AbstractEList$EIterator.next(Abs tractEList.java:696)
> at
> org.eclipse.b3.aggregator.engine.RepositoryVerifier.resolveP artialIU(RepositoryVerifier.java:339)
> at
> org.eclipse.b3.aggregator.engine.RepositoryVerifier.run(Repo sitoryVerifier.java:201)
> at
> org.eclipse.b3.aggregator.engine.Builder.runRepositoryVerifi er(Builder.java:1091)
> at org.eclipse.b3.aggregator.engine.Builder.run(Builder.java:60 7)
> at
> org.eclipse.b3.aggregator.presentation.AggregatorActionBarCo ntributor$BuildRepoAction$1.run(AggregatorActionBarContribut or.java:267)
> at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
>
>
> I debuged the application and found the IU that causes the error:
>
> org.eclipse.b3.p2.impl.InstallableUnitImpl@5b9e775d (id:
> org.eclipse.team.svn.ui.capabilities, version: 0.7.9.I20100512-1900,
> filter: null, resolved: false, singleton: false
>
>
> I get the error message using the latest version (3.7) as well as with
> version 3.6.


--
- henrik
Re: Build Update Site [message #544478 is a reply to message #544324] Fri, 02 July 2010 18:28 Go to previous messageGo to next message
Filip Hrbek is currently offline Filip HrbekFriend
Messages: 233
Registered: July 2009
Senior Member
Thanks Lars,

your last report gave me a hint. It looks like we have a conflict with registering the .pom suffix if both b3 and m2eclipse are installed. My original intent was to avoid registering the suffix and load the pom resource with a dedicated factory on demand but maybe I forgot to delete the relevant plugin metadata generated by EMF.

I'll look into that when I have some time and fix (sorry, I'm too busy right now).

Regarding your repository, does it contain any private/secret data, or would it be possible to upload it somewhere so that I could test with exactly the same data?

Filip

Lars Fischer wrote:
> On 02.07.2010 10:44, Filip Hrbek wrote:
>> I think that most likely your job does not really hang but tries to scan
>> the m2 repository which seems to be very large.
>
> I tested it with an very small repo (5 jars). In this case, the load is
> very fast, bun no items are listed within the repository in the .3aggr
> editor.
>
>
>> For aggregating repositories we need to retrieve full information about
>> the artifacts including their dependencies. The only way (at least up to
>> our knowledge) of getting this from an m2 repository is to traverse all
>> its directories recursively and analyze all pom files. This operation is
>> really resource consuming (both CPU and bandwidth).
>>
>> You can optionally install a non-EPL'd extension of the aggregator from
>> http://download.cloudsmith.com/b3/external-3.6 which adds a nexus index
>> reader. To install it successfully, you must also register m2eclipse
>> repository (http://m2eclipse.sonatype.org/sites/m2e ) in your p2
>> installer. However, this only speeds up retrieving initial information
>> about the components, but even though we must visit each pom to get more
>> information than is present in the index.
>>
>> So, if your m2 repository is rather large, all I can recommend is to be
>> patient. With the nexus indexer support you should see a reliable
>> progress bar (if you open job progress view in your Ecilpse IDE) showing
>> how much is done.
>>
>> Note: Once you load the repository in your b3 aggregator editor,
>> launching the actual aggregation loads it again into a different p2
>> profile (dedicated for the aggregation) which means that it will take
>> similar time again.
>>
>> Not sure if this helps you but it's how things work now.
>
> I installed both additional tools and restarted the eclipse. The b3aggr
> file contains a contribution to my local maven repository. It is also
> indexed by m2eclipse. I cleaned it up, so the total size of all jars is
> 5 MB.
>
> But in the end there is no success. The Repository Loader is still
> running without an end.
>
> Do I have to connect the mapped maven repository to the m2eclipse index?
>
>
> The eclipse error log contains this enty. Maybe this could help?
>
>
> eclipse.buildId=I20100608-0911
> java.version=1.6.0_20
> java.vendor=Sun Microsystems Inc.
> BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE
> Framework arguments: -product org.eclipse.epp.package.rcp.product
> Command-line arguments: -os win32 -ws win32 -arch x86 -product
> org.eclipse.epp.package.rcp.product
>
>
> Warning
> Fri Jul 02 12:51:31 CEST 2010
> org.eclipse.b3.p2.maven.pom.impl.PomFactoryImpl cannot be cast to
> org.maven.ide.components.pom.PomFactory
>
> java.lang.ClassCastException:
> org.eclipse.b3.p2.maven.pom.impl.PomFactoryImpl cannot be cast to
> org.maven.ide.components.pom.PomFactory
> at
> org.maven.ide.components.pom.impl.PomFactoryImpl.init(PomFac toryImpl.java:38)
>
> at org.maven.ide.components.pom.PomFactory.<clinit>(PomFactory.java:30)
> at
> org.maven.ide.eclipse.embedder.MavenModelManager.<clinit>(MavenModelManager.java:81)
>
> at org.maven.ide.eclipse.MavenPlugin.start(MavenPlugin.java:338 )
> at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl$1 .run(BundleContextImpl.java:783)
>
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tartActivator(BundleContextImpl.java:774)
>
> at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tart(BundleContextImpl.java:755)
>
> at
> org.eclipse.osgi.framework.internal.core.BundleHost.startWor ker(BundleHost.java:370)
>
> at
> org.eclipse.osgi.framework.internal.core.AbstractBundle.star t(AbstractBundle.java:284)
>
> at
> org.eclipse.osgi.framework.util.SecureAction.start(SecureAct ion.java:417)
> at
> org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger (BundleLoader.java:265)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter .postFindLocalClass(EclipseLazyStarter.java:106)
>
> at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoc alClass(ClasspathManager.java:453)
>
> at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.fin dLocalClass(DefaultClassLoader.java:216)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass (BundleLoader.java:393)
>
> at
> org.eclipse.osgi.internal.loader.SingleSourcePackage.loadCla ss(SingleSourcePackage.java:33)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClassInter nal(BundleLoader.java:466)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund leLoader.java:422)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund leLoader.java:410)
>
> at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loa dClass(DefaultClassLoader.java:107)
>
> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
> at java.lang.Class.getDeclaredConstructors0(Native Method)
> at java.lang.Class.privateGetDeclaredConstructors(Class.java:23 89)
> 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.load BundleActivator(AbstractBundle.java:151)
>
> at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tart(BundleContextImpl.java:751)
>
> at
> org.eclipse.osgi.framework.internal.core.BundleHost.startWor ker(BundleHost.java:370)
>
> at
> org.eclipse.osgi.framework.internal.core.AbstractBundle.star t(AbstractBundle.java:284)
>
> at
> org.eclipse.osgi.framework.util.SecureAction.start(SecureAct ion.java:417)
> at
> org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger (BundleLoader.java:265)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter .postFindLocalClass(EclipseLazyStarter.java:106)
>
> at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoc alClass(ClasspathManager.java:453)
>
> at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.fin dLocalClass(DefaultClassLoader.java:216)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass (BundleLoader.java:393)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClassInter nal(BundleLoader.java:469)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund leLoader.java:422)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund leLoader.java:410)
>
> at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loa dClass(DefaultClassLoader.java:107)
>
> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
> at
> org.eclipse.osgi.internal.loader.BundleLoader.loadClass(Bund leLoader.java:338)
>
> at
> org.eclipse.osgi.framework.internal.core.BundleHost.loadClas s(BundleHost.java:232)
>
> at
> org.eclipse.osgi.framework.internal.core.AbstractBundle.load Class(AbstractBundle.java:1197)
>
> at
> org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI .createExecutableExtension(RegistryStrategyOSGI.java:174)
>
> at
> org.eclipse.core.internal.registry.ExtensionRegistry.createE xecutableExtension(ExtensionRegistry.java:904)
>
> at
> org.eclipse.core.internal.registry.ConfigurationElement.crea teExecutableExtension(ConfigurationElement.java:243)
>
> at
> org.eclipse.core.internal.registry.ConfigurationElementHandl e.createExecutableExtension(ConfigurationElementHandle.java: 55)
>
> at
> org.eclipse.jdt.core.JavaCore.computeClasspathContainerIniti alizer(JavaCore.java:2752)
>
> at
> org.eclipse.jdt.core.JavaCore.getClasspathContainerInitializ er(JavaCore.java:2728)
>
> at
> org.eclipse.jdt.internal.core.JavaModelManager.initializeCon tainer(JavaModelManager.java:2688)
>
> at
> org.eclipse.jdt.internal.core.JavaModelManager$11.run(JavaMo delManager.java:2613)
>
> at org.eclipse.core.internal.resources.Workspace.run(Workspace. java:1975)
> at
> org.eclipse.jdt.internal.core.JavaModelManager.initializeAll Containers(JavaModelManager.java:2653)
>
> at
> org.eclipse.jdt.internal.core.JavaModelManager.getClasspathC ontainer(JavaModelManager.java:1845)
>
> at org.eclipse.jdt.core.JavaCore.initializeAfterLoad(JavaCore.j ava:3463)
> at
> org.eclipse.jdt.internal.ui.InitializeAfterLoadJob$RealJob.r un(InitializeAfterLoadJob.java:35)
>
> at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
>
>
>
> Regards,
> Lars
>
Re: Build Update Site [message #544772 is a reply to message #544478] Mon, 05 July 2010 13:26 Go to previous message
Lars Fischer is currently offline Lars FischerFriend
Messages: 105
Registered: July 2009
Senior Member
Hello Filip,
On 02.07.2010 20:28, Filip Hrbek wrote:
> your last report gave me a hint. It looks like we have a conflict with
> registering the .pom suffix if both b3 and m2eclipse are installed. My
> original intent was to avoid registering the suffix and load the pom
> resource with a dedicated factory on demand but maybe I forgot to delete
> the relevant plugin metadata generated by EMF.
>
> I'll look into that when I have some time and fix (sorry, I'm too busy
> right now).
>
> Regarding your repository, does it contain any private/secret data, or
> would it be possible to upload it somewhere so that I could test with
> exactly the same data?

I tried to debug, how a maven repository is indexed and I found two issues:

1) Mapping my local maven repository shows, that
"maven-metadata-local.xml" files are used to search for contained artifacts.
But these files are only generated for locally created ones.
Downloaded artifacts have no such file. As result they are not
recognized as IU.

Is this a correct behavior? I think the folders should be scanned to
find the pom.xml files.


2.) I think I found the reason, why the load hangs:

I have a maven project, which uses a configuration like
"<name>${project.artifactId}</name>". "${project.artifactId}" is an
element of the pom structure itself, and is not defined as a separate
property.

ResolvedModel#resolveFeature calls POM#expandProperties with the str
value = "${project.artifactId}". This results in an infinite loop,
because there is no property set for "project.artifactId".

I think this needs to be changed. Valid pom.xml files could use
variables for all contained elements.
Please take a look at: http://maven.apache.org/pom.html#Properties

I filed a bugzilla entry with an example repository as attachment:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=318889

Regards,
Lars
Re: Build Update Site [message #611403 is a reply to message #544158] Thu, 01 July 2010 19:44 Go to previous message
Filip Hrbek is currently offline Filip HrbekFriend
Messages: 233
Registered: July 2009
Senior Member
I'd just add where to get the latest b3 aggregator (under hot development but with most known bugs fixed):

http://download.eclipse.org/modeling/emft/b3/updates-3.7mile stones for Eclipse IDE integration

and

http://download.eclipse.org/modeling/emft/b3/headless-3.7mil estones for command line tools.

The documentation is here:

http://wiki.eclipse.org/Eclipse_b3/aggregator/manual

Filip


Henrik Lindberg wrote:
> Hi,
> That is the exact use case fir which the b3 aggregator was crested to
> support. There are many options, from simply mirroring a repo, filtering
> and pruning the content, to reauthorizing categories.
>
> There is documentation on the wiki.
> - henrik
>
> Michael Hei<m-heiss@aon.at> wrote:
>> Hi,
>>
>> We are currently developing a software product based on Eclipse and
>> due to several reasons we want to build and maintain or own internal
>> UpdateSite where all the required external Features (Birt, GEF,
>> Subversion,....) are available to install using the update manager P2.
>>
>> And thats the point where my problems are starting ..... :) How do i
>> build an UpdateSite including only the features that i want?
>>
>> Can anybody tell my whether B3 is the right tool to do that?
>>
>> Thanks in advance. :)
>>
>> Best regards,
>> Michael
>
>
Re: Build Update Site [message #611404 is a reply to message #544160] Thu, 01 July 2010 20:54 Go to previous message
Michael Heiss is currently offline Michael HeissFriend
Messages: 25
Registered: July 2009
Junior Member
Thanks for reply. Glad to see that i found the right tool :)

I will try the latest milestone becuase with the version mentioned in the wiki i had some troubles when excluding features.
Re: Build Update Site [message #611408 is a reply to message #544160] Fri, 02 July 2010 07:43 Go to previous message
Lars Fischer is currently offline Lars FischerFriend
Messages: 105
Registered: July 2009
Senior Member
Hello Filip,

On 01.07.2010 21:44, Filip Hrbek wrote:
> I'd just add where to get the latest b3 aggregator (under hot
> development but with most known bugs fixed):
>
> http://download.eclipse.org/modeling/emft/b3/updates-3.7mile stones for
> Eclipse IDE integration
>
> and
>
> http://download.eclipse.org/modeling/emft/b3/headless-3.7mil estones for
> command line tools.
>
> The documentation is here:
>
> http://wiki.eclipse.org/Eclipse_b3/aggregator/manual

I would like to use b3 with the same purpose to create a composed p2
repository. Source of the contents are artifacts from a maven repository.

I created a contribution with a "maven2" nature repository. After
setting this, the repository loader starts running and than this job
hangs. CPU shows maximum usage, but the jobs never finishes and I have
to kill eclipse.

I tried this with helios release and latest 3.7 milestone.

Regards,
Lars
Re: Build Update Site [message #611410 is a reply to message #544258] Fri, 02 July 2010 08:44 Go to previous message
Filip Hrbek is currently offline Filip HrbekFriend
Messages: 233
Registered: July 2009
Senior Member
Hello Lars,

I think that most likely your job does not really hang but tries to scan the m2 repository which seems to be very large.

For aggregating repositories we need to retrieve full information about the artifacts including their dependencies. The only way (at least up to our knowledge) of getting this from an m2 repository is to traverse all its directories recursively and analyze all pom files. This operation is really resource consuming (both CPU and bandwidth).

You can optionally install a non-EPL'd extension of the aggregator from http://download.cloudsmith.com/b3/external-3.6 which adds a nexus index reader. To install it successfully, you must also register m2eclipse repository (http://m2eclipse.sonatype.org/sites/m2e ) in your p2 installer. However, this only speeds up retrieving initial information about the components, but even though we must visit each pom to get more information than is present in the index.

So, if your m2 repository is rather large, all I can recommend is to be patient. With the nexus indexer support you should see a reliable progress bar (if you open job progress view in your Ecilpse IDE) showing how much is done.

Note: Once you load the repository in your b3 aggregator editor, launching the actual aggregation loads it again into a different p2 profile (dedicated for the aggregation) which means that it will take similar time again.

Not sure if this helps you but it's how things work now.

Filip


On 2.7.2010 9:43, Lars Fischer wrote:
> Hello Filip,
>
> On 01.07.2010 21:44, Filip Hrbek wrote:
>> I'd just add where to get the latest b3 aggregator (under hot
>> development but with most known bugs fixed):
>>
>> http://download.eclipse.org/modeling/emft/b3/updates-3.7mile stones for
>> Eclipse IDE integration
>>
>> and
>>
>> http://download.eclipse.org/modeling/emft/b3/headless-3.7mil estones for
>> command line tools.
>>
>> The documentation is here:
>>
>> http://wiki.eclipse.org/Eclipse_b3/aggregator/manual
>
> I would like to use b3 with the same purpose to create a composed p2
> repository. Source of the contents are artifacts from a maven repository.
>
> I created a contribution with a "maven2" nature repository. After
> setting this, the repository loader starts running and than this job
> hangs. CPU shows maximum usage, but the jobs never finishes and I have
> to kill eclipse.
>
> I tried this with helios release and latest 3.7 milestone.
>
> Regards,
> Lars
>
Re: Build Update Site [message #611412 is a reply to message #544283] Fri, 02 July 2010 10:59 Go to previous message
Lars Fischer is currently offline Lars FischerFriend
Messages: 105
Registered: July 2009
Senior Member
On 02.07.2010 10:44, Filip Hrbek wrote:
> I think that most likely your job does not really hang but tries to scan
> the m2 repository which seems to be very large.

I tested it with an very small repo (5 jars). In this case, the load is
very fast, bun no items are listed within the repository in the .3aggr
editor.


> For aggregating repositories we need to retrieve full information about
> the artifacts including their dependencies. The only way (at least up to
> our knowledge) of getting this from an m2 repository is to traverse all
> its directories recursively and analyze all pom files. This operation is
> really resource consuming (both CPU and bandwidth).
>
> You can optionally install a non-EPL'd extension of the aggregator from
> http://download.cloudsmith.com/b3/external-3.6 which adds a nexus index
> reader. To install it successfully, you must also register m2eclipse
> repository (http://m2eclipse.sonatype.org/sites/m2e ) in your p2
> installer. However, this only speeds up retrieving initial information
> about the components, but even though we must visit each pom to get more
> information than is present in the index.
>
> So, if your m2 repository is rather large, all I can recommend is to be
> patient. With the nexus indexer support you should see a reliable
> progress bar (if you open job progress view in your Ecilpse IDE) showing
> how much is done.
>
> Note: Once you load the repository in your b3 aggregator editor,
> launching the actual aggregation loads it again into a different p2
> profile (dedicated for the aggregation) which means that it will take
> similar time again.
>
> Not sure if this helps you but it's how things work now.

I installed both additional tools and restarted the eclipse. The b3aggr
file contains a contribution to my local maven repository. It is also
indexed by m2eclipse. I cleaned it up, so the total size of all jars is
5 MB.

But in the end there is no success. The Repository Loader is still
running without an end.

Do I have to connect the mapped maven repository to the m2eclipse index?


The eclipse error log contains this enty. Maybe this could help?


eclipse.buildId=I20100608-0911
java.version=1.6.0_20
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE
Framework arguments: -product org.eclipse.epp.package.rcp.product
Command-line arguments: -os win32 -ws win32 -arch x86 -product
org.eclipse.epp.package.rcp.product


Warning
Fri Jul 02 12:51:31 CEST 2010
org.eclipse.b3.p2.maven.pom.impl.PomFactoryImpl cannot be cast to
org.maven.ide.components.pom.PomFactory

java.lang.ClassCastException:
org.eclipse.b3.p2.maven.pom.impl.PomFactoryImpl cannot be cast to
org.maven.ide.components.pom.PomFactory
at
org.maven.ide.components.pom.impl.PomFactoryImpl.init(PomFac toryImpl.java:38)
at org.maven.ide.components.pom.PomFactory.<clinit>(PomFactory.java:30)
at
org.maven.ide.eclipse.embedder.MavenModelManager.<clinit>(MavenModelManager.java:81)
at org.maven.ide.eclipse.MavenPlugin.start(MavenPlugin.java:338 )
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl$1 .run(BundleContextImpl.java:783)
at java.security.AccessController.doPrivileged(Native Method)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tartActivator(BundleContextImpl.java:774)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tart(BundleContextImpl.java:755)
at
org.eclipse.osgi.framework.internal.core.BundleHost.startWor ker(BundleHost.java:370)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.star t(AbstractBundle.java:284)
at
org.eclipse.osgi.framework.util.SecureAction.start(SecureAct ion.java:417)
at
org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger (BundleLoader.java:265)
at
org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter .postFindLocalClass(EclipseLazyStarter.java:106)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoc alClass(ClasspathManager.java:453)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.fin dLocalClass(DefaultClassLoader.java:216)
at
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass (BundleLoader.java:393)
at
org.eclipse.osgi.internal.loader.SingleSourcePackage.loadCla ss(SingleSourcePackage.java:33)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClassInter nal(BundleLoader.java:466)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund leLoader.java:422)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund leLoader.java:410)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loa dClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:23 89)
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.load BundleActivator(AbstractBundle.java:151)
at
org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tart(BundleContextImpl.java:751)
at
org.eclipse.osgi.framework.internal.core.BundleHost.startWor ker(BundleHost.java:370)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.star t(AbstractBundle.java:284)
at
org.eclipse.osgi.framework.util.SecureAction.start(SecureAct ion.java:417)
at
org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger (BundleLoader.java:265)
at
org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter .postFindLocalClass(EclipseLazyStarter.java:106)
at
org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoc alClass(ClasspathManager.java:453)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.fin dLocalClass(DefaultClassLoader.java:216)
at
org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass (BundleLoader.java:393)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClassInter nal(BundleLoader.java:469)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund leLoader.java:422)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund leLoader.java:410)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loa dClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at
org.eclipse.osgi.internal.loader.BundleLoader.loadClass(Bund leLoader.java:338)
at
org.eclipse.osgi.framework.internal.core.BundleHost.loadClas s(BundleHost.java:232)
at
org.eclipse.osgi.framework.internal.core.AbstractBundle.load Class(AbstractBundle.java:1197)
at
org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI .createExecutableExtension(RegistryStrategyOSGI.java:174)
at
org.eclipse.core.internal.registry.ExtensionRegistry.createE xecutableExtension(ExtensionRegistry.java:904)
at
org.eclipse.core.internal.registry.ConfigurationElement.crea teExecutableExtension(ConfigurationElement.java:243)
at
org.eclipse.core.internal.registry.ConfigurationElementHandl e.createExecutableExtension(ConfigurationElementHandle.java: 55)
at
org.eclipse.jdt.core.JavaCore.computeClasspathContainerIniti alizer(JavaCore.java:2752)
at
org.eclipse.jdt.core.JavaCore.getClasspathContainerInitializ er(JavaCore.java:2728)
at
org.eclipse.jdt.internal.core.JavaModelManager.initializeCon tainer(JavaModelManager.java:2688)
at
org.eclipse.jdt.internal.core.JavaModelManager$11.run(JavaMo delManager.java:2613)
at org.eclipse.core.internal.resources.Workspace.run(Workspace. java:1975)
at
org.eclipse.jdt.internal.core.JavaModelManager.initializeAll Containers(JavaModelManager.java:2653)
at
org.eclipse.jdt.internal.core.JavaModelManager.getClasspathC ontainer(JavaModelManager.java:1845)
at org.eclipse.jdt.core.JavaCore.initializeAfterLoad(JavaCore.j ava:3463)
at
org.eclipse.jdt.internal.ui.InitializeAfterLoadJob$RealJob.r un(InitializeAfterLoadJob.java:35)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)



Regards,
Lars
Re: Build Update Site [message #611415 is a reply to message #544324] Fri, 02 July 2010 18:19 Go to previous message
Michael Heiss is currently offline Michael HeissFriend
Messages: 25
Registered: July 2009
Junior Member
I tried to build an custom update site but now i ran into an exception during the verification.


java.util.NoSuchElementException
at org.eclipse.emf.common.util.AbstractEList$EIterator.doNext(A bstractEList.java:717)
at org.eclipse.emf.common.util.AbstractEList$EIterator.next(Abs tractEList.java:696)
at org.eclipse.b3.aggregator.engine.RepositoryVerifier.resolveP artialIU(RepositoryVerifier.java:339)
at org.eclipse.b3.aggregator.engine.RepositoryVerifier.run(Repo sitoryVerifier.java:201)
at org.eclipse.b3.aggregator.engine.Builder.runRepositoryVerifi er(Builder.java:1091)
at org.eclipse.b3.aggregator.engine.Builder.run(Builder.java:60 7)
at org.eclipse.b3.aggregator.presentation.AggregatorActionBarCo ntributor$BuildRepoAction$1.run(AggregatorActionBarContribut or.java:267)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)


I debuged the application and found the IU that causes the error:

org.eclipse.b3.p2.impl.InstallableUnitImpl@5b9e775d (id: org.eclipse.team.svn.ui.capabilities, version: 0.7.9.I20100512-1900, filter: null, resolved: false, singleton: false


I get the error message using the latest version (3.7) as well as with version 3.6.
Re: Build Update Site [message #611416 is a reply to message #611415] Fri, 02 July 2010 18:24 Go to previous message
Filip Hrbek is currently offline Filip HrbekFriend
Messages: 233
Registered: July 2009
Senior Member
Could you please enter a bugzilla issue on this?

Thanks,

Filip

Michael Heiss wrote:
> I tried to build an custom update site but now i ran into an exception
> during the verification.
>
>
> java.util.NoSuchElementException
> at
> org.eclipse.emf.common.util.AbstractEList$EIterator.doNext(A bstractEList.java:717)
>
> at
> org.eclipse.emf.common.util.AbstractEList$EIterator.next(Abs tractEList.java:696)
>
> at
> org.eclipse.b3.aggregator.engine.RepositoryVerifier.resolveP artialIU(RepositoryVerifier.java:339)
>
> at
> org.eclipse.b3.aggregator.engine.RepositoryVerifier.run(Repo sitoryVerifier.java:201)
>
> at
> org.eclipse.b3.aggregator.engine.Builder.runRepositoryVerifi er(Builder.java:1091)
>
> at org.eclipse.b3.aggregator.engine.Builder.run(Builder.java:60 7)
> at
> org.eclipse.b3.aggregator.presentation.AggregatorActionBarCo ntributor$BuildRepoAction$1.run(AggregatorActionBarContribut or.java:267)
>
> at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
>
>
> I debuged the application and found the IU that causes the error:
>
> org.eclipse.b3.p2.impl.InstallableUnitImpl@5b9e775d (id:
> org.eclipse.team.svn.ui.capabilities, version: 0.7.9.I20100512-1900,
> filter: null, resolved: false, singleton: false
>
>
> I get the error message using the latest version (3.7) as well as with
> version 3.6.
>
Re: Build Update Site [message #611418 is a reply to message #611415] Fri, 02 July 2010 18:27 Go to previous message
Henrik Lindberg is currently offline Henrik LindbergFriend
Messages: 2501
Registered: July 2009
Senior Member
It should not do that. Please log an issue for emft.b3.aggregator...
- henrik

Michael Heiss <m-heiss@aon.at> wrote:
> I tried to build an custom update site but now i ran into an exception
> during the verification.
>
>
> java.util.NoSuchElementException
> at
> org.eclipse.emf.common.util.AbstractEList$EIterator.doNext(A bstractEList.java:717)
> at
> org.eclipse.emf.common.util.AbstractEList$EIterator.next(Abs tractEList.java:696)
> at
> org.eclipse.b3.aggregator.engine.RepositoryVerifier.resolveP artialIU(RepositoryVerifier.java:339)
> at
> org.eclipse.b3.aggregator.engine.RepositoryVerifier.run(Repo sitoryVerifier.java:201)
> at
> org.eclipse.b3.aggregator.engine.Builder.runRepositoryVerifi er(Builder.java:1091)
> at org.eclipse.b3.aggregator.engine.Builder.run(Builder.java:60 7)
> at
> org.eclipse.b3.aggregator.presentation.AggregatorActionBarCo ntributor$BuildRepoAction$1.run(AggregatorActionBarContribut or.java:267)
> at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
>
>
> I debuged the application and found the IU that causes the error:
>
> org.eclipse.b3.p2.impl.InstallableUnitImpl@5b9e775d (id:
> org.eclipse.team.svn.ui.capabilities, version: 0.7.9.I20100512-1900,
> filter: null, resolved: false, singleton: false
>
>
> I get the error message using the latest version (3.7) as well as with
> version 3.6.


--
- henrik
Re: Build Update Site [message #611565 is a reply to message #544324] Fri, 02 July 2010 18:28 Go to previous message
Filip Hrbek is currently offline Filip HrbekFriend
Messages: 233
Registered: July 2009
Senior Member
Thanks Lars,

your last report gave me a hint. It looks like we have a conflict with registering the .pom suffix if both b3 and m2eclipse are installed. My original intent was to avoid registering the suffix and load the pom resource with a dedicated factory on demand but maybe I forgot to delete the relevant plugin metadata generated by EMF.

I'll look into that when I have some time and fix (sorry, I'm too busy right now).

Regarding your repository, does it contain any private/secret data, or would it be possible to upload it somewhere so that I could test with exactly the same data?

Filip

Lars Fischer wrote:
> On 02.07.2010 10:44, Filip Hrbek wrote:
>> I think that most likely your job does not really hang but tries to scan
>> the m2 repository which seems to be very large.
>
> I tested it with an very small repo (5 jars). In this case, the load is
> very fast, bun no items are listed within the repository in the .3aggr
> editor.
>
>
>> For aggregating repositories we need to retrieve full information about
>> the artifacts including their dependencies. The only way (at least up to
>> our knowledge) of getting this from an m2 repository is to traverse all
>> its directories recursively and analyze all pom files. This operation is
>> really resource consuming (both CPU and bandwidth).
>>
>> You can optionally install a non-EPL'd extension of the aggregator from
>> http://download.cloudsmith.com/b3/external-3.6 which adds a nexus index
>> reader. To install it successfully, you must also register m2eclipse
>> repository (http://m2eclipse.sonatype.org/sites/m2e ) in your p2
>> installer. However, this only speeds up retrieving initial information
>> about the components, but even though we must visit each pom to get more
>> information than is present in the index.
>>
>> So, if your m2 repository is rather large, all I can recommend is to be
>> patient. With the nexus indexer support you should see a reliable
>> progress bar (if you open job progress view in your Ecilpse IDE) showing
>> how much is done.
>>
>> Note: Once you load the repository in your b3 aggregator editor,
>> launching the actual aggregation loads it again into a different p2
>> profile (dedicated for the aggregation) which means that it will take
>> similar time again.
>>
>> Not sure if this helps you but it's how things work now.
>
> I installed both additional tools and restarted the eclipse. The b3aggr
> file contains a contribution to my local maven repository. It is also
> indexed by m2eclipse. I cleaned it up, so the total size of all jars is
> 5 MB.
>
> But in the end there is no success. The Repository Loader is still
> running without an end.
>
> Do I have to connect the mapped maven repository to the m2eclipse index?
>
>
> The eclipse error log contains this enty. Maybe this could help?
>
>
> eclipse.buildId=I20100608-0911
> java.version=1.6.0_20
> java.vendor=Sun Microsystems Inc.
> BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=de_DE
> Framework arguments: -product org.eclipse.epp.package.rcp.product
> Command-line arguments: -os win32 -ws win32 -arch x86 -product
> org.eclipse.epp.package.rcp.product
>
>
> Warning
> Fri Jul 02 12:51:31 CEST 2010
> org.eclipse.b3.p2.maven.pom.impl.PomFactoryImpl cannot be cast to
> org.maven.ide.components.pom.PomFactory
>
> java.lang.ClassCastException:
> org.eclipse.b3.p2.maven.pom.impl.PomFactoryImpl cannot be cast to
> org.maven.ide.components.pom.PomFactory
> at
> org.maven.ide.components.pom.impl.PomFactoryImpl.init(PomFac toryImpl.java:38)
>
> at org.maven.ide.components.pom.PomFactory.<clinit>(PomFactory.java:30)
> at
> org.maven.ide.eclipse.embedder.MavenModelManager.<clinit>(MavenModelManager.java:81)
>
> at org.maven.ide.eclipse.MavenPlugin.start(MavenPlugin.java:338 )
> at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl$1 .run(BundleContextImpl.java:783)
>
> at java.security.AccessController.doPrivileged(Native Method)
> at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tartActivator(BundleContextImpl.java:774)
>
> at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tart(BundleContextImpl.java:755)
>
> at
> org.eclipse.osgi.framework.internal.core.BundleHost.startWor ker(BundleHost.java:370)
>
> at
> org.eclipse.osgi.framework.internal.core.AbstractBundle.star t(AbstractBundle.java:284)
>
> at
> org.eclipse.osgi.framework.util.SecureAction.start(SecureAct ion.java:417)
> at
> org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger (BundleLoader.java:265)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter .postFindLocalClass(EclipseLazyStarter.java:106)
>
> at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoc alClass(ClasspathManager.java:453)
>
> at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.fin dLocalClass(DefaultClassLoader.java:216)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass (BundleLoader.java:393)
>
> at
> org.eclipse.osgi.internal.loader.SingleSourcePackage.loadCla ss(SingleSourcePackage.java:33)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClassInter nal(BundleLoader.java:466)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund leLoader.java:422)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund leLoader.java:410)
>
> at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loa dClass(DefaultClassLoader.java:107)
>
> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
> at java.lang.Class.getDeclaredConstructors0(Native Method)
> at java.lang.Class.privateGetDeclaredConstructors(Class.java:23 89)
> 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.load BundleActivator(AbstractBundle.java:151)
>
> at
> org.eclipse.osgi.framework.internal.core.BundleContextImpl.s tart(BundleContextImpl.java:751)
>
> at
> org.eclipse.osgi.framework.internal.core.BundleHost.startWor ker(BundleHost.java:370)
>
> at
> org.eclipse.osgi.framework.internal.core.AbstractBundle.star t(AbstractBundle.java:284)
>
> at
> org.eclipse.osgi.framework.util.SecureAction.start(SecureAct ion.java:417)
> at
> org.eclipse.osgi.internal.loader.BundleLoader.setLazyTrigger (BundleLoader.java:265)
>
> at
> org.eclipse.core.runtime.internal.adaptor.EclipseLazyStarter .postFindLocalClass(EclipseLazyStarter.java:106)
>
> at
> org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLoc alClass(ClasspathManager.java:453)
>
> at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.fin dLocalClass(DefaultClassLoader.java:216)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass (BundleLoader.java:393)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClassInter nal(BundleLoader.java:469)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund leLoader.java:422)
>
> at
> org.eclipse.osgi.internal.loader.BundleLoader.findClass(Bund leLoader.java:410)
>
> at
> org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loa dClass(DefaultClassLoader.java:107)
>
> at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
> at
> org.eclipse.osgi.internal.loader.BundleLoader.loadClass(Bund leLoader.java:338)
>
> at
> org.eclipse.osgi.framework.internal.core.BundleHost.loadClas s(BundleHost.java:232)
>
> at
> org.eclipse.osgi.framework.internal.core.AbstractBundle.load Class(AbstractBundle.java:1197)
>
> at
> org.eclipse.core.internal.registry.osgi.RegistryStrategyOSGI .createExecutableExtension(RegistryStrategyOSGI.java:174)
>
> at
> org.eclipse.core.internal.registry.ExtensionRegistry.createE xecutableExtension(ExtensionRegistry.java:904)
>
> at
> org.eclipse.core.internal.registry.ConfigurationElement.crea teExecutableExtension(ConfigurationElement.java:243)
>
> at
> org.eclipse.core.internal.registry.ConfigurationElementHandl e.createExecutableExtension(ConfigurationElementHandle.java: 55)
>
> at
> org.eclipse.jdt.core.JavaCore.computeClasspathContainerIniti alizer(JavaCore.java:2752)
>
> at
> org.eclipse.jdt.core.JavaCore.getClasspathContainerInitializ er(JavaCore.java:2728)
>
> at
> org.eclipse.jdt.internal.core.JavaModelManager.initializeCon tainer(JavaModelManager.java:2688)
>
> at
> org.eclipse.jdt.internal.core.JavaModelManager$11.run(JavaMo delManager.java:2613)
>
> at org.eclipse.core.internal.resources.Workspace.run(Workspace. java:1975)
> at
> org.eclipse.jdt.internal.core.JavaModelManager.initializeAll Containers(JavaModelManager.java:2653)
>
> at
> org.eclipse.jdt.internal.core.JavaModelManager.getClasspathC ontainer(JavaModelManager.java:1845)
>
> at org.eclipse.jdt.core.JavaCore.initializeAfterLoad(JavaCore.j ava:3463)
> at
> org.eclipse.jdt.internal.ui.InitializeAfterLoadJob$RealJob.r un(InitializeAfterLoadJob.java:35)
>
> at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
>
>
>
> Regards,
> Lars
>
Re: Build Update Site [message #611580 is a reply to message #544478] Mon, 05 July 2010 13:26 Go to previous message
Lars Fischer is currently offline Lars FischerFriend
Messages: 105
Registered: July 2009
Senior Member
Hello Filip,
On 02.07.2010 20:28, Filip Hrbek wrote:
> your last report gave me a hint. It looks like we have a conflict with
> registering the .pom suffix if both b3 and m2eclipse are installed. My
> original intent was to avoid registering the suffix and load the pom
> resource with a dedicated factory on demand but maybe I forgot to delete
> the relevant plugin metadata generated by EMF.
>
> I'll look into that when I have some time and fix (sorry, I'm too busy
> right now).
>
> Regarding your repository, does it contain any private/secret data, or
> would it be possible to upload it somewhere so that I could test with
> exactly the same data?

I tried to debug, how a maven repository is indexed and I found two issues:

1) Mapping my local maven repository shows, that
"maven-metadata-local.xml" files are used to search for contained artifacts.
But these files are only generated for locally created ones.
Downloaded artifacts have no such file. As result they are not
recognized as IU.

Is this a correct behavior? I think the folders should be scanned to
find the pom.xml files.


2.) I think I found the reason, why the load hangs:

I have a maven project, which uses a configuration like
"<name>${project.artifactId}</name>". "${project.artifactId}" is an
element of the pom structure itself, and is not defined as a separate
property.

ResolvedModel#resolveFeature calls POM#expandProperties with the str
value = "${project.artifactId}". This results in an infinite loop,
because there is no property set for "project.artifactId".

I think this needs to be changed. Valid pom.xml files could use
variables for all contained elements.
Please take a look at: http://maven.apache.org/pom.html#Properties

I filed a bugzilla entry with an example repository as attachment:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=318889

Regards,
Lars
Previous Topic:Unable to build Helios release with b3
Next Topic:macos carbon broken?
Goto Forum:
  


Current Time: Sun Dec 21 08:35:51 GMT 2014

Powered by FUDForum. Page generated in 0.14889 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software