<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (c) 2012,2013 BSI Business Systems Integration AG.
   All rights reserved. This program and the accompanying materials
   are made available under the terms of the Eclipse Public License v1.0
   which accompanies this distribution, and is available at
   http://www.eclipse.org/legal/epl-v10.html

  Contributors:
     Stephan Leicht Vogt - initial implementation
-->
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.eclipse.scout.sdk</groupId>
    <artifactId>org.eclipse.scout.sdk.parent</artifactId>
    <version>3.10.1-SNAPSHOT</version>
    <relativePath>../org.eclipse.scout.sdk.parent</relativePath>
  </parent>

  <artifactId>org.eclipse.scout.sdk-repository</artifactId>
  <packaging>eclipse-repository</packaging>

  <name>Eclipse Scout SDK Repository</name>

  <properties>
    <p2repo-zip-path>${project.build.directory}/org.eclipse.scout.sdk-repository-${project.version}.zip</p2repo-zip-path>
  </properties>

  <build>
    <extensions>
      <!-- Enabling the use of FTP -->
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-ftp</artifactId>
        <version>1.0-beta-6</version>
      </extension>
    </extensions>

    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-p2-publisher-plugin</artifactId>
        <version>${tycho.version}</version>
        <configuration>
          <publishArtifacts>true</publishArtifacts>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
