Target platforms for 2023-09 and 2023-12

- simrel repository is used in targets as much as possible. Orbit is
used only for some dependencies that only exist with older orbit
version.

-Update tycho to latest 4.0.4 from 3.0.4.

-org.hamcrest.core needs to be 1.3 because org.hamcrest.factory is
removed in latest versions. Therefore specify upper version as 2.0 in
MANIFEST.MF of 0.e.swtbot.swt.finder

-Minor change in SWTBotGefViewer.java to remove compile error of Type
Mismatch.

Change-Id: I1d37a8692dc46bd2eaf8a9a12ff7c0eecfc40c18
Signed-off-by: Aparna Argade <aprsac@yahoo.com>
diff --git a/devtools/oomph/SWTBot.setup b/devtools/oomph/SWTBot.setup
index b3c3aa7..7c3b886 100644
--- a/devtools/oomph/SWTBot.setup
+++ b/devtools/oomph/SWTBot.setup
@@ -58,7 +58,7 @@
   <setupTask
       xsi:type="setup:VariableTask"
       name="eclipse.target.platform"
-      defaultValue="2023-06"
+      defaultValue="2023-12"
       storageURI="scope://Workspace"/>
   <setupTask
       xsi:type="setup:CompoundTask"
@@ -243,6 +243,28 @@
           rootFolder="${git.clone.location}"
           locateNestedProjects="true"/>
         <repositoryList
+          name="2023-12">
+        <repository
+            url="http://download.eclipse.org/releases/2023-12"/>
+        <repository
+            url="http://download.eclipse.org/cbi/updates/license"/>
+        <repository
+            url="http://download.eclipse.org/nebula/snapshot/"/>
+        <repository
+            url="http://download.eclipse.org/nattable/snapshots/latest/repository/"/>
+		</repositoryList>
+		<repositoryList
+          name="2023-09">
+        <repository
+            url="http://download.eclipse.org/releases/2023-09"/>
+        <repository
+            url="http://download.eclipse.org/cbi/updates/license"/>
+        <repository
+            url="http://download.eclipse.org/nebula/snapshot/"/>
+        <repository
+            url="http://download.eclipse.org/nattable/snapshots/latest/repository/"/>
+		</repositoryList>
+		<repositoryList
           name="2023-06">
         <repository
             url="http://download.eclipse.org/releases/2023-06"/>
diff --git a/devtools/target-platforms/2023-09/2023-09.target b/devtools/target-platforms/2023-09/2023-09.target
new file mode 100644
index 0000000..33148c8
--- /dev/null
+++ b/devtools/target-platforms/2023-09/2023-09.target
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde version="3.8"?><target name="Eclipse 2023-09 via p2" sequenceNumber="1">
+<locations>
+<!-- Add dependencies that only exist with older orbit version -->
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.slf4j.api" version="0.0.0"/>
+<unit id="javax.inject" version="1.0.0.v20220405-0441"/>
+<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
+<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
+<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
+<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
+<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/repository/"/>
+</location>	
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.platform.ide" version="0.0.0"/>
+<unit id="org.eclipse.emf.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.draw2d.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.gef.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.jdt.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.pde.feature.group" version="0.0.0"/>
+<repository location="https://download.eclipse.org/releases/2023-09"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.junit" version="4.13.2.v20230809-1000"/>
+<unit id="junit-platform-engine" version="1.10.0"/>
+<unit id="junit-platform-launcher" version="1.10.0"/>
+<unit id="junit-platform-commons" version="1.10.0"/>
+<unit id="junit-jupiter-api" version="5.10.0"/>
+<unit id="junit-jupiter-engine" version="5.10.0"/>
+<unit id="junit-jupiter-migrationsupport" version="5.10.0"/>
+<unit id="junit-jupiter-params" version="5.10.0"/>
+<unit id="junit-platform-runner" version="1.10.0"/>
+<unit id="junit-platform-suite-api" version="1.10.0"/>
+<unit id="junit-vintage-engine" version="5.10.0"/>
+<unit id="ca.odell.glazedlists" version="0.0.0"/>
+<repository location="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.29.0/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.license.feature.group" version="2.0.2.v20181016-2210"/>
+<repository location="https://download.eclipse.org/cbi/updates/license"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.nebula.widgets.gallery.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.nebula.widgets.opal.checkboxgroup.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.nebula.widgets.stepbar.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.nebula.widgets.opal.rangeslider.feature.feature.group" version="0.0.0"/>
+<repository location="https://download.eclipse.org/nebula/snapshot/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.nebula.widgets.nattable.core.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.nebula.widgets.nattable.extension.glazedlists.feature.feature.group" version="0.0.0"/>
+<repository location="https://download.eclipse.org/nattable/snapshots/latest/repository"/>
+</location>
+</locations>
+<targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
+<launcherArgs>
+<vmArgs>-Xms128m -Xmx1024m</vmArgs>
+</launcherArgs>
+</target>
diff --git a/devtools/target-platforms/2023-12/2023-12.target b/devtools/target-platforms/2023-12/2023-12.target
new file mode 100644
index 0000000..2fc20ee
--- /dev/null
+++ b/devtools/target-platforms/2023-12/2023-12.target
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?pde version="3.8"?><target name="Eclipse 2023-12 via p2" sequenceNumber="1">
+<locations>
+<!-- Add dependencies that only exist with older orbit version -->
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.slf4j.api" version="0.0.0"/>
+<unit id="javax.inject" version="1.0.0.v20220405-0441"/>
+<unit id="javax.annotation" version="1.3.5.v20230504-0748"/>
+<unit id="org.hamcrest.library" version="1.3.0.v20180524-2246"/>
+<unit id="org.hamcrest.library.source" version="1.3.0.v20180524-2246"/>
+<unit id="org.hamcrest.core" version="1.3.0.v20180420-1519"/>
+<unit id="org.hamcrest.core.source" version="1.3.0.v20180420-1519"/>
+<repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20230531010532/repository/"/>
+</location>	
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.platform.ide" version="0.0.0"/>
+<unit id="org.eclipse.emf.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.draw2d.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.gef.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.jdt.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.pde.feature.group" version="0.0.0"/>
+<repository location="https://download.eclipse.org/releases/2023-12"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.junit" version="4.13.2.v20230809-1000"/>
+<unit id="junit-platform-engine" version="1.10.1"/>
+<unit id="junit-platform-launcher" version="1.10.1"/>
+<unit id="junit-platform-commons" version="1.10.1"/>
+<unit id="junit-jupiter-api" version="5.10.1"/>
+<unit id="junit-jupiter-engine" version="5.10.1"/>
+<unit id="junit-jupiter-migrationsupport" version="5.10.1"/>
+<unit id="junit-jupiter-params" version="5.10.1"/>
+<unit id="junit-platform-runner" version="1.10.1"/>
+<unit id="junit-platform-suite-api" version="1.10.1"/>
+<unit id="junit-vintage-engine" version="5.10.1"/>
+<unit id="ca.odell.glazedlists" version="0.0.0"/>
+<repository location="https://download.eclipse.org/tools/orbit/simrel/orbit-aggregation/release/4.30.0/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.license.feature.group" version="2.0.2.v20181016-2210"/>
+<repository location="https://download.eclipse.org/cbi/updates/license"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.nebula.widgets.gallery.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.nebula.widgets.opal.checkboxgroup.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.nebula.widgets.stepbar.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.nebula.widgets.opal.rangeslider.feature.feature.group" version="0.0.0"/>
+<repository location="https://download.eclipse.org/nebula/snapshot/"/>
+</location>
+<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
+<unit id="org.eclipse.nebula.widgets.nattable.core.feature.feature.group" version="0.0.0"/>
+<unit id="org.eclipse.nebula.widgets.nattable.extension.glazedlists.feature.feature.group" version="0.0.0"/>
+<repository location="https://download.eclipse.org/nattable/snapshots/latest/repository"/>
+</location>
+</locations>
+<targetJRE path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-17"/>
+<launcherArgs>
+<vmArgs>-Xms128m -Xmx1024m</vmArgs>
+</launcherArgs>
+</target>
diff --git a/devtools/target-platforms/swtbot-baseline.target b/devtools/target-platforms/swtbot-baseline.target
index f4c3f6d..e472165 100644
--- a/devtools/target-platforms/swtbot-baseline.target
+++ b/devtools/target-platforms/swtbot-baseline.target
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<?pde version="3.8"?><target name="swtbot-baseline" sequenceNumber="20">
+<?pde version="3.8"?><target name="swtbot-baseline" sequenceNumber="21">
 <locations>
 <location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="true" type="InstallableUnit">
 <unit id="org.eclipse.swtbot.feature.group" version="0.0.0"/>
@@ -17,7 +17,7 @@
 <repository location="https://download.eclipse.org/technology/swtbot/releases/latest/"/>
 </location>
 <location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
-<repository location="https://download.eclipse.org/releases/2023-06"/>
+<repository location="https://download.eclipse.org/releases/2023-12"/>
 </location>
 </locations>
 </target>
diff --git a/org.eclipse.swtbot.eclipse.gef.finder/src/org/eclipse/swtbot/eclipse/gef/finder/widgets/SWTBotGefViewer.java b/org.eclipse.swtbot.eclipse.gef.finder/src/org/eclipse/swtbot/eclipse/gef/finder/widgets/SWTBotGefViewer.java
index 03d1924..e68b6e5 100644
--- a/org.eclipse.swtbot.eclipse.gef.finder/src/org/eclipse/swtbot/eclipse/gef/finder/widgets/SWTBotGefViewer.java
+++ b/org.eclipse.swtbot.eclipse.gef.finder/src/org/eclipse/swtbot/eclipse/gef/finder/widgets/SWTBotGefViewer.java
@@ -153,7 +153,7 @@
 	@SuppressWarnings("unchecked")
 	public List<SWTBotGefEditPart> selectedEditParts() {
 		List<SWTBotGefEditPart> toReturn = new ArrayList<SWTBotGefEditPart>();
-		List<EditPart> parts = graphicalViewer.getSelectedEditParts();
+		List<? extends EditPart> parts = graphicalViewer.getSelectedEditParts();
 		for (EditPart editPart : parts) {
 			toReturn.add(createEditPart(editPart));
 		}
diff --git a/org.eclipse.swtbot.swt.finder/META-INF/MANIFEST.MF b/org.eclipse.swtbot.swt.finder/META-INF/MANIFEST.MF
index 435382a..e9de96e 100644
--- a/org.eclipse.swtbot.swt.finder/META-INF/MANIFEST.MF
+++ b/org.eclipse.swtbot.swt.finder/META-INF/MANIFEST.MF
@@ -31,6 +31,6 @@
  org.eclipse.swt.widgets,
  org.junit;version="4.12.0",
  org.slf4j
-Require-Bundle: org.hamcrest.core;bundle-version="1.3.0",
+Require-Bundle: org.hamcrest.core;bundle-version="[1.3.0,2.0.0]",
  org.hamcrest.library;bundle-version="1.3.0"
 Automatic-Module-Name: org.eclipse.swtbot.swt.finder
diff --git a/pom.xml b/pom.xml
index 8dca709..61b6d32 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
 	<packaging>pom</packaging>
 
 	<properties>
-		<tycho-version>3.0.4</tycho-version>
+		<tycho-version>4.0.4</tycho-version>
 		<tycho-extras-version>${tycho-version}</tycho-extras-version>
 		<!-- Properties to enable jacoco code coverage analysis -->
 		<sonar.core.codeCoveragePlugin>jacoco</sonar.core.codeCoveragePlugin>
@@ -879,7 +879,7 @@
 		<profile>
 			<id>2023-06</id>
 			<activation>
-				<activeByDefault>true</activeByDefault>
+				<activeByDefault>false</activeByDefault>
 			</activation>
 			<build>
 				<plugins>
@@ -896,5 +896,45 @@
 				</plugins>
 			</build>
 		</profile>
+		<profile>
+			<id>2023-09</id>
+			<activation>
+				<activeByDefault>false</activeByDefault>
+			</activation>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.eclipse.tycho</groupId>
+						<artifactId>target-platform-configuration</artifactId>
+						<version>${tycho-version}</version>
+						<configuration>
+							<target>
+								<file>../devtools/target-platforms/2023-09/2023-09.target</file>
+							</target>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+		<profile>
+			<id>2023-12</id>
+			<activation>
+				<activeByDefault>true</activeByDefault>
+			</activation>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.eclipse.tycho</groupId>
+						<artifactId>target-platform-configuration</artifactId>
+						<version>${tycho-version}</version>
+						<configuration>
+							<target>
+								<file>../devtools/target-platforms/2023-12/2023-12.target</file>
+							</target>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
 	</profiles>
 </project>