<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.openecomp</groupId>
		<artifactId>so</artifactId>
		<version>1.1.0-SNAPSHOT</version>
	</parent>

	<groupId>org.openecomp.so</groupId>
	<artifactId>mso-catalog-db</artifactId>
	<name>mso-catalog-db</name>
	<description>MSO Catalog Database definition and Hibernate objects</description>

	<build>
		<finalName>${project.artifactId}</finalName>
		<plugins>
			<plugin>
				<groupId>de.juplo</groupId>
				<artifactId>hibernate4-maven-plugin</artifactId>
				<version>1.1.0</version>
				<executions>
					<!-- MySQL -->
					<execution>
						<id>MySQL</id>
						<goals>
							<goal>export</goal>
						</goals>
						<configuration>
							<hibernateDialect>org.hibernate.dialect.MySQL5Dialect</hibernateDialect>
							<hibernateMapping>
								${project.basedir}/src/main/resources/AllottedResourceCustomization.hbm.xml,
								${project.basedir}/src/main/resources/HeatEnvironment.hbm.xml,
								${project.basedir}/src/main/resources/HeatNestedTemplate.hbm.xml,
								${project.basedir}/src/main/resources/HeatTemplate.hbm.xml,
								${project.basedir}/src/main/resources/ModelRecipe.hbm.xml,
								${project.basedir}/src/main/resources/NetworkRecipe.hbm.xml,
								${project.basedir}/src/main/resources/NetworkResource.hbm.xml,
								${project.basedir}/src/main/resources/NetworkResourceCustomization.hbm.xml,
								${project.basedir}/src/main/resources/Service.hbm.xml,
								${project.basedir}/src/main/resources/ServiceToAllottedResources.hbm.xml,
								${project.basedir}/src/main/resources/ServiceToNetworks.hbm.xml,
								${project.basedir}/src/main/resources/VfModule.hbm.xml,
								${project.basedir}/src/main/resources/VfModuleToHeatFiles.hbm.xml,
								${project.basedir}/src/main/resources/VnfComponent.hbm.xml,
								${project.basedir}/src/main/resources/VnfComponentsRecipe.hbm.xml,
								${project.basedir}/src/main/resources/VnfRecipe.hbm.xml,
								${project.basedir}/src/main/resources/VnfResource.hbm.xml
							</hibernateMapping>
							<target>SCRIPT</target>
							<skip>false</skip>
							<force>true</force>
							<outputFile>${project.build.directory}/MySQL-Catalog-schema.sql</outputFile>
						</configuration>
					</execution>
				</executions>
			</plugin>
			   <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.0.1</version>
                    <executions>

                        <execution>
                            <id>copy-sql-file</id>
                            <phase>install</phase>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <configuration>
                               <overwrite>true</overwrite>

                                <outputDirectory>${project.basedir}/../packages/root-pack-extras/config-resources/mariadb/db-sql-scripts/main-schemas</outputDirectory>

                                <resources>
                                    <resource>
                                      <directory>${project.build.directory}</directory>
                                      <filtering>false</filtering>
                                      <includes>
                                           <include>*.sql</include>
                                      </includes>
                                    </resource>
                                </resources>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
		</plugins>
		<pluginManagement>
			<plugins>
				<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>de.juplo</groupId>
										<artifactId>
											hibernate4-maven-plugin
										</artifactId>
										<versionRange>
											[1.0.3,)
										</versionRange>
										<goals>
											<goal>export</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>

	<dependencies>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>4.3.6.Final</version>
			<exclusions>
				<!-- Avoid hibernate inclusion as provided in Jboss -->
				<exclusion>
					<groupId>org.jboss</groupId>
					<artifactId>jandex</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.javassist</groupId>
					<artifactId>javassist</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.jboss.logging</groupId>
					<artifactId>jboss-logging</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.jboss.logging</groupId>
   					<artifactId>jboss-logging-annotations</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.jboss.spec.javax.transaction</groupId>
  					<artifactId>jboss-transaction-api_1.2_spec</artifactId>
				</exclusion>
				<exclusion>
				 	<groupId>antlr</groupId>
  					<artifactId>antlr</artifactId>
				</exclusion>
				<exclusion>
				 	<groupId>dom4j</groupId>
  					<artifactId>dom4j</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
             <groupId>org.evosuite</groupId>
             <artifactId>evosuite-standalone-runtime</artifactId>
             <version>${evosuiteVersion}</version>
             <scope>test</scope>
        </dependency>
		<dependency>
			<groupId>org.openecomp.so</groupId>
			<artifactId>common</artifactId>
			<version>${project.version}</version>
		</dependency>
	</dependencies>
</project>
