diff --git a/README.md b/README.md
index bd0f051..416ec2d 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,9 @@ This archetype will create a multi-module project with a nested structure :
__artifactId__ : parent pom project
|
- |---__artifactId__.core : eclipse-plugin
+ |---__artifactId__.plugin : eclipse-plugin
+ |
+ |---__artifactId__.product: eclipse-repositorye
|
|---__artifactId__.feature: eclipse-feature
|
diff --git a/src/main/resources/META-INF/maven/archetype-metadata.xml b/src/main/resources/META-INF/maven/archetype-metadata.xml
index a9a8757..833e2ef 100644
--- a/src/main/resources/META-INF/maven/archetype-metadata.xml
+++ b/src/main/resources/META-INF/maven/archetype-metadata.xml
@@ -13,6 +13,9 @@
false
+
+ false
+
@@ -24,7 +27,7 @@
-
+
src/main/java
@@ -86,6 +89,17 @@
+
+
+
+
+
+ build.properties
+ application.product
+
+
+
+
diff --git a/src/main/resources/archetype-resources/README.md b/src/main/resources/archetype-resources/README.md
index 902722e..de8f086 100644
--- a/src/main/resources/archetype-resources/README.md
+++ b/src/main/resources/archetype-resources/README.md
@@ -11,7 +11,7 @@ The first run will take quite a while since maven will download all the required
In order to use the generated eclipse plugins in Eclipse, you will need m2e (https://www.eclipse.org/m2e)
and the m2eclipse-tycho plugin (https://github.com/tesla/m2eclipse-tycho/). Update sites to install these plugins :
-* m2e stable update site : http://download.eclipse.org/technology/m2e/releases/
+* m2e stable update site : https://download.eclipse.org/technology/m2e/releases/
* m2eclipse-tycho dev update site : http://repo1.maven.org/maven2/.m2e/connectors/m2eclipse-tycho/0.7.0/N/0.7.0.201309291400/
#if ($signing_support == "true" || $signing_support == "y" || $signing_support == "yes" )
diff --git a/src/main/resources/archetype-resources/__rootArtifactId__.core/pom.xml b/src/main/resources/archetype-resources/__rootArtifactId__.core/pom.xml
deleted file mode 100644
index c7918c3..0000000
--- a/src/main/resources/archetype-resources/__rootArtifactId__.core/pom.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
- ${rootArtifactId}
- ${groupId}
- ${version}
-
- 4.0.0
- ${artifactId}
- eclipse-plugin
- ${rootArtifactId} :: core
- ${rootArtifactId} Core Plugin
-
diff --git a/src/main/resources/archetype-resources/__rootArtifactId__.feature/feature.xml b/src/main/resources/archetype-resources/__rootArtifactId__.feature/feature.xml
index 7743be9..68df78e 100644
--- a/src/main/resources/archetype-resources/__rootArtifactId__.feature/feature.xml
+++ b/src/main/resources/archetype-resources/__rootArtifactId__.feature/feature.xml
@@ -30,7 +30,7 @@
+#if ($kotlin_support == "true" || $kotlin_support == "y" || $kotlin_support == "yes")
+ class="${package}.plugin.SampleHandlerKt">
+#else
+#end
+ class="${package}.plugin.SampleHandler">
diff --git a/src/main/resources/archetype-resources/__rootArtifactId__.plugin/pom.xml b/src/main/resources/archetype-resources/__rootArtifactId__.plugin/pom.xml
new file mode 100644
index 0000000..60f4bbd
--- /dev/null
+++ b/src/main/resources/archetype-resources/__rootArtifactId__.plugin/pom.xml
@@ -0,0 +1,99 @@
+
+
+
+ ${rootArtifactId}
+ ${groupId}
+ ${version}
+
+ 4.0.0
+ ${artifactId}
+ eclipse-plugin
+ ${rootArtifactId} :: core
+ ${rootArtifactId} Core Plugin
+
+#if ($kotlin_support == "true" || $kotlin_support == "y" || $kotlin_support == "yes")
+ 1.4.32
+#end
+
+
+
+#if ($kotlin_support == "true" || $kotlin_support == "y" || $kotlin_support == "yes")
+
+ org.jetbrains.kotlin
+ kotlin-stdlib
+ ${kotlin.version}
+
+#end
+
+
+
+
+#if ($kotlin_support == "true" || $kotlin_support == "y" || $kotlin_support == "yes")
+
+ org.jetbrains.kotlin
+ kotlin-maven-plugin
+ ${kotlin.version}
+
+
+ compile
+
+ compile
+
+
+
+ ${project.basedir}/src/main/kotlin
+ ${project.basedir}/src/main/java
+
+
+
+
+ test-compile
+ test-compile
+
+
+ ${project.basedir}/src/test/kotlin
+ ${project.basedir}/src/test/java
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.5.1
+
+ ${java_version}
+ ${java_version}
+
+
+
+
+ default-compile
+ none
+
+
+
+ default-testCompile
+ none
+
+
+ java-compile
+ compile
+
+ compile
+
+
+
+ java-test-compile
+ test-compile
+
+ testCompile
+
+
+
+
+#end
+
+
+
diff --git a/src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/java/core/Activator.java b/src/main/resources/archetype-resources/__rootArtifactId__.plugin/src/main/java/core/Activator.java
similarity index 93%
rename from src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/java/core/Activator.java
rename to src/main/resources/archetype-resources/__rootArtifactId__.plugin/src/main/java/core/Activator.java
index c7c0d53..4f77f9d 100644
--- a/src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/java/core/Activator.java
+++ b/src/main/resources/archetype-resources/__rootArtifactId__.plugin/src/main/java/core/Activator.java
@@ -1,7 +1,7 @@
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
-package ${package}.core;
+package ${package}.plugin;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.plugin.AbstractUIPlugin;
@@ -13,7 +13,7 @@
public class Activator extends AbstractUIPlugin {
// The plug-in ID
- public static final String PLUGIN_ID = "${parentArtifactId}.core";
+ public static final String PLUGIN_ID = "${parentArtifactId}.plugin";
// The shared instance
private static Activator plugin;
diff --git a/src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/java/core/SampleHandler.java b/src/main/resources/archetype-resources/__rootArtifactId__.plugin/src/main/java/core/SampleHandler.java
similarity index 97%
rename from src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/java/core/SampleHandler.java
rename to src/main/resources/archetype-resources/__rootArtifactId__.plugin/src/main/java/core/SampleHandler.java
index 3f647ed..d3af2e7 100644
--- a/src/main/resources/archetype-resources/__rootArtifactId__.core/src/main/java/core/SampleHandler.java
+++ b/src/main/resources/archetype-resources/__rootArtifactId__.plugin/src/main/java/core/SampleHandler.java
@@ -1,7 +1,7 @@
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
-package ${package}.core;
+package ${package}.plugin;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
diff --git a/src/main/resources/archetype-resources/__rootArtifactId__.plugin/src/main/kotlin/SampleHandlerKt.kt b/src/main/resources/archetype-resources/__rootArtifactId__.plugin/src/main/kotlin/SampleHandlerKt.kt
new file mode 100755
index 0000000..29b413c
--- /dev/null
+++ b/src/main/resources/archetype-resources/__rootArtifactId__.plugin/src/main/kotlin/SampleHandlerKt.kt
@@ -0,0 +1,36 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+package ${package}.plugin;
+
+import org.eclipse.core.commands.AbstractHandler
+import org.eclipse.core.commands.ExecutionEvent
+import org.eclipse.core.commands.ExecutionException
+import org.eclipse.jface.dialogs.MessageDialog
+import org.eclipse.ui.IWorkbench
+import org.eclipse.ui.IWorkbenchWindow
+import org.eclipse.ui.PlatformUI
+
+/**
+ * Executed by click menu.
+ */
+class SampleHandlerKt : AbstractHandler() {
+ private val window: IWorkbenchWindow
+
+ /**
+ * {@inheritDoc}
+ */
+ @kotlin.Throws(ExecutionException::class)
+ fun execute(event: ExecutionEvent?): Any? {
+ MessageDialog.openInformation(window.getShell(), "Eclipse Plugin Archetype", "Hello, Maven+Eclipse world,\n \${parentArtifactId} is built with Tycho")
+ return null
+ }
+
+ /**
+ * constructor.
+ */
+ init {
+ val workbench: IWorkbench = PlatformUI.getWorkbench()
+ window = workbench.getActiveWorkbenchWindow()
+ }
+}
\ No newline at end of file
diff --git a/src/main/resources/archetype-resources/__rootArtifactId__.product/application.product b/src/main/resources/archetype-resources/__rootArtifactId__.product/application.product
new file mode 100755
index 0000000..7278e4a
--- /dev/null
+++ b/src/main/resources/archetype-resources/__rootArtifactId__.product/application.product
@@ -0,0 +1,214 @@
+
+
+
+
+
+
+
+
+
+
+
+ -console 1337 -debug -consoleLog -clean -clearPersistedState
+
+ -Dequinox.ds.print=true -Dequinox.ds.debug=true
+ -XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/archetype-resources/__rootArtifactId__.product/build.properties b/src/main/resources/archetype-resources/__rootArtifactId__.product/build.properties
new file mode 100755
index 0000000..1767076
--- /dev/null
+++ b/src/main/resources/archetype-resources/__rootArtifactId__.product/build.properties
@@ -0,0 +1,4 @@
+#set( $symbol_pound = '#' )
+#set( $symbol_dollar = '$' )
+#set( $symbol_escape = '\' )
+bin.includes = application.product
diff --git a/src/main/resources/archetype-resources/__rootArtifactId__.product/pom.xml b/src/main/resources/archetype-resources/__rootArtifactId__.product/pom.xml
new file mode 100755
index 0000000..1aafc2f
--- /dev/null
+++ b/src/main/resources/archetype-resources/__rootArtifactId__.product/pom.xml
@@ -0,0 +1,12 @@
+
+
+ 4.0.0
+
+ ${rootArtifactId}
+ ${groupId}
+ ${version}
+
+ application
+ eclipse-repository
+ ${rootArtifactId} :: product
+
diff --git a/src/main/resources/archetype-resources/__rootArtifactId__.test/META-INF/MANIFEST.MF b/src/main/resources/archetype-resources/__rootArtifactId__.test/META-INF/MANIFEST.MF
index ddb562a..56aee72 100644
--- a/src/main/resources/archetype-resources/__rootArtifactId__.test/META-INF/MANIFEST.MF
+++ b/src/main/resources/archetype-resources/__rootArtifactId__.test/META-INF/MANIFEST.MF
@@ -16,7 +16,7 @@ Bundle-ManifestVersion: 2
Bundle-Name: ${rootArtifactId} Test Fragment
Bundle-SymbolicName: ${rootArtifactId}.test
Bundle-Version: ${futureVersion}.qualifier
-Fragment-Host: ${rootArtifactId}.core;bundle-version="${futureVersion}"
+Fragment-Host: ${rootArtifactId}.plugin;bundle-version="${futureVersion}"
Bundle-RequiredExecutionEnvironment: JavaSE-$java_version
Require-Bundle: org.eclipse.jdt.junit4.runtime;bundle-version="1.1.0",
${junitBundle}
diff --git a/src/main/resources/archetype-resources/__rootArtifactId__.test/src/main/java/core/ActivatorTest.java b/src/main/resources/archetype-resources/__rootArtifactId__.test/src/main/java/core/ActivatorTest.java
index 540a9f1..2bc9aed 100644
--- a/src/main/resources/archetype-resources/__rootArtifactId__.test/src/main/java/core/ActivatorTest.java
+++ b/src/main/resources/archetype-resources/__rootArtifactId__.test/src/main/java/core/ActivatorTest.java
@@ -1,4 +1,4 @@
-package ${package}.core;
+package ${package}.plugin;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -13,7 +13,7 @@ public class ActivatorTest {
@Test
public void veryStupidTest() {
- assertEquals("${parentArtifactId}.core",Activator.PLUGIN_ID);
+ assertEquals("${parentArtifactId}.plugin",Activator.PLUGIN_ID);
assertTrue("Plugin should be started", Activator.getDefault().started);
}
}
\ No newline at end of file
diff --git a/src/main/resources/archetype-resources/pom.xml b/src/main/resources/archetype-resources/pom.xml
index 3f2aac4..e0492ce 100644
--- a/src/main/resources/archetype-resources/pom.xml
+++ b/src/main/resources/archetype-resources/pom.xml
@@ -25,14 +25,13 @@
#if ($signing_support == "true" || $signing_support == "y" || $signing_support == "yes" )
1.4
#end
-
${eclipse_platform}
p2
- http://download.eclipse.org/releases/${eclipse_platform}
+ https://download.eclipse.org/releases/${eclipse_platform}
@@ -51,6 +50,23 @@
p2
consider
true
+
+
+ win32
+ win32
+ x86_64
+
+
+ linux
+ gtk
+ x86_64
+
+
+ macosx
+ cocoa
+ x86_64
+
+
diff --git a/src/test/resources/projects/2020-12/archetype.properties b/src/test/resources/projects/2021-03/archetype.properties
similarity index 68%
rename from src/test/resources/projects/2020-12/archetype.properties
rename to src/test/resources/projects/2021-03/archetype.properties
index 5b2dd95..7dd9a65 100644
--- a/src/test/resources/projects/2020-12/archetype.properties
+++ b/src/test/resources/projects/2021-03/archetype.properties
@@ -1,8 +1,9 @@
package=foo.bar.myplugin.kepler
version=1.0.0-SNAPSHOT
groupId=foo.bar.myplugin
-artifactId=2020-12
+artifactId=2021-03
tycho_version=1.7.0
-eclipse_platform=2020-12
+eclipse_platform=2021-03
signing_support=true
java_version=1.8
+kotlin_support=false
\ No newline at end of file
diff --git a/src/test/resources/projects/2020-12/goal.txt b/src/test/resources/projects/2021-03/goal.txt
similarity index 100%
rename from src/test/resources/projects/2020-12/goal.txt
rename to src/test/resources/projects/2021-03/goal.txt
diff --git a/src/test/resources/projects/basic/archetype.properties b/src/test/resources/projects/basic/archetype.properties
index 43fc5b1..4ade747 100644
--- a/src/test/resources/projects/basic/archetype.properties
+++ b/src/test/resources/projects/basic/archetype.properties
@@ -3,6 +3,7 @@ version=1.0.0-SNAPSHOT
groupId=foo.bar.myplugin
artifactId=basic
tycho_version=1.6.0
-eclipse_platform=2019-12
+eclipse_platform=2021-03
signing_support=false
java_version=1.8
+kotlin_support=false
\ No newline at end of file
diff --git a/src/test/resources/projects/kotlin/archetype.properties b/src/test/resources/projects/kotlin/archetype.properties
new file mode 100755
index 0000000..3ab88c1
--- /dev/null
+++ b/src/test/resources/projects/kotlin/archetype.properties
@@ -0,0 +1,9 @@
+package=foo.bar.myplugin.basic
+version=1.0.0-SNAPSHOT
+groupId=foo.bar.myplugin
+artifactId=basic
+tycho_version=1.6.0
+eclipse_platform=2021-03
+signing_support=false
+java_version=1.8
+kotlin_support=true
\ No newline at end of file
diff --git a/src/test/resources/projects/kotlin/goal.txt b/src/test/resources/projects/kotlin/goal.txt
new file mode 100755
index 0000000..d59d337
--- /dev/null
+++ b/src/test/resources/projects/kotlin/goal.txt
@@ -0,0 +1 @@
+clean verify
\ No newline at end of file