diff options
author | relves | 2006-06-26 20:00:34 +0000 |
---|---|---|
committer | relves | 2006-06-26 20:00:34 +0000 |
commit | e3bd24e9073b1e54edc2b4dc2e17ec5f3ead1697 (patch) | |
tree | b817c24066bf21df68b5523c7156833396876fc9 | |
parent | c40728815d0443ccb92b57809b927e68ffe32937 (diff) | |
download | org.eclipse.mylyn.tasks-e3bd24e9073b1e54edc2b4dc2e17ec5f3ead1697.tar.gz org.eclipse.mylyn.tasks-e3bd24e9073b1e54edc2b4dc2e17ec5f3ead1697.tar.xz org.eclipse.mylyn.tasks-e3bd24e9073b1e54edc2b4dc2e17ec5f3ead1697.zip |
Progress on: 132070: import and export of task repository data
https://bugs.eclipse.org/bugs/show_bug.cgi?id=132070
7 files changed, 86 insertions, 27 deletions
diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasklist/tests/TaskDataImportTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasklist/tests/TaskDataImportTest.java index f1e8dcdfd..aa42c1ee2 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasklist/tests/TaskDataImportTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasklist/tests/TaskDataImportTest.java @@ -67,7 +67,8 @@ public class TaskDataImportTest extends AbstractContextTest { } protected void tearDown() throws Exception { - + MylarTaskListPlugin.getRepositoryManager().clearRepositories(); + MylarTaskListPlugin.getTaskListManager().resetTaskList(); super.tearDown(); } @@ -76,6 +77,7 @@ public class TaskDataImportTest extends AbstractContextTest { * zip file */ public void testImportFromAllFromZip() { + assertEquals(0, MylarTaskListPlugin.getRepositoryManager().getAllRepositories().size()); wizardPage.setParameters(true, true, true, true, true, "", sourceZipFile.getPath()); wizard.performFinish(); @@ -86,10 +88,13 @@ public class TaskDataImportTest extends AbstractContextTest { for (ITask task : tasks) { assertTrue(MylarPlugin.getContextManager().hasContext(task.getHandleIdentifier())); } + + assertEquals(2, MylarTaskListPlugin.getRepositoryManager().getAllRepositories().size()); } /** Tests the wizard when it has been asked to import task data from folder */ public void testImportFromAllFromFolder() { + assertEquals(0, MylarTaskListPlugin.getRepositoryManager().getAllRepositories().size()); wizardPage.setParameters(true, true, true, true, false, sourceDirFile.getPath(), ""); wizard.performFinish(); @@ -100,5 +105,6 @@ public class TaskDataImportTest extends AbstractContextTest { for (ITask task : tasks) { assertTrue(MylarPlugin.getContextManager().hasContext(task.getHandleIdentifier())); } + assertEquals(2, MylarTaskListPlugin.getRepositoryManager().getAllRepositories().size()); } } diff --git a/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/mylardata-2006-02-16.zip b/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/mylardata-2006-02-16.zip Binary files differindex 6538612f8..326674958 100644 --- a/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/mylardata-2006-02-16.zip +++ b/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/mylardata-2006-02-16.zip diff --git a/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/repositories.xml b/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/repositories.xml new file mode 100644 index 000000000..bb0067736 --- /dev/null +++ b/org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/repositories.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<TaskRepositories OutputVersion="1"> +<TaskRepository encoding="UTF-8" kind="bugzilla" timezone="Canada/Pacific" url="https://bugzilla.mozilla.org/" lastsynctimestamp="2006-06-26 01:14:10 PDT" version="2.22"/> +<TaskRepository encoding="UTF-8" kind="bugzilla" timezone="Canada/Eastern" url="https://bugs.eclipse.org/bugs" lastsynctimestamp="2006-06-26 13:30:14" version="2.20" /></TaskRepositories>
\ No newline at end of file diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/wizards/TaskDataImportWizard.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/wizards/TaskDataImportWizard.java index 5fa09cab1..816ae775a 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/wizards/TaskDataImportWizard.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/wizards/TaskDataImportWizard.java @@ -103,6 +103,7 @@ public class TaskDataImportWizard extends Wizard implements IImportWizard { File sourceDirFile = null; File sourceZipFile = null; File sourceTaskListFile = null; + File sourceRepositoriesFile = null; File sourceActivationHistoryFile = null; List<File> contextFiles = new ArrayList<File>(); List<String> zipFilesToExtract = new ArrayList<String>(); @@ -136,7 +137,8 @@ public class TaskDataImportWizard extends Wizard implements IImportWizard { if (!importPage.importTaskList() && entry.getName().endsWith(MylarTaskListPlugin.DEFAULT_TASK_LIST_FILE)) { continue; - } + } + if (!importPage.importActivationHistory() && entry.getName().endsWith( MylarContextManager.CONTEXT_HISTORY_FILE_NAME @@ -165,8 +167,7 @@ public class TaskDataImportWizard extends Wizard implements IImportWizard { } } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); + MylarStatusHandler.fail(e, "Could not import files", true); } } else { @@ -180,6 +181,7 @@ public class TaskDataImportWizard extends Wizard implements IImportWizard { // make sure selected files for import are there sourceTaskListFile = new File(sourceDir + File.separator + MylarTaskListPlugin.DEFAULT_TASK_LIST_FILE); + sourceRepositoriesFile = new File(sourceDir + File.separator + MylarTaskListPlugin.DEFAULT_REPOSITORIES_FILE); sourceActivationHistoryFile = new File(sourceDir + File.separator + MylarContextManager.CONTEXT_HISTORY_FILE_NAME + MylarContextManager.CONTEXT_FILE_EXTENSION); @@ -203,7 +205,7 @@ public class TaskDataImportWizard extends Wizard implements IImportWizard { } } - + if (importPage.importTaskList() && !sourceTaskListFile.exists()) { MessageDialog.openError(getShell(), "File not found", sourceTaskListFile.toString() + " not found."); return false; @@ -215,7 +217,7 @@ public class TaskDataImportWizard extends Wizard implements IImportWizard { } - FileCopyJob job = new FileCopyJob(sourceDirFile, sourceZipFile, sourceTaskListFile, + FileCopyJob job = new FileCopyJob(sourceDirFile, sourceZipFile, sourceTaskListFile, sourceRepositoriesFile, sourceActivationHistoryFile, contextFiles, zipFilesToExtract); IProgressService service = PlatformUI.getWorkbench().getProgressService(); @@ -242,6 +244,8 @@ public class TaskDataImportWizard extends Wizard implements IImportWizard { private File sourceTaskListFile = null; private File sourceActivationHistoryFile = null; + + private File sourceRepositoriesFile = null; private boolean zip; @@ -255,11 +259,12 @@ public class TaskDataImportWizard extends Wizard implements IImportWizard { private List<String> zipFilesToExtract; - public FileCopyJob(File sourceFolder, File sourceZipFile, File sourceTaskListFile, + public FileCopyJob(File sourceFolder, File sourceZipFile, File sourceTaskListFile, File sourceRepositoriesFile, File sourceActivationHistoryFile, List<File> contextFiles, List<String> zipFiles) { this.sourceZipFile = sourceZipFile; this.sourceTaskListFile = sourceTaskListFile; + this.sourceRepositoriesFile = sourceRepositoriesFile; this.sourceActivationHistoryFile = sourceActivationHistoryFile; this.sourceContextFiles = contextFiles; this.zipFilesToExtract = zipFiles; @@ -306,13 +311,35 @@ public class TaskDataImportWizard extends Wizard implements IImportWizard { "Problem occured extracting from zip file.", true); return; } - readTaskList(); + readTaskListData(); monitor.done(); return; } - if (importTaskList) { - monitor.beginTask(JOB_LABEL, sourceContextFiles.size() + 2); + int jobSize = 1; + if(importTaskList) jobSize++; + if(importActivationHistory) jobSize++; + if(importTaskContexts) jobSize += sourceContextFiles.size(); + monitor.beginTask(JOB_LABEL, jobSize); + + if(true) { + String destRepositoriesPath = MylarPlugin.getDefault().getDataDirectory() + File.separator + + MylarTaskListPlugin.DEFAULT_REPOSITORIES_FILE; + File destRepositoriesFile = new File(destRepositoriesPath); + + if (destRepositoriesFile.exists()) { + destRepositoriesFile.delete(); + } + + if (!copy(sourceRepositoriesFile, destRepositoriesFile)) { + MylarStatusHandler + .fail(new Exception("Import Exception"), "Could not import repositories file.", true); + } + monitor.worked(1); + } + + + if (importTaskList) { String destTaskListPath = MylarPlugin.getDefault().getDataDirectory() + File.separator + MylarTaskListPlugin.DEFAULT_TASK_LIST_FILE; File destTaskListFile = new File(destTaskListPath); @@ -367,7 +394,7 @@ public class TaskDataImportWizard extends Wizard implements IImportWizard { monitor.worked(1); } } - readTaskList(); + readTaskListData(); monitor.done(); } } @@ -417,9 +444,10 @@ public class TaskDataImportWizard extends Wizard implements IImportWizard { } } - private void readTaskList() { + private void readTaskListData() { PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() { public void run() { + MylarTaskListPlugin.getRepositoryManager().readRepositories(); MylarTaskListPlugin.getTaskListManager().readExistingOrCreateNewList(); } }); diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/util/TaskDataExportJob.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/util/TaskDataExportJob.java index 6b561f7c0..bca3d1340 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/util/TaskDataExportJob.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/util/TaskDataExportJob.java @@ -57,10 +57,6 @@ public class TaskDataExportJob implements IRunnableWithProgress { private String zipFileName; private File destZipFile = null; - - private File destTaskListFile = null; - - private File destActivationHistoryFile = null; private Collection<ITask> tasks; @@ -83,7 +79,7 @@ public class TaskDataExportJob implements IRunnableWithProgress { public void run(final IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { //Collection<ITask> tasks = MylarTaskListPlugin.getTaskListManager().getTaskList().getAllTasks(); - int jobSize = 0; + int jobSize = 1; // 1 for repositories.xml if (exportTaskList) jobSize++; if (exportActivationHistory) @@ -98,6 +94,35 @@ public class TaskDataExportJob implements IRunnableWithProgress { // Map of file paths used to avoid duplicates Map<String, String> filesToZipMap = new HashMap<String, String>(); + if (true) { + // Repositories always exported + MylarTaskListPlugin.getRepositoryManager().saveRepositories(); + + String sourceRepositoriesPath = MylarPlugin.getDefault().getDataDirectory() + File.separator + + MylarTaskListPlugin.DEFAULT_REPOSITORIES_FILE; + File sourceRepositoriesFile = new File(sourceRepositoriesPath); + if (sourceRepositoriesFile.exists()) { + File destRepositoriesFile = new File(destinationDirectory + File.separator + + MylarTaskListPlugin.DEFAULT_REPOSITORIES_FILE); + + if (zip) { + filesToZip.add(sourceRepositoriesFile); + } else if(!destRepositoriesFile.equals(sourceRepositoriesFile)) { + if (destRepositoriesFile.exists()) { + destRepositoriesFile.delete(); + } + if (!copy(sourceRepositoriesFile, destRepositoriesFile)) { + MylarStatusHandler.fail(new Exception("Export Exception"), "Could not export repositories file.", + false); + } + monitor.worked(1); + } + } + + } + + + if (exportTaskList) { MylarTaskListPlugin.getTaskListManager().saveTaskList(); @@ -105,7 +130,7 @@ public class TaskDataExportJob implements IRunnableWithProgress { + MylarTaskListPlugin.DEFAULT_TASK_LIST_FILE; File sourceTaskListFile = new File(sourceTaskListPath); if (sourceTaskListFile.exists()) { - destTaskListFile = new File(destinationDirectory + File.separator + File destTaskListFile = new File(destinationDirectory + File.separator + MylarTaskListPlugin.DEFAULT_TASK_LIST_FILE); if (zip) { @@ -134,7 +159,7 @@ public class TaskDataExportJob implements IRunnableWithProgress { MylarPlugin.getContextManager().saveActivityHistoryContext(); - destActivationHistoryFile = new File(destinationDirectory + File.separator + File destActivationHistoryFile = new File(destinationDirectory + File.separator + MylarContextManager.CONTEXT_HISTORY_FILE_NAME + MylarContextManager.CONTEXT_FILE_EXTENSION); diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/provisional/tasklist/MylarTaskListPlugin.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/provisional/tasklist/MylarTaskListPlugin.java index 6afd23430..8d81c838f 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/provisional/tasklist/MylarTaskListPlugin.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/provisional/tasklist/MylarTaskListPlugin.java @@ -78,6 +78,8 @@ public class MylarTaskListPlugin extends AbstractUIPlugin implements IStartup { public static final String FILE_EXTENSION = ".xml"; public static final String DEFAULT_TASK_LIST_FILE = "tasklist" + FILE_EXTENSION; + + public static final String DEFAULT_REPOSITORIES_FILE = "repositories" + FILE_EXTENSION; public static final String TITLE_DIALOG = "Mylar Information"; diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/provisional/tasklist/TaskRepositoryManager.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/provisional/tasklist/TaskRepositoryManager.java index b85caf502..f441ea9ea 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/provisional/tasklist/TaskRepositoryManager.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/provisional/tasklist/TaskRepositoryManager.java @@ -35,10 +35,6 @@ import org.eclipse.mylar.provisional.core.MylarPlugin; */ public class TaskRepositoryManager { - public static final String REPOSITORIES_EXTENSION = ".xml"; - - public static final String REPOSITORIES_FILENAME = "repositories"; - public static final String OLD_PROPERTY_SYNCTIME = "synctime"; // public static final String PROPERTY_SYNCTIMESTAMP = "synctimestamp"; @@ -274,8 +270,7 @@ public class TaskRepositoryManager { private void loadRepositories() { try { String dataDirectory = MylarPlugin.getDefault().getDataDirectory(); - File repositoriesFile = new File(dataDirectory + File.separator + REPOSITORIES_FILENAME - + REPOSITORIES_EXTENSION); + File repositoriesFile = new File(dataDirectory + File.separator + MylarTaskListPlugin.DEFAULT_REPOSITORIES_FILE); // Will only load repositories for which a connector exists for (AbstractRepositoryConnector repositoryConnector : repositoryConnectors.values()) { repositoryMap.put(repositoryConnector.getRepositoryType(), new HashSet<TaskRepository>()); @@ -360,8 +355,7 @@ public class TaskRepositoryManager { try { String dataDirectory = MylarPlugin.getDefault().getDataDirectory(); - File repositoriesFile = new File(dataDirectory + File.separator + REPOSITORIES_FILENAME - + REPOSITORIES_EXTENSION); + File repositoriesFile = new File(dataDirectory + File.separator + MylarTaskListPlugin.DEFAULT_REPOSITORIES_FILE); externalizer.writeRepositoriesToXML(repositoriesToWrite, repositoriesFile); } catch (Throwable t) { MylarStatusHandler.fail(t, "could not save repositories", false); |