<?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>
  <groupId>org.netbeans.html</groupId>
  <artifactId>pom</artifactId>
  <version>1.8</version>
  <packaging>pom</packaging>
  <name>HTML APIs via Java</name>
  <parent>
      <groupId>org.apache.netbeans</groupId>
      <artifactId>netbeans-parent</artifactId>
      <version>2</version>
  </parent>
  <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <netbeans.version>RELEASE130</netbeans.version>
      <graalvm.version>21.3.0</graalvm.version>
      <grizzly.version>2.3.8</grizzly.version>
      <license>COPYING</license>
      <publicPackages />
      <bundleSymbolicName>${project.artifactId}</bundleSymbolicName>
      <netbeans.compile.on.save>none</netbeans.compile.on.save>
      <javadoc.allowjs>--allow-script-in-comments</javadoc.allowjs>
      <javadoc.warning.fail>true</javadoc.warning.fail>
      <javadoc.fail>true</javadoc.fail>
      <sigtestPackages>${publicPackages}</sigtestPackages>
      <publicMetaInf>META-INF.services.*</publicMetaInf>
      <skipJavaFXTests>true</skipJavaFXTests>
      <maven.compiler.source>15</maven.compiler.source>
  </properties>
  <modules>
    <module>json</module>
    <module>json-tck</module>
    <module>ko4j</module>
    <module>sound</module>
    <module>context</module>
    <module>boot</module>
    <module>boot-fx</module>
    <module>geo</module>
    <module>ko-ws-tyrus</module>
    <module>html4j-maven-plugin</module>
    <module>ko-felix-test</module>
    <module>ko-osgi-test</module>
    <module>equinox-agentclass-hook</module>
    <module>ecj-test</module>
    <module>boot-script</module>
    <!--
    <module>boot-truffle</module>
    -->
    <module>boot-agent-test</module>
    <module>xhr4j</module>
    <!-- presenters -->
    <module>browser</module>
    <module>renderer</module>
    <module>generic</module>
    <module>webkit</module>
  </modules>
  <licenses>
      <license>
          <name>Apache License, Version 2.0</name>
          <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
          <distribution>repo</distribution>
          <comments>A business-friendly OSS license</comments>
      </license>
  </licenses>
  <organization>
      <name>The Apache Software Foundation</name>
      <url>http://apache.org</url>
  </organization>
  <scm>
      <connection>scm:git:https://gitbox.apache.org/repos/asf/netbeans-html4j.git</connection>
      <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/netbeans-html4j.git</developerConnection>
      <url>https://github.com/apache/netbeans-html4j/tree/${project.scm.tag}</url>
      <tag>master</tag>
  </scm>
  <issueManagement>
      <system>jira</system>
      <url>https://issues.apache.org/jira/browse/NETBEANS</url>
  </issueManagement>
  <build>
      <plugins>
            <plugin>
              <artifactId>maven-release-plugin</artifactId>
              <version>2.4</version>
              <configuration>
                  <tag>release-${releaseVersion}</tag>
              </configuration>
            </plugin>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-javadoc-plugin</artifactId>
              <version>3.1.1</version>
              <configuration>
                  <docfilessubdirs>true</docfilessubdirs>
                  <subpackages>${publicPackages}</subpackages>
                  <skip>false</skip>
                  <excludePackageNames>
org.netbeans.html.boot.impl:org.netbeans.html.boot.fx:org.netbeans.html.context.impl:org.netbeans.html.equinox.*:org.netbeans.html.geo.impl:org.netbeans.html.json.impl:org.netbeans.html.sound.impl:org.netbeans.html.ko.*:org.netbeans.html.ko4j:org.netbeans.html.mojo:org.netbeans.html.wstyrus:net.java.html.js.tests:net.java.html.json.tests:org.netbeans.html.xhr4j:java.lang:net.java.html.boot.script.impl
                  </excludePackageNames>
                <groups>
                  <group>
                    <title>JSON for Java</title>
                    <packages>net.java.html.json</packages>
                  </group>
                  <group>
                    <title>Core Client APIs</title>
                    <packages>net.java.html.boot*:net.java.html.js:net.java.html</packages>
                  </group>
                  <group>
                    <title>Geolocation API</title>
                    <packages>net.java.html.geo</packages>
                  </group>
                  <group>
                    <title>Sound API</title>
                    <packages>net.java.html.sound</packages>
                  </group>
                  <group>
                    <title>Testing and Headless API</title>
                    <packages>net.java.html.boot.script:net.java.html.boot.truffle</packages>
                  </group>
                  <group>
                    <title>Service Provider APIs (not commonly interesting)</title>
                    <packages>org.netbeans.html.*</packages>
                  </group>
                  <group>
                    <title>Build Your Own Presenter!</title>
                    <packages>org.netbeans.html.presenters.*</packages>
                  </group>
                </groups>
                <links>
                    <link>http://testng.org/javadocs/</link>
                    <link>http://bits.netbeans.org/12.0/javadoc/org-openide-util-lookup/</link>
                    <link>http://docs.oracle.com/javase/8/javafx/api/</link>
                </links>
                <doclet>org.apidesign.javadoc.codesnippet.Doclet</doclet>
                <docletArtifact>
                    <groupId>org.apidesign.javadoc</groupId>
                    <artifactId>codesnippet-doclet</artifactId>
                    <version>0.81</version>
                </docletArtifact>
                <additionalOptions>
                    -snippetpath boot-fx/src/test
                    -snippetpath boot-script/src/test
                    -snippetpath ko4j/src/test
                    -snippetpath json/src/test
                    -snippetpath webkit/src/test
                    ${javadoc.allowjs}
                    -hiddingannotation java.lang.Deprecated
                </additionalOptions>
                <failOnWarnings>${javadoc.warning.fail}</failOnWarnings>
                <failOnError>${javadoc.fail}</failOnError>
              </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>1.3.1</version>
                <executions>
                    <execution>
                        <id>ban-certain-libraries</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <bannedDependencies>
                                    <excludes>
                                        <exclude>org.testng</exclude>
                                        <exclude>org.ow2.asm</exclude>
                                    </excludes>
                                    <includes>
                                      <include>org.testng:*:*:jar:test</include>
                                      <include>org.ow2.asm:*:*:jar:provided</include>
                                      <include>org.ow2.asm:*:*:jar:test</include>
                                    </includes>
                                </bannedDependencies>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <version>0.13</version>
                <executions>
                    <execution>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>check</goal>
                            <goal>rat</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <parseSCMIgnoresAsExcludes>false</parseSCMIgnoresAsExcludes>
                    <excludes>
                        <exclude>release.properties</exclude>
                        <exclude>**/target/**</exclude>
                        <exclude>.gitignore</exclude>
                        <exclude>**/.git/**</exclude>
                        <exclude>**/.gradle/**</exclude>
                        <exclude>**/.nb-gradle/**</exclude>
                        <exclude>**/.repository/**</exclude>
                        <exclude>**/.maven/**</exclude>
                        <exclude>**/*.sigtest</exclude>
                        <exclude>**/nb-configuration.xml</exclude>
                        <exclude>**/nbactions.xml</exclude>
                        <exclude>README.md</exclude>
                        <exclude>DEPENDENCIES</exclude>
                        <exclude>**/main/resources/org/netbeans/html/ko4j/knockout-3.5.0.js</exclude>
                        <exclude>**/test/resources/org/netbeans/html/mojo/gradle*/build/**</exclude>
                    </excludes>
                    <excludeSubProjects>false</excludeSubProjects>
                    <useDefaultExcludes>false</useDefaultExcludes>
                    <useEclipseDefaultExcludes>false</useEclipseDefaultExcludes>
                    <useIdeaDefaultExcludes>false</useIdeaDefaultExcludes>
                    <useMavenDefaultExcludes>false</useMavenDefaultExcludes>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-remote-resources-plugin</artifactId>
                <version>1.6.0</version>
                <configuration>
                    <resourceBundles>
                        <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
                    </resourceBundles>
                    <excludeGroupIds>org.netbeans.html</excludeGroupIds>
                    <resourceBundles>
                        <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
                    </resourceBundles>
                </configuration>
            </plugin>
      </plugins>
      <pluginManagement>
          <plugins>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.13</version>
                <configuration>
                    <systemPropertyVariables>
                        <fxpresenter.headless>true</fxpresenter.headless>
                    </systemPropertyVariables>
                </configuration>
              </plugin>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>
                    <systemPropertyVariables>
                        <fxpresenter.headless>true</fxpresenter.headless>
                    </systemPropertyVariables>
                </configuration>
              </plugin>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>2.8.1</version>
              </plugin>
              <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <dependencies>
                    <dependency>
                        <artifactId>compiler-maven-plugin</artifactId>
                        <groupId>org.frgaal</groupId>
                        <version>18.0.0</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <compilerId>frgaal</compilerId>
                    <source>17</source>
                    <target>1.8</target>
                    <testSource>17</testSource>
                    <testTarget>1.8</testTarget>
                </configuration>
              </plugin>
              <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>2.4.0</version>
                <extensions>true</extensions>
                <configuration>
                    <instructions>
                        <Export-Package>${publicPackages},${publicMetaInf};-noimport:=true;-split-package:=first</Export-Package>
                        <Bundle-SymbolicName>${bundleSymbolicName}</Bundle-SymbolicName>
                    </instructions>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.netbeans.html</groupId>
                <artifactId>html4j-maven-plugin</artifactId>
                <version>${project.version}</version>
                <executions>
                    <execution>
                        <id>classes</id>
                        <goals>
                            <goal>process-js-annotations</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>test-classes</id>
                        <phase>process-test-classes</phase>
                        <goals>
                            <goal>process-js-annotations</goal>
                        </goals>
                        <configuration>
                            <classes>${project.build.directory}/test-classes</classes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.netbeans.tools</groupId>
                <artifactId>sigtest-maven-plugin</artifactId>
                <version>1.2</version>
                <executions>
                    <execution>
                        <id>check</id>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <phase>integration-test</phase>
                        <configuration>
                            <packages>${sigtestPackages}</packages>
                        </configuration>
                    </execution>
                    <execution>
                        <id>generate</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                            <packages>${publicPackages}</packages>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <releaseVersion>1.7.1</releaseVersion>
                </configuration>
            </plugin>
          </plugins>
      </pluginManagement>
  </build>
  <dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>org.testng</groupId>
          <artifactId>testng</artifactId>
          <version>6.7</version>
          <scope>test</scope>
          <exclusions>
            <exclusion>
              <artifactId>junit</artifactId>
              <groupId>junit</groupId>
            </exclusion>
          </exclusions>
        </dependency>
        <dependency>
            <groupId>net.java.dev.jna</groupId>
            <artifactId>jna</artifactId>
            <version>5.3.1</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-web</artifactId>
            <version>11</version>
        </dependency>
        <dependency>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-swing</artifactId>
            <scope>test</scope>
            <version>11</version>
        </dependency>
        <dependency>
            <groupId>com.vaadin.external.google</groupId>
            <artifactId>android-json</artifactId>
            <version>0.0.20131108.vaadin1</version>
        </dependency>
        <dependency>
            <groupId>com.dukescript.api</groupId>
            <artifactId>strings</artifactId>
            <version>1.6.2</version>
            <type>jar</type>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.ow2.asm</groupId>
            <artifactId>asm</artifactId>
            <version>5.0</version>
        </dependency>
        <dependency>
          <groupId>org.netbeans.api</groupId>
          <artifactId>org-netbeans-modules-classfile</artifactId>
          <version>${netbeans.version}</version>
          <type>jar</type>
        </dependency>
        <dependency>
          <groupId>org.netbeans.api</groupId>
          <artifactId>org-openide-util-lookup</artifactId>
          <version>${netbeans.version}</version>
          <scope>compile</scope>
          <type>jar</type>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-api-annotations-common</artifactId>
            <version>${netbeans.version}</version>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-modules-java-source</artifactId>
            <version>${netbeans.version}</version>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-libs-javacapi</artifactId>
            <version>${netbeans.version}</version>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-spi-java-hints</artifactId>
            <version>${netbeans.version}</version>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-modules-parsing-api</artifactId>
            <version>${netbeans.version}</version>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-spi-editor-hints</artifactId>
            <version>${netbeans.version}</version>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-openide-util</artifactId>
            <version>${netbeans.version}</version>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-modules-java-lexer</artifactId>
            <version>${netbeans.version}</version>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-modules-lexer</artifactId>
            <version>${netbeans.version}</version>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-modules-java-hints-test</artifactId>
            <version>${netbeans.version}</version>
        </dependency>
        <dependency>
            <groupId>org.netbeans.api</groupId>
            <artifactId>org-netbeans-libs-junit4</artifactId>
            <version>${netbeans.version}</version>
        </dependency>
        <dependency>
            <groupId>org.netbeans.modules</groupId>
            <artifactId>org-netbeans-lib-nbjavac</artifactId>
            <version>${netbeans.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.felix</groupId>
            <artifactId>org.apache.felix.framework</artifactId>
            <version>4.2.1</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>org.netbeans.modules</groupId>
            <artifactId>org-netbeans-modules-web-browser-api</artifactId>
            <version>${netbeans.version}</version>
            <exclusions>
                <exclusion>
                    <artifactId>org-netbeans-core</artifactId>
                    <groupId>org.netbeans.modules</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>org-netbeans-core-multiview</artifactId>
                    <groupId>org.netbeans.api</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>org-netbeans-libs-lucene</artifactId>
                    <groupId>org.netbeans.api</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>org-netbeans-modules-diff</artifactId>
                    <groupId>org.netbeans.api</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>org-netbeans-modules-editor-fold</artifactId>
                    <groupId>org.netbeans.api</groupId>
                </exclusion>
                <exclusion>
                    <artifactId>org-netbeans-modules-editor-guards</artifactId>
                    <groupId>org.netbeans.api</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <artifactId>org-netbeans-modules-projectapi</artifactId>
            <groupId>org.netbeans.api</groupId>
            <type>jar</type>
            <version>${netbeans.version}</version>
        </dependency>
        <dependency>
            <groupId>com.dukescript.api</groupId>
            <artifactId>junit-browser-runner</artifactId>
            <version>1.0</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.netbeans.html</groupId>
                    <artifactId>net.java.html</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <artifactId>js</artifactId>
            <groupId>org.graalvm.js</groupId>
            <type>jar</type>
            <scope>test</scope>
            <version>${graalvm.version}</version>
        </dependency>
        <dependency>
            <artifactId>js-scriptengine</artifactId>
            <groupId>org.graalvm.js</groupId>
            <type>jar</type>
            <scope>test</scope>
            <version>${graalvm.version}</version>
        </dependency>
      </dependencies>
  </dependencyManagement>
  <profiles>
      <profile>
          <id>jdk8</id>
          <activation>
              <file>
                  <exists>${java.home}/lib/ext/jfxrt.jar</exists>
              </file>
          </activation>
          <properties>
              <skipJavaFXTests>false</skipJavaFXTests>
          </properties>
      </profile>
      <profile>
          <id>jdk11+</id>
          <activation>
              <jdk>[11,]</jdk>
          </activation>
          <properties>
              <skipJavaFXTests>false</skipJavaFXTests>
          </properties>
      </profile>
      <profile>
          <id>jdk17+</id>
          <activation>
              <jdk>[17,]</jdk>
          </activation>
          <properties>
              <javadoc.warning.fail>false</javadoc.warning.fail>
          </properties>
      </profile>
      <profile>
          <id>apache-release</id>
          <properties>
              <javadoc.fail>false</javadoc.fail>
          </properties>
      </profile>
  </profiles>
</project>
