SKIP_LINE  ***************************************************************
SKIP_LINE  * Licensed to the Apache Software Foundation (ASF) under one
SKIP_LINE  * or more contributor license agreements.  See the NOTICE file
SKIP_LINE  * distributed with this work for additional information
SKIP_LINE  * regarding copyright ownership.  The ASF licenses this file
SKIP_LINE  * to you under the Apache License, Version 2.0 (the
SKIP_LINE  * "License"); you may not use this file except in compliance
SKIP_LINE  * with the License.  You may obtain a copy of the License at
SKIP_LINE  * 
SKIP_LINE  *   http://www.apache.org/licenses/LICENSE-2.0
SKIP_LINE  * 
SKIP_LINE  * Unless required by applicable law or agreed to in writing,
SKIP_LINE  * software distributed under the License is distributed on an
SKIP_LINE  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
SKIP_LINE  * KIND, either express or implied.  See the License for the
SKIP_LINE  * specific language governing permissions and limitations
SKIP_LINE  * under the License.
SKIP_LINE  ***************************************************************
<?xml version="1.0" encoding="UTF-8"?>
${ivy.pom.license}
${ivy.pom.header}
<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>
  <groupId>${ivy.pom.groupId}</groupId>
  <artifactId>${ivy.pom.artifactId}</artifactId>
  <packaging>${ivy.pom.packaging}</packaging>
  <version>${ivy.pom.version}</version>
  <name>${ivy.pom.name}</name>
  <description>${ivy.pom.description}</description>
  <url>${ivy.pom.url}</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>
</project>
