%global base_name jci %global short_name commons-%{base_name} %global namedreltag %{nil} %global namedversion %{version}%{?namedreltag} Name: apache-commons-jci Version: 1.0 Release: 1%{?dist} Summary: Commons Java Compiler Interface Group: Development/Libraries License: ASL 2.0 URL: http://commons.apache.org/jci/ Source0: ftp://ftp.gbnet.net/pub/apache/dist/commons/%{base_name}/source/%{short_name}-%{namedversion}-src.tar.gz # fix parent relative path # fix groovy gId and aId # add org.codehaus.janino commons-compiler # remove org.codehaus.mojo findbugs-maven-plugin 1.0.0 Patch0: %{name}-%{namedversion}-fixbuild.patch # asm 3 test build Patch1: %{name}-%{namedversion}-ExtendedDump.patch Patch2: %{name}-%{namedversion}-SimpleDump.patch # fix parent relative path # remove jetty-maven-plugin # use tomcat 7.x apis Patch3: %{name}-%{namedversion}-examples-pom.patch Patch4: %{name}-%{namedversion}-janino26.patch BuildRequires: java-devel BuildRequires: jpackage-utils BuildRequires: maven BuildRequires: maven-antrun-plugin BuildRequires: maven-compiler-plugin BuildRequires: maven-install-plugin BuildRequires: maven-jar-plugin BuildRequires: maven-javadoc-plugin BuildRequires: maven-plugin-bundle BuildRequires: maven-plugin-cobertura BuildRequires: maven-resources-plugin BuildRequires: maven-site-plugin BuildRequires: maven-surefire-plugin BuildRequires: maven-surefire-provider-junit4 BuildRequires: apache-commons-logging BuildRequires: apache-commons-io BuildRequires: ecj >= 3.4.2-13 BuildRequires: groovy BuildRequires: janino BuildRequires: rhino # test deps BuildRequires: apache-commons-lang BuildRequires: junit BuildRequires: objectweb-asm Requires: java Requires: jpackage-utils BuildArch: noarch #* javac Commons JCI compiler implementation for the javac compiler (up to JDK 1.5). #* jsr199 Commons JCI compiler implementation for JDK 1.6 and up. %description JCI is a java compiler interface featuring a compiling classloader. The current implementation supports compilation via the following compilers: * eclipse * groovy * janino * rhino %package core Group: Development/Libraries Summary: Commons Java Compiler Interface - core Requires: apache-commons-io Requires: %{name}-fam = %{version}-%{release} %description core Commons JCI core interfaces and implementations. %package fam Group: Development/Libraries Summary: Commons Java Compiler Interface - FAM Requires: apache-commons-logging Requires: %{name} = %{version}-%{release} %description fam Commons JCI FileAlterationMonitor (FAM) to monitor local filesystems and get notified about changes. %package javadoc Group: Documentation Summary: Javadoc for %{name} Requires: jpackage-utils %description javadoc This package contains javadoc for %{name}. # compilers %package eclipse Group: Development/Libraries Summary: Commons Java Compiler Interface - eclipse Requires: ecj >= 3.4.2-13 Requires: %{name} = %{version}-%{release} %description eclipse Commons JCI compiler implementation for the eclipse compiler. %package groovy Group: Development/Libraries Summary: Commons Java Compiler Interface - groovy Requires: groovy Requires: %{name}-core = %{version}-%{release} %description groovy Commons JCI compiler implementation for the groovy compiler. %package janino Group: Development/Libraries Summary: Commons Java Compiler Interface - janino Requires: janino Requires: %{name}-core = %{version}-%{release} %description janino Commons JCI compiler implementation for the janino compiler. %package rhino Group: Development/Libraries Summary: Commons Java Compiler Interface - rhino Requires: rhino Requires: %{name}-core = %{version}-%{release} %description rhino Commons JCI compiler implementation for rhino javascript. %prep %setup -q -n %{short_name}-%{namedversion}-src find . -name "*.class" -delete find . -name "*.jar" -delete %patch0 -p1 %patch1 -p0 %patch2 -p0 %patch3 -p0 %patch4 -p1 # TODO # require old version of jdependency sed -i "s|compilers/javac||" pom.xml sed -i "s|examples||" pom.xml %build # random tests failures mvn-rpmbuild \ -Dmaven.test.failure.ignore=true \ install javadoc:aggregate %install mkdir -p %{buildroot}%{_mavenpomdir} install -m 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{short_name}-parent.pom %add_maven_depmap JPP.%{short_name}-parent.pom mkdir -p %{buildroot}%{_javadir}/%{short_name} for m in core \ fam;do install -m 644 ${m}/target/%{short_name}-${m}-%{namedversion}.jar %{buildroot}%{_javadir}/%{short_name}/%{short_name}-${m}.jar install -pm 644 ${m}/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{short_name}-%{short_name}-${m}.pom %add_maven_depmap -f ${m} JPP.%{short_name}-%{short_name}-${m}.pom %{short_name}/%{short_name}-${m}.jar done # TODO # javac for mc in eclipse \ janino \ groovy \ rhino;do install -m 644 compilers/${mc}/target/%{short_name}-${mc}-%{namedversion}.jar %{buildroot}%{_javadir}/%{short_name}/%{short_name}-${mc}.jar install -pm 644 compilers/${mc}/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{short_name}-%{short_name}-${mc}.pom %add_maven_depmap -f ${mc} JPP.%{short_name}-%{short_name}-${mc}.pom %{short_name}/%{short_name}-${mc}.jar done mkdir -p %{buildroot}%{_javadocdir}/%{short_name} cp -pr target/site/apidocs/* %{buildroot}%{_javadocdir}/%{short_name} %files %{_mavenpomdir}/JPP.%{short_name}-parent.pom %{_mavendepmapfragdir}/%{name} %doc LICENSE.txt NOTICE.txt README.txt TODO.txt %files core %{_javadir}/%{short_name}/%{short_name}-core.jar %{_mavenpomdir}/JPP.%{short_name}-%{short_name}-core.pom %{_mavendepmapfragdir}/%{name}-core %files fam %{_javadir}/%{short_name}/%{short_name}-fam.jar %{_mavenpomdir}/JPP.%{short_name}-%{short_name}-fam.pom %{_mavendepmapfragdir}/%{name}-fam %files javadoc %{_javadocdir}/%{short_name} %doc LICENSE.txt NOTICE.txt %files eclipse %{_javadir}/%{short_name}/%{short_name}-eclipse.jar %{_mavenpomdir}/JPP.%{short_name}-%{short_name}-eclipse.pom %{_mavendepmapfragdir}/%{name}-eclipse %files groovy %{_javadir}/%{short_name}/%{short_name}-groovy.jar %{_mavenpomdir}/JPP.%{short_name}-%{short_name}-groovy.pom %{_mavendepmapfragdir}/%{name}-groovy %files janino %{_javadir}/%{short_name}/%{short_name}-janino.jar %{_mavenpomdir}/JPP.%{short_name}-%{short_name}-janino.pom %{_mavendepmapfragdir}/%{name}-janino %files rhino %{_javadir}/%{short_name}/%{short_name}-rhino.jar %{_mavenpomdir}/JPP.%{short_name}-%{short_name}-rhino.pom %{_mavendepmapfragdir}/%{name}-rhino %changelog * Fri Apr 06 2012 gil cattaneo 1.0-1 - initial rpm