<?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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <packaging>pom</packaging>

    <groupId>org.apache.myfaces.extensions.cdi.core</groupId>
    <artifactId>core-project</artifactId>
    <version>1.0.0-SNAPSHOT</version>

    <name>MyFaces Extensions-CDI Core</name>

    <parent>
        <groupId>org.apache.myfaces.extensions.cdi</groupId>
        <artifactId>myfaces-extcdi-parent</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </parent>

    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/myfaces/extensions/cdi/branches/1_0_0_rc/core</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/myfaces/extensions/cdi/branches/1_0_0_rc/core</developerConnection>
        <url>http://svn.apache.org/viewvc/myfaces/extensions/cdi/branches/1_0_0_rc/core</url>
    </scm>

    <modules>
        <module>api</module>
        <module>impl</module>
    </modules>

    <repositories>
        <repository>
            <id>repo1.maven.org</id>
            <name>Maven repository (for cdi-api)</name>
            <url>http://repo1.maven.org/maven2</url>
        </repository>
    </repositories>

    <dependencies>
    </dependencies>

</project>
