<?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/maven-v4_0_0.xsd">

	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>org.apache.flink</groupId>
		<artifactId>flink-contrib</artifactId>
		<version>1.5-SNAPSHOT</version>
		<relativePath>..</relativePath>
	</parent>

	<artifactId>flink-storm-examples_${scala.binary.version}</artifactId>
	<name>flink-storm-examples</name>

	<packaging>jar</packaging>


	<repositories>
		<!-- This repository is needed as a stable source for some Clojure libraries -->
		<repository>
			<id>clojars</id>
			<url>https://clojars.org/repo/</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>


	<dependencies>

		<!-- core dependencies -->

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-storm_${scala.binary.version}</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.storm</groupId>
			<artifactId>storm-starter</artifactId>
			<version>1.0.0</version>

			<!-- remove storm dependency - it should be drawn only (with proper
				customization) via the 'flink-storm' dependency -->
			<exclusions>
				<exclusion>
					<groupId>org.apache.storm</groupId>
					<artifactId>storm-core</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.curator</groupId>
					<artifactId>curator-framework</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<!-- test dependencies -->

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-shaded-guava</artifactId>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-test-utils_${scala.binary.version}</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
			<type>test-jar</type>
		</dependency>

	</dependencies>

	<build>
		<plugins>
			<!-- get default data from flink-example-batch package -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<version>2.9</version><!--$NO-MVN-MAN-VER$-->
				<executions>
					<execution>
						<id>unpack</id>
						<phase>prepare-package</phase>
						<goals>
							<goal>unpack</goal>
						</goals>
						<configuration>
							<artifactItems>
								<artifactItem>
									<groupId>org.apache.flink</groupId>
									<artifactId>flink-examples-batch_${scala.binary.version}</artifactId>
									<version>${project.version}</version>
									<type>jar</type>
									<overWrite>false</overWrite>
									<outputDirectory>${project.build.directory}/classes</outputDirectory>
									<includes>org/apache/flink/examples/java/wordcount/util/WordCountData.class
									</includes>
								</artifactItem>
								<artifactItem>
									<groupId>org.apache.flink</groupId>
									<artifactId>flink-storm_${scala.binary.version}</artifactId>
									<version>${project.version}</version>
									<type>jar</type>
									<overWrite>false</overWrite>
									<outputDirectory>${project.build.directory}/classes</outputDirectory>
								</artifactItem>
								<artifactItem>
									<groupId>org.apache.storm</groupId>
									<artifactId>storm-core</artifactId>
									<version>1.0.0</version>
									<type>jar</type>
									<overWrite>false</overWrite>
									<outputDirectory>${project.build.directory}/classes</outputDirectory>
									<!-- need to exclude to be able to run
									       * StormWordCountRemoteByClient and
									       * StormWordCountRemoteBySubmitter
									     within Eclipse -->
									<excludes>defaults.yaml</excludes>
								</artifactItem>
								<artifactItem>
									<groupId>com.googlecode.json-simple</groupId>
									<artifactId>json-simple</artifactId>
									<version>1.1</version>
									<type>jar</type>
									<overWrite>false</overWrite>
									<outputDirectory>${project.build.directory}/classes</outputDirectory>
								</artifactItem>
								<artifactItem>
									<groupId>org.yaml</groupId>
									<artifactId>snakeyaml</artifactId>
									<version>1.11</version>
									<type>jar</type>
									<overWrite>false</overWrite>
									<outputDirectory>${project.build.directory}/classes</outputDirectory>
								</artifactItem>
							</artifactItems>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!-- self-contained jars for each example -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>

				<executions>

					<!-- WordCount Spout source-->
					<!-- example for embedded spout - for whole topologies see "WordCount Storm topology" example below -->
					<execution>
						<id>WordCount-SpoutSource</id>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>
						<configuration>
							<finalName>WordCount</finalName>
							<classifier>SpoutSource</classifier>

							<archive>
								<manifestEntries>
									<program-class>org.apache.flink.storm.wordcount.SpoutSourceWordCount</program-class>
								</manifestEntries>
							</archive>

							<includes>
								<!-- from storm-core -->
								<include>org/apache/storm/topology/*.class</include>
								<include>org/apache/storm/spout/*.class</include>
								<include>org/apache/storm/task/*.class</include>
								<include>org/apache/storm/tuple/*.class</include>
								<include>org/apache/storm/generated/*.class</include>
								<include>org/apache/storm/metric/**/*.class</include>
								<include>org/apache/storm/thrift/**/*.class</include>
								<!-- Storm's recursive dependencies -->
								<include>org/json/simple/**/*.class</include>
								<include>org/apache/storm/shade/**/*.class</include>
								<!-- compatibility layer -->
								<include>org/apache/flink/storm/api/*.class</include>
								<include>org/apache/flink/storm/util/*.class</include>
								<include>org/apache/flink/storm/wrappers/*.class</include>
								<!-- Word Count -->
								<include>org/apache/flink/storm/wordcount/SpoutSourceWordCount.class</include>
								<include>org/apache/flink/storm/wordcount/SpoutSourceWordCount$*.class</include>
								<include>org/apache/flink/storm/wordcount/operators/WordCountFileSpout.class</include>
								<include>org/apache/flink/storm/wordcount/operators/WordCountInMemorySpout.class
								</include>
								<include>org/apache/flink/storm/util/AbstractLineSpout.class</include>
								<include>org/apache/flink/storm/util/FileSpout.class</include>
								<include>org/apache/flink/storm/util/InMemorySpout.class</include>
								<include>org/apache/flink/storm/wordcount/util/WordCountData.class</include>
							</includes>
						</configuration>
					</execution>

					<!-- WordCount Bolt tokenizer-->
					<!-- example for embedded bolt - for whole topologies see "WordCount Storm topology" example below -->
					<execution>
						<id>WordCount-BoltTokenizer</id>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>
						<configuration>
							<finalName>WordCount</finalName>
							<classifier>BoltTokenizer</classifier>

							<archive>
								<manifestEntries>
									<program-class>org.apache.flink.storm.wordcount.BoltTokenizerWordCount
									</program-class>
								</manifestEntries>
							</archive>

							<includes>
								<!-- from storm-core -->
								<include>org/apache/storm/topology/*.class</include>
								<include>org/apache/storm/spout/*.class</include>
								<include>org/apache/storm/task/*.class</include>
								<include>org/apache/storm/tuple/*.class</include>
								<include>org/apache/storm/generated/*.class</include>
								<include>org/apache/storm/metric/**/*.class</include>
								<include>org/apache/storm/thrift/**/*.class</include>
								<!-- Storm's recursive dependencies -->
								<include>org/json/simple/**/*.class</include>
								<include>org/apache/storm/shade/**/*.class</include>
								<!-- compatibility layer -->
								<include>org/apache/flink/storm/api/*.class</include>
								<include>org/apache/flink/storm/util/*.class</include>
								<include>org/apache/flink/storm/wrappers/*.class</include>
								<!-- Word Count -->
								<include>org/apache/flink/storm/wordcount/BoltTokenizerWordCount.class</include>
								<include>org/apache/flink/storm/wordcount/operators/BoltTokenizer.class</include>
								<include>org/apache/flink/storm/wordcount/util/WordCountData.class</include>
							</includes>
						</configuration>
					</execution>

					<!-- WordCount Storm topology-->
					<!-- Example for whole topologies (ie, if FlinkTopology is used) -->
					<!-- We cannot use maven-jar-plugin because 'defaults.yaml' must be included in jar.
					     However, we excluded 'defaults.yaml' in dependency-plugin to get clean Eclipse environment.
					     Thus, 'defaults.yaml' is not available for maven-jar-plugin.
					     Nevertheless, we register an empty jar with corresponding name, such that the final jar can be installed to local maven repository.
					     We use maven-shade-plugin to build the actual jar (which will replace the empty jar). -->
					<execution>
						<id>WordCount-StormTopology</id>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>
						<configuration>
							<finalName>WordCount</finalName>
							<classifier>StormTopology</classifier>
						</configuration>
					</execution>

					<execution>
						<goals>
							<goal>test-jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- WordCount Storm topology-->
			<!-- Cannot use maven-jar-plugin because 'defaults.yaml' must be included in jar -->
			<!-- Build StormTopolgy jar to overwrite empty jar created with maven-jar-plugin. -->
			<plugin>
				<artifactId>maven-shade-plugin</artifactId>
				<groupId>org.apache.maven.plugins</groupId>
				<executions>
					<execution>
						<id>WordCount-StormTopology</id>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<finalName>WordCount-StormTopology</finalName>

							<artifactSet>
								<includes>
									<include>org.apache.storm:storm-core</include>
									<!-- Storm's recursive dependencies -->
									<include>org.yaml:snakeyaml</include>
									<include>com.googlecode.json-simple:json-simple</include>
									<include>org.apache.flink:flink-storm_${scala.binary.version}</include>
									<include>org.apache.flink:flink-storm-examples_${scala.binary.version}</include>
								</includes>
							</artifactSet>
							<filters>
								<filter>
									<artifact>org.apache.storm:storm-core</artifact>
									<includes>
										<include>defaults.yaml</include>
										<include>org/apache/storm/*.class</include>
										<include>org/apache/storm/topology/*.class</include>
										<include>org/apache/storm/spout/*.class</include>
										<include>org/apache/storm/task/*.class</include>
										<include>org/apache/storm/tuple/*.class</include>
										<include>org/apache/storm/generated/*.class</include>
										<include>org/apache/storm/metric/**/*.class</include>
										<include>org/apache/storm/utils/*.class</include>
										<include>org/apache/storm/serialization/*.class</include>
										<include>org/apache/storm/curator/**/*.class</include>
										<include>org/apache/storm/grouping/**/*.class</include>
										<include>org/apache/storm/thrift/**/*.class</include>
										<!-- Storm's recursive dependencies -->
										<include>org/json/simple/**/*.class</include>
										<include>org/yaml/snakeyaml/**/*.class</include>
										<include>org/apache/storm/shade/**/*.class</include>
									</includes>
								</filter>
								<filter>
									<artifact>org.apache.flink:flink-storm-examples_${scala.binary.version}</artifact>
									<includes>
										<include>org/apache/flink/storm/wordcount/WordCountRemoteBySubmitter.class
										</include>
										<include>org/apache/flink/storm/wordcount/WordCountTopology.class</include>
										<include>org/apache/flink/storm/wordcount/operators/*.class</include>
										<include>org/apache/flink/storm/util/*.class</include>
										<include>org/apache/flink/storm/wordcount/util/WordCountData.class</include>
									</includes>
								</filter>
								<filter>
									<artifact>org.apache.flink:flink-storm_${scala.binary.version}</artifact>
									<includes>
										<include>org/apache/flink/storm/api/*.class</include>
										<include>org/apache/flink/storm/util/*.class</include>
										<include>org/apache/flink/storm/wrappers/*.class</include>
									</includes>
								</filter>
							</filters>
							<transformers>
								<transformer
									implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
									<mainClass>org.apache.flink.storm.wordcount.WordCountRemoteBySubmitter</mainClass>
								</transformer>
							</transformers>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>

		<pluginManagement>
			<plugins>
				<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-dependency-plugin</artifactId>
										<versionRange>[2.9,)</versionRange>
										<goals>
											<goal>unpack</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore/>
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>

	</build>

</project>
