<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <parent>
    <groupId>org.apache.helix</groupId>
    <artifactId>helix</artifactId>
    <version>0.9.10-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>

  <artifactId>helix-core</artifactId>
  <packaging>bundle</packaging>

  <name>Apache Helix :: Core</name>

  <properties>
    <osgi.import>
      javax.management*,
      javax.xml.bind*,
      org.I0Itec.zkclient*,
      org.apache.commons.cli*;version="[1.2,2)",
      org.apache.commons.io*;version="[1.4,2)",
      org.apache.commons.math*;version="[2.1,3)",
      org.apache.jute*;resolution:=optional,
      org.apache.zookeeper.server.persistence*;resolution:=optional,
      org.apache.zookeeper.server.util*;resolution:=optional,
      org.apache.zookeeper.txn*;resolution:=optional,
      org.apache.zookeeper*;version="[3.4,4)",
      org.codehaus.jackson*;version="[1.8,2)",
      org.slf4j*;version="[1.6,2)",
      *
    </osgi.import>
    <osgi.ignore>
      org.apache.helix.tools*
    </osgi.ignore>
    <osgi.export>org.apache.helix*;version="${project.version};-noimport:=true</osgi.export>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>1.7.25</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.14</version>
      <exclusions>
        <exclusion>
          <groupId>javax.mail</groupId>
          <artifactId>mail</artifactId>
        </exclusion>
        <exclusion>
          <groupId>javax.jms</groupId>
          <artifactId>jms</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.sun.jdmk</groupId>
          <artifactId>jmxtools</artifactId>
        </exclusion>
        <exclusion>
          <groupId>com.sun.jmx</groupId>
          <artifactId>jmxri</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.zookeeper</groupId>
      <artifactId>zookeeper</artifactId>
      <version>3.4.13</version>
      <exclusions>
        <exclusion>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
     <dependency>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-core-asl</artifactId>
      <version>1.8.5</version>
    </dependency>
    <dependency>
      <groupId>org.codehaus.jackson</groupId>
      <artifactId>jackson-mapper-asl</artifactId>
      <version>1.8.5</version>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>1.4</version>
    </dependency>
    <dependency>
      <groupId>commons-cli</groupId>
      <artifactId>commons-cli</artifactId>
      <version>1.2</version>
    </dependency>
    <dependency>
      <groupId>com.101tec</groupId>
      <artifactId>zkclient</artifactId>
      <version>0.5</version>
    </dependency>
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-all</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-math</artifactId>
      <version>2.1</version>
    </dependency>
    <dependency>
      <groupId>commons-codec</groupId>
      <artifactId>commons-codec</artifactId>
      <version>1.6</version>
    </dependency>
    <dependency>
      <groupId>com.google.guava</groupId>
      <artifactId>guava</artifactId>
      <version>15.0</version>
    </dependency>
    <dependency>
      <groupId>org.yaml</groupId>
      <artifactId>snakeyaml</artifactId>
      <version>1.12</version>
    </dependency>
    <dependency>
      <groupId>io.dropwizard.metrics</groupId>
      <artifactId>metrics-core</artifactId>
      <version>3.2.3</version>
    </dependency>
  </dependencies>
  <build>
    <resources>
      <resource>
        <directory>${basedir}/src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
      <resource>
        <directory>${basedir}</directory>
        <includes>
          <include>DISCLAIMER</include>
        </includes>
      </resource>
    </resources>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>test-jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>appassembler-maven-plugin</artifactId>
        <configuration>
          <extraJvmArguments>-Dlog4j.configuration=file://"$BASEDIR"/conf/log4j.properties</extraJvmArguments>
          <programs>
            <program>
              <mainClass>org.apache.helix.controller.HelixControllerMain</mainClass>
              <name>run-helix-controller</name>
            </program>
            <program>
              <mainClass>org.apache.helix.tools.ClusterSetup</mainClass>
              <name>helix-admin</name>
            </program>
            <program>
              <mainClass>org.apache.helix.tools.commandtools.ZKDumper</mainClass>
              <name>zk-dumper</name>
            </program>
            <program>
              <mainClass>org.apache.helix.tools.commandtools.ZkCopy</mainClass>
              <name>zkcopy</name>
            </program>
            <program>
              <mainClass>org.apache.helix.tools.commandtools.ZKLogFormatter</mainClass>
              <name>zk-log-parser</name>
            </program>
            <program>
              <mainClass>org.apache.helix.tools.commandtools.ZkLogCSVFormatter</mainClass>
              <name>zk-log-csv-formatter</name>
            </program>
            <program>
              <mainClass>org.apache.helix.examples.ExampleProcess</mainClass>
              <name>start-helix-participant</name>
            </program>
            <program>
              <mainClass>org.apache.helix.tools.commandtools.ExampleParticipant</mainClass>
              <name>start-participants</name>
            </program>
            <program>
              <mainClass>org.apache.helix.tools.commandtools.CurrentStateCleanUp</mainClass>
              <name>cleanup-currentstate</name>
            </program>
            <program>
              <mainClass>org.apache.helix.tools.commandtools.LocalZKServer</mainClass>
              <name>start-standalone-zookeeper</name>
            </program>
            <program>
              <mainClass>org.apache.helix.examples.Quickstart</mainClass>
              <name>quickstart</name>
            </program>
            <program>
              <mainClass>org.apache.helix.tools.commandtools.JmxDumper</mainClass>
              <name>JmxDumper</name>
            </program>
            <program>
              <mainClass>org.apache.helix.tools.commandtools.YAMLClusterSetup</mainClass>
              <name>yaml-cluster-setup</name>
            </program>
            <program>
              <mainClass>org.apache.helix.tools.commandtools.IntegrationTestUtil</mainClass>
              <name>test-util</name>
            </program>
            <program>
              <mainClass>org.apache.helix.tools.commandtools.ZkGrep</mainClass>
              <name>zkgrep</name>
            </program>
            <program>
              <mainClass>org.apache.helix.tools.commandtools.TaskAdmin</mainClass>
              <name>task-admin</name>
            </program>
          </programs>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptors>
            <descriptor>src/assemble/assembly.xml</descriptor>
          </descriptors>
        </configuration>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
