diff --git a/integration-tests/samples/read-samples-build-hop-run.hpl b/integration-tests/samples/read-samples-build-hop-run.hpl index 0079094b008..364a71bf1af 100644 --- a/integration-tests/samples/read-samples-build-hop-run.hpl +++ b/integration-tests/samples/read-samples-build-hop-run.hpl @@ -428,6 +428,14 @@ var hop_run_cmd = './hop-run.sh -j samples -r ' + run_config + ' -f ' + filename textfileoutput-tiny-file.hpl generates the input file required by csvinput-basic.hpl + + parquet-file-output.hpl + generates the Parquet file read by parquet-file-input.hpl + + + data-stream-output.hpl + generates the Arrow stream file read by data-stream-input.hpl + Y 1 @@ -575,6 +583,270 @@ var hop_run_cmd = './hop-run.sh -j samples -r ' + run_config + ' -f ' + filename structured-extract-basic.hpl requires an AI provider named ollama-local + + call-db-procedure.hpl + requires a stored procedure in the database + + + get-table-names.hpl + fails on the H2 2.x metadata of the hop-samples connection (INFORMATION_SCHEMA.CONSTANTS) + + + http-client.hpl + requires network access to the URL + + + http-post.hpl + requires network access to the URL + + + web-services-lookup.hpl + requires network access to the web service + + + mail.hpl + requires mail connection sample-mail + + + email-messages-input.hpl + requires mail connection sample-mail + + + ldap-input.hpl + requires reachable LDAP server + + + ldap-output.hpl + requires reachable LDAP server + + + jms-consumer.hpl + requires JMS connection sample-jms + + + jms-producer.hpl + requires JMS connection sample-jms + + + splunk-input.hpl + requires reachable Splunk server + + + execution-information.hpl + requires execution info location metadata + + + sas-input.hpl + requires a SAS data set file + + + pgp-encrypt-stream.hpl + requires gpg and the PGP key of the recipient + + + pgp-decrypt-stream.hpl + requires gpg and a PGP private key + + + dataset-input.hpl + requires unit test data set metadata + + + dataset-output.hpl + requires unit test data set metadata + + + execute-unit-tests.hpl + requires unit test metadata + + + aws-sns-notify.hpl + requires AWS credentials + + + aws-sqs-reader.hpl + requires AWS credentials + + + redshift-bulk-loader.hpl + requires AWS credentials and a Redshift cluster + + + azure-event-hubs-listener.hpl + requires Azure Event Hubs and credentials + + + azure-event-hubs-writer.hpl + requires Azure Event Hubs and credentials + + + cassandra-input.hpl + requires reachable Cassandra cluster + + + cassandra-output.hpl + requires reachable Cassandra cluster + + + cassandra-sstable-output.hpl + requires Cassandra connection settings + + + google-sheets-input.hpl + requires Google credentials + + + google-sheets-output.hpl + requires Google credentials + + + google-analytics-4.hpl + requires Google credentials + + + salesforce-input.hpl + requires Salesforce credentials + + + salesforce-insert.hpl + requires Salesforce credentials + + + salesforce-update.hpl + requires Salesforce credentials + + + salesforce-upsert.hpl + requires Salesforce credentials + + + salesforce-delete.hpl + requires Salesforce credentials + + + pgvector-search.hpl + requires PostgreSQL with the pgvector extension + + + pgvector-upsert.hpl + requires PostgreSQL with the pgvector extension + + + sftp-put.hpl + requires reachable SFTP host and credentials + + + embed-text.hpl + requires AI connection with an embedding model + + + mssql-bulk-loader.hpl + requires a SQL Server connection named mssql + + + mysql-bulk-loader.hpl + requires a MySQL connection named mysql + + + monetdb-bulk-loader.hpl + requires a MonetDB connection named monetdb + + + postgresql-bulk-loader.hpl + requires a PostgreSQL connection named postgresql + + + oracle-bulk-loader.hpl + requires an Oracle connection named oracle + + + cratedb-bulk-loader.hpl + requires a CrateDB connection named cratedb + + + snowflake-bulk-loader.hpl + requires a Snowflake connection named snowflake + + + microsoft-access-output.hpl + requires an Access database file and table name + + + doris-bulk-loader.hpl + requires a reachable Doris frontend + + + teradata-fastload-bulk-loader.hpl + requires a Teradata connection named teradata + + + rules-executor.hpl + requires a rules definition + + + beam-bigquery-input.hpl + requires Beam run configuration and GCP credentials + + + beam-bigquery-output.hpl + requires Beam run configuration and GCP credentials + + + beam-bigtable-input.hpl + requires Beam run configuration and GCP credentials + + + beam-gcp-pubsub-publish.hpl + requires Beam run configuration and GCP credentials + + + beam-gcp-pubsub-subscribe.hpl + requires Beam run configuration and GCP credentials + + + beam-kinesis-consume.hpl + requires Beam run configuration and AWS credentials + + + beam-kinesis-produce.hpl + requires Beam run configuration and AWS credentials + + + beam-timestamp.hpl + requires Beam run configuration + + + beam-hive-catalog-input.hpl + requires Beam run configuration and a Hive metastore + + + redis-input-multi-structure.hpl + requires a reachable Redis server and Redis connection localhost_standalone + + + redis-output-set.hpl + requires a reachable Redis server and Redis connection localhost_standalone + + + redis-output-stream.hpl + requires a reachable Redis server and Redis connection localhost_standalone + + + redis-output-list.hpl + requires a reachable Redis server and Redis connection localhost_standalone + + + redis-output-string.hpl + requires a reachable Redis server and Redis connection localhost_standalone + + + redis-output-hash.hpl + requires a reachable Redis server and Redis connection localhost_standalone + + + odata-input-northwind.hpl + requires network access to services.odata.org + Y 1 @@ -806,4 +1078,4 @@ var hop_run_cmd = './hop-run.sh -j samples -r ' + run_config + ' -f ' + filename - + \ No newline at end of file diff --git a/plugins/databases/access/src/assembly/assembly.xml b/plugins/databases/access/src/assembly/assembly.xml index 51f9d3930ed..f6789116d36 100644 --- a/plugins/databases/access/src/assembly/assembly.xml +++ b/plugins/databases/access/src/assembly/assembly.xml @@ -32,6 +32,13 @@ + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/databases/access/src/main/samples/transforms/microsoft-access-output.hpl b/plugins/databases/access/src/main/samples/transforms/microsoft-access-output.hpl new file mode 100644 index 00000000000..6bcf8c5d4c6 --- /dev/null +++ b/plugins/databases/access/src/main/samples/transforms/microsoft-access-output.hpl @@ -0,0 +1,139 @@ + + + + + microsoft-access-output + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Write rows to a Microsoft Access database file. Set the Access database file and table name before running. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + Microsoft Access output + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + Microsoft Access output + AccessOutput + + Y + + 1 + + none + + + Y + 500 + Y + Y + N + V2019 + N + + + 1184 + 288 + + + + + + diff --git a/plugins/databases/cratedb/src/assembly/assembly.xml b/plugins/databases/cratedb/src/assembly/assembly.xml index 4132bed1ba7..6746ca9866d 100644 --- a/plugins/databases/cratedb/src/assembly/assembly.xml +++ b/plugins/databases/cratedb/src/assembly/assembly.xml @@ -37,6 +37,13 @@ + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/databases/cratedb/src/main/samples/transforms/cratedb-bulk-loader.hpl b/plugins/databases/cratedb/src/main/samples/transforms/cratedb-bulk-loader.hpl new file mode 100644 index 00000000000..7fb35d0f713 --- /dev/null +++ b/plugins/databases/cratedb/src/main/samples/transforms/cratedb-bulk-loader.hpl @@ -0,0 +1,171 @@ + + + + + cratedb-bulk-loader + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Load rows into a CrateDB table. Create a CrateDB connection named cratedb before running. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + load + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + load + CrateDBBulkLoader + + Y + + 1 + + none + + + cratedb + doc + types_test
+ N + + 1000 + + Encrypted + N + + Encrypted + N + N + Y + Y + file:///home/output-stream-0004.csv + ${PROJECT_HOME}/import/ + N + + N + N + + + id + id + + + ratio + ratio + + + name + name + + + when_ts + when_ts + + + + + 480 + 192 + +
+ + + +
diff --git a/plugins/databases/doris/src/assembly/assembly.xml b/plugins/databases/doris/src/assembly/assembly.xml index 64b2252dbc9..ec1150f5d23 100644 --- a/plugins/databases/doris/src/assembly/assembly.xml +++ b/plugins/databases/doris/src/assembly/assembly.xml @@ -38,6 +38,13 @@ + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/databases/doris/src/main/samples/transforms/doris-bulk-loader.hpl b/plugins/databases/doris/src/main/samples/transforms/doris-bulk-loader.hpl new file mode 100644 index 00000000000..91789a16d76 --- /dev/null +++ b/plugins/databases/doris/src/main/samples/transforms/doris-bulk-loader.hpl @@ -0,0 +1,136 @@ + + + + + doris-bulk-loader + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Load rows into an Apache Doris table. Set the Doris frontend host, database, table and credentials before running. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + Doris bulk loader + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + Doris bulk loader + DorisBulkLoader + + Y + + 1 + + none + + + 0 + 0 + + + + + 1376 + 160 + + + + + + diff --git a/plugins/databases/monetdb/src/assembly/assembly.xml b/plugins/databases/monetdb/src/assembly/assembly.xml index b4e207d968f..50af6743e7f 100644 --- a/plugins/databases/monetdb/src/assembly/assembly.xml +++ b/plugins/databases/monetdb/src/assembly/assembly.xml @@ -38,6 +38,13 @@ + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/databases/monetdb/src/main/samples/transforms/monetdb-bulk-loader.hpl b/plugins/databases/monetdb/src/main/samples/transforms/monetdb-bulk-loader.hpl new file mode 100644 index 00000000000..79b4aab50f7 --- /dev/null +++ b/plugins/databases/monetdb/src/main/samples/transforms/monetdb-bulk-loader.hpl @@ -0,0 +1,153 @@ + + + + + monetdb-bulk-loader + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Load rows into a MonetDB table. Create a MonetDB connection named monetdb before running. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + MonetDB bulk loader + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + MonetDB bulk loader + MonetDBBulkLoader + + Y + + 1 + + none + + + monetdb + 100000 + sys + bulk_bin
+ + N + Y + | + " + null + UTF-8 + + id + id + N + + + payload + payload + N + + + + 352 + 80 + +
+ + + +
diff --git a/plugins/databases/mssqlnative/src/assembly/assembly.xml b/plugins/databases/mssqlnative/src/assembly/assembly.xml index 15752e266da..3c2ca835b41 100644 --- a/plugins/databases/mssqlnative/src/assembly/assembly.xml +++ b/plugins/databases/mssqlnative/src/assembly/assembly.xml @@ -38,6 +38,13 @@ + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/databases/mssqlnative/src/main/samples/transforms/mssql-bulk-loader.hpl b/plugins/databases/mssqlnative/src/main/samples/transforms/mssql-bulk-loader.hpl new file mode 100644 index 00000000000..d211c9f3493 --- /dev/null +++ b/plugins/databases/mssqlnative/src/main/samples/transforms/mssql-bulk-loader.hpl @@ -0,0 +1,158 @@ + + + + + mssql-bulk-loader + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Load rows into a Microsoft SQL Server table. Create a Microsoft SQL Server connection named mssql before running. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + Bulk load binary + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + Bulk load binary + MsSqlServerBulkLoader + + Y + + 1 + + none + + + N + 3 + 0 + N + mssql + + + NONE + id + id + + + NONE + payload + payload + + + N + N + Y + N + dbo + Y + bulkloader_binary
+ Y + Y + + + 400 + 144 + +
+ + + +
diff --git a/plugins/databases/mysql/src/assembly/assembly.xml b/plugins/databases/mysql/src/assembly/assembly.xml index 11e8a4261eb..644ac1323bc 100644 --- a/plugins/databases/mysql/src/assembly/assembly.xml +++ b/plugins/databases/mysql/src/assembly/assembly.xml @@ -33,6 +33,13 @@ + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/databases/mysql/src/main/samples/transforms/mysql-bulk-loader.hpl b/plugins/databases/mysql/src/main/samples/transforms/mysql-bulk-loader.hpl new file mode 100644 index 00000000000..98e034a76f3 --- /dev/null +++ b/plugins/databases/mysql/src/main/samples/transforms/mysql-bulk-loader.hpl @@ -0,0 +1,156 @@ + + + + + mysql-bulk-loader + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Load rows into a MySQL table with LOAD DATA. Create a MySQL connection named mysql before running. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + MySQL bulk loader + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + MySQL bulk loader + MySqlBulkLoader + + Y + + 1 + + none + + + + mysql + + " + + \ + + + OK + column1 + column1 + + + OK + column2 + column2 + + + /tmp/fifo + N + Y + N + + testTable
+ + + 464 + 160 + +
+ + + +
diff --git a/plugins/databases/oracle/src/assembly/assembly.xml b/plugins/databases/oracle/src/assembly/assembly.xml index 0530c211697..205f55bb410 100644 --- a/plugins/databases/oracle/src/assembly/assembly.xml +++ b/plugins/databases/oracle/src/assembly/assembly.xml @@ -33,6 +33,13 @@ + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/databases/oracle/src/main/samples/transforms/oracle-bulk-loader.hpl b/plugins/databases/oracle/src/main/samples/transforms/oracle-bulk-loader.hpl new file mode 100644 index 00000000000..bb6305c30d1 --- /dev/null +++ b/plugins/databases/oracle/src/main/samples/transforms/oracle-bulk-loader.hpl @@ -0,0 +1,148 @@ + + + + + oracle-bulk-loader + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Load rows into an Oracle table with SQL*Loader. Create an Oracle connection named oracle before running. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + Oracle bulk loader + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + Oracle bulk loader + OraBulkLoader + + Y + + 1 + + none + + + oracle + 0 + 100000 + control${Internal.Transform.CopyNr}.cfg + load${Internal.Transform.CopyNr}.dat + N + Y + 50 + N + N + APPEND + AUTO_END + N + 0 + sqlldr + target load table
+ + + 1376 + 544 + +
+ + + +
diff --git a/plugins/databases/postgresql/src/assembly/assembly.xml b/plugins/databases/postgresql/src/assembly/assembly.xml index 53392067225..b41f7625937 100644 --- a/plugins/databases/postgresql/src/assembly/assembly.xml +++ b/plugins/databases/postgresql/src/assembly/assembly.xml @@ -32,6 +32,13 @@ + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/databases/postgresql/src/main/samples/transforms/postgresql-bulk-loader.hpl b/plugins/databases/postgresql/src/main/samples/transforms/postgresql-bulk-loader.hpl new file mode 100644 index 00000000000..01dab9840f5 --- /dev/null +++ b/plugins/databases/postgresql/src/main/samples/transforms/postgresql-bulk-loader.hpl @@ -0,0 +1,149 @@ + + + + + postgresql-bulk-loader + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Load rows into a PostgreSQL table with the COPY command. Create a PostgreSQL connection named postgresql before running. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + Bulk load orders_bulk + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + Bulk load orders_bulk + PGBulkLoader + + Y + + 1 + + none + + + postgresql + ; + " + TRUNCATE + + + id + id + + + + amount + amount + + public + N + orders_bulk
+ + + 352 + 80 + +
+ + + +
diff --git a/plugins/databases/snowflake/src/assembly/assembly.xml b/plugins/databases/snowflake/src/assembly/assembly.xml index 4d5fb0ad8d5..77658170167 100644 --- a/plugins/databases/snowflake/src/assembly/assembly.xml +++ b/plugins/databases/snowflake/src/assembly/assembly.xml @@ -33,6 +33,13 @@ + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/databases/snowflake/src/main/samples/transforms/generate-snowflake-id.hpl b/plugins/databases/snowflake/src/main/samples/transforms/generate-snowflake-id.hpl new file mode 100644 index 00000000000..a8b601c29aa --- /dev/null +++ b/plugins/databases/snowflake/src/main/samples/transforms/generate-snowflake-id.hpl @@ -0,0 +1,128 @@ + + + + + generate-snowflake-id + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Add a unique snowflake identifier to every row. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + generate snowflake id + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + + + 1 + + + 2 + + + 3 + + + + + 128 + 160 + + + + generate snowflake id + SnowflakeId + + Y + + 1 + + none + + + 2 + 31 + snowflakeId + + + 400 + 160 + + + + + + diff --git a/plugins/databases/snowflake/src/main/samples/transforms/snowflake-bulk-loader.hpl b/plugins/databases/snowflake/src/main/samples/transforms/snowflake-bulk-loader.hpl new file mode 100644 index 00000000000..13ea197c308 --- /dev/null +++ b/plugins/databases/snowflake/src/main/samples/transforms/snowflake-bulk-loader.hpl @@ -0,0 +1,148 @@ + + + + + snowflake-bulk-loader + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Load rows into a Snowflake table. Create a Snowflake connection named snowflake before running. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + Snowflake Bulk Loader + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + Snowflake Bulk Loader + SnowflakeBulkLoader + + Y + + 1 + + none + + + snowflake + N + csv + N + Y + + + N + user + abort + Y + N + 20000 + N + N + ${java.io.tmpdir} + + + 1376 + 96 + + + + + + diff --git a/plugins/databases/teradata/src/assembly/assembly.xml b/plugins/databases/teradata/src/assembly/assembly.xml index 0c8c7ea3652..d8028bdc13e 100644 --- a/plugins/databases/teradata/src/assembly/assembly.xml +++ b/plugins/databases/teradata/src/assembly/assembly.xml @@ -33,6 +33,13 @@ + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/databases/teradata/src/main/samples/transforms/teradata-fastload-bulk-loader.hpl b/plugins/databases/teradata/src/main/samples/transforms/teradata-fastload-bulk-loader.hpl new file mode 100644 index 00000000000..6db501ce5fc --- /dev/null +++ b/plugins/databases/teradata/src/main/samples/transforms/teradata-fastload-bulk-loader.hpl @@ -0,0 +1,143 @@ + + + + + teradata-fastload-bulk-loader + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Load rows into a Teradata table with FastLoad. Create a Teradata connection named teradata before running. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + Teradata Fastload bulk loader + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + Teradata Fastload bulk loader + TeraFast + + Y + + 1 + + none + + + teradata + + + 0 + + + 0 + + N + N + N + + + 1376 + 32 + + + + + + diff --git a/plugins/engines/beam/src/main/samples/beam/beam-bigquery-input.hpl b/plugins/engines/beam/src/main/samples/beam/beam-bigquery-input.hpl new file mode 100644 index 00000000000..59162c73d34 --- /dev/null +++ b/plugins/engines/beam/src/main/samples/beam/beam-bigquery-input.hpl @@ -0,0 +1,112 @@ + + + + + beam-bigquery-input + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read rows from a BigQuery table with a Beam pipeline. Requires GCP credentials. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + apache-hop.it.customers + BeamBQInput + + Y + + 1 + + none + + + it + + + Integer + rowCount + + + Integer + minId + + + Integer + maxId + + + String + minName + + + String + maxName + + + apache-hop + SELECT + count(*) as rowCount, + min(id) as minId, max(id) as maxId, + min(lastName) as minName, max(lastName) as maxName +FROM apache-hop.it.customers + + + + 192 + 112 + + + + + + diff --git a/plugins/engines/beam/src/main/samples/beam/beam-bigquery-output.hpl b/plugins/engines/beam/src/main/samples/beam/beam-bigquery-output.hpl new file mode 100644 index 00000000000..73204b31dbb --- /dev/null +++ b/plugins/engines/beam/src/main/samples/beam/beam-bigquery-output.hpl @@ -0,0 +1,134 @@ + + + + + beam-bigquery-output + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Write rows to a BigQuery table with a Beam pipeline. Requires GCP credentials. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + apache-hop.it.customers + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + + + 128 + 224 + + + + apache-hop.it.customers + BeamBQOutput + + Y + + 1 + + none + + + Y + it + N + apache-hop + customers + Y + + + 368 + 96 + + + + + + diff --git a/plugins/engines/beam/src/main/samples/beam/beam-bigtable-input.hpl b/plugins/engines/beam/src/main/samples/beam/beam-bigtable-input.hpl new file mode 100644 index 00000000000..57f773634ec --- /dev/null +++ b/plugins/engines/beam/src/main/samples/beam/beam-bigtable-input.hpl @@ -0,0 +1,133 @@ + + + + + beam-bigtable-input + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read rows from a Google Cloud Bigtable table with a Beam pipeline. Requires GCP credentials. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + apache-hop-it.customers + BeamBigtableInput + + N + + 1 + + none + + + apache-hop-it + key + apache-hop + + + lastName + lastName + String + + + firstName + firstName + String + + + zipCode + zipCode + String + + + city + city + String + + + birthdate + birthdate + String + + + street + street + String + + + housenr + housenr + String + + + stateCode + stateCode + String + + + state + state + String + + + customers + + + 256 + 144 + + + + + + diff --git a/plugins/engines/beam/src/main/samples/beam/beam-gcp-pubsub-publish.hpl b/plugins/engines/beam/src/main/samples/beam/beam-gcp-pubsub-publish.hpl new file mode 100644 index 00000000000..25fb46c6cdc --- /dev/null +++ b/plugins/engines/beam/src/main/samples/beam/beam-gcp-pubsub-publish.hpl @@ -0,0 +1,122 @@ + + + + + beam-gcp-pubsub-publish + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Publish the message field of every row to a GCP Pub/Sub topic. Run this pipeline with a Beam run configuration. Requires GCP credentials. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + publish to pubsub + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + message + String + + -1 + -1 + N + + + + + hello from Beam + + + + + 128 + 224 + + + + publish to pubsub + BeamPublish + + Y + + 1 + + none + + + projects/sample-project/topics/sample-topic + String + message + + + 400 + 224 + + + + + + diff --git a/plugins/engines/beam/src/main/samples/beam/beam-gcp-pubsub-subscribe.hpl b/plugins/engines/beam/src/main/samples/beam/beam-gcp-pubsub-subscribe.hpl new file mode 100644 index 00000000000..5f1087d3bff --- /dev/null +++ b/plugins/engines/beam/src/main/samples/beam/beam-gcp-pubsub-subscribe.hpl @@ -0,0 +1,85 @@ + + + + + beam-gcp-pubsub-subscribe + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Subscribe to a GCP Pub/Sub topic and add every message as a row. Run this pipeline with a Beam run configuration. Requires GCP credentials. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + subscribe to pubsub + BeamSubscribe + + Y + + 1 + + none + + + projects/sample-project/topics/sample-topic + String + message + + + 128 + 224 + + + + + + diff --git a/plugins/engines/beam/src/main/samples/beam/beam-hive-catalog-input.hpl b/plugins/engines/beam/src/main/samples/beam/beam-hive-catalog-input.hpl new file mode 100644 index 00000000000..a4051894d1f --- /dev/null +++ b/plugins/engines/beam/src/main/samples/beam/beam-hive-catalog-input.hpl @@ -0,0 +1,85 @@ + + + + + beam-hive-catalog-input + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read rows from a Hive table through the Hive metastore. Run this pipeline with a Beam run configuration. Requires a reachable Hive metastore. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + beam hive catalog input + BeamHiveCatalogInput + + Y + + 1 + + none + + + thrift://localhost:9083 + sample_db + sample_table + + + 128 + 224 + + + + + + diff --git a/plugins/engines/beam/src/main/samples/beam/beam-kinesis-consume.hpl b/plugins/engines/beam/src/main/samples/beam/beam-kinesis-consume.hpl new file mode 100644 index 00000000000..fe29a8e6b62 --- /dev/null +++ b/plugins/engines/beam/src/main/samples/beam/beam-kinesis-consume.hpl @@ -0,0 +1,92 @@ + + + + + beam-kinesis-consume + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Consume messages from an AWS Kinesis stream. Run this pipeline with a Beam run configuration. Requires AWS credentials. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + beam kinesis consume + BeamKinesisConsume + + Y + + 1 + + none + + + Encrypted + Encrypted + sample-stream + id + data + String + partition_key + sequence_number + sub_sequence_number + shard_id + + + 128 + 224 + + + + + + diff --git a/plugins/engines/beam/src/main/samples/beam/beam-kinesis-produce.hpl b/plugins/engines/beam/src/main/samples/beam/beam-kinesis-produce.hpl new file mode 100644 index 00000000000..4881ad08005 --- /dev/null +++ b/plugins/engines/beam/src/main/samples/beam/beam-kinesis-produce.hpl @@ -0,0 +1,134 @@ + + + + + beam-kinesis-produce + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Produce the data field of every row to an AWS Kinesis stream. Run this pipeline with a Beam run configuration. Requires AWS credentials. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + beam kinesis produce + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + data + String + + -1 + -1 + N + + + partition_key + String + + -1 + -1 + N + + + + + hello + key-1 + + + + + 128 + 224 + + + + beam kinesis produce + BeamKinesisProduce + + Y + + 1 + + none + + + Encrypted + Encrypted + sample-stream + data + String + partition_key + + + 400 + 224 + + + + + + diff --git a/plugins/engines/beam/src/main/samples/beam/beam-timestamp.hpl b/plugins/engines/beam/src/main/samples/beam/beam-timestamp.hpl new file mode 100644 index 00000000000..d8bdde63b8d --- /dev/null +++ b/plugins/engines/beam/src/main/samples/beam/beam-timestamp.hpl @@ -0,0 +1,121 @@ + + + + + beam-timestamp + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Set the timestamp of every row so that Beam can use it for windowing. Run this pipeline with a Beam run configuration. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + beam timestamp + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + + + 1 + + + + + 128 + 224 + + + + beam timestamp + BeamTimestamp + + Y + + 1 + + none + + + timestamp + N + + + 400 + 224 + + + + + + diff --git a/plugins/misc/mail/src/main/samples/transforms/email-messages-input.hpl b/plugins/misc/mail/src/main/samples/transforms/email-messages-input.hpl new file mode 100644 index 00000000000..4ce60560048 --- /dev/null +++ b/plugins/misc/mail/src/main/samples/transforms/email-messages-input.hpl @@ -0,0 +1,183 @@ + + + + + email-messages-input + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read email messages from a mail server. Create a mail connection named sample-mail before running. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + Email messages input + MailInput + + Y + + 1 + + none + + + sample-mail + N + + + 0 + Message number + + + 1 + Subject + + + 2 + Sender + + + 3 + Reply to + + + 4 + Recipients + + + 5 + Description + + + 6 + Body + + + 7 + Received date + + + 8 + Sent date + + + 9 + Content type + + + 10 + Folder name + + + 11 + Size + + + 12 + Flag new + + + 13 + Flag read + + + 14 + Flag flagged + + + 15 + Flag draft + + + 16 + Flag deleted + + + 17 + Attached files count + + + 18 + Mail Header(Name) + + + 19 + Content Type (Body) + + + 10 + INBOX + Y + N + N + N + N + Encrypted + IMAP + 0 + 0 + james + N + N + N + N + imaplistall + + + 224 + 192 + + + + + + diff --git a/plugins/misc/mail/src/main/samples/transforms/mail.hpl b/plugins/misc/mail/src/main/samples/transforms/mail.hpl new file mode 100644 index 00000000000..1d1c075e714 --- /dev/null +++ b/plugins/misc/mail/src/main/samples/transforms/mail.hpl @@ -0,0 +1,203 @@ + + + + + mail + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Send an email for every row. Create a mail connection named sample-mail before running. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + messages + send mail + Y + + + + messages + DataGrid + + Y + + 1 + + none + + + + + to + String + + -1 + -1 + N + + + subject + String + + -1 + -1 + N + + + message + String + + -1 + -1 + N + + + senderAddress + String + + -1 + -1 + N + + + senderName + String + + -1 + -1 + N + + + + + someone@example.org + Hello from Hop + This is a sample message. + hop@example.org + Apache Hop + + + + + 128 + 160 + + + + send mail + Mail + + Y + + 1 + + none + + + + + N + Encrypted + + N + message + sample-mail + + + to + + + + + + + + UTF-8 + normal + N + N + N + N + N + + N + + normal + + senderAddress + senderName + SSL + normal + + + + subject + + N + N + N + N + N + N + N + 0 + + + + 320 + 96 + + + + + + diff --git a/plugins/misc/testing/src/assembly/assembly.xml b/plugins/misc/testing/src/assembly/assembly.xml index a482c02c004..281c2ac2aab 100644 --- a/plugins/misc/testing/src/assembly/assembly.xml +++ b/plugins/misc/testing/src/assembly/assembly.xml @@ -32,6 +32,13 @@ + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/misc/testing/src/main/samples/transforms/dataset-input.hpl b/plugins/misc/testing/src/main/samples/transforms/dataset-input.hpl new file mode 100644 index 00000000000..f913d7ed727 --- /dev/null +++ b/plugins/misc/testing/src/main/samples/transforms/dataset-input.hpl @@ -0,0 +1,81 @@ + + + + + dataset-input + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read the rows of a unit test data set. Create a data set named 0108-data-set-output before running. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + DataSetInput + golden-data-stream + golden-data-stream + Y + 1 + + none + + + + + 128 + 160 + + + + + + diff --git a/plugins/misc/testing/src/main/samples/transforms/dataset-output.hpl b/plugins/misc/testing/src/main/samples/transforms/dataset-output.hpl new file mode 100644 index 00000000000..58cadabfdfb --- /dev/null +++ b/plugins/misc/testing/src/main/samples/transforms/dataset-output.hpl @@ -0,0 +1,136 @@ + + + + + dataset-output + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Write rows to a unit test data set so it can be used in pipelines and unit tests. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + write data set + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + DataSetOutput + write data set + 0108-data-set-output + + 0108-data-set-output.csv + N + Y + Y + 1 + + + none + + + + + 400 + 160 + + + + + + diff --git a/plugins/misc/testing/src/main/samples/transforms/execute-unit-tests.hpl b/plugins/misc/testing/src/main/samples/transforms/execute-unit-tests.hpl new file mode 100644 index 00000000000..2d7f8f1744b --- /dev/null +++ b/plugins/misc/testing/src/main/samples/transforms/execute-unit-tests.hpl @@ -0,0 +1,127 @@ + + + + + execute-unit-tests + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Execute the unit tests named in the input rows and report the results. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + tests + Execute Unit Tests + Y + + + + tests + DataGrid + + Y + + 1 + + none + + + + + name + String + + -1 + -1 + N + + + + + sample-unit-test + + + + + 128 + 160 + + + + Execute Unit Tests + ExecuteTests + + Y + + 1 + + none + + + comment + dataset + error + pipeline + name + transform + DEVELOPMENT + unittest + + + 400 + 160 + + + + + + diff --git a/plugins/tech/ai/src/main/samples/transforms/embed-text.hpl b/plugins/tech/ai/src/main/samples/transforms/embed-text.hpl new file mode 100644 index 00000000000..14c76d6fe72 --- /dev/null +++ b/plugins/tech/ai/src/main/samples/transforms/embed-text.hpl @@ -0,0 +1,141 @@ + + + + + embed-text + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Calculate the vector embedding of text fields with a language model. Requires an AI connection. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + Embed text + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + Embed text + EmbedText + + Y + + 1 + + none + + + ollama-embeddings + + chunk_text + embedding + STRING + ${EMBED_BATCH_SIZE} + Y + embedding_model + embedding_dimensions + + + 256 + 96 + + + + + + diff --git a/plugins/tech/arrow/src/main/samples/metadata/data-stream/sample-data-stream.json b/plugins/tech/arrow/src/main/samples/metadata/data-stream/sample-data-stream.json new file mode 100644 index 00000000000..2e64aecad82 --- /dev/null +++ b/plugins/tech/arrow/src/main/samples/metadata/data-stream/sample-data-stream.json @@ -0,0 +1,10 @@ +{ + "dataStream": { + "ArrowStreamFile": { + "filename": "${java.io.tmpdir}/sample-data-stream.arrow", + "batchSize": "500" + } + }, + "name": "sample-data-stream", + "description": "Arrow stream file used by the data-stream-output and data-stream-input samples" +} diff --git a/plugins/tech/aws/src/assembly/assembly.xml b/plugins/tech/aws/src/assembly/assembly.xml index b1fb574d20e..4b77e768feb 100644 --- a/plugins/tech/aws/src/assembly/assembly.xml +++ b/plugins/tech/aws/src/assembly/assembly.xml @@ -31,6 +31,13 @@ + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/tech/aws/src/main/samples/transforms/aws-sns-notify.hpl b/plugins/tech/aws/src/main/samples/transforms/aws-sns-notify.hpl new file mode 100644 index 00000000000..43ad663c6da --- /dev/null +++ b/plugins/tech/aws/src/main/samples/transforms/aws-sns-notify.hpl @@ -0,0 +1,147 @@ + + + + + aws-sns-notify + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Send a message to an AWS SNS topic. Requires AWS credentials. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + AWS SNS Notify + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + AWS SNS Notify + SnsNotify + + Y + + 1 + + none + + + N + + + eu-west-1 + N + N + N + N + + + + Send once with first row + + + + + + 1792 + 544 + + + + + + diff --git a/plugins/tech/aws/src/main/samples/transforms/aws-sqs-reader.hpl b/plugins/tech/aws/src/main/samples/transforms/aws-sqs-reader.hpl new file mode 100644 index 00000000000..9f0e37768ab --- /dev/null +++ b/plugins/tech/aws/src/main/samples/transforms/aws-sqs-reader.hpl @@ -0,0 +1,94 @@ + + + + + aws-sqs-reader + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read messages from an AWS SQS queue. Requires AWS credentials and a reachable queue. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + aws sqs reader + AwsSqSreader + + Y + + 1 + + none + + + Default + Encrypted + Encrypted + eu-west-1 + sample-queue + message_id + message_body + receipt_handle + body_md5 + sns_message + delete_message + max_messages + + + 128 + 160 + + + + + + diff --git a/plugins/tech/aws/src/main/samples/transforms/redshift-bulk-loader.hpl b/plugins/tech/aws/src/main/samples/transforms/redshift-bulk-loader.hpl new file mode 100644 index 00000000000..cbe82d75f79 --- /dev/null +++ b/plugins/tech/aws/src/main/samples/transforms/redshift-bulk-loader.hpl @@ -0,0 +1,145 @@ + + + + + redshift-bulk-loader + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Load rows into an Amazon Redshift table. Requires AWS credentials and a Redshift cluster. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + Redshift bulk loader + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + Redshift bulk loader + RedshiftBulkLoader + + Y + + 1 + + none + + + redshift + N + + + N + N + Y + N + N + N + N + N + N + + + 1376 + 352 + + + + + + diff --git a/plugins/tech/azure/src/main/samples/transforms/azure-event-hubs-listener.hpl b/plugins/tech/azure/src/main/samples/transforms/azure-event-hubs-listener.hpl new file mode 100644 index 00000000000..452360fbb72 --- /dev/null +++ b/plugins/tech/azure/src/main/samples/transforms/azure-event-hubs-listener.hpl @@ -0,0 +1,89 @@ + + + + + azure-event-hubs-listener + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Listen for messages on an Azure Event Hub. Requires an Azure Event Hub and credentials. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + Azure Event Hubs Listener + AzureListener + + Y + + 1 + + none + + + $Default + enqueuedTime + host + offset + message + partitionId + sequenceNumber + + + 1568 + 1184 + + + + + + diff --git a/plugins/tech/azure/src/main/samples/transforms/azure-event-hubs-writer.hpl b/plugins/tech/azure/src/main/samples/transforms/azure-event-hubs-writer.hpl new file mode 100644 index 00000000000..6d76d43d4c5 --- /dev/null +++ b/plugins/tech/azure/src/main/samples/transforms/azure-event-hubs-writer.hpl @@ -0,0 +1,132 @@ + + + + + azure-event-hubs-writer + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Write rows to an Azure Event Hub. Requires an Azure Event Hub and credentials. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + Azure Event Hubs Writer + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + Azure Event Hubs Writer + AzureWriter + + Y + + 1 + + none + + + + + 1568 + 1120 + + + + + + diff --git a/plugins/tech/cassandra/src/assembly/assembly.xml b/plugins/tech/cassandra/src/assembly/assembly.xml index 564aee1cca8..c4685a01277 100644 --- a/plugins/tech/cassandra/src/assembly/assembly.xml +++ b/plugins/tech/cassandra/src/assembly/assembly.xml @@ -32,6 +32,13 @@ + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/tech/cassandra/src/main/samples/transforms/cassandra-input.hpl b/plugins/tech/cassandra/src/main/samples/transforms/cassandra-input.hpl new file mode 100644 index 00000000000..2dce123ba32 --- /dev/null +++ b/plugins/tech/cassandra/src/main/samples/transforms/cassandra-input.hpl @@ -0,0 +1,87 @@ + + + + + cassandra-input + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read rows from a Cassandra table. Requires a reachable Cassandra cluster. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + hop.customers + CassandraInput + + Y + + 1 + + none + + + cassandra + SELECT * FROM customers +; + + N + + + 224 + 96 + + + + + + diff --git a/plugins/tech/cassandra/src/main/samples/transforms/cassandra-output.hpl b/plugins/tech/cassandra/src/main/samples/transforms/cassandra-output.hpl new file mode 100644 index 00000000000..2e1de180a96 --- /dev/null +++ b/plugins/tech/cassandra/src/main/samples/transforms/cassandra-output.hpl @@ -0,0 +1,150 @@ + + + + + cassandra-output + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Write rows to a Cassandra table. Requires a reachable Cassandra cluster. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + hop.customers + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + hop.customers + CassandraOutput + + Y + + 1 + + none + + + 11 + cassandra + ONE + + 11 + Y + + N + id + localhost + 9042 + customers
+ N + + + + N + N + + + 400 + 128 + +
+ + + +
diff --git a/plugins/tech/cassandra/src/main/samples/transforms/cassandra-sstable-output.hpl b/plugins/tech/cassandra/src/main/samples/transforms/cassandra-sstable-output.hpl new file mode 100644 index 00000000000..1c7671815b6 --- /dev/null +++ b/plugins/tech/cassandra/src/main/samples/transforms/cassandra-sstable-output.hpl @@ -0,0 +1,130 @@ + + + + + cassandra-sstable-output + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Write rows as Cassandra SSTable files that can be loaded into a cluster offline. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + hop.customers + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + + + 128 + 160 + + + + hop.customers + SSTableOutput + + Y + + 1 + + none + + + id + customers
+ + + 400 + 128 + +
+ + + +
diff --git a/plugins/tech/google/src/main/samples/transforms/google-analytics-4.hpl b/plugins/tech/google/src/main/samples/transforms/google-analytics-4.hpl new file mode 100644 index 00000000000..da7b3356b8f --- /dev/null +++ b/plugins/tech/google/src/main/samples/transforms/google-analytics-4.hpl @@ -0,0 +1,85 @@ + + + + + google-analytics-4 + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read data from a Google Analytics 4 property. Requires Google credentials. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + Google Analytics 4 + GoogleAnalytics + + Y + + 1 + + none + + + + + 0 + + + 1792 + 672 + + + + + + diff --git a/plugins/tech/google/src/main/samples/transforms/google-sheets-input.hpl b/plugins/tech/google/src/main/samples/transforms/google-sheets-input.hpl new file mode 100644 index 00000000000..b211d3d703a --- /dev/null +++ b/plugins/tech/google/src/main/samples/transforms/google-sheets-input.hpl @@ -0,0 +1,133 @@ + + + + + google-sheets-input + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read rows from a Google Sheets spreadsheet. Requires a Google service account key in client_secret.json in the project folder. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + Google Sheets Input + GoogleSheetsInput + + Y + + 1 + + none + + + + + + N + N + + + + + -1 + column1 + 0 + -1 + 0 + 2 + + + N + N + + + + + -1 + column2 + 0 + 0 + 0 + 1 + + + N + N + + + + + -1 + column3 + 0 + -1 + 0 + 0 + + + + ${PROJECT_HOME}/client_secret.json + 100 + 1uTxX_siSLikbHgZm6kSwUGFZlKDzTP0CnfY7TNaZgeE + 5 + Sheet1 + + + 144 + 48 + + + + + + diff --git a/plugins/tech/google/src/main/samples/transforms/google-sheets-output.hpl b/plugins/tech/google/src/main/samples/transforms/google-sheets-output.hpl new file mode 100644 index 00000000000..508b88178e4 --- /dev/null +++ b/plugins/tech/google/src/main/samples/transforms/google-sheets-output.hpl @@ -0,0 +1,142 @@ + + + + + google-sheets-output + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Write rows to a Google Sheets spreadsheet. Requires a Google service account key in client_secret.json in the project folder. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + Google Sheet Output + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + Google Sheet Output + GoogleSheetsOutput + + Y + + 1 + + none + + + N + Y + + + + + ${PROJECT_HOME}/client_secret.json + 1uTxX_siSLikbHgZm6kSwUGFZlKDzTP0CnfY7TNaZgeE + 5 + Sheet2 + + + 384 + 80 + + + + + + diff --git a/plugins/tech/mongodb/src/main/samples/transforms/mongodb-delete.hpl b/plugins/tech/mongodb/src/main/samples/transforms/mongodb-delete.hpl new file mode 100644 index 00000000000..202453c833d --- /dev/null +++ b/plugins/tech/mongodb/src/main/samples/transforms/mongodb-delete.hpl @@ -0,0 +1,121 @@ + + + + + mongodb-delete + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Delete documents in MongoDB that match the input rows. Requires a reachable MongoDB cluster. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + keys + mongodb delete + Y + + + + keys + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + + + 1 + + + + + 128 + 160 + + + + mongodb delete + MongoDbDelete + + Y + + 1 + + none + + + + 5 + + + 448 + 160 + + + + + + diff --git a/plugins/tech/mongodb/src/main/samples/transforms/mongodb-input.hpl b/plugins/tech/mongodb/src/main/samples/transforms/mongodb-input.hpl new file mode 100644 index 00000000000..84505fd547d --- /dev/null +++ b/plugins/tech/mongodb/src/main/samples/transforms/mongodb-input.hpl @@ -0,0 +1,147 @@ + + + + + mongodb-input + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read documents from MongoDB. Requires a reachable MongoDB cluster. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + MongoDB input 2 + MongoDbInput + + Y + + 1 + + none + + + + + + json + + N + N + N + + + _id + $._id + String + + + birthdate + $.birthdate + Date + + + city + $.city + String + + + firstname + $.firstname + String + + + housenr + $.housenr + Integer + + + id + $.id + Integer + + + name + $.name + String + + + state + $.state + String + + + stateCode + $.stateCode + String + + + street + $.street + String + + + zip + $.zip + Integer + + + + + 240 + 144 + + + + + + diff --git a/plugins/tech/mongodb/src/main/samples/transforms/mongodb-output.hpl b/plugins/tech/mongodb/src/main/samples/transforms/mongodb-output.hpl new file mode 100644 index 00000000000..94a89cce17f --- /dev/null +++ b/plugins/tech/mongodb/src/main/samples/transforms/mongodb-output.hpl @@ -0,0 +1,140 @@ + + + + + mongodb-output + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Write documents to MongoDB. Requires a reachable MongoDB cluster. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + m_inserts_1 + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + m_inserts_1 + MongoDbOutput + + Y + + 1 + + none + + + + N + N + N + N + N + 5 + 10 + + + 448 + 160 + + + + + + diff --git a/plugins/tech/neo4j/src/main/samples/neo4j/neo4j-cypher-builder.hpl b/plugins/tech/neo4j/src/main/samples/neo4j/neo4j-cypher-builder.hpl new file mode 100644 index 00000000000..26815d9116a --- /dev/null +++ b/plugins/tech/neo4j/src/main/samples/neo4j/neo4j-cypher-builder.hpl @@ -0,0 +1,89 @@ + + + + + neo4j-cypher-builder + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Build a Cypher statement from input rows. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + Neo4j Cypher Builder + Neo4jCypherBuilder + + Y + + 1 + + none + + + 1000 + + + + + 10 + row + + + 128 + 160 + + + + + + diff --git a/plugins/tech/neo4j/src/main/samples/neo4j/neo4j-generate-csvs.hpl b/plugins/tech/neo4j/src/main/samples/neo4j/neo4j-generate-csvs.hpl new file mode 100644 index 00000000000..77f8b982a92 --- /dev/null +++ b/plugins/tech/neo4j/src/main/samples/neo4j/neo4j-generate-csvs.hpl @@ -0,0 +1,138 @@ + + + + + neo4j-generate-csvs + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Generate the CSV files to load a graph into Neo4j. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + Generate CSV + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + Generate CSV + Neo4jLoad + Generate CSV files from graph data - should handle NULL values without error + Y + + 1 + + none + + + /tmp/neo4j-import-test + file_type + filename + test-null-values + graph + None + + + 480 + 112 + + + + + + diff --git a/plugins/tech/neo4j/src/main/samples/neo4j/neo4j-get-logging-info.hpl b/plugins/tech/neo4j/src/main/samples/neo4j/neo4j-get-logging-info.hpl new file mode 100644 index 00000000000..18d6a01cb8c --- /dev/null +++ b/plugins/tech/neo4j/src/main/samples/neo4j/neo4j-get-logging-info.hpl @@ -0,0 +1,94 @@ + + + + + neo4j-get-logging-info + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Get logging information for Neo4j related processing like pipeline start and end dates. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + get neo4j logging info + GetLoggingInfo + + Y + + 1 + + none + + + + + startOfPipelineDelta + pipeline date from + + + + endOfPipelineDelta + pipeline date to + + + + + + 128 + 160 + + + + + + diff --git a/plugins/tech/neo4j/src/main/samples/neo4j/neo4j-import.hpl b/plugins/tech/neo4j/src/main/samples/neo4j/neo4j-import.hpl new file mode 100644 index 00000000000..0a1fc5845ec --- /dev/null +++ b/plugins/tech/neo4j/src/main/samples/neo4j/neo4j-import.hpl @@ -0,0 +1,94 @@ + + + + + neo4j-import + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Import the CSV files generated by the Neo4j generate CSVs transform into a Neo4j database with neo4j-admin. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + neo4j import + Neo4jImport + + Y + + 1 + + none + + + filename + file_type + ${PROJECT_HOME}/output + neo4j-admin + ${PROJECT_HOME}/output/neo4j-import-report.txt + neo4j + N + Y + N + N + N + N + + + 128 + 160 + + + + + + diff --git a/plugins/tech/neo4j/src/main/samples/neo4j/neo4j-split-graph.hpl b/plugins/tech/neo4j/src/main/samples/neo4j/neo4j-split-graph.hpl new file mode 100644 index 00000000000..27152c33a87 --- /dev/null +++ b/plugins/tech/neo4j/src/main/samples/neo4j/neo4j-split-graph.hpl @@ -0,0 +1,86 @@ + + + + + neo4j-split-graph + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Split a graph in a field into nodes and relationships. Used with the Neo4j graph output transform. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + neo4j split graph + Neo4jSplitGraph + + Y + + 1 + + none + + + graph + type + id + props + + + 128 + 160 + + + + + + diff --git a/plugins/tech/parquet/src/main/samples/transforms/parquet-file-input.hpl b/plugins/tech/parquet/src/main/samples/transforms/parquet-file-input.hpl new file mode 100644 index 00000000000..ab39d6e7ba2 --- /dev/null +++ b/plugins/tech/parquet/src/main/samples/transforms/parquet-file-input.hpl @@ -0,0 +1,134 @@ + + + + + parquet-file-input + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read rows from a Parquet file. Reads the file written by parquet-file-output.hpl, so run that sample first. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + get parquet file name + read Parquet file + Y + + + + get parquet file name + GetFileNames + + Y + + 1 + + none + + + + ${PROJECT_HOME}/output/ + parquet-file-output.*\.parquet + + N + N + + + only_files + + N + N + N + N + 0 + N + Y + + + 128 + 160 + + + + read Parquet file + ParquetFileInput + + Y + + 1 + + none + + + + + id + id + Integer + + + name + name + String + + + filename + + + 400 + 160 + + + + + + diff --git a/plugins/tech/parquet/src/main/samples/transforms/parquet-file-output.hpl b/plugins/tech/parquet/src/main/samples/transforms/parquet-file-output.hpl new file mode 100644 index 00000000000..4c6fee310a4 --- /dev/null +++ b/plugins/tech/parquet/src/main/samples/transforms/parquet-file-output.hpl @@ -0,0 +1,157 @@ + + + + + parquet-file-output + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Write rows to a Parquet file in the output folder. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + parquet file output + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + parquet file output + ParquetFileOutput + + Y + + 1 + + none + + + UNCOMPRESSED + 1048576 + 1048576 + + + id + id + + + name + name + + + 1000000 + ${PROJECT_HOME}/output/parquet-file-output + Y + yyyyMMdd-HHmmss + parquet + N + N + N + Y + N + 20000 + 2.0 + + + 592 + 208 + + + + + + diff --git a/plugins/tech/pgvector/src/assembly/assembly.xml b/plugins/tech/pgvector/src/assembly/assembly.xml index f9f02eddc43..bcf55ab08ed 100644 --- a/plugins/tech/pgvector/src/assembly/assembly.xml +++ b/plugins/tech/pgvector/src/assembly/assembly.xml @@ -31,6 +31,13 @@ true + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/tech/pgvector/src/main/samples/transforms/pgvector-search.hpl b/plugins/tech/pgvector/src/main/samples/transforms/pgvector-search.hpl new file mode 100644 index 00000000000..967ef1233fc --- /dev/null +++ b/plugins/tech/pgvector/src/main/samples/transforms/pgvector-search.hpl @@ -0,0 +1,144 @@ + + + + + pgvector-search + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Search for the nearest vectors in a pgvector table. Requires PostgreSQL with the pgvector extension. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + Search + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + Search + PgVectorSearch + + Y + + 1 + + none + + + pgvector + public + hop_it_chunks + embedding + 1 + COSINE + 0.0 + match_id + match_document_id + match_chunk_index + match_content + match_score + + + 320 + 96 + + + + + + diff --git a/plugins/tech/pgvector/src/main/samples/transforms/pgvector-upsert.hpl b/plugins/tech/pgvector/src/main/samples/transforms/pgvector-upsert.hpl new file mode 100644 index 00000000000..722e420e73e --- /dev/null +++ b/plugins/tech/pgvector/src/main/samples/transforms/pgvector-upsert.hpl @@ -0,0 +1,132 @@ + + + + + pgvector-upsert + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Store or update vector embeddings in a pgvector table. Requires PostgreSQL with the pgvector extension. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + pgvector upsert + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + embedding + String + + -1 + -1 + N + + + + + 1 + [0.1,0.2,0.3] + + + + + 128 + 160 + + + + pgvector upsert + PgVectorUpsert + + Y + + 1 + + none + + + pgvector + public + hop_it_chunks + embedding + + + 320 + 96 + + + + + + diff --git a/plugins/tech/redis/src/assembly/assembly.xml b/plugins/tech/redis/src/assembly/assembly.xml index 8fb0f10f333..fe0be36d158 100644 --- a/plugins/tech/redis/src/assembly/assembly.xml +++ b/plugins/tech/redis/src/assembly/assembly.xml @@ -31,6 +31,13 @@ + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/tech/salesforce/src/main/samples/transforms/salesforce-delete.hpl b/plugins/tech/salesforce/src/main/samples/transforms/salesforce-delete.hpl new file mode 100644 index 00000000000..b5abd9838b6 --- /dev/null +++ b/plugins/tech/salesforce/src/main/samples/transforms/salesforce-delete.hpl @@ -0,0 +1,128 @@ + + + + + salesforce-delete + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Delete the Salesforce records named in every row. Requires Salesforce credentials. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + salesforce delete + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + Id + String + + -1 + -1 + N + + + + + 001xx + + + + + 128 + 160 + + + + salesforce delete + SalesforceDelete + + Y + + 1 + + none + + + https://login.salesforce.com/services/Soap/u/50.0 + + Encrypted + 60000 + N + Account + Id + 10 + Y + + + 400 + 160 + + + + + + diff --git a/plugins/tech/salesforce/src/main/samples/transforms/salesforce-input.hpl b/plugins/tech/salesforce/src/main/samples/transforms/salesforce-input.hpl new file mode 100644 index 00000000000..32822095723 --- /dev/null +++ b/plugins/tech/salesforce/src/main/samples/transforms/salesforce-input.hpl @@ -0,0 +1,109 @@ + + + + + salesforce-input + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read records from Salesforce. Requires Salesforce credentials. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + Salesforce input + SalesforceInput + + Y + + 1 + + none + + + https://login.salesforce.com/services/Soap/u/50.0 + + Encrypted + 60000 + N + Account + + N + + N + + N + + N + N + + + N + + N + + + all + N + + + 0 + + + 1568 + 288 + + + + + + diff --git a/plugins/tech/salesforce/src/main/samples/transforms/salesforce-insert.hpl b/plugins/tech/salesforce/src/main/samples/transforms/salesforce-insert.hpl new file mode 100644 index 00000000000..9c263b2d21f --- /dev/null +++ b/plugins/tech/salesforce/src/main/samples/transforms/salesforce-insert.hpl @@ -0,0 +1,134 @@ + + + + + salesforce-insert + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Insert rows as records in a Salesforce object. Requires Salesforce credentials. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + salesforce insert + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + Name + String + + -1 + -1 + N + + + + + Alice + + + Bob + + + + + 128 + 160 + + + + salesforce insert + SalesforceInsert + + Y + + 1 + + none + + + https://login.salesforce.com/services/Soap/u/50.0 + + Encrypted + 60000 + N + Account + 10 + + + Name + + + + + 400 + 160 + + + + + + diff --git a/plugins/tech/salesforce/src/main/samples/transforms/salesforce-update.hpl b/plugins/tech/salesforce/src/main/samples/transforms/salesforce-update.hpl new file mode 100644 index 00000000000..721b86d7e0a --- /dev/null +++ b/plugins/tech/salesforce/src/main/samples/transforms/salesforce-update.hpl @@ -0,0 +1,143 @@ + + + + + salesforce-update + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Update Salesforce records with the values of every row. Requires Salesforce credentials. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + salesforce update + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + Id + String + + -1 + -1 + N + + + Name + String + + -1 + -1 + N + + + + + 001xx + Alice + + + + + 128 + 160 + + + + salesforce update + SalesforceUpdate + + Y + + 1 + + none + + + https://login.salesforce.com/services/Soap/u/50.0 + + Encrypted + 60000 + N + Account + 10 + + + Id + + + Name + + + + + 400 + 160 + + + + + + diff --git a/plugins/tech/salesforce/src/main/samples/transforms/salesforce-upsert.hpl b/plugins/tech/salesforce/src/main/samples/transforms/salesforce-upsert.hpl new file mode 100644 index 00000000000..1b636ea127e --- /dev/null +++ b/plugins/tech/salesforce/src/main/samples/transforms/salesforce-upsert.hpl @@ -0,0 +1,144 @@ + + + + + salesforce-upsert + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Insert or update Salesforce records based on an external id. Requires Salesforce credentials. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + salesforce upsert + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + ExternalId + String + + -1 + -1 + N + + + Name + String + + -1 + -1 + N + + + + + ext-1 + Alice + + + + + 128 + 160 + + + + salesforce upsert + SalesforceUpsert + + Y + + 1 + + none + + + https://login.salesforce.com/services/Soap/u/50.0 + + Encrypted + 60000 + N + Account + 10 + ExternalId + + + ExternalId + + + Name + + + + + 400 + 160 + + + + + + diff --git a/plugins/tech/sftp/src/assembly/assembly.xml b/plugins/tech/sftp/src/assembly/assembly.xml index 3abec811bdb..13bf612ad68 100644 --- a/plugins/tech/sftp/src/assembly/assembly.xml +++ b/plugins/tech/sftp/src/assembly/assembly.xml @@ -32,6 +32,13 @@ + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/tech/sftp/src/main/samples/transforms/sftp-put.hpl b/plugins/tech/sftp/src/main/samples/transforms/sftp-put.hpl new file mode 100644 index 00000000000..7f75efabbc8 --- /dev/null +++ b/plugins/tech/sftp/src/main/samples/transforms/sftp-put.hpl @@ -0,0 +1,142 @@ + + + + + sftp-put + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Upload a file to an SFTP server. Requires a reachable SFTP host and credentials. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + SFTP Put + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + SFTP Put + SFTPPut + + Y + + 1 + + none + + + sftp + sourcefile + N + remotefolder + remotefile + Y + move + archivefolder + Y + N + + + 480 + 96 + + + + + + diff --git a/plugins/transforms/binaryfileoutput/src/main/samples/files/binary-file-output.bin b/plugins/transforms/binaryfileoutput/src/main/samples/files/binary-file-output.bin new file mode 100644 index 00000000000..2d017aad150 Binary files /dev/null and b/plugins/transforms/binaryfileoutput/src/main/samples/files/binary-file-output.bin differ diff --git a/plugins/transforms/binaryfileoutput/src/main/samples/transforms/binary-file-output.hpl b/plugins/transforms/binaryfileoutput/src/main/samples/transforms/binary-file-output.hpl new file mode 100644 index 00000000000..d84f716ab62 --- /dev/null +++ b/plugins/transforms/binaryfileoutput/src/main/samples/transforms/binary-file-output.hpl @@ -0,0 +1,178 @@ + + + + + binary-file-output + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read a binary file and write its content to a new binary file. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + get filenames + load binary file + Y + + + + get filenames + GetVariable + + Y + + 1 + + none + + + + + -1 + filename + -1 + none + String + ${PROJECT_HOME}/files/binary-file-output.bin + + + -1 + target_filename + -1 + none + String + ${PROJECT_HOME}/output/binary-file-output.bin + + + + + 128 + 160 + + + + load binary file + LoadFileInput + + Y + + 1 + + none + + + N + + N + + 0 + + filename + Y + N + N + N + + + + + + + + + + + content + Binary + -1 + + none + content + -1 + + + + N + + + + + 400 + 160 + + + + binary file output + BinaryFileOutput + + Y + + 1 + + none + + + content + target_filename + Y + Y + N + + + 688 + 160 + + + + + + diff --git a/plugins/transforms/changefileencoding/src/main/samples/files/change-file-encoding.txt b/plugins/transforms/changefileencoding/src/main/samples/files/change-file-encoding.txt new file mode 100644 index 00000000000..29abefce843 --- /dev/null +++ b/plugins/transforms/changefileencoding/src/main/samples/files/change-file-encoding.txt @@ -0,0 +1,3 @@ +café +naïve +résumé diff --git a/plugins/transforms/changefileencoding/src/main/samples/transforms/change-file-encoding.hpl b/plugins/transforms/changefileencoding/src/main/samples/transforms/change-file-encoding.hpl new file mode 100644 index 00000000000..bcf6dc79d07 --- /dev/null +++ b/plugins/transforms/changefileencoding/src/main/samples/transforms/change-file-encoding.hpl @@ -0,0 +1,129 @@ + + + + + change-file-encoding + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read a text file in UTF-8 and write it back in ISO-8859-1. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + get filenames + change file encoding + Y + + + + get filenames + GetVariable + + Y + + 1 + + none + + + + + -1 + filename + -1 + none + String + ${PROJECT_HOME}/files/change-file-encoding.txt + + + -1 + target_filename + -1 + none + String + ${PROJECT_HOME}/output/change-file-encoding.txt + + + + + 128 + 160 + + + + change file encoding + ChangeFileEncoding + + Y + + 1 + + none + + + N + N + filename + target_filename + ISO-8859-1 + UTF-8 + Y + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/combinationlookup/src/main/samples/transforms/combination-lookup-update.hpl b/plugins/transforms/combinationlookup/src/main/samples/transforms/combination-lookup-update.hpl new file mode 100644 index 00000000000..8cc00742b00 --- /dev/null +++ b/plugins/transforms/combinationlookup/src/main/samples/transforms/combination-lookup-update.hpl @@ -0,0 +1,145 @@ + + + + + combination-lookup-update + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Look up the technical key of a dimension value in a table, inserting it when it does not exist. Uses the hop-samples connection, an in-memory H2 database. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + dimension values + Combination lookup/update + Y + + + + dimension values + DataGrid + + Y + + 1 + + none + + + + + color + String + + -1 + -1 + N + + + + + red + + + green + + + blue + + + + + 128 + 160 + + + + Combination lookup/update + CombinationLookup + + Y + + 1 + + none + + + + colors
+ hop-samples + 100 + 9999 + N + N + N + hashcode + + + color + color + + + color_key + tablemax + N + + + + + 368 + 96 + +
+ + + +
diff --git a/plugins/transforms/cube/src/main/samples/files/deserialize-from-file.cube b/plugins/transforms/cube/src/main/samples/files/deserialize-from-file.cube new file mode 100644 index 00000000000..99130a0e1a9 Binary files /dev/null and b/plugins/transforms/cube/src/main/samples/files/deserialize-from-file.cube differ diff --git a/plugins/transforms/cube/src/main/samples/transforms/deserialize-from-file.hpl b/plugins/transforms/cube/src/main/samples/transforms/deserialize-from-file.hpl new file mode 100644 index 00000000000..48f177a44de --- /dev/null +++ b/plugins/transforms/cube/src/main/samples/transforms/deserialize-from-file.hpl @@ -0,0 +1,87 @@ + + + + + deserialize-from-file + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read rows back from a binary cube file written by the Serialize to file transform. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + de-serialize from file + CubeInput + + Y + + 1 + + none + + + + ${PROJECT_HOME}/files/deserialize-from-file.cube + + 0 + N + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/cube/src/main/samples/transforms/serialize-to-file.hpl b/plugins/transforms/cube/src/main/samples/transforms/serialize-to-file.hpl new file mode 100644 index 00000000000..54ec2ebc170 --- /dev/null +++ b/plugins/transforms/cube/src/main/samples/transforms/serialize-to-file.hpl @@ -0,0 +1,142 @@ + + + + + serialize-to-file + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Serialize rows to a binary cube file that can be read back with the De-serialize from file transform. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + serialize to file + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + 3 + carol + + + + + 128 + 160 + + + + serialize to file + CubeOutput + + Y + + 1 + + none + + + + ${PROJECT_HOME}/output/serialize-to-file.cube + Y + N + N + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/datagrid/src/main/samples/transforms/datagrid-basic.hpl b/plugins/transforms/datagrid/src/main/samples/transforms/datagrid-basic.hpl new file mode 100644 index 00000000000..343418237c6 --- /dev/null +++ b/plugins/transforms/datagrid/src/main/samples/transforms/datagrid-basic.hpl @@ -0,0 +1,158 @@ + + + + + datagrid-basic + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Generate a few rows of data of various types with the Data Grid transform. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + sample data + DataGrid + + Y + + 1 + + none + + + + + firstname + String + + -1 + -1 + N + + + lastname + String + + -1 + -1 + N + + + age + Integer + + -1 + -1 + N + + + salary + Number + + -1 + -1 + N + + + birthdate + Date + yyyy/MM/dd + -1 + -1 + N + + + active + Boolean + + -1 + -1 + N + + + + + John + Doe + 42 + 3500.50 + 1984/03/12 + true + + + Jane + Doe + 39 + 4200.75 + 1987/07/23 + true + + + Max + Mustermann + 25 + 2100.00 + 2001/11/05 + false + + + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/datastream/src/main/samples/transforms/data-stream-input.hpl b/plugins/transforms/datastream/src/main/samples/transforms/data-stream-input.hpl new file mode 100644 index 00000000000..ba164d6dcb2 --- /dev/null +++ b/plugins/transforms/datastream/src/main/samples/transforms/data-stream-input.hpl @@ -0,0 +1,83 @@ + + + + + data-stream-input + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read rows from a named data stream written by the data-stream-output sample. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + data stream input + DataStreamInput + + Y + + 1 + + none + + + sample-data-stream + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/datastream/src/main/samples/transforms/data-stream-output.hpl b/plugins/transforms/datastream/src/main/samples/transforms/data-stream-output.hpl new file mode 100644 index 00000000000..3e134b4d1ac --- /dev/null +++ b/plugins/transforms/datastream/src/main/samples/transforms/data-stream-output.hpl @@ -0,0 +1,137 @@ + + + + + data-stream-output + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Write rows to a named data stream that a child pipeline can read with the Data stream input transform. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + data stream output + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + 3 + carol + + + + + 128 + 160 + + + + data stream output + DataStreamOutput + + Y + + 1 + + none + + + sample-data-stream + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/dbimpact/src/main/samples/transforms/database-impact.hpl b/plugins/transforms/dbimpact/src/main/samples/transforms/database-impact.hpl new file mode 100644 index 00000000000..7ae15854754 --- /dev/null +++ b/plugins/transforms/dbimpact/src/main/samples/transforms/database-impact.hpl @@ -0,0 +1,115 @@ + + + + + database-impact + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Collect the database impact of the transforms in the pipeline named in the filename field, here the tableoutput-basic sample. + 128 + 16 + 560 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + pipeline filename + database impact input + Y + + + + pipeline filename + GetVariable + + Y + + 1 + + none + + + + + -1 + filename + -1 + none + String + ${PROJECT_HOME}/transforms/tableoutput-basic.hpl + + + + + 128 + 160 + + + + database impact input + DbImpactInput + + Y + + 1 + + none + + + filename + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/dbproc/src/main/samples/transforms/call-db-procedure.hpl b/plugins/transforms/dbproc/src/main/samples/transforms/call-db-procedure.hpl new file mode 100644 index 00000000000..80bbc67b780 --- /dev/null +++ b/plugins/transforms/dbproc/src/main/samples/transforms/call-db-procedure.hpl @@ -0,0 +1,136 @@ + + + + + call-db-procedure + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Call a stored procedure in a database. Uses the hop-samples connection, an in-memory H2 database. Set the procedure name before running. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + arguments + Call DB procedure + Y + + + + arguments + DataGrid + + Y + + 1 + + none + + + + + value + String + + -1 + -1 + N + + + + + hello + + + world + + + + + 128 + 160 + + + + Call DB procedure + DBProc + + Y + + 1 + + none + + + hop-samples + addCount + + + value + IN + String + + + + count + Integer + + Y + + + 352 + 96 + + + + + + diff --git a/plugins/transforms/ddl/src/main/samples/transforms/ddl.hpl b/plugins/transforms/ddl/src/main/samples/transforms/ddl.hpl new file mode 100644 index 00000000000..39b6acbcfe3 --- /dev/null +++ b/plugins/transforms/ddl/src/main/samples/transforms/ddl.hpl @@ -0,0 +1,169 @@ + + + + + ddl + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Generate the CREATE TABLE statement for the columns described in the input rows. Uses the hop-samples connection, an in-memory H2 database. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + employee columns + DDL + Y + + + + employee columns + DataGrid + + Y + + 1 + + none + + + + + name + String + -1 + -1 + N + + + hopType + String + -1 + -1 + N + + + length + Integer + -1 + -1 + N + + + precision + Integer + -1 + -1 + N + + + + + id + Integer + 9 + 0 + + + name + String + 50 + -1 + + + hired + Date + -1 + -1 + + + salary + Number + 10 + 2 + + + + + 128 + 160 + + + + DDL + DDL + + Y + + 1 + + none + + + hop-samples + ddl + N + N + length + name + precision + hopType + employees + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/delete/src/main/samples/transforms/delete.hpl b/plugins/transforms/delete/src/main/samples/transforms/delete.hpl new file mode 100644 index 00000000000..cd6e81a6d20 --- /dev/null +++ b/plugins/transforms/delete/src/main/samples/transforms/delete.hpl @@ -0,0 +1,134 @@ + + + + + delete + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Delete rows from a database table that match the key of every input row. Uses the hop-samples connection, an in-memory H2 database. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + keys + Delete + Y + + + + keys + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + + + 1 + + + 2 + + + + + 128 + 160 + + + + Delete + Delete + + Y + + 1 + + none + + + hop-samples + 100 + + public + employees
+ + id + id + = + + +
+ + + 256 + 112 + +
+ + + +
diff --git a/plugins/transforms/denormaliser/src/main/samples/transforms/row-denormaliser.hpl b/plugins/transforms/denormaliser/src/main/samples/transforms/row-denormaliser.hpl new file mode 100644 index 00000000000..72de8f2bff3 --- /dev/null +++ b/plugins/transforms/denormaliser/src/main/samples/transforms/row-denormaliser.hpl @@ -0,0 +1,260 @@ + + + + + row-denormaliser + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Pivot rows: turn one row per color into one row with a field per color. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + long rows + denormalise colors + Y + + + + long rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + colorCode + String + + -1 + -1 + N + + + colorValue + String + + -1 + -1 + N + + + + + 1 + white + #FFFFFF + + + 1 + black + #000000 + + + 1 + red + #FF0000 + + + 1 + green + #00FF00 + + + 1 + blue + #0000FF + + + 2 + white + #FFFFFF + + + 2 + black + #111111 + + + 2 + red + #FF0000 + + + 2 + green + #00FF00 + + + 2 + blue + #0000FF + + + + + 128 + 160 + + + + denormalise colors + Denormaliser + + Y + + 1 + + none + + + colorCode + + + id + + + + + colorValue + white + colorWhite + String + + -1 + -1 + + + + + - + + + colorValue + black + colorBlack + String + + -1 + -1 + + + + + - + + + colorValue + red + colorRed + String + + -1 + -1 + + + + + - + + + colorValue + green + colorGreen + String + + -1 + -1 + + + + + - + + + colorValue + blue + colorBlue + String + + -1 + -1 + + + + + - + + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/drools/src/main/samples/transforms/rules-executor.hpl b/plugins/transforms/drools/src/main/samples/transforms/rules-executor.hpl new file mode 100644 index 00000000000..97b41ff05b2 --- /dev/null +++ b/plugins/transforms/drools/src/main/samples/transforms/rules-executor.hpl @@ -0,0 +1,121 @@ + + + + + rules-executor + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Execute a set of Drools rules for every row. Requires a Drools rules file. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + Rules executor + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + + + 1 + + + + + 128 + 160 + + + + Rules executor + RuleExecutor + + Y + + 1 + + none + + + + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/edi2xml/src/main/samples/files/edi-to-xml.txt b/plugins/transforms/edi2xml/src/main/samples/files/edi-to-xml.txt new file mode 100644 index 00000000000..82d81f2b043 --- /dev/null +++ b/plugins/transforms/edi2xml/src/main/samples/files/edi-to-xml.txt @@ -0,0 +1,6 @@ +UNA:+.? ' +UNB+IATB:1+6XPPC:ZZ+LHPPC:ZZ+940101:0950+1' +UNH+1+PAORES:93:1:IA' +IFT+3+NO MORE FLIGHTS' +UNT+4+1' +UNZ+1+1' diff --git a/plugins/transforms/edi2xml/src/main/samples/transforms/edi-to-xml.hpl b/plugins/transforms/edi2xml/src/main/samples/transforms/edi-to-xml.hpl new file mode 100644 index 00000000000..dd1bb6fbb0e --- /dev/null +++ b/plugins/transforms/edi2xml/src/main/samples/transforms/edi-to-xml.hpl @@ -0,0 +1,148 @@ + + + + + edi-to-xml + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Convert EDI content in a field to XML. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + load edi file + edi to xml + Y + + + + load edi file + LoadFileInput + + Y + + 1 + + none + + + N + + N + + 0 + UTF-8 + + N + N + N + N + + + + + + + + + + ${PROJECT_HOME}/files/edi-to-xml.txt + + + N + N + + + + + edi + String + -1 + + none + content + -1 + + + + N + + + + + 128 + 160 + + + + edi to xml + TypeExitEdi2XmlTransform + + Y + + 1 + + none + + + edi + xml + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/excel/src/main/samples/files/microsoft-excel-input.xlsx b/plugins/transforms/excel/src/main/samples/files/microsoft-excel-input.xlsx new file mode 100644 index 00000000000..d79fe2b6e69 Binary files /dev/null and b/plugins/transforms/excel/src/main/samples/files/microsoft-excel-input.xlsx differ diff --git a/plugins/transforms/excel/src/main/samples/transforms/microsoft-excel-input.hpl b/plugins/transforms/excel/src/main/samples/transforms/microsoft-excel-input.hpl new file mode 100644 index 00000000000..89c864bf272 --- /dev/null +++ b/plugins/transforms/excel/src/main/samples/transforms/microsoft-excel-input.hpl @@ -0,0 +1,165 @@ + + + + + microsoft-excel-input + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read rows from a sheet in a Microsoft Excel workbook. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + microsoft excel input + ExcelInput + + Y + + 1 + + none + + +
Y
+ Y + N + + + + + 0 + + N + N + + + + ${PROJECT_HOME}/files/microsoft-excel-input.xlsx + + + N + N + + + + id + Integer + -1 + -1 + none + N + + + + + + + title + String + -1 + -1 + none + N + + + + + + + author + String + -1 + -1 + none + N + + + + + + + + + Books + 0 + 0 + + + N + N + N + + warning + + error + + line + + + + + + + + + POI + + + 128 + 160 + +
+ + + +
diff --git a/plugins/transforms/excel/src/main/samples/transforms/microsoft-excel-writer.hpl b/plugins/transforms/excel/src/main/samples/transforms/microsoft-excel-writer.hpl new file mode 100644 index 00000000000..4503385adb7 --- /dev/null +++ b/plugins/transforms/excel/src/main/samples/transforms/microsoft-excel-writer.hpl @@ -0,0 +1,190 @@ + + + + + microsoft-excel-writer + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Write rows to a Microsoft Excel workbook. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + books + microsoft excel writer + Y + + + + books + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + title + String + + -1 + -1 + N + + + author + String + + -1 + -1 + N + + + + + 1 + The Hobbit + J.R.R. Tolkien + + + 2 + Dune + Frank Herbert + + + + + 128 + 160 + + + + microsoft excel writer + TypeExitExcelWriterTransform + + Y + + 1 + + none + + + N + 0 + N + 0 + N + + Y + Y + N + Y + xlsx + ${PROJECT_HOME}/output/microsoft-excel-writer + N + new + new + N + Books + N + 0 + N + N + N + +
N
+ N +
Y
+ N + Y + + + N + id + id + Integer + + + N + title + title + String + + + N + author + author + String + + + + + 400 + 160 + +
+ + + +
diff --git a/plugins/transforms/execinfo/src/main/samples/transforms/execution-information.hpl b/plugins/transforms/execinfo/src/main/samples/transforms/execution-information.hpl new file mode 100644 index 00000000000..4ad116456d6 --- /dev/null +++ b/plugins/transforms/execinfo/src/main/samples/transforms/execution-information.hpl @@ -0,0 +1,90 @@ + + + + + execution-information + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + List the executions recorded in the execution information location named local. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + execution information + ExecInfo + + N + + 1 + + none + + + local + GetExecutionIds + + + type + name + + + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/execprocess/src/main/samples/transforms/execute-a-process.hpl b/plugins/transforms/execprocess/src/main/samples/transforms/execute-a-process.hpl new file mode 100644 index 00000000000..020fddd80ff --- /dev/null +++ b/plugins/transforms/execprocess/src/main/samples/transforms/execute-a-process.hpl @@ -0,0 +1,152 @@ + + + + + execute-a-process + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Run an operating system command for every row and capture its output. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + processes + execute a process + Y + + + + processes + DataGrid + + Y + + 1 + + none + + + + + script + String + + -1 + -1 + N + + + value1 + String + + -1 + -1 + N + + + value2 + String + + -1 + -1 + N + + + + + echo + hello + world + + + + + 128 + 160 + + + + execute a process + ExecProcess + + Y + + 1 + + none + + + script + output + Error output + Exit value + N + + Y + + + value1 + + + value2 + + + + + 256 + 64 + + + + + + diff --git a/plugins/transforms/execsqlrow/src/main/samples/transforms/execute-row-sql-script.hpl b/plugins/transforms/execsqlrow/src/main/samples/transforms/execute-row-sql-script.hpl new file mode 100644 index 00000000000..538ab64cfb7 --- /dev/null +++ b/plugins/transforms/execsqlrow/src/main/samples/transforms/execute-row-sql-script.hpl @@ -0,0 +1,131 @@ + + + + + execute-row-sql-script + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Execute the SQL statement in every row against a database. Uses the hop-samples connection, an in-memory H2 database. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + statements + execute row SQL script + Y + + + + statements + DataGrid + + Y + + 1 + + none + + + + + sql + String + + -1 + -1 + N + + + + + DELETE FROM employees WHERE id = 1 + + + UPDATE employees SET name = 'bob' WHERE id = 2 + + + + + 128 + 160 + + + + execute row SQL script + ExecSqlRow + + Y + + 1 + + none + + + 100 + hop-samples + sql + inserted + updated + deleted + read + N + Y + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/filemetadata/src/main/samples/files/file-metadata.txt b/plugins/transforms/filemetadata/src/main/samples/files/file-metadata.txt new file mode 100644 index 00000000000..c0a46ab192b --- /dev/null +++ b/plugins/transforms/filemetadata/src/main/samples/files/file-metadata.txt @@ -0,0 +1,3 @@ +id;name;city +1;alice;brussels +2;bob;antwerp diff --git a/plugins/transforms/filemetadata/src/main/samples/transforms/file-metadata.hpl b/plugins/transforms/filemetadata/src/main/samples/transforms/file-metadata.hpl new file mode 100644 index 00000000000..8e7e83ed215 --- /dev/null +++ b/plugins/transforms/filemetadata/src/main/samples/transforms/file-metadata.hpl @@ -0,0 +1,130 @@ + + + + + file-metadata + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Detect the metadata of a file: delimiters, enclosures, header and more. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + get filenames + file metadata + Y + + + + get filenames + GetVariable + + Y + + 1 + + none + + + + + -1 + filename + -1 + none + String + ${PROJECT_HOME}/files/file-metadata.txt + + + + + 128 + 160 + + + + file metadata + FileMetadataPlugin + + Y + + 1 + + none + + + ISO-8859-1 + + ; + + + , + + + " + + + ' + + filename + Y + 10000 + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/filesfromresult/src/main/samples/transforms/get-files-from-result.hpl b/plugins/transforms/filesfromresult/src/main/samples/transforms/get-files-from-result.hpl new file mode 100644 index 00000000000..43782caafa3 --- /dev/null +++ b/plugins/transforms/filesfromresult/src/main/samples/transforms/get-files-from-result.hpl @@ -0,0 +1,82 @@ + + + + + get-files-from-result + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read the result files that a parent pipeline or workflow passed to this pipeline. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + get files from result + FilesFromResult + + Y + + 1 + + none + + + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/filestoresult/src/main/samples/transforms/set-files-in-result.hpl b/plugins/transforms/filestoresult/src/main/samples/transforms/set-files-in-result.hpl new file mode 100644 index 00000000000..5e4a5258faf --- /dev/null +++ b/plugins/transforms/filestoresult/src/main/samples/transforms/set-files-in-result.hpl @@ -0,0 +1,121 @@ + + + + + set-files-in-result + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Add the filename of every row to the result files of this pipeline. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + files + set files in result + Y + + + + files + DataGrid + + Y + + 1 + + none + + + + + filename + String + + -1 + -1 + N + + + + + sample-file.txt + + + + + 128 + 160 + + + + set files in result + FilesToResult + + Y + + 1 + + none + + + filename + GENERAL + + + 400 + 160 + + + + + + diff --git a/plugins/tech/neo4j/src/main/samples/files/customers-100.txt b/plugins/transforms/filterrows/src/main/samples/files/customers-100.txt similarity index 100% rename from plugins/tech/neo4j/src/main/samples/files/customers-100.txt rename to plugins/transforms/filterrows/src/main/samples/files/customers-100.txt diff --git a/plugins/transforms/flattener/src/main/samples/transforms/row-flattener.hpl b/plugins/transforms/flattener/src/main/samples/transforms/row-flattener.hpl new file mode 100644 index 00000000000..0bb09ef915b --- /dev/null +++ b/plugins/transforms/flattener/src/main/samples/transforms/row-flattener.hpl @@ -0,0 +1,149 @@ + + + + + row-flattener + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Flatten consecutive rows into a single row with multiple target fields. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + flatten directions + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + flatten + String + + -1 + -1 + N + + + + + 1 + north + + + 1 + east + + + 2 + south + + + 2 + west + + + + + 128 + 160 + + + + flatten directions + Flattener + + Y + + 1 + + none + + + flatten + + + direction1 + + + direction2 + + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/getfilesrowcount/src/main/samples/files/get-files-rows-count.csv b/plugins/transforms/getfilesrowcount/src/main/samples/files/get-files-rows-count.csv new file mode 100644 index 00000000000..2c82f21998d --- /dev/null +++ b/plugins/transforms/getfilesrowcount/src/main/samples/files/get-files-rows-count.csv @@ -0,0 +1,4 @@ +id,name +1,alice +2,bob +3,carol diff --git a/plugins/transforms/getfilesrowcount/src/main/samples/transforms/get-files-rows-count.hpl b/plugins/transforms/getfilesrowcount/src/main/samples/transforms/get-files-rows-count.hpl new file mode 100644 index 00000000000..710e75b5f50 --- /dev/null +++ b/plugins/transforms/getfilesrowcount/src/main/samples/transforms/get-files-rows-count.hpl @@ -0,0 +1,98 @@ + + + + + get-files-rows-count + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Count the number of rows in a text or CSV file. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + get files rows count + GetFilesRowsCount + + Y + + 1 + + none + + + Y + filesCount + rowsCount + LINEFEED + + Y + N + + Y + + ${PROJECT_HOME}/files/get-files-rows-count.csv + + + N + N + + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/getsubfolders/src/main/samples/transforms/get-subfolder-names.hpl b/plugins/transforms/getsubfolders/src/main/samples/transforms/get-subfolder-names.hpl new file mode 100644 index 00000000000..3a2bcc0ec19 --- /dev/null +++ b/plugins/transforms/getsubfolders/src/main/samples/transforms/get-subfolder-names.hpl @@ -0,0 +1,90 @@ + + + + + get-subfolder-names + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + List the subfolders of the samples project folder. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + get subfolder names + GetSubFolders + + Y + + 1 + + none + + + + Y + ${PROJECT_HOME} + + N + 0 + Y + rowNumber + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/gettablenames/src/main/samples/transforms/get-table-names.hpl b/plugins/transforms/gettablenames/src/main/samples/transforms/get-table-names.hpl new file mode 100644 index 00000000000..7d58ec5b61b --- /dev/null +++ b/plugins/transforms/gettablenames/src/main/samples/transforms/get-table-names.hpl @@ -0,0 +1,97 @@ + + + + + get-table-names + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + List the tables and views of a database. Uses the hop-samples connection, an in-memory H2 database. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + get table names + GetTableNames + + Y + + 1 + + none + + + hop-samples + + tablename + type + isSystem + sql + N + N + Y + Y + Y + Y + N + N + + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/http/src/main/samples/transforms/http-client.hpl b/plugins/transforms/http/src/main/samples/transforms/http-client.hpl new file mode 100644 index 00000000000..77ae332fd52 --- /dev/null +++ b/plugins/transforms/http/src/main/samples/transforms/http-client.hpl @@ -0,0 +1,132 @@ + + + + + http-client + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Call a web service and add the response to the rows. Requires network access to the URL. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + http client + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + + + 1 + + + + + 128 + 160 + + + + http client + Http + + Y + + 1 + + none + + + -1 + 10000 + UTF-8 + N + + + + status_code + result + + 10000 + https://hop.apache.org/ + N + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/httppost/src/main/samples/transforms/http-post.hpl b/plugins/transforms/httppost/src/main/samples/transforms/http-post.hpl new file mode 100644 index 00000000000..94f6e72159f --- /dev/null +++ b/plugins/transforms/httppost/src/main/samples/transforms/http-post.hpl @@ -0,0 +1,134 @@ + + + + + http-post + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Post the input rows to a web service. Requires network access to the URL. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + http post + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + + + 1 + + + + + 128 + 160 + + + + http post + HttpPost + + Y + + 1 + + none + + + -1 + 10000 + UTF-8 + + N + + + N + + status_code + result + + 10000 + https://hop.apache.org/ + N + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/janino/src/main/samples/transforms/user-defined-java-expression.hpl b/plugins/transforms/janino/src/main/samples/transforms/user-defined-java-expression.hpl new file mode 100644 index 00000000000..51d915c8765 --- /dev/null +++ b/plugins/transforms/janino/src/main/samples/transforms/user-defined-java-expression.hpl @@ -0,0 +1,140 @@ + + + + + user-defined-java-expression + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Calculate new field values with a Java expression evaluated by Janino. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + user defined java expression + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + user defined java expression + Janino + + Y + + 1 + + none + + + + name_length + name.length() + Integer + -1 + -1 + + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/jdbc-metadata/src/main/samples/transforms/get-jdbc-metadata.hpl b/plugins/transforms/jdbc-metadata/src/main/samples/transforms/get-jdbc-metadata.hpl new file mode 100644 index 00000000000..75dc0a97b82 --- /dev/null +++ b/plugins/transforms/jdbc-metadata/src/main/samples/transforms/get-jdbc-metadata.hpl @@ -0,0 +1,132 @@ + + + + + get-jdbc-metadata + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Call a JDBC metadata method on a database and return the result rows. Uses the hop-samples connection, an in-memory H2 database. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + Get JDBC Metadata + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + + + 1 + + + + + 128 + 160 + + + + Get JDBC Metadata + JdbcMetadata + + Y + + 1 + + none + + + N + N + + + hop-samples + getCatalogs + + + TABLE_CAT + TABLE_CAT + + + N + + + 112 + 96 + + + + + + diff --git a/plugins/transforms/jms/src/assembly/assembly.xml b/plugins/transforms/jms/src/assembly/assembly.xml index 7a22fa8e7ff..31e7f6ed0d7 100644 --- a/plugins/transforms/jms/src/assembly/assembly.xml +++ b/plugins/transforms/jms/src/assembly/assembly.xml @@ -37,6 +37,13 @@ + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/transforms/jms/src/main/samples/transforms/jms-consumer.hpl b/plugins/transforms/jms/src/main/samples/transforms/jms-consumer.hpl new file mode 100644 index 00000000000..52bfa29904b --- /dev/null +++ b/plugins/transforms/jms/src/main/samples/transforms/jms-consumer.hpl @@ -0,0 +1,94 @@ + + + + + jms-consumer + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Consume messages from a JMS queue or topic. Create a JMS connection named sample-jms before running. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + jms consumer + JmsConsumer + + Y + + 1 + + none + + + sample-jms + sample-queue + QUEUE + + N + N + 10 + 1000 + body + jms_key + destination + message_id + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/jms/src/main/samples/transforms/jms-producer.hpl b/plugins/transforms/jms/src/main/samples/transforms/jms-producer.hpl new file mode 100644 index 00000000000..86ae07bd691 --- /dev/null +++ b/plugins/transforms/jms/src/main/samples/transforms/jms-producer.hpl @@ -0,0 +1,125 @@ + + + + + jms-producer + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Send rows as messages to a JMS queue or topic. Create a JMS connection named sample-jms before running. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + messages + jms producer + Y + + + + messages + DataGrid + + Y + + 1 + + none + + + + + body + String + + -1 + -1 + N + + + + + hello from Hop + + + + + 128 + 160 + + + + jms producer + JmsProducer + + Y + + 1 + + none + + + sample-jms + sample-queue + QUEUE + N + body + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/json/src/main/samples/transforms/json-output.hpl b/plugins/transforms/json/src/main/samples/transforms/json-output.hpl new file mode 100644 index 00000000000..54a33ece78e --- /dev/null +++ b/plugins/transforms/json/src/main/samples/transforms/json-output.hpl @@ -0,0 +1,168 @@ + + + + + json-output + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Write rows to a JSON file. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + books + json output + Y + + + + books + DataGrid + + Y + + 1 + + none + + + + + title + String + + -1 + -1 + N + + + author + String + + -1 + -1 + N + + + year + Integer + + -1 + -1 + N + + + + + The Hobbit + J.R.R. Tolkien + 1937 + + + Dune + Frank Herbert + 1965 + + + + + 128 + 160 + + + + json output + JsonOutput + + Y + + 1 + + none + + + N + Y + N + Y + UTF-8 + json + N + N + ${PROJECT_HOME}/output/json-output + books + 5000 + writetofile + + + title + title + + + author + author + + + year + year + + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/ldap/src/main/samples/transforms/ldap-input.hpl b/plugins/transforms/ldap/src/main/samples/transforms/ldap-input.hpl new file mode 100644 index 00000000000..090fa237647 --- /dev/null +++ b/plugins/transforms/ldap/src/main/samples/transforms/ldap-input.hpl @@ -0,0 +1,113 @@ + + + + + ldap-input + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read entries from an LDAP directory. Requires a reachable LDAP server. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + ldap input + LDAPInput + + Y + + 1 + + none + + + N + + + N + + + dn + string + + dn + -1 + N + none + String + + + (objectClass=*) + onelevel + localhost + 389 + N + 0 + dc=example,dc=org + + + LDAP + N + N + + + N + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/ldap/src/main/samples/transforms/ldap-output.hpl b/plugins/transforms/ldap/src/main/samples/transforms/ldap-output.hpl new file mode 100644 index 00000000000..1e7447ed20c --- /dev/null +++ b/plugins/transforms/ldap/src/main/samples/transforms/ldap-output.hpl @@ -0,0 +1,150 @@ + + + + + ldap-output + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Rename or update entries in an LDAP directory. Requires a reachable LDAP server. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + entries + LDAP Rename DN + Y + + + + entries + DataGrid + + Y + + 1 + + none + + + + + old_dn + String + + -1 + -1 + N + + + new_dn + String + + -1 + -1 + N + + + + + cn=alice,dc=example,dc=org + cn=alice-new,dc=example,dc=org + + + + + 128 + 160 + + + + LDAP Rename DN + LDAPOutput + + Y + + 1 + + none + + + Y + always + + N + + + localhost + ; + newDn + oldDn + rename + ${LDAP_PASSWORD} + 389 + LDAP + follow + + N + Encrypted + + N + Y + ${LDAP_USERNAME} + + + 336 + 112 + + + + + + diff --git a/plugins/transforms/loadfileinput/src/main/samples/files/load-file-content.txt b/plugins/transforms/loadfileinput/src/main/samples/files/load-file-content.txt new file mode 100644 index 00000000000..7c1e6da1090 --- /dev/null +++ b/plugins/transforms/loadfileinput/src/main/samples/files/load-file-content.txt @@ -0,0 +1 @@ +Apache Hop pipelines and workflows. diff --git a/plugins/transforms/loadfileinput/src/main/samples/transforms/load-file-content-in-memory.hpl b/plugins/transforms/loadfileinput/src/main/samples/transforms/load-file-content-in-memory.hpl new file mode 100644 index 00000000000..ff030b3de0f --- /dev/null +++ b/plugins/transforms/loadfileinput/src/main/samples/transforms/load-file-content-in-memory.hpl @@ -0,0 +1,124 @@ + + + + + load-file-content-in-memory + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Load the entire content of a text file into a single field. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + load file content in memory + LoadFileInput + + Y + + 1 + + none + + + N + + N + + 0 + UTF-8 + + N + N + N + N + + + + + + + + + + ${PROJECT_HOME}/files/load-file-content.txt + + + N + N + + + + + content + String + -1 + + none + content + -1 + + + + N + + + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/memgroupby/src/main/samples/transforms/memory-group-by.hpl b/plugins/transforms/memgroupby/src/main/samples/transforms/memory-group-by.hpl new file mode 100644 index 00000000000..8f6a5951288 --- /dev/null +++ b/plugins/transforms/memgroupby/src/main/samples/transforms/memory-group-by.hpl @@ -0,0 +1,162 @@ + + + + + memory-group-by + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Group rows in memory and count the employees per department. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + employees + count per department + Y + + + + employees + DataGrid + + Y + + 1 + + none + + + + + department + String + + -1 + -1 + N + + + employee + String + + -1 + -1 + N + + + + + engineering + alice + + + engineering + bob + + + engineering + carol + + + sales + dave + + + sales + erin + + + marketing + frank + + + + + 128 + 160 + + + + count per department + MemoryGroupBy + + Y + + 1 + + none + + + N + + + department + + + + + employee_count + employee + COUNT_ALL + + + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/mergerows/src/main/samples/transforms/merge-rows-diff.hpl b/plugins/transforms/mergerows/src/main/samples/transforms/merge-rows-diff.hpl new file mode 100644 index 00000000000..75ddc116416 --- /dev/null +++ b/plugins/transforms/mergerows/src/main/samples/transforms/merge-rows-diff.hpl @@ -0,0 +1,223 @@ + + + + + merge-rows-diff + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Compare two sorted streams row by row and flag rows as identical, changed, new or deleted. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + reference rows + merge rows (diff) + Y + + + changed rows + merge rows (diff) + Y + + + + reference rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + score + Integer + + -1 + -1 + N + + + + + 1 + alice + 90 + + + 2 + bob + 80 + + + 3 + carol + 70 + + + + + 128 + 160 + + + + changed rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + score + Integer + + -1 + -1 + N + + + + + 1 + alice + 95 + + + 2 + bob + 80 + + + 4 + dave + 60 + + + + + 128 + 288 + + + + merge rows (diff) + MergeRows + + Y + + 1 + + none + + + changed rows + flagfield + + id + + + reference rows + + name + score + + + + 400 + 224 + + + + + + diff --git a/plugins/transforms/metadata/src/main/samples/transforms/metadata-input.hpl b/plugins/transforms/metadata/src/main/samples/transforms/metadata-input.hpl new file mode 100644 index 00000000000..ebc698a8c59 --- /dev/null +++ b/plugins/transforms/metadata/src/main/samples/transforms/metadata-input.hpl @@ -0,0 +1,89 @@ + + + + + metadata-input + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read all metadata objects of the current project as rows. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + metadata input + MetadataInput + + Y + + 1 + + none + + + json + name + provider + typeClass + typeDescription + typeKey + typeName + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/metastructure/src/main/samples/transforms/metadata-structure-of-stream.hpl b/plugins/transforms/metastructure/src/main/samples/transforms/metadata-structure-of-stream.hpl new file mode 100644 index 00000000000..c02fc7784f8 --- /dev/null +++ b/plugins/transforms/metastructure/src/main/samples/transforms/metadata-structure-of-stream.hpl @@ -0,0 +1,147 @@ + + + + + metadata-structure-of-stream + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Describe the fields of the input stream: name, type, length and origin. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + metadata structure of stream + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + metadata structure of stream + TransformMetaStructure + + Y + + 1 + + none + + + Comments + Fieldname + Y + Y + Y + Y + Y + Y + Y + Length + Origin + N + Position + Precision + Type + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/multimerge/src/main/samples/transforms/multiway-merge-join.hpl b/plugins/transforms/multimerge/src/main/samples/transforms/multiway-merge-join.hpl new file mode 100644 index 00000000000..4a49c81a74c --- /dev/null +++ b/plugins/transforms/multimerge/src/main/samples/transforms/multiway-merge-join.hpl @@ -0,0 +1,191 @@ + + + + + multiway-merge-join + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Join two or more sorted streams on a common key. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + countries + multiway merge join + Y + + + capitals + multiway merge join + Y + + + + countries + DataGrid + + Y + + 1 + + none + + + + + code + String + + -1 + -1 + N + + + country + String + + -1 + -1 + N + + + + + BE + Belgium + + + NL + Netherlands + + + + + 128 + 160 + + + + capitals + DataGrid + + Y + + 1 + + none + + + + + code + String + + -1 + -1 + N + + + capital + String + + -1 + -1 + N + + + + + BE + Brussels + + + NL + Amsterdam + + + + + 128 + 288 + + + + multiway merge join + MultiwayMergeJoin + + Y + + 1 + + none + + + INNER + + countries + capitals + + + code + code + + + + 400 + 224 + + + + + + diff --git a/plugins/transforms/normaliser/src/main/samples/transforms/row-normaliser.hpl b/plugins/transforms/normaliser/src/main/samples/transforms/row-normaliser.hpl new file mode 100644 index 00000000000..3e399801d68 --- /dev/null +++ b/plugins/transforms/normaliser/src/main/samples/transforms/row-normaliser.hpl @@ -0,0 +1,185 @@ + + + + + row-normaliser + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Convert one row with a field per quarter into one row per quarter. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + wide rows + normalise quarters + Y + + + + wide rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + quarterA + Number + + -1 + -1 + N + + + quarterB + Number + + -1 + -1 + N + + + quarterC + Number + + -1 + -1 + N + + + quarterD + Number + + -1 + -1 + N + + + + + 1 + 100 + 120 + 90 + 110 + + + 2 + 80 + 70 + 95 + 105 + + + + + 128 + 160 + + + + normalise quarters + Normaliser + + Y + + 1 + + none + + + quarter + + + quarterA + Q1 + amount + + + quarterB + Q2 + amount + + + quarterC + Q3 + amount + + + quarterD + Q4 + amount + + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/odata/src/assembly/assembly.xml b/plugins/transforms/odata/src/assembly/assembly.xml index 5d6b0b0869b..18ee9a10c4e 100644 --- a/plugins/transforms/odata/src/assembly/assembly.xml +++ b/plugins/transforms/odata/src/assembly/assembly.xml @@ -38,6 +38,13 @@ + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/transforms/pgp/src/main/samples/transforms/pgp-decrypt-stream.hpl b/plugins/transforms/pgp/src/main/samples/transforms/pgp-decrypt-stream.hpl new file mode 100644 index 00000000000..331b6abaa74 --- /dev/null +++ b/plugins/transforms/pgp/src/main/samples/transforms/pgp-decrypt-stream.hpl @@ -0,0 +1,88 @@ + + + + + pgp-decrypt-stream + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Decrypt a PGP encrypted field. Requires gpg and a private key. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + decrypt the field + PGPDecryptStream + + Y + + 1 + + none + + + ${PROJECT_HOME}/output/gpg-in-project.sh + hop-it-passphrase + N + + sealed + opened + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/pgp/src/main/samples/transforms/pgp-encrypt-stream.hpl b/plugins/transforms/pgp/src/main/samples/transforms/pgp-encrypt-stream.hpl new file mode 100644 index 00000000000..6aae1f68bbe --- /dev/null +++ b/plugins/transforms/pgp/src/main/samples/transforms/pgp-encrypt-stream.hpl @@ -0,0 +1,125 @@ + + + + + pgp-encrypt-stream + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Encrypt a field with a PGP public key. Requires gpg and the key of the recipient. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + encrypt the field + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + payload + String + + -1 + -1 + N + + + + + secret message + + + + + 128 + 160 + + + + encrypt the field + PGPEncryptStream + + Y + + 1 + + none + + + gpg + sample-pgp-user + N + + payload + sealed + + + 288 + 96 + + + + + + diff --git a/plugins/transforms/pipelineexecutor/src/main/samples/transforms/pipeline-executor-child.hpl b/plugins/transforms/pipelineexecutor/src/main/samples/transforms/pipeline-executor-child.hpl new file mode 100644 index 00000000000..9d1f7d8147d --- /dev/null +++ b/plugins/transforms/pipelineexecutor/src/main/samples/transforms/pipeline-executor-child.hpl @@ -0,0 +1,119 @@ + + + + + pipeline-executor-child + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Executed by pipeline-executor.hpl, not intended to run standalone. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + child data + copy rows to result + Y + + + + child data + DataGrid + + Y + + 1 + + none + + + + + child_value + String + + -1 + -1 + N + + + + + from-the-child-pipeline + + + + + 128 + 160 + + + + copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/pipelineexecutor/src/main/samples/transforms/pipeline-executor.hpl b/plugins/transforms/pipelineexecutor/src/main/samples/transforms/pipeline-executor.hpl new file mode 100644 index 00000000000..52763ed7a7d --- /dev/null +++ b/plugins/transforms/pipelineexecutor/src/main/samples/transforms/pipeline-executor.hpl @@ -0,0 +1,189 @@ + + + + + pipeline-executor + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Execute a child pipeline for every row. The child copies its rows to the result, which come back on the 'child rows' stream. The execution statistics go to 'execution results'. + 128 + 16 + 560 + 42 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + pipeline executor + Y + + + pipeline executor + execution results + Y + + + pipeline executor + child rows + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + + + 1 + + + 2 + + + 3 + + + + + 128 + 160 + + + + pipeline executor + PipelineExecutor + + Y + + 1 + + none + + + local + 0 + ${PROJECT_HOME}/transforms/pipeline-executor-child.hpl + 1 + + + + Y + execution results + ExecutionTime + ExecutionResult + ExecutionNrErrors + child rows + + child_value + String + -1 + -1 + + FileName + + + 400 + 160 + + + + execution results + Dummy + + Y + + 1 + + none + + + + + 672 + 96 + + + + child rows + Dummy + + Y + + 1 + + none + + + + + 672 + 224 + + + + + + diff --git a/plugins/transforms/processfiles/src/main/samples/files/process-files.txt b/plugins/transforms/processfiles/src/main/samples/files/process-files.txt new file mode 100644 index 00000000000..6a087d6cd74 --- /dev/null +++ b/plugins/transforms/processfiles/src/main/samples/files/process-files.txt @@ -0,0 +1 @@ +file to copy around diff --git a/plugins/transforms/processfiles/src/main/samples/transforms/process-files.hpl b/plugins/transforms/processfiles/src/main/samples/transforms/process-files.hpl new file mode 100644 index 00000000000..b84c524680e --- /dev/null +++ b/plugins/transforms/processfiles/src/main/samples/transforms/process-files.hpl @@ -0,0 +1,129 @@ + + + + + process-files + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Copy a file from the files folder to the output folder. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + get filenames + copy files + Y + + + + get filenames + GetVariable + + Y + + 1 + + none + + + + + -1 + source_filename + -1 + none + String + ${PROJECT_HOME}/files/process-files.txt + + + -1 + target_filename + -1 + none + String + ${PROJECT_HOME}/output/process-files-copy.txt + + + + + 128 + 160 + + + + copy files + ProcessFiles + + Y + + 1 + + none + + + N + Y + copy + Y + N + source_filename + target_filename + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/propertyinput/src/main/samples/files/properties-file-input.txt b/plugins/transforms/propertyinput/src/main/samples/files/properties-file-input.txt new file mode 100644 index 00000000000..aa76e2ddebb --- /dev/null +++ b/plugins/transforms/propertyinput/src/main/samples/files/properties-file-input.txt @@ -0,0 +1,2 @@ +environment=development +max_connections=10 diff --git a/plugins/transforms/propertyinput/src/main/samples/transforms/properties-file-input.hpl b/plugins/transforms/propertyinput/src/main/samples/transforms/properties-file-input.hpl new file mode 100644 index 00000000000..20a8d34107c --- /dev/null +++ b/plugins/transforms/propertyinput/src/main/samples/transforms/properties-file-input.hpl @@ -0,0 +1,140 @@ + + + + + properties-file-input + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read key/value pairs from a properties file. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + properties input + PropertyInput + + Y + + 1 + + none + + + property + UTF-8 + N + + + N + N + N + + N + N + N + +
+ + ${PROJECT_HOME}/files/properties-file-input.txt + + + N + N + + + + Key + key + String + + -1 + -1 + + + + none + N + + + Value + value + String + + -1 + -1 + + + + none + N + + + 0 + + + + + + + + + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/propertyoutput/src/main/samples/transforms/properties-file-output.hpl b/plugins/transforms/propertyoutput/src/main/samples/transforms/properties-file-output.hpl new file mode 100644 index 00000000000..208459e9dbd --- /dev/null +++ b/plugins/transforms/propertyoutput/src/main/samples/transforms/properties-file-output.hpl @@ -0,0 +1,148 @@ + + + + + properties-file-output + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Write key/value pairs to a properties file. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + settings + properties output + Y + + + + settings + DataGrid + + Y + + 1 + + none + + + + + property + String + + -1 + -1 + N + + + value + String + + -1 + -1 + N + + + + + environment + production + + + max_connections + 25 + + + + + 128 + 160 + + + + properties output + PropertyOutput + + Y + + 1 + + none + + + property + value + Generated by the properties-file-output sample + N + + + ${PROJECT_HOME}/output/properties-file-output + properties + N + N + N + N + Y + N + N + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/randomvalue/src/main/samples/transforms/generate-random-value.hpl b/plugins/transforms/randomvalue/src/main/samples/transforms/generate-random-value.hpl new file mode 100644 index 00000000000..5f1a7ac2a72 --- /dev/null +++ b/plugins/transforms/randomvalue/src/main/samples/transforms/generate-random-value.hpl @@ -0,0 +1,129 @@ + + + + + generate-random-value + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Add a random number, integer, string and UUID to every row. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + generate 10 rows + generate random values + Y + + + + generate 10 rows + RowGenerator + + Y + + 1 + + none + + + + 5000 + FiveSecondsAgo + 10 + N + now + + + 128 + 160 + + + + generate random values + RandomValue + + Y + + 1 + + none + + + + + random_number + random number + + + random_integer + random integer + + + random_string + random string + + + random_uuid + random uuid + + + 12345 + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/regexeval/src/main/samples/transforms/regex-evaluation.hpl b/plugins/transforms/regexeval/src/main/samples/transforms/regex-evaluation.hpl new file mode 100644 index 00000000000..a9c57b9f430 --- /dev/null +++ b/plugins/transforms/regexeval/src/main/samples/transforms/regex-evaluation.hpl @@ -0,0 +1,140 @@ + + + + + regex-evaluation + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Evaluate a regular expression against every row and add the result as a new field. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + phrases + match hop + Y + + + + phrases + DataGrid + + Y + + 1 + + none + + + + + phrase + String + + -1 + -1 + N + + + + + Apache Hop pipelines and workflows + + + A friendly greeting + + + Hop around the world + + + + + 128 + 160 + + + + match hop + RegexEval + + Y + + 1 + + none + + + N + N + Y + N + N + + + phrase + N + Y + contains_hop + + N + N + N + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/repeatfields/src/main/samples/transforms/repeat-fields.hpl b/plugins/transforms/repeatfields/src/main/samples/transforms/repeat-fields.hpl new file mode 100644 index 00000000000..bc09b1e57a2 --- /dev/null +++ b/plugins/transforms/repeatfields/src/main/samples/transforms/repeat-fields.hpl @@ -0,0 +1,174 @@ + + + + + repeat-fields + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Repeat the lastname of the row marked with indicator A over the following rows of the same id. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + repeat lastname + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + source + String + + -1 + -1 + N + + + lastname + String + + -1 + -1 + N + + + + + 1 + A + Doe + + + 1 + B + + + + 1 + C + + + + 2 + A + Smith + + + 2 + B + + + + 3 + A + Jones + + + + + 128 + 160 + + + + repeat lastname + RepeatFields + + Y + + 1 + + none + + + + id + + + + source + A + lastname + repeated_lastname + current_when_indicated + + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/replacestring/src/main/samples/transforms/replace-in-string.hpl b/plugins/transforms/replacestring/src/main/samples/transforms/replace-in-string.hpl new file mode 100644 index 00000000000..fb6e9464de1 --- /dev/null +++ b/plugins/transforms/replacestring/src/main/samples/transforms/replace-in-string.hpl @@ -0,0 +1,139 @@ + + + + + replace-in-string + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Replace all occurrences of a string in a field with another string. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + phrases + replace in string + Y + + + + phrases + DataGrid + + Y + + 1 + + none + + + + + phrase + String + + -1 + -1 + N + + + + + hello world + + + world of pipelines + + + the wide world of data + + + + + 128 + 160 + + + + replace in string + ReplaceString + + Y + + 1 + + none + + + + + phrase + replaced + no + world + Hop + N + + no + no + no + + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/reservoirsampling/src/main/samples/transforms/reservoir-sampling.hpl b/plugins/transforms/reservoirsampling/src/main/samples/transforms/reservoir-sampling.hpl new file mode 100644 index 00000000000..49381a93ad4 --- /dev/null +++ b/plugins/transforms/reservoirsampling/src/main/samples/transforms/reservoir-sampling.hpl @@ -0,0 +1,180 @@ + + + + + reservoir-sampling + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Take a fixed size random sample of 5 rows out of a larger stream. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + numbers + reservoir sampling + Y + + + + numbers + DataGrid + + Y + + 1 + + none + + + + + value + Integer + + -1 + -1 + N + + + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + 10 + + + 11 + + + 12 + + + 13 + + + 14 + + + 15 + + + 16 + + + 17 + + + 18 + + + 19 + + + 20 + + + + + 128 + 160 + + + + reservoir sampling + ReservoirSampling + + Y + + 1 + + none + + + + 5 + 123456 + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/rowgenerator/src/main/samples/transforms/generate-rows.hpl b/plugins/transforms/rowgenerator/src/main/samples/transforms/generate-rows.hpl new file mode 100644 index 00000000000..3dae9eeb9db --- /dev/null +++ b/plugins/transforms/rowgenerator/src/main/samples/transforms/generate-rows.hpl @@ -0,0 +1,88 @@ + + + + + generate-rows + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Generate a fixed number of empty rows. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + generate 10 rows + RowGenerator + + Y + + 1 + + none + + + + 5000 + FiveSecondsAgo + 10 + N + now + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/rowsfromresult/src/main/samples/transforms/get-records-from-stream.hpl b/plugins/transforms/rowsfromresult/src/main/samples/transforms/get-records-from-stream.hpl new file mode 100644 index 00000000000..50d787eaa24 --- /dev/null +++ b/plugins/transforms/rowsfromresult/src/main/samples/transforms/get-records-from-stream.hpl @@ -0,0 +1,83 @@ + + + + + get-records-from-stream + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read the rows that were passed to this pipeline by a parent pipeline executor as a record stream. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + get records from stream + RecordsFromStream + + Y + + 1 + + none + + + + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/rowsfromresult/src/main/samples/transforms/get-rows-from-result.hpl b/plugins/transforms/rowsfromresult/src/main/samples/transforms/get-rows-from-result.hpl new file mode 100644 index 00000000000..10265b64466 --- /dev/null +++ b/plugins/transforms/rowsfromresult/src/main/samples/transforms/get-rows-from-result.hpl @@ -0,0 +1,83 @@ + + + + + get-rows-from-result + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read the rows that a parent pipeline or workflow passed to this pipeline as the result. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + get rows from result + RowsFromResult + + N + + 1 + + none + + + + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/rowstoresult/src/main/samples/transforms/copy-rows-to-result.hpl b/plugins/transforms/rowstoresult/src/main/samples/transforms/copy-rows-to-result.hpl new file mode 100644 index 00000000000..b8faf4d3588 --- /dev/null +++ b/plugins/transforms/rowstoresult/src/main/samples/transforms/copy-rows-to-result.hpl @@ -0,0 +1,132 @@ + + + + + copy-rows-to-result + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Copy rows to the result of this pipeline so a parent workflow or pipeline can pick them up. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + copy rows to result + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + copy rows to result + RowsToResult + + Y + + 1 + + none + + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/samplerows/src/main/samples/transforms/sample-rows.hpl b/plugins/transforms/samplerows/src/main/samples/transforms/sample-rows.hpl new file mode 100644 index 00000000000..23bb78da9a5 --- /dev/null +++ b/plugins/transforms/samplerows/src/main/samples/transforms/sample-rows.hpl @@ -0,0 +1,148 @@ + + + + + sample-rows + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Keep only the rows in the given range and add the row number as a new field. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + sample rows + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + value + Integer + + -1 + -1 + N + + + + + 1 + + + 2 + + + 3 + + + 4 + + + 5 + + + 6 + + + 7 + + + 8 + + + 9 + + + 10 + + + + + 128 + 160 + + + + sample rows + SampleRows + + Y + + 1 + + none + + + 1,3,5-7 + rownum + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/sasinput/src/main/samples/transforms/sas-input.hpl b/plugins/transforms/sasinput/src/main/samples/transforms/sas-input.hpl new file mode 100644 index 00000000000..916e9ebb348 --- /dev/null +++ b/plugins/transforms/sasinput/src/main/samples/transforms/sas-input.hpl @@ -0,0 +1,83 @@ + + + + + sas-input + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read a SAS data set (.sas7bdat). Point the transform at a SAS file before running. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + SAS Input + SASInput + + Y + + 1 + + none + + + + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/script/src/main/samples/transforms/script.hpl b/plugins/transforms/script/src/main/samples/transforms/script.hpl new file mode 100644 index 00000000000..75efd8c988b --- /dev/null +++ b/plugins/transforms/script/src/main/samples/transforms/script.hpl @@ -0,0 +1,150 @@ + + + + + script + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Calculate new field values with an ECMAScript script. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + script + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + script + SuperScript + + Y + + 1 + + none + + + + + -1 + upper_name + -1 + upper_name + N + N + String + + + ECMAScript + + + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/serverstatus/src/main/samples/metadata/server/local-hop-server.json b/plugins/transforms/serverstatus/src/main/samples/metadata/server/local-hop-server.json new file mode 100644 index 00000000000..17220cfc909 --- /dev/null +++ b/plugins/transforms/serverstatus/src/main/samples/metadata/server/local-hop-server.json @@ -0,0 +1,12 @@ +{ + "webAppName": "", + "sslMode": false, + "proxyPort": "", + "hostname": "localhost", + "nonProxyHosts": "", + "password": "Encrypted 2be98afc86aa7f2e4cb1aa265cd86aac8", + "port": "8080", + "name": "local-hop-server", + "proxyHostname": "", + "username": "cluster" +} diff --git a/plugins/transforms/serverstatus/src/main/samples/transforms/get-server-status.hpl b/plugins/transforms/serverstatus/src/main/samples/transforms/get-server-status.hpl new file mode 100644 index 00000000000..612d73f3484 --- /dev/null +++ b/plugins/transforms/serverstatus/src/main/samples/transforms/get-server-status.hpl @@ -0,0 +1,129 @@ + + + + + get-server-status + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Query the status of the Hop servers named in the serverName field. The local-hop-server metadata points at localhost:8080 (cluster/cluster). Without a running Hop server, available is N and errorMessage says why. + 128 + 16 + 560 + 42 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + server names + get server status + Y + + + + server names + DataGrid + + Y + + 1 + + none + + + + + serverName + String + + -1 + -1 + N + + + + + local-hop-server + + + + + 128 + 160 + + + + get server status + GetServerStatus + + N + + 1 + + none + + + serverName + errorMessage + + + activePipelines + finishedPipelines + activeWorkflows + finishedWorkflows + available + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/setvalueconstant/src/main/samples/transforms/set-field-value-to-a-constant.hpl b/plugins/transforms/setvalueconstant/src/main/samples/transforms/set-field-value-to-a-constant.hpl new file mode 100644 index 00000000000..b024479bcf2 --- /dev/null +++ b/plugins/transforms/setvalueconstant/src/main/samples/transforms/set-field-value-to-a-constant.hpl @@ -0,0 +1,145 @@ + + + + + set-field-value-to-a-constant + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Replace the lastname of every row with a constant value. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + set constant lastname + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + firstname + String + + -1 + -1 + N + + + lastname + String + + -1 + -1 + N + + + + + John + Smith + + + Jane + Jones + + + Max + Miller + + + + + 128 + 160 + + + + set constant lastname + SetValueConstant + + Y + + 1 + + none + + + + + lastname + Doe + + N + + + N + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/setvaluefield/src/main/samples/transforms/set-field-value.hpl b/plugins/transforms/setvaluefield/src/main/samples/transforms/set-field-value.hpl new file mode 100644 index 00000000000..4454d5292cb --- /dev/null +++ b/plugins/transforms/setvaluefield/src/main/samples/transforms/set-field-value.hpl @@ -0,0 +1,142 @@ + + + + + set-field-value + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Copy the value of one field into another field. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + set field value + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + value + String + + -1 + -1 + N + + + replacement + String + + -1 + -1 + N + + + + + old + new + + + first + second + + + a + b + + + + + 128 + 160 + + + + set field value + SetValueField + + Y + + 1 + + none + + + + + value + replacement + + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/setvariable/src/main/samples/transforms/set-variables-basic.hpl b/plugins/transforms/setvariable/src/main/samples/transforms/set-variables-basic.hpl new file mode 100644 index 00000000000..fdc49916520 --- /dev/null +++ b/plugins/transforms/setvariable/src/main/samples/transforms/set-variables-basic.hpl @@ -0,0 +1,128 @@ + + + + + set-variables-basic + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Set the MY_COLOR pipeline variable from the color field value. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + settings + set variables + Y + + + + settings + DataGrid + + Y + + 1 + + none + + + + + color + String + + -1 + -1 + N + + + + + blue + + + + + 128 + 160 + + + + set variables + SetVariable + + Y + + 1 + + none + + + + + color + MY_COLOR + CURRENT_PIPELINE + white + + + Y + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/sortedmerge/src/main/samples/transforms/sorted-merge.hpl b/plugins/transforms/sortedmerge/src/main/samples/transforms/sorted-merge.hpl new file mode 100644 index 00000000000..01f2a4584d9 --- /dev/null +++ b/plugins/transforms/sortedmerge/src/main/samples/transforms/sorted-merge.hpl @@ -0,0 +1,180 @@ + + + + + sorted-merge + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Merge two sorted streams into one stream that is still sorted on the merge field. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + left rows + sorted merge + Y + + + right rows + sorted merge + Y + + + + left rows + DataGrid + + Y + + 1 + + none + + + + + value + Integer + + -1 + -1 + N + + + + + 10 + + + 20 + + + 50 + + + 80 + + + + + 128 + 160 + + + + right rows + DataGrid + + Y + + 1 + + none + + + + + value + Integer + + -1 + -1 + N + + + + + 30 + + + 40 + + + 60 + + + 90 + + + + + 128 + 288 + + + + sorted merge + SortedMerge + + Y + + 1 + + none + + + + + value + Y + + + + + 400 + 224 + + + + + + diff --git a/plugins/transforms/sortedschemamerge/src/main/samples/transforms/sorted-schema-merge.hpl b/plugins/transforms/sortedschemamerge/src/main/samples/transforms/sorted-schema-merge.hpl new file mode 100644 index 00000000000..8b2986e084b --- /dev/null +++ b/plugins/transforms/sortedschemamerge/src/main/samples/transforms/sorted-schema-merge.hpl @@ -0,0 +1,196 @@ + + + + + sorted-schema-merge + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Merge streams with different schemas into one stream, sorted on a common key. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + source a + sorted schema merge + Y + + + source b + sorted schema merge + Y + + + + source a + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 3 + carol + + + + + 128 + 160 + + + + source b + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + city + String + + -1 + -1 + N + + + + + 2 + antwerp + + + 4 + bruges + + + + + 128 + 288 + + + + sorted schema merge + SortedSchemaMerge + + Y + + 1 + + none + + + + + id + Y + + + + + source a + + + source b + + + + + 400 + 224 + + + + + + diff --git a/plugins/transforms/splitfieldtorows/src/main/samples/transforms/split-field-to-rows.hpl b/plugins/transforms/splitfieldtorows/src/main/samples/transforms/split-field-to-rows.hpl new file mode 100644 index 00000000000..41774aada03 --- /dev/null +++ b/plugins/transforms/splitfieldtorows/src/main/samples/transforms/split-field-to-rows.hpl @@ -0,0 +1,129 @@ + + + + + split-field-to-rows + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Split a comma separated field into one row per value. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + movies + split movies + Y + + + + movies + DataGrid + + Y + + 1 + + none + + + + + movies + String + + -1 + -1 + N + + + + + The Matrix, Inception, Interstellar + + + Alien, Prometheus, Arrival + + + + + 128 + 160 + + + + split movies + SplitFieldToRows3 + + Y + + 1 + + none + + + movies + ,\s* + movie + Y + movieNr + Y + Y + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/splunk/src/main/samples/transforms/splunk-input.hpl b/plugins/transforms/splunk/src/main/samples/transforms/splunk-input.hpl new file mode 100644 index 00000000000..ba4c90cdb63 --- /dev/null +++ b/plugins/transforms/splunk/src/main/samples/transforms/splunk-input.hpl @@ -0,0 +1,86 @@ + + + + + splunk-input + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read search results from Splunk. Requires a reachable Splunk server. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + Splunk Input + SplunkInput + + Y + + 1 + + none + + + + + + + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/sql/src/main/samples/transforms/execute-sql-script.hpl b/plugins/transforms/sql/src/main/samples/transforms/execute-sql-script.hpl new file mode 100644 index 00000000000..19d046fcd2b --- /dev/null +++ b/plugins/transforms/sql/src/main/samples/transforms/execute-sql-script.hpl @@ -0,0 +1,96 @@ + + + + + execute-sql-script + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Run a SQL script against a database. Uses the hop-samples connection, an in-memory H2 database. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + + execute SQL script + ExecSql + + Y + + 1 + + none + + + hop-samples + N + N + N + N + CREATE TABLE IF NOT EXISTS employees (id INTEGER PRIMARY KEY, name VARCHAR(100)); + N + inserted + updated + deleted + read + + + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/sqlfileoutput/src/main/samples/transforms/sql-file-output.hpl b/plugins/transforms/sqlfileoutput/src/main/samples/transforms/sql-file-output.hpl new file mode 100644 index 00000000000..7cc62232c6b --- /dev/null +++ b/plugins/transforms/sqlfileoutput/src/main/samples/transforms/sql-file-output.hpl @@ -0,0 +1,153 @@ + + + + + sql-file-output + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Write the CREATE TABLE and INSERT statements for the input rows to a SQL file. Uses the hop-samples connection, an in-memory H2 database. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + employees + SQL file output + Y + + + + employees + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + SQL file output + SQLFileOutput + + Y + + 1 + + none + + + hop-samples + + employees
+ N + Y + UTF-8 + + N + Y + + ${PROJECT_HOME}/output/filename + sql + N + N + N + N + N + 0 + Y + Y + + + + 432 + 112 + +
+ + + +
diff --git a/plugins/transforms/stringcut/src/main/samples/transforms/strings-cut.hpl b/plugins/transforms/stringcut/src/main/samples/transforms/strings-cut.hpl new file mode 100644 index 00000000000..697d6d46f84 --- /dev/null +++ b/plugins/transforms/stringcut/src/main/samples/transforms/strings-cut.hpl @@ -0,0 +1,133 @@ + + + + + strings-cut + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Cut a string field between two positions and store the result in a new field. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + phrases + strings cut + Y + + + + phrases + DataGrid + + Y + + 1 + + none + + + + + phrase + String + + -1 + -1 + N + + + + + Apache Hop pipelines + + + regular expressions + + + documentation + + + + + 128 + 160 + + + + strings cut + StringCut + + Y + + 1 + + none + + + + + phrase + cut + 0 + 5 + + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/surefirereport/src/assembly/assembly.xml b/plugins/transforms/surefirereport/src/assembly/assembly.xml index b517cb04be4..0fcda5f6ccc 100644 --- a/plugins/transforms/surefirereport/src/assembly/assembly.xml +++ b/plugins/transforms/surefirereport/src/assembly/assembly.xml @@ -32,6 +32,13 @@ + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/transforms/surefirereport/src/main/samples/transforms/surefire-report-output.hpl b/plugins/transforms/surefirereport/src/main/samples/transforms/surefire-report-output.hpl new file mode 100644 index 00000000000..1318a619ac8 --- /dev/null +++ b/plugins/transforms/surefirereport/src/main/samples/transforms/surefire-report-output.hpl @@ -0,0 +1,164 @@ + + + + + surefire-report-output + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Write test results as a JUnit style surefire XML report. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + test results + surefire report output + Y + + + + test results + DataGrid + + Y + + 1 + + none + + + + + test_name + String + + -1 + -1 + N + + + duration_ms + Integer + + -1 + -1 + N + + + test_result + String + + -1 + -1 + N + + + log_text + String + + -1 + -1 + N + + + + + sample-test-one + 120 + PASS + everything fine + + + sample-test-two + 80 + PASS + no errors + + + + + 128 + 160 + + + + surefire report output + SurefireReportOutput + + Y + + 1 + + none + + + ${PROJECT_HOME}/output/surefire-report-output.xml + samples + Y + test_name + duration_ms + Y + test_result + log_text + + + + N + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/synchronizeaftermerge/src/main/samples/transforms/synchronize-after-merge.hpl b/plugins/transforms/synchronizeaftermerge/src/main/samples/transforms/synchronize-after-merge.hpl new file mode 100644 index 00000000000..2ab5ec1d177 --- /dev/null +++ b/plugins/transforms/synchronizeaftermerge/src/main/samples/transforms/synchronize-after-merge.hpl @@ -0,0 +1,177 @@ + + + + + synchronize-after-merge + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Apply the inserts, updates and deletes flagged by a Merge rows (diff) transform to a database table. Uses the hop-samples connection, an in-memory H2 database. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + Synchronize after merge + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + flagfield + String + + -1 + -1 + N + + + + + 4 + dave + new + + + 2 + bob + changed + + + 3 + carol + deleted + + + + + 128 + 160 + + + + Synchronize after merge + SynchronizeAfterMerge + + Y + + 1 + + none + + + hop-samples + 100 + N + + Y + N + flagfield + new + changed + deleted + + + employees
+ + id + id + = + + + + id + id + N + + + name + name + Y + +
+ + + 560 + 96 + +
+ + + +
diff --git a/plugins/transforms/tableexists/src/main/samples/transforms/table-exists.hpl b/plugins/transforms/tableexists/src/main/samples/transforms/table-exists.hpl new file mode 100644 index 00000000000..952abfe424b --- /dev/null +++ b/plugins/transforms/tableexists/src/main/samples/transforms/table-exists.hpl @@ -0,0 +1,123 @@ + + + + + table-exists + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Check whether the table named in every row exists in a database. Uses the hop-samples connection, an in-memory H2 database. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + tables + Table exists + Y + + + + tables + DataGrid + + Y + + 1 + + none + + + + + tablename + String + + -1 + -1 + N + + + + + employees + + + + + 128 + 160 + + + + Table exists + TableExists + + Y + + 1 + + none + + + hop-samples + tablename + result + public + + + 320 + 80 + + + + + + diff --git a/plugins/transforms/tableoutput/src/main/samples/metadata/rdbms/hop-samples.json b/plugins/transforms/tableoutput/src/main/samples/metadata/rdbms/hop-samples.json index e9f11fba31b..cc9f1592bb3 100644 --- a/plugins/transforms/tableoutput/src/main/samples/metadata/rdbms/hop-samples.json +++ b/plugins/transforms/tableoutput/src/main/samples/metadata/rdbms/hop-samples.json @@ -14,7 +14,7 @@ "SUPPORTS_BOOLEAN_DATA_TYPE": "Y", "FORCE_IDENTIFIERS_TO_LOWERCASE": "N", "PRESERVE_RESERVED_WORD_CASE": "Y", - "SQL_CONNECT": "CREATE TABLE IF NOT EXISTS PUBLIC.dim_sample\n(\n scd_key IDENTITY\n, version INTEGER\n, date_from TIMESTAMP\n, date_to TIMESTAMP\n, id DOUBLE\n, name VARCHAR(50)\n, street VARCHAR(50)\n, number INT\n, zip VARCHAR(50)\n, city VARCHAR(50)\n)\n;\n\nCREATE TABLE IF NOT EXISTS PUBLIC.TABLEOUTPUT_BASIC\n(\n ID INT\n, COL_BOOL BOOLEAN\n, COL_STRING TEXT\n, COL_DATE DATE\n)\n;\n\n\nCREATE TABLE IF NOT EXISTS PUBLIC.INSERTUPDATE\n(\n ID INT\n, COL_BOOL BOOLEAN\n, COL_STRING TEXT\n, COL_DATE DATE\n)\n;\n\nCREATE TABLE IF NOT EXISTS PUBLIC.DBLOOKUP \n(\nID INT,\nDESCRIPTION TEXT\n); \n\nTRUNCATE TABLE PUBLIC.DBLOOKUP; \n\nINSERT INTO PUBLIC.DBLOOKUP VALUES \n(1, \u0027value 01\u0027),\n(2, \u0027value 02\u0027),\n(3, \u0027value 03\u0027),\n(4, \u0027value 04\u0027),\n(5, \u0027value 05\u0027),\n(6, \u0027value 06\u0027),\n(7, \u0027value 07\u0027),\n(8, \u0027value 08\u0027),\n(9, \u0027value 09\u0027),\n(10, \u0027value 10\u0027);\n\nCREATE TABLE IF NOT EXISTS PUBLIC.TABLEINPUT\n(\n ID INT\n, COL_BOOL BOOLEAN\n, COL_STRING TEXT\n, COL_DATE DATE\n)\n;\n\nTRUNCATE TABLE PUBLIC.TABLEINPUT;\n\nINSERT INTO PUBLIC.TABLEINPUT VALUES \n(1, \u0027Y\u0027, \u0027value 01\u0027, \u00272021-01-01\u0027),\n(2, \u0027Y\u0027, \u0027value 02\u0027, \u00272022-01-01\u0027),\n(3, \u0027Y\u0027, \u0027value 03\u0027, \u00272023-01-01\u0027),\n(4, \u0027Y\u0027, \u0027value 04\u0027, \u00272024-01-01\u0027),\n(5, \u0027Y\u0027, \u0027value 05\u0027, \u00272025-01-01\u0027);\n\n", + "SQL_CONNECT": "CREATE TABLE IF NOT EXISTS PUBLIC.dim_sample\n(\n scd_key IDENTITY\n, version INTEGER\n, date_from TIMESTAMP\n, date_to TIMESTAMP\n, id DOUBLE\n, name VARCHAR(50)\n, street VARCHAR(50)\n, number INT\n, zip VARCHAR(50)\n, city VARCHAR(50)\n)\n;\n\nCREATE TABLE IF NOT EXISTS PUBLIC.TABLEOUTPUT_BASIC\n(\n ID INT\n, COL_BOOL BOOLEAN\n, COL_STRING TEXT\n, COL_DATE DATE\n)\n;\n\n\nCREATE TABLE IF NOT EXISTS PUBLIC.INSERTUPDATE\n(\n ID INT\n, COL_BOOL BOOLEAN\n, COL_STRING TEXT\n, COL_DATE DATE\n)\n;\n\nCREATE TABLE IF NOT EXISTS PUBLIC.DBLOOKUP \n(\nID INT,\nDESCRIPTION TEXT\n); \n\nTRUNCATE TABLE PUBLIC.DBLOOKUP; \n\nINSERT INTO PUBLIC.DBLOOKUP VALUES \n(1, \u0027value 01\u0027),\n(2, \u0027value 02\u0027),\n(3, \u0027value 03\u0027),\n(4, \u0027value 04\u0027),\n(5, \u0027value 05\u0027),\n(6, \u0027value 06\u0027),\n(7, \u0027value 07\u0027),\n(8, \u0027value 08\u0027),\n(9, \u0027value 09\u0027),\n(10, \u0027value 10\u0027);\n\nCREATE TABLE IF NOT EXISTS PUBLIC.TABLEINPUT\n(\n ID INT\n, COL_BOOL BOOLEAN\n, COL_STRING TEXT\n, COL_DATE DATE\n)\n;\n\nTRUNCATE TABLE PUBLIC.TABLEINPUT;\n\nINSERT INTO PUBLIC.TABLEINPUT VALUES \n(1, \u0027Y\u0027, \u0027value 01\u0027, \u00272021-01-01\u0027),\n(2, \u0027Y\u0027, \u0027value 02\u0027, \u00272022-01-01\u0027),\n(3, \u0027Y\u0027, \u0027value 03\u0027, \u00272023-01-01\u0027),\n(4, \u0027Y\u0027, \u0027value 04\u0027, \u00272024-01-01\u0027),\n(5, \u0027Y\u0027, \u0027value 05\u0027, \u00272025-01-01\u0027);\n\nCREATE TABLE IF NOT EXISTS PUBLIC.EMPLOYEES\n(\n ID INTEGER PRIMARY KEY\n, NAME VARCHAR(100)\n)\n;\n\nMERGE INTO PUBLIC.EMPLOYEES KEY(ID) VALUES \n(1, \u0027alice\u0027),\n(2, \u0027robert\u0027),\n(3, \u0027carol\u0027);\n\nCREATE TABLE IF NOT EXISTS PUBLIC.COLORS\n(\n COLOR_KEY INTEGER\n, COLOR VARCHAR(100)\n)\n;\n\n", "FORCE_IDENTIFIERS_TO_UPPERCASE": "N", "PREFERRED_SCHEMA_NAME": "" }, diff --git a/plugins/transforms/tokenreplacement/src/main/samples/transforms/token-replacement.hpl b/plugins/transforms/tokenreplacement/src/main/samples/transforms/token-replacement.hpl new file mode 100644 index 00000000000..c393f3bff21 --- /dev/null +++ b/plugins/transforms/tokenreplacement/src/main/samples/transforms/token-replacement.hpl @@ -0,0 +1,168 @@ + + + + + token-replacement + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Replace the tokens in a field with values taken from another field. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + token replacement + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + input + String + + -1 + -1 + N + + + tokenValue + String + + -1 + -1 + N + + + + + hello ${VARIABLE1} + ${VARIABLE2} + + + hello ${VARIABLE2} + awesome + + + + + 128 + 160 + + + + token replacement + TokenReplacementPlugin + + Y + + 1 + + none + + + field + + input + + N + + N + Field + output + + N + + N + N + UNIX + UTF-8 + 0 + N + N + N + N + N + + N + ${ + } + + + tokenValue + VARIABLE1 + + + tokenValue + VARIABLE2 + + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/uniquerowsbyhashset/src/main/samples/transforms/unique-rows-hashset.hpl b/plugins/transforms/uniquerowsbyhashset/src/main/samples/transforms/unique-rows-hashset.hpl new file mode 100644 index 00000000000..fed29d44482 --- /dev/null +++ b/plugins/transforms/uniquerowsbyhashset/src/main/samples/transforms/unique-rows-hashset.hpl @@ -0,0 +1,159 @@ + + + + + unique-rows-hashset + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Remove duplicate rows, keeping the first occurrence of every distinct name and city. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows with duplicates + unique rows + Y + + + + rows with duplicates + DataGrid + + Y + + 1 + + none + + + + + name + String + + -1 + -1 + N + + + city + String + + -1 + -1 + N + + + + + alice + brussels + + + bob + antwerp + + + alice + brussels + + + carol + gent + + + bob + antwerp + + + dave + bruges + + + + + 128 + 160 + + + + unique rows + UniqueRowsByHashSet + + Y + + 1 + + none + + + duplicate + + + name + + + city + + + N + Y + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/update/src/main/samples/transforms/update.hpl b/plugins/transforms/update/src/main/samples/transforms/update.hpl new file mode 100644 index 00000000000..b78798b99eb --- /dev/null +++ b/plugins/transforms/update/src/main/samples/transforms/update.hpl @@ -0,0 +1,152 @@ + + + + + update + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Update the rows of a database table with the values of every input row. Uses the hop-samples connection, an in-memory H2 database. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + Update + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + + + 128 + 160 + + + + Update + Update + + Y + + 1 + + none + + + hop-samples + N + 100 + N + N + + + public + employees
+ + id + id + = + + + + name + name + +
+ + + 384 + 112 + +
+ + + +
diff --git a/plugins/transforms/validator/src/main/samples/transforms/data-validator.hpl b/plugins/transforms/validator/src/main/samples/transforms/data-validator.hpl new file mode 100644 index 00000000000..d25a3e77021 --- /dev/null +++ b/plugins/transforms/validator/src/main/samples/transforms/data-validator.hpl @@ -0,0 +1,166 @@ + + + + + data-validator + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Validate that the id field is a positive number and fail rows that are not. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + data validator + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + name + String + + -1 + -1 + N + + + + + 1 + alice + + + 2 + bob + + + 3 + carol + + + + + 128 + 160 + + + + data validator + Validator + + Y + + 1 + + none + + + + id-positive + id + + + N + N + N + Integer + Y + + + + N + + + 1 + + + + + + + + 1 + id must be positive + + Y + Y + , + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/vcard/src/assembly/assembly.xml b/plugins/transforms/vcard/src/assembly/assembly.xml index 602222d5f63..020e8dd6239 100644 --- a/plugins/transforms/vcard/src/assembly/assembly.xml +++ b/plugins/transforms/vcard/src/assembly/assembly.xml @@ -32,6 +32,13 @@ + + + ${project.basedir}/src/main/samples + config/projects/samples/ + + + ${maven.multiModuleProjectDirectory}/assemblies/shared/hop-plugin-libs.xml diff --git a/plugins/transforms/vcard/src/main/samples/files/vcard-input.txt b/plugins/transforms/vcard/src/main/samples/files/vcard-input.txt new file mode 100644 index 00000000000..6aebd62fb15 --- /dev/null +++ b/plugins/transforms/vcard/src/main/samples/files/vcard-input.txt @@ -0,0 +1,12 @@ +BEGIN:VCARD +VERSION:3.0 +FN:Alice Doe +UID:alice-doe +EMAIL;TYPE=INTERNET:alice@apache.org +END:VCARD +BEGIN:VCARD +VERSION:3.0 +FN:Bob Smith +UID:bob-smith +EMAIL;TYPE=INTERNET:bob@apache.org +END:VCARD diff --git a/plugins/transforms/vcard/src/main/samples/transforms/vcard-input.hpl b/plugins/transforms/vcard/src/main/samples/transforms/vcard-input.hpl new file mode 100644 index 00000000000..9f42fdcebc9 --- /dev/null +++ b/plugins/transforms/vcard/src/main/samples/transforms/vcard-input.hpl @@ -0,0 +1,116 @@ + + + + + vcard-input + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read names and email addresses from vCard files. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + read vcards + VCardInput + + Y + + 1 + + none + + + N + vcard_filename + Y + N + UTF-8 + + + ${PROJECT_HOME}/files/vcard-input.txt + + + N + N + + + N + + N + + N + + fn + fn + + + + uid + uid + + + + email + email + INTERNET + + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/vcard/src/main/samples/transforms/vcard-output.hpl b/plugins/transforms/vcard/src/main/samples/transforms/vcard-output.hpl new file mode 100644 index 00000000000..8a06091e4d9 --- /dev/null +++ b/plugins/transforms/vcard/src/main/samples/transforms/vcard-output.hpl @@ -0,0 +1,176 @@ + + + + + vcard-output + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Write contact fields from rows to a vCard file. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + contacts + vcard output + Y + + + + contacts + DataGrid + + Y + + 1 + + none + + + + + fn + String + + -1 + -1 + N + + + uid + String + + -1 + -1 + N + + + email + String + + -1 + -1 + N + + + + + Alice Doe + alice-doe + alice@apache.org + + + Bob Smith + bob-smith + bob@apache.org + + + + + 128 + 160 + + + + vcard output + VCardOutput + + Y + + 1 + + none + + + writetofile + 3.0 + vcard_text + N + N + N + N + vcard_filename + UTF-8 + + ${PROJECT_HOME}/output/vcard-output + vcf + Y + N + N + N + Y + + + fn + fn + + + + uid + uid + + + + email + email + INTERNET + + N + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/webservices/src/main/samples/transforms/web-services-lookup.hpl b/plugins/transforms/webservices/src/main/samples/transforms/web-services-lookup.hpl new file mode 100644 index 00000000000..e2641987abd --- /dev/null +++ b/plugins/transforms/webservices/src/main/samples/transforms/web-services-lookup.hpl @@ -0,0 +1,145 @@ + + + + + web-services-lookup + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Call a SOAP web service for every row and read the response. Requires network access to the web service. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + rows + Web services lookup + Y + + + + rows + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + + + 1 + + + + + 128 + 160 + + + + Web services lookup + WebServiceLookup + + Y + + 1 + + none + + + http://${CASTLEMOCK_HOSTNAME}:8080/castlemock/mock/soap/project/17hLFE/BookServiceSOAP?wsdl + AddBook + + http://www.cleverbuilder.com/BookService/ + + + Book + Book + + + admin + admin + 1 + N + N + + Y + + + body + Book + Book + + + + + + + 368 + 64 + + + + + + diff --git a/plugins/transforms/writetolog/src/main/samples/transforms/write-to-log-basic.hpl b/plugins/transforms/writetolog/src/main/samples/transforms/write-to-log-basic.hpl new file mode 100644 index 00000000000..66ea80c2e2b --- /dev/null +++ b/plugins/transforms/writetolog/src/main/samples/transforms/write-to-log-basic.hpl @@ -0,0 +1,145 @@ + + + + + write-to-log-basic + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Write the rows of a data grid to the log. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + sample data + write to log + Y + + + + sample data + DataGrid + + Y + + 1 + + none + + + + + firstname + String + + -1 + -1 + N + + + lastname + String + + -1 + -1 + N + + + + + John + Doe + + + Jane + Doe + + + + + 128 + 160 + + + + write to log + WriteToLog + + Y + + 1 + + none + + + Y + N + 0 + Writing sample rows to the log: + Basic + + + firstname + + + lastname + + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/xml/src/main/samples/files/xml-input-stream.txt b/plugins/transforms/xml/src/main/samples/files/xml-input-stream.txt new file mode 100644 index 00000000000..b02eec44631 --- /dev/null +++ b/plugins/transforms/xml/src/main/samples/files/xml-input-stream.txt @@ -0,0 +1,24 @@ + + + + The Hobbit + J.R.R. Tolkien + + + Dune + Frank Herbert + + diff --git a/plugins/transforms/xml/src/main/samples/files/xml-join-comments.txt b/plugins/transforms/xml/src/main/samples/files/xml-join-comments.txt new file mode 100644 index 00000000000..f6292c08520 --- /dev/null +++ b/plugins/transforms/xml/src/main/samples/files/xml-join-comments.txt @@ -0,0 +1,17 @@ + + + first order comment + diff --git a/plugins/transforms/xml/src/main/samples/files/xml-join-orders.txt b/plugins/transforms/xml/src/main/samples/files/xml-join-orders.txt new file mode 100644 index 00000000000..a6cea1d9836 --- /dev/null +++ b/plugins/transforms/xml/src/main/samples/files/xml-join-orders.txt @@ -0,0 +1,20 @@ + + + + 1 + alice + + diff --git a/plugins/transforms/xml/src/main/samples/files/xsd-validator.txt b/plugins/transforms/xml/src/main/samples/files/xsd-validator.txt new file mode 100644 index 00000000000..3c818474af0 --- /dev/null +++ b/plugins/transforms/xml/src/main/samples/files/xsd-validator.txt @@ -0,0 +1,19 @@ + + + john + doe + john@apache.org + diff --git a/plugins/transforms/xml/src/main/samples/files/xsd-validator.xsd b/plugins/transforms/xml/src/main/samples/files/xsd-validator.xsd new file mode 100644 index 00000000000..bd09f08e11b --- /dev/null +++ b/plugins/transforms/xml/src/main/samples/files/xsd-validator.xsd @@ -0,0 +1,26 @@ + + + + + + + + + + + + + diff --git a/plugins/transforms/xml/src/main/samples/files/xsl-transformation.txt b/plugins/transforms/xml/src/main/samples/files/xsl-transformation.txt new file mode 100644 index 00000000000..dc81196be60 --- /dev/null +++ b/plugins/transforms/xml/src/main/samples/files/xsl-transformation.txt @@ -0,0 +1,17 @@ + + + Apache Hop pipelines and workflows + diff --git a/plugins/transforms/xml/src/main/samples/files/xsl-transformation.xsl b/plugins/transforms/xml/src/main/samples/files/xsl-transformation.xsl new file mode 100644 index 00000000000..f69828ef422 --- /dev/null +++ b/plugins/transforms/xml/src/main/samples/files/xsl-transformation.xsl @@ -0,0 +1,20 @@ + + + + + + + diff --git a/plugins/transforms/xml/src/main/samples/transforms/xml-input-stream.hpl b/plugins/transforms/xml/src/main/samples/transforms/xml-input-stream.hpl new file mode 100644 index 00000000000..8f02d4b7da1 --- /dev/null +++ b/plugins/transforms/xml/src/main/samples/transforms/xml-input-stream.hpl @@ -0,0 +1,118 @@ + + + + + xml-input-stream + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Stream every XML token of a document to the next transform, one token per row. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + xml input stream + XMLInputStream + + Y + + 1 + + none + + + N + + ${PROJECT_HOME}/files/xml-input-stream.txt + N + 0 + 0 + 1024 + UTF-8 + N + Y + N + xml_filename + N + xml_row_number + N + xml_data_type_numeric + Y + xml_data_type_description + N + xml_location_line + N + xml_location_column + Y + xml_element_id + Y + xml_parent_element_id + Y + xml_element_level + Y + xml_path + N + xml_parent_path + Y + xml_data_name + Y + xml_data_value + + + 128 + 160 + + + + + + diff --git a/plugins/transforms/xml/src/main/samples/transforms/xml-join.hpl b/plugins/transforms/xml/src/main/samples/transforms/xml-join.hpl new file mode 100644 index 00000000000..6dccf3d453e --- /dev/null +++ b/plugins/transforms/xml/src/main/samples/transforms/xml-join.hpl @@ -0,0 +1,220 @@ + + + + + xml-join + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Join two XML documents: add the comments stream into the orders document. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + orders + xml join + Y + + + comments + xml join + Y + + + + orders + LoadFileInput + + Y + + 1 + + none + + + N + + N + + 0 + UTF-8 + + N + N + N + N + + + + + + + + + + ${PROJECT_HOME}/files/xml-join-orders.txt + + + N + N + + + + + orders_xml + String + -1 + + none + content + -1 + + + + N + + + + + 128 + 160 + + + + comments + LoadFileInput + + Y + + 1 + + none + + + N + + N + + 0 + UTF-8 + + N + N + N + N + + + + + + + + + + ${PROJECT_HOME}/files/xml-join-comments.txt + + + N + N + + + + + comments_xml + String + -1 + + none + content + -1 + + + + N + + + + + 128 + 288 + + + + xml join + XMLJoin + + Y + + 1 + + none + + + N + UTF-8 + N + Y + comments_xml + comments + //Orders + orders_xml + orders + result_xml + + + 400 + 224 + + + + + + diff --git a/plugins/transforms/xml/src/main/samples/transforms/xml-output.hpl b/plugins/transforms/xml/src/main/samples/transforms/xml-output.hpl new file mode 100644 index 00000000000..a04a807e9d4 --- /dev/null +++ b/plugins/transforms/xml/src/main/samples/transforms/xml-output.hpl @@ -0,0 +1,201 @@ + + + + + xml-output + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Write rows to an XML file with a main and a repeat element. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + books + xml output + Y + + + + books + DataGrid + + Y + + 1 + + none + + + + + id + Integer + + -1 + -1 + N + + + title + String + + -1 + -1 + N + + + author + String + + -1 + -1 + N + + + + + 1 + The Hobbit + J.R.R. Tolkien + + + 2 + Dune + Frank Herbert + + + + + 128 + 160 + + + + xml output + XMLOutput + + Y + + 1 + + none + + + UTF-8 + + + Element + + + id + + + -1 + id + + -1 + Integer + + + Element + + + title + + + -1 + title + + -1 + String + + + Element + + + author + + + -1 + author + + -1 + String + + + + N + N + N + N + + N + xml + ${PROJECT_HOME}/output/xml-output + Y + N + 0 + N + + + Books + Book + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/xml/src/main/samples/transforms/xsd-validator.hpl b/plugins/transforms/xml/src/main/samples/transforms/xsd-validator.hpl new file mode 100644 index 00000000000..fc17702be66 --- /dev/null +++ b/plugins/transforms/xml/src/main/samples/transforms/xsd-validator.hpl @@ -0,0 +1,126 @@ + + + + + xsd-validator + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Validate an XML document against an XSD schema. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + get filename + xsd validator + Y + + + + get filename + GetVariable + + Y + + 1 + + none + + + + + -1 + xml-file + -1 + none + String + ${PROJECT_HOME}/files/xsd-validator.txt + + + + + 128 + 160 + + + + xsd validator + XSDValidator + + Y + + 1 + + none + + + ${PROJECT_HOME}/files/xsd-validator.xsd + xml-file + result + Y + validation_message + + + N + Y + + filename + N + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/xml/src/main/samples/transforms/xsl-transformation.hpl b/plugins/transforms/xml/src/main/samples/transforms/xsl-transformation.hpl new file mode 100644 index 00000000000..9f00f1d0cdc --- /dev/null +++ b/plugins/transforms/xml/src/main/samples/transforms/xsl-transformation.hpl @@ -0,0 +1,157 @@ + + + + + xsl-transformation + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Transform the content of an XML field with an XSL stylesheet. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + load xml file + xsl transformation + Y + + + + load xml file + LoadFileInput + + Y + + 1 + + none + + + N + + N + + 0 + UTF-8 + + N + N + N + N + + + + + + + + + + ${PROJECT_HOME}/files/xsl-transformation.txt + + + N + N + + + + + content + String + -1 + + none + content + -1 + + + + N + + + + + 128 + 160 + + + + xsl transformation + XSLT + + Y + + 1 + + none + + + ${PROJECT_HOME}/files/xsl-transformation.xsl + content + result + + N + N + SAXON + + + + + + + 400 + 160 + + + + + + diff --git a/plugins/transforms/yamlinput/src/main/samples/files/yaml-input.txt b/plugins/transforms/yamlinput/src/main/samples/files/yaml-input.txt new file mode 100644 index 00000000000..9c7e0480956 --- /dev/null +++ b/plugins/transforms/yamlinput/src/main/samples/files/yaml-input.txt @@ -0,0 +1,5 @@ +engine: hop +version: 2.20 +pipelines: + - name: yaml-input + type: sample diff --git a/plugins/transforms/yamlinput/src/main/samples/transforms/yaml-input.hpl b/plugins/transforms/yamlinput/src/main/samples/transforms/yaml-input.hpl new file mode 100644 index 00000000000..d88d5c64ebd --- /dev/null +++ b/plugins/transforms/yamlinput/src/main/samples/transforms/yaml-input.hpl @@ -0,0 +1,129 @@ + + + + + yaml-input + Y + + + + Normal + + + N + 1000 + 100 + - + 2026/10/04 09:00:00.000 + - + 2026/10/04 09:00:00.000 + + + + Read fields from a YAML file. + 128 + 16 + 400 + 27 + Noto Sans + 11 + N + N + 14 + 58 + 90 + 201 + 232 + 251 + 14 + 58 + 90 + + + + + + yaml input + YamlInput + + Y + + 1 + + none + + + N + + N + N + N + N + Y + + + + + ${PROJECT_HOME}/files/yaml-input.txt + + N + N + + + + + engine + engine + String + + + + + -1 + -1 + none + + + version + version + String + + + + + -1 + -1 + none + + + 0 + N + N + + + + 128 + 160 + + + + + +