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/01/12 18:25:10 UTC

svn commit: r1557563 - in /jena/branches/jena-fuseki-new-ui: ./ src-dev/dev/ src/main/java/org/apache/jena/fuseki/ src/main/java/org/apache/jena/fuseki/mgt/ src/main/java/org/apache/jena/fuseki/migrate/ src/main/java/org/apache/jena/fuseki/server/ src/...

Author: andy
Date: Sun Jan 12 17:25:10 2014
New Revision: 1557563

URL: http://svn.apache.org/r1557563
Log:
Add Apache Shiro for security.\nRefactoring around DatasetRef.

Added:
    jena/branches/jena-fuseki-new-ui/shiro.ini
    jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/migrate/DatasetGraphSwitchable.java
Modified:
    jena/branches/jena-fuseki-new-ui/pom.xml
    jena/branches/jena-fuseki-new-ui/src-dev/dev/PROJECT.java
    jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/Fuseki.java
    jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/FusekiCmd.java
    jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/ActionCtl.java
    jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/DatasetRef.java
    jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java
    jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java
    jena/branches/jena-fuseki-new-ui/src/test/java/org/apache/jena/fuseki/TS_Fuseki.java
    jena/branches/jena-fuseki-new-ui/src/test/java/org/apache/jena/fuseki/TestAdmin.java
    jena/branches/jena-fuseki-new-ui/src/test/resources/log4j.properties
    jena/branches/jena-fuseki-new-ui/war-web.xml

Modified: jena/branches/jena-fuseki-new-ui/pom.xml
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/pom.xml?rev=1557563&r1=1557562&r2=1557563&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/pom.xml (original)
+++ jena/branches/jena-fuseki-new-ui/pom.xml Sun Jan 12 17:25:10 2014
@@ -65,18 +65,16 @@
 
   <properties>
     <this.root>${project.artifactId}-${project.version}</this.root>
-    <!-- and the classifier is added using the id -->
     <!--
     <server.jar.name>fuseki-server-${project.version}</server.jar.name>
     -->
     <server.jar.name>${this.root}-server</server.jar.name>
-    <assembly.name>${this.root}</assembly.name>
-    <assembly.soh.name>${this.root}</assembly.soh.name>
     <assembly.zip.name>${this.root}</assembly.zip.name>
 
     <!-- Switch to webapp deployment first -->
     <!--<ver.jetty>9.1.0.v20131115</ver.jetty>-->
     <ver.jetty>8.1.11.v20130520</ver.jetty>
+    <ver.shiro>1.2.2</ver.shiro>
 
     <ver.commons-fileupload>1.2.2</ver.commons-fileupload>
   </properties>
@@ -131,6 +129,18 @@
     </dependency>
 
     <dependency>
+      <groupId>org.apache.shiro</groupId>
+      <artifactId>shiro-core</artifactId>
+      <version>${ver.shiro}</version>
+    </dependency>
+    
+    <dependency>
+      <groupId>org.apache.shiro</groupId>
+      <artifactId>shiro-web</artifactId>
+      <version>${ver.shiro}</version>
+    </dependency>
+
+    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <scope>test</scope>

Added: jena/branches/jena-fuseki-new-ui/shiro.ini
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/shiro.ini?rev=1557563&view=auto
==============================================================================
--- jena/branches/jena-fuseki-new-ui/shiro.ini (added)
+++ jena/branches/jena-fuseki-new-ui/shiro.ini Sun Jan 12 17:25:10 2014
@@ -0,0 +1,25 @@
+[main]
+# Development
+ssl.enabled = false 
+
+plainMatcher=org.apache.shiro.authc.credential.SimpleCredentialsMatcher
+
+#iniRealm=org.apache.shiro.realm.text.IniRealm 
+iniRealm.credentialsMatcher = $plainMatcher
+
+[users]
+# Implitly adds "iniRealm =  org.apache.shiro.realm.text.IniRealm"
+admin=pw
+
+[roles]
+
+[urls]
+## Control functions open to anyone
+/$/status=anon
+
+## and those restricted.
+/$/** = authcBasic,user[admin]
+
+# Everything else.
+/**=anon
+

Modified: jena/branches/jena-fuseki-new-ui/src-dev/dev/PROJECT.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src-dev/dev/PROJECT.java?rev=1557563&r1=1557562&r2=1557563&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src-dev/dev/PROJECT.java (original)
+++ jena/branches/jena-fuseki-new-ui/src-dev/dev/PROJECT.java Sun Jan 12 17:25:10 2014
@@ -21,7 +21,39 @@ package dev;
 public class PROJECT {
     // Naming 
     //  fuseki:Service is the endpoints = dataset
+    // DataService : 
     
+    // Shiro - log failures
+    
+    // DatasetRef -> DataService 
+    // DataService has "target"
+    
+    // DSG_Switchable does not work : need to access underlying DB by name.
+    //  ==>
+    //    [] a fuseki:Service, fuseki:Switchable ;
+    //        fuseki:name1 "" ;
+    //        fuseki:name2 "" ;
+    //        .
+    
+    // Assembler for switchable?
+    //   Still need to be able to contact each subDSG for update?
+    //   OR assume just active/offline?
+    
+    // DatasetGraphSwitchable(dsg1, dsg2) + assembler.
+    //   NB The need to query the right DSG 
+    
+    // Stats need to chase down links?
+    
+    // Chase down DatasetRef.getDataset and split into "for action" (follows link) and not
+    // Where do the stats go?
+    // If we want 
+    
+    /* Use of:
+<context-param>
+  <param-name>org.apache.jena.fuseki.config</param-name>
+  <param-value>{webapp}/WEB-INF/app.conf</param-value>
+</context-param>
+     */
     // TDB : insert a lock file?
     
     // Test for servlet context

Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/Fuseki.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/Fuseki.java?rev=1557563&r1=1557562&r2=1557563&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/Fuseki.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/Fuseki.java Sun Jan 12 17:25:10 2014
@@ -56,8 +56,8 @@ public class Fuseki {
     static public String    PagesStatic                  = "pages" ;
 
     /**
-     * A relative path to the location of <code>fuseki-properties.xml</code>
-     * file
+     * A relative resources path to the location of 
+     * <code>fuseki-properties.xml</code> file.
      */
     static private String   metadataLocation             = "org/apache/jena/fuseki/fuseki-properties.xml" ;
 
@@ -75,7 +75,7 @@ public class Fuseki {
     }
 
     /** Relative name of the directory for addition assembler descriptions */
-    static public final String        configDirName         = "configruation" ;
+    static public final String        configDirName         = "configuration" ;
     
     /** Relative name of the directory for keeping files of assembler descriptions */
     static public final String        systemDatabaseName    = "system" ;

Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/FusekiCmd.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/FusekiCmd.java?rev=1557563&r1=1557562&r2=1557563&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/FusekiCmd.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/FusekiCmd.java Sun Jan 12 17:25:10 2014
@@ -444,26 +444,6 @@ public class FusekiCmd extends CmdARQ {
     }
         
     private SPARQLServer initializeServer(ServerConfig serverConfig) {  
-//        ServerConfig serverConfig = new ServerConfig() ;
-//        // Default values
-//        serverConfig.port = 3030 ;
-//        serverConfig.mgtPort = 3031 ;
-//        serverConfig.pagesPort = serverConfig.port ;
-//        serverConfig.jettyConfigFile = null ;
-//        serverConfig.pages = Fuseki.PagesStatic ;
-//        serverConfig.enableCompression = true ;
-//        serverConfig.verboseLogging = false ;
-//        
-//        serverConfig.port = params.port ;
-//        serverConfig.pages = params.pages ;
-//        serverConfig.mgtPort = params.mgtPort ;
-//        serverConfig.pagesPort = params.port ;
-//        serverConfig.loopback = params.loopback ;
-//        serverConfig.enableCompression = params.enableCompression ;
-//        serverConfig.jettyConfigFile = params.jettyConfigFile ;
-//        serverConfig.authConfigFile = params.authConfigFile ;
-//        serverConfig.verboseLogging = (super.isVerbose() || super.isDebug()) ;
-
         SPARQLServer server = new SPARQLServer(serverConfig) ;
         return server ;
     }

Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/ActionCtl.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/ActionCtl.java?rev=1557563&r1=1557562&r2=1557563&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/ActionCtl.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/ActionCtl.java Sun Jan 12 17:25:10 2014
@@ -44,7 +44,7 @@ public abstract class ActionCtl extends 
         else {
             // This is a placeholder when creating new DatasetRefs
             // and also if addressing a container, not a dataset
-            dsRef = new DatasetRef(dsURI) ;
+            dsRef = DatasetRef.nullRef() ;
         }
         
         action.setControlRef(dsRef, dsURI) ;

Added: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/migrate/DatasetGraphSwitchable.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/migrate/DatasetGraphSwitchable.java?rev=1557563&view=auto
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/migrate/DatasetGraphSwitchable.java (added)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/migrate/DatasetGraphSwitchable.java Sun Jan 12 17:25:10 2014
@@ -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.fuseki.migrate;
+
+import java.util.concurrent.atomic.AtomicReference ;
+
+import org.apache.jena.fuseki.FusekiException ;
+
+import com.hp.hpl.jena.sparql.core.DatasetGraph ;
+import com.hp.hpl.jena.sparql.core.DatasetGraphWrapper ;
+
+public class DatasetGraphSwitchable extends DatasetGraphWrapper {
+    // **** Associated query engine factory - QueryEngineFactoryWrapper
+    // which executes on the unwrapped DSG.
+    
+    // *** Modify DatasetGraphWrapper to use a get().
+    
+    // Time to have DatasetGraph.getQueryDataset
+    private final DatasetGraph dsg1 ;
+    private final DatasetGraph dsg2 ;
+    private final AtomicReference<DatasetGraph> current = new AtomicReference<DatasetGraph>() ;
+    
+    // Change DatasetGraphWrapper to use protected get() 
+
+    public DatasetGraphSwitchable(DatasetGraph dsg1, DatasetGraph dsg2) {
+        super(null) ;
+        if ( dsg1 == null )
+            // Personally I think IllegalArgumentException is more
+            // appropriate, with NPE for unexpected use of null 
+            // but convention says .... 
+            throw new NullPointerException("First argument is null") ;
+        if ( dsg2 == null )
+            throw new NullPointerException("Second argument is null") ;
+        this.dsg1 = dsg1 ;
+        this.dsg2 = dsg2 ;
+        set(dsg1) ;
+    }
+
+    private void set(DatasetGraph dsg) { current.set(dsg) ; }
+    
+    /** Change to using the other dataset */ 
+    public void flip() {
+        // Don't worry about concurrent calls to flip()
+        // The outcome will be that one call wins (the actual second caller)
+        // and not corrupted data. Noet that get() is only called once per
+        // redirection. 
+        
+        // if dsg1 -- (expected, update)
+        if ( current.compareAndSet(dsg1, dsg2) )
+            return ;
+        // if dsg2 
+        if ( current.compareAndSet(dsg2, dsg1) )
+            return ;
+        throw new FusekiException() ;
+    }
+    
+    /** Current dataset of the switchable pair */
+    public final DatasetGraph getCurrent()  { return get() ; }
+    
+    /** Return dataset1 of the switchable pair */
+    public final DatasetGraph getDataset1() { return dsg1 ; }
+    
+    /** Return dataset2 of the switchable pair */
+    public final DatasetGraph getDataset2() { return dsg2 ; }
+    
+    /** Use dataset1 */
+    public final void useDataset1()         { set(dsg1) ; }
+
+    /** Use dataset2 */
+    public final void useDataset2()         { set(dsg2) ; }
+}
+

Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/DatasetRef.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/DatasetRef.java?rev=1557563&r1=1557562&r2=1557563&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/DatasetRef.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/DatasetRef.java Sun Jan 12 17:25:10 2014
@@ -19,13 +19,12 @@
 package org.apache.jena.fuseki.server;
 
 import static org.apache.jena.fuseki.server.DatasetStatus.* ;
-import static org.apache.jena.fuseki.server.DatasetStatus.CLOSING ;
-import static org.apache.jena.fuseki.server.DatasetStatus.UNINITIALIZED ;
 
 import java.util.* ;
 import java.util.concurrent.atomic.AtomicLong ;
 
 import org.apache.jena.fuseki.Fuseki ;
+import org.apache.jena.fuseki.FusekiException ;
 
 import com.hp.hpl.jena.query.ReadWrite ;
 import com.hp.hpl.jena.sparql.core.DatasetGraph ;
@@ -34,6 +33,8 @@ import com.hp.hpl.jena.tdb.transaction.D
 
 public class DatasetRef implements DatasetMXBean, Counters
 {
+    // Split into build and runtime thing?
+    
     public final String name ;
     
     // EITHER a link OR a dataset  
@@ -55,9 +56,43 @@ public class DatasetRef implements Datas
     private List<ServiceRef> serviceRefs        = new ArrayList<ServiceRef>() ;
     private volatile DatasetStatus state = UNINITIALIZED ;
     
-    public DatasetRef(String name) { this.name = DatasetRef.canonicalDatasetPath(name) ; }
+    public static DatasetRef nullRef() {
+        return new DatasetRef(null, null, null ) ; 
+    }
+
+    public static DatasetRef create(String name, DatasetGraph dataset) {
+        return new DatasetRef(name, dataset, null ) ; 
+    }
+
+    public static DatasetRef createLink(String name, DatasetRef other) {
+        return new DatasetRef(name, null, other) ; 
+    }
+
+    private DatasetRef(String name, DatasetGraph dsg, DatasetRef link)
+    { 
+        this.name = DatasetRef.canonicalDatasetPath(name) ;
+        this.dataset = dsg ;
+        this.link = link ;
+    }
+    
+    public boolean isActive() { return getState() == ACTIVE ; }
     
-    public boolean isActive() { return getState() == ACTIVE ; }  
+    /** Follow links */
+    public DatasetRef resolve() {
+        // Expect chain to be one, or at most two elements.
+        List<DatasetRef> x = new ArrayList<DatasetRef>() ;
+        DatasetRef here = this ;
+        x.add(here) ;
+        while ( here.link != null ) {
+            DatasetRef next = here.link ;
+            if ( x.contains(next) )
+                throw new FusekiException("Loop in DatasetRef links from: "+this.name) ; 
+            here = here.link ;
+        }
+            
+        return here ;
+    }
+     
     
     public DatasetStatus getStatus()                    { return state ; }
     public void setStatus(DatasetStatus newStatus)      { setState(newStatus) ; }
@@ -112,14 +147,11 @@ public class DatasetRef implements Datas
             endpoints.put(ep, srvRef) ;
     }
 
+    /** Get the dataset - this follows links */ 
     public DatasetGraph getDataset() {
         return dataset ;
     }
 
-    public void setDataset(DatasetGraph dataset) {
-        this.dataset = dataset ;
-    }
-
     public ServiceRef getServiceRef(String service) {
         if ( ! isActive() )
             Fuseki.serverLog.error("Not active: dataset = "+name) ;

Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java?rev=1557563&r1=1557562&r2=1557563&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/FusekiConfig.java Sun Jan 12 17:25:10 2014
@@ -73,15 +73,16 @@ public class FusekiConfig {
                 File f = new File(dir, name) ;
                 return f.isFile() ;
             }
-        } ;
+        } 
+    ;
 
     // ---- DatasetRef used where there isn't a real Dataset e.g. the SPARQL processor.
     
-    private static DatasetRef   noDataset = new DatasetRef("") ;
-
     private static DatasetGraph dummyDSG  = new DatasetGraphReadOnly(DatasetGraphFactory.createMemFixed()) ;
+
+    private static DatasetRef   noDataset = DatasetRef.create("", dummyDSG) ;
+
     static {
-        noDataset.setDataset(dummyDSG) ; 
         noDataset.query.endpoints.add(DEF.ServiceQuery) ;
         noDataset.query.endpoints.add(DEF.ServiceQueryAlt) ;
         noDataset.allowDatasetUpdate = false ;
@@ -107,8 +108,7 @@ public class FusekiConfig {
         if ( params.fusekiConfigFile != null )
             log.warn("Configuration file found while processing command line dataset configuration") ;
         
-        DatasetRef dbDesc = new DatasetRef(params.datasetPath) ;
-        dbDesc.setDataset(params.dsg) ;
+        DatasetRef dbDesc = DatasetRef.create(params.datasetPath, params.dsg) ;
         dbDesc.query.endpoints.add(DEF.ServiceQuery) ;
         dbDesc.query.endpoints.add(DEF.ServiceQueryAlt) ;
 
@@ -296,7 +296,16 @@ public class FusekiConfig {
         log.info("Service: " + nodeLabel(svc)) ;
         
         String name = ((Literal)getOne(svc, "fu:name")).getLexicalForm() ;
-        DatasetRef sDesc = new DatasetRef(name) ;
+        
+        Resource datasetDesc = ((Resource)getOne(svc, "fu:dataset")) ;
+
+        // Check if it is in the model.
+        if ( !datasetDesc.hasProperty(RDF.type) )
+            throw new FusekiConfigException("No rdf:type for dataset " + nodeLabel(datasetDesc)) ;
+
+        Dataset ds = (Dataset)Assembler.general.open(datasetDesc) ;
+        // If builder for DatasetRefs, put assembling dataset after services. 
+        DatasetRef sDesc = DatasetRef.create(name, ds.asDatasetGraph()) ;
         log.info("  name = " + sDesc.name) ;
 
         addServiceEP("query", sDesc.name, sDesc.query, svc, "fu:serviceQuery") ;
@@ -312,14 +321,6 @@ public class FusekiConfig {
             }
         }
 
-        Resource datasetDesc = ((Resource)getOne(svc, "fu:dataset")) ;
-
-        // Check if it is in the model.
-        if ( !datasetDesc.hasProperty(RDF.type) )
-            throw new FusekiConfigException("No rdf:type for dataset " + nodeLabel(datasetDesc)) ;
-
-        Dataset ds = (Dataset)Assembler.general.open(datasetDesc) ;
-        sDesc.setDataset(ds.asDatasetGraph()) ;
         return sDesc ;
 
     }

Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java?rev=1557563&r1=1557562&r2=1557563&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/server/SPARQLServer.java Sun Jan 12 17:25:10 2014
@@ -81,7 +81,7 @@ public class SPARQLServer {
         Fuseki.verboseLogging = config.verboseLogging ;
         boolean webappBuild = true ;
         
-        if ( webappBuild) 
+        if ( webappBuild ) 
             buildServerWebapp(serverConfig.jettyConfigFile, config.enableCompression) ;
         else {
             ServletContextHandler context = buildServer(serverConfig.jettyConfigFile, config.enableCompression) ;
@@ -89,6 +89,8 @@ public class SPARQLServer {
             FilterHolder f = new FilterHolder(new FusekiFilter()) ;
             EnumSet<DispatcherType> es = EnumSet.allOf(DispatcherType.class) ; 
             context.addFilter(f, "/*", es);
+            context.addEventListener(new FusekiServletContextListener());
+            // No security.
         }
         
         instance = this ;

Modified: jena/branches/jena-fuseki-new-ui/src/test/java/org/apache/jena/fuseki/TS_Fuseki.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/test/java/org/apache/jena/fuseki/TS_Fuseki.java?rev=1557563&r1=1557562&r2=1557563&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/test/java/org/apache/jena/fuseki/TS_Fuseki.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/test/java/org/apache/jena/fuseki/TS_Fuseki.java Sun Jan 12 17:25:10 2014
@@ -18,12 +18,10 @@
 
 package org.apache.jena.fuseki;
 
-import org.apache.http.client.HttpClient ;
 import org.apache.jena.atlas.logging.LogCtl ;
 import org.apache.jena.fuseki.http.TestDatasetAccessorHTTP ;
 import org.apache.jena.fuseki.http.TestDatasetGraphAccessorHTTP ;
 import org.apache.jena.fuseki.http.TestHttpOp ;
-import org.apache.jena.riot.web.HttpOp ;
 import org.junit.AfterClass ;
 import org.junit.BeforeClass ;
 import org.junit.runner.RunWith ;
@@ -44,21 +42,17 @@ import org.junit.runners.Suite ;
 })
 public class TS_Fuseki extends ServerTest
 {
-    // Use HttpOp caching of connections during testing to stop
-    // swamping  kernel socket management (seems to be most
-    // acute on Java 1.6)
-    
-    static HttpClient defaultHttpClient = HttpOp.getDefaultHttpClient() ;
-    // Used for all tests except auth tests.
-    static HttpClient globalCachingClient = HttpOp.createCachingHttpClient() ;
-    
-    @BeforeClass public static void beforeClassAbstract1() {
-        HttpOp.setDefaultHttpClient(globalCachingClient) ;
-    }
-    
-    @AfterClass public static void afterClassAbstract1() {
-        HttpOp.setDefaultHttpClient(defaultHttpClient) ;
-    }
+//    static HttpClient defaultHttpClient = HttpOp.getDefaultHttpClient() ;
+//    // Used for all tests except auth tests.
+//    static HttpClient globalCachingClient = HttpOp.createCachingHttpClient() ;
+//    
+//    @BeforeClass public static void beforeClassAbstract1() {
+//        HttpOp.setDefaultHttpClient(globalCachingClient) ;
+//    }
+//    
+//    @AfterClass public static void afterClassAbstract1() {
+//        HttpOp.setDefaultHttpClient(defaultHttpClient) ;
+//    }
     
     @BeforeClass static public void beforeClass() { LogCtl.disable(Fuseki.requestLogName) ; }
     @AfterClass static public void afterClass()   { LogCtl.setInfo(Fuseki.requestLogName) ;}

Modified: jena/branches/jena-fuseki-new-ui/src/test/java/org/apache/jena/fuseki/TestAdmin.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/test/java/org/apache/jena/fuseki/TestAdmin.java?rev=1557563&r1=1557562&r2=1557563&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/test/java/org/apache/jena/fuseki/TestAdmin.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/test/java/org/apache/jena/fuseki/TestAdmin.java Sun Jan 12 17:25:10 2014
@@ -196,12 +196,12 @@ public class TestAdmin extends BaseTest 
         }
     }
 
-    // ---- Active/dormant.
+    // ---- Active/Offline.
 
     @Test public void state_1() {
         // Add one
         addTestDataset() ;
-        execHttpPost(ServerTest.urlRoot+"$/"+opDatasets+"/"+dsTest+"?state=dormant", null) ;
+        execHttpPost(ServerTest.urlRoot+"$/"+opDatasets+"/"+dsTest+"?state=offline", null) ;
 
         checkExistsNotActive(dsTest); 
         
@@ -213,7 +213,7 @@ public class TestAdmin extends BaseTest 
     
     @Test public void state_2() {
         addTestDataset() ;
-        execHttpPost(ServerTest.urlRoot+"$/"+opDatasets+"/"+dsTest+"?state=dormant", null) ;
+        execHttpPost(ServerTest.urlRoot+"$/"+opDatasets+"/"+dsTest+"?state=offline", null) ;
         deleteDataset(dsTest) ;
         checkNotThere(dsTest) ;
     }
@@ -221,7 +221,7 @@ public class TestAdmin extends BaseTest 
     @Test public void state_3() {
         addTestDataset() ;
         try {
-            execHttpPost(ServerTest.urlRoot+"$/"+opDatasets+"/DoesNotExist?state=dormant", null) ;
+            execHttpPost(ServerTest.urlRoot+"$/"+opDatasets+"/DoesNotExist?state=offline", null) ;
         } catch (HttpException ex) { assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()) ; }
         deleteDataset(dsTest) ;
     }
@@ -343,7 +343,7 @@ public class TestAdmin extends BaseTest 
         GET     /$/datasets/
         DELETE  /$/datasets/*{name}*    
         GET     /$/datasets/*{name}*    
-        POST    /$/datasets/*{name}*?state=dormant  
+        POST    /$/datasets/*{name}*?state=offline  
         POST    /$/datasets/*{name}*?state=active   
         POST    /$/backup/*{name}*  
         GET     /$/server   

Modified: jena/branches/jena-fuseki-new-ui/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/test/resources/log4j.properties?rev=1557563&r1=1557562&r2=1557563&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/test/resources/log4j.properties (original)
+++ jena/branches/jena-fuseki-new-ui/src/test/resources/log4j.properties Sun Jan 12 17:25:10 2014
@@ -2,7 +2,7 @@ log4j.rootLogger=INFO,stdlog
 
 log4j.appender.stdlog=org.apache.log4j.ConsoleAppender
 log4j.appender.stdlog.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdlog.layout.ConversionPattern=%d{HH:mm:ss} %-5p %-25c{1} :: %m%n
+log4j.appender.stdlog.layout.ConversionPattern=%d{HH:mm:ss} %-5p %-15c{1} :: %m%n
 
 # Jena Dependency log levels
 log4j.logger.com.hp.hpl.jena.arq.info=INFO
@@ -15,6 +15,10 @@ log4j.logger.org.apache.jena.riot=INFO
 log4j.logger.org.eclipse.jetty=FATAL
 
 # Fuseki
-log4j.logger.org.apache.jena.fuseki.Server=WARN
-log4j.logger.org.apache.jena.fuseki.Fuseki=WARN
-log4j.logger.org.apache.jena.fuseki=WARN
\ No newline at end of file
+## log4j.logger.org.apache.jena.fuseki.Server=WARN
+## log4j.logger.org.apache.jena.fuseki.Fuseki=WARN
+## log4j.logger.org.apache.jena.fuseki=WARN
+
+log4j.logger.org.apache.jena.fuseki.Server=INFO
+log4j.logger.org.apache.jena.fuseki.Fuseki=INFO
+log4j.logger.org.apache.jena.fuseki=INFO
\ No newline at end of file

Modified: jena/branches/jena-fuseki-new-ui/war-web.xml
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/war-web.xml?rev=1557563&r1=1557562&r2=1557563&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/war-web.xml (original)
+++ jena/branches/jena-fuseki-new-ui/war-web.xml Sun Jan 12 17:25:10 2014
@@ -7,6 +7,33 @@
 
   <display-name>Apache Jena Fuseki Server</display-name>
 
+  <!-- Apache Shiro setup -->
+  <!-- First filter -->
+  <listener>
+    <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
+  </listener>
+
+  <filter>
+    <filter-name>ShiroFilter</filter-name>
+    <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
+  </filter>
+
+  <filter-mapping>
+    <filter-name>ShiroFilter</filter-name>
+    <url-pattern>/*</url-pattern>
+    <dispatcher>REQUEST</dispatcher>
+    <dispatcher>FORWARD</dispatcher>
+    <dispatcher>INCLUDE</dispatcher>
+    <dispatcher>ERROR</dispatcher>
+  </filter-mapping>
+
+  <context-param>
+    <param-name>shiroConfigLocations</param-name>
+    <param-value>file:shiro.ini</param-value>
+  </context-param>
+
+  <!-- Apache Jena Fuseki setup -->
+
   <listener>
     <listener-class>org.apache.jena.fuseki.server.FusekiServletContextListener</listener-class>
   </listener>