%global namedreltag -SNAPSHOT
%global namedversion %{version}%{?namedreltag}
Name: jour
Version: 2.0.4
Release: 0.1.SNAPSHOT%{?dist}
Summary: Byte-code instrumentation library
Group: Development/Libraries
License: LGPLv2+
URL: http://jour.sourceforge.net/
# svn export https://jour.svn.sourceforge.net/svnroot/jour/ jour-2.0.4-SNAPSHOT
# find jour-2.0.4-SNAPSHOT/ -name "*.class" -print -delete
# find jour-2.0.4-SNAPSHOT/ -name "*.jar" -print -delete
# jour-instrument/src/test/resources/jarPreProcessorTest.jar
Source0: %{name}-%{namedversion}-src-svn.tar.gz
# testRecursion(net.sf.jour.processor.TestJarFileInputSource): Resource not found /jarPreProcessorTest.jar
# testPreProcessorJar(net.sf.jour.TestPreProcessor): Resource not found /jarPreProcessorTest.jar
Patch0: %{name}-%{namedversion}-test.patch
BuildRequires: java-devel
BuildRequires: javassist
BuildRequires: junit
BuildRequires: log4j
BuildRequires: mvn(org.apache.maven:maven-archiver)
BuildRequires: mvn(org.apache.maven:maven-artifact)
BuildRequires: mvn(org.apache.maven:maven-compat)
BuildRequires: mvn(org.apache.maven:maven-plugin-api)
BuildRequires: mvn(com.pyx4j:maven-plugin-log4j)
BuildRequires: maven-local
BuildRequires: maven-compiler-plugin
BuildRequires: maven-jar-plugin
BuildRequires: maven-javadoc-plugin
BuildRequires: maven-plugin-plugin
BuildRequires: maven-resources-plugin
BuildRequires: maven-surefire-plugin
BuildRequires: maven-surefire-provider-junit4
Requires: javassist
Requires: junit
Requires: log4j
Requires: java
BuildArch: noarch
%description
The Jour library is an open source suite of
java byte-code instrumentation base on Javassist.
Jour is designed to simplify the use of Javassist
for processing multiple classes. In short Jour
is simple Aspect Oriented Programming AOP framework
on top of Javassist.
%package maven-plugin
Group: Development/Libraries
Summary: Maven jour plugin
Requires: %{name} = %{version}-%{release}
Requires: mvn(org.apache.maven:maven-archiver)
Requires: mvn(org.apache.maven:maven-artifact)
Requires: mvn(org.apache.maven:maven-compat)
Requires: mvn(org.apache.maven:maven-plugin-api)
Requires: mvn(com.pyx4j:maven-plugin-log4j)
%description maven-plugin
This package provides Maven jour plugin.
%package javadoc
Group: Documentation
Summary: Javadoc for %{name}
%description javadoc
This package contains javadoc for %{name}.
%prep
%setup -q -n %{name}-%{namedversion}
%patch0 -p1 -b .test
%pom_remove_plugin org.codehaus.mojo:jdepend-maven-plugin
%pom_remove_plugin org.codehaus.mojo:findbugs-maven-plugin
%pom_remove_plugin org.codehaus.mojo:taglist-maven-plugin
%pom_remove_plugin :maven-pmd-plugin
%pom_xpath_remove "pom:build/pom:pluginManagement/pom:plugins/pom:plugin[pom:artifactId ='maven-compiler-plugin']/pom:configuration"
%pom_xpath_inject "pom:build/pom:pluginManagement/pom:plugins/pom:plugin[pom:artifactId ='maven-compiler-plugin']" "1.5"
sed -i 's|ISO-8859-1|UTF-8|' pom.xml
%pom_remove_plugin :maven-dependency-plugin jour-instrument
%pom_xpath_remove "pom:build/pom:plugins/pom:plugin[pom:artifactId ='maven-compiler-plugin']/pom:configuration" \
jour-instrument
%pom_xpath_inject "pom:build/pom:plugins/pom:plugin[pom:artifactId ='maven-compiler-plugin']" \
"1.5" jour-instrument
sed -i 's|true|false|' jour-instrument/pom.xml
%pom_xpath_remove "pom:build/pom:plugins/pom:plugin[pom:artifactId ='maven-compiler-plugin']/pom:configuration" \
jour-maven-plugin
%pom_xpath_inject "pom:build/pom:plugins/pom:plugin[pom:artifactId ='maven-compiler-plugin']" \
"1.5" jour-maven-plugin
%pom_remove_dep org.apache.maven:maven-project jour-maven-plugin
%pom_add_dep org.apache.maven:maven-compat jour-maven-plugin
#%%pom_xpath_remove "pom:build/pom:plugins/pom:plugin[pom:artifactId ='maven-compiler-plugin']/pom:configuration" \
# jour-examples
#%%pom_xpath_inject "pom:build/pom:plugins/pom:plugin[pom:artifactId ='maven-compiler-plugin']" \
# "1.5" jour-examples
%pom_disable_module jour-examples
%build
mvn-rpmbuild package javadoc:aggregate
%install
mkdir -p %{buildroot}%{_mavenpomdir}
install -pm 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP-%{name}.pom
%add_maven_depmap JPP-%{name}.pom
mkdir -p %{buildroot}%{_javadir}
install -m 644 %{name}-instrument/target/%{name}-instrument-%{namedversion}.jar \
%{buildroot}%{_javadir}/%{name}-instrument.jar
install -pm 644 %{name}-instrument/pom.xml %{buildroot}%{_mavenpomdir}/JPP-%{name}-instrument.pom
%add_maven_depmap JPP-%{name}-instrument.pom %{name}-instrument.jar
install -m 644 %{name}-maven-plugin/target/%{name}-maven-plugin-%{namedversion}.jar \
%{buildroot}%{_javadir}/%{name}-maven-plugin.jar
install -pm 644 %{name}-maven-plugin/pom.xml %{buildroot}%{_mavenpomdir}/JPP-%{name}-maven-plugin.pom
%add_maven_depmap -f maven-plugin JPP-%{name}-maven-plugin.pom %{name}-maven-plugin.jar
mkdir -p %{buildroot}%{_javadocdir}/%{name}
cp -rp target/site/apidocs/* %{buildroot}%{_javadocdir}/%{name}
%files
%{_javadir}/%{name}-instrument.jar
%{_mavenpomdir}/JPP-%{name}.pom
%{_mavenpomdir}/JPP-%{name}-instrument.pom
%{_mavendepmapfragdir}/%{name}
%files maven-plugin
%{_javadir}/%{name}-maven-plugin.jar
%{_mavenpomdir}/JPP-%{name}-maven-plugin.pom
%{_mavendepmapfragdir}/%{name}-maven-plugin
%files javadoc
%{_javadocdir}/%{name}
%changelog
* Thu May 02 2013 gil cattaneo 2.0.4-0.1.SNAPSHOT
- initial rpm