<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
  xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.eclipse.ecf</groupId>
  <artifactId>ecf-parent</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Eclipse Communication Framework (ECF)</name>
  <description>
    ECF is a set of frameworks for building communications into applications and services. It
    provides a lightweight, modular, transport-independent, fully-compliant implementation of
    the OSGi Remote Services (chap 100) and Remote Service Admin (chap 122) standard.
  </description>
  <url>https://www.eclipse.org/ecf/</url>
  <inceptionYear>2004</inceptionYear>


  <organization>
    <name>Eclipse Foundation</name>
    <url>https://www.eclipse.org/</url>
  </organization>

  <developers>
    <developer>
      <name>ECF Developers</name>
      <url>https://projects.eclipse.org/projects/rt.ecf/who</url>
    </developer>
  </developers>

  <licenses>
    <license>
      <name>Eclipse Public License - Version 2.0</name>
      <url>https://www.eclipse.org/legal/epl-2.0</url>
      <distribution>repo</distribution>
      <comments>
        Copyright (C) 2016, 2020 Red Hat, Inc and others.

        This program and the accompanying materials are made
        available under the terms of the Eclipse Public License 2.0
        which is available at https://www.eclipse.org/legal/epl-2.0/

        SPDX-License-Identifier: EPL-2.0
      </comments>
    </license>
  </licenses>

  <scm>
    <connection>scm:git:http://git.eclipse.org/gitroot/ecf/org.eclipse.ecf.git</connection>
    <developerConnection>scm:git:ssh://git.eclipse.org/gitroot/ecf/org.eclipse.ecf.git</developerConnection>
    <url>http://git.eclipse.org/c/ecf/org.eclipse.ecf.git</url>
  </scm>

  <issueManagement>
    <url>https://bugs.eclipse.org/bugs/buglist.cgi?product=ECF</url>
    <system>Bugzilla</system>
  </issueManagement>

  <distributionManagement>
    <repository>
      <id>repo.eclipse.org</id>
      <name>ECF Maven Repository - Releases</name>
      <url>https://repo.eclipse.org/content/repositories/ecf-releases/</url>
    </repository>
    <snapshotRepository>
      <id>repo.eclipse.org</id>
      <name>ECF Maven Repository - Snapshots</name>
      <url>https://repo.eclipse.org/content/repositories/ecf-snapshots/</url>
      <uniqueVersion>true</uniqueVersion>
    </snapshotRepository>
  </distributionManagement>

  <properties>
    <tycho-version>2.5.0</tycho-version>
    <cbi-version>1.3.2</cbi-version>
    <target-platform>2021-12</target-platform>
    <eclipserun-repo>https://download.eclipse.org/eclipse/updates/latest/</eclipserun-repo>
    <project.build.sourceEncoding>ISO-8859-1</project.build.sourceEncoding>
    <project.resources.sourceEncoding>ISO-8859-1</project.resources.sourceEncoding>
    <tycho.scmUrl>${project.scm.connection}</tycho.scmUrl>
    <tycho.baseline>warn</tycho.baseline>
    <tycho.baseline.replace>all</tycho.baseline.replace>
    <tycho.baseline.comparison>warn</tycho.baseline.comparison>
  </properties>

  <pluginRepositories>
    <pluginRepository>
      <id>repo.eclipse.org</id>
      <url>https://repo.eclipse.org/content/groups/releases/</url>
    </pluginRepository>
  </pluginRepositories>

  <modules>
    <module>doc/bundles/org.eclipse.ecf.doc</module>

    <module>examples/bundles/com.mycorp.examples.timeservice</module>
    <module>examples/bundles/com.mycorp.examples.timeservice.async</module>
    <module>examples/bundles/com.mycorp.examples.timeservice.consumer</module>
    <module>examples/bundles/com.mycorp.examples.timeservice.consumer.ds</module>
    <module>examples/bundles/com.mycorp.examples.timeservice.consumer.ds.async</module>
    <module>examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery</module>
    <module>examples/bundles/com.mycorp.examples.timeservice.consumer.filediscovery.rest</module>
    <module>examples/bundles/com.mycorp.examples.timeservice.host</module>
    <module>examples/bundles/com.mycorp.examples.timeservice.provider.rest.consumer</module>
    <module>examples/bundles/com.mycorp.examples.timeservice.provider.rest.host</module>
    <module>examples/bundles/org.eclipse.ecf.example.clients</module>
    <module>examples/bundles/org.eclipse.ecf.example.collab</module>
    <module>examples/bundles/org.eclipse.ecf.examples.eventadmin.app</module>
    <module>examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer.edef</module>
    <module>examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.consumer</module>
    <module>examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.ds.consumer</module>
    <module>examples/bundles/org.eclipse.ecf.examples.remoteservices.hello.host</module>
    <module>examples/bundles/org.eclipse.ecf.examples.remoteservices.hello</module>
    <module>examples/bundles/org.eclipse.ecf.examples.remoteservices.rest.rss</module>

    <module>framework/bundles/org.eclipse.ecf.console</module>
    <module>framework/bundles/org.eclipse.ecf.datashare</module>
    <module>framework/bundles/org.eclipse.ecf.discovery</module>
    <module>framework/bundles/org.eclipse.ecf.discovery.ui.browser</module>
    <module>framework/bundles/org.eclipse.ecf.discovery.ui.edit</module>
    <module>framework/bundles/org.eclipse.ecf.discovery.ui.model</module>
    <module>framework/bundles/org.eclipse.ecf.discovery.ui</module>
    <module>framework/bundles/org.eclipse.ecf.discovery.ui.properties</module>
    <module>framework/bundles/org.eclipse.ecf.discovery.ui.properties.tabbed</module>
    <module>framework/bundles/org.eclipse.ecf.discovery.ui.userinput</module>
    <module>framework/bundles/org.eclipse.ecf.docshare</module>
    <module>framework/bundles/org.eclipse.ecf.filetransfer</module>
    <module>framework/bundles/org.eclipse.ecf.filetransfer.ui</module>
    <module>framework/bundles/org.eclipse.ecf.identity</module>
    <module>framework/bundles/org.eclipse.ecf</module>
    <module>framework/bundles/org.eclipse.ecf.presence.bot</module>
    <module>framework/bundles/org.eclipse.ecf.presence.collab.ui</module>
    <module>framework/bundles/org.eclipse.ecf.presence</module>
    <module>framework/bundles/org.eclipse.ecf.presence.ui</module>
    <module>framework/bundles/org.eclipse.ecf.provider</module>
    <module>framework/bundles/org.eclipse.ecf.remoteservice.asyncproxy.j8</module>
    <module>framework/bundles/org.eclipse.ecf.remoteservice</module>
    <module>framework/bundles/org.eclipse.ecf.remoteservice.rest</module>
    <module>framework/bundles/org.eclipse.ecf.remoteservice.rest.synd</module>
    <module>framework/bundles/org.eclipse.ecf.remoteservice.servlet</module>
    <module>framework/bundles/org.eclipse.ecf.remoteservice.soap</module>
    <module>framework/bundles/org.eclipse.ecf.remoteservice.ui</module>
    <module>framework/bundles/org.eclipse.ecf.sharedobject</module>
    <module>framework/bundles/org.eclipse.ecf.ssl</module>
    <module>framework/bundles/org.eclipse.ecf.sync</module>
    <module>framework/bundles/org.eclipse.ecf.ui.capabilities</module>
    <module>framework/bundles/org.eclipse.ecf.ui</module>
    <module>framework/bundles/org.eclipse.team.ecf.core</module>
    <module>framework/bundles/org.eclipse.team.ecf.ui</module>

    <module>osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin</module>
    <module>osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.console</module>
    <module>osgi/bundles/org.eclipse.ecf.osgi.services.remoteserviceadmin.proxy</module>
    <module>osgi/bundles/org.eclipse.osgi.services.remoteserviceadmin</module>
    <module>compendium/bundles/org.eclipse.ecf.osgi.services.distribution</module>

    <module>protocols/bundles/ch.ethz.iks.r_osgi.remote</module>
    <module>protocols/bundles/ch.ethz.iks.slp</module>
    <module>protocols/bundles/org.eclipse.ecf.protocol.bittorrent</module>
    <module>protocols/bundles/org.eclipse.ecf.protocol.msn</module>
    <module>protocols/bundles/org.jivesoftware.smack</module>

    <module>providers/bundles/org.eclipse.ecf.provider.bittorrent</module>
    <module>providers/bundles/org.eclipse.ecf.provider.bittorrent.ui</module>
    <module>providers/bundles/org.eclipse.ecf.provider.datashare</module>
    <module>providers/bundles/org.eclipse.ecf.provider.datashare.nio</module>
    <module>providers/bundles/org.eclipse.ecf.provider.discovery</module>
    <module>providers/bundles/org.eclipse.ecf.provider.dnssd</module>
    <module>providers/bundles/org.eclipse.ecf.provider.filetransfer.efs</module>
    <module>providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4</module>
    <module>providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient45</module>
    <module>providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient45.win32</module>
    <module>providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient4.ssl</module>
    <module>providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient5</module>
    <module>providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient5.win32</module>
    <module>providers/bundles/org.eclipse.ecf.provider.filetransfer</module>
    <module>providers/bundles/org.eclipse.ecf.provider.filetransfer.scp</module>
    <module>providers/bundles/org.eclipse.ecf.provider.filetransfer.ssl</module>
    <module>providers/bundles/org.eclipse.ecf.provider.irc</module>
    <module>providers/bundles/org.eclipse.ecf.provider.irc.ui</module>
    <module>providers/bundles/org.eclipse.ecf.provider.jmdns</module>
    <module>providers/bundles/org.eclipse.ecf.provider.jslp</module>
    <module>providers/bundles/org.eclipse.ecf.provider.msn</module>
    <module>providers/bundles/org.eclipse.ecf.provider.msn.ui</module>
    <module>providers/bundles/org.eclipse.ecf.provider.remoteservice</module>
    <module>providers/bundles/org.eclipse.ecf.provider.r_osgi</module>
    <module>providers/bundles/org.eclipse.ecf.provider.ui</module>
    <module>providers/bundles/org.eclipse.ecf.provider.xmpp.datashare</module>
    <module>providers/bundles/org.eclipse.ecf.provider.xmpp</module>
    <module>providers/bundles/org.eclipse.ecf.provider.xmpp.remoteservice</module>
    <module>providers/bundles/org.eclipse.ecf.provider.xmpp.ui</module>
    <module>providers/bundles/org.eclipse.ecf.provider.zookeeper</module>

    <module>server-side/bundles/org.eclipse.ecf.remoteservice.eventadmin</module>
    <module>server-side/bundles/org.eclipse.ecf.server.generic</module>
    <module>server-side/bundles/org.eclipse.ecf.server</module>
    <module>server-side/features/org.eclipse.ecf.server.generic.feature</module>

    <module>tests/bundles/org.eclipse.ecf.tests</module>
    <module>tests/bundles/org.eclipse.ecf.tests.apache.httpclient.server</module>
    <module>tests/bundles/org.eclipse.ecf.tests.datashare</module>
    <module>tests/bundles/org.eclipse.ecf.tests.filetransfer</module>
    <module>tests/bundles/org.eclipse.ecf.tests.filetransfer.httpclient45</module>
    <module>tests/bundles/org.eclipse.ecf.tests.filetransfer.httpserver</module>
    <module>tests/bundles/org.eclipse.ecf.tests.presence</module>
    <module>tests/bundles/org.eclipse.ecf.tests.protocol.msn</module>
    <module>tests/bundles/org.eclipse.ecf.tests.provider.datashare.nio</module>
    <module>tests/bundles/org.eclipse.ecf.tests.provider.xmpp</module>
    <module>tests/bundles/org.eclipse.ecf.tests.remoteservice</module>
    <module>tests/bundles/org.eclipse.ecf.tests.sharedobject</module>
    <module>tests/bundles/org.eclipse.ecf.tests.sync</module>
    <module>tests/bundles/org.eclipse.ecf.tests.osgi.services.distribution</module>
    <module>tests/bundles/org.eclipse.ecf.tests.discovery</module>
    <module>tests/bundles/org.eclipse.ecf.tests.remoteservice.generic</module>
    <module>tests/bundles/org.eclipse.ecf.tests.remoteservice.r-osgi</module>
    <module>tests/bundles/org.eclipse.ecf.tests.osgi.services.distribution.generic</module>
    <module>tests/bundles/org.eclipse.ecf.tests.osgi.services.distribution.r-osgi</module>

    <module>tooling/plugins/org.eclipse.ecf.remoteservices.tooling.pde</module>

    <module>releng/features/org.eclipse.ecf.console.feature</module>
    <module>releng/features/org.eclipse.ecf.core</module>
    <module>releng/features/org.eclipse.ecf.core.feature</module>
    <module>releng/features/org.eclipse.ecf.core.ssl.feature</module>
    <module>releng/features/org.eclipse.ecf.datashare.feature</module>
    <module>releng/features/org.eclipse.ecf.discovery.dnssd.feature</module>
    <module>releng/features/org.eclipse.ecf.discovery.feature</module>
    <module>releng/features/org.eclipse.ecf.discovery.jmdns.feature</module>
    <module>releng/features/org.eclipse.ecf.discovery.slp.feature</module>
    <module>releng/features/org.eclipse.ecf.discovery.zookeeper.feature</module>
    <module>releng/features/org.eclipse.ecf.docshare.feature</module>
    <module>releng/features/org.eclipse.ecf.eventadmin.examples.feature</module>
    <module>releng/features/org.eclipse.ecf.eventadmin.feature</module>
    <module>releng/features/org.eclipse.ecf.filetransfer.feature</module>
    <module>releng/features/org.eclipse.ecf.filetransfer.httpclient4.feature</module>
    <module>releng/features/org.eclipse.ecf.filetransfer.httpclient45.feature</module>
    <module>releng/features/org.eclipse.ecf.filetransfer.httpclient4.ssl.feature</module>
    <module>releng/features/org.eclipse.ecf.filetransfer.httpclient5.feature</module>
    <module>releng/features/org.eclipse.ecf.filetransfer.ssl.feature</module>
    <module>releng/features/org.eclipse.ecf.osgi.services.feature</module>
    <module>releng/features/org.eclipse.ecf.presence.feature</module>
    <module>releng/features/org.eclipse.ecf.provider.generic.datashare.feature</module>
    <module>releng/features/org.eclipse.ecf.provider.generic.feature</module>
    <module>releng/features/org.eclipse.ecf.provider.generic.remoteservice.feature</module>
    <module>releng/features/org.eclipse.ecf.remoteservice.examples.feature</module>
    <module>releng/features/org.eclipse.ecf.remoteservice.feature</module>
    <module>releng/features/org.eclipse.ecf.remoteservice.rest.feature</module>
    <module>releng/features/org.eclipse.ecf.remoteservice.rest.synd.feature</module>
    <module>releng/features/org.eclipse.ecf.remoteservice.rosgi.feature</module>
    <module>releng/features/org.eclipse.ecf.remoteservice.sdk.examples.feature</module>
    <module>releng/features/org.eclipse.ecf.remoteservice.sdk.feature</module>
    <module>releng/features/org.eclipse.ecf.remoteservice.servlet.feature</module>
    <module>releng/features/org.eclipse.ecf.remoteservice.soap.feature</module>
    <module>releng/features/org.eclipse.ecf.sharedobject.feature</module>
    <module>releng/features/org.eclipse.ecf.tests.feature</module>
    <module>releng/features/org.eclipse.ecf.tests.filetransfer.feature</module>
    <module>releng/features/org.eclipse.ecf.xmpp.feature</module>

    <module>releng/org.eclipse.ecf.releng.target</module>
    <module>releng/org.eclipse.ecf.releng.repository</module>
  </modules>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-maven-plugin</artifactId>
        <version>${tycho-version}</version>
        <extensions>true</extensions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>target-platform-configuration</artifactId>
        <version>${tycho-version}</version>
        <configuration>
           <target>
            <artifact>
              <groupId>org.eclipse.ecf</groupId>
              <artifactId>org.eclipse.ecf.releng.target</artifactId>
              <classifier>ecf-${target-platform}</classifier>
              <version>1.0.0-SNAPSHOT</version>
            </artifact>
          </target>
          <environments>
            <environment>
              <os>win32</os>
              <ws>win32</ws>
              <arch>x86_64</arch>
            </environment>
          </environments>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-source-plugin</artifactId>
        <version>${tycho-version}</version>
        <executions>
          <execution>
            <id>plugin-source</id>
            <goals>
              <goal>plugin-source</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho.extras</groupId>
        <artifactId>tycho-source-feature-plugin</artifactId>
        <version>${tycho-version}</version>
        <configuration>
          <includeBinaryFeature>false</includeBinaryFeature>
        </configuration>
        <executions>
          <execution>
            <id>source-feature</id>
            <phase>package</phase>
            <goals>
              <goal>source-feature</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-p2-plugin</artifactId>
        <version>${tycho-version}</version>
        <executions>
          <execution>
            <!-- disable default execution due it occurring too early for source features -->
            <id>default-p2-metadata-default</id>
            <phase>no-execute</phase>
          </execution>
          <execution>
            <id>attach-p2-metadata</id>
            <phase>package</phase>
            <goals>
              <goal>p2-metadata</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-compiler-plugin</artifactId>
          <version>${tycho-version}</version>
          <configuration>
            <compilerArguments>
              <properties>${project.basedir}/.settings/org.eclipse.jdt.core.prefs</properties>
            </compilerArguments>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-packaging-plugin</artifactId>
          <version>${tycho-version}</version>
          <dependencies>
            <dependency>
              <groupId>org.eclipse.tycho.extras</groupId>
              <artifactId>tycho-buildtimestamp-jgit</artifactId>
              <version>${tycho-version}</version>
            </dependency>
            <dependency>
              <groupId>org.eclipse.tycho.extras</groupId>
              <artifactId>tycho-sourceref-jgit</artifactId>
              <version>${tycho-version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <format>'v'yyyyMMdd-HHmm</format>
            <archive>
              <addMavenDescriptor>false</addMavenDescriptor>
            </archive>
            <sourceReferences>
              <generate>true</generate>
            </sourceReferences>
            <timestampProvider>jgit</timestampProvider>
            <jgit.dirtyWorkingTree>warning</jgit.dirtyWorkingTree>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-surefire-plugin</artifactId>
          <version>${tycho-version}</version>
          <configuration>
            <skipTests>${skipTests}</skipTests>
            <failIfNoTests>false</failIfNoTests>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho.extras</groupId>
          <artifactId>tycho-eclipserun-plugin</artifactId>
          <version>${tycho-version}</version>
          <configuration>
            <repositories>
              <repository>
                <id>eclipse</id>
                <layout>p2</layout>
                <url>${eclipserun-repo}</url>
              </repository>
            </repositories>
            <executionEnvironment>JavaSE-11</executionEnvironment>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>1.6</version>
          <configuration>
            <!-- This is necessary for gpg to not try to use the pinentry programs -->
            <gpgArguments>
              <arg>--pinentry-mode</arg>
              <arg>loopback</arg>
            </gpgArguments>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <profiles>
    <profile>
      <!-- Enable this profile to pack200 and sign p2 repository contents -->
      <id>sign</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <version>${tycho-version}</version>
            <configuration>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-jarsigner-plugin</artifactId>
            <version>${cbi-version}</version>
            <executions>
              <execution>
                <id>sign</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-p2-plugin</artifactId>
            <version>${tycho-version}</version>
            <executions>
              <execution>
                <id>attach-p2-metadata</id>
                <goals>
                  <goal>p2-metadata</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <!-- Enable this profile to run the baseline comparison and version sanity checks -->
      <id>baseline-checks</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-p2-plugin</artifactId>
            <version>${tycho-version}</version>
            <configuration>
              <baselineMode>${tycho.baseline}</baselineMode>
              <baselineReplace>${tycho.baseline.replace}</baselineReplace>
              <baselineRepositories>
                <repository>
                  <url>https://download.eclipse.org/rt/ecf/latest/site.p2/</url>
                </repository>
              </baselineRepositories>
              <ignoredPatterns>
                <pattern>META-INF/ECLIPSE_.RSA</pattern>
                <pattern>META-INF/ECLIPSE_.SF</pattern>
              </ignoredPatterns>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-p2-extras-plugin</artifactId>
            <version>${tycho-version}</version>
            <executions>
              <execution>
                <id>compare-version-with-baseline</id>
                <goals>
                  <goal>compare-version-with-baselines</goal>
                </goals>
                <configuration>
                  <baselines>
                    <url>https://download.eclipse.org/rt/ecf/latest/site.p2/</url>
                  </baselines>
                  <comparator>zip</comparator>
                  <onIllegalVersion>${tycho.baseline.comparison}</onIllegalVersion>
                </configuration>
              </execution>
            </executions>
            <configuration>
              <ignoredPatterns>
                <pattern>META-INF/ECLIPSE_.RSA</pattern>
                <pattern>META-INF/ECLIPSE_.SF</pattern>
              </ignoredPatterns>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
