<?xml version="1.0" encoding="UTF-8"?>
<!--
  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.
-->
<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.apache.plc4x</groupId>
    <artifactId>plc4j-apache-nifi</artifactId>
    <version>0.8.0</version>
  </parent>

  <artifactId>plc4j-nifi-plc4x-nar</artifactId>
  <packaging>nar</packaging>

  <name>PLC4J: Integrations: Apache Nifi: NAR</name>

  <properties>
    <maven.javadoc.skip>true</maven.javadoc.skip>
    <source.skip>true</source.skip>
  </properties>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.owasp</groupId>
          <artifactId>dependency-check-maven</artifactId>
          <configuration>
            <suppressionFiles>${project.basedir}/false-positives.xml</suppressionFiles>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <configuration>
            <usedDependencies>
              <usedDependency>org.apache.plc4x:plc4j-nifi-plc4x-processors</usedDependency>
              <usedDependency>org.apache.plc4x:plc4j-api</usedDependency>
              <usedDependency>org.apache.plc4x:plc4j-driver-ab-eth</usedDependency>
              <usedDependency>org.apache.plc4x:plc4j-driver-ads</usedDependency>
              <usedDependency>org.apache.plc4x:plc4j-driver-canopen</usedDependency>
              <usedDependency>org.apache.plc4x:plc4j-driver-eip</usedDependency>
              <usedDependency>org.apache.plc4x:plc4j-driver-knxnetip</usedDependency>
              <usedDependency>org.apache.plc4x:plc4j-driver-modbus</usedDependency>
              <usedDependency>org.apache.plc4x:plc4j-driver-opcua</usedDependency>
              <usedDependency>org.apache.plc4x:plc4j-driver-s7</usedDependency>
              <usedDependency>org.apache.plc4x:plc4j-driver-simulated</usedDependency>
              <usedDependency>org.apache.plc4x:plc4j-transport-pcap-replay</usedDependency>
              <usedDependency>org.apache.plc4x:plc4j-transport-raw-socket</usedDependency>
              <usedDependency>org.apache.plc4x:plc4j-transport-serial</usedDependency>
              <usedDependency>org.apache.plc4x:plc4j-transport-tcp</usedDependency>
              <usedDependency>org.apache.plc4x:plc4j-transport-udp</usedDependency>
            </usedDependencies>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <dependencies>
    <dependency>
      <groupId>org.apache.plc4x</groupId>
      <artifactId>plc4j-nifi-plc4x-processors</artifactId>
      <version>0.8.0</version>
    </dependency>
    <!-- PLC4X -->
    <dependency>
      <groupId>org.apache.plc4x</groupId>
      <artifactId>plc4j-api</artifactId>
      <version>0.8.0</version>
    </dependency>
    <!-- Bundle Drivers -->
    <dependency>
      <groupId>org.apache.plc4x</groupId>
      <artifactId>plc4j-driver-ab-eth</artifactId>
      <version>0.8.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.plc4x</groupId>
      <artifactId>plc4j-driver-ads</artifactId>
      <version>0.8.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.plc4x</groupId>
      <artifactId>plc4j-driver-canopen</artifactId>
      <version>0.8.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.plc4x</groupId>
      <artifactId>plc4j-driver-eip</artifactId>
      <version>0.8.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.plc4x</groupId>
      <artifactId>plc4j-driver-knxnetip</artifactId>
      <version>0.8.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.plc4x</groupId>
      <artifactId>plc4j-driver-modbus</artifactId>
      <version>0.8.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.plc4x</groupId>
      <artifactId>plc4j-driver-opcua</artifactId>
      <version>0.8.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.plc4x</groupId>
      <artifactId>plc4j-driver-s7</artifactId>
      <version>0.8.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.plc4x</groupId>
      <artifactId>plc4j-driver-simulated</artifactId>
      <version>0.8.0</version>
    </dependency>

    <dependency>
      <groupId>org.apache.plc4x</groupId>
      <artifactId>plc4j-transport-pcap-replay</artifactId>
      <version>0.8.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.plc4x</groupId>
      <artifactId>plc4j-transport-raw-socket</artifactId>
      <version>0.8.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.plc4x</groupId>
      <artifactId>plc4j-transport-serial</artifactId>
      <version>0.8.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.plc4x</groupId>
      <artifactId>plc4j-transport-tcp</artifactId>
      <version>0.8.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.plc4x</groupId>
      <artifactId>plc4j-transport-udp</artifactId>
      <version>0.8.0</version>
    </dependency>
  </dependencies>

</project>
