<?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>

  <parent>
    <groupId>org.apache.brooklyn</groupId>
    <artifactId>brooklyn-downstream-parent</artifactId>
    <version>1.2.0-SNAPSHOT</version>  <!-- BROOKLYN_VERSION -->
  </parent>

  <groupId>com.acme.sample</groupId>
  <artifactId>brooklyn-sample</artifactId>
  <version>0.1.0-SNAPSHOT</version>

  <name>Sample Apache Brooklyn Project com.acme.sample:brooklyn-sample v0.1.0-SNAPSHOT</name>
  <description>
    Sample Apache Brooklyn Project for Java entity development, and OSGi bundle generation.
  </description>

  <!-- Optional metadata (commented out in this sample) 

  <url>https://github.com/acme/sample</url>

  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <developers>
    <developer>
      <name>Sample Project Committers</name>
    </developer>
  </developers>

  <scm>
    <connection>scm:git:git://github.com/acme/sample</connection>
    <developerConnection>scm:git:git@github.com:acme/sample.git</developerConnection>
    <url>http://github.com/acme/sample</url>
  </scm>

  -->

  <repositories>
    <repository>
      <id>extra.repo</id>
      <name>Extra Repository</name>
      <url>extra://brooklyn-sample-extra-repo-url</url>
    </repository>
    <repository>
      <id>apache.snapshots</id>
      <name>Apache Snapshot Repository</name>
      <url>https://repository.apache.org/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
  </repositories>

  <dependencies>
    <dependency>
      <!--
          All Brooklyn dependencies (note that the OSGi imports in the built artifacts will
          only list the packages actually used). It is possible to be far more selective
          about the required dependencies.
      -->
      <groupId>org.apache.brooklyn</groupId>
      <artifactId>brooklyn-all</artifactId>
      <version>${brooklyn.version}</version>
    </dependency>

    <dependency>
      <!-- this gives us flexible and easy-to-use logging; just edit logback-custom.xml! -->
      <groupId>org.apache.brooklyn</groupId>
      <artifactId>brooklyn-logback-xml</artifactId>
      <version>${brooklyn.version}</version>
      <optional>true</optional>
      <scope>provided</scope>
    </dependency>
    
    <dependency>
      <!-- includes testng and useful logging for tests -->
      <groupId>org.apache.brooklyn</groupId>
      <artifactId>brooklyn-test-support</artifactId>
      <version>${brooklyn.version}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <!-- includes org.apache.brooklyn.test.support.LoggingVerboseReporter -->
      <groupId>org.apache.brooklyn</groupId>
      <artifactId>brooklyn-utils-test-support</artifactId>
      <version>${brooklyn.version}</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <!-- for useful entity testing, such as TestEntity and BrooklynAppUnitTestSupport -->
      <groupId>org.apache.brooklyn</groupId>
      <artifactId>brooklyn-core</artifactId>
      <version>${brooklyn.version}</version>
      <classifier>tests</classifier>
      <scope>test</scope>
    </dependency>

    <!-- for useful YAML-based testing, such as AbstractYamlTest -->
    <dependency>
      <groupId>org.apache.brooklyn</groupId>
      <artifactId>brooklyn-camp</artifactId>
      <version>${brooklyn.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.brooklyn</groupId>
      <artifactId>brooklyn-camp</artifactId>
      <version>${brooklyn.version}</version>
      <classifier>tests</classifier>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.brooklyn</groupId>
      <artifactId>brooklyn-test-framework</artifactId>
      <version>${brooklyn.version}</version>
      <scope>test</scope>
    </dependency>

  </dependencies>

</project>
