<?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/maven-v4_0_0.xsd">
  <!--
    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.    
  -->
  <parent>
    <artifactId>apache-mime4j-project</artifactId>
    <groupId>org.apache.james</groupId>
    <version>0.7-SNAPSHOT</version>
    <!-- Inherit from project -->
    <relativePath>../pom.xml</relativePath>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.james</groupId>
  <artifactId>apache-mime4j-examples</artifactId>
  <name>Apache JAMES Mime4j (Code Examples)</name>
  <version>0.7-SNAPSHOT</version>
  <description>Examples for Mime4J stream based MIME message parser</description>
  
  <dependencies>
    <dependency>
      <groupId>org.apache.james</groupId>
      <artifactId>apache-mime4j-core</artifactId>
      <version>${project.version}</version>
    </dependency>
   </dependencies>
</project>
