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/28 15:35:44 UTC

svn commit: r1518201 - in /jena/trunk/jena-core/src: main/java/com/hp/hpl/jena/ontology/OntDocumentManager.java main/java/com/hp/hpl/jena/util/FileManager.java test/java/com/hp/hpl/jena/util/TestFileManager.java

Author: andy
Date: Wed Aug 28 13:35:44 2013
New Revision: 1518201

URL: http://svn.apache.org/r1518201
Log:
Add and use FileManager.clone()

Modified:
    jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/ontology/OntDocumentManager.java
    jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/util/FileManager.java
    jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/util/TestFileManager.java

Modified: jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/ontology/OntDocumentManager.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/ontology/OntDocumentManager.java?rev=1518201&r1=1518200&r2=1518201&view=diff
==============================================================================
--- jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/ontology/OntDocumentManager.java (original)
+++ jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/ontology/OntDocumentManager.java Wed Aug 28 13:35:44 2013
@@ -23,18 +23,20 @@ package com.hp.hpl.jena.ontology;
 
 // Imports
 ///////////////
-import java.io.*;
-import java.util.*;
+import java.io.InputStream ;
+import java.util.* ;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.slf4j.Logger ;
+import org.slf4j.LoggerFactory ;
 
-import com.hp.hpl.jena.rdf.model.*;
-import com.hp.hpl.jena.util.*;
-import com.hp.hpl.jena.vocabulary.OntDocManagerVocab;
-import com.hp.hpl.jena.vocabulary.RDF;
-import com.hp.hpl.jena.shared.*;
-import com.hp.hpl.jena.shared.impl.PrefixMappingImpl;
+import com.hp.hpl.jena.rdf.model.* ;
+import com.hp.hpl.jena.shared.JenaException ;
+import com.hp.hpl.jena.shared.PrefixMapping ;
+import com.hp.hpl.jena.shared.impl.PrefixMappingImpl ;
+import com.hp.hpl.jena.util.FileManager ;
+import com.hp.hpl.jena.util.FileUtils ;
+import com.hp.hpl.jena.vocabulary.OntDocManagerVocab ;
+import com.hp.hpl.jena.vocabulary.RDF ;
 
 
 /**
@@ -283,7 +285,7 @@ public class OntDocumentManager
      * global location mapper).</p>
      */
     public void setFileManager() {
-        setFileManager( new FileManager( FileManager.get() ) );
+        setFileManager( FileManager.get().clone() ) ;
         m_usingGlobalFileMgr = true;
     }
 

Modified: jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/util/FileManager.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/util/FileManager.java?rev=1518201&r1=1518200&r2=1518201&view=diff
==============================================================================
--- jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/util/FileManager.java (original)
+++ jena/trunk/jena-core/src/main/java/com/hp/hpl/jena/util/FileManager.java Wed Aug 28 13:35:44 2013
@@ -72,11 +72,11 @@ public class FileManager
     public static final String filePathSeparator = java.io.File.separator ;
     private static Logger log = LoggerFactory.getLogger(FileManager.class) ;
 
-    static FileManager instance = null ;
+    static FileManager fmInstance = null ;
 
     static boolean logAllLookups = true ; 
-    List<Locator> handlers = new ArrayList<Locator>() ;
-    LocationMapper mapper = null ;
+    protected List<Locator> fmHandlers = new ArrayList<Locator>() ;
+    protected LocationMapper fmMapper = null ;
     
     /** Get the global file manager.
      * @return the global file manager
@@ -84,9 +84,9 @@ public class FileManager
     public static FileManager get()
     {
         // Singleton pattern adopted in case we later have several file managers.
-        if ( instance == null )
-            instance = makeGlobal() ;
-        return instance ;
+        if ( fmInstance == null )
+            fmInstance = makeGlobal() ;
+        return fmInstance ;
     }
     
     /** Set the global file manager (as returned by get())
@@ -95,7 +95,7 @@ public class FileManager
      */
     public static void setGlobalFileManager(FileManager globalFileManager)
     {
-        instance = globalFileManager ;
+        fmInstance = globalFileManager ;
     }
     
     /** Create an uninitialized FileManager */
@@ -105,16 +105,33 @@ public class FileManager
      *  Location mapper and locators chain are copied (the locators are not cloned).
      *  The model cache is not copied and is initially set to not cache.
      * @param filemanager
+     * @deprecated Call filemanager.clone() to get a duplicate FileManager. 
      */
+    @Deprecated
     public FileManager(FileManager filemanager)
     {
-        handlers.addAll(filemanager.handlers) ;
-        mapper = null ;
+        fmHandlers.addAll(filemanager.fmHandlers) ;
+        fmMapper = null ;
         if ( filemanager.getLocationMapper() != null )
-            mapper = new LocationMapper(filemanager.getLocationMapper()) ;
+            fmMapper = new LocationMapper(filemanager.getLocationMapper()) ;
         cacheModelLoads = false ;
         modelCache = null ;
     }
+    
+    @Override
+    public FileManager clone() { return clone(this) ; } 
+ 
+    // Isolate to help avoid copy errors.
+    private static FileManager clone(FileManager filemanager) {
+        FileManager newFm = new FileManager() ;
+        newFm.fmHandlers.addAll(filemanager.fmHandlers) ;
+        newFm.fmMapper = null ;
+        if ( filemanager.getLocationMapper() != null )
+            newFm.fmMapper = new LocationMapper(filemanager.getLocationMapper()) ;
+        newFm.cacheModelLoads = false ;
+        newFm.modelCache = null ;
+        return newFm ;
+    }
 
     /** Create a "standard" FileManager. */
     public static FileManager makeGlobal()
@@ -127,33 +144,33 @@ public class FileManager
     /** Force a file handler to have the default configuration. */
     public static void setStdLocators(FileManager fMgr)
     {
-        fMgr.handlers.clear() ;
+        fMgr.fmHandlers.clear() ;
         fMgr.addLocatorFile() ;
         fMgr.addLocatorURL() ;
         fMgr.addLocatorClassLoader(fMgr.getClass().getClassLoader()) ;
     }
     /** Create with the given location mapper */
     public FileManager(LocationMapper _mapper)    { setLocationMapper(_mapper) ; }
-
+    
     /** @deprecated Use setLocationMapper */
     @Deprecated
     public void setMapper(LocationMapper _mapper) { setLocationMapper(_mapper) ; }
     
     
     /** Set the location mapping */
-    public void setLocationMapper(LocationMapper _mapper) { mapper = _mapper ; }
+    public void setLocationMapper(LocationMapper _mapper) { fmMapper = _mapper ; }
     
     /** Get the location mapping */
-    public LocationMapper getLocationMapper() { return mapper ; }
+    public LocationMapper getLocationMapper() { return fmMapper ; }
     
     /** Return an iterator over all the handlers */
-    public Iterator<Locator> locators() { return handlers.listIterator() ; }
+    public Iterator<Locator> locators() { return fmHandlers.listIterator() ; }
 
     /** Add a locator to the end of the locators list */ 
     public void addLocator(Locator loc)
     {
         log.debug("Add location: "+loc.getName()) ;
-        handlers.add(loc) ; }
+        fmHandlers.add(loc) ; }
 
     /** Add a file locator */ 
     public void addLocatorFile() { addLocatorFile(null) ; } 
@@ -188,7 +205,7 @@ public class FileManager
 
     
     /** Remove a locator */ 
-    public void remove(Locator loc) { handlers.remove(loc) ; }
+    public void remove(Locator loc) { fmHandlers.remove(loc) ; }
 
     // -------- Cache operations
     boolean cacheModelLoads = false ;
@@ -219,27 +236,27 @@ public class FileManager
     /** Read out of the cache - return null if not in the cache */ 
     public Model getFromCache(String filenameOrURI)
     { 
-        if ( ! getCachingModels() )
+        if ( ! isCachingModels() )
             return null; 
         return modelCache.get(filenameOrURI) ;
     }
     
     public boolean hasCachedModel(String filenameOrURI)
     { 
-        if ( ! getCachingModels() )
+        if ( ! isCachingModels() )
             return false ; 
         return modelCache.containsKey(filenameOrURI) ;
     }
     
     public void addCacheModel(String uri, Model m)
     { 
-        if ( getCachingModels() )
+        if ( isCachingModels() )
             modelCache.put(uri, m) ;
     }
 
     public void removeCacheModel(String uri)
     { 
-        if ( getCachingModels() )
+        if ( isCachingModels() )
             modelCache.remove(uri) ;
     }
 
@@ -465,10 +482,10 @@ public class FileManager
     /** Apply the mapping of a filename or URI */
     public String mapURI(String filenameOrURI)
     {
-        if ( mapper == null )
+        if ( fmMapper == null )
             return filenameOrURI ; 
             
-        String uri = mapper.altMapping(filenameOrURI, null) ;
+        String uri = fmMapper.altMapping(filenameOrURI, null) ;
 
         if ( uri == null )
         {
@@ -534,7 +551,7 @@ public class FileManager
     
     public TypedStream openNoMapOrNull(String filenameOrURI)
     {
-        for (Locator loc : handlers)
+        for (Locator loc : fmHandlers)
         {
             TypedStream in = loc.open(filenameOrURI) ;
             if ( in != null )

Modified: jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/util/TestFileManager.java
URL: http://svn.apache.org/viewvc/jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/util/TestFileManager.java?rev=1518201&r1=1518200&r2=1518201&view=diff
==============================================================================
--- jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/util/TestFileManager.java (original)
+++ jena/trunk/jena-core/src/test/java/com/hp/hpl/jena/util/TestFileManager.java Wed Aug 28 13:35:44 2013
@@ -131,7 +131,7 @@ public class TestFileManager extends Tes
     public void testFileManagerClone()
     {
         FileManager fileManager1 = new FileManager() ;
-        FileManager fileManager2 = new FileManager(fileManager1) ;
+        FileManager fileManager2 = fileManager1.clone() ;
         
         // Should not affect fileManager2
         fileManager1.addLocatorFile() ;
@@ -148,7 +148,6 @@ public class TestFileManager extends Tes
         } catch (NotFoundException ex) {}
     }
     
-    
     public void testLocationMappingURLtoFileOpen()
     {
         LocationMapper locMap = new LocationMapper(TestLocationMapper.mapping) ;