| <?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-parent</artifactId> |
| <version>0.10-SNAPSHOT</version> |
| <relativePath>..</relativePath> |
| </parent> |
| |
| <artifactId>flink-storm-examples</artifactId> |
| <name>flink-storm-examples</name> |
| |
| <packaging>jar</packaging> |
| |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-storm</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-java-examples</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-streaming-java</artifactId> |
| <version>${project.version}</version> |
| <scope>test</scope> |
| <type>test-jar</type> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.apache.flink</groupId> |
| <artifactId>flink-test-utils</artifactId> |
| <version>${project.version}</version> |
| <scope>test</scope> |
| </dependency> |
| </dependencies> |
| |
| <build> |
| <plugins> |
| <!-- get default data from flink-java-examples 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-java-examples</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</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>0.9.4</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>backtype/storm/topology/*.class</include> |
| <include>backtype/storm/spout/*.class</include> |
| <include>backtype/storm/task/*.class</include> |
| <include>backtype/storm/tuple/*.class</include> |
| <include>backtype/storm/generated/*.class</include> |
| <include>backtype/storm/metric/**/*.class</include> |
| <include>org/apache/thrift7/**/*.class</include> |
| <!-- Storm's recursive dependencies --> |
| <include>org/json/simple/**/*.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/examples/java/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>backtype/storm/topology/*.class</include> |
| <include>backtype/storm/spout/*.class</include> |
| <include>backtype/storm/task/*.class</include> |
| <include>backtype/storm/tuple/*.class</include> |
| <include>backtype/storm/generated/*.class</include> |
| <include>backtype/storm/metric/**/*.class</include> |
| <include>org/apache/thrift7/**/*.class</include> |
| <!-- Storm's recursive dependencies --> |
| <include>org/json/simple/**/*.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/examples/java/wordcount/util/WordCountData.class</include> |
| </includes> |
| </configuration> |
| </execution> |
| |
| <!-- WordCount Storm topology--> |
| <!-- Example for whole topologies (ie, if FlinkTopologyBuilder 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</include> |
| <include>org.apache.flink:flink-storm-examples</include> |
| </includes> |
| </artifactSet> |
| <filters> |
| <filter> |
| <artifact>org.apache.storm:storm-core</artifact> |
| <includes> |
| <include>defaults.yaml</include> |
| <include>backtype/storm/*.class</include> |
| <include>backtype/storm/topology/*.class</include> |
| <include>backtype/storm/spout/*.class</include> |
| <include>backtype/storm/task/*.class</include> |
| <include>backtype/storm/tuple/*.class</include> |
| <include>backtype/storm/generated/*.class</include> |
| <include>backtype/storm/metric/**/*.class</include> |
| <include>backtype/storm/utils/*.class</include> |
| <include>backtype/storm/serialization/*.class</include> |
| <include>org/apache/storm/curator/**/*.class</include> |
| <include>org/apache/thrift7/**/*.class</include> |
| <!-- Storm's recursive dependencies --> |
| <include>org/json/simple/**/*.class</include> |
| <include>org/yaml/snakeyaml/**/*.class</include> |
| </includes> |
| </filter> |
| <filter> |
| <artifact>org.apache.flink:flink-storm-examples</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/examples/java/wordcount/util/WordCountData.class</include> |
| </includes> |
| </filter> |
| <filter> |
| <artifact>org.apache.flink:flink-storm</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> |