| <?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</groupId> |
| <artifactId>apache</artifactId> |
| <version>18</version> |
| </parent> |
| |
| <groupId>org.apache.plx4x</groupId> |
| <artifactId>plc4x-parent</artifactId> |
| <version>0.0.1-SNAPSHOT</version> |
| <packaging>pom</packaging> |
| |
| <name>PLC4X</name> |
| <description>PLC4X is an effort to create a universal library for accessing industrial programmable logic controllers using a variety of protocols using a uniform API.</description> |
| <url>https://plc4x.apache.org</url> |
| <inceptionYear>2017</inceptionYear> |
| |
| <scm> |
| <connection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-plc4x.git</connection> |
| <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-plc4x.git</developerConnection> |
| <url>https://github.com/apache/incubator-plc4x</url> |
| <tag>HEAD</tag> |
| </scm> |
| |
| <!-- Only configure the site distribution as the rest is handled by the apache parent --> |
| <distributionManagement> |
| <site> |
| <id>apache.website</id> |
| <url>scm:git:https://git-wip-us.apache.org/repos/asf/incubator-plc4x.git</url> |
| </site> |
| </distributionManagement> |
| |
| <issueManagement> |
| <system>Jira</system> |
| <url>https://issues.apache.org/jira/browse/PLC4X</url> |
| </issueManagement> |
| |
| <mailingLists> |
| <mailingList> |
| <name>Apache PLC4X Developer List</name> |
| <subscribe>dev-subscribe@plc4x.apache.org</subscribe> |
| <unsubscribe>dev-unsubscribe@plc4x.apache.org</unsubscribe> |
| <post>dev@plc4x.apache.org</post> |
| <archive>http://mail-archives.apache.org/mod_mbox/plc4x-dev/</archive> |
| </mailingList> |
| </mailingLists> |
| |
| <properties> |
| <java.version>1.8</java.version> |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| <project.reporting.outputencoding>UTF-8</project.reporting.outputencoding> |
| <maven.version>3.3.1</maven.version> |
| |
| <!-- URL of the ASF SonarQube server --> |
| <sonar.host.url>https://builds.apache.org/analysis</sonar.host.url> |
| <!-- Exclude all generated code --> |
| <sonar.exclusions>file:**/generated-sources/**</sonar.exclusions> |
| <!-- Tell sonar where the coverage reports are located --> |
| <sonar.jacoco.reportPath>${project.build.directory}/coverage-reports/jacoco-ut.exec</sonar.jacoco.reportPath> |
| <sonar.jacoco.itReportPath>${project.build.directory}/coverage-reports/jacoco-it.exec</sonar.jacoco.itReportPath> |
| |
| <junit-platform.version>1.0.2</junit-platform.version> |
| <junit-jupiter.version>5.0.2</junit-jupiter.version> |
| </properties> |
| |
| <modules> |
| <!-- Core PLC4X modules --> |
| <module>plc4c</module> |
| <module>plc4j</module> |
| <module>plc4s</module> |
| |
| <!-- Integration modules for other frameworks --> |
| <module>integrations</module> |
| |
| <!-- Example applications --> |
| <module>applications</module> |
| </modules> |
| |
| <build> |
| <plugins> |
| <!-- Plugin for analysing the project based on neo4j queries --> |
| <plugin> |
| <groupId>com.buschmais.jqassistant</groupId> |
| <artifactId>jqassistant-maven-plugin</artifactId> |
| <version>1.3.0</version> |
| <executions> |
| <execution> |
| <goals> |
| <goal>scan</goal> |
| <goal>analyze</goal> |
| </goals> |
| <configuration> |
| <failOnSeverity>MAJOR</failOnSeverity> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <!-- Check if all source files have the required apache license headers --> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>license-check</id> |
| <phase>verify</phase> |
| <goals> |
| <goal>check</goal> |
| </goals> |
| </execution> |
| </executions> |
| <configuration> |
| <excludes> |
| <!-- Git related files --> |
| <exclude>**/.git/**</exclude> |
| <exclude>**/.gitignore</exclude> |
| |
| <!-- Maven related files --> |
| <exclude>**/target/**</exclude> |
| |
| <!-- Eclipse related files --> |
| <exclude>**/.project</exclude> |
| <exclude>**/.settings/**</exclude> |
| <exclude>**/.classpath</exclude> |
| |
| <!-- IntelliJ related files --> |
| <exclude>**/.idea/**</exclude> |
| <exclude>**/*.iml</exclude> |
| |
| <!-- Asciidoctor generated files --> |
| <exclude>**/.asciidoctor/**</exclude> |
| </excludes> |
| </configuration> |
| </plugin> |
| |
| <!-- |
| This plugin doesn't really do much, it makes sure the jacoco agent |
| is downloaded and that the path to this is saved in an environment |
| variable so we can access this later on in the build. |
| --> |
| <plugin> |
| <groupId>org.jacoco</groupId> |
| <artifactId>jacoco-maven-plugin</artifactId> |
| <executions> |
| <!-- |
| Prepares the property pointing to the JaCoCo runtime agent which |
| is passed as VM argument when Maven the Surefire plugin is executed. |
| --> |
| <execution> |
| <id>pre-unit-test</id> |
| <goals> |
| <goal>prepare-agent</goal> |
| </goals> |
| <configuration> |
| <!-- |
| Sets the name of the property containing the settings |
| for JaCoCo runtime agent. |
| --> |
| <propertyName>surefireArgLine</propertyName> |
| </configuration> |
| </execution> |
| <!-- |
| Prepares the property pointing to the JaCoCo runtime agent which |
| is passed as VM argument when Maven the Failsafe plugin is executed. |
| --> |
| <execution> |
| <id>pre-integration-test</id> |
| <phase>pre-integration-test</phase> |
| <goals> |
| <goal>prepare-agent</goal> |
| </goals> |
| <configuration> |
| <!-- |
| Sets the name of the property containing the settings |
| for JaCoCo runtime agent. |
| --> |
| <propertyName>failsafeArgLine</propertyName> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <!-- |
| Make the surefire execute all unit-tests |
| --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <configuration> |
| <!-- |
| Notice the @ instead of the $ as prefix? That's late evaluation. |
| --> |
| <argLine>@{surefireArgLine}</argLine> |
| </configuration> |
| <dependencies> |
| <dependency> |
| <groupId>org.junit.platform</groupId> |
| <artifactId>junit-platform-surefire-provider</artifactId> |
| <version>${junit-platform.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter-engine</artifactId> |
| <version>${junit-jupiter.version}</version> |
| </dependency> |
| </dependencies> |
| </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> |
| |
| <!-- Generate the legally required text files in the jars --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-remote-resources-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>process-resource-bundles</id> |
| <goals> |
| <goal>process</goal> |
| </goals> |
| <configuration> |
| <resourceBundles> |
| <!-- Will generate META-INF/{DEPENDENCIES,LICENSE,NOTICE} --> |
| <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle> |
| <!-- Will generate META-INF/DISCLAIMER --> |
| <resourceBundle>org.apache:apache-incubator-disclaimer-resource-bundle:1.1</resourceBundle> |
| </resourceBundles> |
| <!-- Content in this directory will be appended to generated resources --> |
| <appendedResourcesDirectory>${remote-resources-maven-plugin.remote-resources.dir}</appendedResourcesDirectory> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <!-- |
| The reflow maven skin used for the site-generation requires some static resources. |
| The following plugins configure the acquisition and location of these resources. |
| --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>unpack-js-deps</id> |
| <phase>pre-site</phase> |
| <goals> |
| <goal>unpack</goal> |
| </goals> |
| <configuration> |
| <!-- Bundle these dependencies in the war. |
| |
| You must maintain the corresponding info if you |
| add/remove artifacts or change their versions: |
| - entry in src/main/webapp/META-INF/LICENSE |
| - entry in src/main/webapp/META-INF/NOTICE when appropriate |
| |
| You must maintain the info in the corresponding |
| console/server files because it bundles this war. |
| |
| You must maintain the info in this project's |
| corresponding platforms/java7 files. |
| --> |
| <artifactItems> |
| <artifactItem> |
| <groupId>org.webjars</groupId> |
| <artifactId>bootstrap</artifactId> |
| <version>2.3.2</version> |
| <includes>META-INF/resources/webjars/**/*.min.*</includes> |
| <excludes>META-INF/resources/webjars/**/bootstrap.min.css</excludes> |
| </artifactItem> |
| <artifactItem> |
| <groupId>org.webjars</groupId> |
| <artifactId>jquery</artifactId> |
| <version>1.9.1</version> |
| <includes>META-INF/resources/webjars/**/jquery.min.js</includes> |
| </artifactItem> |
| </artifactItems> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <!-- Replace the bootstrap css with the version of the theme --> |
| <plugin> |
| <groupId>com.googlecode.maven-download-plugin</groupId> |
| <artifactId>download-maven-plugin</artifactId> |
| <version>1.2.1</version> |
| <executions> |
| <execution> |
| <id>get-flatly-bootstrap-theme</id> |
| <phase>pre-site</phase> |
| <goals> |
| <goal>wget</goal> |
| </goals> |
| <configuration> |
| <url>http://netdna.bootstrapcdn.com/bootswatch/2.3.2/flatly/bootstrap.min.css</url> |
| <outputDirectory>${project.build.directory}/dependency/META-INF/resources/webjars/bootstrap/2.3.2/css/</outputDirectory> |
| <outputFileName>bootstrap.min.css</outputFileName> |
| </configuration> |
| </execution> |
| <execution> |
| <id>get-fontawesome</id> |
| <phase>pre-site</phase> |
| <goals> |
| <goal>wget</goal> |
| </goals> |
| <configuration> |
| <url>http://fontawesome.io/assets/font-awesome-4.7.0.zip</url> |
| <outputDirectory>${project.build.directory}/dependency</outputDirectory> |
| <unpack>true</unpack> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-resources-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>copy-site-resources</id> |
| <phase>pre-site</phase> |
| <goals> |
| <goal>copy-resources</goal> |
| </goals> |
| <configuration> |
| <outputDirectory>${project.build.directory}/site</outputDirectory> |
| <resources> |
| <resource> |
| <directory>${project.build.directory}/dependency/META-INF/resources/webjars/bootstrap/2.3.2</directory> |
| </resource> |
| <resource> |
| <directory>${project.build.directory}/dependency/META-INF/resources/webjars/jquery/1.9.1</directory> |
| <targetPath>${project.build.directory}/site/js</targetPath> |
| </resource> |
| <resource> |
| <directory>${project.build.directory}/dependency/font-awesome-4.7.0/css</directory> |
| <includes> |
| <include>font-awesome.min.css</include> |
| </includes> |
| <targetPath>${project.build.directory}/site/css</targetPath> |
| </resource> |
| <resource> |
| <directory>${project.build.directory}/dependency/font-awesome-4.7.0/fonts</directory> |
| <targetPath>${project.build.directory}/site/fonts</targetPath> |
| </resource> |
| </resources> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.rat</groupId> |
| <artifactId>apache-rat-plugin</artifactId> |
| <version>0.12</version> |
| <configuration> |
| <!-- |
| Make rat output the files with missing licensed directly into the |
| build output (This way we don't have to look into the rat.txt to find |
| out which ones) |
| --> |
| <consoleOutput>true</consoleOutput> |
| </configuration> |
| <dependencies> |
| <dependency> |
| <groupId>org.apache.maven.doxia</groupId> |
| <artifactId>doxia-core</artifactId> |
| <version>1.6</version> |
| <exclusions> |
| <exclusion> |
| <groupId>xerces</groupId> |
| <artifactId>xercesImpl</artifactId> |
| </exclusion> |
| </exclusions> |
| </dependency> |
| </dependencies> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.jacoco</groupId> |
| <artifactId>jacoco-maven-plugin</artifactId> |
| <version>0.7.9</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| <version>3.6.1</version> |
| <configuration> |
| <source>${java.version}</source> |
| <target>${java.version}</target> |
| <testSource>${java.version}</testSource> |
| <testTarget>${java.version}</testTarget> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <version>2.20</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-failsafe-plugin</artifactId> |
| <version>2.20</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| <version>3.0.2</version> |
| <dependencies> |
| <!-- Try to get rid of out of heap errors on travis. --> |
| <dependency> |
| <groupId>org.codehaus.plexus</groupId> |
| <artifactId>plexus-archiver</artifactId> |
| <version>3.3</version> |
| </dependency> |
| </dependencies> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-source-plugin</artifactId> |
| <version>3.0.1</version> |
| <executions> |
| <execution> |
| <id>attach-sources</id> |
| <phase>verify</phase> |
| <goals> |
| <goal>jar-no-fork</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-install-plugin</artifactId> |
| <version>2.5.2</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-plugin</artifactId> |
| <version>3.0.1</version> |
| </plugin> |
| |
| <!-- Make sure the DISCLAIMER contains the incubator version --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-remote-resources-plugin</artifactId> |
| <version>1.5</version><!--$NO-MVN-MAN-VER$--> |
| </plugin> |
| |
| <!-- |
| Inject the "incubating" into the output filename |
| N.B. this finalName config spec is currently ignored/overridden |
| by the "apache-release" profile based configuration |
| in this pom. See that config for the finalName. |
| Retain this for now in case we get to the point where |
| that "apache-release" config is no longer needed. |
| --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-assembly-plugin</artifactId> |
| <version>2.5.3</version> |
| <configuration> |
| <finalName>apache-plc4x-incubating-${project.version}</finalName> |
| </configuration> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.sonarsource.scanner.maven</groupId> |
| <artifactId>sonar-maven-plugin</artifactId> |
| <version>3.3.0.603</version> |
| </plugin> |
| |
| <!-- Configure the Site generation --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-site-plugin</artifactId> |
| <!-- get errors with site:site task when using the default (3.6) version --> |
| <version>3.4</version><!--$NO-MVN-MAN-VER$--> |
| <configuration> |
| <generateReports>true</generateReports> |
| <generateSitemap>true</generateSitemap> |
| <relativizeDecorationLinks>false</relativizeDecorationLinks> |
| <locales>en</locales> |
| <inputEncoding>${project.build.sourceEncoding}</inputEncoding> |
| <outputEncoding>${project.reporting.outputencoding}</outputEncoding> |
| <!-- |
| IntelliJ can't find the asciidoc config option in the site plugin, which is correct. |
| However this config section is used by the asciidoctor site plugin extension. So plead |
| ignore this error, it's actually ok. |
| --> |
| <asciidoc> |
| <attributes> |
| <source-highlighter>prettify</source-highlighter> |
| <!-- Tells asciidoctor where to put the generated files --> |
| <imagesoutdir>${project.build.directory}/site/img</imagesoutdir> |
| </attributes> |
| <requires> |
| <require>asciidoctor-diagram</require> |
| </requires> |
| </asciidoc> |
| </configuration> |
| <dependencies> |
| <!-- All dependencies needed by the reflow skin --> |
| <dependency> |
| <groupId>lt.velykis.maven.skins</groupId> |
| <artifactId>reflow-velocity-tools</artifactId> |
| <version>1.1.1</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.velocity</groupId> |
| <artifactId>velocity</artifactId> |
| <version>1.7</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.maven.doxia</groupId> |
| <artifactId>doxia-core</artifactId> |
| <version>1.6</version> |
| </dependency> |
| <!-- add support for scm/git site deployment --> |
| <dependency> |
| <groupId>org.apache.maven.wagon</groupId> |
| <artifactId>wagon-scm</artifactId> |
| <version>2.12</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.maven.scm</groupId> |
| <artifactId>maven-scm-api</artifactId> |
| <version>1.9.5</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.maven.scm</groupId> |
| <artifactId>maven-scm-manager-plexus</artifactId> |
| <version>1.9.5</version> |
| </dependency> |
| <dependency> |
| <groupId>org.apache.maven.scm</groupId> |
| <artifactId>maven-scm-provider-gitexe</artifactId> |
| <version>1.9.5</version> |
| </dependency> |
| <!-- Add support for asciidoctor --> |
| <dependency> |
| <groupId>org.asciidoctor</groupId> |
| <artifactId>asciidoctor-maven-plugin</artifactId> |
| <version>1.5.6</version> |
| </dependency> |
| <dependency> |
| <groupId>org.jruby</groupId> |
| <artifactId>jruby-complete</artifactId> |
| <version>9.1.13.0</version> |
| </dependency> |
| <dependency> |
| <groupId>org.asciidoctor</groupId> |
| <artifactId>asciidoctorj</artifactId> |
| <version>1.5.6</version> |
| </dependency> |
| <dependency> |
| <groupId>org.asciidoctor</groupId> |
| <artifactId>asciidoctorj-diagram</artifactId> |
| <version>1.5.4.1</version> |
| </dependency> |
| </dependencies> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <version>2.10.4</version> |
| </plugin> |
| |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-changelog-plugin</artifactId> |
| <version>2.3</version> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| </build> |
| |
| <reporting> |
| <plugins> |
| <!-- Generate the unit- and integration-test reports --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-surefire-report-plugin</artifactId> |
| <version>2.20.1</version> |
| <reportSets> |
| <reportSet> |
| <reports> |
| <report>report-only</report> |
| <report>failsafe-report-only</report> |
| </reports> |
| </reportSet> |
| </reportSets> |
| </plugin> |
| |
| <!-- Generate a code coverage report --> |
| <plugin> |
| <groupId>org.jacoco</groupId> |
| <artifactId>jacoco-maven-plugin</artifactId> |
| <reportSets> |
| <reportSet> |
| <reports> |
| <report>report</report> |
| <report>report-integration</report> |
| </reports> |
| </reportSet> |
| <reportSet> |
| <id>aggregate</id> |
| <inherited>false</inherited> |
| <reports> |
| <report>report-aggregate</report> |
| </reports> |
| </reportSet> |
| </reportSets> |
| </plugin> |
| |
| <!-- Add html friendly version of source files with line-numbers --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jxr-plugin</artifactId> |
| <version>2.1</version> |
| </plugin> |
| |
| <!-- Generate javadoc documentation --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-javadoc-plugin</artifactId> |
| <reportSets> |
| <reportSet> |
| <reports> |
| <report>javadoc-no-fork</report> |
| <report>test-javadoc-no-fork</report> |
| </reports> |
| </reportSet> |
| </reportSets> |
| <configuration> |
| <failOnError>true</failOnError> |
| </configuration> |
| </plugin> |
| |
| <!-- Generates a changelog report from GIT commits --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-changelog-plugin</artifactId> |
| <configuration> |
| <!-- Automatically link Jira issues --> |
| <issueLinkUrl>https://issues.apache.org/jira/browse/%ISSUE%</issueLinkUrl> |
| </configuration> |
| </plugin> |
| </plugins> |
| </reporting> |
| |
| </project> |