<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">
  <!-- 
  @@@ START COPYRIGHT @@@                                                       

  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.

  @@@ END COPYRIGHT @@@
  -->
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.apache.trafodion.jdbc</groupId>
  <artifactId>trafjdbcT2</artifactId>
  <packaging>jar</packaging>
  <version>${env.TRAFODION_VER}</version> 
  <name>jdbcT2</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
<build>
<plugins>
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>properties-maven-plugin</artifactId>
    <version>1.0.0</version>
    <executions>
        <execution>
        <phase>initialize</phase>
        <goals>
            <goal>read-project-properties</goal>
        </goals>
    <configuration>
    <files>
        <file>${basedir}/../../sqf/export/include/SCMBuildMan.mf</file>
        <file>${basedir}/buildId</file>
    </files>
    </configuration>
    </execution>
    </executions>
  </plugin>
  <plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.8</version>
    <executions>
        <execution>
        <phase>generate-sources</phase>
        <configuration>
        <tasks>
        <copy file="${basedir}/src/main/java/org/apache/trafodion/jdbc/t2/DriverInfo.java-tmpl" tofile="${basedir}/src/main/java/org/apache/trafodion/jdbc/t2/DriverInfo.java" overwrite="true"/>
        <replace token= "@@@@"  value="Traf_JDBC_Type2_Build_${bldId}"  file="${basedir}/src/main/java/org/apache/trafodion/jdbc/t2/DriverInfo.java">
        </replace>
        <copy file="${basedir}/LICENSE" todir="${basedir}/src/main/resources/META-INF" overwrite="true"/>
        <copy file="${basedir}/NOTICE" todir="${basedir}/src/main/resources/META-INF" overwrite="true"/>
        </tasks>
        </configuration>
        <goals>
            <goal>run</goal>
        </goals>
        </execution>
    </executions>
  </plugin>
  <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.4</version>
        <configuration>
            <archive>
            <addMavenDescriptor>false</addMavenDescriptor>
            <manifest>
                <mainClass>org.apache.trafodion.jdbc.t2.DriverInfo</mainClass>
                <classpathPrefix>dependency-jars/</classpathPrefix>
            </manifest>
            <manifestEntries>
                <Implementation-Version-1>Version ${project.version}</Implementation-Version-1> 
                <Implementation-Version-2>${TRAFODION_VER_PROD} Release ${project.version}</Implementation-Version-2>
                <Implementation-Version-3>${Implementation-Version-3}</Implementation-Version-3>
                <Implementation-Version-4>${Implementation-Version-4}</Implementation-Version-4>
                <Implementation-Version-5>${Implementation-Version-5}</Implementation-Version-5>
                <Implementation-Version-6>${Implementation-Version-6}</Implementation-Version-6>
                <Product-Name>${project.name}</Product-Name>
            </manifestEntries>
            </archive>
        </configuration>
    </plugin>
  </plugins>
   </build>
</project>
