code: public void run()
     {
        notifyListeners();
  
        try
        {
           repository.getWorkspaceContainer(workspaceName).setState(ManageableRepository.SUSPENDED);
  
           List<Backupable> backupableComponents =
              repository.getWorkspaceContainer(workspaceName).getComponentInstancesOfType(Backupable.class);
  
           // backup all components
           for (Backupable component : backupableComponents)
           {
              component.backup(new File(getStorageURL().getFile()));
           }
        }
        catch (BackupException e)
        {
           LOG.error("Full backup failed " + getStorageURL().getPath(), e);
           notifyError("Full backup failed", e);
        }
        catch (RepositoryException e)
        {
           LOG.error("Full backup failed " + getStorageURL().getPath(), e);
           notifyError("Full backup failed", e);
        }
        finally
        {
           try
           {
              repository.getWorkspaceContainer(workspaceName).setState(ManageableRepository.ONLINE);
           }
           catch (RepositoryException e)
           {
              LOG.error("Full backup failed " + getStorageURL().getPath(), e);
              notifyError("Full backup failed", e);
           }
        }
  
        state = FINISHED;
        notifyListeners();
     }
docs: {@inheritDoc}