This is an automated email from the ASF dual-hosted git repository.
hansva pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-hop-docs.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 52bd017 Sample plugin documentation
new 4fdda38 Merge pull request #17 from hansva/sample_plugin
52bd017 is described below
commit 52bd01754949672a22a848a683a559e035953c4e
Author: Hans Van Akelyen <[email protected]>
AuthorDate: Mon Nov 30 16:32:28 2020 +0100
Sample plugin documentation
first version of the documentation
---
.../start-your-own-plugin/plugin-sample-1.png | Bin 0 -> 39195 bytes
.../start-your-own-plugin/plugin-sample-2.png | Bin 0 -> 89005 bytes
hop-dev-manual/modules/ROOT/nav.adoc | 1 +
hop-dev-manual/modules/ROOT/pages/index.adoc | 2 +
.../modules/ROOT/pages/start-your-own-plugin.adoc | 103 +++++++++++++++++++++
5 files changed, 106 insertions(+)
diff --git
a/hop-dev-manual/modules/ROOT/assets/images/start-your-own-plugin/plugin-sample-1.png
b/hop-dev-manual/modules/ROOT/assets/images/start-your-own-plugin/plugin-sample-1.png
new file mode 100644
index 0000000..2db56d4
Binary files /dev/null and
b/hop-dev-manual/modules/ROOT/assets/images/start-your-own-plugin/plugin-sample-1.png
differ
diff --git
a/hop-dev-manual/modules/ROOT/assets/images/start-your-own-plugin/plugin-sample-2.png
b/hop-dev-manual/modules/ROOT/assets/images/start-your-own-plugin/plugin-sample-2.png
new file mode 100644
index 0000000..7618b97
Binary files /dev/null and
b/hop-dev-manual/modules/ROOT/assets/images/start-your-own-plugin/plugin-sample-2.png
differ
diff --git a/hop-dev-manual/modules/ROOT/nav.adoc
b/hop-dev-manual/modules/ROOT/nav.adoc
index e167aea..11539b6 100644
--- a/hop-dev-manual/modules/ROOT/nav.adoc
+++ b/hop-dev-manual/modules/ROOT/nav.adoc
@@ -3,5 +3,6 @@
* xref:metadata-plugins.adoc[Metadata plugins]
* xref:setup-dev-environment.adoc[Setting up your development environment]
* xref:plugin-development.adoc[Plugins Development]
+** xref:start-your-own-plugin.adoc[Creating your own plugin]
* xref:webhop/index.adoc[Webhop]
** xref:webhop/developer-guide.adoc[Webhop Developer Guide]
\ No newline at end of file
diff --git a/hop-dev-manual/modules/ROOT/pages/index.adoc
b/hop-dev-manual/modules/ROOT/pages/index.adoc
index e8313a7..a17cd33 100644
--- a/hop-dev-manual/modules/ROOT/pages/index.adoc
+++ b/hop-dev-manual/modules/ROOT/pages/index.adoc
@@ -4,3 +4,5 @@
* xref:metadata-plugins.adoc[Metadata plugins]
* xref:porting-kettle-plugins.adoc[Porting Kettle plugins]
* xref:setup-dev-environment.adoc[Setting up your development environment]
+* xref:plugin-development.adoc[Plugin Development]
+* xref:start-your-own-plugin.adoc[Creating your own plugin]
diff --git a/hop-dev-manual/modules/ROOT/pages/start-your-own-plugin.adoc
b/hop-dev-manual/modules/ROOT/pages/start-your-own-plugin.adoc
new file mode 100644
index 0000000..b0c167e
--- /dev/null
+++ b/hop-dev-manual/modules/ROOT/pages/start-your-own-plugin.adoc
@@ -0,0 +1,103 @@
+[[PluginDevelopment-OwnPluginDevelopment]]
+= Creating a remote plugin
+
+This guide is to help you set up and start development on a plugin that will
not be included in the Hop repository. For more information on plugin types and
how to add them to the Hop repository check out
xref:plugin-development.adoc[following guide].
+
+The Apache software foundation has a strict policy on source licenses
including all dependencies used to provide certain functionality. To see which
dependencies are allowed in an Apache project check
https://www.apache.org/legal/resolved.html[following page].
+If your plugin consists of code and dependencies in category A it can safely
be added to the Hop repository and community can help maintain the code. If it
uses category B or X it can no longer be added to the default distribution of
Hop.
+
+== Getting started
+
+This guides assumes your are using IntelliJ for your development, some steps
might be different in Eclipse.
+
+. Clone the skeleton repository found
https://github.com/project-hop/hop-plugin-sample[here]
+. Import the project in Intellij
+. Start coding
+
+=== Project structure
+
+The sample project consists out of 3 main modules and 3 sub-modules
+
+image::start-your-own-plugin/plugin-sample-1.png[]
+
+the main modules are:
+
+* hop-action-sample
+* hop-transform-sample
+* assemblies
+** assemblies-action-sample
+** assemblies-transform-sample
+** debug
+
+In our sample repository one action and one transform are provided, they all
work but they do not manipulate data or perform any actions. The assemblies
module is used to create a distribution or test your action or transform during
development.
+
+
+=== Debugging
+
+To debug the project create a new `application` configuration with following
configuration:
+
+image::start-your-own-plugin/plugin-sample-2.png[]
+
+Important is the working directory, for hop to work including all the plugins
provided by the project a certain folder structure is required. this is
generated at the debug location using following pom.
+
+```
+ <dependency>
+ <groupId>org.apache.hop</groupId>
+ <artifactId>hop-core</artifactId>
+ <version>${hop.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hop</groupId>
+ <artifactId>hop-engine</artifactId>
+ <version>${hop.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hop</groupId>
+ <artifactId>hop-ui-swt</artifactId>
+ <version>${hop.version}</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hop</groupId>
+ <artifactId>hop-assemblies-plugins-dist</artifactId>
+ <version>${hop.version}</version>
+ <type>zip</type>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.project.hop</groupId>
+ <artifactId>assemblies-transform-sample</artifactId>
+ <version>${project.version}</version>
+ <type>zip</type>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.project.hop</groupId>
+ <artifactId>assemblies-action-sample</artifactId>
+ <version>${project.version}</version>
+ <type>zip</type>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ <scope>compile</scope>
+ </dependency>
+```
+
+When compiling you will notice a plugins directory is added to the debug
location, this contains all plugins distributed by the Apache Hop team, the
assemblies for the sample transform and action follow the same logic to make
sure they are copied to the correct location too, this allows the Hop plugin
loader to find and load all the plugins for the GUI.
\ No newline at end of file