Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrelves2006-06-26 20:00:34 +0000
committerrelves2006-06-26 20:00:34 +0000
commite3bd24e9073b1e54edc2b4dc2e17ec5f3ead1697 (patch)
treeb817c24066bf21df68b5523c7156833396876fc9
parentc40728815d0443ccb92b57809b927e68ffe32937 (diff)
downloadorg.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
-rw-r--r--org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasklist/tests/TaskDataImportTest.java8
-rw-r--r--org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/mylardata-2006-02-16.zipbin2340 -> 2670 bytes
-rw-r--r--org.eclipse.mylyn.tasks.tests/testdata/taskdataimporttest/repositories.xml4
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/ui/wizards/TaskDataImportWizard.java50
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasklist/util/TaskDataExportJob.java39
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/provisional/tasklist/MylarTaskListPlugin.java2
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/provisional/tasklist/TaskRepositoryManager.java10
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
index 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
Binary files differ
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);

Back to the top