Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
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 Go to next message
Sina MadaniFriend
Messages: 156
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 #1822828 is a reply to message #1822826] Sat, 14 March 2020 14:58 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 32110
Registered: July 2009
Senior Member
What gives you the impression you need two separate files? Generally each of the project setups used by committers of the project is the same one used by the "users", if by users you mean contributors.

Yes, the documentation could be made more cohesive and more extensive. But no one funds any of this work. Free only buys you so much.

I think the following documentation gives a good overview of targlets and how they relate to PDE's target platform support.

https://wiki.eclipse.org/Oomph_Targlets

If after reading that, you have specific questions for clarification, I can answer that.

Looking at other examples is a good approach. Trial and error is inevitable no matter what software you write; otherwise there would be no need for debuggers. The wizards try to create a simple working starting point...











Ed Merks
Professional Support: https://www.macromodeling.com/
Re: Complete reference for all concepts in Oomph? [message #1822829 is a reply to message #1822828] Sat, 14 March 2020 15:25 Go to previous messageGo to next message
Sina MadaniFriend
Messages: 156
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 #1822830 is a reply to message #1822829] Sat, 14 March 2020 15:48 Go to previous messageGo to next message
Sina MadaniFriend
Messages: 156
Registered: November 2015
Location: York, UK
Senior Member
It's strange that the "Basic Tutorial" from an external source actually contains more helpful information than the official Wiki. I (think!) I've found what a Targlet is from here. So it's basically a project import for OSGi projects, so mainly useful for developer installations (or in Oomph terms, "Project") setup model. I assume this means rather than having Project Import and Target Platform, you can just have a "Targlet" which can automatically resolve the dependencies? For example it can automatically find the bundles required, even if they're on Orbit?
Re: Complete reference for all concepts in Oomph? [message #1822836 is a reply to message #1822830] Sun, 15 March 2020 06:35 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 32110
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 Go to previous message
Sina MadaniFriend
Messages: 156
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.
Previous Topic:Plugin could not be found
Next Topic:Preference not taking effect?
Goto Forum:
  


Current Time: Wed Dec 01 22:02:48 GMT 2021

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

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

Back to the top