From ff14388e6201a7575c431d5fe86d2e9592a7dd752203bede3669e5709dec5d9c Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Mon, 28 Jul 2008 02:26:46 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/ant-contrib?expand=0&rev=1 --- .gitattributes | 23 ++ .gitignore | 1 + BuildFileTest.java | 524 +++++++++++++++++++++++++++ ant-contrib-1.0b2-src.tar.bz2 | 3 + ant-contrib-BuildFileTest_java.patch | 18 + ant-contrib-ant-1.7.0.patch | 37 ++ ant-contrib-build_xml.patch | 50 +++ ant-contrib.changes | 12 + ant-contrib.spec | 148 ++++++++ ready | 0 10 files changed, 816 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 BuildFileTest.java create mode 100644 ant-contrib-1.0b2-src.tar.bz2 create mode 100644 ant-contrib-BuildFileTest_java.patch create mode 100644 ant-contrib-ant-1.7.0.patch create mode 100644 ant-contrib-build_xml.patch create mode 100644 ant-contrib.changes create mode 100644 ant-contrib.spec create mode 100644 ready diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/BuildFileTest.java b/BuildFileTest.java new file mode 100644 index 0000000..03a013c --- /dev/null +++ b/BuildFileTest.java @@ -0,0 +1,524 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package org.apache.tools.ant; + +import junit.framework.TestCase; +import java.io.File; +import java.io.PrintStream; +import java.net.URL; + +/** + * A BuildFileTest is a TestCase which executes targets from an Ant buildfile + * for testing. + * + * This class provides a number of utility methods for particular build file + * tests which extend this class. + * + */ +public abstract class BuildFileTest extends TestCase { + + protected Project project; + + private StringBuffer logBuffer; + private StringBuffer fullLogBuffer; + private StringBuffer outBuffer; + private StringBuffer errBuffer; + private BuildException buildException; + + /** + * Default constructor for the BuildFileTest object. + */ + public BuildFileTest() { + super(); + } + + /** + * Constructor for the BuildFileTest object. + * + * @param name string to pass up to TestCase constructor + */ + public BuildFileTest(String name) { + super(name); + } + + /** + * Automatically calls the target called "tearDown" + * from the build file tested if it exits. + * + * This allows to use Ant tasks directly in the build file + * to clean up after each test. Note that no "setUp" target + * is automatically called, since it's trivial to have a + * test target depend on it. + */ + protected void tearDown() throws Exception { + final String tearDown = "tearDown"; + if (project.getTargets().containsKey(tearDown)) { + project.executeTarget(tearDown); + } + } + + /** + * run a target, expect for any build exception + * + * @param target target to run + * @param cause information string to reader of report + */ + public void expectBuildException(String target, String cause) { + expectSpecificBuildException(target, cause, null); + } + + /** + * Assert that only the given message has been logged with a + * priority <= INFO when running the given target. + */ + public void expectLog(String target, String log) { + executeTarget(target); + String realLog = getLog(); + assertEquals(log, realLog); + } + + /** + * Assert that the given substring is in the log messages. + */ + public void assertLogContaining(String substring) { + String realLog = getLog(); + assertTrue("expecting log to contain \"" + substring + "\" log was \"" + + realLog + "\"", + realLog.indexOf(substring) >= 0); + } + + /** + * Assert that the given substring is in the output messages. + * @since Ant1.7 + */ + public void assertOutputContaining(String substring) { + String realOutput = getOutput(); + assertTrue("expecting output to contain \"" + substring + + "\" output was \"" + realOutput + "\"", + realOutput.indexOf(substring) >= 0); + } + + /** + * Assert that the given message has been logged with a priority + * <= INFO when running the given target. + */ + public void expectLogContaining(String target, String log) { + executeTarget(target); + assertLogContaining(log); + } + + /** + * Gets the log the BuildFileTest object. + * Only valid if configureProject() has been called. + * + * @pre logBuffer!=null + * @return The log value + */ + public String getLog() { + return logBuffer.toString(); + } + + /** + * Assert that the given message has been logged with a priority + * >= VERBOSE when running the given target. + */ + public void expectDebuglog(String target, String log) { + executeTarget(target); + String realLog = getFullLog(); + assertEquals(log, realLog); + } + + /** + * Assert that the given substring is in the log messages. + */ + public void assertDebuglogContaining(String substring) { + String realLog = getFullLog(); + assertTrue("expecting debug log to contain \"" + substring + + "\" log was \"" + + realLog + "\"", + realLog.indexOf(substring) >= 0); + } + + /** + * Gets the log the BuildFileTest object. + * + * Only valid if configureProject() has been called. + * + * @pre fullLogBuffer!=null + * @return The log value + */ + public String getFullLog() { + return fullLogBuffer.toString(); + } + + /** + * execute the target, verify output matches expectations + * + * @param target target to execute + * @param output output to look for + */ + public void expectOutput(String target, String output) { + executeTarget(target); + String realOutput = getOutput(); + assertEquals(output, realOutput.trim()); + } + + /** + * Executes the target, verify output matches expectations + * and that we got the named error at the end + * + * @param target target to execute + * @param output output to look for + * @param error Description of Parameter + */ + public void expectOutputAndError(String target, String output, String error) { + executeTarget(target); + String realOutput = getOutput(); + assertEquals(output, realOutput); + String realError = getError(); + assertEquals(error, realError); + } + + public String getOutput() { + return cleanBuffer(outBuffer); + } + + public String getError() { + return cleanBuffer(errBuffer); + } + + public BuildException getBuildException() { + return buildException; + } + + private String cleanBuffer(StringBuffer buffer) { + StringBuffer cleanedBuffer = new StringBuffer(); + boolean cr = false; + for (int i = 0; i < buffer.length(); i++) { + char ch = buffer.charAt(i); + if (ch == '\r') { + cr = true; + continue; + } + + if (!cr) { + cleanedBuffer.append(ch); + } else { + cleanedBuffer.append(ch); + } + } + return cleanedBuffer.toString(); + } + + /** + * Sets up to run the named project + * + * @param filename name of project file to run + */ + public void configureProject(String filename) throws BuildException { + configureProject(filename, Project.MSG_DEBUG); + } + + /** + * Sets up to run the named project + * + * @param filename name of project file to run + */ + public void configureProject(String filename, int logLevel) + throws BuildException { + logBuffer = new StringBuffer(); + fullLogBuffer = new StringBuffer(); + project = new Project(); + project.init(); + File antFile = new File(System.getProperty("root"), filename); + project.setUserProperty("ant.file" , antFile.getAbsolutePath()); + project.addBuildListener(new AntTestListener(logLevel)); + ProjectHelper.configureProject(project, antFile); + } + + /** + * Executes a target we have set up + * + * @pre configureProject has been called + * @param targetName target to run + */ + public void executeTarget(String targetName) { + PrintStream sysOut = System.out; + PrintStream sysErr = System.err; + try { + sysOut.flush(); + sysErr.flush(); + outBuffer = new StringBuffer(); + PrintStream out = new PrintStream(new AntOutputStream(outBuffer)); + System.setOut(out); + errBuffer = new StringBuffer(); + PrintStream err = new PrintStream(new AntOutputStream(errBuffer)); + System.setErr(err); + logBuffer = new StringBuffer(); + fullLogBuffer = new StringBuffer(); + buildException = null; + project.executeTarget(targetName); + } finally { + System.setOut(sysOut); + System.setErr(sysErr); + } + + } + + /** + * Get the project which has been configured for a test. + * + * @return the Project instance for this test. + */ + public Project getProject() { + return project; + } + + /** + * Gets the directory of the project. + * + * @return the base dir of the project + */ + public File getProjectDir() { + return project.getBaseDir(); + } + + /** + * Runs a target, wait for a build exception. + * + * @param target target to run + * @param cause information string to reader of report + * @param msg the message value of the build exception we are waiting + * for set to null for any build exception to be valid + */ + public void expectSpecificBuildException(String target, String cause, String msg) { + try { + executeTarget(target); + } catch (org.apache.tools.ant.BuildException ex) { + buildException = ex; + if ((null != msg) && (!ex.getMessage().equals(msg))) { + fail("Should throw BuildException because '" + cause + + "' with message '" + msg + + "' (actual message '" + ex.getMessage() + "' instead)"); + } + return; + } + fail("Should throw BuildException because: " + cause); + } + + /** + * run a target, expect an exception string + * containing the substring we look for (case sensitive match) + * + * @param target target to run + * @param cause information string to reader of report + * @param contains substring of the build exception to look for + */ + public void expectBuildExceptionContaining(String target, String cause, String contains) { + try { + executeTarget(target); + } catch (org.apache.tools.ant.BuildException ex) { + buildException = ex; + if ((null != contains) && (ex.getMessage().indexOf(contains) == -1)) { + fail("Should throw BuildException because '" + cause + "' with message containing '" + contains + "' (actual message '" + ex.getMessage() + "' instead)"); + } + return; + } + fail("Should throw BuildException because: " + cause); + } + + /** + * call a target, verify property is as expected + * + * @param target build file target + * @param property property name + * @param value expected value + */ + public void expectPropertySet(String target, String property, String value) { + executeTarget(target); + assertPropertyEquals(property, value); + } + + /** + * assert that a property equals a value; comparison is case sensitive. + * + * @param property property name + * @param value expected value + */ + public void assertPropertyEquals(String property, String value) { + String result = project.getProperty(property); + assertEquals("property " + property,value,result); + } + + /** + * assert that a property equals "true". + * + * @param property property name + */ + public void assertPropertySet(String property) { + assertPropertyEquals(property, "true"); + } + + /** + * assert that a property is null. + * + * @param property property name + */ + public void assertPropertyUnset(String property) { + assertPropertyEquals(property, null); + } + + /** + * call a target, verify named property is "true". + * + * @param target build file target + * @param property property name + */ + public void expectPropertySet(String target, String property) { + expectPropertySet(target, property, "true"); + } + + /** + * Call a target, verify property is null. + * + * @param target build file target + * @param property property name + */ + public void expectPropertyUnset(String target, String property) { + expectPropertySet(target, property, null); + } + + /** + * Retrieve a resource from the caller classloader to avoid + * assuming a vm working directory. The resource path must be + * relative to the package name or absolute from the root path. + * + * @param resource the resource to retrieve its url. + * @throws junit.framework.AssertionFailedError if the resource is not found. + */ + public URL getResource(String resource){ + URL url = getClass().getResource(resource); + assertNotNull("Could not find resource :" + resource, url); + return url; + } + + /** + * an output stream which saves stuff to our buffer. + */ + private static class AntOutputStream extends java.io.OutputStream { + private StringBuffer buffer; + + public AntOutputStream( StringBuffer buffer ) { + this.buffer = buffer; + } + + public void write(int b) { + buffer.append((char)b); + } + } + + /** + * Our own personal build listener. + */ + private class AntTestListener implements BuildListener { + private int logLevel; + + /** + * Constructs a test listener which will ignore log events + * above the given level. + */ + public AntTestListener(int logLevel) { + this.logLevel = logLevel; + } + + /** + * Fired before any targets are started. + */ + public void buildStarted(BuildEvent event) { + } + + /** + * Fired after the last target has finished. This event + * will still be thrown if an error occurred during the build. + * + * @see BuildEvent#getException() + */ + public void buildFinished(BuildEvent event) { + } + + /** + * Fired when a target is started. + * + * @see BuildEvent#getTarget() + */ + public void targetStarted(BuildEvent event) { + //System.out.println("targetStarted " + event.getTarget().getName()); + } + + /** + * Fired when a target has finished. This event will + * still be thrown if an error occurred during the build. + * + * @see BuildEvent#getException() + */ + public void targetFinished(BuildEvent event) { + //System.out.println("targetFinished " + event.getTarget().getName()); + } + + /** + * Fired when a task is started. + * + * @see BuildEvent#getTask() + */ + public void taskStarted(BuildEvent event) { + //System.out.println("taskStarted " + event.getTask().getTaskName()); + } + + /** + * Fired when a task has finished. This event will still + * be throw if an error occurred during the build. + * + * @see BuildEvent#getException() + */ + public void taskFinished(BuildEvent event) { + //System.out.println("taskFinished " + event.getTask().getTaskName()); + } + + /** + * Fired whenever a message is logged. + * + * @see BuildEvent#getMessage() + * @see BuildEvent#getPriority() + */ + public void messageLogged(BuildEvent event) { + if (event.getPriority() > logLevel) { + // ignore event + return; + } + + if (event.getPriority() == Project.MSG_INFO || + event.getPriority() == Project.MSG_WARN || + event.getPriority() == Project.MSG_ERR) { + logBuffer.append(event.getMessage()); + } + fullLogBuffer.append(event.getMessage()); + } + } + +} diff --git a/ant-contrib-1.0b2-src.tar.bz2 b/ant-contrib-1.0b2-src.tar.bz2 new file mode 100644 index 0000000..077898c --- /dev/null +++ b/ant-contrib-1.0b2-src.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29bdd00ee0df1d7b24e55b08bfff5641edf3f805e45a278641d42c0bf0ce9269 +size 118216 diff --git a/ant-contrib-BuildFileTest_java.patch b/ant-contrib-BuildFileTest_java.patch new file mode 100644 index 0000000..941c57d --- /dev/null +++ b/ant-contrib-BuildFileTest_java.patch @@ -0,0 +1,18 @@ +--- ant-contrib/build.xml ++++ ant-contrib/build.xml +@@ -385,12 +385,9 @@ + + + +- +- +- +- +- ++ ++ + + + + +- ++ + + + + +- +@@ -409,7 +409,7 @@ + + ++ value="1.7.0" /> + + + + +- ++ + + + +@@ -373,7 +374,7 @@ + + + +- ++ + + + +@@ -416,10 +417,12 @@ + + + ++ + + +@@ -444,10 +447,10 @@ + + + +- ++ + + +- ++ + + + diff --git a/ant-contrib.changes b/ant-contrib.changes new file mode 100644 index 0000000..d6b57c4 --- /dev/null +++ b/ant-contrib.changes @@ -0,0 +1,12 @@ +------------------------------------------------------------------- +Thu Jul 10 08:50:56 CEST 2008 - mvyskocil@suse.cz + +- Removed summary tags from description of subpackages. +- Remove the ant-1.7.0 archive to reduce a size of source package and + use only one necessary file BuildFileTest.java + +------------------------------------------------------------------- +Wed Jul 2 17:03:45 CEST 2008 - mvyskocil@suse.cz + +- First release based on jpackage.org 1.7 (1.0.b2) + - adjusted for ant 1.7.0 diff --git a/ant-contrib.spec b/ant-contrib.spec new file mode 100644 index 0000000..5081f15 --- /dev/null +++ b/ant-contrib.spec @@ -0,0 +1,148 @@ +# +# spec file for package ant-contrib (Version 1.0b2) +# +# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. +# This file and all modifications and additions to the pristine +# package are under the same license as the package itself. +# +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +# norootforbuild +# icecream 0 + +%define section free +%define ant_version 1.7.0 +Summary: Collection of tasks for Ant + +Name: ant-contrib +Version: 1.0b2 +Release: 2 +License: The Apache Software License +Url: http://ant-contrib.sourceforge.net/ +Group: Development/Libraries/Java +Source0: http://prdownloads.sourceforge.net/ant-contrib/ant-contrib-1.0b2-src.tar.bz2 +#Is from apache-ant-1.7.0-src.zip +Source1: BuildFileTest.java +Patch0: ant-contrib-build_xml.patch +Patch1: ant-contrib-ant-1.7.0.patch +Patch2: ant-contrib-BuildFileTest_java.patch +BuildRequires: jpackage-utils >= 1.6 +BuildRequires: ant = %{ant_version} +BuildRequires: bcel >= 5.1 +%if %defined suse_version +BuildRequires: java-devel +BuildRequires: ant-junit = %{ant_version} +%endif +Requires: junit >= 3.8.1 +Requires: ant = %{ant_version} +Requires: bcel >= 5.1 +BuildArch: noarch +BuildRoot: %{_tmppath}/%{name}-%{version}-build + +%description +The Ant-Contrib project is a collection of tasks (and at one point +maybe types and other tools) for Apache Ant. + + + +%package javadoc +License: The Apache Software License +Summary: Collection of tasks for Ant +Group: Development/Libraries/Java +Requires(post): /bin/rm,/bin/ln +Requires(postun): /bin/rm + +%description javadoc +The Ant-Contrib project is a collection of tasks (and at one point +maybe types and other tools) for Apache Ant. + + + +%package manual +License: The Apache Software License +Summary: Collection of tasks for Ant +Group: Development/Libraries/Java + +%description manual +The Ant-Contrib project is a collection of tasks (and at one point +maybe types and other tools) for Apache Ant. + + + +%prep +%setup -q -c -n %{name}-%{version} +for j in $(find . -name "*.jar"); do + mv $j $j.no +done +# TODO: this test fails +#rm ant-contrib/test/src/net/sf/antcontrib/logic/TryCatchTaskTest.java +%patch0 -b .sav +%patch1 -b .sav1 +%patch2 -b .sav2 + +%build +pushd ant-contrib/lib +ln -s $(build-classpath bcel) bcel-5.1.jar +popd +pushd ant-contrib/test/lib +ln -s $(build-classpath junit) junit-3.8.2 +popd +mkdir -p ant-contrib/build/ant +cp %{SOURCE1} ant-contrib/build/ant/ +cd ant-contrib +%if %defined suse_version +export CLASSPATH=$(build-classpath bcel junit) +%endif +ant all test + +%install +# jars +install -Dpm 644 %{name}/build/lib/%{name}.jar \ + $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar +ln -s %{name}-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}.jar +# javadoc +install -dm 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version} +cp -pr %{name}/build/docs/api/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version} +ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name} # ghost symlink +rm -rf %{name}/build/docs/api +# manual +install -dm 755 $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version} +cp -pr %{name}/build/docs/* $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version} + +%clean +rm -rf $RPM_BUILD_ROOT + +%post javadoc +rm -f %{_javadocdir}/%{name} +ln -s %{name}-%{version} %{_javadocdir}/%{name} + +%postun javadoc +if [ "$1" = "0" ]; then + rm -f %{_javadocdir}/%{name} +fi + +%files +%defattr(0644,root,root,0755) +%{_javadir}/*.jar +%doc %{_docdir}/%{name}-%{version}/LICENSE.txt + +%files javadoc +%defattr(-,root,root,-) +%doc %{_javadocdir}/%{name}-%{version} +%ghost %doc %{_javadocdir}/%{name} + +%files manual +%defattr(-,root,root,-) +%doc %{_docdir}/%{name}-%{version} +%exclude %{_docdir}/%{name}-%{version}/LICENSE.txt +# ----------------------------------------------------------------------------- + +%changelog +* Thu Jul 10 2008 mvyskocil@suse.cz +- Removed summary tags from description of subpackages. +- Remove the ant-1.7.0 archive to reduce a size of source package and + use only one necessary file BuildFileTest.java +* Wed Jul 02 2008 mvyskocil@suse.cz +- First release based on jpackage.org 1.7 (1.0.b2) + - adjusted for ant 1.7.0 diff --git a/ready b/ready new file mode 100644 index 0000000..473a0f4