Home » Eclipse Projects » Oomph » Complete reference for all concepts in Oomph?
Complete reference for all concepts in Oomph? [message #1822826] |
Sat, 14 March 2020 13:17 |
Sina Madani Messages: 160 Registered: November 2015 Location: York, UK |
Senior Member |
|
|
Hello,
I was wondering where I can find a complete reference guide for all of the tooling provided in the Oomph setup editor? After spending many hours working with it I have only just now managed to deduce that you need two separate .setup files - one for users and one for committers, although the UI gives the impression that both can be handled in one file!
Needless to say, I'm extremely confused as to how to learn Oomph. The resources online seem to be very scattered, and there is no clear explanation anywhere of e.g. what is a "Targlet", the interplay between Targlet and Target Platform, what is "P2 Director", what's the difference between Requirement and Repository etc. What is "API Baseline" and "API Baseline from Target"?
Unless I have missed something entirely obvious, or expecting user-friendly documentation all in one place is asking too much, the only way to use Oomph is copying existing examples and guessing what they're doing through trial and error. That, and browsing these forums and hoping someone else has had similar questions / confusion.
Thanks.
|
|
| |
Re: Complete reference for all concepts in Oomph? [message #1822829 is a reply to message #1822828] |
Sat, 14 March 2020 15:25 |
Sina Madani Messages: 160 Registered: November 2015 Location: York, UK |
Senior Member |
|
|
Hi Ed,
Thanks for the reply. What made me confused is the fact that both the "Project Setup" and "Product Setup" models have the same extension, but do different things. In the XML, one says "setup:Product" and the other "setup:Project", so even though they share exactly the same tooling and format, they are different.
The main thing I can't get my head around is how Oomph handles dependency resolution. We have OSGi projects and a target platform, but there seems to be a lot of concepts in Oomph that, to a first-time Oomph users, all seem to do the same thing. "Targlet", "Target Platform", "P2 Director", "Baseline API" etc. Aren't they all basically for resolving dependencies? (What's the difference between them?) If so what's the simplest way to create a bundled Eclipse distribution for end-users - basically I want to drop in the update site and have some of the bundles pre-installed.
Thanks.
P.S: I ahve looked at that Targlet documentation, but unless I have missed something, it doesn't actually define what a Targlet is.. It shows how to set them up, but not what they actually do and how they differ from the P2 Director (again can't find anywhere which defines what that actually means, although I can have a guess that it looks for bundles from the .p2 folder, although I'm not sure if it actually downloads them if they don't exist).
|
|
| |
Re: Complete reference for all concepts in Oomph? [message #1822836 is a reply to message #1822830] |
Sun, 15 March 2020 06:35 |
Ed Merks Messages: 33133 Registered: July 2009 |
Senior Member |
|
|
Yes, all setup models have the same extension and share the same tooling. Indeed, depending on the type of element in the root of the resource, they have a different role to play as described here:
https://wiki.eclipse.org/Eclipse_Oomph_Authoring#Understanding_Setup_Tasks_and_Scopes
Dependency resolution plays a role in a number of places. Firstly during installs as used by the p2 Directory task. This is exactly that you do when you do Help -> Install New Software or Help -> Check for Updates. You specify one or more repositories in which to search and specify the things you want to have installed. With Oomph the things you want to have installed are specified as Requirements rather than directly as Installable Units. This is more flexible in that you can specify version ranges and other types of requirements (e.g., a requirement on Java package) that you cannot specify in the normal user interface. These requirements are exactly like what you can express a bundle's MANIFEST.MF (or the projects p2.inf). Targlets, as you noticed in your most recent posting are also more flexible because they can resolve the requirements of the source projects. This is because Oomph's targlet support can and does induce a p2 repository from a source location and can resolve Requirements from that induced p2 repository. This has the advantage that target platform resolution has the side effect of import those projects and also the advantage that the dependencies of those projects are resolved, even when those resolutions come from other actual p2 repositories such as Orbit.
Dependency resolution also plays a role when defining target platform and a target platform can also be used to specify an API baseline instead of just a target platform. These are basic concepts from PDE. To this Oomph adds targlet support so that rather than having to specify everything in a single *.target file you can compose the overall target platform from multiple Targlets. Targlets too are more flexible than a *.target file not just because they are composeable, but because you can specify what should be in the target platform with Requirements just as in the p2 Director task. They're also more flexible because you can define a single Targlet that can resolve to multiple different target platforms by virtue of multiple lists of repositories from which to resolve the Requirements.
The p2 Director task can be use to install/update an IDE with whatever you want installed; it looks for the resolutions in the repositories specified in the task. A Target Platform task can be used to provision a target platform based on a *.target file. A Targlets task can be use to do the same thing, but using targlets (resolving requirements from the repositories in the active/selected repository list). Similarly for the API baseline, i.e., if you try to do this manually, you'll see you can refer to an Eclipse installation or to a target definition So there is a task to do each of these.
As for drag-and-drop a setup into an IDE, there is currently no support for this. Marketplace Client has support for that, so you could define your own Marketplace listing for that purpose. In principle Oomph could provide support for dropping a Configuration onto an IDE; the tasks in the Configuration's Installation could be applied to the Installation of the IDE and the tasks in the Configuration's Workspace could be applied to the Workspace of the IDE. But such drag and drop support is supported only by the installer and the "Projects into Workspace" wizard.
And finally, yes, sometimes other people contribute helpful documentation. People also sometimes contribute to the wiki itself. Contributions are well.
Ed Merks
Professional Support: https://www.macromodeling.com/
|
|
|
Re: Complete reference for all concepts in Oomph? [message #1822839 is a reply to message #1822836] |
Sun, 15 March 2020 13:33 |
Sina Madani Messages: 160 Registered: November 2015 Location: York, UK |
Senior Member |
|
|
Hi Ed,
Thank you for the detailed explanations! I've managed to do what I was trying to using mainly P2 Director and Target Platform and Project Import, rather than Targlets. We will probably look into moving from target platform to Targlet at some point given the benefits you mentioned.
|
|
|
Goto Forum:
Current Time: Thu Apr 18 11:29:53 GMT 2024
Powered by FUDForum. Page generated in 0.01953 seconds
|