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/24 23:25:36 UTC
svn commit: r1581093 - in /jena/branches/jena-fuseki-new-ui:
src-dev/dev/RunFuseki2.java
src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
src/main/java/org/apache/jena/fuseki/server/ShiroEnvironmentLoader.java
src/main/webapp/WEB-INF/web.xml
Author: andy
Date: Mon Mar 24 22:25:36 2014
New Revision: 1581093
URL: http://svn.apache.org/r1581093
Log:
Initialize run area.
Modified:
jena/branches/jena-fuseki-new-ui/src-dev/dev/RunFuseki2.java
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/FusekiServer.java
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/ShiroEnvironmentLoader.java
jena/branches/jena-fuseki-new-ui/src/main/webapp/WEB-INF/web.xml
Modified: jena/branches/jena-fuseki-new-ui/src-dev/dev/RunFuseki2.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src-dev/dev/RunFuseki2.java?rev=1581093&r1=1581092&r2=1581093&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src-dev/dev/RunFuseki2.java (original)
+++ jena/branches/jena-fuseki-new-ui/src-dev/dev/RunFuseki2.java Mon Mar 24 22:25:36 2014
@@ -20,7 +20,6 @@ package dev;
import java.nio.file.Paths ;
-import org.apache.jena.atlas.lib.FileOps ;
import org.apache.jena.fuseki.FusekiCmd ;
import org.apache.jena.fuseki.server.FusekiServer ;
@@ -51,14 +50,10 @@ public class RunFuseki2
}
private static void main1() {
- FusekiServer.FUSEKI_HOME = Paths.get(".").toAbsolutePath() ;
+ FusekiServer.FUSEKI_HOME = Paths.get("").toAbsolutePath() ;
FusekiServer.FUSEKI_BASE = Paths.get("run") ;
FusekiServer.init() ;
- // Clean server state?
- if ( true )
- FileOps.clearDirectory(FusekiServer.dirSystemDatabase.toString()) ;
-
String tmpdir = System.getenv("TMPDIR") ;
if ( tmpdir == null )
tmpdir = System.getenv("TMP") ;
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=1581093&r1=1581092&r2=1581093&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 Mon Mar 24 22:25:36 2014
@@ -134,27 +134,47 @@ public class FusekiServer
// Copy in defaults?
Path dirTemplatesMasters = makePath(FUSEKI_HOME, templatesNameBase) ;
mustExist(dirTemplatesMasters) ;
-
- ensureDir(FUSEKI_BASE) ;
+ if ( Files.isRegularFile(FUSEKI_BASE) )
+ throw new FusekiConfigException("FUSEKI_BASE exists but is a file") ;
+ boolean initFusekiBase = ! Files.exists(FUSEKI_BASE) || emptyDir(FUSEKI_BASE) ;
+
+ ensureDir(FUSEKI_BASE) ;
+
dirTemplates = makePath(FUSEKI_BASE, templatesNameBase) ;
- boolean copyTemplates = ! exists(dirTemplates) ;
ensureDir(dirTemplates) ;
+ dirDatabases = makePathEnsureDir(FUSEKI_BASE, databasesLocationBase) ;
dirBackups = makePathEnsureDir(FUSEKI_BASE, backupDirNameBase) ;
dirConfiguration = makePathEnsureDir(FUSEKI_BASE, configDirNameBase) ;
dirLogs = makePathEnsureDir(FUSEKI_BASE, logsNameBase) ;
dirSystemDatabase = makePathEnsureDir(FUSEKI_BASE, systemDatabaseNameBase) ;
dirFileArea = makePathEnsureDir(FUSEKI_BASE, systemFileAreaBase) ;
- if ( copyTemplates )
+ String dftShiroIniFile = "shiro.ini" ;
+ if ( initFusekiBase ) {
+ Fuseki.configLog.info("Initializing FUSEKI_BASE") ;
+ copyFile(FUSEKI_HOME.resolve(dftShiroIniFile), FUSEKI_BASE.resolve(dftShiroIniFile)) ;
copyFileFilter(dirTemplatesMasters, dirTemplates, filterConfig) ;
+ }
+ }
+
+ private static boolean emptyDir(Path dir) {
+ return dir.toFile().list().length <= 2 ;
+ }
+
+ private static void copyFile(Path src, Path dst) {
+ try {
+ Files.copy(src, dst, StandardCopyOption.COPY_ATTRIBUTES) ;
+ } catch (IOException e) {
+ IO.exception("Failed to copy file "+src, e);
+ e.printStackTrace();
+ }
}
private static void copyFileFilter(Path srcDir, Path dstDir, FilenameFilter filterConfig) {
String[] files = srcDir.toFile().list(filterConfig) ;
- for ( String fn : files )
- {
+ for ( String fn : files ) {
try {
Path src = srcDir.resolve(fn) ;
Path dst = dstDir.resolve(fn) ;
@@ -282,7 +302,9 @@ public class FusekiServer
// ---- Helpers
- private static void ensureDir(Path directory) {
+ /** Ensure a directory exists, creating it if necessary.
+ */
+ private static void ensureDir(Path directory) {
File dir = directory.toFile() ;
if ( ! dir.exists() )
dir.mkdirs() ;
Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/ShiroEnvironmentLoader.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/ShiroEnvironmentLoader.java?rev=1581093&r1=1581092&r2=1581093&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/ShiroEnvironmentLoader.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/ShiroEnvironmentLoader.java Mon Mar 24 22:25:36 2014
@@ -72,6 +72,7 @@ public class ShiroEnvironmentLoader exte
ResourceBasedWebEnvironment env = (ResourceBasedWebEnvironment)environment ;
String[] locations = env.getConfigLocations() ;
String loc = huntForShiroIni(locations) ;
+ Fuseki.configLog.info("Shiro file: "+loc);
if (loc != null )
locations = new String[] {loc} ;
env.setConfigLocations(locations);
@@ -107,10 +108,10 @@ public class ShiroEnvironmentLoader exte
Path p = Paths.get(loc) ;
String fn = resolve(FusekiServer.FUSEKI_BASE, p) ;
if ( fn != null )
- return "file:/"+fn ;
+ return "file://"+fn ;
fn = resolve(FusekiServer.FUSEKI_HOME, p) ;
if ( fn != null )
- return "file:/"+fn ;
+ return "file://"+fn ;
// Try in webapp.
@@ -128,7 +129,7 @@ public class ShiroEnvironmentLoader exte
private static String resolve(Path dir, Path file) {
Path p = dir.resolve(file) ;
if ( p.toFile().exists() )
- return p.toString() ;
+ return p.normalize().toString() ;
return null ;
}
Modified: jena/branches/jena-fuseki-new-ui/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/webapp/WEB-INF/web.xml?rev=1581093&r1=1581092&r2=1581093&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/webapp/WEB-INF/web.xml (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/webapp/WEB-INF/web.xml Mon Mar 24 22:25:36 2014
@@ -11,7 +11,7 @@
<!-- First filter -->
<listener>
<!--<listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>-->
- <!-- Support multiple locations -->
+ <!-- Support multiple locations, looks in Fuseki-relevant places -->
<listener-class>org.apache.jena.fuseki.server.ShiroEnvironmentLoader</listener-class>
</listener>
@@ -31,7 +31,9 @@
<context-param>
<param-name>shiroConfigLocations</param-name>
- <!-- Try : FUSEKI_BASE, FUSEKI_HOME, war resource -->
+ <!-- Try a path name in: FUSEKI_BASE, FUSEKI_HOME, war resource
+ If a "file:" then look there and there only.
+ -->
<param-value>shiro.ini</param-value>
</context-param>