Author: reto
Date: Tue Jun 28 10:03:20 2011
New Revision: 1140507
URL: http://svn.apache.org/viewvc?rev=1140507&view=rev
Log:
CLEREZZA-576: added front-end to retrieve backups and to restore froma backup
file
Added:
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/BackupPermission.java
- copied, changed from r1135953,
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/GraphManagementAppPermission.java
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/PlatformRestorer.java
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/RestorePermission.java
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/resources/org/apache/clerezza/rdf/web/core/backup-management.ssp
Modified:
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/Backup.java
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/Restorer.java
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/test/java/org/apache/clerezza/rdf/web/core/BackupAndRestoreTest.java
Modified:
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/Backup.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/Backup.java?rev=1140507&r1=1140506&r2=1140507&view=diff
==============================================================================
---
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/Backup.java
(original)
+++
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/Backup.java
Tue Jun 28 10:03:20 2011
@@ -18,39 +18,82 @@
*/
package org.apache.clerezza.rdf.web.core;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
+import org.apache.clerezza.platform.Constants;
+import org.apache.clerezza.platform.dashboard.GlobalMenuItem;
+import org.apache.clerezza.platform.dashboard.GlobalMenuItemsProvider;
+import
org.apache.clerezza.platform.typerendering.scalaserverpages.ScalaServerPagesService;
+import org.apache.clerezza.rdf.core.BNode;
+import org.apache.clerezza.rdf.core.MGraph;
+import org.apache.clerezza.rdf.core.access.security.TcPermission;
+import org.apache.clerezza.rdf.core.impl.SimpleMGraph;
+import org.apache.clerezza.rdf.ontologies.RDF;
+import org.apache.clerezza.rdf.utils.GraphNode;
+import org.apache.clerezza.rdf.web.ontologies.BACKUP;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.Service;
+import org.osgi.framework.ServiceRegistration;
+import org.osgi.service.component.ComponentContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.apache.clerezza.rdf.ontologies.PLATFORM;
+
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;
import javax.ws.rs.core.Response.Status;
-import org.apache.felix.scr.annotations.Component;
-import org.apache.felix.scr.annotations.Property;
-import org.apache.felix.scr.annotations.Service;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.net.URL;
+import java.security.AccessControlException;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Set;
/**
* This JAX-RS resource provides a method to retrieve a zip file containing
* all triple collections that the use may access. The triple collection are
* serialized in N-Triples format. The URI path of this resource is
* "/admin/backup".
- *
- * @author hasan
+ *
+ * This class adds a global menu-item for users that can read the system graph
+ * (as there's currently no dedicated backup-permission).
+ *
+ * @author hasan, reto
*/
@Component
-@Service(Object.class)
-@Property(name="javax.ws.rs", boolValue=true)
+@Service({Object.class, GlobalMenuItemsProvider.class})
+@Property(name = "javax.ws.rs", boolValue = true)
@Path("/admin/backup")
-public class Backup {
-
-
+public class Backup implements GlobalMenuItemsProvider {
final Logger logger = LoggerFactory.getLogger(Backup.class);
+ @Reference
+ private ScalaServerPagesService scalaServerPagesService;
+ private Set<ServiceRegistration> serviceRegistrations = new
HashSet<ServiceRegistration>();
+ /**
+ * The activate method is called when SCR activates the component
configuration.
+ *
+ * @param componentContext
+ */
+ protected void activate(ComponentContext componentContext) {
+ URL templateURL =
getClass().getResource("backup-management.ssp");
+
serviceRegistrations.add(scalaServerPagesService.registerScalaServerPage(templateURL,
BACKUP.BackupAdminPage, "naked",
+ MediaType.APPLICATION_XHTML_XML_TYPE));
+ }
+
+ protected void deactivate(ComponentContext context) {
+ for (ServiceRegistration r : serviceRegistrations) {
+ r.unregister();
+ }
+ }
/**
* Get a zipped file containing all triple collections which the
@@ -62,25 +105,57 @@ public class Backup {
* names is available as well in the archive as a text file named
* triplecollections.nt.
*
- * @return
- * a response that will cause the creation of a zipped file
+ * @return a response that will cause the creation of a zipped file
*/
@GET
@Path("download")
@Produces("application/zip")
public Response download() {
+ AccessController.checkPermission(new BackupPermission());
+ return AccessController.doPrivileged(new
PrivilegedAction<Response>() {
+
+ @Override
+ public Response run() {
+ ResponseBuilder responseBuilder =
Response.status(Status.OK).
+ entity(Backup.this);
+ responseBuilder.header("Content-Disposition",
+ "attachment; filename=backup" +
getCurrentDate() + ".zip");
+ return responseBuilder.build();
+ }
+ });
- ResponseBuilder responseBuilder = Response.status(Status.OK).
- entity(this);
- responseBuilder.header("Content-Disposition",
- "attachment; filename=backup" +
getCurrentDate() +".zip");
- return responseBuilder.build();
}
-
- private String getCurrentDate(){
+
+ @GET
+ public GraphNode overviewPage() {
+ MGraph resultGraph = new SimpleMGraph();
+ GraphNode result = new GraphNode(new BNode(), resultGraph);
+ result.addProperty(RDF.type, BACKUP.BackupAdminPage);
+ result.addProperty(RDF.type, PLATFORM.HeadedPage);
+ return result;
+ }
+
+ private String getCurrentDate() {
DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
- Date date = new Date();
- return dateFormat.format(date);
+ Date date = new Date();
+ return dateFormat.format(date);
}
+ @Override
+ public Set<GlobalMenuItem> getMenuItems() {
+ //need backup or restore permission for the menu item to be
shown
+ Set<GlobalMenuItem> result = new HashSet<GlobalMenuItem>();
+ try {
+ AccessController.checkPermission(new
BackupPermission());
+ } catch (AccessControlException e) {
+ try {
+ AccessController.checkPermission(new
RestorePermission());
+ } catch (AccessControlException e1) {
+ return result;
+ }
+ }
+ result.add(new GlobalMenuItem("/admin/backup",
+ "BCK", "Backup and Restore", 5,
"Administration"));
+ return result;
+ }
}
Copied:
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/BackupPermission.java
(from r1135953,
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/GraphManagementAppPermission.java)
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/BackupPermission.java?p2=incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/BackupPermission.java&p1=incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/GraphManagementAppPermission.java&r1=1135953&r2=1140507&rev=1140507&view=diff
==============================================================================
---
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/GraphManagementAppPermission.java
(original)
+++
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/BackupPermission.java
Tue Jun 28 10:03:20 2011
@@ -18,29 +18,29 @@
*/
package org.apache.clerezza.rdf.web.core;
-import java.security.Permission;
import org.apache.clerezza.permissiondescriptions.PermissionInfo;
+import java.security.Permission;
+
/**
- * Permission to use the Graph-Management page. Nothe that the user
- * additioonally needs permssion on the TripleCollections they manipulate.
+ * Permission to retrieve a backup copy of all graphs provided by TcManager
*
* @author reto
*/
-@PermissionInfo(value="Graph Management Access Permission",
description="Grants access " +
- "to the Graph Management page")
-public class GraphManagementAppPermission extends Permission {
+@PermissionInfo(value="Backup Permission", description="Permission " +
+ "to retrieve a backup of all Triple Collections")
+public class BackupPermission extends Permission {
- public GraphManagementAppPermission() {
+ public BackupPermission() {
super("Graph Management permission");
}
/**
- *
+ *
* @param target ignored
* @param action ignored
*/
- public GraphManagementAppPermission(String target, String actions) {
+ public BackupPermission(String target, String actions) {
super("Graph Management permission");
}
@@ -56,7 +56,7 @@ public class GraphManagementAppPermissio
@Override
public int hashCode() {
- return 77985;
+ return 77988;
}
@Override
Added:
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/PlatformRestorer.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/PlatformRestorer.java?rev=1140507&view=auto
==============================================================================
---
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/PlatformRestorer.java
(added)
+++
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/PlatformRestorer.java
Tue Jun 28 10:03:20 2011
@@ -0,0 +1,95 @@
+/*
+ * 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.clerezza.rdf.web.core;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.core.Context;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.ResponseBuilder;
+import javax.ws.rs.core.UriInfo;
+import org.apache.clerezza.jaxrs.utils.RedirectUtil;
+import org.apache.clerezza.jaxrs.utils.form.FormFile;
+import org.apache.clerezza.jaxrs.utils.form.MultiPartBody;
+import org.apache.clerezza.rdf.core.access.TcManager;
+import org.apache.felix.scr.annotations.Component;
+import org.apache.felix.scr.annotations.Property;
+import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.Service;
+
+/**
+ * A service to restore the triple collections of a clerezza platform instance
+ *
+ * @author reto
+ */
+@Component
+@Service({Object.class, PlatformRestorer.class})
+@Property(name = "javax.ws.rs", boolValue = true)
+@Path("/admin/backup/restore")
+public class PlatformRestorer {
+
+ @Reference
+ private Restorer restorer;
+
+ @Reference
+ private TcManager tcManager;
+
+ /**
+ * Restores the triple collection of TcManager from a backup
+ *
+ * @param backupData the backup data
+ */
+ public void restore(InputStream backupData) throws IOException {
+ restorer.restore(backupData, tcManager);
+ }
+
+ @POST
+ public Response restore(MultiPartBody body, @Context final UriInfo
uriInfo)
+ throws Throwable {
+ AccessController.checkPermission(new RestorePermission());
+ FormFile[] files = body.getFormFileParameterValues("file");
+ if (files.length != 1) {
+ throw new RuntimeException("Must submit exactly one
file");
+ }
+ final FormFile file = files[0];
+ try {
+ return AccessController.doPrivileged(new
PrivilegedExceptionAction<Response>() {
+
+ @Override
+ public Response run() throws IOException {
+ restore(new
ByteArrayInputStream(file.getContent()));
+ return
RedirectUtil.createSeeOtherResponse("/admin/backup", uriInfo);
+ }
+ });
+ } catch (PrivilegedActionException ex) {
+ throw ex.getCause();
+ }
+ }
+
+}
Added:
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/RestorePermission.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/RestorePermission.java?rev=1140507&view=auto
==============================================================================
---
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/RestorePermission.java
(added)
+++
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/RestorePermission.java
Tue Jun 28 10:03:20 2011
@@ -0,0 +1,69 @@
+/*
+ * 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.clerezza.rdf.web.core;
+
+import org.apache.clerezza.permissiondescriptions.PermissionInfo;
+
+import java.security.Permission;
+
+/**
+ * Permission to restore all graphs provided by TcManager from a backup copy.
+ *
+ * This a very powerfull permission as it allows to write to all graphs.
+ *
+ * @author reto
+ */
+@PermissionInfo(value="Restore Permission", description="Permission " +
+ "to replace all triple collections with the contents of backup file")
+public class RestorePermission extends Permission {
+
+
+ public RestorePermission() {
+ super("Restore permission");
+ }
+ /**
+ *
+ * @param target ignored
+ * @param action ignored
+ */
+ public RestorePermission(String target, String actions) {
+ super("Restore permission");
+ }
+
+ @Override
+ public boolean implies(Permission permission) {
+ return equals(permission);
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return getClass().equals(obj.getClass());
+ }
+
+ @Override
+ public int hashCode() {
+ return 77965;
+ }
+
+ @Override
+ public String getActions() {
+ return "";
+ }
+
+}
Modified:
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/Restorer.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/Restorer.java?rev=1140507&r1=1140506&r2=1140507&view=diff
==============================================================================
---
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/Restorer.java
(original)
+++
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/java/org/apache/clerezza/rdf/web/core/Restorer.java
Tue Jun 28 10:03:20 2011
@@ -31,32 +31,42 @@ import java.util.zip.ZipInputStream;
import org.apache.clerezza.rdf.core.Graph;
import org.apache.clerezza.rdf.core.Literal;
import org.apache.clerezza.rdf.core.LiteralFactory;
+import org.apache.clerezza.rdf.core.MGraph;
import org.apache.clerezza.rdf.core.Triple;
import org.apache.clerezza.rdf.core.TripleCollection;
import org.apache.clerezza.rdf.core.UriRef;
+import org.apache.clerezza.rdf.core.access.NoSuchEntityException;
import org.apache.clerezza.rdf.core.access.TcProvider;
import org.apache.clerezza.rdf.core.serializedform.Parser;
import org.apache.clerezza.rdf.core.serializedform.SupportedFormat;
import org.apache.clerezza.rdf.ontologies.RDF;
import org.apache.clerezza.rdf.utils.GraphNode;
import org.apache.clerezza.rdf.web.ontologies.BACKUP;
+import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Reference;
+import org.apache.felix.scr.annotations.Service;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
- * A utility to restore the triple collection
+ * A service to restore the triple collection
*
* @author reto
*/
+@Component
+@Service(Restorer.class)
public class Restorer {
+ private final static Logger log =
LoggerFactory.getLogger(Restorer.class);
+
@Reference
Parser parser;
/**
- *
+ * Restores triple-collections from a backup to a specified TcProvider
*
* @param backupData the bytes of a backup zip
- * @param target
+ * @param target the TcProvider into which to restore the data
*/
public void restore(InputStream backupData, TcProvider target) throws
IOException {
ZipInputStream compressedTcs = new ZipInputStream(backupData);
@@ -100,8 +110,29 @@ public class Restorer {
GraphNode graphGN = new
GraphNode(mGraphIterator.next().getSubject(), metaGraph);
String fileName =
graphGN.getLiterals(BACKUP.file).next().getLexicalForm();
TripleCollection extracted =
extractedTc.get(fileName);
-
target.deleteTripleCollection((UriRef)graphGN.getNode());
-
target.createMGraph((UriRef)graphGN.getNode()).addAll(extracted);
+
+ MGraph mGraph;
+ boolean created = false;
+ try {
+ mGraph =
target.getMGraph((UriRef)graphGN.getNode());
+ try {
+ mGraph.clear();
+ } catch (UnsupportedOperationException
ex) {
+ log.warn("could not restore
"+graphGN.getNode()+" as the exsting triple "
+ + "collection
could not be cleared");
+ continue;
+ }
+ } catch (NoSuchEntityException ex) {
+ mGraph =
target.createMGraph((UriRef)graphGN.getNode());
+ created = true;
+ }
+ try {
+ mGraph.addAll(extracted);
+ } catch (Exception ex) {
+ String actionDone = created ? "created"
: "cleared";
+ log.error("after the mgraph
"+graphGN.getNode()+" could successfully be "+actionDone
+ + ", an exception
occured adding the data", ex);
+ }
}
}
{
@@ -110,7 +141,15 @@ public class Restorer {
GraphNode graphGN = new
GraphNode(graphIterator.next().getSubject(), metaGraph);
String fileName =
graphGN.getLiterals(BACKUP.file).next().getLexicalForm();
TripleCollection extracted =
extractedTc.get(fileName);
-
target.deleteTripleCollection((UriRef)graphGN.getNode());
+ try {
+
target.deleteTripleCollection((UriRef)graphGN.getNode());
+ } catch (UnsupportedOperationException ex) {
+ log.warn("could not restore
"+graphGN.getNode()+" as the exsting triple "
+ + "collection could not
be deleted");
+ continue;
+ } catch (NoSuchEntityException ex) {
+ log.debug("could not remove
"+graphGN.getNode()+", no such entity");
+ }
target.createGraph((UriRef)graphGN.getNode(),
extracted);
}
}
Added:
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/resources/org/apache/clerezza/rdf/web/core/backup-management.ssp
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/resources/org/apache/clerezza/rdf/web/core/backup-management.ssp?rev=1140507&view=auto
==============================================================================
---
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/resources/org/apache/clerezza/rdf/web/core/backup-management.ssp
(added)
+++
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/main/resources/org/apache/clerezza/rdf/web/core/backup-management.ssp
Tue Jun 28 10:03:20 2011
@@ -0,0 +1,16 @@
+resultDocModifier.setTitle("Backup and restore");
+
+<div class="tx-content">
+ <p>
+ <form method="get" action="/admin/backup/download">
+ Retrieve a backup of all graphs. WARNING: while creating the backup parts
of clerezza migh be irresponsive.
+ <input type="submit" value="Retrieve Backup" />
+ </form>
+ </p>
+ <p>
+ <form method="post" action="/admin/backup/restore"
enctype="multipart/form-data">
+ <input type="file" name="file" />
+ <input type="submit" value="Restore from backup" />
+ </form>
+ </p>
+</div>
\ No newline at end of file
Modified:
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/test/java/org/apache/clerezza/rdf/web/core/BackupAndRestoreTest.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/test/java/org/apache/clerezza/rdf/web/core/BackupAndRestoreTest.java?rev=1140507&r1=1140506&r2=1140507&view=diff
==============================================================================
---
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/test/java/org/apache/clerezza/rdf/web/core/BackupAndRestoreTest.java
(original)
+++
incubator/clerezza/trunk/parent/rdf.web/rdf.web.core/src/test/java/org/apache/clerezza/rdf/web/core/BackupAndRestoreTest.java
Tue Jun 28 10:03:20 2011
@@ -157,10 +157,10 @@ public class BackupAndRestoreTest {
public void restoreFromBackup() throws IOException {
byte[] backupData = backup.createBackup();
TcProvider tcProvider = EasyMock.createMock(TcProvider.class);
- tcProvider.deleteTripleCollection(testMGraphUri0);
-
EasyMock.expect(tcProvider.createMGraph(testMGraphUri0)).andReturn(new
SimpleMGraph());
- tcProvider.deleteTripleCollection(testMGraphUri1);
-
EasyMock.expect(tcProvider.createMGraph(testMGraphUri1)).andReturn(new
SimpleMGraph());
+ EasyMock.expect(tcProvider.getMGraph(testMGraphUri0)).andReturn(
+ EasyMock.createNiceMock(MGraph.class));
+ EasyMock.expect(tcProvider.getMGraph(testMGraphUri1)).andReturn(
+ EasyMock.createNiceMock(MGraph.class));
tcProvider.deleteTripleCollection(testGraphUriA);
EasyMock.expect(tcProvider.createGraph(EasyMock.eq(testGraphUriA),
EasyMock.notNull(TripleCollection.class))).andReturn(new
SimpleMGraph().getGraph());