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>