<!--
  ============LICENSE_START=======================================================
   Copyright (C) 2018 Ericsson. 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.

  SPDX-License-Identifier: Apache-2.0
  ============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.apex-pdp.examples</groupId>
        <artifactId>examples</artifactId>
        <version>2.0.0-SNAPSHOT</version>
    </parent>

    <artifactId>examples-periodic</artifactId>
    <name>${project.artifactId}</name>
    <description>APEX periodic event example</description>

    <properties>
        <policymodel.name>PeriodicPolicyModel</policymodel.name>
        <apex-domains-periodic-dir>${project.basedir}/src</apex-domains-periodic-dir>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.onap.policy.apex-pdp.auth</groupId>
            <artifactId>cli-editor</artifactId>
            <version>${project.version}</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- Generate the APEX Policy JSON from the APEX CLI command -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>generate-policy</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>java</goal>
                        </goals>
                        <configuration>
                            <mainClass>org.onap.policy.apex.auth.clieditor.ApexCommandLineEditorMain</mainClass>
                            <classpathScope>compile</classpathScope>
                            <arguments>
                                <argument>--command-file=${project.basedir}/src/main/resources/policy/${policymodel.name}.apex</argument>
                                <argument>--output-model-file=${project.build.directory}/classes/${policymodel.name}.json</argument>
                                <argument>--log-file=${project.build.directory}/${policymodel.name}_policygeneration.log</argument>
                                <argument>--working-dir=${project.basedir}</argument>
                            </arguments>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>apexSite</id>
            <activation>
                <property>
                    <name>apexSite</name>
                </property>
            </activation>
            <properties>
                <adsite-examples-periodic-dir>${project.basedir}/src</adsite-examples-periodic-dir>
            </properties>
            <distributionManagement>
                <site>
                    <id>${project.artifactId}-site</id>
                    <url>${apex.adsite.prefix}/modules/${project.parent.artifactId}/${project.artifactId}/</url>
                </site>
            </distributionManagement>
        </profile>
    </profiles>
</project>