Blob Blame History Raw
# Some of the test dependencies are not available in Fedora
%bcond_with test

Name:           apache-commons-configuration
Version:        2.10.1
Release:        %autorelease
Summary:        Read configuration data from a variety of sources

License:        Apache-2.0
BuildArch:      noarch
ExclusiveArch:  %{java_arches} noarch
URL:            https://commons.apache.org/proper/commons-configuration/
VCS:            https://github.com/apache/commons-configuration
Source0:        https://archive.apache.org/dist/commons/configuration/source/commons-configuration2-%{version}-src.tar.gz
Source1:        https://archive.apache.org/dist/commons/configuration/source/commons-configuration2-%{version}-src.tar.gz.asc
Source2:        https://downloads.apache.org/commons/KEYS

# Adapt to JEXL 3
Patch0:         %{name}-jexl3.patch

BuildRequires:  gnupg2
BuildRequires:  maven-local
BuildRequires:  mvn(commons-logging:commons-logging)
BuildRequires:  mvn(javax.servlet:servlet-api)
BuildRequires:  mvn(org.apache.commons:commons-lang3)
BuildRequires:  mvn(org.apache.commons:commons-parent:pom:)
BuildRequires:  mvn(org.apache.commons:commons-text)
BuildRequires:  mvn(org.apache.maven.plugins:maven-assembly-plugin)
BuildRequires:  mvn(org.apache.maven.plugins:maven-jar-plugin)
BuildRequires:  mvn(org.apache.maven.plugins:maven-surefire-plugin)
BuildRequires:  mvn(org.codehaus.mojo:javacc-maven-plugin)

# Optional dependencies
BuildRequires:  mvn(com.fasterxml.jackson.core:jackson-databind)
BuildRequires:  mvn(commons-beanutils:commons-beanutils)
BuildRequires:  mvn(commons-codec:commons-codec)
BuildRequires:  mvn(commons-jxpath:commons-jxpath)
BuildRequires:  mvn(org.apache.commons:commons-jexl3)
BuildRequires:  mvn(org.apache.commons:commons-vfs2)
BuildRequires:  mvn(org.apache.logging.log4j:log4j-core)
BuildRequires:  mvn(org.yaml:snakeyaml)
BuildRequires:  mvn(xml-resolver:xml-resolver)

# Optional dependencies not available in Fedora
#BuildRequires:  mvn(org.springframework:spring-beans)
#BuildRequires:  mvn(org.springframework:spring-core)

# Test dependencies
%if %{with test}
BuildRequires:  mvn(com.sun.mail:mailapi)
BuildRequires:  mvn(commons-io:commons-io)
BuildRequires:  mvn(org.apache.commons:commons-dbcp2)
BuildRequires:  mvn(org.apache.commons:commons-pool2)
BuildRequires:  mvn(org.dbunit:dbunit)
BuildRequires:  mvn(org.hamcrest:hamcrest)
BuildRequires:  mvn(org.hsqldb:hsqldb)
BuildRequires:  mvn(org.junit.jupiter:junit-jupiter)
BuildRequires:  mvn(org.mockito:mockito-core)
BuildRequires:  mvn(org.slf4j:slf4j-api)
BuildRequires:  mvn(org.slf4j:slf4j-ext)
BuildRequires:  mvn(org.slf4j:slf4j-log4j12)
BuildRequires:  mvn(org.slf4j:slf4j-nop)
BuildRequires:  mvn(org.springframework:spring-context)
BuildRequires:  mvn(org.springframework:spring-test)
%endif

%description
The Commons Configuration software library provides a generic
configuration interface which enables a Java application to read
configuration data from a variety of sources.  Commons Configuration
provides typed access to single, and multi-valued configuration
parameters as demonstrated by the following code:

Double double = config.getDouble("number");
Integer integer = config.getInteger("number");

Configuration parameters may be loaded from the following sources:
- Properties files
- XML documents
- Windows INI files
- Property list files (plist)
- JNDI
- JDBC Datasource
- System properties
- Applet parameters
- Servlet parameters

Configuration objects are created using configuration builders.
Different configuration sources can be mixed using a
CombinedConfigurationBuilder and a CombinedConfiguration.  Additional
sources of configuration parameters can be created by using custom
configuration objects.  This customization can be achieved by extending
AbstractConfiguration or AbstractHierarchicalConfiguration.

%javadoc_package

%prep
%{gpgverify} --data=%{SOURCE0} --signature=%{SOURCE1} --keyring=%{SOURCE2}
%autosetup -n commons-configuration2-%{version}-src -p1

# Not needed for RPM builds
%pom_xpath_remove //pom:reporting
%pom_remove_plugin :apache-rat-plugin
%pom_remove_plugin :maven-checkstyle-plugin
%pom_remove_plugin :maven-javadoc-plugin
%pom_remove_plugin :maven-pmd-plugin
%pom_remove_plugin :maven-scm-publish-plugin
%pom_remove_plugin :spotbugs-maven-plugin

# The Spring framework is not available in Fedora
%pom_remove_dep org.springframework:spring-core
%pom_remove_dep org.springframework:spring-beans
%pom_remove_dep org.springframework:spring-context
%pom_remove_dep org.springframework:spring-test
rm -fr src/{main,test}/java/org/apache/commons/configuration2/spring

%build
# We skip tests because we don't have test deps (dbunit in particular).
%if %{with test}
%mvn_build -- -Dcommons.packageId=configuration
%else
%mvn_build -f -- -Dcommons.packageId=configuration
%endif

%install
%mvn_install

%files -f .mfiles
%doc README.md RELEASE-NOTES.txt
%license LICENSE.txt NOTICE.txt

%changelog
%autochangelog