Fixed tests and POM.Changes related to sql connector.
diff --git a/examples/fileToJdbc/.gitignore b/examples/fileToJdbc/.gitignore
deleted file mode 100755
index 019edc2..0000000
--- a/examples/fileToJdbc/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-.DS_Store
-/.idea/
-/target/
diff --git a/examples/fileToJdbc/README.md b/examples/fileToJdbc/README.md
deleted file mode 100755
index ad9f6b9..0000000
--- a/examples/fileToJdbc/README.md
+++ /dev/null
@@ -1,70 +0,0 @@
-## Sample File to JDBC Example
-
-This example shows how to read files from HDFS, parse into POJOs and then insert into a table in MySQL.
-
-Given various parsing demands, we give two applications under this package, `FileToJdbcCsvParser` and `FileToJdbcCustomParser`.
-
-`CsvParser` allows you to parse only CSV format input files. For more complex input format, `CustomParser` allows you to set custom regex to parse.
-
-Accordingly, we have two additional configuration files (`src/site/conf/exampleCsvParser.xml` and `src/site/conf/exampleCustomParser.xml`) besides the common properties file (`/src/main/resources/META-INF/properties.xml`).
-
-Users can choose which applicaiton and which addtional configuration file to use during launch time.
-
-
-####**Update Properties:**
-
-- Update these common properties in the file `/src/main/resources/META-INF/properties.xml`:
-
-| Property Name | Description |
-| ------------- | ----------- |
-| dt.operator.FileReader.prop.directory |HDFS input directory path
-|dt.operator.JdbcOutput.prop.store.databaseUrl | database URL of the form `jdbc:mysql://hostName:portNumber/dbName` |
-| dt.operator.JdbcOutput.prop.store.userName | MySQL user name |
-| dt.operator.JdbcOutput.prop.store.password | MySQL user password |
-| dt.operator.JdbcOutput.prop.tablename | MySQL output table name |
-
-- Using CustomParser: update `regexStr` in file `src/site/conf/exampleCustomParser.xml`
-
-
-####**Sample Input:**
-
-- To set up MySQL database and create table, check `src/test/resources/example.sql`
-- To run this example, create files using this format:
-
-```
- 1,User1,1000
- 2,User2,2000
- 3,User3,3000
- 4,User4,4000
- 5,User5,5000
- 6,User6,6000
- 7,User7,7000
- 8,User8,8000
- 9,User9,9000
- 10,User10,10000
-```
-- To change input format, update `PojoEvent` class and `addFieldInfos()` method in `src/main/java/com/example/FileToJdbcApp`. If using CsvParser, also update `src/main/resources/schema.json`.
-
-####**Sample Output:**
-
-- After running successfully, verify
-that the database table has the expected output:
-
-```
- mysql> select * from table_name;
- +------------+--------+--------+
- | ACCOUNT_NO | NAME | AMOUNT |
- +------------+--------+--------+
- | 1 | User1 | 1000 |
- | 2 | User2 | 2000 |
- | 3 | User3 | 3000 |
- | 4 | User4 | 4000 |
- | 5 | User5 | 5000 |
- | 6 | User6 | 6000 |
- | 7 | User7 | 7000 |
- | 8 | User8 | 8000 |
- | 9 | User9 | 9000 |
- | 10 | User10 | 10000 |
- +------------+--------+--------+
- 10 rows in set (0.00 sec)
-```
diff --git a/examples/fileToJdbc/XmlJavadocCommentsExtractor.xsl b/examples/fileToJdbc/XmlJavadocCommentsExtractor.xsl
deleted file mode 100755
index 08075a9..0000000
--- a/examples/fileToJdbc/XmlJavadocCommentsExtractor.xsl
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed 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.
-
--->
-
-<!--
- Document : XmlJavadocCommentsExtractor.xsl
- Created on : September 16, 2014, 11:30 AM
- Description:
- The transformation strips off all information except for comments and tags from xml javadoc generated by xml-doclet.
--->
-
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
- <xsl:output method="xml" standalone="yes"/>
-
- <!-- copy xml by selecting only the following nodes, attributes and text -->
- <xsl:template match="node()|text()|@*">
- <xsl:copy>
- <xsl:apply-templates select="root|package|class|interface|method|field|type|comment|tag|text()|@name|@qualified|@text"/>
- </xsl:copy>
- </xsl:template>
-
- <!-- Strip off the following paths from the selected xml -->
- <xsl:template match="//root/package/interface/interface
- |//root/package/interface/method/@qualified
- |//root/package/class/interface
- |//root/package/class/class
- |//root/package/class/method/@qualified
- |//root/package/class/field/@qualified" />
-
- <xsl:strip-space elements="*"/>
-</xsl:stylesheet>
diff --git a/examples/fileToJdbc/pom.xml b/examples/fileToJdbc/pom.xml
deleted file mode 100755
index ae62e0c..0000000
--- a/examples/fileToJdbc/pom.xml
+++ /dev/null
@@ -1,293 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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">
- <modelVersion>4.0.0</modelVersion>
-
- <groupId>com.example</groupId>
- <version>1.0-SNAPSHOT</version>
- <artifactId>FileToJdbcApp</artifactId>
- <packaging>jar</packaging>
-
- <!-- change these to the appropriate values -->
- <name>File to JDBC</name>
- <description>My Apex Application Description</description>
-
- <properties>
- <!-- change this if you desire to use a different version of Apex Core -->
- <apex.version>3.5.0</apex.version>
- <apex.apppackage.classpath>lib/*.jar</apex.apppackage.classpath>
- <malhar.version>3.6.0</malhar.version>
- </properties>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-eclipse-plugin</artifactId>
- <version>2.9</version>
- <configuration>
- <downloadSources>true</downloadSources>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.3</version>
- <configuration>
- <encoding>UTF-8</encoding>
- <source>1.7</source>
- <target>1.7</target>
- <debug>true</debug>
- <optimize>false</optimize>
- <showDeprecation>true</showDeprecation>
- <showWarnings>true</showWarnings>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-dependency-plugin</artifactId>
- <version>2.8</version>
- <executions>
- <execution>
- <id>copy-dependencies</id>
- <phase>prepare-package</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <outputDirectory>target/deps</outputDirectory>
- <includeScope>runtime</includeScope>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <executions>
- <execution>
- <id>app-package-assembly</id>
- <phase>package</phase>
- <goals>
- <goal>single</goal>
- </goals>
- <configuration>
- <finalName>${project.artifactId}-${project.version}-apexapp</finalName>
- <appendAssemblyId>false</appendAssemblyId>
- <descriptors>
- <descriptor>src/assemble/appPackage.xml</descriptor>
- </descriptors>
- <archiverConfig>
- <defaultDirectoryMode>0755</defaultDirectoryMode>
- </archiverConfig>
- <archive>
- <manifestEntries>
- <Class-Path>${apex.apppackage.classpath}</Class-Path>
- <DT-Engine-Version>${apex.version}</DT-Engine-Version>
- <DT-App-Package-Group-Id>${project.groupId}</DT-App-Package-Group-Id>
- <DT-App-Package-Name>${project.artifactId}</DT-App-Package-Name>
- <DT-App-Package-Version>${project.version}</DT-App-Package-Version>
- <DT-App-Package-Display-Name>${project.name}</DT-App-Package-Display-Name>
- <DT-App-Package-Description>${project.description}</DT-App-Package-Description>
- </manifestEntries>
- </archive>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <artifactId>maven-antrun-plugin</artifactId>
- <version>1.7</version>
- <executions>
- <execution>
- <phase>package</phase>
- <configuration>
- <target>
- <move file="${project.build.directory}/${project.artifactId}-${project.version}-apexapp.jar"
- tofile="${project.build.directory}/${project.artifactId}-${project.version}.apa" />
- </target>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- <execution>
- <!-- create resource directory for xml javadoc-->
- <id>createJavadocDirectory</id>
- <phase>generate-resources</phase>
- <configuration>
- <tasks>
- <delete dir="${project.build.directory}/generated-resources/xml-javadoc"/>
- <mkdir dir="${project.build.directory}/generated-resources/xml-javadoc"/>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>1.9.1</version>
- <executions>
- <execution>
- <id>attach-artifacts</id>
- <phase>package</phase>
- <goals>
- <goal>attach-artifact</goal>
- </goals>
- <configuration>
- <artifacts>
- <artifact>
- <file>target/${project.artifactId}-${project.version}.apa</file>
- <type>apa</type>
- </artifact>
- </artifacts>
- <skipAttach>false</skipAttach>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <!-- generate javdoc -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <executions>
- <!-- generate xml javadoc -->
- <execution>
- <id>xml-doclet</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>javadoc</goal>
- </goals>
- <configuration>
- <doclet>com.github.markusbernhardt.xmldoclet.XmlDoclet</doclet>
- <additionalparam>-d ${project.build.directory}/generated-resources/xml-javadoc -filename ${project.artifactId}-${project.version}-javadoc.xml</additionalparam>
- <useStandardDocletOptions>false</useStandardDocletOptions>
- <docletArtifact>
- <groupId>com.github.markusbernhardt</groupId>
- <artifactId>xml-doclet</artifactId>
- <version>1.0.4</version>
- </docletArtifact>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <!-- Transform xml javadoc to stripped down version containing only class/interface comments and tags-->
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>xml-maven-plugin</artifactId>
- <version>1.0</version>
- <executions>
- <execution>
- <id>transform-xmljavadoc</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>transform</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <transformationSets>
- <transformationSet>
- <dir>${project.build.directory}/generated-resources/xml-javadoc</dir>
- <includes>
- <include>${project.artifactId}-${project.version}-javadoc.xml</include>
- </includes>
- <stylesheet>XmlJavadocCommentsExtractor.xsl</stylesheet>
- <outputDir>${project.build.directory}/generated-resources/xml-javadoc</outputDir>
- </transformationSet>
- </transformationSets>
- </configuration>
- </plugin>
- <!-- copy xml javadoc to class jar -->
- <plugin>
- <artifactId>maven-resources-plugin</artifactId>
- <version>2.6</version>
- <executions>
- <execution>
- <id>copy-resources</id>
- <phase>process-resources</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <outputDirectory>${basedir}/target/classes</outputDirectory>
- <resources>
- <resource>
- <directory>${project.build.directory}/generated-resources/xml-javadoc</directory>
- <includes>
- <include>${project.artifactId}-${project.version}-javadoc.xml</include>
- </includes>
- <filtering>true</filtering>
- </resource>
- </resources>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- </plugins>
-
- </build>
-
- <dependencies>
- <!-- add your dependencies here -->
- <dependency>
- <groupId>org.apache.apex</groupId>
- <artifactId>malhar-library</artifactId>
- <version>${malhar.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.apex</groupId>
- <artifactId>malhar-contrib</artifactId>
- <version>${malhar.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.apex</groupId>
- <artifactId>apex-common</artifactId>
- <version>${apex.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.10</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.apex</groupId>
- <artifactId>apex-engine</artifactId>
- <version>${apex.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.36</version>
- </dependency>
- <dependency>
- <groupId>org.codehaus.janino</groupId>
- <artifactId>janino</artifactId>
- <version>2.7.8</version>
- </dependency>
- <dependency>
- <groupId>org.codehaus.janino</groupId>
- <artifactId>commons-compiler</artifactId>
- <version>2.7.8</version>
- </dependency>
- <dependency>
- <groupId>net.sf.supercsv</groupId>
- <artifactId>super-csv</artifactId>
- <version>2.4.0</version>
- </dependency>
- <dependency>
- <groupId>org.hsqldb</groupId>
- <artifactId>hsqldb</artifactId>
- <version>2.3.1</version>
- </dependency>
- </dependencies>
-</project>
-
diff --git a/examples/fileToJdbc/src/assemble/appPackage.xml b/examples/fileToJdbc/src/assemble/appPackage.xml
deleted file mode 100755
index 7ad071c..0000000
--- a/examples/fileToJdbc/src/assemble/appPackage.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
- <id>appPackage</id>
- <formats>
- <format>jar</format>
- </formats>
- <includeBaseDirectory>false</includeBaseDirectory>
- <fileSets>
- <fileSet>
- <directory>${basedir}/target/</directory>
- <outputDirectory>/app</outputDirectory>
- <includes>
- <include>${project.artifactId}-${project.version}.jar</include>
- </includes>
- </fileSet>
- <fileSet>
- <directory>${basedir}/target/deps</directory>
- <outputDirectory>/lib</outputDirectory>
- </fileSet>
- <fileSet>
- <directory>${basedir}/src/site/conf</directory>
- <outputDirectory>/conf</outputDirectory>
- <includes>
- <include>*.xml</include>
- </includes>
- </fileSet>
- <fileSet>
- <directory>${basedir}/src/main/resources/META-INF</directory>
- <outputDirectory>/META-INF</outputDirectory>
- </fileSet>
- <fileSet>
- <directory>${basedir}/src/main/resources/app</directory>
- <outputDirectory>/app</outputDirectory>
- </fileSet>
- <fileSet>
- <directory>${basedir}/src/main/resources/resources</directory>
- <outputDirectory>/resources</outputDirectory>
- </fileSet>
- </fileSets>
-
-</assembly>
-
diff --git a/examples/fileToJdbc/src/test/resources/log4j.properties b/examples/fileToJdbc/src/test/resources/log4j.properties
deleted file mode 100755
index 3bfcdc5..0000000
--- a/examples/fileToJdbc/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-log4j.rootLogger=DEBUG,CONSOLE
-
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n
-
-log4j.appender.RFA=org.apache.log4j.RollingFileAppender
-log4j.appender.RFA.layout=org.apache.log4j.PatternLayout
-log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n
-log4j.appender.RFA.File=/tmp/app.log
-
-# to enable, add SYSLOG to rootLogger
-log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender
-log4j.appender.SYSLOG.syslogHost=127.0.0.1
-log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout
-log4j.appender.SYSLOG.layout.conversionPattern=${dt.cid} %-5p [%t] %c{2} %x - %m%n
-log4j.appender.SYSLOG.Facility=LOCAL1
-
-log4j.logger.org=info
-#log4j.logger.org.apache.commons.beanutils=warn
-log4j.logger.com.datatorrent=debug
diff --git a/examples/jdbc/README.md b/examples/jdbc/README.md
new file mode 100644
index 0000000..72c4fbb
--- /dev/null
+++ b/examples/jdbc/README.md
@@ -0,0 +1,193 @@
+## File to JDBC Example (FileToJdbcApp)
+
+This example shows how to read files from HDFS, parse into POJOs and then insert into a table in a database.
+
+Given various parsing demands, we give two applications under this package, `FileToJdbcCsvParser` and `FileToJdbcCustomParser`.
+
+`CsvParser` allows you to parse only CSV format input files. For more complex input format, `CustomParser` allows you to set custom regex to parse.
+
+A sample properties file (`/src/main/resources/META-INF/properties-FileToJdbcApp.xml`) is provided for these applications and would need to be
+customized according to the user's environment.
+
+The applications can then be launched using the apex command line interface and selecting the above configuration file using a parameter during
+launch.
+
+####**Update Properties:**
+
+- Update these common properties in the file `/src/main/resources/META-INF/properties-FileToJdbcApp.xml`:
+
+| Property Name | Description |
+| ------------- | ----------- |
+| dt.operator.FileReader.prop.directory |HDFS input directory path
+| dt.operator.JdbcOutput.prop.store.databaseUrl | database URL |
+| dt.operator.JdbcOutput.prop.store.userName | database user name |
+| dt.operator.JdbcOutput.prop.store.password | database user password |
+| dt.operator.JdbcOutput.prop.tablename | database output table name |
+| dt.operator.CustomParser.prop.regexStr | update regexStr if needed|
+
+####**Sample Input:**
+
+- To set up database and create table, check `src/test/resources/example-FileToJdbcApp-sql.txt`
+- To run this example, create files using this format:
+
+```
+ 1,User1,1000
+ 2,User2,2000
+ 3,User3,3000
+ 4,User4,4000
+ 5,User5,5000
+ 6,User6,6000
+ 7,User7,7000
+ 8,User8,8000
+ 9,User9,9000
+ 10,User10,10000
+```
+- To change input format, update `PojoEvent` class and `addFieldInfos()` method in `src/main/java/org/apache/apex/examples/FileToJdbcApp`.
+If using CsvParser, also update `src/main/resources/schema.json`.
+
+####**Sample Output:**
+
+- After running successfully, verify
+that the database table has the expected output:
+
+```
+ mysql> select * from table_name;
+ +------------+--------+--------+
+ | ACCOUNT_NO | NAME | AMOUNT |
+ +------------+--------+--------+
+ | 1 | User1 | 1000 |
+ | 2 | User2 | 2000 |
+ | 3 | User3 | 3000 |
+ | 4 | User4 | 4000 |
+ | 5 | User5 | 5000 |
+ | 6 | User6 | 6000 |
+ | 7 | User7 | 7000 |
+ | 8 | User8 | 8000 |
+ | 9 | User9 | 9000 |
+ | 10 | User10 | 10000 |
+ +------------+--------+--------+
+ 10 rows in set (0.00 sec)
+```
+
+
+## JDBC ingestion examples
+
+This project contains two applications to read records from a table in database, create POJOs and write them to a file
+in the user specified directory in HDFS.
+
+1. SimpleJdbcToHDFSApp: Reads table records as per given query and emits them as POJOs.
+2. PollJdbcToHDFSApp: Reads table records using partitions in parallel fashion also polls for newly **appended** records and emits them as POJOs.
+
+Follow these steps to run these applications:
+
+**Step 1**: Update these properties in the file `src/main/resources/META_INF/properties-<applicationName>.xml`, where <applicationName> represents
+the application name and is one of two names above:
+
+| Property Name | Description |
+| ------------- | ----------- |
+| dt.application.<applicationName>.operator.JdbcInput.prop.store.databaseUrl | database URL, for example `jdbc:hsqldb:mem:test` |
+| dt.application.<applicationName>.operator.JdbcInput.prop.store.userName | database user name |
+| dt.application.<applicationName>.operator.JdbcInput.prop.store.password | database user password |
+| dt.application.<applicationName>.operator.FileOutputOperator.filePath | HDFS output directory path |
+
+**Step 2**: Create database table and add entries
+
+Go to the database console and run (where _{path}_ is a suitable prefix):
+
+ source {path}/src/test/resources/example.sql
+
+After this, please verify that `testDev.test_event_table` is created and has 10 rows:
+
+ select count(*) from testDev.test_event_table;
+ +----------+
+ | count(*) |
+ +----------+
+ | 10 |
+ +----------+
+
+**Step 3**: Create HDFS output directory if not already present (_{path}_ should be the same as specified in `META_INF/properties-<applicationName>.xml`):
+
+ hadoop fs -mkdir -p {path}
+
+**Step 4**: Build the code:
+
+ mvn clean install
+
+**Step 5**: During launch use `src/main/resources/META_INF/properties-<applicationName>.xml` as a custom configuration file; then verify
+that the output directory has the expected output:
+
+ hadoop fs -cat <hadoop directory path>/2_op.dat.* | wc -l
+
+This should return 10 as the count.
+
+Sample Output:
+
+ hadoop fs -cat <path_to_file>/2_op.dat.0
+ PojoEvent [accountNumber=1, name=User1, amount=1000]
+ PojoEvent [accountNumber=2, name=User2, amount=2000]
+ PojoEvent [accountNumber=3, name=User3, amount=3000]
+ PojoEvent [accountNumber=4, name=User4, amount=4000]
+ PojoEvent [accountNumber=5, name=User5, amount=5000]
+ PojoEvent [accountNumber=6, name=User6, amount=6000]
+ PojoEvent [accountNumber=7, name=User7, amount=7000]
+ PojoEvent [accountNumber=8, name=User8, amount=8000]
+ PojoEvent [accountNumber=9, name=User9, amount=9000]
+ PojoEvent [accountNumber=10, name=User10, amount=1000]
+
+
+## JdbcToJdbc App
+
+This application reads from a source table in a database, creates POJO's and writes the POJO's to another table in a database.
+
+Steps :
+
+Step 1 : Update the below properties in the properties file - `src/main/resources/META_INF/properties-JdbcToJdbcApp.xml`
+
+1.dt.application.JdbcToJdbcApp.operator.JdbcInput.prop.store.databaseUrl
+- data base URL for your database, for example jdbc:hsqldb:mem:test
+2.dt.application.JdbcToJdbcApp.operator.JdbcInput.prop.store.userName
+- mysql user name
+3.dt.application.JdbcToJdbcApp.operator.JdbcInput.prop.store.password
+- password
+4.dt.application.JdbcToJdbcApp.operator.JdbcOutput.prop.store.databaseUrl
+- data base URL for your database, for example jdbc:jdbc:hsqldb:mem:test
+5.dt.application.JdbcToJdbcApp.operator.JdbcOutput.prop.store.userName
+- mysql user name
+6.dt.application.JdbcToJdbcApp.operator.JdbcOutput.prop.store.password
+- password
+
+Step 2: Create database, table and add entries
+
+Load into your database the contents of the following sql file
+<path to > src/test/resources/example-JdbcToJdbc-sql.txt
+
+After this is done, please verify that testDev.test_event_table is created and has 10 rows.It will also create an output table by the name testDev.test_output_event_table
+
+select count(*) from testDev.test_event_table;
++----------+
+| count(*) |
++----------+
+| 10 |
++----------+
+
+Step 3: Build the code,
+shell>mvn clean install
+
+This will compile the project and create the application package in the target folder.
+
+Step 4 : Launch the application package with the apex command line interface and
+select the above configuration file during launch.
+
+Verification :
+
+Log on to the mysql console
+
+select count(*) from testDev.test_event_table;
++----------+
+| count(*) |
++----------+
+| 10 |
++----------+
+
+
+
diff --git a/examples/jdbc/pom.xml b/examples/jdbc/pom.xml
new file mode 100644
index 0000000..b697a68
--- /dev/null
+++ b/examples/jdbc/pom.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+ <modelVersion>4.0.0</modelVersion>
+
+ <artifactId>malhar-examples-JDBC</artifactId>
+ <packaging>jar</packaging>
+
+ <name>Apache Apex Malhar JDBC Examples</name>
+ <description>Demostrates the JDBC Examples</description>
+
+ <parent>
+ <groupId>org.apache.apex</groupId>
+ <artifactId>malhar-examples</artifactId>
+ <version>3.8.0-SNAPSHOT</version>
+ </parent>
+
+ <dependencies>
+ <!-- add your dependencies here -->
+
+ <dependency>
+ <groupId>org.apache.apex</groupId>
+ <artifactId>apex-engine</artifactId>
+ <version>${apex.core.version}</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.apex</groupId>
+ <artifactId>malhar-contrib</artifactId>
+ <version>${project.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>*</groupId>
+ <artifactId>*</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <!-- replace with your jdbc driver dependency here -->
+ <dependency>
+ <groupId>org.hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>2.3.1</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jooq</groupId>
+ <artifactId>jooq</artifactId>
+ <version>3.6.4</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.codehaus.janino</groupId>
+ <artifactId>janino</artifactId>
+ <version>2.7.8</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.codehaus.janino</groupId>
+ <artifactId>commons-compiler</artifactId>
+ <version>2.7.8</version>
+ </dependency>
+
+ <dependency>
+ <groupId>net.sf.supercsv</groupId>
+ <artifactId>super-csv</artifactId>
+ <version>2.4.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.hsqldb</groupId>
+ <artifactId>hsqldb</artifactId>
+ <version>2.3.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/examples/jdbcToJdbc/src/assemble/appPackage.xml b/examples/jdbc/src/assemble/appPackage.xml
similarity index 100%
rename from examples/jdbcToJdbc/src/assemble/appPackage.xml
rename to examples/jdbc/src/assemble/appPackage.xml
diff --git a/examples/fileToJdbc/src/main/java/com/example/FileToJdbcApp/CustomParser.java b/examples/jdbc/src/main/java/org/apache/apex/examples/FileToJdbcApp/CustomParser.java
similarity index 98%
rename from examples/fileToJdbc/src/main/java/com/example/FileToJdbcApp/CustomParser.java
rename to examples/jdbc/src/main/java/org/apache/apex/examples/FileToJdbcApp/CustomParser.java
index e089255..a22acc9 100755
--- a/examples/fileToJdbc/src/main/java/com/example/FileToJdbcApp/CustomParser.java
+++ b/examples/jdbc/src/main/java/org/apache/apex/examples/FileToJdbcApp/CustomParser.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package com.example.FileToJdbcApp;
+package org.apache.apex.examples.FileToJdbcApp;
import com.datatorrent.api.Context.OperatorContext;
import com.datatorrent.api.DefaultInputPort;
diff --git a/examples/fileToJdbc/src/main/java/com/example/FileToJdbcApp/FileReader.java b/examples/jdbc/src/main/java/org/apache/apex/examples/FileToJdbcApp/FileReader.java
similarity index 90%
rename from examples/fileToJdbc/src/main/java/com/example/FileToJdbcApp/FileReader.java
rename to examples/jdbc/src/main/java/org/apache/apex/examples/FileToJdbcApp/FileReader.java
index 201c705..4065a5f 100755
--- a/examples/fileToJdbc/src/main/java/com/example/FileToJdbcApp/FileReader.java
+++ b/examples/jdbc/src/main/java/org/apache/apex/examples/FileToJdbcApp/FileReader.java
@@ -1,4 +1,4 @@
-package com.example.FileToJdbcApp;
+package org.apache.apex.examples.FileToJdbcApp;
import com.datatorrent.api.DefaultOutputPort;
import org.apache.apex.malhar.lib.fs.LineByLineFileInputOperator;
diff --git a/examples/fileToJdbc/src/main/java/com/example/FileToJdbcApp/FileToJdbcCsvParser.java b/examples/jdbc/src/main/java/org/apache/apex/examples/FileToJdbcApp/FileToJdbcCsvParser.java
similarity index 97%
rename from examples/fileToJdbc/src/main/java/com/example/FileToJdbcApp/FileToJdbcCsvParser.java
rename to examples/jdbc/src/main/java/org/apache/apex/examples/FileToJdbcApp/FileToJdbcCsvParser.java
index 23d3f36..d60b275 100755
--- a/examples/fileToJdbc/src/main/java/com/example/FileToJdbcApp/FileToJdbcCsvParser.java
+++ b/examples/jdbc/src/main/java/org/apache/apex/examples/FileToJdbcApp/FileToJdbcCsvParser.java
@@ -1,4 +1,10 @@
-package com.example.FileToJdbcApp;
+package org.apache.apex.examples.FileToJdbcApp;
+
+import java.util.List;
+
+import org.apache.hadoop.conf.Configuration;
+
+import com.google.common.collect.Lists;
import com.datatorrent.api.DAG;
import com.datatorrent.api.StreamingApplication;
@@ -8,10 +14,6 @@
import com.datatorrent.lib.db.jdbc.JdbcFieldInfo;
import com.datatorrent.lib.db.jdbc.JdbcPOJOInsertOutputOperator;
import com.datatorrent.lib.db.jdbc.JdbcTransactionalStore;
-import com.google.common.collect.Lists;
-import org.apache.hadoop.conf.Configuration;
-
-import java.util.List;
import static java.sql.Types.INTEGER;
import static java.sql.Types.VARCHAR;
diff --git a/examples/fileToJdbc/src/main/java/com/example/FileToJdbcApp/FileToJdbcCustomParser.java b/examples/jdbc/src/main/java/org/apache/apex/examples/FileToJdbcApp/FileToJdbcCustomParser.java
similarity index 97%
rename from examples/fileToJdbc/src/main/java/com/example/FileToJdbcApp/FileToJdbcCustomParser.java
rename to examples/jdbc/src/main/java/org/apache/apex/examples/FileToJdbcApp/FileToJdbcCustomParser.java
index c13377f..42d1d23 100755
--- a/examples/fileToJdbc/src/main/java/com/example/FileToJdbcApp/FileToJdbcCustomParser.java
+++ b/examples/jdbc/src/main/java/org/apache/apex/examples/FileToJdbcApp/FileToJdbcCustomParser.java
@@ -1,4 +1,4 @@
-package com.example.FileToJdbcApp;
+package org.apache.apex.examples.FileToJdbcApp;
import com.datatorrent.api.DAG;
import com.datatorrent.api.StreamingApplication;
diff --git a/examples/fileToJdbc/src/main/java/com/example/FileToJdbcApp/PojoEvent.java b/examples/jdbc/src/main/java/org/apache/apex/examples/FileToJdbcApp/PojoEvent.java
similarity index 92%
copy from examples/fileToJdbc/src/main/java/com/example/FileToJdbcApp/PojoEvent.java
copy to examples/jdbc/src/main/java/org/apache/apex/examples/FileToJdbcApp/PojoEvent.java
index 7985b45..6de9274 100755
--- a/examples/fileToJdbc/src/main/java/com/example/FileToJdbcApp/PojoEvent.java
+++ b/examples/jdbc/src/main/java/org/apache/apex/examples/FileToJdbcApp/PojoEvent.java
@@ -1,4 +1,4 @@
-package com.example.FileToJdbcApp;
+package org.apache.apex.examples.FileToJdbcApp;
public class PojoEvent
{
diff --git a/examples/jdbcIngest/src/main/java/com/example/mydtapp/FileLineOutputOperator.java b/examples/jdbc/src/main/java/org/apache/apex/examples/JdbcIngest/FileLineOutputOperator.java
similarity index 95%
rename from examples/jdbcIngest/src/main/java/com/example/mydtapp/FileLineOutputOperator.java
rename to examples/jdbc/src/main/java/org/apache/apex/examples/JdbcIngest/FileLineOutputOperator.java
index e155f23..93bd8a4 100644
--- a/examples/jdbcIngest/src/main/java/com/example/mydtapp/FileLineOutputOperator.java
+++ b/examples/jdbc/src/main/java/org/apache/apex/examples/JdbcIngest/FileLineOutputOperator.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package com.example.mydtapp;
+package org.apache.apex.examples.JdbcIngest;
import com.datatorrent.lib.io.fs.AbstractFileOutputOperator;
diff --git a/examples/jdbcIngest/src/main/java/com/example/mydtapp/JdbcHDFSApp.java b/examples/jdbc/src/main/java/org/apache/apex/examples/JdbcIngest/JdbcHDFSApp.java
similarity index 96%
rename from examples/jdbcIngest/src/main/java/com/example/mydtapp/JdbcHDFSApp.java
rename to examples/jdbc/src/main/java/org/apache/apex/examples/JdbcIngest/JdbcHDFSApp.java
index 5605bcf..5e1efff 100644
--- a/examples/jdbcIngest/src/main/java/com/example/mydtapp/JdbcHDFSApp.java
+++ b/examples/jdbc/src/main/java/org/apache/apex/examples/JdbcIngest/JdbcHDFSApp.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package com.example.mydtapp;
+package org.apache.apex.examples.JdbcIngest;
import java.util.List;
@@ -24,7 +24,6 @@
import com.google.common.collect.Lists;
-import com.datatorrent.api.Context;
import com.datatorrent.api.DAG;
import com.datatorrent.api.DAG.Locality;
import com.datatorrent.api.StreamingApplication;
@@ -60,7 +59,7 @@
}
/**
- * This method can be modified to have field mappings based on used defined
+ * This method can be modified to have field mappings based on user defined
* class
*/
private List<FieldInfo> addFieldInfos()
diff --git a/examples/jdbcIngest/src/main/java/com/example/mydtapp/JdbcPollerApplication.java b/examples/jdbc/src/main/java/org/apache/apex/examples/JdbcIngest/JdbcPollerApplication.java
similarity index 96%
rename from examples/jdbcIngest/src/main/java/com/example/mydtapp/JdbcPollerApplication.java
rename to examples/jdbc/src/main/java/org/apache/apex/examples/JdbcIngest/JdbcPollerApplication.java
index 54d71f7..de47ef4 100644
--- a/examples/jdbcIngest/src/main/java/com/example/mydtapp/JdbcPollerApplication.java
+++ b/examples/jdbc/src/main/java/org/apache/apex/examples/JdbcIngest/JdbcPollerApplication.java
@@ -1,9 +1,11 @@
-package com.example.mydtapp;
+package org.apache.apex.examples.JdbcIngest;
import java.util.List;
import org.apache.hadoop.conf.Configuration;
+import com.google.common.collect.Lists;
+
import com.datatorrent.api.Context.PortContext;
import com.datatorrent.api.DAG;
import com.datatorrent.api.StreamingApplication;
@@ -12,7 +14,6 @@
import com.datatorrent.lib.db.jdbc.JdbcStore;
import com.datatorrent.lib.util.FieldInfo;
import com.datatorrent.lib.util.FieldInfo.SupportType;
-import com.google.common.collect.Lists;
@ApplicationAnnotation(name = "PollJdbcToHDFSApp")
public class JdbcPollerApplication implements StreamingApplication
diff --git a/examples/fileToJdbc/src/main/java/com/example/FileToJdbcApp/PojoEvent.java b/examples/jdbc/src/main/java/org/apache/apex/examples/JdbcIngest/PojoEvent.java
old mode 100755
new mode 100644
similarity index 93%
rename from examples/fileToJdbc/src/main/java/com/example/FileToJdbcApp/PojoEvent.java
rename to examples/jdbc/src/main/java/org/apache/apex/examples/JdbcIngest/PojoEvent.java
index 7985b45..be366b6
--- a/examples/fileToJdbc/src/main/java/com/example/FileToJdbcApp/PojoEvent.java
+++ b/examples/jdbc/src/main/java/org/apache/apex/examples/JdbcIngest/PojoEvent.java
@@ -1,4 +1,4 @@
-package com.example.FileToJdbcApp;
+package org.apache.apex.examples.JdbcIngest;
public class PojoEvent
{
@@ -42,4 +42,3 @@
this.amount = amount;
}
}
-
diff --git a/examples/jdbcToJdbc/src/main/java/com/example/mydtapp/JdbcToJdbcApp.java b/examples/jdbc/src/main/java/org/apache/apex/examples/JdbcToJdbc/JdbcToJdbcApp.java
similarity index 98%
rename from examples/jdbcToJdbc/src/main/java/com/example/mydtapp/JdbcToJdbcApp.java
rename to examples/jdbc/src/main/java/org/apache/apex/examples/JdbcToJdbc/JdbcToJdbcApp.java
index 6dffa87..e85e4af 100644
--- a/examples/jdbcToJdbc/src/main/java/com/example/mydtapp/JdbcToJdbcApp.java
+++ b/examples/jdbc/src/main/java/org/apache/apex/examples/JdbcToJdbc/JdbcToJdbcApp.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package com.example.mydtapp;
+package org.apache.apex.examples.JdbcToJdbc;
import java.util.List;
diff --git a/examples/jdbcToJdbc/src/main/java/com/example/mydtapp/PojoEvent.java b/examples/jdbc/src/main/java/org/apache/apex/examples/JdbcToJdbc/PojoEvent.java
similarity index 93%
rename from examples/jdbcToJdbc/src/main/java/com/example/mydtapp/PojoEvent.java
rename to examples/jdbc/src/main/java/org/apache/apex/examples/JdbcToJdbc/PojoEvent.java
index 5154db3..0abf74d 100644
--- a/examples/jdbcToJdbc/src/main/java/com/example/mydtapp/PojoEvent.java
+++ b/examples/jdbc/src/main/java/org/apache/apex/examples/JdbcToJdbc/PojoEvent.java
@@ -1,4 +1,4 @@
-package com.example.mydtapp;
+package org.apache.apex.examples.JdbcToJdbc;
public class PojoEvent
{
diff --git a/examples/fileToJdbc/src/main/resources/META-INF/properties.xml b/examples/jdbc/src/main/resources/META-INF/properties-FileToJdbcApp.xml
similarity index 62%
rename from examples/fileToJdbc/src/main/resources/META-INF/properties.xml
rename to examples/jdbc/src/main/resources/META-INF/properties-FileToJdbcApp.xml
index 4f706c4..29b911b 100755
--- a/examples/fileToJdbc/src/main/resources/META-INF/properties.xml
+++ b/examples/jdbc/src/main/resources/META-INF/properties-FileToJdbcApp.xml
@@ -2,23 +2,25 @@
<configuration>
<property>
<name>dt.operator.JdbcOutput.prop.store.databaseDriver</name>
- <value>com.mysql.jdbc.Driver</value>
+ <!-- replace value with your jbdc driver -->
+ <value>org.hsqldb.jdbcDriver</value>
</property>
<property>
<name>dt.operator.JdbcOutput.prop.store.databaseUrl</name>
- <value>jdbc:mysql://hostName:portNumber/dbName</value>
+ <!-- replace value with your jbdc url -->
+ <value>jdbc:hsqldb:mem:test</value>
</property>
- <property>
+ <!--property>
<name>dt.operator.JdbcOutput.prop.store.userName</name>
- <value>root</value>
+ <value>username</value>
</property>
<property>
<name>dt.operator.JdbcOutput.prop.store.password</name>
<value>password</value>
- </property>
+ </property-->
<property>
<name>dt.operator.JdbcOutput.prop.batchSize</name>
@@ -32,17 +34,23 @@
<property>
<name>dt.operator.JdbcOutput.port.input.attr.TUPLE_CLASS</name>
- <value>com.example.FileToJdbcApp.PojoEvent</value>
+ <value>org.apache.apex.examples.FileToJdbcApp.PojoEvent</value>
+ </property>
+
+ <property>
+ <name>dt.operator.CsvParser.port.out.attr.TUPLE_CLASS</name>
+ <value>org.apache.apex.examples.FileToJdbcApp.PojoEvent</value>
+ </property>
+
+ <property>
+ <name>dt.operator.CustomParser.prop.regexStr</name>
+ <value>,</value>
</property>
<property>
<name>dt.operator.FileReader.prop.directory</name>
<value>input_directory</value>
</property>
-
- <property>
- <name>dt.loggers.level</name>
- <value>com.datatorrent.*:INFO,org.apache.*:INFO</value>
- </property>
+
</configuration>
diff --git a/examples/jdbcToJdbc/src/main/resources/META-INF/properties.xml b/examples/jdbc/src/main/resources/META-INF/properties-JdbcToJdbcApp.xml
similarity index 60%
rename from examples/jdbcToJdbc/src/main/resources/META-INF/properties.xml
rename to examples/jdbc/src/main/resources/META-INF/properties-JdbcToJdbcApp.xml
index 904d297..d9199c6 100644
--- a/examples/jdbcToJdbc/src/main/resources/META-INF/properties.xml
+++ b/examples/jdbc/src/main/resources/META-INF/properties-JdbcToJdbcApp.xml
@@ -8,35 +8,35 @@
<!-- JDBC driver in use -->
<property>
- <name>dt.application.JdbcToJdbcApp.operator.JdbcInput.prop.store.databaseDriver
- </name>
+ <name>dt.operator.JdbcInput.prop.store.databaseDriver</name>
+ <!-- replace value with your jbdc driver -->
<value>org.hsqldb.jdbcDriver</value>
</property>
<!-- URL to connect to the DB master -->
<property>
- <name>dt.application.JdbcToJdbcApp.operator.JdbcInput.prop.store.databaseUrl
- </name>
+ <name>dt.operator.JdbcInput.prop.store.databaseUrl</name>
+ <!-- replace value with your jbdc url -->
<value>jdbc:hsqldb:mem:test</value>
</property>
<!-- # rows that the operator can retrieve in a window -->
<property>
- <name>dt.application.JdbcToJdbcApp.operator.JdbcInput.prop.fetchSize
+ <name>dt.operator.JdbcInput.prop.fetchSize
</name>
<value>120</value>
</property>
<!-- POJO class -->
<property>
- <name>dt.application.JdbcToJdbcApp.operator.JdbcInput.port.outputPort.attr.TUPLE_CLASS
+ <name>dt.operator.JdbcInput.port.outputPort.attr.TUPLE_CLASS
</name>
- <value>com.example.mydtapp.PojoEvent</value>
+ <value>org.apache.apex.examples.JdbcToJdbc.PojoEvent</value>
</property>
<!-- Query to fetch data -->
<property>
- <name>dt.application.JdbcToJdbcApp.operator.JdbcInput.prop.query
+ <name>dt.operator.JdbcInput.prop.query
</name>
<value>select * from test_event_table
</value>
@@ -44,44 +44,44 @@
<!-- Input Table name -->
<property>
- <name>dt.application.JdbcToJdbcApp.operator.JdbcInput.prop.tableName
+ <name>dt.operator.JdbcInput.prop.tableName
</name>
<value>test_event_table</value>
</property>
<!-- JDBC driver in use -->
<property>
- <name>dt.application.JdbcToJdbcApp.operator.JdbcOutput.prop.store.databaseDriver
- </name>
+ <name>dt.operator.JdbcOutput.prop.store.databaseDriver</name>
+ <!-- replace value with your jbdc driver -->
<value>org.hsqldb.jdbcDriver</value>
</property>
<!-- URL to connect to the DB master -->
<property>
- <name>dt.application.JdbcToJdbcApp.operator.JdbcOutput.prop.store.databaseUrl
- </name>
+ <name>dt.operator.JdbcOutput.prop.store.databaseUrl</name>
+ <!-- replace value with your jbdc url -->
<value>jdbc:hsqldb:mem:test</value>
</property>
<!-- # rows that the operator can retrieve in a window -->
<property>
- <name>dt.application.JdbcToJdbcApp.operator.JdbcOutput.prop.batchSize
+ <name>dt.operator.JdbcOutput.prop.batchSize
</name>
<value>5</value>
</property>
<!-- Output Table name -->
<property>
- <name>dt.application.JdbcToJdbcApp.operator.JdbcOutput.prop.tablename
+ <name>dt.operator.JdbcOutput.prop.tablename
</name>
<value>test_output_event_table</value>
</property>
<!-- POJO class -->
<property>
- <name>dt.application.JdbcToJdbcApp.operator.JdbcOutput.port.input.attr.TUPLE_CLASS
+ <name>dt.operator.JdbcOutput.port.input.attr.TUPLE_CLASS
</name>
- <value>com.example.mydtapp.PojoEvent</value>
+ <value>org.apache.apex.examples.JdbcToJdbc.PojoEvent</value>
</property>
</configuration>
diff --git a/examples/jdbc/src/main/resources/META-INF/properties-PollJdbcToHDFSApp.xml b/examples/jdbc/src/main/resources/META-INF/properties-PollJdbcToHDFSApp.xml
new file mode 100644
index 0000000..b67f845
--- /dev/null
+++ b/examples/jdbc/src/main/resources/META-INF/properties-PollJdbcToHDFSApp.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0"?>
+<configuration>
+ <!-- Static partitioning, specify the partition count, this decides how
+ many ranges would be initiated -->
+ <property>
+ <name>dt.application.operator.JdbcPoller.prop.partitionCount</name>
+ <value>2</value>
+ </property>
+
+ <property>
+ <name>dt.application.operator.JdbcPoller.prop.store.databaseDriver</name>
+ <!-- replace value with your jbdc driver -->
+ <value>org.hsqldb.jdbcDriver</value>
+ </property>
+
+ <property>
+ <name>dt.application.operator.JdbcPoller.prop.store.databaseUrl</name>
+ <!-- replace value with your jbdc url -->
+ <value>jdbc:hsqldb:mem:test</value>
+ </property>
+
+ <!--property>
+ <name>dt.application.operator.JdbcPoller.prop.store.userName</name>
+ <value>username</value>
+ </property>
+
+ <property>
+ <name>dt.application.operator.JdbcPoller.prop.store.password</name>
+ <value>password</value>
+ </property-->
+
+ <!-- Batch size for poller -->
+ <property>
+ <name>dt.application.operator.JdbcPoller.prop.batchSize</name>
+ <value>50</value>
+ </property>
+
+ <!-- look-up key for forming range queries, this would be the column name
+ on which the table is sorted -->
+ <property>
+ <name>dt.application.operator.JdbcPoller.prop.key</name>
+ <value>ACCOUNT_NO</value>
+ </property>
+
+ <property>
+ <name>dt.application.operator.JdbcPoller.prop.columnsExpression</name>
+ <value>ACCOUNT_NO,NAME,AMOUNT</value>
+ </property>
+ <property>
+ <name>dt.application.operator.JdbcPoller.port.outputPort.attr.TUPLE_CLASS</name>
+ <value>org.apache.apex.examples.JdbcIngest.PojoEvent</value>
+ </property>
+
+ <!-- Table name -->
+ <property>
+ <name>dt.application.operator.JdbcPoller.prop.tableName</name>
+ <value>test_event_table</value>
+ </property>
+
+ <property>
+ <name>dt.application.operator.JdbcPoller.prop.pollInterval</name>
+ <value>1000</value>
+ </property>
+
+ <!-- Output folder for HDFS output operator -->
+ <property>
+ <name>dt.application.operator.Writer.filePath</name>
+ <value>/tmp/test/output</value>
+ </property>
+
+</configuration>
diff --git a/examples/jdbcIngest/src/main/resources/META-INF/properties-SimpleJdbcToHDFSApp.xml b/examples/jdbc/src/main/resources/META-INF/properties-SimpleJdbcToHDFSApp.xml
similarity index 89%
rename from examples/jdbcIngest/src/main/resources/META-INF/properties-SimpleJdbcToHDFSApp.xml
rename to examples/jdbc/src/main/resources/META-INF/properties-SimpleJdbcToHDFSApp.xml
index 9fce7f8..589dbcd 100644
--- a/examples/jdbcIngest/src/main/resources/META-INF/properties-SimpleJdbcToHDFSApp.xml
+++ b/examples/jdbc/src/main/resources/META-INF/properties-SimpleJdbcToHDFSApp.xml
@@ -8,15 +8,15 @@
<!-- JDBC driver in use -->
<property>
- <name>dt.application.SimpleJdbcToHDFSApp.operator.JdbcInput.prop.store.databaseDriver
- </name>
+ <name>dt.application.SimpleJdbcToHDFSApp.operator.JdbcInput.prop.store.databaseDriver</name>
+ <!-- replace value with your jbdc driver -->
<value>org.hsqldb.jdbcDriver</value>
</property>
<!-- URL to connect to the DB master -->
<property>
- <name>dt.application.SimpleJdbcToHDFSApp.operator.JdbcInput.prop.store.databaseUrl
- </name>
+ <name>dt.application.SimpleJdbcToHDFSApp.operator.JdbcInput.prop.store.databaseUrl</name>
+ <!-- replace value with your jbdc url -->
<value>jdbc:hsqldb:mem:test</value>
</property>
@@ -46,7 +46,7 @@
<property>
<name>dt.application.SimpleJdbcToHDFSApp.operator.JdbcInput.port.outputPort.attr.TUPLE_CLASS
</name>
- <value>com.example.mydtapp.PojoEvent</value>
+ <value>org.apache.apex.examples.JdbcIngest.PojoEvent</value>
</property>
<!-- Output folder for HDFS output operator -->
diff --git a/examples/fileToJdbc/src/main/resources/schema.json b/examples/jdbc/src/main/resources/schema.json
similarity index 100%
rename from examples/fileToJdbc/src/main/resources/schema.json
rename to examples/jdbc/src/main/resources/schema.json
diff --git a/examples/fileToJdbc/src/test/java/com/example/FileToJdbcApp/ApplicationTest.java b/examples/jdbc/src/test/java/org/apache/apex/examples/FileToJdbcApp/ApplicationTest.java
similarity index 90%
rename from examples/fileToJdbc/src/test/java/com/example/FileToJdbcApp/ApplicationTest.java
rename to examples/jdbc/src/test/java/org/apache/apex/examples/FileToJdbcApp/ApplicationTest.java
index 806bf2e..3024836 100755
--- a/examples/fileToJdbc/src/test/java/com/example/FileToJdbcApp/ApplicationTest.java
+++ b/examples/jdbc/src/test/java/org/apache/apex/examples/FileToJdbcApp/ApplicationTest.java
@@ -1,17 +1,24 @@
-package com.example.FileToJdbcApp;
+package org.apache.apex.examples.FileToJdbcApp;
-import com.datatorrent.api.LocalMode;
-import com.datatorrent.lib.db.jdbc.JdbcTransactionalStore;
-import com.datatorrent.netlet.util.DTThrowable;
-import org.apache.hadoop.conf.Configuration;
+import java.io.File;
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+
+import javax.validation.ConstraintViolationException;
+
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
-import javax.validation.ConstraintViolationException;
-import java.io.File;
-import java.io.IOException;
-import java.sql.*;
+import org.apache.hadoop.conf.Configuration;
+
+import com.datatorrent.api.LocalMode;
+import com.datatorrent.lib.db.jdbc.JdbcTransactionalStore;
+import com.datatorrent.netlet.util.DTThrowable;
/**
* Test the DAG declaration in local mode.<br>
@@ -82,7 +89,7 @@
try {
LocalMode lma = LocalMode.newInstance();
Configuration conf = new Configuration(false);
- conf.addResource(new File("src/test/resources/test.xml").toURI().toURL());
+ conf.addResource(new File("src/test/resources/test-FileToJdbcApp.xml").toURI().toURL());
lma.prepareDAG(new FileToJdbcCsvParser(), conf);
LocalMode.Controller lc = lma.getController();
@@ -104,7 +111,7 @@
try {
LocalMode lma = LocalMode.newInstance();
Configuration conf = new Configuration(false);
- conf.addResource(new File("src/test/resources/test.xml").toURI().toURL());
+ conf.addResource(new File("src/test/resources/test-FileToJdbcApp.xml").toURI().toURL());
lma.prepareDAG(new FileToJdbcCustomParser(), conf);
LocalMode.Controller lc = lma.getController();
diff --git a/examples/jdbcIngest/src/test/java/com/example/mydtapp/ApplicationTest.java b/examples/jdbc/src/test/java/org/apache/apex/examples/JdbcIngest/ApplicationTest.java
similarity index 97%
rename from examples/jdbcIngest/src/test/java/com/example/mydtapp/ApplicationTest.java
rename to examples/jdbc/src/test/java/org/apache/apex/examples/JdbcIngest/ApplicationTest.java
index fb78944..080eae8 100644
--- a/examples/jdbcIngest/src/test/java/com/example/mydtapp/ApplicationTest.java
+++ b/examples/jdbc/src/test/java/org/apache/apex/examples/JdbcIngest/ApplicationTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package com.example.mydtapp;
+package org.apache.apex.examples.JdbcIngest;
import java.io.IOException;
diff --git a/examples/jdbcIngest/src/test/java/com/example/mydtapp/JdbcInputAppTest.java b/examples/jdbc/src/test/java/org/apache/apex/examples/JdbcIngest/JdbcInputAppTest.java
similarity index 98%
rename from examples/jdbcIngest/src/test/java/com/example/mydtapp/JdbcInputAppTest.java
rename to examples/jdbc/src/test/java/org/apache/apex/examples/JdbcIngest/JdbcInputAppTest.java
index 1d95f4d..574534f 100644
--- a/examples/jdbcIngest/src/test/java/com/example/mydtapp/JdbcInputAppTest.java
+++ b/examples/jdbc/src/test/java/org/apache/apex/examples/JdbcIngest/JdbcInputAppTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package com.example.mydtapp;
+package org.apache.apex.examples.JdbcIngest;
import java.io.File;
import java.io.IOException;
diff --git a/examples/jdbcIngest/src/test/java/com/example/mydtapp/JdbcPollerApplicationTest.java b/examples/jdbc/src/test/java/org/apache/apex/examples/JdbcIngest/JdbcPollerApplicationTest.java
similarity index 92%
rename from examples/jdbcIngest/src/test/java/com/example/mydtapp/JdbcPollerApplicationTest.java
rename to examples/jdbc/src/test/java/org/apache/apex/examples/JdbcIngest/JdbcPollerApplicationTest.java
index b96d4ae..91c8f27 100644
--- a/examples/jdbcIngest/src/test/java/com/example/mydtapp/JdbcPollerApplicationTest.java
+++ b/examples/jdbc/src/test/java/org/apache/apex/examples/JdbcIngest/JdbcPollerApplicationTest.java
@@ -1,4 +1,4 @@
-package com.example.mydtapp;
+package org.apache.apex.examples.JdbcIngest;
import java.io.File;
import java.io.IOException;
@@ -11,13 +11,14 @@
import javax.validation.ConstraintViolationException;
-import org.apache.commons.io.FileUtils;
-import org.apache.hadoop.conf.Configuration;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.apache.commons.io.FileUtils;
+import org.apache.hadoop.conf.Configuration;
+
import com.datatorrent.api.LocalMode;
public class JdbcPollerApplicationTest
@@ -32,6 +33,7 @@
{
try {
cleanup();
+ dropTable();
} catch (Exception e) {
throw new RuntimeException(e);
}
@@ -41,10 +43,9 @@
Connection con = DriverManager.getConnection(URL);
Statement stmt = con.createStatement();
- String createTable = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME
+ String createTable = "CREATE TABLE " + TABLE_NAME
+ " (ACCOUNT_NO INTEGER, NAME VARCHAR(255),AMOUNT INTEGER)";
stmt.executeUpdate(createTable);
- cleanTable();
insertEventsInTable(10, 0);
} catch (Exception e) {
throw new RuntimeException(e);
@@ -61,12 +62,12 @@
}
}
- public static void cleanTable()
+ public static void dropTable()
{
try {
Connection con = DriverManager.getConnection(URL);
Statement stmt = con.createStatement();
- String cleanTable = "delete from " + TABLE_NAME;
+ String cleanTable = "DROP TABLE IF EXISTS " + TABLE_NAME;
stmt.executeUpdate(cleanTable);
} catch (SQLException e) {
throw new RuntimeException(e);
@@ -103,7 +104,7 @@
conf.set("dt.application.PollJdbcToHDFSApp.operator.JdbcPoller.prop.columnsExpression", "ACCOUNT_NO,NAME,AMOUNT");
conf.set("dt.application.PollJdbcToHDFSApp.operator.JdbcPoller.prop.tableName", TABLE_NAME);
conf.set("dt.application.PollJdbcToHDFSApp.operator.JdbcPoller.port.outputPort.attr.TUPLE_CLASS",
- "com.example.mydtapp.PojoEvent");
+ "org.apache.apex.examples.JdbcIngest.PojoEvent");
conf.set("dt.application.PollJdbcToHDFSApp.operator.Writer.filePath", OUTPUT_DIR_NAME);
lma.prepareDAG(new JdbcPollerApplication(), conf);
@@ -111,7 +112,7 @@
lc.runAsync();
// wait for output files to roll
- Thread.sleep(5000);
+ Thread.sleep(45000);
String[] extensions = { "dat.0", "tmp" };
Collection<File> list = FileUtils.listFiles(new File(OUTPUT_DIR_NAME), extensions, false);
diff --git a/examples/jdbcToJdbc/src/test/java/com/example/mydtapp/ApplicationTest.java b/examples/jdbc/src/test/java/org/apache/apex/examples/JdbcToJdbc/ApplicationTest.java
similarity index 92%
rename from examples/jdbcToJdbc/src/test/java/com/example/mydtapp/ApplicationTest.java
rename to examples/jdbc/src/test/java/org/apache/apex/examples/JdbcToJdbc/ApplicationTest.java
index ea4c345..79c7235 100644
--- a/examples/jdbcToJdbc/src/test/java/com/example/mydtapp/ApplicationTest.java
+++ b/examples/jdbc/src/test/java/org/apache/apex/examples/JdbcToJdbc/ApplicationTest.java
@@ -1,7 +1,7 @@
/**
* Put your copyright and license info here.
*/
-package com.example.mydtapp;
+package org.apache.apex.examples.JdbcToJdbc;
import java.io.IOException;
@@ -30,7 +30,7 @@
try {
LocalMode lma = LocalMode.newInstance();
Configuration conf = new Configuration(false);
- conf.addResource(this.getClass().getResourceAsStream("/META-INF/properties.xml"));
+ conf.addResource(this.getClass().getResourceAsStream("/META-INF/properties-JdbcToJdbcApp.xml"));
lma.prepareDAG(new JdbcToJdbcApp(), conf);
LocalMode.Controller lc = lma.getController();
lc.run(50000); // runs for 10 seconds and quits
diff --git a/examples/jdbcToJdbc/src/test/java/com/example/mydtapp/JdbcOperatorTest.java b/examples/jdbc/src/test/java/org/apache/apex/examples/JdbcToJdbc/JdbcOperatorTest.java
similarity index 90%
rename from examples/jdbcToJdbc/src/test/java/com/example/mydtapp/JdbcOperatorTest.java
rename to examples/jdbc/src/test/java/org/apache/apex/examples/JdbcToJdbc/JdbcOperatorTest.java
index f4709ba..4ecc52d 100644
--- a/examples/jdbcToJdbc/src/test/java/com/example/mydtapp/JdbcOperatorTest.java
+++ b/examples/jdbc/src/test/java/org/apache/apex/examples/JdbcToJdbc/JdbcOperatorTest.java
@@ -16,7 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
-package com.example.mydtapp;
+package org.apache.apex.examples.JdbcToJdbc;
import java.sql.Connection;
import java.sql.DriverManager;
@@ -53,7 +53,12 @@
@BeforeClass
public static void setup()
{
-
+ try {
+ dropTable();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+
try {
Class.forName(DB_DRIVER).newInstance();
@@ -70,12 +75,12 @@
System.out.println(createMetaTable);
stmt.executeUpdate(createMetaTable);
- String createTable = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME
+ String createTable = "CREATE TABLE " + TABLE_NAME
+ " (ACCOUNT_NO INTEGER, NAME VARCHAR(255),AMOUNT INTEGER)";
stmt.executeUpdate(createTable);
insertEventsInTable(10, 0);
- String createOutputTable = "CREATE TABLE IF NOT EXISTS " + OUTPUT_TABLE_NAME
+ String createOutputTable = "CREATE TABLE " + OUTPUT_TABLE_NAME
+ " (ACCOUNT_NO INTEGER, NAME VARCHAR(255),AMOUNT INTEGER)";
stmt.executeUpdate(createOutputTable);
} catch (Exception e) {
@@ -83,14 +88,14 @@
}
}
- public static void cleanTable()
+ public static void dropTable()
{
try {
Connection con = DriverManager.getConnection(URL);
Statement stmt = con.createStatement();
- String cleanTable = "delete from " + TABLE_NAME;
+ String cleanTable = "DROP TABLE IF EXISTS " + TABLE_NAME;
stmt.executeUpdate(cleanTable);
- String cleanOutputTable = "delete from " + OUTPUT_TABLE_NAME;
+ String cleanOutputTable = "DROP TABLE IF EXISTS " + OUTPUT_TABLE_NAME;
stmt.executeUpdate(cleanOutputTable);
} catch (SQLException e) {
@@ -137,7 +142,7 @@
try {
LocalMode lma = LocalMode.newInstance();
Configuration conf = new Configuration(false);
- conf.addResource(this.getClass().getResourceAsStream("/META-INF/properties.xml"));
+ conf.addResource(this.getClass().getResourceAsStream("/META-INF/properties-JdbcToJdbcApp.xml"));
lma.prepareDAG(new JdbcToJdbcApp(), conf);
LocalMode.Controller lc = lma.getController();
lc.runAsync();
@@ -146,7 +151,7 @@
Thread.sleep(5000);
Assert.assertEquals("Events in store", 10, getNumOfEventsInStore());
- cleanTable();
+ dropTable();
} catch (ConstraintViolationException e) {
Assert.fail("constraint violations: " + e.getConstraintViolations());
diff --git a/examples/fileToJdbc/src/test/resources/example.sql b/examples/jdbc/src/test/resources/example-FileToJdbcApp.sql
similarity index 100%
rename from examples/fileToJdbc/src/test/resources/example.sql
rename to examples/jdbc/src/test/resources/example-FileToJdbcApp.sql
diff --git a/examples/jdbcIngest/src/test/resources/example.sql b/examples/jdbc/src/test/resources/example-JdbcIngest.sql
similarity index 100%
rename from examples/jdbcIngest/src/test/resources/example.sql
rename to examples/jdbc/src/test/resources/example-JdbcIngest.sql
diff --git a/examples/jdbcToJdbc/src/test/resources/example.sql b/examples/jdbc/src/test/resources/example-JdbcToJdbc.sql
similarity index 100%
rename from examples/jdbcToJdbc/src/test/resources/example.sql
rename to examples/jdbc/src/test/resources/example-JdbcToJdbc.sql
diff --git a/examples/jdbcToJdbc/src/test/resources/log4j.properties b/examples/jdbc/src/test/resources/log4j.properties
similarity index 100%
rename from examples/jdbcToJdbc/src/test/resources/log4j.properties
rename to examples/jdbc/src/test/resources/log4j.properties
diff --git a/examples/fileToJdbc/src/test/resources/test.xml b/examples/jdbc/src/test/resources/test-FileToJdbcApp.xml
similarity index 88%
rename from examples/fileToJdbc/src/test/resources/test.xml
rename to examples/jdbc/src/test/resources/test-FileToJdbcApp.xml
index c3a49c4..477cdbf 100755
--- a/examples/fileToJdbc/src/test/resources/test.xml
+++ b/examples/jdbc/src/test/resources/test-FileToJdbcApp.xml
@@ -32,7 +32,7 @@
<property>
<name>dt.operator.JdbcOutput.port.input.attr.TUPLE_CLASS</name>
- <value>com.example.FileToJdbcApp.PojoEvent</value>
+ <value>org.apache.apex.examples.FileToJdbcApp.PojoEvent</value>
</property>
<property>
@@ -40,14 +40,14 @@
<value>src/test/resources/test-input</value>
</property>
- <property>
+ <!--property>
<name>dt.loggers.level</name>
<value>com.datatorrent.*:INFO,org.apache.*:INFO</value>
- </property>
+ </property-->
<property>
<name>dt.application.FileToJdbcCsvParser.operator.CsvParser.port.out.attr.TUPLE_CLASS</name>
- <value>com.example.FileToJdbcApp.PojoEvent</value>
+ <value>org.apache.apex.examples.FileToJdbcApp.PojoEvent</value>
</property>
<property>
diff --git a/examples/fileToJdbc/src/test/resources/test-input/sample.txt b/examples/jdbc/src/test/resources/test-input/sample-FileToJdbc.txt
similarity index 100%
rename from examples/fileToJdbc/src/test/resources/test-input/sample.txt
rename to examples/jdbc/src/test/resources/test-input/sample-FileToJdbc.txt
diff --git a/examples/jdbcIngest/.gitignore b/examples/jdbcIngest/.gitignore
deleted file mode 100644
index b83d222..0000000
--- a/examples/jdbcIngest/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/
diff --git a/examples/jdbcIngest/README.md b/examples/jdbcIngest/README.md
deleted file mode 100644
index ec01985..0000000
--- a/examples/jdbcIngest/README.md
+++ /dev/null
@@ -1,65 +0,0 @@
-## Sample mysql implementation
-
-This project contains two applications to read records from a table in `MySQL`, create POJOs and write them to a file
-in the user specified directory in HDFS.
-
-1. SimpleJdbcToHDFSApp: Reads table records as per given query and emits them as POJOs.
-2. PollJdbcToHDFSApp: Reads table records using partitions in parallel fashion also polls for newly **appended** records and emits them as POJOs.
-
-Follow these steps to run these applications:
-
-**Step 1**: Update these properties in the file `src/main/resources/META_INF/properties-<applicationName>.xml`:
-
-| Property Name | Description |
-| ------------- | ----------- |
-| dt.application.<applicationName>.operator.JdbcInput.prop.store.databaseUrl | database URL of the form `jdbc:mysql://hostName:portNumber/dbName` |
-| dt.application.<applicationName>.operator.JdbcInput.prop.store.userName | MySQL user name |
-| dt.application.<applicationName>.operator.JdbcInput.prop.store.password | MySQL user password |
-| dt.application.<applicationName>.operator.FileOutputOperator.filePath | HDFS output directory path |
-
-**Step 2**: Create database table and add entries
-
-Go to the MySQL console and run (where _{path}_ is a suitable prefix):
-
- mysql> source {path}/src/test/resources/example.sql
-
-After this, please verify that `testDev.test_event_table` is created and has 10 rows:
-
- mysql> select count(*) from testDev.test_event_table;
- +----------+
- | count(*) |
- +----------+
- | 10 |
- +----------+
-
-**Step 3**: Create HDFS output directory if not already present (_{path}_ should be the same as specified in `META_INF/properties-<applicationName>.xml`):
-
- hadoop fs -mkdir -p {path}
-
-**Step 4**: Build the code:
-
- shell> mvn clean install
-
-Upload the `target/jdbcInput-1.0-SNAPSHOT.apa` to the UI console if available or launch it from
-the commandline using `apexcli`.
-
-**Step 5**: During launch use `src/main/resources/META_INF/properties-<applicationName>.xml` as a custom configuration file; then verify
-that the output directory has the expected output:
-
- shell> hadoop fs -cat <hadoop directory path>/2_op.dat.* | wc -l
-
-This should return 10 as the count.
-
-Sample Output:
-
- hadoop fs -cat <path_to_file>/2_op.dat.0
- PojoEvent [accountNumber=1, name=User1, amount=1000]
- PojoEvent [accountNumber=2, name=User2, amount=2000]
- PojoEvent [accountNumber=3, name=User3, amount=3000]
- PojoEvent [accountNumber=4, name=User4, amount=4000]
- PojoEvent [accountNumber=5, name=User5, amount=5000]
- PojoEvent [accountNumber=6, name=User6, amount=6000]
- PojoEvent [accountNumber=7, name=User7, amount=7000]
- PojoEvent [accountNumber=8, name=User8, amount=8000]
- PojoEvent [accountNumber=9, name=User9, amount=9000]
- PojoEvent [accountNumber=10, name=User10, amount=1000]
diff --git a/examples/jdbcIngest/XmlJavadocCommentsExtractor.xsl b/examples/jdbcIngest/XmlJavadocCommentsExtractor.xsl
deleted file mode 100644
index 08075a9..0000000
--- a/examples/jdbcIngest/XmlJavadocCommentsExtractor.xsl
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed 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.
-
--->
-
-<!--
- Document : XmlJavadocCommentsExtractor.xsl
- Created on : September 16, 2014, 11:30 AM
- Description:
- The transformation strips off all information except for comments and tags from xml javadoc generated by xml-doclet.
--->
-
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
- <xsl:output method="xml" standalone="yes"/>
-
- <!-- copy xml by selecting only the following nodes, attributes and text -->
- <xsl:template match="node()|text()|@*">
- <xsl:copy>
- <xsl:apply-templates select="root|package|class|interface|method|field|type|comment|tag|text()|@name|@qualified|@text"/>
- </xsl:copy>
- </xsl:template>
-
- <!-- Strip off the following paths from the selected xml -->
- <xsl:template match="//root/package/interface/interface
- |//root/package/interface/method/@qualified
- |//root/package/class/interface
- |//root/package/class/class
- |//root/package/class/method/@qualified
- |//root/package/class/field/@qualified" />
-
- <xsl:strip-space elements="*"/>
-</xsl:stylesheet>
diff --git a/examples/jdbcIngest/pom.xml b/examples/jdbcIngest/pom.xml
deleted file mode 100644
index f9288b8..0000000
--- a/examples/jdbcIngest/pom.xml
+++ /dev/null
@@ -1,298 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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">
- <modelVersion>4.0.0</modelVersion>
-
- <groupId>com.example</groupId>
- <version>1.0-SNAPSHOT</version>
- <artifactId>jdbcInput</artifactId>
- <packaging>jar</packaging>
-
- <!-- change these to the appropriate values -->
- <name>JDBC Input Operator</name>
- <description>Example Uses of JDBC Input Operator</description>
-
- <properties>
- <!-- change this if you desire to use a different version of Apex Core -->
- <apex.version>3.5.0</apex.version>
- <apex.apppackage.classpath>lib/*.jar</apex.apppackage.classpath>
- <malhar.version>3.6.0</malhar.version>
- </properties>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-eclipse-plugin</artifactId>
- <version>2.9</version>
- <configuration>
- <downloadSources>true</downloadSources>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.3</version>
- <configuration>
- <encoding>UTF-8</encoding>
- <source>1.7</source>
- <target>1.7</target>
- <debug>true</debug>
- <optimize>false</optimize>
- <showDeprecation>true</showDeprecation>
- <showWarnings>true</showWarnings>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-dependency-plugin</artifactId>
- <version>2.8</version>
- <executions>
- <execution>
- <id>copy-dependencies</id>
- <phase>prepare-package</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <outputDirectory>target/deps</outputDirectory>
- <includeScope>runtime</includeScope>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <executions>
- <execution>
- <id>app-package-assembly</id>
- <phase>package</phase>
- <goals>
- <goal>single</goal>
- </goals>
- <configuration>
- <finalName>${project.artifactId}-${project.version}-apexapp</finalName>
- <appendAssemblyId>false</appendAssemblyId>
- <descriptors>
- <descriptor>src/assemble/appPackage.xml</descriptor>
- </descriptors>
- <archiverConfig>
- <defaultDirectoryMode>0755</defaultDirectoryMode>
- </archiverConfig>
- <archive>
- <manifestEntries>
- <Class-Path>${apex.apppackage.classpath}</Class-Path>
- <DT-Engine-Version>${apex.version}</DT-Engine-Version>
- <DT-App-Package-Group-Id>${project.groupId}</DT-App-Package-Group-Id>
- <DT-App-Package-Name>${project.artifactId}</DT-App-Package-Name>
- <DT-App-Package-Version>${project.version}</DT-App-Package-Version>
- <DT-App-Package-Display-Name>${project.name}</DT-App-Package-Display-Name>
- <DT-App-Package-Description>${project.description}</DT-App-Package-Description>
- </manifestEntries>
- </archive>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <artifactId>maven-antrun-plugin</artifactId>
- <version>1.7</version>
- <executions>
- <execution>
- <phase>package</phase>
- <configuration>
- <target>
- <move
- file="${project.build.directory}/${project.artifactId}-${project.version}-apexapp.jar"
- tofile="${project.build.directory}/${project.artifactId}-${project.version}.apa" />
- </target>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- <execution>
- <!-- create resource directory for xml javadoc -->
- <id>createJavadocDirectory</id>
- <phase>generate-resources</phase>
- <configuration>
- <tasks>
- <delete
- dir="${project.build.directory}/generated-resources/xml-javadoc" />
- <mkdir
- dir="${project.build.directory}/generated-resources/xml-javadoc" />
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>1.9.1</version>
- <executions>
- <execution>
- <id>attach-artifacts</id>
- <phase>package</phase>
- <goals>
- <goal>attach-artifact</goal>
- </goals>
- <configuration>
- <artifacts>
- <artifact>
- <file>target/${project.artifactId}-${project.version}.apa</file>
- <type>apa</type>
- </artifact>
- </artifacts>
- <skipAttach>false</skipAttach>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <!-- generate javdoc -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <executions>
- <!-- generate xml javadoc -->
- <execution>
- <id>xml-doclet</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>javadoc</goal>
- </goals>
- <configuration>
- <doclet>com.github.markusbernhardt.xmldoclet.XmlDoclet</doclet>
- <additionalparam>-d
- ${project.build.directory}/generated-resources/xml-javadoc
- -filename
- ${project.artifactId}-${project.version}-javadoc.xml</additionalparam>
- <useStandardDocletOptions>false</useStandardDocletOptions>
- <docletArtifact>
- <groupId>com.github.markusbernhardt</groupId>
- <artifactId>xml-doclet</artifactId>
- <version>1.0.4</version>
- </docletArtifact>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <!-- Transform xml javadoc to stripped down version containing only
- class/interface comments and tags -->
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>xml-maven-plugin</artifactId>
- <version>1.0</version>
- <executions>
- <execution>
- <id>transform-xmljavadoc</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>transform</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <transformationSets>
- <transformationSet>
- <dir>${project.build.directory}/generated-resources/xml-javadoc</dir>
- <includes>
- <include>${project.artifactId}-${project.version}-javadoc.xml</include>
- </includes>
- <stylesheet>XmlJavadocCommentsExtractor.xsl</stylesheet>
- <outputDir>${project.build.directory}/generated-resources/xml-javadoc</outputDir>
- </transformationSet>
- </transformationSets>
- </configuration>
- </plugin>
- <!-- copy xml javadoc to class jar -->
- <plugin>
- <artifactId>maven-resources-plugin</artifactId>
- <version>2.6</version>
- <executions>
- <execution>
- <id>copy-resources</id>
- <phase>process-resources</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <outputDirectory>${basedir}/target/classes</outputDirectory>
- <resources>
- <resource>
- <directory>${project.build.directory}/generated-resources/xml-javadoc</directory>
- <includes>
- <include>${project.artifactId}-${project.version}-javadoc.xml</include>
- </includes>
- <filtering>true</filtering>
- </resource>
- </resources>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- </plugins>
-
- </build>
-
- <dependencies>
- <!-- add your dependencies here -->
- <dependency>
- <groupId>org.apache.apex</groupId>
- <artifactId>malhar-library</artifactId>
- <version>${malhar.version}</version>
- <exclusions>
- <exclusion>
- <groupId>*</groupId>
- <artifactId>*</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.apache.apex</groupId>
- <artifactId>apex-common</artifactId>
- <version>${apex.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.10</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.apex</groupId>
- <artifactId>apex-engine</artifactId>
- <version>${apex.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.36</version>
- </dependency>
- <dependency>
- <groupId>org.jooq</groupId>
- <artifactId>jooq</artifactId>
- <version>3.6.4</version>
- </dependency>
- <dependency>
- <groupId>org.codehaus.janino</groupId>
- <artifactId>janino</artifactId>
- <version>2.7.8</version>
- </dependency>
- <dependency>
- <groupId>org.hsqldb</groupId>
- <artifactId>hsqldb</artifactId>
- <version>2.3.1</version>
- </dependency>
-
- </dependencies>
-
-</project>
diff --git a/examples/jdbcIngest/src/assemble/appPackage.xml b/examples/jdbcIngest/src/assemble/appPackage.xml
deleted file mode 100644
index 7ad071c..0000000
--- a/examples/jdbcIngest/src/assemble/appPackage.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
- <id>appPackage</id>
- <formats>
- <format>jar</format>
- </formats>
- <includeBaseDirectory>false</includeBaseDirectory>
- <fileSets>
- <fileSet>
- <directory>${basedir}/target/</directory>
- <outputDirectory>/app</outputDirectory>
- <includes>
- <include>${project.artifactId}-${project.version}.jar</include>
- </includes>
- </fileSet>
- <fileSet>
- <directory>${basedir}/target/deps</directory>
- <outputDirectory>/lib</outputDirectory>
- </fileSet>
- <fileSet>
- <directory>${basedir}/src/site/conf</directory>
- <outputDirectory>/conf</outputDirectory>
- <includes>
- <include>*.xml</include>
- </includes>
- </fileSet>
- <fileSet>
- <directory>${basedir}/src/main/resources/META-INF</directory>
- <outputDirectory>/META-INF</outputDirectory>
- </fileSet>
- <fileSet>
- <directory>${basedir}/src/main/resources/app</directory>
- <outputDirectory>/app</outputDirectory>
- </fileSet>
- <fileSet>
- <directory>${basedir}/src/main/resources/resources</directory>
- <outputDirectory>/resources</outputDirectory>
- </fileSet>
- </fileSets>
-
-</assembly>
-
diff --git a/examples/jdbcIngest/src/main/java/com/example/mydtapp/PojoEvent.java b/examples/jdbcIngest/src/main/java/com/example/mydtapp/PojoEvent.java
deleted file mode 100644
index f56522b..0000000
--- a/examples/jdbcIngest/src/main/java/com/example/mydtapp/PojoEvent.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.example.mydtapp;
-
-public class PojoEvent
-{
- @Override
- public String toString()
- {
- return "PojoEvent [accountNumber=" + accountNumber + ", name=" + name + ", amount=" + amount + "]";
- }
-
- private int accountNumber;
- private String name;
- private int amount;
-
- public int getAccountNumber()
- {
- return accountNumber;
- }
-
- public void setAccountNumber(int accountNumber)
- {
- this.accountNumber = accountNumber;
- }
-
- public String getName()
- {
- return name;
- }
-
- public void setName(String name)
- {
- this.name = name;
- }
-
- public int getAmount()
- {
- return amount;
- }
-
- public void setAmount(int amount)
- {
- this.amount = amount;
- }
-}
diff --git a/examples/jdbcIngest/src/main/resources/META-INF/properties-PollJdbcToHDFSApp.xml b/examples/jdbcIngest/src/main/resources/META-INF/properties-PollJdbcToHDFSApp.xml
deleted file mode 100644
index 6e7aaf6..0000000
--- a/examples/jdbcIngest/src/main/resources/META-INF/properties-PollJdbcToHDFSApp.xml
+++ /dev/null
@@ -1,73 +0,0 @@
-<?xml version="1.0"?>
-<configuration>
- <!-- Static partitioning, specify the partition count, this decides how
- many ranges would be initiated -->
- <property>
- <name>dt.application.PollJdbcToHDFSApp.operator.JdbcPoller.prop.partitionCount</name>
- <value>2</value>
- </property>
-
- <property>
- <name>dt.application.PollJdbcToHDFSApp.operator.JdbcPoller.prop.store.databaseDriver</name>
- <value>com.mysql.jdbc.Driver</value>
- </property>
-
- <property>
- <name>dt.application.PollJdbcToHDFSApp.operator.JdbcPoller.prop.store.databaseUrl</name>
- <value>jdbc:mysql://localhost:3306/testDev</value>
- </property>
-
- <property>
- <name>dt.application.PollJdbcToHDFSApp.operator.JdbcPoller.prop.store.userName</name>
- <value>root</value>
- </property>
-
- <property>
- <name>dt.application.PollJdbcToHDFSApp.operator.JdbcPoller.prop.store.password</name>
- <value>mysql</value>
- </property>
-
- <!-- Batch size for poller -->
- <property>
- <name>dt.application.PollJdbcToHDFSApp.operator.JdbcPoller.prop.batchSize</name>
- <value>300</value>
- </property>
-
- <!-- look-up key for forming range queries, this would be the column name
- on which the table is sorted -->
- <property>
- <name>dt.application.PollJdbcToHDFSApp.operator.JdbcPoller.prop.key</name>
- <value>ACCOUNT_NO</value>
- </property>
-
- <property>
- <name>dt.application.PollJdbcToHDFSApp.operator.JdbcPoller.prop.columnsExpression</name>
- <value>ACCOUNT_NO,NAME,AMOUNT</value>
- </property>
- <property>
- <name>dt.application.PollJdbcToHDFSApp.operator.JdbcPoller.port.outputPort.attr.TUPLE_CLASS</name>
- <value>com.example.mydtapp.PojoEvent</value>
- </property>
-
- <!-- Table name -->
- <property>
- <name>dt.application.PollJdbcToHDFSApp.operator.JdbcPoller.prop.tableName</name>
- <value>test_event_table</value>
- </property>
-
- <property>
- <name>dt.application.PollJdbcToHDFSApp.operator.JdbcPoller.prop.pollInterval</name>
- <value>1000</value>
- </property>
-
- <!-- Output folder for HDFS output operator -->
- <property>
- <name>dt.application.PollJdbcToHDFSApp.operator.Writer.filePath</name>
- <value>/tmp/test/output</value>
- </property>
-
- <property>
- <name>dt.loggers.level</name>
- <value>com.datatorrent.*:DEBUG,org.apache.*:INFO</value>
- </property>
-</configuration>
diff --git a/examples/jdbcIngest/src/test/resources/log4j.properties b/examples/jdbcIngest/src/test/resources/log4j.properties
deleted file mode 100644
index 3bfcdc5..0000000
--- a/examples/jdbcIngest/src/test/resources/log4j.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-log4j.rootLogger=DEBUG,CONSOLE
-
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n
-
-log4j.appender.RFA=org.apache.log4j.RollingFileAppender
-log4j.appender.RFA.layout=org.apache.log4j.PatternLayout
-log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c{2} %M - %m%n
-log4j.appender.RFA.File=/tmp/app.log
-
-# to enable, add SYSLOG to rootLogger
-log4j.appender.SYSLOG=org.apache.log4j.net.SyslogAppender
-log4j.appender.SYSLOG.syslogHost=127.0.0.1
-log4j.appender.SYSLOG.layout=org.apache.log4j.PatternLayout
-log4j.appender.SYSLOG.layout.conversionPattern=${dt.cid} %-5p [%t] %c{2} %x - %m%n
-log4j.appender.SYSLOG.Facility=LOCAL1
-
-log4j.logger.org=info
-#log4j.logger.org.apache.commons.beanutils=warn
-log4j.logger.com.datatorrent=debug
diff --git a/examples/jdbcToJdbc/.gitignore b/examples/jdbcToJdbc/.gitignore
deleted file mode 100644
index b83d222..0000000
--- a/examples/jdbcToJdbc/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target/
diff --git a/examples/jdbcToJdbc/README.md b/examples/jdbcToJdbc/README.md
deleted file mode 100644
index 562de69..0000000
--- a/examples/jdbcToJdbc/README.md
+++ /dev/null
@@ -1,55 +0,0 @@
-JdbcToJdbc App
-
-This application reads from a source table in MySQL, creates POJO's and writes the POJO's to another table in MySQL.
-
-Steps :
-
-Step 1 : Update the below properties in the properties file - src/site/conf/example.xml
-
-1.dt.application.JdbcToJdbcApp.operator.JdbcInput.prop.store.databaseUrl
-- data base URL of the form jdbc:mysql://hostName:portNumber/dbName
-2.dt.application.JdbcToJdbcApp.operator.JdbcInput.prop.store.userName
-- mysql user name
-3.dt.application.JdbcToJdbcApp.operator.JdbcInput.prop.store.password
-- password
-4.dt.application.JdbcToJdbcApp.operator.JdbcOutput.prop.store.databaseUrl
-- data base URL of the form jdbc:mysql://hostName:portNumber/dbName
-5.dt.application.JdbcToJdbcApp.operator.JdbcOutput.prop.store.userName
-- mysql user name
-6.dt.application.JdbcToJdbcApp.operator.JdbcOutput.prop.store.password
-- password
-
-Step 2: Create database, table and add entries
-
-Go to mysql console and run the below command,
-mysql> source <path to > src/test/resources/example.sql
-
-After this is done, please verify that testDev.test_event_table is created and has 10 rows.It will also create an output table by the name testDev.test_output_event_table
-
-mysql> select count(*) from testDev.test_event_table;
-+----------+
-| count(*) |
-+----------+
-| 10 |
-+----------+
-
-Step 3: Build the code,
-shell> mvn clean install
-
-Upload the target/jdbcInput-1.0-SNAPSHOT.apa to the gateway
-
-Step 4 : During launch use "Specify custom properties" option and select example.xml
-
-Verification :
-
-Log on to the mysql console
-
-mysql> select count(*) from testDev.test_event_table;
-+----------+
-| count(*) |
-+----------+
-| 10 |
-+----------+
-
-
-
diff --git a/examples/jdbcToJdbc/XmlJavadocCommentsExtractor.xsl b/examples/jdbcToJdbc/XmlJavadocCommentsExtractor.xsl
deleted file mode 100644
index 08075a9..0000000
--- a/examples/jdbcToJdbc/XmlJavadocCommentsExtractor.xsl
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- Licensed 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.
-
--->
-
-<!--
- Document : XmlJavadocCommentsExtractor.xsl
- Created on : September 16, 2014, 11:30 AM
- Description:
- The transformation strips off all information except for comments and tags from xml javadoc generated by xml-doclet.
--->
-
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
- <xsl:output method="xml" standalone="yes"/>
-
- <!-- copy xml by selecting only the following nodes, attributes and text -->
- <xsl:template match="node()|text()|@*">
- <xsl:copy>
- <xsl:apply-templates select="root|package|class|interface|method|field|type|comment|tag|text()|@name|@qualified|@text"/>
- </xsl:copy>
- </xsl:template>
-
- <!-- Strip off the following paths from the selected xml -->
- <xsl:template match="//root/package/interface/interface
- |//root/package/interface/method/@qualified
- |//root/package/class/interface
- |//root/package/class/class
- |//root/package/class/method/@qualified
- |//root/package/class/field/@qualified" />
-
- <xsl:strip-space elements="*"/>
-</xsl:stylesheet>
diff --git a/examples/jdbcToJdbc/pom.xml b/examples/jdbcToJdbc/pom.xml
deleted file mode 100644
index 8ed69d8..0000000
--- a/examples/jdbcToJdbc/pom.xml
+++ /dev/null
@@ -1,319 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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">
- <modelVersion>4.0.0</modelVersion>
-
- <groupId>com.example</groupId>
- <version>1.0-SNAPSHOT</version>
- <artifactId>jdbcToJdbc</artifactId>
- <packaging>jar</packaging>
-
- <!-- change these to the appropriate values -->
- <name>JDBC Input Operator</name>
- <description>Example Use of JDBC Input Operator</description>
-
- <properties>
- <!-- change this if you desire to use a different version of Apex Core -->
- <apex.version>3.5.0</apex.version>
- <apex.apppackage.classpath>lib/*.jar</apex.apppackage.classpath>
- <malhar.version>3.6.0</malhar.version>
- <apex.apppackage.classpath>lib/*.jar</apex.apppackage.classpath>
- <datatorrent.apppackage.classpath>lib/*.jar</datatorrent.apppackage.classpath>
- </properties>
- <repositories>
- <repository>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- <id>Datatorrent-Releases</id>
- <name>DataTorrent Release Repository</name>
- <url>https://www.datatorrent.com/maven/content/repositories/releases/</url>
- </repository>
- </repositories>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-eclipse-plugin</artifactId>
- <version>2.9</version>
- <configuration>
- <downloadSources>true</downloadSources>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.3</version>
- <configuration>
- <encoding>UTF-8</encoding>
- <source>1.7</source>
- <target>1.7</target>
- <debug>true</debug>
- <optimize>false</optimize>
- <showDeprecation>true</showDeprecation>
- <showWarnings>true</showWarnings>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-dependency-plugin</artifactId>
- <version>2.8</version>
- <executions>
- <execution>
- <id>copy-dependencies</id>
- <phase>prepare-package</phase>
- <goals>
- <goal>copy-dependencies</goal>
- </goals>
- <configuration>
- <outputDirectory>target/deps</outputDirectory>
- <includeScope>runtime</includeScope>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <executions>
- <execution>
- <id>app-package-assembly</id>
- <phase>package</phase>
- <goals>
- <goal>single</goal>
- </goals>
- <configuration>
- <finalName>${project.artifactId}-${project.version}-apexapp</finalName>
- <appendAssemblyId>false</appendAssemblyId>
- <descriptors>
- <descriptor>src/assemble/appPackage.xml</descriptor>
- </descriptors>
- <archiverConfig>
- <defaultDirectoryMode>0755</defaultDirectoryMode>
- </archiverConfig>
- <archive>
- <manifestEntries>
- <Class-Path>${apex.apppackage.classpath}</Class-Path>
- <DT-Engine-Version>${apex.version}</DT-Engine-Version>
- <DT-App-Package-Group-Id>${project.groupId}</DT-App-Package-Group-Id>
- <DT-App-Package-Name>${project.artifactId}</DT-App-Package-Name>
- <DT-App-Package-Version>${project.version}</DT-App-Package-Version>
- <DT-App-Package-Display-Name>${project.name}</DT-App-Package-Display-Name>
- <DT-App-Package-Description>${project.description}</DT-App-Package-Description>
- </manifestEntries>
- </archive>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <artifactId>maven-antrun-plugin</artifactId>
- <version>1.7</version>
- <executions>
- <execution>
- <phase>package</phase>
- <configuration>
- <target>
- <move
- file="${project.build.directory}/${project.artifactId}-${project.version}-apexapp.jar"
- tofile="${project.build.directory}/${project.artifactId}-${project.version}.apa" />
- </target>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- <execution>
- <!-- create resource directory for xml javadoc -->
- <id>createJavadocDirectory</id>
- <phase>generate-resources</phase>
- <configuration>
- <tasks>
- <delete
- dir="${project.build.directory}/generated-resources/xml-javadoc" />
- <mkdir
- dir="${project.build.directory}/generated-resources/xml-javadoc" />
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
-
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>1.9.1</version>
- <executions>
- <execution>
- <id>attach-artifacts</id>
- <phase>package</phase>
- <goals>
- <goal>attach-artifact</goal>
- </goals>
- <configuration>
- <artifacts>
- <artifact>
- <file>target/${project.artifactId}-${project.version}.apa</file>
- <type>apa</type>
- </artifact>
- </artifacts>
- <skipAttach>false</skipAttach>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- <!-- generate javdoc -->
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <executions>
- <!-- generate xml javadoc -->
- <execution>
- <id>xml-doclet</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>javadoc</goal>
- </goals>
- <configuration>
- <doclet>com.github.markusbernhardt.xmldoclet.XmlDoclet</doclet>
- <additionalparam>-d
- ${project.build.directory}/generated-resources/xml-javadoc
- -filename
- ${project.artifactId}-${project.version}-javadoc.xml</additionalparam>
- <useStandardDocletOptions>false</useStandardDocletOptions>
- <docletArtifact>
- <groupId>com.github.markusbernhardt</groupId>
- <artifactId>xml-doclet</artifactId>
- <version>1.0.4</version>
- </docletArtifact>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <!-- Transform xml javadoc to stripped down version containing only
- class/interface comments and tags -->
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>xml-maven-plugin</artifactId>
- <version>1.0</version>
- <executions>
- <execution>
- <id>transform-xmljavadoc</id>
- <phase>generate-resources</phase>
- <goals>
- <goal>transform</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <transformationSets>
- <transformationSet>
- <dir>${project.build.directory}/generated-resources/xml-javadoc</dir>
- <includes>
- <include>${project.artifactId}-${project.version}-javadoc.xml</include>
- </includes>
- <stylesheet>XmlJavadocCommentsExtractor.xsl</stylesheet>
- <outputDir>${project.build.directory}/generated-resources/xml-javadoc</outputDir>
- </transformationSet>
- </transformationSets>
- </configuration>
- </plugin>
- <!-- copy xml javadoc to class jar -->
- <plugin>
- <artifactId>maven-resources-plugin</artifactId>
- <version>2.6</version>
- <executions>
- <execution>
- <id>copy-resources</id>
- <phase>process-resources</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <outputDirectory>${basedir}/target/classes</outputDirectory>
- <resources>
- <resource>
- <directory>${project.build.directory}/generated-resources/xml-javadoc</directory>
- <includes>
- <include>${project.artifactId}-${project.version}-javadoc.xml</include>
- </includes>
- <filtering>true</filtering>
- </resource>
- </resources>
- </configuration>
- </execution>
- </executions>
- </plugin>
-
- </plugins>
-
- </build>
-
- <dependencies>
- <!-- add your dependencies here -->
- <dependency>
- <groupId>org.apache.apex</groupId>
- <artifactId>malhar-library</artifactId>
- <version>${malhar.version}</version>
- <!-- If you know that your application does not need transitive dependencies
- pulled in by malhar-library, uncomment the following to reduce the size of
- your app package. -->
- <exclusions>
- <exclusion>
- <groupId>*</groupId>
- <artifactId>*</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
-
- <dependency>
- <groupId>org.apache.apex</groupId>
- <artifactId>apex-common</artifactId>
- <version>${apex.version}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.10</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.apex</groupId>
- <artifactId>apex-engine</artifactId>
- <version>${apex.version}</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.36</version>
- </dependency>
-
- <dependency>
- <groupId>org.codehaus.janino</groupId>
- <artifactId>janino</artifactId>
- <version>2.7.8</version>
- </dependency>
-
- <dependency>
- <groupId>org.codehaus.janino</groupId>
- <artifactId>commons-compiler</artifactId>
- <version>2.7.8</version>
- </dependency>
-
- <dependency>
- <groupId>org.hsqldb</groupId>
- <artifactId>hsqldb</artifactId>
- <version>2.3.1</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
-</project>
diff --git a/examples/pom.xml b/examples/pom.xml
index 180d7c9..1eb405d 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -85,6 +85,7 @@
</configuration>
</execution>
</executions>
+
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
@@ -200,6 +201,7 @@
<module>kafka</module>
<module>ftp</module>
<module>s3</module>
+ <module>jdbc</module>
</modules>
<dependencies>