From 03b28b4f40303192ee2a376ce7ea30d256e9fa61 Mon Sep 17 00:00:00 2001
From: Ed Merks <ed.merks@gmail.com>
Date: Thu, 16 Nov 2023 13:49:20 +0100
Subject: [PATCH] Provide Oomph setups for ECF

---
 releng/org.eclipse.ecf.releng/ECF.setup       | 460 ++++++++++++++++++
 .../ECFConfiguration.setup                    |  59 +++
 2 files changed, 519 insertions(+)
 create mode 100644 releng/org.eclipse.ecf.releng/ECF.setup
 create mode 100644 releng/org.eclipse.ecf.releng/ECFConfiguration.setup

diff --git a/releng/org.eclipse.ecf.releng/ECF.setup b/releng/org.eclipse.ecf.releng/ECF.setup
new file mode 100644
index 000000000..c8569ebb3
--- /dev/null
+++ b/releng/org.eclipse.ecf.releng/ECF.setup
@@ -0,0 +1,460 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<setup:Project
+    xmi:version="2.0"
+    xmlns:xmi="http://www.omg.org/XMI"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:git="http://www.eclipse.org/oomph/setup/git/1.0"
+    xmlns:jdt="http://www.eclipse.org/oomph/setup/jdt/1.0"
+    xmlns:predicates="http://www.eclipse.org/oomph/predicates/1.0"
+    xmlns:setup="http://www.eclipse.org/oomph/setup/1.0"
+    xmlns:setup.targlets="http://www.eclipse.org/oomph/setup/targlets/1.0"
+    xmlns:setup.workingsets="http://www.eclipse.org/oomph/setup/workingsets/1.0"
+    xmlns:workingsets="http://www.eclipse.org/oomph/workingsets/1.0"
+    xsi:schemaLocation="http://www.eclipse.org/oomph/setup/git/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/Git.ecore http://www.eclipse.org/oomph/setup/jdt/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/JDT.ecore http://www.eclipse.org/oomph/predicates/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/Predicates.ecore http://www.eclipse.org/oomph/setup/targlets/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/SetupTarglets.ecore http://www.eclipse.org/oomph/setup/workingsets/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/SetupWorkingSets.ecore http://www.eclipse.org/oomph/workingsets/1.0 https://raw.githubusercontent.com/eclipse-oomph/oomph/master/setups/models/WorkingSets.ecore"
+    name="ecf"
+    label="ECF">
+  <annotation
+      source="http://www.eclipse.org/oomph/setup/ConfigurationReference">
+    <reference
+        href="ECFConfiguration.setup#/"/>
+  </annotation>
+  <setupTask
+      xsi:type="setup:CompoundTask"
+      name="User Preferences">
+    <annotation
+        source="http://www.eclipse.org/oomph/setup/UserPreferences">
+      <detail
+          key="/instance/org.eclipse.pde.api.tools/missing_plugin_in_baseline">
+        <value>record</value>
+      </detail>
+      <detail
+          key="/instance/org.eclipse.pde.api.tools/missing_default_api_profile">
+        <value>record</value>
+      </detail>
+      <detail
+          key="/instance/org.eclipse.oomph.setup.ui/showToolBarContributions">
+        <value>record</value>
+      </detail>
+    </annotation>
+    <setupTask
+        xsi:type="setup:CompoundTask"
+        name="org.eclipse.m2e.core">
+      <setupTask
+          xsi:type="setup:PreferenceTask"
+          key="/instance/org.eclipse.m2e.core/eclipse.m2.problem.notCoveredMojoExecution"
+          value="warning"/>
+      <setupTask
+          xsi:type="setup:PreferenceTask"
+          key="/instance/org.eclipse.m2e.core/eclipse.m2.problem.outofdateProjectConfig"
+          value="warning"/>
+    </setupTask>
+    <setupTask
+        xsi:type="setup:CompoundTask"
+        name="org.eclipse.oomph.setup.ui">
+      <setupTask
+          xsi:type="setup:PreferenceTask"
+          key="/instance/org.eclipse.oomph.setup.ui/showToolBarContributions"
+          value="true"/>
+    </setupTask>
+    <setupTask
+        xsi:type="setup:CompoundTask"
+        name="org.eclipse.pde.api.tools">
+      <setupTask
+          xsi:type="setup:PreferenceTask"
+          key="/instance/org.eclipse.pde.api.tools/missing_default_api_profile"
+          value="Warning"/>
+      <setupTask
+          xsi:type="setup:PreferenceTask"
+          key="/instance/org.eclipse.pde.api.tools/missing_plugin_in_baseline"
+          value="Warning"/>
+    </setupTask>
+  </setupTask>
+  <setupTask
+      xsi:type="setup:ResourceCreationTask"
+      excludedTriggers="STARTUP MANUAL"
+      targetURL="${workspace.location|uri}/.metadata/.plugins/org.eclipse.jdt.ui/dialog_settings.xml"
+      encoding="UTF-8">
+    <description>Initialize the Package Explorer to display workings sets.</description>
+    <content>
+      &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?>
+      &lt;section name=&quot;Workbench&quot;>
+      	&lt;section name=&quot;org.eclipse.jdt.internal.ui.packageview.PackageExplorerPart&quot;>
+      		&lt;item value=&quot;true&quot; key=&quot;group_libraries&quot;/>
+      		&lt;item value=&quot;false&quot; key=&quot;linkWithEditor&quot;/>
+      		&lt;item value=&quot;2&quot; key=&quot;layout&quot;/>
+      		&lt;item value=&quot;2&quot; key=&quot;rootMode&quot;/>
+      		&lt;item value=&quot;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;packageExplorer configured=&amp;quot;true&amp;quot; group_libraries=&amp;quot;1&amp;quot; layout=&amp;quot;2&amp;quot; linkWithEditor=&amp;quot;0&amp;quot; rootMode=&amp;quot;2&amp;quot; sortWorkingSets=&amp;quot;false&amp;quot; workingSetName=&amp;quot;&amp;quot;&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;localWorkingSetManager&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;workingSet editPageId=&amp;quot;org.eclipse.jdt.internal.ui.OthersWorkingSet&amp;quot; factoryID=&amp;quot;org.eclipse.ui.internal.WorkingSetFactory&amp;quot; id=&amp;quot;1382792884467_1&amp;quot; label=&amp;quot;Other Projects&amp;quot; name=&amp;quot;Other Projects&amp;quot;/&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;/localWorkingSetManager&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;activeWorkingSet workingSetName=&amp;quot;Other Projects&amp;quot;/&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;allWorkingSets workingSetName=&amp;quot;Other Projects&amp;quot;/&amp;gt;&amp;#x0D;&amp;#x0A;&amp;lt;/packageExplorer&amp;gt;&quot; key=&quot;memento&quot;/>
+      	&lt;/section>
+      &lt;/section>
+
+    </content>
+  </setupTask>
+  <setupTask
+      xsi:type="jdt:JRETask"
+      version="JavaSE-17"
+      location="${jre.location-17}"/>
+  <setupTask
+      xsi:type="git:GitCloneTask"
+      id="github.clone.ecf"
+      remoteURI="eclipse/ecf">
+    <annotation
+        source="http://www.eclipse.org/oomph/setup/InducedChoices">
+      <detail
+          key="inherit">
+        <value>github.remoteURIs</value>
+      </detail>
+      <detail
+          key="label">
+        <value>ECF GitHub Repository</value>
+      </detail>
+      <detail
+          key="target">
+        <value>remoteURI</value>
+      </detail>
+    </annotation>
+    <configSections
+        name="branch">
+      <properties
+          key="autoSetupRebase"
+          value="always"/>
+    </configSections>
+    <description>ECF</description>
+  </setupTask>
+  <setupTask
+      xsi:type="setup:VariableTask"
+      name="eclipse.target.platform"
+      defaultValue="${eclipse.target.platform.latest}"/>
+  <setupTask
+      xsi:type="setup.targlets:TargletTask">
+    <targlet
+        name="ECF"
+        includeBinaryEquivalents="false">
+      <annotation
+          source="http:/www.eclipse.org/oomph/targlets/TargetDefinitionGenerator">
+        <detail
+            key="location">
+          <value>${github.clone.ecf.location/releng/org.eclipse.ecf.releng.target/ecf-latest-1.target}</value>
+        </detail>
+        <detail
+            key="extraUnits">
+          <value>org.apache.log4j,jakarta.servlet-api</value>
+        </detail>
+        <detail
+            key="generateVersions">
+          <value>org.apache.hadoop.zookeeper</value>
+        </detail>
+        <detail
+            key="singleLocation">
+          <value>false</value>
+        </detail>
+        <detail
+            key="sortLocations">
+          <value>false</value>
+        </detail>
+        <detail
+            key="includeAllPlatforms">
+          <value>false</value>
+        </detail>
+        <detail
+            key="includeSource">
+          <value>true</value>
+        </detail>
+        <detail
+            key="ignoreJavaRequirements">
+          <value>false</value>
+        </detail>
+        <detail
+            key="minimizeImplicitUnits">
+          <value>false</value>
+        </detail>
+        <detail
+            key="generateImplicitUnits">
+          <value>false</value>
+        </detail>
+      </annotation>
+      <annotation
+          source="http:/www.eclipse.org/oomph/targlets/TargetDefinitionGenerator">
+        <detail
+            key="location">
+          <value>${github.clone.ecf.location/releng/org.eclipse.ecf.releng.target/ecf-latest-2.target}</value>
+        </detail>
+        <detail
+            key="extraUnits">
+          <value>org.apache.log4j,jakarta.servlet-api</value>
+        </detail>
+        <detail
+            key="generateVersions">
+          <value>true</value>
+        </detail>
+        <detail
+            key="singleLocation">
+          <value>false</value>
+        </detail>
+        <detail
+            key="sortLocations">
+          <value>false</value>
+        </detail>
+        <detail
+            key="includeAllPlatforms">
+          <value>false</value>
+        </detail>
+        <detail
+            key="includeSource">
+          <value>true</value>
+        </detail>
+        <detail
+            key="ignoreJavaRequirements">
+          <value>false</value>
+        </detail>
+        <detail
+            key="minimizeImplicitUnits">
+          <value>false</value>
+        </detail>
+        <detail
+            key="generateImplicitUnits">
+          <value>false</value>
+        </detail>
+      </annotation>
+      <annotation
+          source="http:/www.eclipse.org/oomph/targlets/TargetDefinitionGenerator">
+        <detail
+            key="location">
+          <value>${github.clone.ecf.location/releng/org.eclipse.ecf.releng.target/ecf-latest-3.target}</value>
+        </detail>
+        <detail
+            key="extraUnits">
+          <value>org.apache.log4j,jakarta.servlet-api</value>
+        </detail>
+        <detail
+            key="generateVersions">
+          <value>true</value>
+        </detail>
+        <detail
+            key="singleLocation">
+          <value>false</value>
+        </detail>
+        <detail
+            key="sortLocations">
+          <value>false</value>
+        </detail>
+        <detail
+            key="includeAllPlatforms">
+          <value>false</value>
+        </detail>
+        <detail
+            key="includeSource">
+          <value>true</value>
+        </detail>
+        <detail
+            key="ignoreJavaRequirements">
+          <value>true</value>
+        </detail>
+        <detail
+            key="minimizeImplicitUnits">
+          <value>false</value>
+        </detail>
+        <detail
+            key="generateImplicitUnits">
+          <value>true</value>
+        </detail>
+      </annotation>
+      <requirement
+          name="*"/>
+      <requirement
+          name="org.eclipse.sdk.feature.group"/>
+      <requirement
+          name="org.apache.commons.jxpath"
+          versionRange="[1.3.0.v200911051830,1.3.0.v200911051830]"
+          optional="true"
+          max="0"/>
+      <requirement
+          name="org.apache.httpcomponents.client5.httpclient5"
+          versionRange="[5.1.3.v20221013-1742,5.1.3.v20221013-1742]"
+          optional="true"
+          max="0"/>
+      <requirement
+          name="org.bouncycastle.bcpg"
+          optional="true"
+          max="0"/>
+      <requirement
+          name="org.apache.commons.collections"
+          versionRange="[3.2.2.v20220405-1659,3.2.2.v20220405-1659]"
+          optional="true"
+          max="0"/>
+      <requirement
+          name="org.apache.commons.collections"
+          versionRange="[3.2.2.v201511171945,3.2.2.v201511171945]"
+          optional="true"
+          max="0"/>
+      <sourceLocator
+          rootFolder="${github.clone.ecf.location}"
+          locateNestedProjects="true">
+        <predicate
+            xsi:type="predicates:NotPredicate">
+          <operand
+              xsi:type="predicates:OrPredicate">
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="com.mycorp.examples.githubservice.*"/>
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="org.eclipse.ecf.examples"/>
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="org.eclipse.ecf.examples.raspberrypi.management.*"/>
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="org.eclipse.ecf.mylyn.ui"/>
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="org.eclipse.ecf.provider.endpointdescription.localdiscovery"/>
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="org.eclipse.ecf.provider.mqtt.paho"/>
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="org.eclipse.ecf.provider.phpbb"/>
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="org.eclipse.ecf.provider.riena"/>
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="org.eclipse.ecf.provider.vbulletin"/>
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="org.eclipse.ecf.springframework"/>
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="org.eclipse.ecf.tutorial.osgi.services.discovery"/>
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="org.eclipse.ecf.twitter.client"/>
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="org.eclipse.ecf.tests.httpservice.util"/>
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="org.eclipse.ecf.ipc.*"/>
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="org.eclipse.equinox.launcher.releng"/>
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="trunk"/>
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="tutorials"/>
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="org.eclipse.ecf.releng.bm"/>
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="EclipseSummitEurope2008"/>
+            <operand
+                xsi:type="predicates:NamePredicate"
+                pattern="Tutorial.*"/>
+          </operand>
+        </predicate>
+      </sourceLocator>
+      <repositoryList>
+        <repository
+            url="https://download.eclipse.org/cbi/updates/license"/>
+        <repository
+            url="https://download.eclipse.org/modeling/emf/emf/builds/release/latest"/>
+        <repository
+            url="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/milestone/latest"/>
+        <repository
+            url="http://download.eclipse.org/tools/orbit/downloads/drops/R20160221192158/repository"/>
+        <repository
+            url="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/repository"/>
+      </repositoryList>
+    </targlet>
+  </setupTask>
+  <setupTask
+      xsi:type="setup.workingsets:WorkingSetTask"
+      id="ecf.workingsets">
+    <workingSet
+        name="ECF Bundles">
+      <predicate
+          xsi:type="predicates:AndPredicate">
+        <operand
+            xsi:type="predicates:RepositoryPredicate"
+            project="org.eclipse.ecf"/>
+        <operand
+            xsi:type="predicates:NaturePredicate"
+            nature="org.eclipse.pde.PluginNature"/>
+        <operand
+            xsi:type="workingsets:ExclusionPredicate"
+            excludedWorkingSet="//'ecf.workingsets'/@workingSets[name='ECF%20Examples'] //'ecf.workingsets'/@workingSets[name='ECF%20Tests']"/>
+      </predicate>
+    </workingSet>
+    <workingSet
+        name="ECF Tests">
+      <predicate
+          xsi:type="predicates:AndPredicate">
+        <operand
+            xsi:type="predicates:RepositoryPredicate"
+            project="org.eclipse.ecf"/>
+        <operand
+            xsi:type="predicates:NaturePredicate"
+            nature="org.eclipse.pde.PluginNature"/>
+        <operand
+            xsi:type="predicates:NamePredicate"
+            pattern=".*tests.*"/>
+      </predicate>
+    </workingSet>
+    <workingSet
+        name="ECF Features">
+      <predicate
+          xsi:type="predicates:AndPredicate">
+        <operand
+            xsi:type="predicates:RepositoryPredicate"
+            project="org.eclipse.ecf"/>
+        <operand
+            xsi:type="predicates:NaturePredicate"
+            nature="org.eclipse.pde.FeatureNature"/>
+      </predicate>
+    </workingSet>
+    <workingSet
+        name="ECF Examples">
+      <predicate
+          xsi:type="predicates:AndPredicate">
+        <operand
+            xsi:type="predicates:RepositoryPredicate"
+            project="org.eclipse.ecf"/>
+        <operand
+            xsi:type="predicates:NamePredicate"
+            pattern=".*example.*"/>
+      </predicate>
+    </workingSet>
+    <workingSet
+        name="ECF Releng">
+      <predicate
+          xsi:type="predicates:AndPredicate">
+        <operand
+            xsi:type="predicates:RepositoryPredicate"
+            project="org.eclipse.ecf"/>
+        <operand
+            xsi:type="workingsets:ExclusionPredicate"
+            excludedWorkingSet="//'ecf.workingsets'/@workingSets[name='ECF%20Bundles'] //'ecf.workingsets'/@workingSets[name='ECF%20Features'] //'ecf.workingsets'/@workingSets[name='ECF%20Examples'] //'ecf.workingsets'/@workingSets[name='ECF%20Tests']"/>
+      </predicate>
+    </workingSet>
+  </setupTask>
+  <stream name="master"
+      label="Master">
+    <setupTask
+        xsi:type="setup:EclipseIniTask"
+        option="-Doomph.redirection.ecf"
+        value="=https://raw.githubusercontent.com/eclipse/ecf/master/releng/org.eclipse.ecf.releng/ECF.setup->${git.clone.ecf.location|uri}/releng/org.eclipse.ecf.releng/ECF.setup"
+        vm="true">
+      <description>
+        Set an Oomph redirection system property to redirect the logical location of this setup to its physical location in the Git clone.
+        Before enabling this task, replace '...' with the repository path of this setup's containing project.
+      </description>
+    </setupTask>
+  </stream>
+  <logicalProjectContainer
+      xsi:type="setup:ProjectCatalog"
+      href="index:/org.eclipse.setup#//@projectCatalogs[name='org.eclipse']"/>
+  <description>Eclipse Communications Framework</description>
+</setup:Project>
diff --git a/releng/org.eclipse.ecf.releng/ECFConfiguration.setup b/releng/org.eclipse.ecf.releng/ECFConfiguration.setup
new file mode 100644
index 000000000..7ef689674
--- /dev/null
+++ b/releng/org.eclipse.ecf.releng/ECFConfiguration.setup
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<setup:Configuration
+    xmi:version="2.0"
+    xmlns:xmi="http://www.omg.org/XMI"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xmlns:setup="http://www.eclipse.org/oomph/setup/1.0"
+    label="ECF Development Environment">
+  <annotation
+      source="http://www.eclipse.org/oomph/setup/BrandingInfo">
+    <detail
+        key="imageURI">
+      <value>https://projects.eclipse.org/sites/default/files/logo128x37.png</value>
+    </detail>
+    <detail
+        key="badgeLabel">
+      <value>ECF</value>
+    </detail>
+  </annotation>
+  <installation
+      name="ecf.development.environment.installation"
+      label="ECF Development Environment Installation">
+    <setupTask
+        xsi:type="setup:VariableTask"
+        name="installation.id.default"
+        value="ecf"/>
+    <productVersion
+        href="index:/org.eclipse.setup#//@productCatalogs[name='org.eclipse.products']/@products[name='epp.package.committers']/@versions[name='latest']"/>
+    <description>The ECF Development Environment installation provides a full development environment for working on ECF.</description>
+  </installation>
+  <workspace
+      name="ecf.development.environment.workspace"
+      label="ECF Development Environment Workspace">
+    <setupTask
+        xsi:type="setup:PreferenceTask"
+        key="/instance/org.eclipse.ui.ide/WORKSPACE_NAME"
+        value="ECF"/>
+    <setupTask
+        xsi:type="setup:VariableTask"
+        name="eclipse.target.platform"
+        value="${eclipse.target.platform.latest}"/>
+    <stream
+        href="index:/org.eclipse.setup#//@projectCatalogs[name='org.eclipse']/@projects[name='ecf']/@streams[name='master']"/>
+    <description>The ECF Development Environment workspace contains all features and plugins from the ECF's GitHub repository.</description>
+  </workspace>
+  <description>
+    &lt;p>
+    The &lt;a href=&quot;https://projects.eclipse.org/projects/rt.ecf&quot;/>Eclipse Communications Framework&lt;/a> Development Environment configuration provisions a dedicated development environment 
+    for the complete set of source projects used by &lt;a href=&quot;https://ci.eclipse.org/ecf/&quot;>ECF's build server&lt;/a> 
+    to produce &lt;a href=&quot;https://download.eclipse.org/rt/ecf/&quot;>ECF's update sites&lt;/a>.
+    &lt;/p>
+    &lt;p>
+    All the source projects from &lt;a href=&quot;https://github.com/eclipse/ecf.git&quot;>ECF's GitHub Repository&lt;/a>
+    are available, organized into working sets, and ready for contribution.
+    &lt;/p>
+    &lt;/p>
+    Please &lt;a href=&quot;https://wiki.eclipse.org/Eclipse_Platform_SDK_Provisioning&quot;>read the analogous tutorial instructions&lt;/a> for the Eclipse Platform SDK's configuration for more details.
+    &lt;/p>
+  </description>
+</setup:Configuration>