You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2013/08/23 19:30:41 UTC

svn commit: r1516942 - in /jena/trunk/jena-arq/src: main/java/org/apache/jena/riot/system/ test/java/org/apache/jena/riot/system/

Author: andy
Date: Fri Aug 23 17:30:41 2013
New Revision: 1516942

URL: http://svn.apache.org/r1516942
Log:
JENA-520 and JENA-521

Added:
    jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaReaders.java
    jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaWriters.java
Modified:
    jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaReaders.java
    jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaWriters.java
    jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/system/TS_RiotSystem.java

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaReaders.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaReaders.java?rev=1516942&r1=1516941&r2=1516942&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaReaders.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaReaders.java Fri Aug 23 17:30:41 2013
@@ -21,7 +21,6 @@ package org.apache.jena.riot.system;
 import org.apache.jena.riot.adapters.JenaReadersWriters ;
 
 import com.hp.hpl.jena.rdf.model.impl.RDFReaderFImpl ;
-import com.hp.hpl.jena.rdf.model.impl.RDFWriterFImpl ;
 import com.hp.hpl.jena.sparql.util.Symbol ;
 
 public class IO_JenaReaders
@@ -32,9 +31,6 @@ public class IO_JenaReaders
 
     public static void wireIntoJena()
     {
-//        // Wire in generic 
-//        Class<?> readerRDF = RDFReaderRIOT.class ;
-        
       registerForModelRead("RDF/XML",    JenaReadersWriters.RDFReaderRIOT_RDFXML.class) ;           // And default
       registerForModelRead("RDF/XML-ABBREV", JenaReadersWriters.RDFReaderRIOT_RDFXML.class) ;
 
@@ -50,10 +46,14 @@ public class IO_JenaReaders
     
     static String jenaNTriplesReader = "com.hp.hpl.jena.rdf.model.impl.NTripleReader" ; 
     static String jenaTurtleReader = "com.hp.hpl.jena.n3.turtle.TurtleReader" ; 
-    static String jenaN3Reader = jenaTurtleReader ; 
+    static String jenaN3Reader = jenaTurtleReader ;
+    static String jenaRDFReader = "com.hp.hpl.jena.rdf.arp.JenaReader"; 
     
     public static void resetJena()
     {
+        RDFReaderFImpl.setBaseReaderClassName("RDF/XML", jenaRDFReader) ;
+        RDFReaderFImpl.setBaseReaderClassName("RDF/XML-ABBREV", jenaRDFReader) ;
+        
         RDFReaderFImpl.setBaseReaderClassName("N-TRIPLES", jenaNTriplesReader) ;
         RDFReaderFImpl.setBaseReaderClassName("N-Triples",  jenaNTriplesReader) ;
         RDFReaderFImpl.setBaseReaderClassName("N-TRIPLE",  jenaNTriplesReader) ;
@@ -63,8 +63,8 @@ public class IO_JenaReaders
         RDFReaderFImpl.setBaseReaderClassName("Turtle", jenaTurtleReader) ;
         RDFReaderFImpl.setBaseReaderClassName("TTL",    jenaTurtleReader) ;
 
-        RDFReaderFImpl.setBaseReaderClassName("RDF/JSON", null) ;
-        RDFWriterFImpl.setBaseWriterClassName("RDFJSON",  null) ;
+        RDFReaderFImpl.setBaseReaderClassName("RDF/JSON", "") ;
+        RDFReaderFImpl.setBaseReaderClassName("RDFJSON", "") ;
     }
     
     /** Register for use with Model.read (old style compatibility) */ 

Modified: jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaWriters.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaWriters.java?rev=1516942&r1=1516941&r2=1516942&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaWriters.java (original)
+++ jena/trunk/jena-arq/src/main/java/org/apache/jena/riot/system/IO_JenaWriters.java Fri Aug 23 17:30:41 2013
@@ -96,9 +96,10 @@ public class IO_JenaWriters
         RDFWriterFImpl.setBaseWriterClassName("RDF/XML-ABBREV", Jena.PATH + ".xmloutput.impl.Abbreviated") ;
 
         RDFWriterFImpl.setBaseWriterClassName("N-TRIPLE",       Jena.PATH + ".rdf.model.impl.NTripleWriter") ;
+        RDFWriterFImpl.setBaseWriterClassName("NT",             "") ;
         RDFWriterFImpl.setBaseWriterClassName("N-TRIPLES",      Jena.PATH + ".rdf.model.impl.NTripleWriter") ;
         RDFWriterFImpl.setBaseWriterClassName("N-Triples",      Jena.PATH + ".rdf.model.impl.NTripleWriter") ;
-        
+
         RDFWriterFImpl.setBaseWriterClassName("N3",             Jena.PATH + ".n3.N3JenaWriter") ;         
         RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.n3WriterPrettyPrinter,    Jena.PATH + ".n3.N3JenaWriterPP") ;
         RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.n3WriterPlain,           Jena.PATH + ".n3.N3TurtleJenaWriter") ;
@@ -108,6 +109,9 @@ public class IO_JenaWriters
         RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.turtleWriterAlt1,        Jena.PATH + ".n3.N3TurtleJenaWriter") ;
         RDFWriterFImpl.setBaseWriterClassName(N3JenaWriter.turtleWriterAlt2,        Jena.PATH + ".n3.N3TurtleJenaWriter") ;
         
+        RDFWriterFImpl.setBaseWriterClassName("RDF/JSON", "");
+        RDFWriterFImpl.setBaseWriterClassName("RDFJSON", "");
+
     }
     
     /** Register for use with Model.write  (old style compatibility) */ 

Modified: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/system/TS_RiotSystem.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/system/TS_RiotSystem.java?rev=1516942&r1=1516941&r2=1516942&view=diff
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/system/TS_RiotSystem.java (original)
+++ jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/system/TS_RiotSystem.java Fri Aug 23 17:30:41 2013
@@ -37,6 +37,8 @@ import org.junit.runners.Suite.SuiteClas
     , TestFastAbbreviatingPrefixMap.class
     , TestPrefixMapExtended1.class
     , TestPrefixMapExtended2.class
+    , TestIO_JenaReaders.class
+    , TestIO_JenaWriters.class
     // May be subject to performance vagaries, with the improvements made
     // to the fast implementation this should be fairly safe
     //, TestAbbreviationPerformance.class

Added: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaReaders.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaReaders.java?rev=1516942&view=auto
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaReaders.java (added)
+++ jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaReaders.java Fri Aug 23 17:30:41 2013
@@ -0,0 +1,88 @@
+/**
+ * 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.jena.riot.system;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.jena.riot.adapters.JenaReadersWriters.RDFReaderRIOT_NT;
+import org.apache.jena.riot.adapters.JenaReadersWriters.RDFReaderRIOT_RDFJSON;
+import org.apache.jena.riot.adapters.JenaReadersWriters.RDFReaderRIOT_RDFXML;
+import org.apache.jena.riot.adapters.JenaReadersWriters.RDFReaderRIOT_TTL;
+import org.junit.Test;
+
+import com.hp.hpl.jena.rdf.model.impl.RDFReaderFImpl;
+
+public class TestIO_JenaReaders {
+    private final class RDFReaderFImplExposingProtected extends RDFReaderFImpl {
+        public Map<String, String> defaultReaders() {
+            Map<String,String> defaults = new LinkedHashMap<String,String>();
+            for (int i=0; i<LANGS.length; i++) {
+                defaults.put(LANGS[i], DEFAULTREADERS[i]);
+            }
+            return defaults;
+        }
+        public Properties getLangToClassName() {
+            return langToClassName;
+        }
+    }
+
+    @Test
+    public void wireIntoJena() throws Exception {
+        IO_JenaReaders.wireIntoJena();
+        RDFReaderFImpl readerF = new RDFReaderFImpl();
+        assertEquals(RDFReaderRIOT_RDFXML.class, readerF.getReader().getClass());
+        assertEquals(RDFReaderRIOT_RDFXML.class, readerF.getReader("RDF/XML").getClass());
+        assertEquals(RDFReaderRIOT_RDFXML.class, readerF.getReader("RDF/XML-ABBREV").getClass());
+        assertEquals(RDFReaderRIOT_NT.class, readerF.getReader("N-TRIPLES").getClass());
+        assertEquals(RDFReaderRIOT_NT.class, readerF.getReader("N-Triples").getClass());
+        assertEquals(RDFReaderRIOT_NT.class, readerF.getReader("N-TRIPLE").getClass());
+        assertEquals(RDFReaderRIOT_TTL.class, readerF.getReader("N3").getClass());
+        assertEquals(RDFReaderRIOT_TTL.class, readerF.getReader("TURTLE").getClass());
+        assertEquals(RDFReaderRIOT_TTL.class, readerF.getReader("Turtle").getClass());
+        assertEquals(RDFReaderRIOT_TTL.class, readerF.getReader("TTL").getClass());
+        assertEquals(RDFReaderRIOT_RDFJSON.class, readerF.getReader("RDF/JSON").getClass());
+    }
+    
+    @Test
+    public void resetJena() throws Exception {
+        IO_JenaReaders.wireIntoJena();
+        IO_JenaReaders.resetJena();
+        RDFReaderFImplExposingProtected readerF = new RDFReaderFImplExposingProtected();
+        Map<String, String> defaults = readerF.defaultReaders();
+        assertFalse(defaults.isEmpty());
+        for (String lang : defaults.keySet()) {
+            assertEquals(defaults.get(lang), readerF.getLangToClassName().get(lang));
+            if (lang.equals("GRDDL")) {
+                // Can't load
+                continue;
+            }
+            assertEquals(defaults.get(lang), readerF.getReader(lang).getClass().getName());
+        }
+        
+        // And unregistered our additional langs
+        assertEquals("", readerF.getLangToClassName().get("RDF/JSON"));
+        
+    }
+
+    
+}

Added: jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaWriters.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaWriters.java?rev=1516942&view=auto
==============================================================================
--- jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaWriters.java (added)
+++ jena/trunk/jena-arq/src/test/java/org/apache/jena/riot/system/TestIO_JenaWriters.java Fri Aug 23 17:30:41 2013
@@ -0,0 +1,104 @@
+/**
+ * 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.jena.riot.system;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Properties;
+
+import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_N3;
+import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_N3Plain;
+import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_N3Triples;
+import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_N3TriplesAlt;
+import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_N3_PP;
+import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_NTriples;
+import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_RDFJSON;
+import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_Turtle;
+import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_Turtle1;
+import org.apache.jena.riot.adapters.JenaReadersWriters.RDFWriterRIOT_Turtle2;
+import org.junit.Test;
+
+import com.hp.hpl.jena.n3.N3JenaWriter;
+import com.hp.hpl.jena.rdf.model.impl.RDFWriterFImpl;
+import com.hp.hpl.jena.xmloutput.impl.Abbreviated;
+import com.hp.hpl.jena.xmloutput.impl.Basic;
+
+public class TestIO_JenaWriters {
+    private final class RDFWriterFImplExposingProtected extends RDFWriterFImpl {
+        public Map<String, String> defaultWriters() {
+            Map<String,String> defaults = new LinkedHashMap<String,String>();
+            for (int i=0; i<LANGS.length; i++) {
+                defaults.put(LANGS[i], DEFAULTWRITERS[i]);
+            }
+            return defaults;
+        }
+        public Properties getLangToClassName() {
+            return langToClassName;
+        }
+    }
+
+    @Test
+    public void wireIntoJena() throws Exception {
+        IO_JenaWriters.wireIntoJena();
+        RDFWriterFImpl writerF = new RDFWriterFImpl();
+        assertEquals(Basic.class, writerF.getWriter().getClass());
+        assertEquals(Basic.class, writerF.getWriter("RDF/XML").getClass());
+        assertEquals(Abbreviated.class, writerF.getWriter("RDF/XML-ABBREV").getClass());
+        assertEquals(RDFWriterRIOT_NTriples.class, writerF.getWriter("N-TRIPLE").getClass());
+        assertEquals(RDFWriterRIOT_NTriples.class, writerF.getWriter("N-Triples").getClass());
+        assertEquals(RDFWriterRIOT_NTriples.class, writerF.getWriter("N-TRIPLE").getClass());
+        assertEquals(RDFWriterRIOT_NTriples.class, writerF.getWriter("NT").getClass());
+
+        assertEquals(RDFWriterRIOT_N3.class, writerF.getWriter("N3").getClass());
+        assertEquals(RDFWriterRIOT_N3_PP.class, writerF.getWriter(N3JenaWriter.n3WriterPrettyPrinter).getClass());
+        assertEquals(RDFWriterRIOT_N3Plain.class, writerF.getWriter(N3JenaWriter.n3WriterPlain).getClass());
+        assertEquals(RDFWriterRIOT_N3Triples.class, writerF.getWriter(N3JenaWriter.n3WriterTriples).getClass());
+        assertEquals(RDFWriterRIOT_N3TriplesAlt.class, writerF.getWriter(N3JenaWriter.n3WriterTriplesAlt).getClass());
+        
+        assertEquals(RDFWriterRIOT_Turtle.class, writerF.getWriter(N3JenaWriter.turtleWriter).getClass());
+        assertEquals(RDFWriterRIOT_Turtle1.class, writerF.getWriter(N3JenaWriter.turtleWriterAlt1).getClass());
+        assertEquals(RDFWriterRIOT_Turtle2.class, writerF.getWriter(N3JenaWriter.turtleWriterAlt2).getClass());
+
+        assertEquals(RDFWriterRIOT_RDFJSON.class, writerF.getWriter("RDF/JSON").getClass());
+        assertEquals(RDFWriterRIOT_RDFJSON.class, writerF.getWriter("RDFJSON").getClass());
+    }
+    
+    @Test
+    public void resetJena() throws Exception {
+        IO_JenaWriters.wireIntoJena();
+        IO_JenaWriters.resetJena();
+        RDFWriterFImplExposingProtected writerF = new RDFWriterFImplExposingProtected();
+        Map<String, String> defaults = writerF.defaultWriters();
+        assertFalse(defaults.isEmpty());
+        for (String lang : defaults.keySet()) {
+            assertEquals(defaults.get(lang), writerF.getLangToClassName().get(lang));
+            // Disabled as it does not handle GRDLL reader
+            assertEquals(defaults.get(lang), writerF.getWriter(lang).getClass().getName());
+        }
+        
+        // And unregistered our additional langs
+        assertEquals("", writerF.getLangToClassName().get("NT"));
+        assertEquals("", writerF.getLangToClassName().get("RDF/JSON"));
+        assertEquals("", writerF.getLangToClassName().get("RDFJSON"));
+    }
+
+    
+}