%define maven 0 Name: java-sorcerer Version: 0.8 Release: 3mamba Summary: source code cross reference generator Group: Applications/Development Vendor: openmamba Distribution: openmamba Packager: gil URL: https://sorcerer.dev.java.net/ # svn checkout https://sorcerer.dev.java.net/svn/sorcerer/tags/sorcerer-0.8 --username username Source0: sorcerer-%{version}-src-svn.tar.gz Source1: maven2-2.2.0-settings.xml Source2: java-sorcerer-0.8-autogeneratedfiles.tar.gz Patch0: java-sorcerer-0.8-no-wagon-svn-extension.patch Patch1: java-sorcerer-0.8-core-test.patch License: MIT, Eclipse Public License BuildRequires: antlr BuildRequires: apache-ant BuildRequires: apache-ant-antlr %if %maven BuildRequires: apache-maven BuildRequires: apache-maven-plugin-assembly BuildRequires: apache-maven-plugin-compiler BuildRequires: apache-maven-plugin-jar BuildRequires: apache-maven-plugin-plugin BuildRequires: java-jetty6120-core BuildRequires: java-wagon-svn BuildRequires: jetty6-maven-plugins BuildRequires: maven-doxia BuildRequires: maven-project-info-reports-plugin BuildRequires: maven-release-plugin BuildRequires: maven-shared-reporting-impl BuildRequires: maven-wagon BuildRequires: mojo-antlr-maven-plugin %endif BuildRequires: apache-tomcat5-jsp20-api BuildRequires: apache-tomcat5-servletapi5 BuildRequires: jakarta-commons-beanutils BuildRequires: jakarta-commons-collections BuildRequires: jakarta-commons-logging BuildRequires: jakarta-commons-validator BuildRequires: jakarta-oro BuildRequires: java-args4j BuildRequires: java-classworlds BuildRequires: java-junit3 BuildRequires: java-plexus-classworlds BuildRequires: java-plexus-containers-api BuildRequires: java-plexus-containers-default BuildRequires: java-plexus-i18n BuildRequires: java-plexus-utils BuildRequires: java-plexus-velocity BuildRequires: java-stapler BuildRequires: java-velocity BuildRoot: %{_tmppath}/%{name}-%{version}-root %description Sorcerer is a source code cross reference generator. It analyzes a set of Java source files and produce HTML files that shows annotated source code. Unlike some of the other similar tools like JXR, orcerer understands Java AST like IDEs, and therefore provide much richer navigation in the HTML files. For example, you can jump to the definition to the method from every invocation (it even handles overloaded methods correctly), or jump to the derived classes from any class, etc. %package javadoc Group: Documentation Summary: Javadoc for %{name} %description javadoc Sorcerer is a source code cross reference generator. This package contains javadoc for %{name}. %package maven-plugin Group: Development/Libraries/Java Summary: Maven Sorcerer Plugin Requires: %{name} = %{version}-%{release} #Requires: apache-maven %description maven-plugin Sorcerer is a source code cross reference generator. This package contains Maven Surefire Plugin. %package stapler-testapp Group: Development/Libraries/Java Summary: Sorcerer test webapp Requires: %{name} = %{version}-%{release} Requires: java-stapler %description stapler-testapp Sorcerer is a source code cross reference generator. This package contains Sorcerer test webapp. %prep %setup -q -n sorcerer-%{version} %patch0 -p1 chmod -R go=u-w * for j in $(find . -name "*.jar"); do mv $j ${j}.no done %if %maven cp %{SOURCE1} settings.xml mkdir -p .m2/repository/JPP/maven2 sed -i -e "s|__INTERNAL_REPO_PLACEHOLDER__|file://`pwd`/external_repo|g" settings.xml sed -i -e "s|__EXTERNAL_REPO_PLACEHOLDER__|file://`pwd`/.m2/repository|g" settings.xml %else tar -xf %{SOURCE2} %patch1 %endif %build export JAVA_HOME=/usr/lib/jvm/jdk-sun export MAVEN_REPO_LOCAL=$PWD/.m2/repository mkdir -p $MAVEN_REPO_LOCAL %if %maven export MAVEN_SETTINGS=$PWD/settings.xml mkdir external_repo ln -s %{_javadir} external_repo/JPP mvn-jpp \ -s $MAVEN_SETTINGS \ -Dmaven.repo.local=$MAVEN_REPO_LOCAL \ install:install-file \ -DgroupId=args4j \ -DartifactId=args4j \ -Dversion=2.0.13 \ -Dpackaging=jar \ -Dfile=$(build-classpath args4j) mvn-jpp \ -e \ -s $MAVEN_SETTINGS \ -Dmaven.test.failure.ignore=true \ -Dmaven.repo.local=$MAVEN_REPO_LOCAL \ ant:ant install javadoc:javadoc %else pushd javac export CLASSPATH="" CLASSPATH=$CLASSPATH:$(build-classpath junit-3.8.2 ant/ant-junit):target/classes:target/test-classes ant \ -Duser.home=$PWD \ -Dmaven.repo.local=$MAVEN_REPO_LOCAL \ -Dmaven.settings.offline=true \ -Dmaven.settings.interactiveMode=false \ -Dbuild.sysclasspath=first \ jar javadoc popd pushd core mkdir -p src/main/java/org/jvnet/sorcerer/impl antlr -o src/main/java/org/jvnet/sorcerer/impl/ java.g export CLASSPATH="" CLASSPATH=$CLASSPATH:../javac/target/sorcerer-javac-%{version}.jar CLASSPATH=$CLASSPATH:$(build-classpath antlr junit-3.8.2 ant/ant-junit):target/classes:target/test-classes ant \ -Duser.home=$PWD \ -Dmaven.repo.local=$MAVEN_REPO_LOCAL \ -Dmaven.settings.offline=true \ -Dmaven.settings.interactiveMode=false \ -Dbuild.sysclasspath=first \ jar javadoc popd pushd cli export CLASSPATH="" CLASSPATH=$CLASSPATH:../core/target/sorcerer-core-%{version}.jar CLASSPATH=$CLASSPATH:../javac/target/sorcerer-javac-%{version}.jar CLASSPATH=$CLASSPATH:$(build-classpath args4j antlr ant):target/classes CLASSPATH=$CLASSPATH:$(build-classpath junit-3.8.2 ant/ant-junit):target/test-classes ant \ -Duser.home=$PWD \ -Dmaven.repo.local=$MAVEN_REPO_LOCAL \ -Dmaven.settings.offline=true \ -Dmaven.settings.interactiveMode=false \ -Dbuild.sysclasspath=first \ jar javadoc popd pushd ant export CLASSPATH="" CLASSPATH=$CLASSPATH:../core/target/sorcerer-core-%{version}.jar CLASSPATH=$CLASSPATH:../javac/target/sorcerer-javac-%{version}.jar CLASSPATH=$CLASSPATH:$(build-classpath antlr args4j):target/classes CLASSPATH=$CLASSPATH:$(build-classpath junit-3.8.2 ant/ant-junit):target/test-classes ant \ -Duser.home=$PWD \ -Dmaven.repo.local=$MAVEN_REPO_LOCAL \ -Dmaven.settings.offline=true \ -Dmaven.settings.interactiveMode=false \ -Dbuild.sysclasspath=first \ jar javadoc popd pushd stapler export CLASSPATH="" CLASSPATH=$CLASSPATH:../core/target/sorcerer-core-%{version}.jar CLASSPATH=$CLASSPATH:../javac/target/sorcerer-javac-%{version}.jar CLASSPATH=$CLASSPATH:$(build-classpath servletapi5 jsp-api20) CLASSPATH=$CLASSPATH:$(build-classpath commons-beanutils commons-collections) CLASSPATH=$CLASSPATH:$(build-classpath commons-logging antlr stapler):target/classes CLASSPATH=$CLASSPATH:$(build-classpath junit-3.8.2 ant/ant-junit):target/test-classes ant \ -Duser.home=$PWD \ -Dmaven.repo.local=$MAVEN_REPO_LOCAL \ -Dmaven.settings.offline=true \ -Dmaven.settings.interactiveMode=false \ -Dbuild.sysclasspath=first \ jar javadoc popd pushd uberjar export CLASSPATH="" CLASSPATH=$CLASSPATH:../ant/target/sorcerer-ant-%{version}.jar CLASSPATH=$CLASSPATH:../cli/target/sorcerer-cli-%{version}.jar CLASSPATH=$CLASSPATH:../core/target/sorcerer-core-%{version}.jar CLASSPATH=$CLASSPATH:../javac/target/sorcerer-javac-%{version}.jar CLASSPATH=$CLASSPATH:$(build-classpath antlr args4j ant):target/classes CLASSPATH=$CLASSPATH:$(build-classpath junit-3.8.2 ant/ant-junit):target/test-classes ant \ -Duser.home=$PWD \ -Dmaven.repo.local=$MAVEN_REPO_LOCAL \ -Dmaven.settings.offline=true \ -Dmaven.settings.interactiveMode=false \ -Dbuild.sysclasspath=first \ jar javadoc popd pushd stapler-testapp mkdir -p build_lib ln -sf $(build-classpath antlr) build_lib/antlr-2.7.6.jar ln -sf $(build-classpath stapler) build_lib/stapler-1.37.jar ln -sf $(build-classpath commons-beanutils) build_lib/commons-beanutils-1.6.jar ln -sf $(build-classpath commons-logging) build_lib/commons-logging-1.0.jar ln -sf $(build-classpath commons-collections) build_lib/commons-collections-2.0.jar export CLASSPATH="" CLASSPATH=$CLASSPATH:../core/target/sorcerer-core-%{version}.jar CLASSPATH=$CLASSPATH:../javac/target/sorcerer-javac-%{version}.jar CLASSPATH=$CLASSPATH:../stapler/target/sorcerer-stapler-%{version}.jar CLASSPATH=$CLASSPATH:$(build-classpath servletapi5 jsp-api20) CLASSPATH=$CLASSPATH:$(build-classpath commons-beanutils commons-collections) CLASSPATH=$CLASSPATH:$(build-classpath commons-logging antlr stapler):target/classes CLASSPATH=$CLASSPATH:$(build-classpath junit-3.8.2 ant/ant-junit):target/test-classes ant \ -Duser.home=$PWD \ -Dmaven.repo.local=$MAVEN_REPO_LOCAL \ -Dmaven.settings.offline=true \ -Dmaven.settings.interactiveMode=false \ -Dbuild.sysclasspath=first \ war javadoc pushd target touch META-INF/maven/org.jvnet.sorcerer/stapler-testapp/pom.properties touch META-INF/maven/org.jvnet.sorcerer/stapler-testapp/pom.xml zip -u stapler-testapp-%{version}.war \ META-INF/maven/org.jvnet.sorcerer/stapler-testapp/* popd popd # pushd maven-plugin # export CLASSPATH="" # CLASSPATH=$CLASSPATH:../core/target/sorcerer-core-%{version}.jar # CLASSPATH=$CLASSPATH:../javac/target/sorcerer-javac-%{version}.jar # CLASSPATH=$CLASSPATH:$(build-classpath commons-beanutils commons-collections commons-logging-api commons-validator) # CLASSPATH=$CLASSPATH:$(build-classpath plexus/container-default plexus/component-api) # CLASSPATH=$CLASSPATH:$(build-classpath plexus/classworlds plexus/i18n plexus/velocity maven-doxia/sink-api maven-doxia/core) # CLASSPATH=$CLASSPATH:$(build-classpath maven-doxia/decoration-model maven-doxia/site-renderer maven-wagon/provider-api) # CLASSPATH=$CLASSPATH:$(build-classpath maven2/reporting-api maven2/project maven2/profile maven2/model maven2/artifact-manager) # CLASSPATH=$CLASSPATH:$(build-classpath maven2/repository-metadata maven2/artifact maven-shared/reporting-impl) # CLASSPATH=$CLASSPATH:$(build-classpath maven2/plugin-api oro velocity velocity-dep antlr classworlds plexus/utils) # CLASSPATH=$CLASSPATH:$(build-classpath junit-3.8.2 ant/ant-junit):target/classes:target/test-classes # ant \ # -Duser.home=$PWD \ # -Dmaven.repo.local=$MAVEN_REPO_LOCAL \ # -Dmaven.settings.offline=true \ # -Dmaven.settings.interactiveMode=false \ # -Dbuild.sysclasspath=first \ # jar javadoc # popd %endif %install [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" mkdir -p %{buildroot}%{_javadir}/sorcerer mkdir -p %{buildroot}%{_datadir}/maven2/poms mkdir -p %{buildroot}%{_datadir}/maven2/plugins install -pm 644 pom.xml %{buildroot}%{_datadir}/maven2/poms/JPP.sorcerer.pom %add_to_maven_depmap org.jvnet.sorcerer sorcerer %{version} JPP sorcerer for d in ant cli core javac stapler ; do install -pm 644 $d/target/sorcerer-$d-%{version}.jar \ %{buildroot}%{_javadir}/sorcerer/$d-%{version}.jar install -pm 644 $d/pom.xml %{buildroot}%{_datadir}/maven2/poms/JPP.sorcerer-sorcerer-$d.pom %add_to_maven_depmap org.jvnet.sorcerer sorcerer-$d %{version} JPP/sorcerer $d mkdir -p %{buildroot}%{_javadocdir}/sorcerer-%{version}/$d cp -pr $d/target/site/apidocs/* %{buildroot}%{_javadocdir}/sorcerer-%{version}/$d done install -pm 644 uberjar/target/sorcerer-uberjar-%{version}.jar \ %{buildroot}%{_javadir}/sorcerer/uberjar-%{version}.jar install -pm 644 uberjar/pom.xml %{buildroot}%{_datadir}/maven2/poms/JPP.sorcerer-sorcerer-uberjar.pom %add_to_maven_depmap org.jvnet.sorcerer sorcerer-uberjar %{version} JPP/sorcerer uberjar %if %maven install -pm 644 maven-plugin/target/maven-sorcerer-plugin-%{version}.jar \ %{buildroot}%{_javadir}/sorcerer/maven-sorcerer-plugin-%{version}.jar mkdir -p %{buildroot}%{_javadocdir}/sorcerer-%{version}/maven-plugin cp -pr maven-plugin/target/site/apidocs/* %{buildroot}%{_javadocdir}/sorcerer-%{version}/maven-plugin install -pm 644 maven-plugin/pom.xml %{buildroot}%{_datadir}/maven2/poms/JPP.sorcerer-maven-sorcerer-plugin.pom %add_to_maven_depmap org.jvnet.sorcerer maven-sorcerer-plugin %{version} JPP/sorcerer maven-sorcerer-plugin %endif install -pm 644 stapler-testapp/target/stapler-testapp-%{version}.war \ %{buildroot}%{_javadir}/sorcerer/ mkdir -p %{buildroot}%{_javadocdir}/sorcerer-%{version}/stapler-testapp cp -pr stapler-testapp/target/site/apidocs/* %{buildroot}%{_javadocdir}/sorcerer-%{version}/stapler-testapp install -pm 644 stapler-testapp/pom.xml %{buildroot}%{_datadir}/maven2/poms/JPP.sorcerer-sorcerer-stapler-testapp.pom %add_to_maven_depmap org.jvnet.sorcerer stapler-testapp %{version} JPP/sorcerer stapler-testapp ( cd %{buildroot}%{_javadir}/sorcerer for jar in *-%{version}.jar; do ln -sf ${jar} ${jar/-%{version}/} done ) ln -sf sorcerer-%{version} %{buildroot}%{_javadocdir}/sorcerer %clean [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" %post %update_maven_depmap %postun %update_maven_depmap %files %defattr(-,root,root) %dir %{_javadir}/sorcerer %{_javadir}/sorcerer/ant-%{version}.jar %{_javadir}/sorcerer/ant.jar %{_javadir}/sorcerer/cli-%{version}.jar %{_javadir}/sorcerer/cli.jar %{_javadir}/sorcerer/core-%{version}.jar %{_javadir}/sorcerer/core.jar %{_javadir}/sorcerer/javac-%{version}.jar %{_javadir}/sorcerer/javac.jar %{_javadir}/sorcerer/stapler-%{version}.jar %{_javadir}/sorcerer/stapler.jar %{_javadir}/sorcerer/uberjar-%{version}.jar %{_javadir}/sorcerer/uberjar.jar %if %maven %exclude %{_datadir}/maven2/poms/JPP.sorcerer-maven-sorcerer-plugin.pom %endif %exclude %{_datadir}/maven2/poms/JPP.sorcerer-sorcerer-stapler-testapp.pom %{_datadir}/maven2/poms %{_mavendepmapfragdir} %doc TODO *.txt %files javadoc %defattr(-,root,root) %{_javadocdir}/sorcerer-%{version} %{_javadocdir}/sorcerer %if %maven %post maven-plugin %update_maven_depmap %postun maven-plugin %update_maven_depmap %files maven-plugin %defattr(-,root,root) %{_javadir}/sorcerer/maven-sorcerer-plugin-%{version}.jar %{_javadir}/sorcerer/maven-sorcerer-plugin.jar %{_datadir}/maven2/poms/JPP.sorcerer-sorcerer-maven-plugin.pom %endif %post stapler-testapp %update_maven_depmap %postun stapler-testapp %update_maven_depmap %files stapler-testapp %defattr(-,root,root) %{_javadir}/sorcerer/stapler-testapp-%{version}.war %{_datadir}/maven2/poms/JPP.sorcerer-sorcerer-stapler-testapp.pom %changelog * Fri Nov 26 2010 gil 0.8-3mamba - rebuilt devel * Wed Apr 28 2010 gil 0.8-2mamba - rebuilt with ant * Sun Jul 26 2009 gil 0.8-1mamba - package created by autospec