<?xml version="1.0" encoding="UTF-8"?>
<!--
*
* See the NOTICE file distributed with this work for additional
* information regarding copyright ownership.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*
-->
<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.xwiki.commons</groupId>
<artifactId>xwiki-commons-pom</artifactId>
<version>4.5-SNAPSHOT</version>
<relativePath>../xwiki-commons-pom</relativePath>
</parent>
<artifactId>xwiki-commons-core</artifactId>
<name>XWiki Commons - Core - Parent POM</name>
<packaging>pom</packaging>
<description>XWiki Commons - Core - Parent POM</description>
<modules>
<!-- Sorted Alphabetically -->
<module>xwiki-commons-classloader</module>
<module>xwiki-commons-component</module>
<module>xwiki-commons-configuration</module>
<module>xwiki-commons-context</module>
<module>xwiki-commons-environment</module>
<module>xwiki-commons-extension</module>
<module>xwiki-commons-repository</module>
<module>xwiki-commons-groovy</module>
<module>xwiki-commons-job</module>
<module>xwiki-commons-logging</module>
<module>xwiki-commons-management</module>
<module>xwiki-commons-observation</module>
<module>xwiki-commons-properties</module>
<module>xwiki-commons-script</module>
<module>xwiki-commons-test</module>
<module>xwiki-commons-text</module>
<module>xwiki-commons-velocity</module>
<module>xwiki-commons-xml</module>
<module>xwiki-commons-diff</module>
</modules>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<!-- Use the manifest file generated by the OSGi Maven Bundle Plugin -->
<manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- Generate OSGi Manifest information to all JARs -->
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<executions>
<execution>
<id>bundle-manifest</id>
<phase>process-classes</phase>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- Apply the Checkstyle configurations defined in the top level pom.xml file -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>
<plugin>
<!-- Check license headers -->
<groupId>com.mycila.maven-license-plugin</groupId>
<artifactId>maven-license-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-platform-rendering-isolation</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<bannedDependencies>
<excludes>
<!-- Ensure that the XWiki Commons doesn't depend on platform -->
<exclude>org.xwiki.platform:*</exclude>
<!-- Ensure that the XWiki Commons doesn't depend on rendering -->
<exclude>org.xwiki.rendering:*</exclude>
</excludes>
</bannedDependencies>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>clirr-maven-plugin</artifactId>
<configuration>
<!-- List of specific CLIRR excludes. Example:
<difference>
<className>org/xwiki/ircbot/IRCBot</className>
<method>void initialize(java.lang.String)</method>
<differenceType>7012</differenceType>
<justification>IRCBot is still a young API. Added a new initialize() method to support installing the
IRC Bot application in a subwiki</justification>
</difference>
See http://mojo.codehaus.org/clirr-maven-plugin/examples/ignored-differences.html
-->
<ignored>
<!-- Remove the following ignores after we release the current version as final -->
</ignored>
<excludes>
<exclude>**/internal/**</exclude>
<exclude>**/test/**</exclude>
<!-- Remove the following excludes after we release the current version as final -->
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.xwiki.commons</groupId>
<artifactId>xwiki-commons-tool-enforcer-dependencies</artifactId>
<version>${commons.version}</version>
</dependency>
</dependencies>
<executions>
<!-- Verify that all org.xwiki.commons dependencies in Commons have a version specified either as:
- ${project.version}
- a value not starting with $ (we want to allow supporting ranges)
-->
<execution>
<id>check-dependency-version</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<validateDependencyVersion implementation="org.xwiki.tool.enforcer.ValidateDependencyVersion">
<versionCheck>
<groupIdPrefix>org.xwiki.commons</groupIdPrefix>
<allowedVersionRegex>\$\{project.version\}|[^$].*</allowedVersionRegex>
</versionCheck>
</validateDependencyVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<!-- Profile to build Legacy modules -->
<profile>
<id>legacy</id>
<modules>
<module>xwiki-commons-legacy</module>
</modules>
</profile>
</profiles>
</project>