norconex-commons-lang
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.norconex.commons</groupId>
<artifactId>norconex-commons-lang</artifactId>
<version>3.0.0</version>
</dependency><!--
Copyright 2010-2023 Norconex Inc.
Licensed 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>com.norconex.commons</groupId>
<artifactId>norconex-commons-lang</artifactId>
<version>3.0.0</version>
<packaging>jar</packaging>
<name>Norconex Commons Lang</name>
<inceptionYear>2008</inceptionYear>
<properties>
<java.version>21</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<maven.compiler.release>${java.version}</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<sonar.organization>norconex</sonar.organization>
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
<sonar.exclusions>
**com/fasterxml/jackson/dataformat/xml/ser/**/*,
**/tools/jackson/**
</sonar.exclusions>
<sonar.coverage.exclusions>
**/com/norconex/commons/lang/javadoc/**,
**/tools/jackson/**
</sonar.coverage.exclusions>
<commons-collections4.version>4.5.0</commons-collections4.version>
<commons-io.version>2.21.0</commons-io.version>
<commons-lang3.version>3.20.0</commons-lang3.version>
<commons-text.version>1.15.0</commons-text.version>
<hibernate.version>8.0.1.Final</hibernate.version>
<imgscalr-lib.version>4.2</imgscalr-lib.version>
<jakarta-el-api.version>6.0.1</jakarta-el-api.version>
<java-cup.version>10k</java-cup.version>
<json.version>1.8</json.version>
<jackson.version>3.2.0</jackson.version>
<jackson-annotations.version>2.22</jackson-annotations.version>
<log4j.version>2.25.4</log4j.version>
<okhttp3.version>4.12.0</okhttp3.version>
<slf4j.version>2.0.17</slf4j.version>
<sun-jaxb-impl.version>4.0.7</sun-jaxb-impl.version>
<!--
The tomcat-embed version required is quite specific to work with
jarkata-el-api. See:
https://jakarta.ee/specifications/expression-language/6.0/
-->
<tomcat-embed-el.version>11.0.21</tomcat-embed-el.version>
<velocity-engine.version>2.4.1</velocity-engine.version>
<xerces.version>2.12.2</xerces.version>
<xml-bind-api.version>4.0.5</xml-bind-api.version>
<xpath2.version>2.1.100</xpath2.version>
<!-- Test dependencies -->
<ant.version>1.10.17</ant.version>
<assertj.version>3.27.7</assertj.version>
<junit-jupiter.version>5.14.3</junit-jupiter.version>
<testcontainers.version>1.16.0</testcontainers.version>
<!-- Test and provided -->
<lombok.version>1.18.44</lombok.version>
<!-- === Maven plugins ================================================= -->
<formatter-maven-plugin.version>2.24.1</formatter-maven-plugin.version>
</properties>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<repositories>
<repository>
<id>central-snapshots</id>
<name>Central Portal Snapshot Repository</name>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>${commons-collections4.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>${commons-text.version}</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>${velocity-engine.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.imgscalr</groupId>
<artifactId>imgscalr-lib</artifactId>
<version>${imgscalr-lib.version}</version>
</dependency>
<!-- For XSD 1.1 support until Apache releases their Xerces version
with 1.1 support to Maven central. -->
<dependency>
<groupId>org.exist-db.thirdparty.xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>${xerces.version}</version>
<classifier>xml-schema-1.1</classifier>
<exclusions>
<!-- This exclusion is to fix:
"The package javax.xml.namespace is accessible from more than
one module: <unnamed>, java.xml"
-->
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- xpath2 and java-cup are needed at runtime
for xercesImpl Schema 1.1 support with above dep. -->
<dependency>
<groupId>com.rackspace.eclipse.webtools.sourceediting</groupId>
<artifactId>org.eclipse.wst.xml.xpath2.processor</artifactId>
<version>${xpath2.version}</version>
</dependency>
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>${xml-bind-api.version}</version>
</dependency>
<!-- That's OK, it's a "public" SUN API: -->
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>${sun-jaxb-impl.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>edu.princeton.cup</groupId>
<artifactId>java-cup</artifactId>
<version>${java-cup.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.tdunning</groupId>
<artifactId>json</artifactId>
<version>${json.version}</version>
</dependency>
<!-- Tests and provided. -->
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>${assertj.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j2-impl</artifactId>
<version>${log4j.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>${ant.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${slf4j.version}</version>
<scope>test</scope>
</dependency>
<!-- Jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson-annotations.version}</version>
</dependency>
<dependency>
<groupId>tools.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>tools.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>tools.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>${jackson.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>jakarta.el</groupId>
<artifactId>jakarta.el-api</artifactId>
<version>${jakarta-el-api.version}</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-el</artifactId>
<version>${tomcat-embed-el.version}</version>
</dependency>
<!-- okhttp/mockwebserver used to test Certificateutil -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>${okhttp3.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>mockwebserver</artifactId>
<version>${okhttp3.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp-tls</artifactId>
<version>${okhttp3.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<filtering>false</filtering>
<directory>${project.build.sourceDirectory}</directory>
<includes>
<include>**/*</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
<resource>
<filtering>false</filtering>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
<!-- Release notes, staged into the site output for publishing. -->
<resource>
<filtering>false</filtering>
<directory>${project.basedir}/changelogs</directory>
<targetPath>${project.build.directory}/site/changelogs</targetPath>
<includes>
<include>changelog-*.md</include>
</includes>
</resource>
</resources>
<testResources>
<testResource>
<filtering>false</filtering>
<directory>${project.build.testSourceDirectory}</directory>
<includes>
<include>**/*</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
<testResource>
<filtering>false</filtering>
<directory>src/test/resources</directory>
<includes>
<include>**/*</include>
</includes>
</testResource>
</testResources>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>3.5.3</version>
</extension>
</extensions>
<pluginManagement>
<plugins>
<plugin>
<groupId>net.revelc.code.formatter</groupId>
<artifactId>formatter-maven-plugin</artifactId>
<version>${formatter-maven-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>format</goal>
</goals>
</execution>
</executions>
<configuration>
<compilerSource>${java.version}</compilerSource>
<compilerCompliance>${java.version}</compilerCompliance>
<compilerTargetPlatform>${java.version}</compilerTargetPlatform>
<lineEnding>LF</lineEnding>
<encoding>UTF-8</encoding>
<configFile>norconex-formatter.xml</configFile>
<includes>
<include>com/norconex/**/*.java</include>
</includes>
</configuration>
<inherited>true</inherited>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.10</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<goals>
<goal>report</goal>
</goals>
<configuration>
<formats>
<format>XML</format>
</formats>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>1.18.20.0</version>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
<!-- test -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson-annotations.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>delombok</id>
<phase>generate-sources</phase>
<goals>
<goal>delombok</goal>
</goals>
<configuration>
<addOutputDirectory>false</addOutputDirectory>
<sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
</configuration>
</execution>
<execution>
<id>test-delombok</id>
<phase>generate-test-sources</phase>
<goals>
<goal>testDelombok</goal>
</goals>
<configuration>
<addOutputDirectory>false</addOutputDirectory>
<sourceDirectory>${project.basedir}/src/test/java</sourceDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>2.0.0</version>
<executions>
<execution>
<id>download-licenses</id>
<goals>
<goal>download-licenses</goal>
</goals>
<phase>generate-resources</phase>
</execution>
</executions>
</plugin>
<!-- To Skip: -Dassembly.skipAssembly=true -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>make-resources-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/main/assembly/resources.xml</descriptor>
</descriptors>
<appendAssemblyId>true</appendAssemblyId>
</configuration>
</execution>
<execution>
<id>make-dist-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/main/assembly/dist.xml</descriptor>
</descriptors>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<encoding>UTF-8</encoding>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.10.0</version>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<sourcepath>${project.build.directory}/generated-sources/delombok</sourcepath>
<sourceFileIncludes>
<sourceInclude>com/norconex/**/*.java</sourceInclude>
</sourceFileIncludes>
<sourceFileExcludes>
<sourceExclude>com/fasterxml/**/*.java</sourceExclude>
<sourceExclude>com/norconex/commons/lang/javadoc/**/*.java</sourceExclude>
</sourceFileExcludes>
<additionalJOptions>
<additionalJOption>-Xdoclint:all</additionalJOption>
<additionalJOption>-Xdoclint:-missing</additionalJOption>
</additionalJOptions>
<show>protected</show>
<nodeprecated>false</nodeprecated>
<detectLinks>false</detectLinks>
<links>
<!-- We're trying to resolve links for all above dependencies
that are referenced in our JavaDoc.
Do not end with forward slash as it can cause issues
finding the links.
-->
<!-- Regular dependencies -->
<link>https://commons.apache.org/proper/commons-lang/javadocs/api-release</link>
<link>https://javadoc.io/doc/org.apache.commons/commons-collections4/${commons-collections4.version}</link>
<link>https://commons.apache.org/proper/commons-io/javadocs/api-release</link>
<link>https://commons.apache.org/proper/commons-text/apidocs</link>
<link>https://commons.apache.org/proper/commons-cli/javadocs/api-release</link>
<link>https://commons.apache.org/proper/commons-logging/javadocs/api-release</link>
<link>https://velocity.apache.org/engine/${velocity-engine.version}/apidocs</link>
<link>https://javadoc.io/doc/org.slf4j/slf4j-api/${slf4j.version}</link>
<!-- Missing: xerces (1.1 schema), xpath2, java-cup, jackson/fasterxml -->
</links>
</configuration>
<executions>
<execution>
<id>make-javadoc</id>
<phase>prepare-package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
</archive>
<excludes>
<exclude>THIRD-PARTY.txt</exclude>
</excludes>
</configuration>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<!--
Publishes releases to Maven Central through the Central Portal.
"publishingServerId" matches the <server> id the CI workflows set up
(setup-java server-id: central -> MAVEN_USERNAME/MAVEN_CENTRAL_TOKEN).
The Portal always creates a "deployment" that is validated before it
goes live — that step cannot be turned off. autoPublish releases it
automatically once validation passes, so nothing waits on a manual
"Publish" click. waitUntil=published makes the build block until
Central confirms, so a failed publish fails the job rather than
passing silently.
-->
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.9.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
<waitUntil>published</waitUntil>
</configuration>
</plugin>
<!-- Use VM argument -Dgpg.skip=true to disable GPG signing. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.0.1</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<!-- This is necessary for gpg to not try to use the pinentry programs -->
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>4.0.0-M16</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-ssh</artifactId>
<version>3.5.2</version>
</dependency>
</dependencies>
</plugin>
<!-- From command-prompt:
mvn versions:display-dependency-updates ^
versions:display-plugin-updates ^
versions:display-property-updates ^
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
-->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>2.15.0</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>display-dependency-updates</goal>
<goal>display-plugin-updates</goal>
<goal>display-property-updates</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.5.0</version>
<executions>
<execution>
<id>enforce-versions</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>[3.8,)</version>
</requireMavenVersion>
<requireJavaVersion>
<version>[${java.version},)</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>net.revelc.code.formatter</groupId>
<artifactId>formatter-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<!--
Releases are NOT published via distributionManagement. The Central Portal
has no plain "PUT to a release repository URL" endpoint: releases go
through central-publishing-maven-plugin (declared above), which uploads a
bundle to the Portal API and publishes it. A <repository> entry pointing at
central.sonatype.com/repository/maven-central/ resolves to the Portal
*website* (it answers with an HTML 404 page, not a Maven repository), which
makes release deploys fail with a misleading
"Could not find artifact ... in central".
Snapshots are different and DO use a real repository URL — the Nexus-backed
endpoint below is the documented Central Portal snapshot target.
-->
<distributionManagement>
<snapshotRepository>
<id>central</id>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
<organization>
<name>Norconex Inc.</name>
<url>https://norconex.com</url>
</organization>
<url>https://opensource.norconex.com/commons/lang</url>
<description>
Norconex Commons Lang is a Java library containing utility classes that
complements the Java API and are not found in commonly available
libraries (such as the great Apache Commons Lang, which it relies on).
</description>
<scm>
<url>https://github.com/Norconex/commons-lang</url>
<connection>scm:git:git@github.com:Norconex/commons-lang.git</connection>
<developerConnection>scm:git:git@github.com:Norconex/commons-lang.git</developerConnection>
</scm>
<issueManagement>
<system>GitHub</system>
<url>https://github.com/Norconex/commons-lang/issues</url>
</issueManagement>
<developers>
<developer>
<id>essiembre</id>
<name>Pascal Essiembre</name>
<email>pascal.essiembre@norconex.com</email>
<organization>Norconex Inc.</organization>
<organizationUrl>https://norconex.com</organizationUrl>
<roles>
<role>project leader</role>
<role>developer</role>
</roles>
<timezone>-4</timezone>
</developer>
</developers>
<contributors>
</contributors>
<!--
<modules>
<module>javadoc-resources</module>
</modules>
-->
</project>