<!--
  ============LICENSE_START=======================================================
  ONAP Policy Engine - Common Modules
  ================================================================================
  Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  ================================================================================
  Licensed 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.
  ============LICENSE_END=========================================================
  -->

<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.onap.policy.common</groupId>
		<artifactId>common-modules</artifactId>
		<version>1.1.3-SNAPSHOT</version>
	</parent>

  <artifactId>ONAP-Logging</artifactId>
  <description>ONAP Logging Framework</description>
  <packaging>jar</packaging>

  <dependencies>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.0.1</version>
      <scope>compile</scope>
    </dependency>
	<dependency>
		<groupId>org.slf4j</groupId>
		<artifactId>slf4j-api</artifactId>
		<version>1.7.12</version>
	</dependency>
	<dependency>
	    <groupId>com.att.eelf</groupId>
		<artifactId>eelf-core</artifactId>
		<version>0.0.1</version>
	</dependency>
	<dependency>
		<groupId>log4j</groupId>
		<artifactId>log4j</artifactId>
		<version>1.2.17</version>
		<scope>provided</scope>
	</dependency>
  </dependencies>
 
	<build>
		<plugins>
			<plugin>
				<groupId>com.att.eelf</groupId>
				<artifactId>eelf-maven-plugin</artifactId>
				<version>0.0.1</version>
				<executions>
					<execution>
						<phase>install</phase>
						<goals>
							<goal>WikiMsgGenerator</goal>
						</goals>
					</execution>
				</executions>
				<dependencies>
					<!-- We need to include the dependency of the project so that its include 
						in classpath when running plugin -->
					<dependency>
						<groupId>org.onap.policy.common</groupId>
						<artifactId>ONAP-Logging</artifactId>
						<version>${project.version}</version>
					</dependency>
				</dependencies>
				<configuration>
					<outputDirectory>target/messages</outputDirectory>
					<outputFile>messages.html</outputFile>
					<resources>
						<resource>
							<messageClass>org.onap.policy.common.logging.eelf.MessageCodes</messageClass>
							This needs to be replaced with your Enum class name .which
							implements EELFResolvableErrorEnum and have your defined error
							codes.
							<header><![CDATA[<p>   <ac:macro ac:name="toc" /> </p>
                <p>
        <ac:macro ac:name="anchor"> <ac:default-parameter>Application Messages</ac:default-parameter>  </ac:macro> </p> <h2>Application Messages</h2>]]></header>
						</resource>

					</resources>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
