<?xml version="1.0" encoding="UTF-8"?>
<!--
  ============LICENSE_START=======================================================
   Copyright (C) 2020 Nordix Foundation.
   Modifications Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
   Modifications Copyright (C) 2022 Bell Canada. 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.8.0-SNAPSHOT</version>
   </parent>
   <artifactId>examples-grpc</artifactId>
   <name>examples-grpc</name>
   <description>Specific code for the APEX gRPC Example</description>
   <properties>
      <policymodel.name>APEXgRPCPolicy</policymodel.name>
      <toscapolicy.name>APEXgRPCToscaPolicy</toscapolicy.name>
      <!-- Update the required node type value for generating a node template -->
      <nodeType.name>org.onap.nodetypes.policy.MetadataSet</nodeType.name>
   </properties>
   <dependencies>
      <dependency>
         <groupId>org.onap.policy.apex-pdp.auth</groupId>
         <artifactId>cli-editor</artifactId>
         <version>${project.version}</version>
      </dependency>
      <dependency>
         <groupId>org.onap.policy.apex-pdp.services</groupId>
         <artifactId>services-engine</artifactId>
         <version>${project.version}</version>
      </dependency>
      <dependency>
         <groupId>org.onap.policy.apex-pdp.plugins.plugins-context.plugins-context-schema</groupId>
         <artifactId>plugins-context-schema-avro</artifactId>
         <version>${project.version}</version>
      </dependency>
      <dependency>
         <groupId>org.onap.policy.apex-pdp.plugins.plugins-context.plugins-context-schema</groupId>
         <artifactId>plugins-context-schema-json</artifactId>
         <version>${project.version}</version>
      </dependency>
      <dependency>
         <groupId>org.onap.policy.apex-pdp.plugins.plugins-executor</groupId>
         <artifactId>plugins-executor-javascript</artifactId>
         <version>${project.version}</version>
      </dependency>
      <dependency>
         <groupId>org.onap.policy.apex-pdp.plugins.plugins-event.plugins-event-carrier</groupId>
         <artifactId>plugins-event-carrier-grpc</artifactId>
         <version>${project.version}</version>
      </dependency>
      <dependency>
         <groupId>org.onap.policy.apex-pdp.plugins.plugins-event.plugins-event-carrier</groupId>
         <artifactId>plugins-event-carrier-restclient</artifactId>
         <version>${project.version}</version>
      </dependency>
      <dependency>
         <groupId>org.onap.policy.models.policy-models-interactions.model-impl</groupId>
         <artifactId>events</artifactId>
         <version>${version.policy.models}</version>
      </dependency>
      <dependency>
        <groupId>org.onap.policy.models.policy-models-interactions</groupId>
        <artifactId>simulators</artifactId>
         <version>${version.policy.models}</version>
      </dependency>
      <dependency>
         <groupId>org.onap.policy.common</groupId>
         <artifactId>policy-endpoints</artifactId>
      </dependency>
      <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <scope>test</scope>
      </dependency>
   </dependencies>
   <build>
      <plugins>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-surefire-plugin</artifactId>
           <configuration>
             <argLine>-Xss1m</argLine>
           </configuration>
         </plugin>
         <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <executions>
               <!-- Generate the APEX Policy JSON from the APEX CLI command -->
               <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>
               <!-- Generate the APEX ToscaPolicy JSON file-->
               <execution>
                  <id>generate-tosca-policy</id>
                  <phase>compile</phase>
                  <goals>
                     <goal>java</goal>
                  </goals>
                  <configuration>
                     <mainClass>org.onap.policy.apex.auth.clieditor.tosca.ApexCliToscaEditorMain</mainClass>
                     <classpathScope>compile</classpathScope>
                     <arguments>
                        <argument>--command-file=${project.basedir}/src/main/resources/policy/${policymodel.name}.apex</argument>
                        <argument>--output-tosca-file=${project.build.directory}/classes/${toscapolicy.name}.json</argument>
                        <argument>--log-file=${project.build.directory}/${policymodel.name}_policygeneration.log</argument>
                        <argument>--apex-config-file=${project.basedir}/src/main/resources/examples/config/APEXgRPC/ApexConfig.json</argument>
                        <argument>--tosca-template-file=${project.basedir}/src/main/resources/tosca/ToscaTemplate.json</argument>
                     </arguments>
                  </configuration>
               </execution>
               <!-- Generate Tosca policy with metadataSet reference and a node template json file with policy model -->
               <execution>
                  <id>generate-tosca-policy-metadataSet</id>
                  <phase>compile</phase>
                  <goals>
                     <goal>java</goal>
                  </goals>
                  <configuration>
                     <mainClass>org.onap.policy.apex.auth.clieditor.tosca.ApexCliToscaEditorMain</mainClass>
                     <classpathScope>compile</classpathScope>
                     <arguments>
                        <argument>--command-file=${project.basedir}/src/main/resources/policy/${policymodel.name}.apex</argument>
                        <argument>--output-tosca-file=${project.build.directory}/classes/${toscapolicy.name}.metadataSet.json</argument>
                        <argument>--log-file=${project.build.directory}/${policymodel.name}_policygeneration.log</argument>
                        <argument>--apex-config-file=${project.basedir}/src/main/resources/examples/config/APEXgRPC/ApexConfig.json</argument>
                        <argument>--tosca-template-file=${project.basedir}/src/main/resources/tosca/ToscaTemplate.json</argument>
                        <argument>--node-type=${nodeType.name}</argument>
                        <argument>--output-node-template-file=${project.build.directory}/classes/${toscapolicy.name}.nodeTemplate.json</argument>
                     </arguments>
                  </configuration>
               </execution>
            </executions>
         </plugin>
      </plugins>
   </build>
</project>
