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/12/21 22:55:03 UTC
svn commit: r1552952 - in /jena/branches/jena-fuseki-new-ui: pages/admin/
src/main/java/org/apache/jena/fuseki/mgt/
src/main/java/org/apache/jena/fuseki/servlets/
src/test/java/org/apache/jena/fuseki/
Author: andy
Date: Sat Dec 21 21:55:03 2013
New Revision: 1552952
URL: http://svn.apache.org/r1552952
Log:
Test - dataset creation by server template.
Modified:
jena/branches/jena-fuseki-new-ui/pages/admin/data-management.html
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/ActionDatasets.java
jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/Upload.java
jena/branches/jena-fuseki-new-ui/src/test/java/org/apache/jena/fuseki/TestAdmin.java
Modified: jena/branches/jena-fuseki-new-ui/pages/admin/data-management.html
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/pages/admin/data-management.html?rev=1552952&r1=1552951&r2=1552952&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/pages/admin/data-management.html (original)
+++ jena/branches/jena-fuseki-new-ui/pages/admin/data-management.html Sat Dec 21 21:55:03 2013
@@ -84,7 +84,7 @@
<div class="form-group">
<label for="inputDatabase">Database Name</label>
- <div>
+ <div style="width: 300px">
<input type="text" class="form-control" name="dbName" id="dbName" placeholder="Database name">
</div>
</div>
@@ -92,21 +92,29 @@
<div class="checkbox">
<label>
<input type="radio" name="dbType" value="mem" checked>
- In-Memory
+ In-Memory (restored on restart but changes lost).
</label>
</div>
<div class="checkbox">
<label>
<input type="radio" name="dbType" value="tdb">
- Persistent
+ Persistent (changes persist across system restarts)
</label>
</div>
<button type="submit" class="btn btn-default">Create</button>
</form>
+ <hr/>
+ <h2>Create database (from Assembler Description)</h2>
+ <!-- From assembler -->
+ <form action="/$/datasets" enctype="multipart/form-data" method="post" role="form">
+ <div class="form-group">
+ Database assembler description file: <input type="file" name="UNSET" size="40"><br/>
+ </div>
+ <button type="submit" class="btn btn-default">Create</button>
+ </form>
</div>
-
<hr/>
<!--
Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/ActionDatasets.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/ActionDatasets.java?rev=1552952&r1=1552951&r2=1552952&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/ActionDatasets.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/mgt/ActionDatasets.java Sat Dec 21 21:55:03 2013
@@ -44,6 +44,7 @@ import org.apache.jena.fuseki.server.* ;
import org.apache.jena.fuseki.servlets.ActionLib ;
import org.apache.jena.fuseki.servlets.HttpAction ;
import org.apache.jena.fuseki.servlets.ServletOps ;
+import org.apache.jena.fuseki.servlets.Upload ;
import org.apache.jena.riot.* ;
import org.apache.jena.riot.lang.LangRIOT ;
import org.apache.jena.riot.system.ErrorHandler ;
@@ -69,11 +70,6 @@ import com.hp.hpl.jena.update.UpdateRequ
import com.hp.hpl.jena.util.FileUtils ;
public class ActionDatasets extends ActionCtl {
- // XXX ActionContainerItem
-
- // XXX DatasetRef to include UUID : see execPostDataset
- // DatasetRef ref = processService(s) ;
- // Needs to do the state.
private static Dataset system = SystemState.getDataset() ;
private static DatasetGraphTransaction systemDSG = SystemState.getDatasetGraph() ;
@@ -165,7 +161,8 @@ public class ActionDatasets extends Acti
}
// XXX Split contained and per-dataset operations into separate servlets?
-
+ // XXX ActionContainerItem
+
// ---- POST
// POST /$/datasets/ -- to the container -> register new dataset
@@ -218,6 +215,8 @@ public class ActionDatasets extends Acti
if ( WebContent.isHtmlForm(ct) )
assemblerFromForm(action, dest) ;
+ else if ( WebContent.isMultiPartForm(ct) )
+ assemblerFromUpload(action, dest) ;
else
assemblerFromBody(action, dest) ;
@@ -244,12 +243,10 @@ public class ActionDatasets extends Acti
String datasetName = object.getLexicalForm() ;
String datasetPath = DatasetRef.canocialDatasetPath(datasetName) ;
action.log.info(format("[%d] Create database : name = %s", action.id, datasetPath)) ;
-
- if ( DatasetRegistry.get().isRegistered(datasetPath) ) {
+ if ( DatasetRegistry.get().isRegistered(datasetPath) )
// And abort.
ServletOps.error(HttpSC.CONFLICT_409, "Name already registered "+datasetName) ;
- }
model.removeAll(null, pStatus, null) ;
model.add(subject, pStatus, FusekiVocab.stateActive) ;
@@ -257,10 +254,15 @@ public class ActionDatasets extends Acti
// Need to be in Resource space at this point.
DatasetRef dsRef = FusekiConfig.processService(subject) ;
X_Config.registerDataset(datasetPath, dsRef) ;
+ action.getResponse().setContentType(WebContent.contentTypeTextPlain);
+ ServletOutputStream out = action.getResponse().getOutputStream() ;
+ out.println("That went well") ;
+ ServletOps.success(action) ;
system.commit();
committed = true ;
- ServletOps.success(action) ;
- } finally {
+
+ } catch (IOException ex) { IO.exception(ex); }
+ finally {
if ( ! committed ) system.abort() ;
system.end() ;
}
@@ -300,6 +302,10 @@ public class ActionDatasets extends Acti
// ---- DELETE
+ private void assemblerFromUpload(HttpAction action, StreamRDF dest) {
+ Upload.fileUploadWorker(action, dest, true);
+ }
+
protected void execDelete(HttpAction action) {
// Does not exist?
String name = action.dsRef.name ;
Modified: jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/Upload.java
URL: http://svn.apache.org/viewvc/jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/Upload.java?rev=1552952&r1=1552951&r2=1552952&view=diff
==============================================================================
--- jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/Upload.java (original)
+++ jena/branches/jena-fuseki-new-ui/src/main/java/org/apache/jena/fuseki/servlets/Upload.java Sat Dec 21 21:55:03 2013
@@ -39,7 +39,7 @@ public class Upload {
public static void incomingData(HttpAction action, StreamRDF dest, boolean isGraph) {
ContentType ct = FusekiLib.getContentType(action) ;
- if ( WebContent.contentTypeMultiFormData.equalsIgnoreCase(ct.getContentType()) ) {
+ if ( WebContent.contentTypeMultipartFormData.equalsIgnoreCase(ct.getContentType()) ) {
fileUploadWorker(action, dest, isGraph) ;
return ;
}
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=1552952&r1=1552951&r2=1552952&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 Sat Dec 21 21:55:03 2013
@@ -29,9 +29,14 @@ import static org.apache.jena.riot.web.H
import java.io.File ;
import java.io.IOException ;
+import java.util.ArrayList ;
+import java.util.List ;
import org.apache.http.HttpEntity ;
+import org.apache.http.NameValuePair ;
+import org.apache.http.client.entity.UrlEncodedFormEntity ;
import org.apache.http.entity.FileEntity ;
+import org.apache.http.message.BasicNameValuePair ;
import org.apache.jena.atlas.io.IO ;
import org.apache.jena.atlas.json.JSON ;
import org.apache.jena.atlas.json.JsonArray ;
@@ -52,8 +57,6 @@ public class TestAdmin extends BaseTest
// Name of the dataset in the assembler file.
static String dsTest = "test-ds2" ;
-
-
@BeforeClass
public static void beforeClass() {
@@ -99,12 +102,12 @@ public class TestAdmin extends BaseTest
}
// Specific dataset
- @Test public void list_datasets_5() {
+ @Test public void list_datasets_3() {
checkExists(datasetPath) ;
}
// Specific dataset
- @Test public void list_datasets_6() {
+ @Test public void list_datasets_4() {
try {
TypedInputStream in = execHttpGet(ServerTest.urlRoot+"$/"+opDatasets+"/does-not-exist") ;
} catch (HttpException ex) {
@@ -113,7 +116,7 @@ public class TestAdmin extends BaseTest
}
// Specific dataset
- @Test public void list_datasets_7() {
+ @Test public void list_datasets_5() {
JsonValue v = execGetJSON(urlRoot+"$/"+opDatasets+datasetPath) ;
checkJsonDatasetsOne(v.getAsObject()) ;
}
@@ -127,8 +130,8 @@ public class TestAdmin extends BaseTest
execHttpPost(ServerTest.urlRoot+"$/"+opDatasets, e) ;
}
- private static void deleteTestDataset() {
- execHttpDelete(ServerTest.urlRoot+"$/"+opDatasets+"/"+dsTest) ;
+ private static void deleteDataset(String name) {
+ execHttpDelete(ServerTest.urlRoot+"$/"+opDatasets+"/"+name) ;
}
// Specific dataset
@@ -141,7 +144,7 @@ public class TestAdmin extends BaseTest
checkExists(dsTest) ;
// Remove it.
- deleteTestDataset() ;
+ deleteDataset(dsTest) ;
checkNotThere(dsTest) ;
}
@@ -166,6 +169,21 @@ public class TestAdmin extends BaseTest
}
// Check exists.
checkExists(dsTest) ;
+ deleteDataset(dsTest) ;
+ }
+
+ @Test public void add_dataset_3() throws Exception {
+ String name = "MEMTEST" ;
+ //String args = "dbType=mem&dbName="+name ;
+
+ List<NameValuePair> args = new ArrayList<NameValuePair>() ;
+ args.add(new BasicNameValuePair("dbType", "mem")) ;
+ args.add(new BasicNameValuePair("dbName", name)) ;
+
+ HttpEntity e = new UrlEncodedFormEntity(args) ;
+ execHttpPost(ServerTest.urlRoot+"$/"+opDatasets, e) ;
+ checkExists(name) ;
+ deleteDataset(name) ;
}
// ---- Active/dormant.
@@ -180,13 +198,13 @@ public class TestAdmin extends BaseTest
execHttpPost(ServerTest.urlRoot+"$/"+opDatasets+"/"+dsTest+"?state=active", null) ;
checkExists(dsTest) ;
- deleteTestDataset() ;
+ deleteDataset(dsTest) ;
}
@Test public void state_2() {
addTestDataset() ;
execHttpPost(ServerTest.urlRoot+"$/"+opDatasets+"/"+dsTest+"?state=dormant", null) ;
- deleteTestDataset() ;
+ deleteDataset(dsTest) ;
checkNotThere(dsTest) ;
}
@@ -195,6 +213,7 @@ public class TestAdmin extends BaseTest
try {
execHttpPost(ServerTest.urlRoot+"$/"+opDatasets+"/DoesNotExist?state=dormant", null) ;
} catch (HttpException ex) { assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()) ; }
+ deleteDataset(dsTest) ;
}
// ---- Backup
@@ -209,15 +228,19 @@ public class TestAdmin extends BaseTest
}
@Test public void stats_2() {
+ addTestDataset() ;
JsonValue v = execGetJSON(urlRoot+"$/"+opStats+datasetPath) ;
checkJsonStatsAll(v);
+ deleteDataset(dsTest) ;
}
@Test public void stats_3() {
+ addTestDataset() ;
try {
JsonValue v = execGetJSON(urlRoot+"$/"+opStats+"/DoesNotExist") ;
checkJsonStatsAll(v);
} catch (HttpException ex) { assertEquals(HttpSC.NOT_FOUND_404, ex.getResponseCode()); }
+ deleteDataset(dsTest) ;
}
// Auxilary