<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one or more
  ~ contributor license agreements.  See the NOTICE file distributed with
  ~ this work for additional information regarding copyright ownership.
  ~ The ASF licenses this file to You under the Apache License, Version 2.0
  ~ (the "License"); you may not use this file except in compliance with
  ~ the License.  You may obtain a copy of the License at
  ~
  ~       http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  ~
  -->

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>hop-assemblies-plugins</artifactId>
        <groupId>org.apache.hop</groupId>
        <version>0.60</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>pom</packaging>

    <artifactId>hop-assemblies-plugins-transforms</artifactId>

    <name>Hop Assemblies Plugins Transforms</name>
    <description></description>

    <modules>
        <module>abort</module>
        <module>addsequence</module>
        <module>analyticquery</module>
        <module>append</module>
        <module>blockingtransform</module>
        <module>blockuntiltransformsfinish</module>
        <module>calculator</module>
        <module>changefileencoding</module>
        <module>checksum</module>
        <module>clonerow</module>
        <module>closure</module>
        <module>columnexists</module>
        <module>combinationlookup</module>
        <module>concatfields</module>
        <module>constant</module>
        <module>creditcardvalidator</module>
        <module>cubeinput</module>
        <module>cubeoutput</module>
        <module>databasejoin</module>
        <module>databaselookup</module>
        <module>datagrid</module>
        <module>dbproc</module>
        <module>delay</module>
        <module>delete</module>
        <module>denormaliser</module>
        <module>detectemptystream</module>
        <module>detectlastrow</module>
        <module>dimensionlookup</module>
        <module>dynamicsqlrow</module>
        <module>edi2xml</module>
        <module>excelinput</module>
        <module>exceloutput</module>
        <module>excelwriter</module>
        <module>execprocess</module>
        <module>execsqlrow</module>
        <module>fake</module>
        <module>fieldschangesequence</module>
        <module>fieldsplitter</module>
        <module>fileexists</module>
        <module>filelocked</module>
        <module>filemetadata</module>
        <module>filterrows</module>
        <module>flattener</module>
        <module>fuzzymatch</module>
        <module>getfilenames</module>
        <module>getfilesrowcount</module>
        <module>getserversequence</module>
        <module>getsubfolders</module>
        <module>gettablenames</module>
        <module>getvariable</module>
        <module>http</module>
        <module>httppost</module>
        <module>insertupdate</module>
        <module>ifnull</module>
        <module>janino</module>
        <module>javascript</module>
        <module>joinrows</module>
        <module>json</module>
        <module>kafka</module>
        <module>ldap</module>
        <module>ldifinput</module>
        <module>loadfileinput</module>
        <module>mail</module>
        <module>mailinput</module>
        <module>mailvalidator</module>
        <module>mapping</module>
        <module>memgroupby</module>
        <module>mergejoin</module>
        <module>mergerows</module>
        <module>metainject</module>
        <module>mongodb</module>
        <module>multimerge</module>
        <module>normaliser</module>
        <module>nullif</module>
        <module>numberrange</module>
        <module>pgbulkloader</module>
        <module>pgp</module>
        <module>processfiles</module>
        <module>propertyinput</module>
        <module>propertyoutput</module>
        <module>randomvalue</module>
        <module>regexeval</module>
        <module>replacestring</module>
        <module>reservoirsampling</module>
        <module>rest</module>
        <module>rowgenerator</module>
        <module>rowsfromresult</module>
        <module>rowstoresult</module>
        <module>salesforce</module>
        <module>samplerows</module>
        <module>selectvalues</module>
        <module>setvalueconstant</module>
        <module>setvaluefield</module>
        <module>setvariable</module>
        <module>sort</module>
        <module>sortedmerge</module>
        <module>splitfieldtorows</module>
        <module>sql</module>
        <module>sqlfileoutput</module>
        <module>ssh</module>
        <module>streamlookup</module>
        <module>streamschemamerge</module>
        <module>stringcut</module>
        <module>stringoperations</module>
        <module>syslog</module>
        <module>systemdata</module>
        <module>switchcase</module>
        <module>synchronizeaftermerge</module>
        <module>tablecompare</module>
        <module>tableexists</module>
        <module>tableoutput</module>
        <module>terafast</module>
        <module>textfile</module>
        <module>tokenreplacement</module>
        <module>uniquerows</module>
        <module>uniquerowsbyhashset</module>
        <module>update</module>
        <module>valuemapper</module>
        <module>webserviceavailable</module>
        <module>webservices</module>
        <module>writetolog</module>
        <module>xml</module>
        <module>yamlinput</module>
        <module>zipfile</module>
    </modules>

</project>