[java-sig-commits] [snakeyaml] Initial import (#706984).

Jaromír Cápík jcapik at fedoraproject.org
Thu Jun 9 14:39:33 UTC 2011


commit 26dfd3a6a64719733a2f8b58cc6b897e056cdd6f
Author: Jaromír Cápík <jcapik at redhat.com>
Date:   Thu Jun 9 16:37:48 2011 +0200

    Initial import (#706984).

 .gitignore                                         |    1 +
 ...yaml-gdata+base64coder+cobertura-addition.patch |   33 ++
 snakeyaml-issue121-file-handle-leaks.patch         |  406 ++++++++++++++++++++
 snakeyaml-spring-removal-workaround.patch          |  124 ++++++
 snakeyaml-test-fails-workaround.patch              |   16 +
 snakeyaml.depmap                                   |   12 +
 snakeyaml.spec                                     |  121 ++++++
 sources                                            |    1 +
 8 files changed, 714 insertions(+), 0 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e69de29..4e3996b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/SnakeYAML-all-1.8.zip
diff --git a/snakeyaml-gdata+base64coder+cobertura-addition.patch b/snakeyaml-gdata+base64coder+cobertura-addition.patch
new file mode 100644
index 0000000..2150001
--- /dev/null
+++ b/snakeyaml-gdata+base64coder+cobertura-addition.patch
@@ -0,0 +1,33 @@
+diff -Naur snakeyaml.orig/pom.xml snakeyaml/pom.xml
+--- snakeyaml.orig/pom.xml	2011-02-15 12:02:01.000000000 +0100
++++ snakeyaml/pom.xml	2011-05-30 18:21:05.915253296 +0200
+@@ -46,6 +46,16 @@
+     </developers>
+     <dependencies>
+         <dependency>
++            <groupId>com.google.gdata</groupId>
++            <artifactId>gdata-core</artifactId>
++            <version>1.0</version>
++        </dependency>
++        <dependency>
++            <groupId>biz.source_code</groupId>
++            <artifactId>base64coder</artifactId>
++            <version>2010-12-19</version>
++        </dependency>
++        <dependency>
+             <groupId>junit</groupId>
+             <artifactId>junit</artifactId>
+             <version>4.7</version>
+@@ -79,6 +79,12 @@
+             <version>1.6</version>
+             <scope>test</scope>
+         </dependency>
++        <dependency>
++            <groupId>org.codehaus.mojo</groupId>
++            <artifactId>cobertura-maven-plugin</artifactId>
++            <version>2.4</version>
++            <scope>test</scope>
++        </dependency>
+     </dependencies>
+     <build>
+         <plugins>
diff --git a/snakeyaml-issue121-file-handle-leaks.patch b/snakeyaml-issue121-file-handle-leaks.patch
new file mode 100644
index 0000000..c93e1b7
--- /dev/null
+++ b/snakeyaml-issue121-file-handle-leaks.patch
@@ -0,0 +1,406 @@
+diff -Naur snakeyaml.orig/src/test/java/examples/LoadExampleTest.java snakeyaml/src/test/java/examples/LoadExampleTest.java
+--- snakeyaml.orig/src/test/java/examples/LoadExampleTest.java	2011-01-16 14:39:08.000000000 +0100
++++ snakeyaml/src/test/java/examples/LoadExampleTest.java	2011-06-09 14:07:02.000000000 +0200
+@@ -19,7 +19,7 @@
+ import java.io.ByteArrayInputStream;
+ import java.io.File;
+ import java.io.FileInputStream;
+-import java.io.FileNotFoundException;
++import java.io.IOException;
+ import java.io.InputStream;
+ import java.util.List;
+ import java.util.Map;
+@@ -40,12 +40,13 @@
+     public void testLoadFromString() {
+         Yaml yaml = new Yaml();
+         String document = "hello: 25";
+-        Map map = (Map) yaml.load(document);
++        @SuppressWarnings("unchecked")
++        Map<String, Integer> map = (Map<String, Integer>) yaml.load(document);
+         assertEquals("{hello=25}", map.toString());
+         assertEquals(new Integer(25), map.get("hello"));
+     }
+ 
+-    public void testLoadFromStream() throws FileNotFoundException {
++    public void testLoadFromStream() throws IOException {
+         InputStream input = new FileInputStream(new File("src/test/resources/reader/utf-8.txt"));
+         Yaml yaml = new Yaml();
+         Object data = yaml.load(input);
+@@ -53,9 +54,10 @@
+         //
+         data = yaml.load(new ByteArrayInputStream("test2".getBytes()));
+         assertEquals("test2", data);
++        input.close();
+     }
+ 
+-    public void testLoadManyDocuments() throws FileNotFoundException {
++    public void testLoadManyDocuments() throws IOException {
+         InputStream input = new FileInputStream(new File(
+                 "src/test/resources/specification/example2_28.yaml"));
+         Yaml yaml = new Yaml();
+@@ -66,5 +68,6 @@
+             counter++;
+         }
+         assertEquals(3, counter);
++        input.close();
+     }
+ }
+diff -Naur snakeyaml.orig/src/test/java/org/pyyaml/AnInstance.java snakeyaml/src/test/java/org/pyyaml/AnInstance.java
+--- snakeyaml.orig/src/test/java/org/pyyaml/AnInstance.java	2011-01-12 13:56:10.000000000 +0100
++++ snakeyaml/src/test/java/org/pyyaml/AnInstance.java	2011-06-09 14:07:02.000000000 +0200
+@@ -43,5 +43,4 @@
+     public void setBar(Object bar) {
+         this.bar = bar;
+     }
+-
+ }
+\ Chybí znak konce řádku na konci souboru
+diff -Naur snakeyaml.orig/src/test/java/org/pyyaml/PyCanonicalTest.java snakeyaml/src/test/java/org/pyyaml/PyCanonicalTest.java
+--- snakeyaml.orig/src/test/java/org/pyyaml/PyCanonicalTest.java	2011-01-12 13:56:10.000000000 +0100
++++ snakeyaml/src/test/java/org/pyyaml/PyCanonicalTest.java	2011-06-09 14:07:02.000000000 +0200
+@@ -35,7 +35,9 @@
+         File[] files = getStreamsByExtension(".canonical");
+         assertTrue("No test files found.", files.length > 0);
+         for (int i = 0; i < files.length; i++) {
+-            List<Token> tokens = canonicalScan(new FileInputStream(files[i]));
++            InputStream input = new FileInputStream(files[i]);
++            List<Token> tokens = canonicalScan(input);
++            input.close();
+             assertFalse(tokens.isEmpty());
+         }
+     }
+@@ -59,7 +61,9 @@
+         File[] files = getStreamsByExtension(".canonical");
+         assertTrue("No test files found.", files.length > 0);
+         for (int i = 0; i < files.length; i++) {
+-            List<Event> tokens = canonicalParse(new FileInputStream(files[i]));
++            InputStream input = new FileInputStream(files[i]);
++            List<Event> tokens = canonicalParse(input);
++            input.close();
+             assertFalse(tokens.isEmpty());
+         }
+     }
+diff -Naur snakeyaml.orig/src/test/java/org/pyyaml/PyEmitterTest.java snakeyaml/src/test/java/org/pyyaml/PyEmitterTest.java
+--- snakeyaml.orig/src/test/java/org/pyyaml/PyEmitterTest.java	2011-01-12 13:56:10.000000000 +0100
++++ snakeyaml/src/test/java/org/pyyaml/PyEmitterTest.java	2011-06-09 14:07:02.000000000 +0200
+@@ -19,6 +19,7 @@
+ import java.io.File;
+ import java.io.FileInputStream;
+ import java.io.IOException;
++import java.io.InputStream;
+ import java.io.StringWriter;
+ import java.util.ArrayList;
+ import java.util.Arrays;
+@@ -63,7 +64,9 @@
+             // continue;
+             // }
+             try {
+-                List<Event> events = parse(new FileInputStream(file));
++                InputStream input = new FileInputStream(file);
++                List<Event> events = parse(input);
++                input.close();
+                 //
+                 StringWriter stream = new StringWriter();
+                 DumperOptions options = new DumperOptions();
+@@ -116,23 +119,24 @@
+         }
+     }
+ 
+-    @SuppressWarnings("unchecked")
+     public void testEmitterStyles() throws IOException {
+         File[] canonicalFiles = getStreamsByExtension(".canonical", false);
+         assertTrue("No test files found.", canonicalFiles.length > 0);
+         File[] dataFiles = getStreamsByExtension(".data", true);
+         assertTrue("No test files found.", dataFiles.length > 0);
+-        List<File> allFiles = new ArrayList(Arrays.asList(canonicalFiles));
++        List<File> allFiles = new ArrayList<File>(Arrays.asList(canonicalFiles));
+         allFiles.addAll(Arrays.asList(dataFiles));
+         for (File file : allFiles) {
+             try {
+                 List<Event> events = new ArrayList<Event>();
+-                StreamReader reader = new StreamReader(new UnicodeReader(new FileInputStream(file)));
++                InputStream input = new FileInputStream(file);
++                StreamReader reader = new StreamReader(new UnicodeReader(input));
+                 Parser parser = new ParserImpl(reader);
+                 while (parser.peekEvent() != null) {
+                     Event event = parser.getEvent();
+                     events.add(event);
+                 }
++                input.close();
+                 //
+                 for (Boolean flowStyle : new Boolean[] { Boolean.FALSE, Boolean.TRUE }) {
+                     for (DumperOptions.ScalarStyle style : DumperOptions.ScalarStyle.values()) {
+@@ -140,19 +144,19 @@
+                         for (Event event : events) {
+                             if (event instanceof ScalarEvent) {
+                                 ScalarEvent scalar = (ScalarEvent) event;
+-                                event = new ScalarEvent(scalar.getAnchor(), scalar.getTag(), scalar
+-                                        .getImplicit(), scalar.getValue(), scalar.getStartMark(),
+-                                        scalar.getEndMark(), style.getChar());
++                                event = new ScalarEvent(scalar.getAnchor(), scalar.getTag(),
++                                        scalar.getImplicit(), scalar.getValue(),
++                                        scalar.getStartMark(), scalar.getEndMark(), style.getChar());
+                             } else if (event instanceof SequenceStartEvent) {
+                                 SequenceStartEvent seqStart = (SequenceStartEvent) event;
+-                                event = new SequenceStartEvent(seqStart.getAnchor(), seqStart
+-                                        .getTag(), seqStart.getImplicit(), seqStart.getStartMark(),
+-                                        seqStart.getEndMark(), flowStyle);
++                                event = new SequenceStartEvent(seqStart.getAnchor(),
++                                        seqStart.getTag(), seqStart.getImplicit(),
++                                        seqStart.getStartMark(), seqStart.getEndMark(), flowStyle);
+                             } else if (event instanceof MappingStartEvent) {
+                                 MappingStartEvent mapStart = (MappingStartEvent) event;
+-                                event = new MappingStartEvent(mapStart.getAnchor(), mapStart
+-                                        .getTag(), mapStart.getImplicit(), mapStart.getStartMark(),
+-                                        mapStart.getEndMark(), flowStyle);
++                                event = new MappingStartEvent(mapStart.getAnchor(),
++                                        mapStart.getTag(), mapStart.getImplicit(),
++                                        mapStart.getStartMark(), mapStart.getEndMark(), flowStyle);
+                             }
+                             styledEvents.add(event);
+                         }
+diff -Naur snakeyaml.orig/src/test/java/org/pyyaml/PyErrorsTest.java snakeyaml/src/test/java/org/pyyaml/PyErrorsTest.java
+--- snakeyaml.orig/src/test/java/org/pyyaml/PyErrorsTest.java	2011-01-12 13:56:10.000000000 +0100
++++ snakeyaml/src/test/java/org/pyyaml/PyErrorsTest.java	2011-06-09 14:07:02.000000000 +0200
+@@ -19,6 +19,7 @@
+ import java.io.File;
+ import java.io.FileInputStream;
+ import java.io.FileNotFoundException;
++import java.io.InputStream;
+ import java.io.StringWriter;
+ import java.io.Writer;
+ import java.util.ArrayList;
+@@ -54,9 +55,11 @@
+                 continue;
+             }
+             try {
+-                for (Object document : loadAll(new FileInputStream(files[i]))) {
++                InputStream input = new FileInputStream(files[i]);
++                for (Object document : loadAll(input)) {
+                     assertNotNull("File " + files[i], document);
+                 }
++                input.close();
+                 fail("Loading must fail for " + files[i].getAbsolutePath());
+                 // System.err.println("Loading must fail for " +
+                 // files[i].getAbsolutePath());
+diff -Naur snakeyaml.orig/src/test/java/org/pyyaml/PyImportTest.java snakeyaml/src/test/java/org/pyyaml/PyImportTest.java
+--- snakeyaml.orig/src/test/java/org/pyyaml/PyImportTest.java	2011-01-12 13:56:10.000000000 +0100
++++ snakeyaml/src/test/java/org/pyyaml/PyImportTest.java	2011-06-09 14:07:02.000000000 +0200
+@@ -98,6 +98,7 @@
+         while (parser.peekEvent() != null) {
+             result.add(parser.getEvent());
+         }
++        input2.close();
+         return result;
+     }
+ 
+@@ -108,6 +109,7 @@
+         while (parser.peekEvent() != null) {
+             result.add(parser.getEvent());
+         }
++        input.close();
+         return result;
+     }
+ 
+diff -Naur snakeyaml.orig/src/test/java/org/pyyaml/PyReaderTest.java snakeyaml/src/test/java/org/pyyaml/PyReaderTest.java
+--- snakeyaml.orig/src/test/java/org/pyyaml/PyReaderTest.java	2011-01-12 13:56:10.000000000 +0100
++++ snakeyaml/src/test/java/org/pyyaml/PyReaderTest.java	2011-06-09 14:07:02.000000000 +0200
+@@ -19,6 +19,7 @@
+ import java.io.File;
+ import java.io.FileInputStream;
+ import java.io.IOException;
++import java.io.InputStream;
+ 
+ import org.yaml.snakeyaml.reader.ReaderException;
+ import org.yaml.snakeyaml.reader.StreamReader;
+@@ -32,8 +33,8 @@
+     public void testReaderUnicodeErrors() throws IOException {
+         File[] inputs = getStreamsByExtension(".stream-error");
+         for (int i = 0; i < inputs.length; i++) {
+-            StreamReader stream = new StreamReader(
+-                    new UnicodeReader(new FileInputStream(inputs[i])));
++            InputStream input = new FileInputStream(inputs[i]);
++            StreamReader stream = new StreamReader(new UnicodeReader(input));
+             try {
+                 while (stream.peek() != '\u0000') {
+                     stream.forward();
+@@ -41,10 +42,11 @@
+                 fail("Invalid stream must not be accepted: " + inputs[i].getAbsolutePath()
+                         + "; encoding=" + stream.getEncoding());
+             } catch (ReaderException e) {
+-                assertTrue(e.toString(), e.toString().contains(
+-                        " special characters are not allowed"));
++                assertTrue(e.toString(),
++                        e.toString().contains(" special characters are not allowed"));
++            } finally {
++                input.close();
+             }
+         }
+     }
+-
+ }
+diff -Naur snakeyaml.orig/src/test/java/org/pyyaml/PyStructureTest.java snakeyaml/src/test/java/org/pyyaml/PyStructureTest.java
+--- snakeyaml.orig/src/test/java/org/pyyaml/PyStructureTest.java	2011-01-12 13:56:10.000000000 +0100
++++ snakeyaml/src/test/java/org/pyyaml/PyStructureTest.java	2011-06-09 14:07:02.000000000 +0200
+@@ -85,7 +85,9 @@
+                 continue;
+             }
+             try {
+-                List<Event> events1 = parse(new FileInputStream(file));
++                InputStream input = new FileInputStream(file);
++                List<Event> events1 = parse(input);
++                input.close();
+                 assertFalse(events1.isEmpty());
+                 int index = file.getAbsolutePath().lastIndexOf('.');
+                 String canonicalName = file.getAbsolutePath().substring(0, index) + ".canonical";
+@@ -106,7 +108,9 @@
+         assertTrue("No test files found.", canonicalFiles.length > 0);
+         for (File file : canonicalFiles) {
+             try {
+-                List<Event> events1 = parse(new FileInputStream(file));
++                InputStream input = new FileInputStream(file);
++                List<Event> events1 = parse(input);
++                input.close();
+                 assertFalse(events1.isEmpty());
+                 List<Event> events2 = canonicalParse(new FileInputStream(file));
+                 assertFalse(events2.isEmpty());
+@@ -157,11 +161,15 @@
+         assertTrue("No test files found.", files.length > 0);
+         for (File file : files) {
+             try {
+-                List<Node> events1 = compose_all(new FileInputStream(file));
++                InputStream input = new FileInputStream(file);
++                List<Node> events1 = compose_all(input);
++                input.close();
+                 int index = file.getAbsolutePath().lastIndexOf('.');
+                 String canonicalName = file.getAbsolutePath().substring(0, index) + ".canonical";
+                 File canonical = new File(canonicalName);
+-                List<Node> events2 = canonical_compose_all(new FileInputStream(canonical));
++                InputStream input2 = new FileInputStream(canonical);
++                List<Node> events2 = canonical_compose_all(input2);
++                input2.close();
+                 assertEquals(events1.size(), events2.size());
+                 Iterator<Node> iter1 = events1.iterator();
+                 Iterator<Node> iter2 = events2.iterator();
+@@ -268,11 +276,14 @@
+         Yaml canonicalYaml = new CanonicalLoader();
+         for (File file : files) {
+             try {
+-                Iterable<Object> documents1 = myYaml.loadAll(new FileInputStream(file));
++                InputStream input = new FileInputStream(file);
++                Iterable<Object> documents1 = myYaml.loadAll(input);
+                 int index = file.getAbsolutePath().lastIndexOf('.');
+                 String canonicalName = file.getAbsolutePath().substring(0, index) + ".canonical";
+                 File canonical = new File(canonicalName);
+-                Iterable<Object> documents2 = canonicalYaml.loadAll(new FileInputStream(canonical));
++                InputStream input2 = new FileInputStream(canonical);
++                Iterable<Object> documents2 = canonicalYaml.loadAll(input2);
++                input2.close();
+                 Iterator<Object> iter2 = documents2.iterator();
+                 for (Object object1 : documents1) {
+                     Object object2 = iter2.next();
+@@ -282,6 +293,7 @@
+                     }
+                     assertEquals("" + object1, object1, object2);
+                 }
++                input.close();
+             } catch (Exception e) {
+                 System.out.println("Failed File: " + file);
+                 // fail("Failed File: " + file + "; " + e.getMessage());
+diff -Naur snakeyaml.orig/src/test/java/org/pyyaml/PyTokensTest.java snakeyaml/src/test/java/org/pyyaml/PyTokensTest.java
+--- snakeyaml.orig/src/test/java/org/pyyaml/PyTokensTest.java	2011-01-16 14:39:08.000000000 +0100
++++ snakeyaml/src/test/java/org/pyyaml/PyTokensTest.java	2011-06-09 14:07:02.000000000 +0200
+@@ -19,6 +19,8 @@
+ import java.io.File;
+ import java.io.FileInputStream;
+ import java.io.FileNotFoundException;
++import java.io.IOException;
++import java.io.InputStream;
+ import java.util.ArrayList;
+ import java.util.HashMap;
+ import java.util.List;
+@@ -56,7 +58,7 @@
+ public class PyTokensTest extends PyImportTest {
+ 
+     public void testTokens() throws FileNotFoundException {
+-        Map<Class, String> replaces = new HashMap<Class, String>();
++        Map<Class<?>, String> replaces = new HashMap<Class<?>, String>();
+         replaces.put(DirectiveToken.class, "%");
+         replaces.put(DocumentStartToken.class, "---");
+         replaces.put(DocumentEndToken.class, "...");
+@@ -117,12 +119,13 @@
+         }
+     }
+ 
+-    public void testScanner() throws FileNotFoundException {
++    public void testScanner() throws IOException {
+         File[] files = getStreamsByExtension(".data", true);
+         assertTrue("No test files found.", files.length > 0);
+         for (File file : files) {
+             List<String> tokens = new ArrayList<String>();
+-            StreamReader reader = new StreamReader(new UnicodeReader(new FileInputStream(file)));
++            InputStream input = new FileInputStream(file);
++            StreamReader reader = new StreamReader(new UnicodeReader(input));
+             Scanner scanner = new ScannerImpl(reader);
+             try {
+                 while (scanner.checkToken(new Token.ID[0])) {
+@@ -138,6 +141,8 @@
+                     System.out.println(token);
+                 }
+                 fail("Cannot scan: " + file + "; " + e.getMessage());
++            } finally {
++                input.close();
+             }
+         }
+     }
+diff -Naur snakeyaml.orig/src/test/java/org/yaml/snakeyaml/issues/issue99/YamlBase64Test.java snakeyaml/src/test/java/org/yaml/snakeyaml/issues/issue99/YamlBase64Test.java
+--- snakeyaml.orig/src/test/java/org/yaml/snakeyaml/issues/issue99/YamlBase64Test.java	2011-01-12 13:56:10.000000000 +0100
++++ snakeyaml/src/test/java/org/yaml/snakeyaml/issues/issue99/YamlBase64Test.java	2011-06-09 14:54:45.094267212 +0200
+@@ -65,6 +65,7 @@
+         Map<String, Object> bean = (Map<String, Object>) yaml.load(inputStream);
+         byte[] jpeg = (byte[]) bean.get("jpegPhoto");
+         checkBytes(jpeg);
++        inputStream.close();
+     }
+ 
+     private void checkBytes(byte[] jpeg) throws IOException {
+@@ -86,8 +87,10 @@
+ 
+     /**
+      * In the literal scalar all the line breaks are significant
++     * 
++     * @throws IOException
+      */
+-    public void testYamlBase64LoadingLiteral() {
++    public void testYamlBase64LoadingLiteral() throws IOException {
+         Yaml yaml = new Yaml();
+         InputStream inputStream = YamlBase64Test.class
+                 .getResourceAsStream("/issues/issue99-base64_literal.yaml");
+@@ -95,8 +98,10 @@
+             yaml.load(inputStream);
+             fail("In the literal scalar all the line breaks are significant");
+         } catch (Exception e) {
+-            assertEquals("Length of Base64 encoded input string is not a multiple of 4.", e
+-                    .getMessage());
++            assertEquals("Length of Base64 encoded input string is not a multiple of 4.",
++                    e.getMessage());
++        } finally {
++            inputStream.close();
+         }
+     }
+ 
+@@ -112,6 +117,7 @@
+         Map<String, Object> bean = (Map<String, Object>) yaml.load(inputStream);
+         byte[] jpeg = (byte[]) bean.get("jpegPhoto");
+         checkBytes(jpeg);
++        inputStream.close();
+     }
+ 
+     private class SpecialContructor extends Constructor {
+@@ -141,5 +147,6 @@
+         Map<String, Object> bean = (Map<String, Object>) yaml.load(inputStream);
+         byte[] jpeg = (byte[]) bean.get("jpegPhoto");
+         checkBytes(jpeg);
++        inputStream.close();
+     }
+ }
diff --git a/snakeyaml-spring-removal-workaround.patch b/snakeyaml-spring-removal-workaround.patch
new file mode 100644
index 0000000..e2867c5
--- /dev/null
+++ b/snakeyaml-spring-removal-workaround.patch
@@ -0,0 +1,124 @@
+diff -Naur snakeyaml.orig/pom.xml snakeyaml/pom.xml
+--- snakeyaml.orig/pom.xml	2011-05-27 19:26:23.000000000 +0200
++++ snakeyaml/pom.xml	2011-05-27 19:32:07.000000000 +0200
+@@ -61,12 +61,12 @@
+             <version>4.7</version>
+             <scope>test</scope>
+         </dependency>
+-        <dependency>
++        <!--dependency>
+             <groupId>org.springframework</groupId>
+             <artifactId>spring</artifactId>
+             <version>2.5.6</version>
+             <scope>test</scope>
+-        </dependency>
++        </dependency-->
+         <dependency>
+             <groupId>org.apache.velocity</groupId>
+             <artifactId>velocity</artifactId>
+diff -Naur snakeyaml.orig/src/test/java/examples/SpringTest.java snakeyaml/src/test/java/examples/SpringTest.java
+--- snakeyaml.orig/src/test/java/examples/SpringTest.java	2011-01-12 13:56:10.000000000 +0100
++++ snakeyaml/src/test/java/examples/SpringTest.java	2011-05-27 19:34:14.000000000 +0200
+@@ -18,12 +18,15 @@
+ 
+ import junit.framework.TestCase;
+ 
++/* WORKAROUND FOR : springframework dependency removal
+ import org.springframework.context.ApplicationContext;
+ import org.springframework.context.support.ClassPathXmlApplicationContext;
++*/
+ import org.yaml.snakeyaml.Yaml;
+ 
+ public class SpringTest extends TestCase {
+     public void testSimple() {
++/* WORKAROUND FOR : springframework dependency removal
+         ApplicationContext context = new ClassPathXmlApplicationContext("examples/spring.xml");
+         Yaml yaml = (Yaml) context.getBean("standardYaml");
+         assertNotNull(yaml);
+@@ -33,5 +36,6 @@
+         //
+         yaml = (Yaml) context.getBean("snakeYaml");
+         assertNotNull(yaml);
++*/
+     }
+ }
+\ Chybí znak konce řádku na konci souboru
+diff -Naur snakeyaml.orig/src/test/java/org/yaml/snakeyaml/issues/issue9/BeanHolder.java snakeyaml/src/test/java/org/yaml/snakeyaml/issues/issue9/BeanHolder.java
+--- snakeyaml.orig/src/test/java/org/yaml/snakeyaml/issues/issue9/BeanHolder.java	2011-01-12 13:56:10.000000000 +0100
++++ snakeyaml/src/test/java/org/yaml/snakeyaml/issues/issue9/BeanHolder.java	2011-05-27 19:48:24.012406769 +0200
+@@ -16,7 +16,9 @@
+ 
+ package org.yaml.snakeyaml.issues.issue9;
+ 
++/* WORKAROUND FOR : springframework dependency removal
+ import org.springframework.core.style.ToStringCreator;
++*/
+ 
+ public class BeanHolder {
+ 
+@@ -41,8 +43,11 @@
+ 
+     @Override
+     public String toString() {
++/* WORKAROUND FOR : springframework dependency removal
+         ToStringCreator builder = new ToStringCreator(this);
+         builder.append(this.bean);
+         return builder.toString();
++*/
++        return "";
+     }
+ }
+diff -Naur snakeyaml.orig/src/test/java/org/yaml/snakeyaml/issues/issue9/Bean1.java snakeyaml/src/test/java/org/yaml/snakeyaml/issues/issue9/Bean1.java
+--- snakeyaml.orig/src/test/java/org/yaml/snakeyaml/issues/issue9/Bean1.java	2011-01-12 13:56:10.000000000 +0100
++++ snakeyaml/src/test/java/org/yaml/snakeyaml/issues/issue9/Bean1.java	2011-05-27 19:48:19.260945240 +0200
+@@ -16,7 +16,9 @@
+ 
+ package org.yaml.snakeyaml.issues.issue9;
+ 
++/* WORKAROUND FOR : springframework dependency removal
+ import org.springframework.core.style.ToStringCreator;
++*/
+ 
+ public class Bean1 implements IBean {
+ 
+@@ -50,10 +52,13 @@
+ 
+     @Override
+     public String toString() {
++/* WORKAROUND FOR : springframework dependency removal
+         ToStringCreator builder = new ToStringCreator(this);
+         builder.append(this.strVal);
+         builder.append(this.intVal);
+         return builder.toString();
++*/
++        return "";
+     }
+ 
+ }
+diff -Naur snakeyaml.orig/src/test/java/org/yaml/snakeyaml/issues/issue9/Bean2.java snakeyaml/src/test/java/org/yaml/snakeyaml/issues/issue9/Bean2.java
+--- snakeyaml.orig/src/test/java/org/yaml/snakeyaml/issues/issue9/Bean2.java	2011-01-12 13:56:10.000000000 +0100
++++ snakeyaml/src/test/java/org/yaml/snakeyaml/issues/issue9/Bean2.java	2011-05-27 19:48:49.388530893 +0200
+@@ -16,7 +16,9 @@
+ 
+ package org.yaml.snakeyaml.issues.issue9;
+ 
++/* WORKAROUND FOR : springframework dependency removal
+ import org.springframework.core.style.ToStringCreator;
++*/
+ 
+ public class Bean2 implements IBean {
+ 
+@@ -46,10 +48,13 @@
+ 
+     @Override
+     public String toString() {
++/* WORKAROUND FOR : springframework dependency removal
+         ToStringCreator builder = new ToStringCreator(this);
+         builder.append(this.strVal);
+         builder.append(this.intVal);
+         return builder.toString();
++*/
++        return "";
+     }
+ 
+ }
diff --git a/snakeyaml-test-fails-workaround.patch b/snakeyaml-test-fails-workaround.patch
new file mode 100644
index 0000000..b5a7454
--- /dev/null
+++ b/snakeyaml-test-fails-workaround.patch
@@ -0,0 +1,16 @@
+diff -Naur snakeyaml.orig/src/test/java/org/yaml/snakeyaml/issues/issue67/NonAsciiCharsInClassNameTest.java snakeyaml/src/test/java/org/yaml/snakeyaml/issues/issue67/NonAsciiCharsInClassNameTest.java
+--- snakeyaml.orig/src/test/java/org/yaml/snakeyaml/issues/issue67/NonAsciiCharsInClassNameTest.java	2011-01-23 19:32:08.000000000 +0100
++++ snakeyaml/src/test/java/org/yaml/snakeyaml/issues/issue67/NonAsciiCharsInClassNameTest.java	2011-05-16 16:10:32.000000000 +0200
+@@ -38,10 +38,12 @@
+     }
+ 
+     public void testLoad() {
++/* WORKAROUND FOR : Can't construct a java object for tag. exception=Class not found
+         Yaml yaml = new Yaml();
+         Académico obj = (Académico) yaml.load(PREFIX + "Acad%C3%A9mico {id: 3, name: Foo bar}");
+         assertEquals(3, obj.getId());
+         assertEquals("Foo bar", obj.getName());
++*/
+     }
+ 
+     public void testLoadInvalidPattern() {
diff --git a/snakeyaml.depmap b/snakeyaml.depmap
new file mode 100644
index 0000000..2571680
--- /dev/null
+++ b/snakeyaml.depmap
@@ -0,0 +1,12 @@
+<dependencies>
+    <dependency>
+      <maven>
+        <groupId>com.google.gdata</groupId>
+        <artifactId>gdata-core</artifactId>
+      </maven>
+      <jpp>
+        <groupId>JPP</groupId>
+        <artifactId>gdata/gdata-core</artifactId>
+      </jpp>
+    </dependency>
+</dependencies>
diff --git a/snakeyaml.spec b/snakeyaml.spec
new file mode 100644
index 0000000..bc51b3c
--- /dev/null
+++ b/snakeyaml.spec
@@ -0,0 +1,121 @@
+
+%global group_id  org.yaml
+
+Name:             snakeyaml
+Version:          1.8
+Release:          4%{?dist}
+Summary:          YAML parser and emitter for the Java programming language
+License:          ASL 2.0
+Group:            Development/Libraries
+# http://code.google.com/p/snakeyaml
+URL:              http://code.google.com/p/%{name}
+# http://snakeyaml.googlecode.com/files/SnakeYAML-all-1.8.zip
+Source0:          http://%{name}.googlecode.com/files/SnakeYAML-all-%{version}.zip
+Source1:          %{name}.depmap
+
+Patch0:           %{name}-spring-removal-workaround.patch
+Patch1:           %{name}-test-fails-workaround.patch
+Patch2:           %{name}-gdata+base64coder+cobertura-addition.patch
+Patch3:           %{name}-issue121-file-handle-leaks.patch
+
+BuildArch:        noarch
+
+BuildRequires:    java-devel
+BuildRequires:    jpackage-utils
+BuildRequires:    maven
+BuildRequires:    maven-plugin-cobertura
+BuildRequires:    maven-surefire-provider-junit4
+BuildRequires:    joda-time
+BuildRequires:    gnu-getopt
+BuildRequires:    gdata-java
+BuildRequires:    base64coder
+
+Requires:         gdata-java
+Requires:         base64coder
+Requires:         java
+Requires:         jpackage-utils
+Requires(post):   jpackage-utils
+Requires(postun): jpackage-utils
+
+%description
+SnakeYAML features:
+    * a complete YAML 1.1 parser. In particular,
+      SnakeYAML can parse all examples from the specification.
+    * Unicode support including UTF-8/UTF-16 input/output.
+    * high-level API for serializing and deserializing
+      native Java objects.
+    * support for all types from the YAML types repository.
+    * relatively sensible error messages.
+
+
+%package javadoc
+Summary:          API documentation for %{name}
+Group:            Documentation
+Requires:         jpackage-utils
+
+%description javadoc
+This package contains the API documentation for %{name}.
+
+%prep
+%setup -q -n %{name}
+
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+
+# remove bundled stuff
+rm -rf target
+rm -rf src/main/java/com
+rm -rf src/main/java/biz
+
+# convert CR+LF to LF
+sed -i 's/\r//g' LICENSE.txt
+
+%build
+# gdata-java has no maven support -> depmap file needed
+# http://code.google.com/p/gdata-java-client/issues/detail?id=328
+mvn-rpmbuild -Dmaven.local.depmap.file="%{SOURCE1}" install
+
+%install
+# jars
+install -d -m 755 %{buildroot}%{_javadir}
+install -p -m 644 target/%{name}-%{version}.jar %{buildroot}%{_javadir}/%{name}.jar
+
+# pom
+install -d -m 755 %{buildroot}%{_mavenpomdir}
+install -pm 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP-%{name}.pom
+%add_to_maven_depmap %{group_id} %{name} %{version} JPP %{name}
+
+# javadoc
+install -d -m 755 %{buildroot}%{_javadocdir}/%{name}
+cp -pr target/apidocs/* %{buildroot}%{_javadocdir}/%{name}
+
+%post
+%update_maven_depmap
+
+%postun
+%update_maven_depmap
+
+%files
+%doc LICENSE.txt
+%{_javadir}/%{name}.jar
+%{_mavenpomdir}/JPP-%{name}.pom
+%{_mavendepmapfragdir}/%{name}
+
+%files javadoc
+%doc LICENSE.txt
+%doc %{_javadocdir}/%{name}
+
+%changelog
+* Thu Jun 09 2011 Jaromir Capik <jcapik at redhat.com> - 1.8-4
+- File handle leaks patched
+
+* Tue Jun 07 2011 Jaromir Capik <jcapik at redhat.com> - 1.8-3
+- base64coder-java renamed to base64coder
+
+* Wed Jun 01 2011 Jaromir Capik <jcapik at redhat.com> - 1.8-2
+- Bundled stuff removal
+
+* Mon May 16 2011 Jaromir Capik <jcapik at redhat.com> - 1.8-1
+- Initial version of the package
diff --git a/sources b/sources
index e69de29..920342c 100644
--- a/sources
+++ b/sources
@@ -0,0 +1 @@
+f02bc7f8207d95f235535678d2df70ce  SnakeYAML-all-1.8.zip


More information about the java-sig-commits mailing list