blob: f9b131f540b506c20aeac0778d13f8cf3346e956 [file]
<?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>plc4x-code-generation</artifactId>
<version>@project.version@</version>
<relativePath>../../../..</relativePath>
</parent>
<artifactId>plc4py-python-mspec-test</artifactId>
<name>PLC4PY: Driver: Python Mspec Test</name>
<description></description>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>python-copy-setup</id>
<phase>initialize</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>./</outputDirectory>
<resources>
<resource>
<targetPath>.</targetPath>
<directory>${project.basedir}/../../../../../plc4py/</directory>
<includes>
<include>pyproject.toml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
<encoding>UTF-8</encoding>
</configuration>
</execution>
<execution>
<id>python-copy</id>
<phase>initialize</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>./plc4py</outputDirectory>
<resources>
<resource>
<targetPath>.</targetPath>
<directory>${project.basedir}/../../../../../plc4py/plc4py</directory>
<filtering>false</filtering>
</resource>
</resources>
<encoding>UTF-8</encoding>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.plc4x.plugins</groupId>
<artifactId>plc4x-maven-plugin</artifactId>
<version>${plc4x-code-generation.version}</version>
<executions>
<execution>
<id>generate-driver</id>
<phase>generate-sources</phase>
<goals>
<goal>generate-driver</goal>
</goals>
<configuration>
<protocolName>test</protocolName>
<languageName>python</languageName>
<outputFlavor>read-write</outputFlavor>
<outputDir>${project.basedir}/plc4py/protocols</outputDir>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.karaf.tooling</groupId>
<artifactId>karaf-maven-plugin</artifactId>
<executions>
<execution>
<id>generate-feature-xml</id>
<phase>compile</phase>
<goals>
<!-- Generate the feature.xml -->
<goal>features-generate-descriptor</goal>
<!-- Check the feature.xml -->
<goal>verify</goal>
</goals>
<configuration>
<enableGeneration>true</enableGeneration>
<aggregateFeatures>true</aggregateFeatures>
</configuration>
</execution>
<execution>
<id>build-kar</id>
<phase>package</phase>
<goals>
<!--
Build a kar archive (Jar containing the feature.xml
as well as the module content and it's dependencies.
-->
<goal>kar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
<Bundle-Activator>org.apache.plc4x.java.osgi.DriverActivator</Bundle-Activator>
<Export-Service>org.apache.plc4x.java.api.PlcDriver,org.apache.plc4x.protocol.test
</Export-Service>
<Import-Package>
*
</Import-Package>
</instructions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<configuration>
<usedDependencies combine.children="append">
<usedDependency>org.apache.plc4x:plc4x-code-generation-language-python</usedDependency>
<usedDependency>org.apache.plc4x:plc4x-code-generation-protocol-test</usedDependency>
</usedDependencies>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>python-venv</id>
<phase>initialize</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${python.exe.bin}</executable>
<arguments>
<argument>-m</argument>
<argument>venv</argument>
<argument>./venv</argument>
</arguments>
</configuration>
</execution>
<execution>
<id>python-upgrade-pip</id>
<phase>initialize</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${python.venv.bin}${python.exe.bin}</executable>
<arguments>
<argument>-m</argument>
<argument>pip</argument>
<argument>install</argument>
<argument>--upgrade</argument>
<argument>pip</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>python-install</id>
<phase>process-sources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${python.venv.bin}pip3</executable>
<arguments>
<argument>install</argument>
<argument>.</argument>
</arguments>
</configuration>
</execution>
<execution>
<id>python-test-compile</id>
<phase>process-sources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${python.venv.bin}pip3</executable>
<arguments>
<argument>install</argument>
<argument>.[dev]</argument>
</arguments>
</configuration>
</execution>
<execution>
<id>python-black</id>
<phase>process-sources</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${python.venv.bin}${python.exe.bin}</executable>
<arguments>
<argument>-m</argument>
<argument>black</argument>
<argument>.</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
<!--
Make the failsafe execute all integration-tests
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<!--
Notice the @ instead of the $ as prefix? That's late evaluation.
-->
<!--argLine>@{failsafeArgLine}</argLine-->
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4x-code-generation-language-python</artifactId>
<version>@project.version@</version>
<!-- Scope is 'provided' as this way it's not shipped with the driver -->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4x-code-generation-protocol-test</artifactId>
<version>@project.version@</version>
</dependency>
<dependency>
<groupId>org.apache.plc4x</groupId>
<artifactId>plc4x-code-generation-protocol-test</artifactId>
<version>@project.version@</version>
<classifier>tests</classifier>
<type>test-jar</type>
<scope>test</scope>
</dependency>
</dependencies>
</project>