| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
| <modelVersion>4.0.0</modelVersion> |
| <parent> |
| <artifactId>storm</artifactId> |
| <groupId>org.apache.storm</groupId> |
| <version>1.2.4-SNAPSHOT</version> |
| <relativePath>..</relativePath> |
| </parent> |
| <groupId>org.apache.storm</groupId> |
| <artifactId>storm-core</artifactId> |
| <packaging>jar</packaging> |
| <name>Storm Core</name> |
| <description>Storm Core Java API and Clojure implementation.</description> |
| |
| <properties> |
| <worker-launcher.conf.dir>/etc/storm</worker-launcher.conf.dir> |
| <worker-launcher.build.dir>${project.build.directory}/native/worker-launcher</worker-launcher.build.dir> |
| <worker-launcher.additional_cflags /> |
| <argLine /> |
| </properties> |
| |
| <dependencies> |
| <!--Hadoop Mini Cluster cannot use log4j2 bridge, |
| Surefire has a way to exclude the conflicting log4j API jar |
| from the classpath, classpathDependencyExcludes, but it didn't work in practice. |
| This is here as a work around to place it at the beginning of the classpath |
| even though maven does not officially support ordering of the classpath.--> |
| <dependency> |
| <groupId>log4j</groupId> |
| <artifactId>log4j</artifactId> |
| <version>1.2.17</version> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.esotericsoftware</groupId> |
| <artifactId>kryo</artifactId> |
| </dependency> |
| <!--clojure--> |
| <dependency> |
| <groupId>org.clojure</groupId> |
| <artifactId>clojure</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>clj-time</groupId> |
| <artifactId>clj-time</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>compojure</groupId> |
| <artifactId>compojure</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>hiccup</groupId> |
| <artifactId>hiccup</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>ring</groupId> |
| <artifactId>ring-core</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>ring</groupId> |
| <artifactId>ring-devel</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>ring</groupId> |
| <artifactId>ring-jetty-adapter</artifactId> |
| <exclusions> |
| <exclusion> |
| <groupId>org.mortbay.jetty</groupId> |
| <artifactId>servlet-api</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>ring</groupId> |
| <artifactId>ring-json</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>ring-cors</groupId> |
| <artifactId>ring-cors</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-servlet</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-servlets</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.clojure</groupId> |
| <artifactId>tools.logging</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.clojure</groupId> |
| <artifactId>math.numeric-tower</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.clojure</groupId> |
| <artifactId>tools.cli</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.clojure</groupId> |
| <artifactId>tools.nrepl</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>clojure-complete</groupId> |
| <artifactId>clojure-complete</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.clojars.runa</groupId> |
| <artifactId>conjure</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.clojure</groupId> |
| <artifactId>clojure-contrib</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.clojure</groupId> |
| <artifactId>data.codec</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.clojure</groupId> |
| <artifactId>java.jmx</artifactId> |
| <version>${java_jmx.version}</version> |
| </dependency> |
| |
| <!--java--> |
| <dependency> |
| <groupId>commons-io</groupId> |
| <artifactId>commons-io</artifactId> |
| <scope>compile</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-compress</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-exec</artifactId> |
| <scope>compile</scope> |
| </dependency> |
| <dependency> |
| <groupId>commons-collections</groupId> |
| <artifactId>commons-collections</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>commons-lang</groupId> |
| <artifactId>commons-lang</artifactId> |
| <scope>compile</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.thrift</groupId> |
| <artifactId>libthrift</artifactId> |
| <scope>compile</scope> |
| <exclusions> |
| <exclusion> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>javax.servlet</groupId> |
| <artifactId>servlet-api</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.curator</groupId> |
| <artifactId>curator-framework</artifactId> |
| <scope>compile</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.zookeeper</groupId> |
| <artifactId>zookeeper</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.curator</groupId> |
| <artifactId>curator-recipes</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.curator</groupId> |
| <artifactId>curator-test</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.googlecode.json-simple</groupId> |
| <artifactId>json-simple</artifactId> |
| <scope>compile</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.twitter</groupId> |
| <artifactId>carbonite</artifactId> |
| <scope>compile</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.yaml</groupId> |
| <artifactId>snakeyaml</artifactId> |
| <scope>compile</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.lmax</groupId> |
| <artifactId>disruptor</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.jgrapht</groupId> |
| <artifactId>jgrapht-core</artifactId> |
| <scope>compile</scope> |
| </dependency> |
| <dependency> |
| <groupId>com.google.guava</groupId> |
| <artifactId>guava</artifactId> |
| <scope>compile</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-api</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-core</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.logging.log4j</groupId> |
| <artifactId>log4j-slf4j-impl</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>log4j-over-slf4j</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>io.netty</groupId> |
| <artifactId>netty</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>io.dropwizard.metrics</groupId> |
| <artifactId>metrics-core</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>io.dropwizard.metrics</groupId> |
| <artifactId>metrics-graphite</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>metrics-clojure</groupId> |
| <artifactId>metrics-clojure</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.mockito</groupId> |
| <artifactId>mockito-core</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.awaitility</groupId> |
| <artifactId>awaitility</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>org.hamcrest</groupId> |
| <artifactId>hamcrest-library</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>junit</groupId> |
| <artifactId>junit</artifactId> |
| <scope>test</scope> |
| </dependency> |
| <dependency> |
| <groupId>javax.servlet</groupId> |
| <artifactId>servlet-api</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>joda-time</groupId> |
| <artifactId>joda-time</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-server</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.jetty</groupId> |
| <artifactId>jetty-util</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.core</groupId> |
| <artifactId>jackson-core</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>com.fasterxml.jackson.dataformat</groupId> |
| <artifactId>jackson-dataformat-smile</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.curator</groupId> |
| <artifactId>curator-client</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>commons-fileupload</groupId> |
| <artifactId>commons-fileupload</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>commons-codec</groupId> |
| <artifactId>commons-codec</artifactId> |
| </dependency> |
| <dependency> |
| <!-- |
| hadoop-auth is needed in storm-core because ui in a secured storm cluster needs it for authentication. |
| Please DO NOT REMOVE this dependency |
| --> |
| <groupId>org.apache.hadoop</groupId> |
| <artifactId>hadoop-auth</artifactId> |
| <version>${hadoop.version}</version> |
| <exclusions> |
| <exclusion> |
| <groupId>org.apache.directory.server</groupId> |
| <artifactId>apacheds-kerberos-codec</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>log4j</groupId> |
| <artifactId>log4j</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-log4j12</artifactId> |
| </exclusion> |
| <exclusion> |
| <groupId>org.slf4j</groupId> |
| <artifactId>slf4j-api</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| </dependencies> |
| <build> |
| <sourceDirectory>src/jvm</sourceDirectory> |
| <testSourceDirectory>test/jvm</testSourceDirectory> |
| <resources> |
| <resource> |
| <directory>../conf</directory> |
| </resource> |
| <resource> |
| <directory>../</directory> |
| <targetPath>META-INF</targetPath> |
| <includes> |
| <!-- |
| storm-core doesn't package jquery, etc. so the stock |
| apache LICENSE file is okay. We do want our version |
| of the NOTICE file, however |
| --> |
| <include>NOTICE</include> |
| </includes> |
| </resource> |
| <resource> |
| <directory>${basedir}/src/resources</directory> |
| <excludes> |
| <exclude>storm-core-version-info.properties</exclude> |
| </excludes> |
| <filtering>false</filtering> |
| </resource> |
| <resource> |
| <directory>${basedir}/src/resources</directory> |
| <includes> |
| <include>storm-core-version-info.properties</include> |
| </includes> |
| <filtering>true</filtering> |
| </resource> |
| </resources> |
| <testResources> |
| <testResource> |
| <directory>src/dev</directory> |
| </testResource> |
| <testResource> |
| <directory>test/resources</directory> |
| </testResource> |
| </testResources> |
| <plugins> |
| <plugin> |
| <groupId>com.theoryinpractise</groupId> |
| <artifactId>clojure-maven-plugin</artifactId> |
| <extensions>true</extensions> |
| <configuration> |
| <sourceDirectories> |
| <sourceDirectory>src/clj</sourceDirectory> |
| </sourceDirectories> |
| <testSourceDirectories> |
| <testSourceDirectory>test/clj</testSourceDirectory> |
| </testSourceDirectories> |
| <warnOnReflection>false</warnOnReflection> |
| <copyDeclaredNamespaceOnly>true</copyDeclaredNamespaceOnly> |
| <copiedNamespaces> |
| <copiedNamespace>none</copiedNamespace> |
| </copiedNamespaces> |
| </configuration> |
| <executions> |
| <execution> |
| <id>compile-clojure</id> |
| <phase>compile</phase> |
| <goals> |
| <goal>compile</goal> |
| </goals> |
| </execution> |
| <execution> |
| <id>test-clojure</id> |
| <phase>test</phase> |
| <goals> |
| <goal>test</goal> |
| </goals> |
| <configuration> |
| <junitOutput>true</junitOutput> |
| <testScript>test/resources/test_runner.clj</testScript> |
| <!-- argLine is set by JaCoCo for code coverage --> |
| <vmargs>-Xmx1536m ${argLine} ${test.extra.args}</vmargs> |
| <!-- Run clojure unit tests or all tests (including integration tests) depending on the profile enabled --> |
| <testNamespaces> |
| <testNamespace>${clojure.test.set}</testNamespace> |
| </testNamespaces> |
| <testDeclaredNamespaceOnly>${clojure.test.declared.namespace.only}</testDeclaredNamespaceOnly> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-report-plugin</artifactId> |
| <configuration> |
| <reportsDirectories> |
| <file>${project.build.directory}/test-reports</file> |
| </reportsDirectories> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-failsafe-plugin</artifactId> |
| <configuration> |
| <reportsDirectory>${project.build.directory}/test-reports</reportsDirectory> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-shade-plugin</artifactId> |
| <executions> |
| <execution> |
| <phase>package</phase> |
| <goals> |
| <goal>shade</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <keepDependenciesWithProvidedScope>false</keepDependenciesWithProvidedScope> |
| <promoteTransitiveDependencies>false</promoteTransitiveDependencies> |
| <createDependencyReducedPom>true</createDependencyReducedPom> |
| <minimizeJar>false</minimizeJar> |
| <artifactSet> |
| <includes> |
| <include>ns-tracker:ns-tracker</include> |
| <include>hiccup:hiccup</include> |
| <include>ring:*</include> |
| <include>compojure:compojure</include> |
| <include>clj-time:clj-time</include> |
| <include>org.apache.thrift:*</include> |
| <include>io.netty:netty</include> |
| <include>com.google.guava:guava</include> |
| <include>org.apache.httpcomponents:http*</include> |
| <include>org.apache.zookeeper:zookeeper</include> |
| <include>org.apache.curator:*</include> |
| <include>com.twitter:carbonite</include> |
| <include>com.twitter:chill-java</include> |
| <include>org.tukaani:xz</include> |
| <include>org.yaml:snakeyaml</include> |
| <include>org.jgrapht:jgrapht-core</include> |
| <include>org.apache.commons:commons-exec</include> |
| <include>org.apache.commons:commons-compress</include> |
| <include>commons-collections:commons-collections</include> |
| <include>org.apache.hadoop:hadoop-auth</include> |
| <include>commons-io:commons-io</include> |
| <include>commons-codec:commons-codec</include> |
| <include>commons-fileupload:commons-fileupload</include> |
| <include>commons-lang:commons-lang</include> |
| <include>com.googlecode.json-simple:json-simple</include> |
| <include>org.clojure:math.numeric-tower</include> |
| <include>org.clojure:tools.cli</include> |
| <include>org.clojure:tools.logging</include> |
| <include>org.clojure:tools.macro</include> |
| <include>org.clojure:java.jmx</include> |
| <include>joda-time:joda-time</include> |
| <include>org.eclipse.jetty:*</include> |
| <include>com.fasterxml.jackson.core:*</include> |
| <include>com.fasterxml.jackson.dataformat:*</include> |
| <include>clout:clout</include> |
| <include>org.clojure:tools.namespace</include> |
| <include>cheshire:cheshire</include> |
| <include>org.clojure:core.incubator</include> |
| <include>metrics-clojure:*</include> |
| </includes> |
| </artifactSet> |
| <relocations> |
| <relocation> |
| <pattern>cheshire</pattern> |
| <shadedPattern>org.apache.storm.shade.cheshire</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>clojure.tools.logging</pattern> |
| <shadedPattern>org.apache.storm.shade.clojure.tools.logging</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>clojure.core.incubator</pattern> |
| <shadedPattern>org.apache.storm.shade.clojure.core.incubator</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>clojure.tools.namespace</pattern> |
| <shadedPattern>org.apache.storm.shade.clojure.tools.namespace</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>clout</pattern> |
| <shadedPattern>org.apache.storm.shade.clout</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>compojure</pattern> |
| <shadedPattern>org.apache.storm.shade.compojure</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>ns_tracker</pattern> |
| <shadedPattern>org.apache.storm.shade.ns_tracker</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>ns-tracker</pattern> |
| <shadedPattern>org.apache.storm.shade.ns-tracker</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>hiccup</pattern> |
| <shadedPattern>org.apache.storm.shade.hiccup</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>ring</pattern> |
| <shadedPattern>org.apache.storm.shade.ring</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>clj_time</pattern> |
| <shadedPattern>org.apache.storm.shade.clj_time</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>clj-time</pattern> |
| <shadedPattern>org.apache.storm.shade.clj-time</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.fasterxml</pattern> |
| <shadedPattern>org.apache.storm.shade.com.fasterxml</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.thrift</pattern> |
| <!-- This pattern is inconsistent for backwards compatibility purposes. --> |
| <shadedPattern>org.apache.storm.thrift</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.jboss.netty</pattern> |
| <shadedPattern>org.apache.storm.shade.org.jboss.netty</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.google.common</pattern> |
| <shadedPattern>org.apache.storm.shade.com.google.common</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.google.thirdparty</pattern> |
| <shadedPattern>org.apache.storm.shade.com.google.thirdparty</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.http</pattern> |
| <shadedPattern>org.apache.storm.shade.org.apache.http</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.curator</pattern> |
| <shadedPattern>org.apache.storm.shade.org.apache.curator</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.zookeeper</pattern> |
| <shadedPattern>org.apache.storm.shade.org.apache.zookeeper</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.jute</pattern> |
| <shadedPattern>org.apache.storm.shade.org.apache.jute</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>carbonite</pattern> |
| <shadedPattern>org.apache.storm.shade.carbonite</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.twitter.chill</pattern> |
| <shadedPattern>org.apache.storm.shade.com.twitter.chill</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.tukaani.xz</pattern> |
| <shadedPattern>org.apache.storm.shade.org.tukaani.xz</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.yaml.snakeyaml</pattern> |
| <shadedPattern>org.apache.storm.shade.org.yaml.snakeyaml</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.jgrapht</pattern> |
| <shadedPattern>org.apache.storm.shade.org.jgrapht</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.fusesource</pattern> |
| <shadedPattern>org.apache.storm.shade.org.fusesource</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>com.metamx.http.client</pattern> |
| <shadedPattern>org.apache.storm.shade.com.metamx.http.client</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.io</pattern> |
| <shadedPattern>org.apache.storm.shade.org.apache.commons.io</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.compress</pattern> |
| <shadedPattern>org.apache.storm.shade.org.apache.commons.compress</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.codec</pattern> |
| <shadedPattern>org.apache.storm.shade.org.apache.commons.codec</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.fileupload</pattern> |
| <shadedPattern>org.apache.storm.shade.org.apache.commons.fileupload</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.exec</pattern> |
| <shadedPattern>org.apache.storm.shade.org.apache.commons.exec</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.lang</pattern> |
| <shadedPattern>org.apache.storm.shade.org.apache.commons.lang</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.apache.commons.collections</pattern> |
| <shadedPattern>org.apache.storm.shade.org.apache.commons.collections</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.json.simple</pattern> |
| <shadedPattern>org.apache.storm.shade.org.json.simple</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>clojure.math</pattern> |
| <shadedPattern>org.apache.storm.shade.clojure.math</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>clojure.tools.cli</pattern> |
| <shadedPattern>org.apache.storm.shade.clojure.tools.cli</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>cljs.tools.cli</pattern> |
| <shadedPattern>org.apache.storm.shade.cljs.tools.cli</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>clojure.tools.macro</pattern> |
| <shadedPattern>org.apache.storm.shade.clojure.tools.macro</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.joda.time</pattern> |
| <shadedPattern>org.apache.storm.shade.org.joda.time</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>org.eclipse.jetty</pattern> |
| <shadedPattern>org.apache.storm.shade.org.eclipse.jetty</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>metrics.core</pattern> |
| <shadedPattern>org.apache.storm.shade.metrics.core</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>metrics.counters</pattern> |
| <shadedPattern>org.apache.storm.shade.metrics.counters</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>metrics.gauges</pattern> |
| <shadedPattern>org.apache.storm.shade.metrics.gauges</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>metrics.histograms</pattern> |
| <shadedPattern>org.apache.storm.shade.metrics.histograms</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>metrics.meters</pattern> |
| <shadedPattern>org.apache.storm.shade.metrics.meters</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>metrics.reporters</pattern> |
| <shadedPattern>org.apache.storm.shade.metrics.reporters</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>metrics.timers</pattern> |
| <shadedPattern>org.apache.storm.shade.metrics.timers</shadedPattern> |
| </relocation> |
| <relocation> |
| <pattern>metrics.utils</pattern> |
| <shadedPattern>org.apache.storm.shade.metrics.utils</shadedPattern> |
| </relocation> |
| </relocations> |
| <transformers> |
| <transformer implementation="org.apache.storm.maven.shade.clojure.ClojureTransformer" /> |
| </transformers> |
| <filters> |
| <!-- Several of these filters remove the .clj files from the shaded dependencies, even though only .clj files are in these jars. |
| The reason for this is a bit complex, but intentional. During the build process all of the dependency .clj files are |
| compiled down into .class files, and included in storm-core.jar. The regular shade transformer handles these in |
| the majority of cases correctly. However, the Clojure-Transformer does not shade everything correctly all the |
| time. Instead of spending a lot of time to get the Clojure-Transformer to parse Clojure correctly we opted to remove |
| the .clj files from the uber jar. --> |
| <filter><artifact>metrics-clojure:*</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter> |
| <filter><artifact>org.clojure:core.incubator</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter> |
| <filter><artifact>cheshire:cheshire</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter> |
| <filter><artifact>org.clojure:tools.logging</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter> |
| <filter><artifact>org.clojure:tools.namespace</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter> |
| <filter><artifact>org.clojure:math.numeric-tower</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter> |
| <filter><artifact>org.clojure:tools.macro</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter> |
| <filter><artifact>org.clojure:tools.cli</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter> |
| <filter><artifact>ns-tracker:ns-tracker</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter> |
| <filter><artifact>clout:clout</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter> |
| <filter><artifact>hiccup:hiccup</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter> |
| <filter><artifact>clj-time:clj-time</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter> |
| <filter><artifact>ring:*</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter> |
| <filter><artifact>compojure:compojure</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter> |
| <filter> |
| <artifact>org.apache.thrift:*</artifact> |
| <excludes> |
| <exclude>META-INF/LICENSE.txt</exclude> |
| <exclude>META-INF/NOTICE.txt</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <artifact>io.netty:netty</artifact> |
| <excludes> |
| <exclude>META-INF/LICENSE.txt</exclude> |
| <exclude>META-INF/NOTICE.txt</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <artifact>org.apache.zookeeper:zookeeper</artifact> |
| <excludes> |
| <exclude>LICENSE.txt</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <artifact>org.apache.commons:commons-exec</artifact> |
| <excludes> |
| <exclude>META-INF/LICENSE.txt</exclude> |
| <exclude>META-INF/NOTICE.txt</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <artifact>commons-collections:commons-collections</artifact> |
| <excludes> |
| <exclude>META-INF/LICENSE.txt</exclude> |
| <exclude>META-INF/NOTICE.txt</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <artifact>commons-io:commons-io</artifact> |
| <excludes> |
| <exclude>META-INF/LICENSE.txt</exclude> |
| <exclude>META-INF/NOTICE.txt</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <artifact>commons-codec:commons-codec</artifact> |
| <excludes> |
| <exclude>META-INF/LICENSE.txt</exclude> |
| <exclude>META-INF/NOTICE.txt</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <artifact>commons-fileupload:commons-fileupload</artifact> |
| <excludes> |
| <exclude>META-INF/LICENSE.txt</exclude> |
| <exclude>META-INF/NOTICE.txt</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <artifact>commons-lang:commons-lang</artifact> |
| <excludes> |
| <exclude>META-INF/LICENSE.txt</exclude> |
| <exclude>META-INF/NOTICE.txt</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <artifact>joda-time:joda-time</artifact> |
| <excludes> |
| <exclude>META-INF/LICENSE.txt</exclude> |
| <exclude>META-INF/NOTICE.txt</exclude> |
| </excludes> |
| </filter> |
| <filter> |
| <artifact>*:*</artifact> |
| <excludes> |
| <exclude>META-INF/*.SF</exclude> |
| <exclude>META-INF/*.sf</exclude> |
| <exclude>META-INF/*.DSA</exclude> |
| <exclude>META-INF/*.dsa</exclude> |
| <exclude>META-INF/*.RSA</exclude> |
| <exclude>META-INF/*.rsa</exclude> |
| <exclude>META-INF/*.EC</exclude> |
| <exclude>META-INF/*.ec</exclude> |
| <exclude>META-INF/MSFTSIG.SF</exclude> |
| <exclude>META-INF/MSFTSIG.RSA</exclude> |
| </excludes> |
| </filter> |
| </filters> |
| </configuration> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.storm</groupId> |
| <artifactId>maven-shade-clojure-transformer</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| </dependencies> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.storm</groupId> |
| <artifactId>storm-maven-plugins</artifactId> |
| <version>${project.version}</version> |
| <executions> |
| <execution> |
| <id>version-info</id> |
| <phase>generate-resources</phase> |
| <goals> |
| <goal>version-info</goal> |
| </goals> |
| <configuration> |
| <source> |
| <directory>${basedir}/src/</directory> |
| <includes> |
| <include>jvm/**/*.java</include> |
| <include>clj/**/*.clj</include> |
| </includes> |
| </source> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <artifactId>maven-dependency-plugin</artifactId> |
| <version>2.8</version> |
| <executions> |
| <execution> |
| <id>copy-dependencies</id> |
| <phase>package</phase> |
| <goals> |
| <goal>copy-dependencies</goal> |
| </goals> |
| <configuration> |
| <overWriteReleases>false</overWriteReleases> |
| <overWriteSnapshots>false</overWriteSnapshots> |
| <overWriteIfNewer>true</overWriteIfNewer> |
| <includeScope>runtime</includeScope> |
| </configuration> |
| </execution> |
| <!-- multi-lang resources --> |
| <execution> |
| <id>unpack</id> |
| <phase>process-test-resources</phase> |
| <goals> |
| <goal>unpack</goal> |
| </goals> |
| <configuration> |
| <artifactItems> |
| <artifactItem> |
| <groupId>org.apache.storm</groupId> |
| <artifactId>multilang-ruby</artifactId> |
| <version>${project.version}</version> |
| </artifactItem> |
| <artifactItem> |
| <groupId>org.apache.storm</groupId> |
| <artifactId>multilang-python</artifactId> |
| <version>${project.version}</version> |
| </artifactItem> |
| <artifactItem> |
| <groupId>org.apache.storm</groupId> |
| <artifactId>multilang-javascript</artifactId> |
| <version>${project.version}</version> |
| </artifactItem> |
| </artifactItems> |
| <outputDirectory>${project.build.directory}/test-classes</outputDirectory> |
| </configuration> |
| </execution> |
| |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-source-plugin</artifactId> |
| <version>2.2.1</version> |
| <executions> |
| <execution> |
| <id>attach-sources</id> |
| <goals> |
| <!-- avoid warning about recursion --> |
| <goal>jar-no-fork</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| <version>2.6</version> |
| <executions> |
| <execution> |
| <goals> |
| <goal>test-jar</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| |
| <profiles> |
| <profile> |
| <id>coverage</id> |
| <activation><activeByDefault>true</activeByDefault></activation> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>build-helper-maven-plugin</artifactId> |
| <version>1.7</version> |
| <executions> |
| <execution> |
| <id>add-source</id> |
| <phase>generate-sources</phase> |
| <goals> |
| <goal>add-source</goal> |
| </goals> |
| <configuration> |
| <sources><!-- Allows JaCoCo to find the clojure source code --> |
| <source>src/clj</source> |
| </sources> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-antrun-plugin</artifactId> |
| <version>1.7</version> |
| <executions> |
| <execution> |
| <id>pre-test-jacoco-clean</id> |
| <phase>process-test-classes</phase> |
| <configuration> |
| <tasks> |
| <delete file="target\jacoco.exec" /> |
| </tasks> |
| </configuration> |
| <goals> |
| <goal>run</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.jacoco</groupId> |
| <artifactId>jacoco-maven-plugin</artifactId> |
| <version>0.7.2.201409121644</version> |
| <executions> |
| <execution> |
| <id>prepare-agent</id> |
| <goals> |
| <goal>prepare-agent</goal> |
| </goals> |
| <configuration> |
| <append>true</append> |
| <excludes> |
| <exclude>org/apache/storm/metric/api/IMetricsConsumer$DataPointFieldAccess</exclude> |
| <exclude>org/apache/storm/metric/api/IMetricsConsumer$TaskInfoFieldAccess</exclude> |
| <exclude>org/apache/storm/testing/TestSerObjectFieldAccess</exclude> |
| </excludes> |
| </configuration> |
| </execution> |
| <execution> |
| <id>report</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>report</goal> |
| </goals> |
| <configuration> |
| <excludes> |
| <exclude>org/apache/storm/generated/*</exclude> <!--Thrift generated code--> |
| </excludes> |
| <includes> |
| <include>backtype/*/*/*/*</include> |
| <include>backtype/*/*/*</include> |
| <include>backtype/*/*</include> |
| <include>backtype/*</include> |
| <include>zilch/*</include> |
| <include>storm/*/*/*/*</include> |
| <include>storm/*/*/*</include> |
| <include>storm/*/*</include> |
| <include>storm/*</include> |
| </includes> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </profile> |
| <profile> |
| <id>native</id> |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>exec-maven-plugin</artifactId> |
| <version>1.6.0</version> |
| <executions> |
| <execution> |
| <phase>generate-sources</phase> |
| <goals><goal>exec</goal></goals> |
| <configuration> |
| <executable>sh</executable> |
| <arguments> |
| <argument>-c</argument> |
| <argument>mkdir -p ${project.build.directory}/; cp -rufv ${basedir}/src/native/ ${project.build.directory}/</argument> |
| </arguments> |
| </configuration> |
| </execution> |
| <execution> |
| <id>compile</id> |
| <phase>compile</phase> |
| <goals> |
| <goal>exec</goal> |
| </goals> |
| <configuration> |
| <executable>sh</executable> |
| <arguments> |
| <argument>compile-worker-launcher.sh</argument> |
| </arguments> |
| <workingDirectory>${worker-launcher.build.dir}</workingDirectory> |
| </configuration> |
| </execution> |
| <execution> |
| <id>test</id> |
| <phase>test</phase> |
| <goals> |
| <goal>exec</goal> |
| </goals> |
| <configuration> |
| <executable>make</executable> |
| <arguments> |
| <argument>check</argument> |
| </arguments> |
| <workingDirectory>${worker-launcher.build.dir}</workingDirectory> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-resources-plugin</artifactId> |
| <version>3.0.2</version> |
| <executions> |
| <execution> |
| <id>copy-build-scripts</id> |
| <phase>process-resources</phase> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <configuration> |
| <resources> |
| <resource> |
| <directory>src/resources</directory> |
| <includes> |
| <include>compile-worker-launcher.sh</include> |
| </includes> |
| <filtering>true</filtering> |
| </resource> |
| </resources> |
| <outputDirectory>${worker-launcher.build.dir}</outputDirectory> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| <activation> |
| <activeByDefault>false</activeByDefault> |
| </activation> |
| </profile> |
| </profiles> |
| |
| </project> |