diff --git a/.gitignore b/.gitignore
index fd34fe14030..b7a19f0a08a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
bin/
*.log
target/
+.polyglot.*
+pom.tycho
diff --git a/.mvn/extensions.xml b/.mvn/extensions.xml
new file mode 100644
index 00000000000..1372e21cbfb
--- /dev/null
+++ b/.mvn/extensions.xml
@@ -0,0 +1,9 @@
+
+
+
+
+ org.eclipse.tycho
+ tycho-build
+ 4.0.3
+
+
\ No newline at end of file
diff --git a/bundles/org.eclipse.swt.tools.base/build.properties b/bundles/org.eclipse.swt.tools.base/build.properties
index 8b25dbafb37..5e87f732b35 100644
--- a/bundles/org.eclipse.swt.tools.base/build.properties
+++ b/bundles/org.eclipse.swt.tools.base/build.properties
@@ -17,3 +17,6 @@ bin.includes = about.html,\
META-INF/,\
.
src.includes = about.html
+
+pom.model.groupId = org.eclipse.swt
+tycho.pomless.parent = ../../local-build/local-build-parent
diff --git a/bundles/org.eclipse.swt.tools.base/pom.xml b/bundles/org.eclipse.swt.tools.base/pom.xml
deleted file mode 100644
index 6b70b9aeb86..00000000000
--- a/bundles/org.eclipse.swt.tools.base/pom.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
- 4.0.0
-
- eclipse.platform.swt.localbuild
- eclipse.platform.swt
- 4.30.0-SNAPSHOT
- ../../local-build/local-build-parent/
-
- org.eclipse.swt
- org.eclipse.swt.tools.base
- 3.107.400-SNAPSHOT
- eclipse-plugin
-
diff --git a/bundles/org.eclipse.swt.tools.spies/build.properties b/bundles/org.eclipse.swt.tools.spies/build.properties
index 64df539f388..1fa93c17531 100644
--- a/bundles/org.eclipse.swt.tools.spies/build.properties
+++ b/bundles/org.eclipse.swt.tools.spies/build.properties
@@ -21,3 +21,6 @@ bin.includes = about.html,\
output.. = bin/
source.. = src/
src.includes = about.html
+
+pom.model.groupId = org.eclipse.swt
+tycho.pomless.parent = ../../local-build/local-build-parent
diff --git a/bundles/org.eclipse.swt.tools.spies/pom.xml b/bundles/org.eclipse.swt.tools.spies/pom.xml
deleted file mode 100644
index d2223c817d9..00000000000
--- a/bundles/org.eclipse.swt.tools.spies/pom.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
- 4.0.0
-
- eclipse.platform.swt.localbuild
- eclipse.platform.swt
- 4.30.0-SNAPSHOT
- ../../local-build/local-build-parent/
-
- org.eclipse.swt
- org.eclipse.swt.tools.spies
- 3.109.200-SNAPSHOT
- eclipse-plugin
-
diff --git a/bundles/org.eclipse.swt.tools/build.properties b/bundles/org.eclipse.swt.tools/build.properties
index 42223e4d654..214fb743bf9 100644
--- a/bundles/org.eclipse.swt.tools/build.properties
+++ b/bundles/org.eclipse.swt.tools/build.properties
@@ -26,3 +26,6 @@ source.. = src/,\
JavadocBasher/
src.includes = about.html
bin.excludes = META-INF/p2.inf
+
+pom.model.groupId = org.eclipse.swt
+tycho.pomless.parent = ../../local-build/local-build-parent
diff --git a/bundles/org.eclipse.swt.tools/pom.xml b/bundles/org.eclipse.swt.tools/pom.xml
deleted file mode 100644
index cd39e7d5a2b..00000000000
--- a/bundles/org.eclipse.swt.tools/pom.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
- 4.0.0
-
- eclipse.platform.swt.localbuild
- eclipse.platform.swt
- 4.30.0-SNAPSHOT
- ../../local-build/local-build-parent/
-
- org.eclipse.swt
- org.eclipse.swt.tools
- 3.110.200-SNAPSHOT
- eclipse-plugin
-
diff --git a/examples/org.eclipse.swt.examples.browser.demos/build.properties b/examples/org.eclipse.swt.examples.browser.demos/build.properties
index e872df5d62a..06e360907e6 100644
--- a/examples/org.eclipse.swt.examples.browser.demos/build.properties
+++ b/examples/org.eclipse.swt.examples.browser.demos/build.properties
@@ -25,3 +25,6 @@ bin.includes = doc-html/,\
icons/,\
META-INF/
src.includes=about.html
+
+pom.model.groupId = org.eclipse.swt
+tycho.pomless.parent = ../../local-build/local-build-parent
diff --git a/examples/org.eclipse.swt.examples.browser.demos/pom.xml b/examples/org.eclipse.swt.examples.browser.demos/pom.xml
deleted file mode 100644
index 4b53c8cea24..00000000000
--- a/examples/org.eclipse.swt.examples.browser.demos/pom.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
- 4.0.0
-
- eclipse.platform.swt.localbuild
- eclipse.platform.swt
- 4.30.0-SNAPSHOT
- ../../local-build/local-build-parent/
-
- org.eclipse.swt
- org.eclipse.swt.examples.browser.demos
- 3.108.100-SNAPSHOT
- eclipse-plugin
-
diff --git a/examples/org.eclipse.swt.examples.launcher/build.properties b/examples/org.eclipse.swt.examples.launcher/build.properties
index 78e2ee1ae43..59c12925629 100644
--- a/examples/org.eclipse.swt.examples.launcher/build.properties
+++ b/examples/org.eclipse.swt.examples.launcher/build.properties
@@ -24,3 +24,6 @@ bin.includes = doc/,\
src.includes = about.html
source.. = src/
+
+pom.model.groupId = org.eclipse.swt
+tycho.pomless.parent = ../../local-build/local-build-parent
diff --git a/examples/org.eclipse.swt.examples.launcher/pom.xml b/examples/org.eclipse.swt.examples.launcher/pom.xml
deleted file mode 100644
index db69d00e4a5..00000000000
--- a/examples/org.eclipse.swt.examples.launcher/pom.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
- 4.0.0
-
- eclipse.platform.swt.localbuild
- eclipse.platform.swt
- 4.30.0-SNAPSHOT
- ../../local-build/local-build-parent/
-
- org.eclipse.swt
- org.eclipse.swt.examples.launcher
- 3.108.200-SNAPSHOT
- eclipse-plugin
-
diff --git a/examples/org.eclipse.swt.examples.views/build.properties b/examples/org.eclipse.swt.examples.views/build.properties
index ad52b15a7b7..8a4776b2eb7 100644
--- a/examples/org.eclipse.swt.examples.views/build.properties
+++ b/examples/org.eclipse.swt.examples.views/build.properties
@@ -22,3 +22,6 @@ bin.includes = doc-html/,\
src.includes = about.html
source.. = src/
+
+pom.model.groupId = org.eclipse.swt
+tycho.pomless.parent = ../../local-build/local-build-parent
diff --git a/examples/org.eclipse.swt.examples.views/pom.xml b/examples/org.eclipse.swt.examples.views/pom.xml
deleted file mode 100644
index 33387d292dd..00000000000
--- a/examples/org.eclipse.swt.examples.views/pom.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
- 4.0.0
-
- eclipse.platform.swt.localbuild
- eclipse.platform.swt
- 4.30.0-SNAPSHOT
- ../../local-build/local-build-parent/
-
- org.eclipse.swt
- org.eclipse.swt.examples.views
- 3.108.100-SNAPSHOT
- eclipse-plugin
-
diff --git a/examples/org.eclipse.swt.examples/build.properties b/examples/org.eclipse.swt.examples/build.properties
index b8b7472a209..e09a9354c4e 100644
--- a/examples/org.eclipse.swt.examples/build.properties
+++ b/examples/org.eclipse.swt.examples/build.properties
@@ -22,3 +22,6 @@ src.includes = about.html,\
doc-html/
source.. = src/
+
+pom.model.groupId = org.eclipse.swt
+tycho.pomless.parent = ../../local-build/local-build-parent
diff --git a/examples/org.eclipse.swt.examples/pom.xml b/examples/org.eclipse.swt.examples/pom.xml
deleted file mode 100644
index 7bfea2e24ad..00000000000
--- a/examples/org.eclipse.swt.examples/pom.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
- 4.0.0
-
- eclipse.platform.swt.localbuild
- eclipse.platform.swt
- 4.30.0-SNAPSHOT
- ../../local-build/local-build-parent/
-
- org.eclipse.swt
- org.eclipse.swt.examples
- 3.108.200-SNAPSHOT
- eclipse-plugin
-
diff --git a/features/org.eclipse.swt.tools.feature/pom.xml b/features/org.eclipse.swt.tools.feature/pom.xml
deleted file mode 100644
index 76dc1ebaedb..00000000000
--- a/features/org.eclipse.swt.tools.feature/pom.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
- 4.0.0
-
- eclipse.platform.swt
- eclipse.platform.swt
- 4.30.0-SNAPSHOT
- ../../
-
- org.eclipse.swt.tools.feature
- org.eclipse.swt.tools.feature
- 3.109.200-SNAPSHOT
- eclipse-feature
-
-
-
- org.eclipse.tycho
- tycho-source-plugin
-
-
- package
- feature-source
-
- feature-source
-
-
-
-
-
- org.eclipse.tycho
- tycho-p2-plugin
-
-
- attach-p2-metadata
- package
-
- p2-metadata
-
-
-
-
-
-
-
diff --git a/pom.xml b/pom.xml
index 6754ffa7736..65a6ade475c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -166,7 +166,6 @@
org.eclipse.tycho
target-platform-configuration
- ${tycho.version}
@@ -180,6 +179,46 @@
+
+ generate-feature-source
+
+
+ feature.xml
+
+
+
+
+
+ org.eclipse.tycho
+ tycho-source-plugin
+ ${tycho.version}
+
+
+ package
+ feature-source
+
+ feature-source
+
+
+
+
+
+ org.eclipse.tycho
+ tycho-p2-plugin
+ ${tycho.version}
+
+
+ attach-p2-metadata
+ package
+
+ p2-metadata
+
+
+
+
+
+
+
diff --git a/tests/org.eclipse.swt.tests.cocoa/build.properties b/tests/org.eclipse.swt.tests.cocoa/build.properties
index 7f03bb2a4d0..8a441eca730 100644
--- a/tests/org.eclipse.swt.tests.cocoa/build.properties
+++ b/tests/org.eclipse.swt.tests.cocoa/build.properties
@@ -15,3 +15,11 @@ source..=JUnit Tests/
bin.includes = .,\
META-INF/
+
+pom.model.groupId = org.eclipse.swt
+tycho.pomless.parent = ../../local-build/local-build-parent
+pom.model.packaging = eclipse-test-plugin
+pom.model.property.code.ignoredWarnings = ${tests.ignoredWarnings}
+# Skip all tests on build servers, because it contains platform specific code (overriden to false on platform-specific build machines)
+pom.model.property.skipNativeTests = true
+pom.model.property.skipTests = ${skipNativeTests}
diff --git a/tests/org.eclipse.swt.tests.cocoa/pom.xml b/tests/org.eclipse.swt.tests.cocoa/pom.xml
deleted file mode 100644
index ab75d6e63c4..00000000000
--- a/tests/org.eclipse.swt.tests.cocoa/pom.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
- 4.0.0
-
- eclipse.platform.swt.localbuild
- eclipse.platform.swt
- 4.30.0-SNAPSHOT
- ../../local-build/local-build-parent/
-
- org.eclipse.swt
- org.eclipse.swt.tests.cocoa
- 3.108.0-SNAPSHOT
- eclipse-test-plugin
-
- ${tests.ignoredWarnings}
-
-
- true
-
-
-
-
- org.eclipse.tycho
- tycho-surefire-plugin
-
-
- ${skipNativeTests}
-
-
-
-
-
diff --git a/tests/org.eclipse.swt.tests.gtk/build.properties b/tests/org.eclipse.swt.tests.gtk/build.properties
index a4c1049159c..7c6462f5236 100644
--- a/tests/org.eclipse.swt.tests.gtk/build.properties
+++ b/tests/org.eclipse.swt.tests.gtk/build.properties
@@ -15,3 +15,11 @@ source.. = JUnit Tests/,\
ManualTests/
bin.includes = .,\
META-INF/
+
+pom.model.groupId = org.eclipse.swt
+tycho.pomless.parent = ../../local-build/local-build-parent
+pom.model.packaging = eclipse-test-plugin
+pom.model.property.code.ignoredWarnings = ${tests.ignoredWarnings}
+# Skip all tests on build servers, because it contains platform specific code (overriden to false on platform-specific build machines)
+pom.model.property.skipNativeTests = true
+pom.model.property.skipTests = ${skipNativeTests}
diff --git a/tests/org.eclipse.swt.tests.gtk/pom.xml b/tests/org.eclipse.swt.tests.gtk/pom.xml
deleted file mode 100644
index eda242c7fa4..00000000000
--- a/tests/org.eclipse.swt.tests.gtk/pom.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
- 4.0.0
-
- eclipse.platform.swt.localbuild
- eclipse.platform.swt
- 4.30.0-SNAPSHOT
- ../../local-build/local-build-parent/
-
- org.eclipse.swt
- org.eclipse.swt.tests.gtk
- 3.109.0-SNAPSHOT
- eclipse-test-plugin
-
- ${tests.ignoredWarnings}
-
-
- true
-
-
-
-
- org.eclipse.tycho
- tycho-surefire-plugin
-
- ${skipNativeTests}
-
-
-
-
-
diff --git a/tests/org.eclipse.swt.tests.win32/build.properties b/tests/org.eclipse.swt.tests.win32/build.properties
index 7f03bb2a4d0..f2ab10a3db3 100644
--- a/tests/org.eclipse.swt.tests.win32/build.properties
+++ b/tests/org.eclipse.swt.tests.win32/build.properties
@@ -15,3 +15,12 @@ source..=JUnit Tests/
bin.includes = .,\
META-INF/
+
+pom.model.groupId = org.eclipse.swt
+tycho.pomless.parent = ../../local-build/local-build-parent
+pom.model.packaging = eclipse-test-plugin
+pom.model.property.code.ignoredWarnings = ${tests.ignoredWarnings}
+# Skip all tests on build servers, because it contains platform specific code (overriden to false on platform-specific build machines)
+pom.model.property.skipNativeTests = true
+pom.model.property.skipTests = ${skipNativeTests}
+pom.model.property.testClass = org.eclipse.swt.tests.win32.AllWin32Tests
diff --git a/tests/org.eclipse.swt.tests.win32/pom.xml b/tests/org.eclipse.swt.tests.win32/pom.xml
deleted file mode 100644
index e8818d52801..00000000000
--- a/tests/org.eclipse.swt.tests.win32/pom.xml
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
- 4.0.0
-
- eclipse.platform.swt.localbuild
- eclipse.platform.swt
- 4.30.0-SNAPSHOT
- ../../local-build/local-build-parent/
-
- org.eclipse.swt
- org.eclipse.swt.tests.win32
- 3.108.0-SNAPSHOT
- eclipse-test-plugin
-
- ${tests.ignoredWarnings}
-
-
- true
-
-
-
-
- org.eclipse.tycho
- tycho-surefire-plugin
-
- ${skipNativeTests}
- org.eclipse.swt.tests.win32.AllWin32Tests
-
-
-
-
-