[voms-api-java/el5] The Java API is now a separate source tree from the rest of voms
Mattias Ellert
ellert at fedoraproject.org
Mon Apr 23 17:33:34 UTC 2012
commit 385e7b8b1f0d18ada5718c07cb82d1fd048affea
Author: Mattias Ellert <mattias.ellert at fysast.uu.se>
Date: Mon Apr 23 19:31:39 2012 +0200
The Java API is now a separate source tree from the rest of voms
.gitignore | 1 +
build.xml | 23 ++++
maven-build.properties | 22 ++++
maven-build.xml | 268 ++++++++++++++++++++++++++++++++++++++++++++++++
sources | 1 +
voms-api-java.spec | 148 ++++++++++++++++++++++++++
6 files changed, 463 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..f6a3a77 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/*.tar.gz
diff --git a/build.xml b/build.xml
new file mode 100644
index 0000000..5361c8f
--- /dev/null
+++ b/build.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ====================================================================== -->
+<!-- Ant build file (http://ant.apache.org/) for Ant 1.6.2 or above. -->
+<!-- ====================================================================== -->
+
+<project name="voms-api-java" default="package" basedir=".">
+
+ <!-- ====================================================================== -->
+ <!-- Import maven-build.xml into the current project -->
+ <!-- ====================================================================== -->
+
+ <import file="maven-build.xml"/>
+
+ <!-- ====================================================================== -->
+ <!-- Help target -->
+ <!-- ====================================================================== -->
+
+ <target name="help">
+ <echo message="Please run: $ant -projecthelp"/>
+ </target>
+
+</project>
diff --git a/maven-build.properties b/maven-build.properties
new file mode 100644
index 0000000..744662c
--- /dev/null
+++ b/maven-build.properties
@@ -0,0 +1,22 @@
+#Generated by Maven Ant Plugin - DO NOT EDIT THIS FILE!
+#Thu Mar 22 00:41:13 CET 2012
+maven.settings.offline=true
+maven.build.finalName=voms-api-java-2.0.7
+maven.build.resourceDir.0=src/main/resources
+maven.build.testOutputDir=${maven.build.dir}/test-classes
+maven.build.testResourceDir.0=src/test/resources
+maven.reporting.outputDirectory=${maven.build.dir}/site
+project.build.sourceEncoding=UTF-8
+maven.build.srcDir.0=src/main/java
+project.build.directory=${maven.build.dir}
+maven.test.reports=${maven.build.dir}/test-reports
+maven.build.dir=target
+project.build.outputDirectory=${maven.build.outputDir}
+assembly.javadoc.dir=/usr/share/javadoc/voms-api-java
+assembly.doc.dir=/usr/share/doc/voms-api-java-2.0.7
+project.reporting.outputEncoding=UTF-8
+maven.build.testDir.0=src/test/java
+maven.settings.interactiveMode=true
+assembly.java.dir=/usr/share/java
+maven.repo.local=/home/ellert/Packaging/vomsjapi/voms-api-java-2.0.7/.m2
+maven.build.outputDir=${maven.build.dir}/classes
diff --git a/maven-build.xml b/maven-build.xml
new file mode 100644
index 0000000..39deccb
--- /dev/null
+++ b/maven-build.xml
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ====================================================================== -->
+<!-- Ant build file (http://ant.apache.org/) for Ant 1.6.2 or above. -->
+<!-- ====================================================================== -->
+
+<!-- ====================================================================== -->
+<!-- ===================== - DO NOT EDIT THIS FILE! - ===================== -->
+<!-- ====================================================================== -->
+<!-- -->
+<!-- Any modifications will be overwritten. -->
+<!-- -->
+<!-- Generated by Maven Ant Plugin on 3/22/12 12:41 AM -->
+<!-- See: http://maven.apache.org/plugins/maven-ant-plugin/ -->
+<!-- -->
+<!-- ====================================================================== -->
+
+<project name="voms-api-java-from-maven" default="package" basedir=".">
+
+ <!-- ====================================================================== -->
+ <!-- Build environment properties -->
+ <!-- ====================================================================== -->
+
+ <property file="${user.home}/.m2/maven.properties"/>
+ <property file="maven-build.properties"/>
+
+ <property name="maven.build.finalName" value="voms-api-java-2.0.7"/>
+ <property name="maven.build.dir" value="target"/>
+ <property name="maven.build.outputDir" value="${maven.build.dir}/classes"/>
+ <property name="maven.build.srcDir.0" value="src/main/java"/>
+ <property name="maven.build.resourceDir.0" value="src/main/resources"/>
+ <property name="maven.build.testOutputDir" value="${maven.build.dir}/test-classes"/>
+ <property name="maven.build.testDir.0" value="src/test/java"/>
+ <property name="maven.build.testResourceDir.0" value="src/test/resources"/>
+ <property name="maven.test.reports" value="${maven.build.dir}/test-reports"/>
+ <property name="maven.reporting.outputDirectory" value="${maven.build.dir}/site"/>
+
+ <property name="maven.repo.local" value="${user.home}/.m2/repository"/>
+ <property name="maven.settings.offline" value="true"/>
+ <property name="maven.settings.interactiveMode" value="true"/>
+
+ <!-- ====================================================================== -->
+ <!-- Defining classpaths -->
+ <!-- ====================================================================== -->
+
+ <path id="build.classpath">
+ <pathelement location="${maven.repo.local}/org/bouncycastle/bcprov-jdk16/1.45/bcprov-jdk16-1.45.jar"/>
+ <pathelement location="${maven.repo.local}/log4j/log4j/1.2.14/log4j-1.2.14.jar"/>
+ <pathelement location="${maven.repo.local}/commons-cli/commons-cli/1.1/commons-cli-1.1.jar"/>
+ <pathelement location="${maven.repo.local}/commons-lang/commons-lang/2.3/commons-lang-2.3.jar"/>
+ </path>
+ <path id="build.test.classpath">
+ <pathelement location="${maven.repo.local}/junit/junit/3.8.1/junit-3.8.1.jar"/>
+ <pathelement location="${maven.repo.local}/org/bouncycastle/bcprov-jdk16/1.45/bcprov-jdk16-1.45.jar"/>
+ <pathelement location="${maven.repo.local}/log4j/log4j/1.2.14/log4j-1.2.14.jar"/>
+ <pathelement location="${maven.repo.local}/commons-cli/commons-cli/1.1/commons-cli-1.1.jar"/>
+ <pathelement location="${maven.repo.local}/commons-lang/commons-lang/2.3/commons-lang-2.3.jar"/>
+ </path>
+
+ <!-- ====================================================================== -->
+ <!-- Cleaning up target -->
+ <!-- ====================================================================== -->
+
+ <target name="clean" description="Clean the output directory">
+ <delete dir="${maven.build.dir}"/>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Compilation target -->
+ <!-- ====================================================================== -->
+
+ <target name="compile" depends="get-deps" description="Compile the code">
+ <mkdir dir="${maven.build.outputDir}"/>
+ <javac destdir="${maven.build.outputDir}"
+ nowarn="false"
+ debug="true"
+ optimize="false"
+ deprecation="true"
+ target="1.5"
+ verbose="false"
+ fork="false"
+ source="1.5">
+ <src>
+ <pathelement location="${maven.build.srcDir.0}"/>
+ </src>
+ <classpath refid="build.classpath"/>
+ </javac>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Test-compilation target -->
+ <!-- ====================================================================== -->
+
+ <target name="compile-tests"
+ depends="compile"
+ description="Compile the test code"
+ unless="maven.test.skip">
+ <mkdir dir="${maven.build.testOutputDir}"/>
+ <javac destdir="${maven.build.testOutputDir}"
+ nowarn="false"
+ debug="true"
+ optimize="false"
+ deprecation="true"
+ target="1.5"
+ verbose="false"
+ fork="false"
+ source="1.5">
+ <src>
+ <pathelement location="${maven.build.testDir.0}"/>
+ </src>
+ <classpath>
+ <path refid="build.test.classpath"/>
+ <pathelement location="${maven.build.outputDir}"/>
+ </classpath>
+ </javac>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Run all tests -->
+ <!-- ====================================================================== -->
+
+ <target name="test"
+ depends="compile-tests, junit-missing"
+ unless="junit.skipped"
+ description="Run the test cases">
+ <mkdir dir="${maven.test.reports}"/>
+ <junit printSummary="yes" haltonerror="true" haltonfailure="true" fork="true" dir=".">
+ <sysproperty key="basedir" value="."/>
+ <formatter type="xml"/>
+ <formatter type="plain" usefile="false"/>
+ <classpath>
+ <path refid="build.test.classpath"/>
+ <pathelement location="${maven.build.outputDir}"/>
+ <pathelement location="${maven.build.testOutputDir}"/>
+ </classpath>
+ <batchtest todir="${maven.test.reports}" unless="test">
+ <fileset dir="${maven.build.testDir.0}">
+ <include name="**/Test*.java"/>
+ <include name="**/*Test.java"/>
+ <include name="**/*TestCase.java"/>
+ <exclude name="**/*Abstract*Test.java"/>
+ </fileset>
+ </batchtest>
+ <batchtest todir="${maven.test.reports}" if="test">
+ <fileset dir="${maven.build.testDir.0}">
+ <include name="**/${test}.java"/>
+ <exclude name="**/*Abstract*Test.java"/>
+ </fileset>
+ </batchtest>
+ </junit>
+ </target>
+
+ <target name="test-junit-present">
+ <available classname="junit.framework.Test" property="junit.present"/>
+ </target>
+
+ <target name="test-junit-status"
+ depends="test-junit-present">
+ <condition property="junit.missing">
+ <and>
+ <isfalse value="${junit.present}"/>
+ <isfalse value="${maven.test.skip}"/>
+ </and>
+ </condition>
+ <condition property="junit.skipped">
+ <or>
+ <isfalse value="${junit.present}"/>
+ <istrue value="${maven.test.skip}"/>
+ </or>
+ </condition>
+ </target>
+
+ <target name="junit-missing"
+ depends="test-junit-status"
+ if="junit.missing">
+ <echo>=================================== WARNING ===================================</echo>
+ <echo> JUnit is not present in your $ANT_HOME/lib directory. Tests not executed.</echo>
+ <echo>===============================================================================</echo>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Javadoc target -->
+ <!-- ====================================================================== -->
+
+ <target name="javadoc" description="Generates the Javadoc of the application">
+ <javadoc sourcepath="${maven.build.srcDir.0}"
+ packagenames="*"
+ destdir="${maven.reporting.outputDirectory}/apidocs"
+ access="protected"
+ old="false"
+ verbose="false"
+ version="true"
+ use="true"
+ author="true"
+ splitindex="false"
+ nodeprecated="false"
+ nodeprecatedlist="false"
+ notree="false"
+ noindex="false"
+ nohelp="false"
+ nonavbar="false"
+ serialwarn="false"
+ charset="ISO-8859-1"
+ linksource="false"
+ breakiterator="false"/>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- Package target -->
+ <!-- ====================================================================== -->
+
+ <target name="package" depends="compile,test" description="Package the application">
+ <jar jarfile="${maven.build.dir}/${maven.build.finalName}.jar"
+ compress="true"
+ index="false"
+ basedir="${maven.build.outputDir}"
+ excludes="**/package.html"/>
+ </target>
+
+ <!-- ====================================================================== -->
+ <!-- A dummy target for the package named after the type it creates -->
+ <!-- ====================================================================== -->
+
+ <target name="jar" depends="package" description="Builds the jar for the application"/>
+
+ <!-- ====================================================================== -->
+ <!-- Download dependencies target -->
+ <!-- ====================================================================== -->
+
+ <target name="test-offline">
+ <condition property="maven.mode.offline">
+ <equals arg1="${maven.settings.offline}" arg2="true"/>
+ </condition>
+ </target>
+
+ <target name="get-deps"
+ depends="test-offline"
+ description="Download all dependencies"
+ unless="maven.mode.offline">
+ <mkdir dir="${maven.repo.local}"/>
+ <mkdir dir="${maven.repo.local}/junit/junit/3.8.1"/>
+ <get src="http://repo1.maven.org/maven2/junit/junit/3.8.1/junit-3.8.1.jar"
+ dest="${maven.repo.local}/junit/junit/3.8.1/junit-3.8.1.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <mkdir dir="${maven.repo.local}/org/bouncycastle/bcprov-jdk16/1.45"/>
+ <get src="http://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk16/1.45/bcprov-jdk16-1.45.jar"
+ dest="${maven.repo.local}/org/bouncycastle/bcprov-jdk16/1.45/bcprov-jdk16-1.45.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <mkdir dir="${maven.repo.local}/log4j/log4j/1.2.14"/>
+ <get src="http://repo1.maven.org/maven2/log4j/log4j/1.2.14/log4j-1.2.14.jar"
+ dest="${maven.repo.local}/log4j/log4j/1.2.14/log4j-1.2.14.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <mkdir dir="${maven.repo.local}/commons-cli/commons-cli/1.1"/>
+ <get src="http://repo1.maven.org/maven2/commons-cli/commons-cli/1.1/commons-cli-1.1.jar"
+ dest="${maven.repo.local}/commons-cli/commons-cli/1.1/commons-cli-1.1.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ <mkdir dir="${maven.repo.local}/commons-lang/commons-lang/2.3"/>
+ <get src="http://repo1.maven.org/maven2/commons-lang/commons-lang/2.3/commons-lang-2.3.jar"
+ dest="${maven.repo.local}/commons-lang/commons-lang/2.3/commons-lang-2.3.jar"
+ usetimestamp="false"
+ ignoreerrors="true"/>
+ </target>
+
+</project>
diff --git a/sources b/sources
index e69de29..4cb1b01 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+953241b6f0162bf031de5bc833977d93 voms-api-java-2.0.7.tar.gz
diff --git a/voms-api-java.spec b/voms-api-java.spec
new file mode 100644
index 0000000..92a1616
--- /dev/null
+++ b/voms-api-java.spec
@@ -0,0 +1,148 @@
+# Use maven if it is available - otherwise fall back to ant
+%if %{?fedora}%{!?fedora:0} >= 15 || %{?rhel}%{!?rhel:0} >= 7
+%global maven 1
+%else
+%global maven 0
+%endif
+
+Name: voms-api-java
+Version: 2.0.7
+Release: 1%{?dist}
+Summary: Virtual Organization Membership Service Java API
+
+Group: Development/Libraries
+License: ASL 2.0
+URL: http://glite.web.cern.ch/glite/
+# This source tarball is created from a git checkout:
+# git clone git://github.com/italiangrid/voms-api-java.git
+# cd voms-api-java
+# git archive --format tar --prefix voms-api-java-2.0.7/ 2_0_7 \
+# | gzip - > ../voms-api-java-2.0.7.tar.gz
+Source0: %{name}-%{version}.tar.gz
+# These are build instructions for ant generated from the maven
+# build instrutions using the maven ant plugin.
+# These are used for building on EPEL since there is no maven
+# available there.
+Source1: build.xml
+Source2: maven-build.xml
+Source3: maven-build.properties
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildArch: noarch
+
+# There is no bouncycastle in EPEL 5 ppc and EPEL 6 ppc64
+%if %{?rhel}%{!?rhel:0} == 5
+ExcludeArch: ppc
+%endif
+%if %{?rhel}%{!?rhel:0} == 6
+ExcludeArch: ppc64
+%endif
+
+Requires: java
+Requires: jpackage-utils
+Requires: bouncycastle >= 1.39
+Requires: jakarta-commons-cli
+Requires: jakarta-commons-lang
+Requires: log4j
+
+Provides: vomsjapi = %{version}-%{release}
+Obsoletes: vomsjapi < 2.0.7
+
+BuildRequires: java-devel >= 1:1.6.0
+BuildRequires: jpackage-utils
+
+%if %maven
+BuildRequires: maven
+BuildRequires: maven-compiler-plugin
+BuildRequires: maven-install-plugin
+BuildRequires: maven-jar-plugin
+BuildRequires: maven-javadoc-plugin
+BuildRequires: maven-release-plugin
+BuildRequires: maven-resources-plugin
+BuildRequires: maven-surefire-plugin
+BuildRequires: junit4
+%else
+BuildRequires: ant
+BuildRequires: ant-junit
+%endif
+
+BuildRequires: bouncycastle >= 1.39
+BuildRequires: jakarta-commons-cli
+BuildRequires: jakarta-commons-lang
+BuildRequires: log4j
+
+%description
+The Virtual Organization Membership Service (VOMS) is an attribute authority
+which serves as central repository for VO user authorization information,
+providing support for sorting users into group hierarchies, keeping track of
+their roles and other attributes in order to issue trusted attribute
+certificates and SAML assertions used in the Grid environment for
+authorization purposes.
+
+This package provides a java client API for VOMS.
+
+%package javadoc
+Summary: Virtual Organization Membership Service Java API Documentation
+Group: Documentation
+Requires: jpackage-utils
+Requires: %{name} = %{version}-%{release}
+Provides: vomsjapi-javadoc = %{version}-%{release}
+Obsoletes: vomsjapi-javadoc < 2.0.7
+
+%description javadoc
+Virtual Organization Membership Service (VOMS) Java API Documentation.
+
+%prep
+%setup -q
+install -m 644 %SOURCE1 .
+install -m 644 %SOURCE2 .
+install -m 644 %SOURCE3 .
+
+sed s/bcprov-ext-jdk15/bcprov-jdk16/ -i pom.xml
+
+%build
+%if %{maven}
+mvn-rpmbuild install javadoc:aggregate
+%else
+CLASSPATH=$(build-classpath bcprov log4j jakarta-commons-cli \
+ jakarta-commons-lang) ant package javadoc
+%endif
+
+%install
+mkdir -p $RPM_BUILD_ROOT%{_javadir}
+install -m 644 target/%{name}-%{version}.jar \
+ $RPM_BUILD_ROOT%{_javadir}/%{name}.jar
+ln -s %{name}.jar $RPM_BUILD_ROOT%{_javadir}/vomsjapi.jar
+
+mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}
+%if %{maven}
+cp -pr target/site/javadoc/apidocs $RPM_BUILD_ROOT%{_javadocdir}/%{name}
+%else
+cp -pr target/site/apidocs $RPM_BUILD_ROOT%{_javadocdir}/%{name}
+%endif
+
+%if %{maven}
+mkdir -p $RPM_BUILD_ROOT%{_mavenpomdir}
+install -m 644 pom.xml $RPM_BUILD_ROOT%{_mavenpomdir}/JPP-%{name}.pom
+%add_maven_depmap JPP-%{name}.pom %{name}.jar -a vomsjapi:%{name}
+%endif
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root,-)
+%{_javadir}/%{name}.jar
+%{_javadir}/vomsjapi.jar
+%if %{maven}
+%{_mavenpomdir}/JPP-%{name}.pom
+%{_mavendepmapfragdir}/%{name}
+%endif
+%doc AUTHORS LICENSE
+
+%files javadoc
+%defattr(-,root,root,-)
+%doc %{_javadocdir}/%{name}
+
+%changelog
+* Tue Mar 20 2012 Mattias Ellert <mattias.ellert at fysast.uu.se> - 2.0.7-1
+- The Java API is now a separate source tree from the rest of voms
More information about the scm-commits
mailing list