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());


Reply via email to