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 2014/03/25 23:28:21 UTC

svn commit: r1581566 - in /jena/branches/jena-fuseki-new-ui: ./ src/main/java/org/apache/jena/fuseki/server/ src/main/resources/org/apache/jena/fuseki/server/ src/main/resources/org/apache/jena/fuseki/server/templates/ templates/

Author: andy
Date: Tue Mar 25 22:28:21 2014
New Revision: 1581566

URL: http://svn.apache.org/r1581566
Log:
Move default files into java resources

Added:
    jena/branches/jena-fuseki-new-ui/src/main/resources/org/apache/jena/fuseki/server/
    jena/branches/jena-fuseki-new-ui/src/main/resources/org/apache/jena/fuseki/server/shiro.ini
      - copied unchanged from r1581467, jena/branches/jena-fuseki-new-ui/shiro.ini
    jena/branches/jena-fuseki-new-ui/src/main/resources/org/apache/jena/fuseki/server/templates/
      - copied from r1581467, jena/branches/jena-fuseki-new-ui/templates/
Removed:
    jena/branches/jena-fuseki-new-ui/shiro.ini
    jena/branches/jena-fuseki-new-ui/templates/
Modified:
    jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java

Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java?rev=1581566&r1=1581565&r2=1581566&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java Tue Mar 25 22:28:21 2014
@@ -53,6 +53,7 @@ public class FusekiServer
 {
     /** Root of the Fuseki installation for fixed files. THis may be null (e.g. running inside a web application container) */ 
     public static Path FUSEKI_HOME = null ;
+    
     /** Root of the varying files in this deployment. Often $FUSEKI_HOME/run.
      * This is not null - it may be /etc/fuseki, which must be writable.
      */ 
@@ -60,13 +61,6 @@ public class FusekiServer
     
     public static final String FUSEKI_BASE_ETC = "/etc/fuseki" ;  
 
-    private static FilenameFilter filterConfig = new FilenameFilter() {
-        @Override
-        public boolean accept(File dir, String name) {
-            return name.startsWith("config") ;
-        }
-    } ;
-    
     // Relative names of directories
     private static final String        runArea                  = "run" ;
     private static final String        databasesLocationBase    = "databases" ;
@@ -76,6 +70,7 @@ public class FusekiServer
     private static final String        systemDatabaseNameBase   = "system" ;
     private static final String        systemFileAreaBase       = "system_files" ;
     private static final String        templatesNameBase        = "templates" ;
+    private static final String        dftShiroIniFile          = "shiro.ini" ; // This is in web.xml as well. 
     
     // --- Set during server initialization
 
@@ -120,8 +115,13 @@ public class FusekiServer
             String x2 = System.getenv("FUSEKI_BASE") ;
             if ( x2 != null )
                 FUSEKI_BASE = Paths.get(x2) ;
-            else if ( FUSEKI_HOME != null )
-                FUSEKI_BASE = FUSEKI_HOME.resolve(runArea) ;
+            else {
+                if ( FUSEKI_HOME != null )
+                    FUSEKI_BASE = FUSEKI_HOME.resolve(runArea) ;
+                else
+                    // Neither FUSEKI_HOME nor FUSEKI_BASE set.
+                    FUSEKI_BASE = Paths.get(FUSEKI_BASE_ETC) ;
+            }
         }
         
         if ( FUSEKI_HOME != null )
@@ -129,7 +129,7 @@ public class FusekiServer
         
         FUSEKI_BASE = FUSEKI_BASE.toAbsolutePath() ;
         
-        Fuseki.configLog.info("FUSEKI_HOME="+ ((FUSEKI_HOME==null) ? "null" : FUSEKI_HOME.toString())) ;
+        Fuseki.configLog.info("FUSEKI_HOME="+ ((FUSEKI_HOME==null) ? "unset" : FUSEKI_HOME.toString())) ;
         Fuseki.configLog.info("FUSEKI_BASE="+FUSEKI_BASE.toString());
 
         // If FUSEKI_HOME exists, it may be FUSEKI_BASE.
@@ -160,24 +160,13 @@ public class FusekiServer
         
         // ---- Initialize with files.
         
-        // Copy shiro.ini
-        // Copy templates
-        
-        // Copy in defaults?
-        Path dirTemplatesMasters = makePath(FUSEKI_HOME, templatesNameBase) ;
-        mustExist(dirTemplatesMasters) ;
-        
         if ( Files.isRegularFile(FUSEKI_BASE) ) 
             throw new FusekiConfigException("FUSEKI_BASE exists but is a file") ;
-        boolean initFusekiBase = ! Files.exists(FUSEKI_BASE) || emptyDir(FUSEKI_BASE) ;
-        
-        String dftShiroIniFile = "shiro.ini" ;
         
         // Copy missing files into FUSEKI_BASE
-        Fuseki.configLog.info("Initializing FUSEKI_BASE") ;
-        copyFileIfMissing(FUSEKI_HOME, dftShiroIniFile, FUSEKI_BASE) ;
+        copyFileIfMissing(null, dftShiroIniFile, FUSEKI_BASE) ;
         for ( String n : Template.templateNames ) {
-            copyFileIfMissing(FUSEKI_HOME, n, FUSEKI_BASE) ;
+            copyFileIfMissing(null, n, FUSEKI_BASE) ;
         }
     }
 
@@ -187,6 +176,10 @@ public class FusekiServer
     
     /** Copy a file from src to dst under name fn.
      * If src is null, try as a classpath resource
+     * @param src   Source directory, or null meaning use java resource. 
+     * @param fn    File name, a relative path.
+     * @param dst   Destination directory.
+     * 
      */
     private static void copyFileIfMissing(Path src, String fn, Path dst) {
         
@@ -204,6 +197,7 @@ public class FusekiServer
             }
         } else {
             try {
+                // Get from the file from area "org/apache/jena/fuseki/server"  (our package)
                 InputStream in = FusekiServer.class.getResource(fn).openStream() ;
                 Files.copy(in, dstFile) ;
             }
@@ -212,25 +206,10 @@ public class FusekiServer
                 e.printStackTrace();
             }
         }
-        
     }
 
-//    private static void copyFileFilter(Path srcDir, Path dstDir, FilenameFilter filterConfig) {
-//        String[] files = srcDir.toFile().list(filterConfig) ;
-//        for ( String fn : files ) {
-//            try {
-//                Path src = srcDir.resolve(fn) ;
-//                Path dst = dstDir.resolve(fn) ;
-//                Files.copy(src, dst, StandardCopyOption.COPY_ATTRIBUTES) ;
-//            } catch (IOException e) {
-//                IO.exception("Failed to copy directory of files "+srcDir, e);
-//                e.printStackTrace();
-//            }
-//        }
-//    }
-
     public static void initializeDataAccessPoints(ServerInitialConfig initialSetup, String configDir) {
-        List<DataAccessPoint> configFileDBs = findDatasets(initialSetup) ;
+        List<DataAccessPoint> configFileDBs = initServerConfiguration(initialSetup) ;
         List<DataAccessPoint> directoryDBs =  FusekiConfig.readConfigurationDirectory(configDir) ;
         List<DataAccessPoint> systemDBs =     FusekiConfig.readSystemDatabase(SystemState.getDataset()) ;
         
@@ -250,7 +229,7 @@ public class FusekiServer
         }
     }
 
-    private static List<DataAccessPoint> findDatasets(ServerInitialConfig params) { 
+    private static List<DataAccessPoint> initServerConfiguration(ServerInitialConfig params) { 
         // Has a side effect of global context setting
         // when processing a config file.
         // Compatibility.