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 2012/02/07 21:47:14 UTC

svn commit: r1241612 - in /incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader: ./ fm2/ fm2/test/

Author: andy
Date: Tue Feb  7 20:47:13 2012
New Revision: 1241612

URL: http://svn.apache.org/viewvc?rev=1241612&view=rev
Log: (empty)

Added:
    incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/Lang2.java
    incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/LangRegistry.java
    incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/Langs.java
    incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorFile2.java
      - copied, changed from r1240610, incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorFile.java
Removed:
    incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorFile.java
Modified:
    incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/TypedStream2.java
    incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/WebReader2.java
    incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/FileManager2.java
    incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorClassLoader.java
    incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorZip.java
    incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/test/TestLocators.java

Added: incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/Lang2.java
URL: http://svn.apache.org/viewvc/incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/Lang2.java?rev=1241612&view=auto
==============================================================================
--- incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/Lang2.java (added)
+++ incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/Lang2.java Tue Feb  7 20:47:13 2012
@@ -0,0 +1,74 @@
+/**
+ * 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 riot.reader;
+
+import java.util.UUID ;
+
+
+// Should this generalize to result set formats?
+// DataFormat.
+public class Lang2 
+{
+    private final String label ;
+
+    /** Create a language with a well-known name,
+     * All languages with the same name wil be treated as the same language.
+     */
+    static public Lang2 create(String label)
+    {
+        return new Lang2(label) ;
+    }
+    
+    /** Create an unnamed language.  Using language with well-known unique names is better. */ 
+    static public Lang2 create()
+    {
+        return new Lang2(UUID.randomUUID().toString()) ;
+    }
+    
+    protected Lang2(String label)
+    { 
+        if ( label == null )
+            throw new IllegalArgumentException("Nul not allowed for language name") ;
+        else
+            label = label.intern();
+        this.label = label ;
+    }
+
+    protected Lang2(Lang2 other)  { this.label = other.label ; }
+    
+    @Override
+    public int hashCode() { return label.hashCode() ; } 
+
+    @Override
+    public boolean equals(Object other)
+    {
+        if ( this == other ) return true ;
+
+        if ( ! ( other instanceof Lang2 ) )
+            return false ;
+
+        Lang2 otherLang = (Lang2)other ;
+        return this.label == otherLang.label ; // String interning.
+    }
+
+    public String getName() { return label ; }
+    @Override
+    public String toString()  { return label ; }
+}
+

Added: incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/LangRegistry.java
URL: http://svn.apache.org/viewvc/incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/LangRegistry.java?rev=1241612&view=auto
==============================================================================
--- incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/LangRegistry.java (added)
+++ incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/LangRegistry.java Tue Feb  7 20:47:13 2012
@@ -0,0 +1,25 @@
+/**
+ * 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 riot.reader;
+
+public class LangRegistry
+{
+
+}
+

Added: incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/Langs.java
URL: http://svn.apache.org/viewvc/incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/Langs.java?rev=1241612&view=auto
==============================================================================
--- incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/Langs.java (added)
+++ incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/Langs.java Tue Feb  7 20:47:13 2012
@@ -0,0 +1,156 @@
+/**
+ * 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 riot.reader;
+
+import java.util.HashMap ;
+import java.util.Map ;
+
+import com.hp.hpl.jena.util.FileUtils ;
+
+import org.openjena.atlas.lib.MultiMap ;
+import org.openjena.riot.ContentType ;
+import org.openjena.riot.Lang ;
+import org.openjena.riot.WebContent ;
+
+public class Langs
+{
+    // Constants and wiring. 
+
+    // Languages as constants.  Lang is an "open enum" (you can add your own),
+    // registered with their MIME type or offical name,
+    static Lang2 langRDFXML     = Lang2.create(WebContent.contentTypeRDFXML) ;
+    static Lang2 langTurtle     = Lang2.create(WebContent.contentTypeRDFXML) ;
+    static Lang2 langNTriples   = Lang2.create(WebContent.contentTypeNTriplesAlt) ; // Exception: not text/plain.
+    static Lang2 langN3         = Lang2.create(WebContent.contentTypeN3) ;
+    static Lang2 langRDFJSON    = Lang2.create(WebContent.contentTypeRDFJSON) ;
+    
+    static Lang2 langNQuads     = Lang2.create(WebContent.contentTypeNQuads) ;
+    static Lang2 langTriG       = Lang2.create(WebContent.contentTypeTriG) ;
+
+
+    public static ContentType guessContentType(String filenameOrIRI)
+    {
+        Lang lang = Lang.guess(filenameOrIRI) ;
+        String contentType = WebContent.mapLangToContentType(lang) ;
+        String charset = WebContent.getCharsetForContentType(contentType) ;
+        return ContentType.create(contentType, charset) ;
+    }
+    
+
+    // Temporary.
+    public static Lang2 convert(Lang lang)
+    {
+        if (lang == null) return null ;
+        return Lang2.create(lang.getName()) ;
+    }
+
+    // Temporary.
+    public static Lang convert(Lang2 lang)
+    {
+        if (lang == null) return null ;
+        return Lang.get(lang.getName()) ;
+    }
+
+    //** Merge with Lang.guess
+    public static Lang2 guess(String resourceIRI, Lang2 dftLang)
+    {
+        return convert(Lang.guess(resourceIRI, convert(dftLang))) ;
+    }
+    
+    public static Lang2 guess(String resourceIRI)
+    {
+        return convert(Lang.guess(resourceIRI)) ;
+    }
+    //** Merge with Lang.guess
+
+
+    
+    static {
+        // See WebContent.mapContentTypeToLang
+        register(langRDFXML) ;
+        register(langTurtle) ;
+        register(langTurtle) ;
+        register(langTurtle) ;
+
+        register(langNTriples) ;
+        
+        register(langN3) ;
+        
+        register(langRDFJSON) ;
+        register(langNQuads) ;
+        register(langTriG) ;   
+    }
+    
+    private static void register(Lang2 lang)
+    {
+        
+    }
+    
+    // MIME specific.
+    // Check for uniqueness.
+    
+    
+    
+    static {
+        extension(langRDFXML,       "rdf", "owl", "xml") ;
+        extension(langTurtle,       "ttl") ;
+        extension(langNTriples,     "nt") ;
+        extension(langN3,           "n3") ;
+        extension(langRDFJSON,      "rj", "json") ;
+        extension(langNQuads,       "nq") ;
+        extension(langTriG,         "trig") ;
+    }
+    
+    // Reader name and variations to lang (compatibility)
+    
+    static {
+        jenaName("RDF/XML",         langRDFXML) ;
+        jenaName("RDF/XML-ABBREV",  langRDFXML) ;
+        
+        jenaName("N-TRIPLE",        langNTriples) ;
+        jenaName("N-TRIPLES",       langNTriples) ;
+        jenaName("NTRIPLE",         langNTriples) ;
+        jenaName("NTRIPLES",        langNTriples) ;
+        
+        jenaName("TURTLE",          langNTriples) ;
+        jenaName("TTL",             langNTriples) ;
+
+        jenaName("N-QUADS",         langNQuads) ;
+        jenaName("NQUADS",          langNQuads) ;
+        
+        jenaName("TRIG",            langTriG) ;
+    }
+
+    
+    
+    static MultiMap<Lang2, String> extensions = MultiMap.createMapList() ;
+    static Map<String, Lang2> jenaName = new HashMap<String, Lang2>() ;
+    
+    private static void extension(Lang2 lang, String ... exts)
+    {
+        extensions.putAll(lang, exts) ;
+    }
+
+    private static void jenaName(String name, Lang2 lang)
+    {
+        jenaName.put(name, lang) ;
+    }
+    
+
+}

Modified: incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/TypedStream2.java
URL: http://svn.apache.org/viewvc/incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/TypedStream2.java?rev=1241612&r1=1241611&r2=1241612&view=diff
==============================================================================
--- incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/TypedStream2.java (original)
+++ incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/TypedStream2.java Tue Feb  7 20:47:13 2012
@@ -33,17 +33,18 @@ public class TypedStream2
     private String baseURI ;
     
     public TypedStream2(InputStream in)
-    { this(in, null) ; }
+    { this(in, null, null) ; }
     
     public TypedStream2(InputStream in, String mediaType, String charset, String baseURI)
     {
-        this(in, ContentType.create(mediaType, charset)) ;
+        this(in, ContentType.create(mediaType, charset), baseURI) ;
     }
     
-    public TypedStream2(InputStream in, ContentType ct)
+    public TypedStream2(InputStream in, ContentType ct, String baseURI)
     {
-        input = in ;
-        mediaType = ct ;
+        this.input = in ;
+        this.mediaType = ct ;
+        this.baseURI = baseURI ;
     }
     
     public InputStream getInput()           { return input ; }

Modified: incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/WebReader2.java
URL: http://svn.apache.org/viewvc/incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/WebReader2.java?rev=1241612&r1=1241611&r2=1241612&view=diff
==============================================================================
--- incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/WebReader2.java (original)
+++ incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/WebReader2.java Tue Feb  7 20:47:13 2012
@@ -28,6 +28,7 @@ import org.openjena.riot.lang.SinkTriple
 import org.slf4j.Logger ;
 import org.slf4j.LoggerFactory ;
 import riot.reader.fm2.FileManager2 ;
+import riot.reader.fm2.LocatorFile2 ;
 import riot.reader.fm2.LocatorURL2 ;
 
 import com.hp.hpl.jena.graph.Graph ;
@@ -72,6 +73,13 @@ public class WebReader2
 
     public static void main(String ... argv)
     {
+        LocatorFile2 loc = new LocatorFile2("/DIR") ;
+        
+        System.out.println(loc.toFile("FILE").getAbsoluteFile()) ;
+        System.out.println(loc.toFile("file:FILE").getAbsoluteFile()) ;
+        
+        System.exit(0) ;
+        
         Log.enable(WebReader2.class) ;
         Model m = ModelFactory.createDefaultModel() ;
         read(m, "http://localhost:3030/ds/get?default", WebContent.contentTypeTurtle, null) ;

Modified: incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/FileManager2.java
URL: http://svn.apache.org/viewvc/incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/FileManager2.java?rev=1241612&r1=1241611&r2=1241612&view=diff
==============================================================================
--- incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/FileManager2.java (original)
+++ incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/FileManager2.java Tue Feb  7 20:47:13 2012
@@ -43,7 +43,7 @@ import com.hp.hpl.jena.util.LocatorURL ;
  * resources: applications may also create specialised FileManagers.
  * 
  * A FileManager contains a list of location functions to try: the global
- * FileManger has one {@link LocatorFile}, one {@link LocatorClassLoader} and
+ * FileManger has one {@link LocatorFile2}, one {@link LocatorClassLoader} and
  * one {@link LocatorURL}
  * 
  * Main operations:
@@ -65,7 +65,7 @@ import com.hp.hpl.jena.util.LocatorURL ;
  * copy of a common RDF dataset may be used whenever the usual URL is used by
  * the application.
  *
- * The {@link LocatorFile} also supports the idea of "current directory".
+ * The {@link LocatorFile2} also supports the idea of "current directory".
  * 
  * @see LocationMapper
  * @see FileUtils
@@ -156,7 +156,7 @@ public class FileManager2 extends Stream
     /** Add a file locator which uses dir as its working directory */ 
     public void addLocatorFile(String dir)
     {
-        LocatorFile fLoc = new LocatorFile(dir) ;
+        LocatorFile2 fLoc = new LocatorFile2(dir) ;
         addLocator(fLoc) ;
     }
     

Modified: incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorClassLoader.java
URL: http://svn.apache.org/viewvc/incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorClassLoader.java?rev=1241612&r1=1241611&r2=1241612&view=diff
==============================================================================
--- incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorClassLoader.java (original)
+++ incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorClassLoader.java Tue Feb  7 20:47:13 2012
@@ -20,12 +20,12 @@ package riot.reader.fm2;
 
 import java.io.InputStream ;
 
+import org.openjena.riot.ContentType ;
 import org.slf4j.Logger ;
 import org.slf4j.LoggerFactory ;
+import riot.reader.Langs ;
 import riot.reader.TypedStream2 ;
 
-import com.hp.hpl.jena.util.FileUtils ;
-
 public class LocatorClassLoader  implements Locator
 {
     static Logger log = LoggerFactory.getLogger(LocatorClassLoader.class) ;
@@ -49,30 +49,25 @@ public class LocatorClassLoader  impleme
         { return classLoader.hashCode(); }
     
     @Override
-    public TypedStream2 open(String filenameOrURI)
+    public TypedStream2 open(String resourceName)
     {
         if ( classLoader == null )
             return null ;
             
-        String fn = FileUtils.toFilename(filenameOrURI) ;
-        if ( fn == null )
-        {
-            if ( StreamManager.logAllLookups && log.isTraceEnabled() )
-                log.trace("Not found: "+filenameOrURI) ; 
-            return null ;
-        }
-        InputStream in = classLoader.getResourceAsStream(fn) ;
+        InputStream in = classLoader.getResourceAsStream(resourceName) ;
         if ( in == null )
         {
             if ( StreamManager.logAllLookups && log.isTraceEnabled() )
-                log.trace("Failed to open: "+filenameOrURI) ;
+                log.trace("Failed to open: "+resourceName) ;
             return null ;
         }
         
         if ( StreamManager.logAllLookups  && log.isTraceEnabled() )
-            log.trace("Found: "+filenameOrURI) ;
+            log.trace("Found: "+resourceName) ;
         
-        return new TypedStream2(in) ;
+        ContentType ct = Langs.guessContentType(resourceName) ;
+        // No sensible base URI.
+        return new TypedStream2(in, ct, null) ;
     }
     
     @Override

Copied: incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorFile2.java (from r1240610, incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorFile.java)
URL: http://svn.apache.org/viewvc/incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorFile2.java?p2=incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorFile2.java&p1=incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorFile.java&r1=1240610&r2=1241612&rev=1241612&view=diff
==============================================================================
--- incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorFile.java (original)
+++ incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorFile2.java Tue Feb  7 20:47:13 2012
@@ -25,11 +25,10 @@ import java.io.InputStream ;
 import java.security.AccessControlException ;
 
 import org.openjena.atlas.lib.IRILib ;
-import org.openjena.atlas.lib.Lib ;
-import org.openjena.riot.Lang ;
-import org.openjena.riot.WebContent ;
+import org.openjena.riot.ContentType ;
 import org.slf4j.Logger ;
 import org.slf4j.LoggerFactory ;
+import riot.reader.Langs ;
 import riot.reader.TypedStream2 ;
 
 import com.hp.hpl.jena.util.FileUtils ;
@@ -39,15 +38,20 @@ import com.hp.hpl.jena.util.FileUtils ;
  *  location mapping (see @link{LocationMapping}) as it applies only to files.
  */
 
-public class LocatorFile implements Locator
+public class LocatorFile2 implements Locator
 {
-    static Logger log = LoggerFactory.getLogger(LocatorFile.class) ;
+    static Logger log = LoggerFactory.getLogger(LocatorFile2.class) ;
     private String altDir = null ;
     private String altDirLogStr = "" ;
 
-    public LocatorFile() { this(null) ; }
+    /** Create a LocatorFile */
+    public LocatorFile2() { this(null) ; }
     
-    public LocatorFile(String dir)
+    /** Create a LocatorFile that uses the argument as it's working directory
+     * The working directory should be a UNIX style file name,
+     * (relative or absolute), not a URI.
+     */
+    public LocatorFile2(String dir)
     {
         if ( dir != null )
         {
@@ -60,24 +64,12 @@ public class LocatorFile implements Loca
 
     // Two LocatorFile are the same if they would look up names to the same files.
     
-    @Override
-    public boolean equals( Object other )
-    {
-        return
-            other instanceof LocatorFile
-            && Lib.equal(altDir, ((LocatorFile) other).altDir );
-    }
-    
-    @Override
-    public int hashCode()
-    {
-        if ( altDir == null ) return 57 ;
-        return altDir.hashCode();
-    }
-    
     /** To a File, after processing the filename for file: or relative filename */
     public File toFile(String filenameIRI)
     {
+        // Do not use : it will ignore the directory. 
+        //IRILib.filenameToIRI
+        
         String scheme = FileUtils.getScheme(filenameIRI) ;
         String fn = filenameIRI ;
         // Windows : C:\\ is not a scheme name!
@@ -88,9 +80,10 @@ public class LocatorFile implements Loca
                 return null ;
             fn = IRILib.IRIToFilename(filenameIRI) ;
         }
-        // AltDir.
-        // "/" is a path separator on Windows.
-        if ( altDir != null && ! fn.startsWith("/") && ! fn.startsWith(File.pathSeparator) )
+        // fn is the file name to use.
+        // If it is relative, and we have a different working directory, prepend that.  
+        // "/" is a path separator on Windows as well.
+        if ( altDir != null && ! fn.startsWith("/") && ! fn.startsWith(File.separator) )
             fn = altDir+"/"+fn ;
         return new File(fn) ;
     }
@@ -105,7 +98,7 @@ public class LocatorFile implements Loca
         return f.exists() ;
     }
     
-    /** Opne anything that looks a bit like a file name */ 
+    /** Open anything that looks a bit like a file name */ 
     @Override
     public TypedStream2 open(String filenameIRI)
     {
@@ -129,11 +122,8 @@ public class LocatorFile implements Loca
             if ( StreamManager.logAllLookups && log.isTraceEnabled() )
                 log.trace("Found: "+filenameIRI+altDirLogStr) ;
             
-            // Guess content from extension.
-            Lang lang = Lang.guess(filenameIRI) ;
-            String contentType = WebContent.mapLangToContentType(lang) ;
-            String charset = WebContent.getCharsetForContentType(contentType) ;
-            return new TypedStream2(in, contentType, charset, null) ;
+            ContentType ct = Langs.guessContentType(filenameIRI) ;
+            return new TypedStream2(in, ct, filenameIRI) ;
         } catch (IOException ioEx)
         {
             // Includes FileNotFoundException

Modified: incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorZip.java
URL: http://svn.apache.org/viewvc/incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorZip.java?rev=1241612&r1=1241611&r2=1241612&view=diff
==============================================================================
--- incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorZip.java (original)
+++ incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/LocatorZip.java Tue Feb  7 20:47:13 2012
@@ -23,8 +23,10 @@ import java.io.InputStream ;
 import java.util.zip.ZipEntry ;
 import java.util.zip.ZipFile ;
 
+import org.openjena.riot.ContentType ;
 import org.slf4j.Logger ;
 import org.slf4j.LoggerFactory ;
+import riot.reader.Langs ;
 import riot.reader.TypedStream2 ;
 
 import com.hp.hpl.jena.shared.JenaException ;
@@ -73,7 +75,9 @@ public class LocatorZip implements Locat
             
             if ( StreamManager.logAllLookups  && log.isTraceEnabled() )
                 log.trace("Found: "+filenameOrURI) ;
-            return new TypedStream2(in) ;
+            
+            ContentType ct = Langs.guessContentType(filenameOrURI) ;
+            return new TypedStream2(in, ct, filenameOrURI) ;
         }
         catch (IOException ex)
         {

Modified: incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/test/TestLocators.java
URL: http://svn.apache.org/viewvc/incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/test/TestLocators.java?rev=1241612&r1=1241611&r2=1241612&view=diff
==============================================================================
--- incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/test/TestLocators.java (original)
+++ incubator/jena/Scratch/AFS/Dev/trunk/src/main/java/riot/reader/fm2/test/TestLocators.java Tue Feb  7 20:47:13 2012
@@ -24,7 +24,7 @@ import org.junit.Test ;
 import org.openjena.atlas.junit.BaseTest ;
 import org.openjena.riot.WebContent ;
 import riot.reader.TypedStream2 ;
-import riot.reader.fm2.LocatorFile ;
+import riot.reader.fm2.LocatorFile2 ;
 
 public class TestLocators extends BaseTest 
 {
@@ -32,7 +32,7 @@ public class TestLocators extends BaseTe
     
     @Test public void locatorFile_01()
     {
-        LocatorFile loc = new LocatorFile() ;
+        LocatorFile2 loc = new LocatorFile2() ;
         assertTrue(loc.exists("pom.xml")) ;
         assertTrue(loc.exists(testingDir+"data.ttl")) ;
         assertFalse(loc.exists("IDoNotExist")) ;
@@ -40,7 +40,7 @@ public class TestLocators extends BaseTe
     
     @Test public void locatorFile_02()
     {
-        LocatorFile loc = new LocatorFile(".") ;
+        LocatorFile2 loc = new LocatorFile2(".") ;
         assertTrue(loc.exists("pom.xml")) ;
         assertTrue(loc.exists(testingDir+"data.ttl")) ;
         assertFalse(loc.exists("IDoNotExist")) ;
@@ -49,7 +49,7 @@ public class TestLocators extends BaseTe
     @Test public void locatorFile_03()
     {
         String dir = new File(".").getAbsolutePath() ;
-        LocatorFile loc = new LocatorFile(dir) ;
+        LocatorFile2 loc = new LocatorFile2(dir) ;
         assertTrue(loc.exists("pom.xml")) ;
         assertFalse(loc.exists("IDoNotExist")) ;
     }
@@ -57,7 +57,7 @@ public class TestLocators extends BaseTe
     @Test public void locatorFile_04()
     {
         String dir = new File("src").getAbsolutePath() ;
-        LocatorFile loc = new LocatorFile(dir) ;
+        LocatorFile2 loc = new LocatorFile2(dir) ;
         
         assertFalse(loc.exists("pom.xml")) ;
         assertTrue(loc.exists("org")) ;
@@ -68,7 +68,7 @@ public class TestLocators extends BaseTe
     
     @Test public void locatorFile_05()
     {
-        LocatorFile loc = new LocatorFile() ;
+        LocatorFile2 loc = new LocatorFile2() ;
         TypedStream2 ts = loc.open(testingDir+"data.ttl") ;
         assertTrue("Not equal: "+WebContent.contentTypeTurtle+" != "+ts.getMediaType(), 
                    WebContent.contentTypeTurtleAlt1.equalsIgnoreCase(ts.getContentType())) ;