blob: 48bdba04da0bbc2bc9bdda04a5d6afa310076929 [file] [log] [blame]
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Scopes (Oomph Setup Documentation)</title>
<link rel="stylesheet" href="../book.css">
<noscript></noscript>
<script type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Scopes (Oomph Setup Documentation)";
}
}
</script>
</head>
<body bgcolor="white" onload="windowTitle();">
<!-- <div class="help_breadcrumbs breadcrumbs_top"><a href="../Overview.html" title="Oomph Setup Documentation">Oomph Setup Documentation</a> > <a href="index.html" title="Category in Oomph Setup Documentation">Concepts</a></div> -->
<table border="0">
<tr>
<td width="100%"><h1>Scopes</h1></td>
<td align="right" valign="middle" nowrap><a href="DocConceptOverview.html" title="Backward to Context"><img src="../../images/backward.png" border="0"></a>&nbsp;<a href="DocInfrastructure.html" title="Forward to Infrastructure"><img src="../../images/forward.png" border="0"></a></td>
</tr>
</table>
<p>
A <a href="../../javadoc/org/eclipse/oomph/setup/Scope.html" title="Interface in org.eclipse.oomph.setup"><code>scope</code></a> is the course-grained unit for grouping related <a href="DocTask.html" title="Article in Oomph Setup Documentation">tasks</a>.
Scope are hierarchically structured and tasks are <a href="DocTaskComposition.html#ScopeList.scopeList" title="Section in Oomph Setup Documentation">gathered</a> from them based on this hierarchical structure.
They are stored in <a href="DocSetupResource.html" title="Article in Oomph Setup Documentation">resources</a>.
<a name="DocScope.properties">
Scopes
<p>
Each scope has the following properties:
<ul>
<a name="DocScope.name">
<li>
A required <a href="../../javadoc/org/eclipse/oomph/setup/Scope.html#getName()" title="Method in org.eclipse.oomph.setup.Scope"><code>attribute</code></a>
which should be a lower case name,
i.e., like a single component of a qualified Java package name.
The hierarchical <a href="../../javadoc/org/eclipse/oomph/setup/Scope.html#getParentScope()" title="Method in org.eclipse.oomph.setup.Scope"><code>containment</code></a> structure of scopes
induces a <a href="../../javadoc/org/eclipse/oomph/setup/Scope.html#getQualifiedName()" title="Method in org.eclipse.oomph.setup.Scope"><code>qualified</code></a> name attribute,
based on the '.' separated names of the scopes,
hence the recommendation to use a lower case scope name.
</li>
<a name="DocScope.label">
<li>
An optional <a href="../../javadoc/org/eclipse/oomph/setup/Scope.html#getLabel()" title="Method in org.eclipse.oomph.setup.Scope"><code>label</code></a> attribute,
which should be a title case name that may include spaces and punctuation.
</li>
<a name="DocScope.description">
<li>
An optional <a href="../../javadoc/org/eclipse/oomph/setup/Scope.html#getDescription()" title="Method in org.eclipse.oomph.setup.Scope"><code>description</code></a> attribute
which description can be arbitrary descriptive log.
</li>
<a name="DocScope.footer">
</ul>
</p>
<h2><a name="DocProductCatalog"></a>1&nbsp;&nbsp;Product Catalogs</h2>
<p>
A <a href="../../javadoc/org/eclipse/oomph/setup/ProductCatalog.html" title="Interface in org.eclipse.oomph.setup"><code>product catalog</code></a> is a <a href="../../javadoc/org/eclipse/oomph/setup/ProductCatalog.html#getProducts()" title="Method in org.eclipse.oomph.setup.ProductCatalog"><code>container</code></a> for <a href="DocScope.html#DocProduct" title="Chapter in Oomph Setup Documentation">products</a>
as well as a <a href="../../javadoc/org/eclipse/oomph/setup/SetupTaskContainer.html#getSetupTasks()" title="Method in org.eclipse.oomph.setup.SetupTaskContainer"><code>container</code></a> for all the <a href="DocTask.html" title="Article in Oomph Setup Documentation">tasks</a> to install any of those products.
<a name="DocProductCatalog.example">
For example,
there is an Eclipse product catalog
generated for all the packages available on <a href="https://www.eclipse.org/downloads/">Eclipse's download page</a>.
In other words, you can use Oomph to install any version of any package that you'd normally download and unzip from Eclipse.org.
<a name="DocProductCatalog.self">
In the case of a product that has Oomph installed,
but wasn't actually <a href="../user/wizard/DocInstallWizard.html" title="Article in Oomph Setup Documentation">installed</a> by Oomph,
there always exists a synthetic so called self product catalog
that contains the <a href="DocScope.html#DocProduct.self" title="Section in Oomph Setup Documentation">self product</a>.
<a name="DocProductCatalog.footer">
It is stored in a <a href="DocSetupResource.html#ProductCatalogResource" title="Chapter in Oomph Setup Documentation">project catalog resource</a>.
</p>
<h3><a name="DocProduct"></a>1.1&nbsp;&nbsp;Products</h3>
<p>
A <a href="../../javadoc/org/eclipse/oomph/setup/Product.html" title="Interface in org.eclipse.oomph.setup"><code>product</code></a> is a <a href="../../javadoc/org/eclipse/oomph/setup/Product.html#getVersions()" title="Method in org.eclipse.oomph.setup.Product"><code>container</code></a> for product <a href="DocScope.html#DocVersion" title="Chapter in Oomph Setup Documentation">versions</a>
as well as a <a href="../../javadoc/org/eclipse/oomph/setup/SetupTaskContainer.html#getSetupTasks()" title="Method in org.eclipse.oomph.setup.SetupTaskContainer"><code>container</code></a> for all the <a href="DocTask.html" title="Article in Oomph Setup Documentation">tasks</a> to install any of those product versions.
<a name="DocProduct.example">
For example,
there is a product in the <a href="DocScope.html#DocProductCatalog.example" title="Section in Oomph Setup Documentation">Eclipse</a> product catalog
for each Eclipse <a href="http://www.eclipse.org/downloads/packages/release/Luna/R">package</a>.
<a name="DocProduct.self">
In the case of a product that has Oomph installed,
but wasn't actually <a href="../user/wizard/DocInstallWizard.html" title="Article in Oomph Setup Documentation">installed</a> by Oomph,
there always exists a synthetic so called self product in the <a href="DocScope.html#DocProductCatalog.self" title="Section in Oomph Setup Documentation">self product catalog</a>
that contains a <a href="DocScope.html#DocVersion.self" title="Section in Oomph Setup Documentation">self product version</a>.
<a name="DocProduct.footer">
</p>
<h4><a name="DocVersion"></a>1.1.1&nbsp;&nbsp;Product Versions</h4>
<p>
A product <a href="../../javadoc/org/eclipse/oomph/setup/ProductVersion.html" title="Interface in org.eclipse.oomph.setup"><code>version</code></a> is a <a href="../../javadoc/org/eclipse/oomph/setup/SetupTaskContainer.html#getSetupTasks()" title="Method in org.eclipse.oomph.setup.SetupTaskContainer"><code>container</code></a> for all the <a href="DocTask.html" title="Article in Oomph Setup Documentation">tasks</a> to install a specific version of a product.
<a name="DocVersion.example">
For example,
there is a product version in the <a href="DocScope.html#DocProduct.example" title="Section in Oomph Setup Documentation">Eclipse Standard product</a> in the <a href="DocScope.html#DocProductCatalog.example" title="Section in Oomph Setup Documentation">Eclipse product catalog</a>
for installing the Eclipse Standard <a href="https://www.eclipse.org/downloads/packages/eclipse-standard-44/lunar">Luna</a> package.
</p>
<a name="DocVersion.self">
In the case of a product that has Oomph installed
but wasn't actually <a href="../user/wizard/DocInstallWizard.html" title="Article in Oomph Setup Documentation">installed</a> by Oomph,
there always exists a synthetic so called product version in the <a href="DocScope.html#DocProduct.self" title="Section in Oomph Setup Documentation">self product</a> int the <a href="DocScope.html#DocProductCatalog.self" title="Section in Oomph Setup Documentation">self product catalog</a>.
It captures,
via a <a href="DocTask.html#DocP2Task" title="Chapter in Oomph Setup Documentation">p2 task</a>,
all the information about the installable units that of that product installation
as well as all the update p2 sites that are available for updating those units within that product installation.
</p>
<h2><a name="DocProjectCatalog"></a>2&nbsp;&nbsp;Project Catalogs</h2>
<p>
A <a href="../../javadoc/org/eclipse/oomph/setup/Project.html" title="Interface in org.eclipse.oomph.setup"><code>project catalog</code></a> is a <a href="../../javadoc/org/eclipse/oomph/setup/ProjectContainer.html#getProjects()" title="Method in org.eclipse.oomph.setup.ProjectContainer"><code>container</code></a> for <a href="DocScope.html#DocProject" title="Chapter in Oomph Setup Documentation">projects</a>
as well as a <a href="../../javadoc/org/eclipse/oomph/setup/SetupTaskContainer.html#getSetupTasks()" title="Method in org.eclipse.oomph.setup.SetupTaskContainer"><code>container</code></a> for both
the tasks to provision a workspace with any of those projects
and the tasks to install the tools needed to work with any of those projects.
For example,
there is an Eclipse project catalog for provisioning various projects hosted at Eclipse.org.
It is stored in a <a href="DocSetupResource.html#ProjectCatalogResource" title="Chapter in Oomph Setup Documentation">project catalog resource</a>.
</p>
<h3><a name="DocProject"></a>2.1&nbsp;&nbsp;Projects</h3>
<p>
A <a href="../../javadoc/org/eclipse/oomph/setup/Project.html" title="Interface in org.eclipse.oomph.setup"><code>project</code></a> is a <a href="../../javadoc/org/eclipse/oomph/setup/SetupTaskContainer.html#getSetupTasks()" title="Method in org.eclipse.oomph.setup.SetupTaskContainer"><code>container</code></a> for <a href="DocScope.html#DocStream" title="Chapter in Oomph Setup Documentation">streams</a>
as well as a <a href="../../javadoc/org/eclipse/oomph/setup/SetupTaskContainer.html#getSetupTasks()" title="Method in org.eclipse.oomph.setup.SetupTaskContainer"><code>container</code></a> for both
the tasks to provision a workspace with any of those streams
and the tasks to install the tools needed to work with any of those streams.
For example,
there is a project in the Eclipse project catalog for provisioning the Oomph project itself.
Projects can optionally {contain nested projects.
It is stored in a <a href="DocSetupResource.html#ProjectResource" title="Chapter in Oomph Setup Documentation">project resource</a>.
</p>
<a name="DocProject.nested">
Projects can optionally contain <a href="../../javadoc/org/eclipse/oomph/setup/ProjectContainer.html#getProjects()" title="Method in org.eclipse.oomph.setup.ProjectContainer"><code>nested</code></a> projects
which may be stored in a separate <a href="DocSetupResource.html#ProjectResource" title="Chapter in Oomph Setup Documentation">project resource</a> or in the same resource as the <a href="../../javadoc/org/eclipse/oomph/setup/Project.html#getParentProject()" title="Method in org.eclipse.oomph.setup.Project"><code>containing</code></a> project.
</p>
<h4><a name="DocStream"></a>2.1.1&nbsp;&nbsp;Streams</h4>
<p>
A <a href="../../javadoc/org/eclipse/oomph/setup/Stream.html" title="Interface in org.eclipse.oomph.setup"><code>stream</code></a> is a <a href="../../javadoc/org/eclipse/oomph/setup/SetupTaskContainer.html#getSetupTasks()" title="Method in org.eclipse.oomph.setup.SetupTaskContainer"><code>container</code></a> for both
the tasks to provision a workspace with for that particular stream
and the tasks to install the tools needed to work with that particular stream.
For example,
there is a stream in the Oomph project in the Eclipse project catalog
for provisioning the source code of the Git <a href="http://git.eclipse.org/c/oomph/org.eclipse.oomph.git/">master</a> branch of the Oomph project.
<h2><a name="DocInstallation"></a>3&nbsp;&nbsp;Installations</h2>
<p>
An <a href="../../javadoc/org/eclipse/oomph/setup/Installation.html" title="Interface in org.eclipse.oomph.setup"><code>installation</code></a> is a <a href="../../javadoc/org/eclipse/oomph/setup/SetupTaskContainer.html#getSetupTasks()" title="Method in org.eclipse.oomph.setup.SetupTaskContainer"><code>container</code></a> for the tasks to provision a specific installed Eclipse product.
Its primary function,
however,
is that it specifies a reference to a product <a href="DocScope.html#DocVersion" title="Chapter in Oomph Setup Documentation">version</a>.
The tasks <a href="DocTaskComposition.html" title="Article in Oomph Setup Documentation">gathered</a> for that product version are <a href="DocTaskExecution.html" title="Article in Oomph Setup Documentation">performed</a> to that installed product.
The <a href="../user/wizard/DocInstallWizard.html" title="Article in Oomph Setup Documentation">installer wizard</a> creates an instance based on the selected product version on the <a href="../user/wizard/DocProductPage.html" title="Article in Oomph Setup Documentation">product page</a>.
Even if the product installation hasn't been installed by Oomph,
when Oomph is present,
an installation instance is automatically created
to refer to the synthetic <a href="DocScope.html#DocVersion.self" title="Section in Oomph Setup Documentation">self</a> product version.
</p>
<h2><a name="DocWorkspace"></a>4&nbsp;&nbsp;Workspaces</h2>
<p>
A <a href="../../javadoc/org/eclipse/oomph/setup/Workspace.html" title="Interface in org.eclipse.oomph.setup"><code>workspace</code></a> is a <a href="../../javadoc/org/eclipse/oomph/setup/SetupTaskContainer.html#getSetupTasks()" title="Method in org.eclipse.oomph.setup.SetupTaskContainer"><code>container</code></a> for the tasks to provision a specific Eclipse workspace.
Its primary function is that it specifies zero or more references to project <a href="DocScope.html#DocStream" title="Chapter in Oomph Setup Documentation">streams</a>.
The tasks <a href="DocTaskComposition.html" title="Article in Oomph Setup Documentation">gathered</a> for each of those project streams are <a href="DocTaskExecution.html" title="Article in Oomph Setup Documentation">performed</a> for that workspace
as well as for the installed product used to open that workspace.
The <a href="../user/wizard/DocInstallWizard.html" title="Article in Oomph Setup Documentation">installer wizard</a> creates an instance based on the selected project streams on the <a href="../user/wizard/DocProjectPage.html" title="Article in Oomph Setup Documentation">project page</a>.
The <a href="../user/wizard/DocInstallWizard.html" title="Article in Oomph Setup Documentation">installer</a> and <a href="../user/wizard/DocImportWizard.html" title="Article in Oomph Setup Documentation">project</a> wizards
</p>
<h2><a name="DocUser"></a>5&nbsp;&nbsp;Users</h2>
<p>
A <a href="../../javadoc/org/eclipse/oomph/setup/User.html" title="Interface in org.eclipse.oomph.setup"><code>user</code></a> is a <a href="../../javadoc/org/eclipse/oomph/setup/SetupTaskContainer.html#getSetupTasks()" title="Method in org.eclipse.oomph.setup.SetupTaskContainer"><code>container</code></a> for the tasks to provision
every installed Eclipse product and every opened workspace ever used by the end-user.
It provides an opportunity to customize all aspects of a user's experience with all their Eclipse products and workspaces.
It also provides support for the following:
<ul>
<li>
Recording the <a href="../../javadoc/org/eclipse/oomph/setup/User.html#getAcceptedLicenses()" title="Method in org.eclipse.oomph.setup.User"><code>accepted license</code></a> of each of the tools automatically installed tools,
i.e., once a license is accepted,
it can be recorded to avoid any future prompts involving that particular license.
</li>
Recording the <a href="../../javadoc/org/eclipse/oomph/setup/User.html#getUnsignedPolicy()" title="Method in org.eclipse.oomph.setup.User"><code>policy</code></a> with regard to handling of unsigned content,
i.e., once unsigned content is accepted,
that acceptance can be recorded to avoid any future prompts involving unsigned content.
</li>
<li>
Recording configuration options, so called <a href="../../javadoc/org/eclipse/oomph/setup/User.html#getAttributeRules()" title="Method in org.eclipse.oomph.setup.User"><code>attribute rules</code></a>,
that tailor where and how repositories, workspaces, and installations are physically stored.
</li>
</ul>
<p align="right">
<a href="DocConceptOverview.html" title="Backward to Context"><img src="../../images/backward.png" border="0"></a>&nbsp;<a href="DocInfrastructure.html" title="Forward to Infrastructure"><img src="../../images/forward.png" border="0"></a></p>
<!-- <div class="help_breadcrumbs breadcrumbs_bottom"><a href="../Overview.html" title="Oomph Setup Documentation">Oomph Setup Documentation</a> > <a href="index.html" title="Category in Oomph Setup Documentation">Concepts</a></div> -->
<div class="copyright">Copyright (c) 2014 Eike Stepper (Loehne, Germany) and others.<br>All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v2.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v20.html</div>
</body>
</html>