Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » Modeling (top-level project) » Partially Reloading the Target Platform
Partially Reloading the Target Platform [message #1425404] Wed, 17 September 2014 09:03 Go to next message
Bernhard Buss is currently offline Bernhard BussFriend
Messages: 13
Registered: September 2014
Junior Member
Hello,

I am wondering if it is possible to only reload certain parts of the target platform. In our project, we have so many plugins in various target update sites, that reloading the target takes an inefficiently long time: 10min for loading the target plugins, and another 15min for rebuilding everything.

If we could only reload parts of the target platform (say only from certain update sites), and in addition only have to rebuild/clean those plugins that have been reloaded, then both loading time and rebuilding time should come down significantly.

Therefore my questions:

1) Is it possible to only reload parts of the target platform?

2) If not, what would it take (technically) to make it possible?


Thanks,
Bernhard
Re: Partially Reloading the Target Platform [message #1425570 is a reply to message #1425404] Wed, 17 September 2014 13:46 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33107
Registered: July 2009
Senior Member
Bernhard,

This doesn't sound like a modeling question. Perhaps you should
consider trying Oomph. In particular the targlet-based target platforms
are a much improved implementation of a PDE's target platform; it makes
heavy use of bundle pooling so that it's possible to update a target
platform in less than a minute in most cases. It doesn't allow
selective updates either however. I'm not sure what kind of
organization you're in, but you could consider creating mirrors of the
update sites you want to use (it's pretty easy
https://wiki.eclipse.org/Equinox_p2_Repository_Mirroring) so that you
selectively update the mirrors and update the TP against those mirrors
instead.


On 17/09/2014 2:17 PM, Bernhard Buss wrote:
> Hello,
>
> I am wondering if it is possible to only reload certain parts of the
> target platform. In our project, we have so many plugins in various
> target update sites, that reloading the target takes an inefficiently
> long time: 10min for loading the target plugins, and another 15min for
> rebuilding everything.
>
> If we could only reload parts of the target platform (say only from
> certain update sites), and in addition only have to rebuild/clean
> those plugins that have been reloaded, then both loading time and
> rebuilding time should come down significantly.
>
> Therefore my questions:
>
> 1) Is it possible to only reload parts of the target platform?
>
> 2) If not, what would it take (technically) to make it possible?
>
>
> Thanks,
> Bernhard


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: Partially Reloading the Target Platform [message #1426795 is a reply to message #1425570] Fri, 19 September 2014 08:16 Go to previous messageGo to next message
Bernhard Buss is currently offline Bernhard BussFriend
Messages: 13
Registered: September 2014
Junior Member
Hi Ed,

Thanks for the tip of using Oomph; I can use that to change the way we distribute our eclipse. And if it had been available two years ago, I would have been able to contribute some fixes to xtext.

But I don't think it will help us in reducing target reload and build time. We have hundreds of artefacts in our target, which are already all mirrored in our p2 repository. The problem is that we target an older eclipse and EMF features than we are developing with. In addition, we target our own products, which need to be updated every now and then, forcing us to do a target reload, reloading hundreds of plugins that have not changed at all. Also; we have hundreds of plugins in the workspace, it would be great if we could move them into the target and only check out those that you need to work on.

I realized now that there is a PDE forum, so I will post my question there again; my goal would be that eclipse supports partial target reloading. Eclipse allows project-based building and cleaning, so why not support it as well in the target?

Regards,
Bernhard
Re: Partially Reloading the Target Platform [message #1426893 is a reply to message #1426795] Fri, 19 September 2014 11:39 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33107
Registered: July 2009
Senior Member
Bernhard,

Comments below.

On 19/09/2014 10:16 AM, Bernhard Buss wrote:
> Hi Ed,
>
> Thanks for the tip of using Oomph; I can use that to change the way we
> distribute our eclipse. And if it had been available two years ago, I
> would have been able to contribute some fixes to xtext.
It installs into Juno, last I checked...
>
> But I don't think it will help us in reducing target reload and build
> time. We have hundreds of artefacts in our target, which are already
> all mirrored in our p2 repository.
I see.
> The problem is that we target an older eclipse and EMF features than
> we are developing with.
I'm not sure why that's a problem. What you target and the IDE you're
using to develop in are independent...
> In addition, we target our own products, which need to be updated
> every now and then, forcing us to do a target reload, reloading
> hundreds of plugins that have not changed at all.
So I assume you're using a build qualifier that's a time stamp rather a
build qualifier that reflects that last change within the project. In
the latter case, the bundle version is changed only if the contents are
really changed, and hence an update would cause only as many updates as
are necessary...
> Also; we have hundreds of plugins in the workspace, it would be great
> if we could move them into the target and only check out those that
> you need to work on.
With targlets you can resolve both a workspace project and the
corresponding binary IU in the TP, i.e., you can close the workspace
project and PDE will resolve to the binary version in the TP. (See
recent posts in the Oomph forum.)
>
> I realized now that there is a PDE forum, so I will post my question
> there again; my goal would be that eclipse supports partial target
> reloading.
It's pretty hard to get the PDE folks to do much for you. There's not
much active development, while Oomph is being actively developed. In
fact, the feature I mention above (resolving both a workspace IU and a
TP IU) was to developed to support the Xtext folks specifically, and for
my own personal interest, because I develop Xcore and often want Xtext
as workspace projects, but I don't like having to wait forever for them
to build. So with this approach, I can close them, and reopen them
later, selectively, and pull the latest source from the git repository
to update it.
> Eclipse allows project-based building and cleaning, so why not support
> it as well in the target?
There are several technologies involved. In particular PDE uses p2's
resolution mechanism and there's no mechanism there to tell it to not to
look at updates for some repository but to consider updates for some
other repository. It's more likely such support would come from Oomph
than from PDE, because we've built a layer on top of P2 to support many
cool things, such as offline support. So I could imagine that selective
updates is mostly an issue of controlling which repositories are
considered online and which ones should be treated as offline (and hence
will continue to use the version currently already in the bundle pool)...

The PDE folks are nice so this is not intended as a criticism of them
personally, but their capacity to implement cool new things is highly
limited.
>
> Regards,
> Bernhard


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: Partially Reloading the Target Platform [message #1428810 is a reply to message #1426893] Mon, 22 September 2014 11:38 Go to previous messageGo to next message
Bernhard Buss is currently offline Bernhard BussFriend
Messages: 13
Registered: September 2014
Junior Member
Ed,

In this case I am very glad I posted here by accident, and learned about Oomph. Also, in the PDE forum I got no responses yet, while you replied quickly.

I am trying to create a working Oomph setup for our project, but it is really hard as there is no documentation. I hope there will be a presentation at the EclipseCon!

I guess I will be continuing posting in the Oomph forum my questions for my problems...

Thanks,
Bernhard
Re: Partially Reloading the Target Platform [message #1428886 is a reply to message #1428810] Mon, 22 September 2014 14:04 Go to previous messageGo to next message
Bernhard Buss is currently offline Bernhard BussFriend
Messages: 13
Registered: September 2014
Junior Member
Ed,

Quote:
So I assume you're using a build qualifier that's a time stamp rather a
build qualifier that reflects that last change within the project. In
the latter case, the bundle version is changed only if the contents are
really changed, and hence an update would cause only as many updates as
are necessary...


Yes, that is what we do, with every nightly build we update our product update site with new plugins that have the snapshot timestamp of the nightly build.

Do you know of another way? How to change the version of a Manifest & pom.xml only for a real change in a plugin? Without doing it manually?

Regards,
Bernhard
Re: Partially Reloading the Target Platform [message #1428911 is a reply to message #1428810] Mon, 22 September 2014 14:37 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33107
Registered: July 2009
Senior Member
Bernhard,

Comments below.

On 22/09/2014 1:38 PM, Bernhard Buss wrote:
> Ed,
>
> In this case I am very glad I posted here by accident, and learned
> about Oomph. Also, in the PDE forum I got no responses yet, while you
> replied quickly.
Yes, it's hard to get responsiveness for PDE issues: too few people
doing the work and too many wishes for them to handle. I always try to
answer quickly, though I too have too much to do...
>
> I am trying to create a working Oomph setup for our project, but it is
> really hard as there is no documentation.
Yes, I've been working on the documentation for the last week. There's a
first draft, but I still need to write all the guide for authoring all
the different types of tasks, and that's still a lot of work to do...
> I hope there will be a presentation at the EclipseCon!
I've only missed one EclipseCon, so unless there is death involved, I'll
be there...
>
> I guess I will be continuing posting in the Oomph forum my questions
> for my problems...
Yes, that's definitely the place to go....
>
> Thanks,
> Bernhard


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: Partially Reloading the Target Platform [message #1428918 is a reply to message #1428886] Mon, 22 September 2014 14:42 Go to previous message
Ed Merks is currently offline Ed MerksFriend
Messages: 33107
Registered: July 2009
Senior Member
Berhard,

Comments below.

On 22/09/2014 4:04 PM, Bernhard Buss wrote:
> Ed,
>
> Quote:
>> So I assume you're using a build qualifier that's a time stamp rather
>> a build qualifier that reflects that last change within the project.
>> In the latter case, the bundle version is changed only if the
>> contents are really changed, and hence an update would cause only as
>> many updates as are necessary...
>
>
> Yes, that is what we do, with every nightly build we update our
> product update site with new plugins that have the snapshot timestamp
> of the nightly build.
>
> Do you know of another way?
I think (I'm no build expert) that this is the magical thing in Oomph's
root pom.xml:

<configuration>
<sourceReferences>
<generate>true</generate>
</sourceReferences>
<format>'v'yyyyMMdd-HHmm</format>
<timestampProvider>jgit</timestampProvider>
<jgit.ignore>pom.xml</jgit.ignore>
<jgit.dirtyWorkingTree>warning</jgit.dirtyWorkingTree>
</configuration>

Specifically the timestampProvider somehow magically uses jgit to
determine the maximum timestamp of any file in the project so only
actual changes update the qualifier replacement... We're using
maven/tycho for our builds...
> How to change the version of a Manifest & pom.xml only for a real
> change in a plugin? Without doing it manually?
I'm not sure if you're using tycho and git, but that's how we do it for
Oomph itself.
>
> Regards,
> Bernhard


Ed Merks
Professional Support: https://www.macromodeling.com/
Previous Topic:About projects that uses two or more related metamodels (or: using metamodels as viewpoints)
Next Topic:New Eclipse User Group in New Jersey
Goto Forum:
  


Current Time: Tue Mar 19 08:42:53 GMT 2024

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

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

Back to the top