<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-project</artifactId>
    <version>12.0.10</version>
  </parent>
  <artifactId>jetty-core</artifactId>
  <packaging>pom</packaging>
  <name>Core</name>

  <modules>
    <module>jetty-alpn</module>
    <module>jetty-bom</module>
    <module>jetty-client</module>
    <module>jetty-demos</module>
    <module>jetty-deploy</module>
    <module>jetty-ee</module>
    <module>jetty-fcgi</module>
    <module>jetty-http</module>
    <module>jetty-http-spi</module>
    <module>jetty-http-tools</module>
    <module>jetty-http2</module>
    <module>jetty-http3</module>
    <module>jetty-io</module>
    <module>jetty-jmx</module>
    <module>jetty-jndi</module>
    <module>jetty-keystore</module>
    <module>jetty-maven</module>
    <module>jetty-openid</module>
    <module>jetty-osgi</module>
    <module>jetty-plus</module>
    <module>jetty-proxy</module>
    <module>jetty-quic</module>
    <module>jetty-rewrite</module>
    <module>jetty-security</module>
    <module>jetty-server</module>
    <module>jetty-session</module>
    <module>jetty-slf4j-impl</module>
    <module>jetty-start</module>
    <module>jetty-tests</module>
    <module>jetty-unixdomain-server</module>
    <module>jetty-util</module>
    <module>jetty-util-ajax</module>
    <module>jetty-websocket</module>
    <module>jetty-xml</module>
  </modules>

  <!-- FIXME: Remove once Servlet API usage is totally removed from jetty-core -->
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.eclipse.jetty.toolchain</groupId>
        <artifactId>jetty-jakarta-servlet-api</artifactId>
        <version>5.0.2</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <profiles>
    <profile>
      <!--
        $ mvn -Pdependency-updates-reports validate
        # once done, check the jetty-core/target/site/dependency-updates-aggregate-report.html
        -->
      <id>dependency-updates-reports</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>versions-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>core-report</id>
                <goals>
                  <goal>dependency-updates-aggregate-report</goal>
                </goals>
                <phase>validate</phase>
                <configuration>
                  <formats>
                    <format>html</format>
                  </formats>
                  <onlyProjectDependencies>true</onlyProjectDependencies>
                  <onlyUpgradable>true</onlyUpgradable>
                  <ruleSet>
                    <rules>
                      <rule>
                        <!-- ignore maven alpha/beta releases -->
                        <groupId>org.apache.maven</groupId>
                        <ignoreVersions>
                          <ignoreVersion>
                            <type>regex</type>
                            <version>.+-(alpha|beta).?[0-9]+</version>
                          </ignoreVersion>
                        </ignoreVersions>
                      </rule>
                      <rule>
                        <!-- ignore jetty core level version changes -->
                        <groupId>org.eclipse.jetty</groupId>
                        <ignoreVersions>
                          <ignoreVersion>
                            <type>regex</type>
                            <version>.+</version>
                          </ignoreVersion>
                        </ignoreVersions>
                      </rule>
                      <rule>
                        <!-- ignore jetty nested level version changes -->
                        <groupId>org.eclipse.jetty.*</groupId>
                        <ignoreVersions>
                          <ignoreVersion>
                            <type>regex</type>
                            <version>.+</version>
                          </ignoreVersion>
                        </ignoreVersions>
                      </rule>
                    </rules>
                  </ruleSet>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <!--
        $ mvn -Pupdate-dependencies-core validate
        -->
      <id>update-dependencies-core</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>versions-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>core-update</id>
                <goals>
                  <goal>update-properties</goal>
                </goals>
                <phase>validate</phase>
                <configuration>
                  <onlyProjectDependencies>true</onlyProjectDependencies>
                  <onlyUpgradable>true</onlyUpgradable>
                  <ruleSet>
                    <rules>
                      <rule>
                        <!-- ignore maven alpha/beta releases -->
                        <groupId>org.apache.maven</groupId>
                        <ignoreVersions>
                          <ignoreVersion>
                            <type>regex</type>
                            <version>.+-(alpha|beta).?[0-9]+</version>
                          </ignoreVersion>
                        </ignoreVersions>
                      </rule>
                      <rule>
                        <!-- ignore jetty core level version changes -->
                        <groupId>org.eclipse.jetty</groupId>
                        <ignoreVersions>
                          <ignoreVersion>
                            <type>regex</type>
                            <version>.+</version>
                          </ignoreVersion>
                        </ignoreVersions>
                      </rule>
                      <rule>
                        <!-- ignore jetty nested level version changes -->
                        <groupId>org.eclipse.jetty.*</groupId>
                        <ignoreVersions>
                          <ignoreVersion>
                            <type>regex</type>
                            <version>.+</version>
                          </ignoreVersion>
                        </ignoreVersions>
                      </rule>
                    </rules>
                  </ruleSet>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

</project>
