<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2008 Sonatype, Inc.
  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
-->
<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.eclipse.m2e.wtp</groupId>
    <artifactId>org.eclipse.m2e.wtp.parent</artifactId>
    <version>1.0.1-SNAPSHOT</version>
  </parent>

  <groupId>org.eclipse.m2e.wtp</groupId>
  <artifactId>org.eclipse.m2e.wtp.jpa.parent</artifactId>
  <packaging>pom</packaging>
  <version>1.0.1-SNAPSHOT</version>
  <name>M2E-WTP JPA :: Parent</name>

  <properties>
    <eclipse.target>kepler</eclipse.target>
    <m2e-wtp.url>http://download.eclipse.org/m2e-wtp/snapshots/kepler/</m2e-wtp.url>    
    <platform.id>e43</platform.id>
  </properties>

  <modules>
    <module>org.eclipse.m2e.wtp.jpa</module>
    <module>org.eclipse.m2e.wtp.jpa.feature</module>
    <module>org.eclipse.m2e.wtp.jpa.site</module>    
  </modules>
    
  <repositories>
    <repository>
      <id>m2e-wtp</id>
      <layout>p2</layout>
      <url>${m2e-wtp.url}</url>
    </repository>
  </repositories>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-packaging-plugin</artifactId>
        <version>${tycho-version}</version>
        <configuration>
          <format>'${platform.id}-'yyyyMMdd-HHmm</format>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
