blob: b6ea14b933784ddef7377175f35b3a1c591d9fe2 [file] [log] [blame]
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
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.sling</groupId>
<artifactId>sling</artifactId>
<version>49</version>
<relativePath />
</parent>
<artifactId>org.apache.sling.feature.cpconverter</artifactId>
<version>1.3.2</version>
<name>Apache Sling Content-Package to Feature Model Converter</name>
<description>Content Package to Feature Model converter tools for Apache Sling</description>
<properties>
<sling.java.version>8</sling.java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<picocli.version>3.6.0</picocli.version>
<org.apache.jackrabbit.vault.version>3.6.8</org.apache.jackrabbit.vault.version>
<jackrabbit-api.version>1.42.0</jackrabbit-api.version>
<jackrabbit-spi-commons.version>2.20.4</jackrabbit-spi-commons.version>
<license-maven-plugin.version>1.16</license-maven-plugin.version>
<appassembler-maven-plugin.version>2.0.0</appassembler-maven-plugin.version>
<project.build.outputTimestamp>1683219412</project.build.outputTimestamp>
</properties>
<scm>
<connection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-cpconverter.git</connection>
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-cpconverter.git</developerConnection>
<url>https://gitbox.apache.org/repos/asf?p=sling-org-apache-sling-feature-cpconverter.git</url>
<tag>org.apache.sling.feature.cpconverter-1.3.2</tag>
</scm>
<dependencies>
<!--
| Logging
-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<!-- make runtime and optional to not transitively pollute compile class loaders -->
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!--
| CLI
-->
<dependency>
<groupId>info.picocli</groupId>
<artifactId>picocli</artifactId>
<version>${picocli.version}</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>
<!-- JetBrains annotations for null-analysis (SLING-7798) -->
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.json</groupId>
<artifactId>jakarta.json-api</artifactId>
<version>2.0.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.johnzon</groupId>
<artifactId>johnzon-core</artifactId>
<version>1.2.19</version>
<classifier>jakarta</classifier>
<scope>compile</scope>
</dependency>
<!--
| Content-Package
-->
<dependency>
<groupId>org.apache.jackrabbit.vault</groupId>
<artifactId>org.apache.jackrabbit.vault</artifactId>
<version>${org.apache.jackrabbit.vault.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit.vault</groupId>
<artifactId>vault-validation</artifactId>
<version>${org.apache.jackrabbit.vault.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-spi-commons</artifactId>
<version>${jackrabbit-spi-commons.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.6</version>
<scope>compile</scope>
</dependency>
<!--
| Sling Feature Model libraries
-->
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.feature</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.feature.extension.apiregions</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
<exclusions><!-- exclude all transitive dependencies (even provided ones for sling-maven-enforcer-rules) -->
<exclusion>
<artifactId>*</artifactId>
<groupId>*</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.repoinit.parser</artifactId>
<version>1.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.util.converter</artifactId>
<version>1.0.9</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.utils</artifactId>
<version>1.11.8</version>
<scope>compile</scope>
<exclusions><!-- exclude all transitive dependencies (even provided ones for sling-maven-enforcer-rules) -->
<exclusion>
<artifactId>*</artifactId>
<groupId>*</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.util.function</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.annotation.versioning</artifactId>
<version>1.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.framework</artifactId>
<version>1.9.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.dto</artifactId>
<version>1.1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.resource</artifactId>
<version>1.0.0</version>
<scope>compile</scope>
</dependency>
<!--
| Handle .config files
-->
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.configadmin</artifactId>
<version>1.9.22</version>
<scope>compile</scope>
<exclusions><!-- exclude all transitive dependencies (even provided ones for sling-maven-enforcer-rules) -->
<exclusion>
<artifactId>*</artifactId>
<groupId>*</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.cm.json</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
<exclusions><!-- exclude all transitive dependencies (even provided ones for sling-maven-enforcer-rules) -->
<exclusion>
<artifactId>*</artifactId>
<groupId>*</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>oak-jackrabbit-api</artifactId>
<version>${jackrabbit-api.version}</version>
<scope>compile</scope>
</dependency>
<!--
| Sling-Initial-Content
-->
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.jcr.contentparser</artifactId>
<version>1.2.6</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.jcr.contentloader</artifactId>
<version>2.6.0</version>
<scope>compile</scope>
<exclusions>
<!-- this is an embedded dependency -->
<exclusion>
<groupId>net.sf.kxml</groupId>
<artifactId>kxml2</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- transitive (but provided) dependency of jcr.contentloader -->
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.commons.osgi</artifactId>
<version>2.4.0</version>
<scope>compile</scope>
<exclusions>
<!-- exclude provided transitive dependencies sling-maven-enforcer-rules -->
<exclusion>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.compendium</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.contentparser.api</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.contentparser.json</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<!--
| Test only dependencies
-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>4.9.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-jcr2spi</artifactId>
<version>2.21.3</version>
<scope>compile</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.xmlunit/xmlunit-core -->
<dependency>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-core</artifactId>
<version>2.6.2</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.xmlunit/xmlunit-matchers -->
<dependency>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-matchers</artifactId>
<version>2.6.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-assertj</artifactId>
<version>2.6.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.activation/activation -->
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.glassfish.jaxb/jaxb-runtime -->
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<configuration>
<excludes>
<exclude>src/main/resources/META-INF/services/org.apache.sling.feature.cpconverter.handlers.EntryHandler</exclude>
<exclude>src/main/legal/NOTICE-with-deps</exclude>
<exclude>src/test/resources/org/apache/sling/feature/cpconverter/handlers/bundle-entry-xmls/**</exclude>
<exclude>src/test/resources/org/apache/sling/feature/cpconverter/handlers/escaping-test/**</exclude>
<exclude>src/test/resources/org/apache/sling/feature/cpconverter/handlers/i18n-jsonfile-xml-descriptor-test/**</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>${license-maven-plugin.version}</version>
<executions>
<execution>
<id>add-third-party</id>
<phase>generate-resources</phase>
<goals>
<goal>add-third-party</goal>
</goals>
<configuration>
<fileTemplate>${basedir}/src/main/legal/LICENSE-with-deps</fileTemplate>
<thirdPartyFilename>LICENSE-with-deps</thirdPartyFilename>
<sortArtifactByName>true</sortArtifactByName>
<excludedScopes>test</excludedScopes>
<licenseMerges>
<licenseMerge>The Apache Software License, Version 2.0|Apache License, Version 2.0|Apache Public License 2.0</licenseMerge>
</licenseMerges>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>${appassembler-maven-plugin.version}</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>assemble</goal>
</goals>
</execution>
</executions>
<configuration>
<repositoryLayout>flat</repositoryLayout>
<repositoryName>lib</repositoryName>
<useWildcardClassPath>true</useWildcardClassPath>
<extraJvmArguments>-Dproject.artifactId=${project.artifactId} -Dproject.version=${project.version} -Dbuild.timestamp=${maven.build.timestamp} -Duser.timezone=UTC -Dfile.encoding=UTF-8</extraJvmArguments>
<defaultJvmSettings>-Xms500m -Xmx500m -XX:PermSize=128m -XX:-UseGCOverheadLimit</defaultJvmSettings>
<licenseHeaderFile>${basedir}/src/main/legal/license-header</licenseHeaderFile>
<programs>
<program>
<mainClass>org.apache.sling.feature.cpconverter.cli.ContentPackage2FeatureModelConverterLauncher</mainClass>
<id>cp2fm</id>
</program>
</programs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<finalName>${project.build.finalName}</finalName>
<tarLongFileMode>gnu</tarLongFileMode>
<appendAssemblyId>false</appendAssemblyId>
<descriptors>
<descriptor>${basedir}/src/main/assembly/bin.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
<!-- validate that all necessary dependencies are part of the application -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-complete-runtime-classpath</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireProvidedDependenciesInRuntimeClasspath implementation="org.apache.sling.maven.enforcer.RequireProvidedDependenciesInRuntimeClasspath">
<excludes>
<exclude>javax.servlet:javax.servlet-api</exclude><!-- not used in the CLI context -->
<exclude>javax.servlet:servlet-api</exclude><!-- not used in the CLI context -->
<exclude>org.apache.felix:org.apache.felix.scr.annotations</exclude><!-- annotations not used at run time -->
<exclude>org.jetbrains:annotations</exclude>
<exclude>com.google.code.findbugs:jsr305</exclude>
<exclude>com.google.code.findbugs:findbugs-annotations</exclude>
<exclude>org.apache.felix:org.apache.felix.healthcheck.annotation</exclude>
<exclude>org.osgi:org.osgi.namespace.implementation</exclude>
<exclude>org.osgi:org.osgi.service.component.annotations</exclude>
<exclude>org.osgi:org.osgi.service.feature</exclude><!-- optional for the featur emodel-->
<exclude>org.osgi:org.osgi.service.metatype.annotations</exclude>
<exclude>org.osgi:org.osgi.annotation</exclude>
<exclude>org.osgi:org.osgi.annotation.versioning</exclude>
<exclude>org.osgi:osgi.annotation</exclude>
<exclude>org.osgi:org.osgi.annotation.bundle</exclude>
<exclude>org.apache.jackrabbit:jackrabbit-spi2dav</exclude><!-- transitive dep of org.apache.jackrabbit.vault, not used here -->
<exclude>*:txw2</exclude><!-- embedded in vault-core -->
<exclude>*:woodstox-core</exclude><!-- embedded in vault-core -->
<exclude>*:stax2-api</exclude><!-- embedded in vault-core -->
<exclude>*:maven-artifact</exclude><!-- embedded in vault-core -->
<exclude>*:h2</exclude><!-- embedded in vault-core -->
<exclude>org.osgi:osgi.core</exclude><!-- individual OSGi chapter dependencies used instead -->
<exclude>org.osgi:org.osgi.core</exclude><!-- individual OSGi chapter dependencies used instead -->
<exclude>org.apache.felix:org.apache.felix.shell</exclude><!-- transitive provided dep. of jcr contentloader not being used -->
<exclude>org.apache.felix:org.apache.felix.converter</exclude><!-- has been relocated to dependency org.osgi.util.converter -->
<exclude>org.mockito:mockito-core</exclude><!-- incorrectly marked as provided scope prior to https://github.com/apache/sling-org-apache-sling-commons-osgi/commit/2f786f579f9c4afcaa1ff34373e06c168801bbcd -->
<exclude>org.apache.geronimo.specs:geronimo-json_1.0_spec</exclude><!-- using jakarta.json -->
<exclude>org.apache.geronimo.specs:geronimo-json_1.1_spec</exclude><!-- using jakarta.json -->
<exclude>biz.aQute.bnd:biz.aQute.bndlib</exclude><!-- only used for its annotations, remove once https://github.com/apache/sling-org-apache-sling-feature-launcher/commit/36b7fe229780b06f81db0a97f2e8e86726a3158c is integrated -->
<exclude>biz.aQute:bndlib</exclude><!-- only used for its annotations, remove once https://github.com/apache/sling-org-apache-sling-jcr-api/commit/95e0761030aa6078ad89f9b3f05d55dce92fe858#diff-9c5fb3d1b7e3b0f54bc5c4182965c4fe1f9023d449017cece3005d3f90e8e4d8 is integrated -->
<exclude>org.apache.jackrabbit:jackrabbit-api</exclude><!-- relocated to org.apache.jackrabbit:oak-jackrabbit-api -->
<exclude>org.apache.sling:org.apache.sling.jcr.base:jar</exclude><!-- transitive dependency of org.apache.sling.jcr.contentloader, not used in this context -->
<exclude>org.apache.sling:org.apache.sling.serviceusermapper</exclude><!-- transitive dependency of org.apache.sling.jcr.contentloader, not used in this context -->
<exclude>org.apache.sling:org.apache.sling.commons.mime</exclude><!-- transitive dependency of org.apache.sling.jcr.contentloader, not used in this context -->
<exclude>org.apache.sling:org.apache.sling.settings</exclude><!-- transitive dependency of org.apache.sling.jcr.contentloader, not used in this context -->
<exclude>org.apache.felix:org.apache.felix.healthcheck.api</exclude><!-- transitive dependency of org.apache.sling.jcr.contentloader, not used in this context -->
<exclude>org.apache.sling:org.apache.sling.jcr.api</exclude><!-- transitive dependency of org.apache.sling.jcr.contentloader, not used in this context -->
<exclude>org.apache.sling:org.apache.sling.api</exclude><!-- transitive dependency of org.apache.sling.jcr.contentloader, not used in this context -->
</excludes>
</requireProvidedDependenciesInRuntimeClasspath>
</rules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>