Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 66006 Details for
Bug 144722
[connector] Mantis
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Connector Core Patch for Mylar 2
mantisConnectorCorePatch.txt (text/plain), 20.36 KB, created by
Simon Bitschnau
on 2007-05-05 13:49:48 EDT
(
hide
)
Description:
Connector Core Patch for Mylar 2
Filename:
MIME Type:
Creator:
Simon Bitschnau
Created:
2007-05-05 13:49:48 EDT
Size:
20.36 KB
patch
obsolete
>Index: D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/META-INF/MANIFEST.MF >=================================================================== >--- D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/META-INF/MANIFEST.MF (revision 22) >+++ D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/META-INF/MANIFEST.MF (working copy) >@@ -8,7 +8,8 @@ > Require-Bundle: org.eclipse.core.runtime, > org.eclipse.mylar.context.core, > org.eclipse.mylar.tasks.core, >- org.eclipse.search >+ org.eclipse.search, >+ org.eclipse.mylar > Eclipse-LazyStart: true > Export-Package: com.itsolut.mantis.core, > com.itsolut.mantis.core.exception, >Index: D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisAttachmentHandler.java >=================================================================== >--- D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisAttachmentHandler.java (revision 22) >+++ D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisAttachmentHandler.java (working copy) >@@ -21,6 +21,7 @@ > import org.eclipse.core.runtime.CoreException; > import org.eclipse.core.runtime.IStatus; > import org.eclipse.core.runtime.Status; >+import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; > import org.eclipse.mylar.tasks.core.AbstractRepositoryConnector; > import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; > import org.eclipse.mylar.tasks.core.IAttachmentHandler; >@@ -72,7 +73,7 @@ > > try { > IMantisClient client = connector.getClientManager().getRepository(repository); >- int id = Integer.parseInt(AbstractRepositoryTask.getTaskId(task.getHandleIdentifier())); >+ int id = Integer.parseInt(RepositoryTaskHandleUtil.getTaskId(task.getHandleIdentifier())); > byte[] data = readData(file); > > //hack since context methods are final in superclasses & Mantis does not have a description column >Index: D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisRepositoryConnector.java >=================================================================== >--- D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisRepositoryConnector.java (revision 22) >+++ D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisRepositoryConnector.java (working copy) >@@ -23,13 +23,18 @@ > > import java.io.File; > import java.util.ArrayList; >+import java.util.Collections; >+import java.util.Date; >+import java.util.HashSet; > import java.util.List; >+import java.util.Set; > > import org.eclipse.core.runtime.CoreException; > import org.eclipse.core.runtime.IProgressMonitor; > import org.eclipse.core.runtime.IStatus; > import org.eclipse.core.runtime.Status; >-import org.eclipse.mylar.context.core.MylarStatusHandler; >+import org.eclipse.mylar.core.MylarStatusHandler; >+import org.eclipse.mylar.internal.tasks.core.RepositoryTaskHandleUtil; > import org.eclipse.mylar.tasks.core.AbstractRepositoryConnector; > import org.eclipse.mylar.tasks.core.AbstractRepositoryQuery; > import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; >@@ -46,6 +51,7 @@ > import com.itsolut.mantis.core.exception.InvalidTicketException; > import com.itsolut.mantis.core.model.MantisTicket; > import com.itsolut.mantis.core.model.MantisTicket.Key; >+import com.itsolut.mantis.core.util.MantisUtils; > > /** > * @author Steffen Pingel >@@ -55,8 +61,6 @@ > > private final static String CLIENT_LABEL = "Mantis (supports connector 0.0.5 only)"; > >- private List<String> supportedVersions; >- > private MantisClientManager clientManager; > > private MantisOfflineTaskHandler offlineTaskHandler = new MantisOfflineTaskHandler(this); >@@ -109,19 +113,7 @@ > return repositoryUrl + IMantisClient.TICKET_URL + taskId; > } > >- > @Override >- public List<String> getSupportedVersions() { >- if (supportedVersions == null) { >- supportedVersions = new ArrayList<String>(); >- for (Version version : Version.values()) { >- supportedVersions.add(version.toString()); >- } >- } >- return supportedVersions; >- } >- >- @Override > public IAttachmentHandler getAttachmentHandler() { > return attachmentHandler; > } >@@ -134,7 +126,7 @@ > @Override > public void updateTask(TaskRepository repository, AbstractRepositoryTask repositoryTask) throws CoreException { > if (repositoryTask instanceof MantisTask) { >- String id = AbstractRepositoryTask.getTaskId(repositoryTask.getHandleIdentifier()); >+ String id = RepositoryTaskHandleUtil.getTaskId(repositoryTask.getHandleIdentifier()); > try { > IMantisClient connection = getClientManager().getRepository(repository); > MantisTicket ticket = connection.getTicket(Integer.parseInt(id)); >@@ -171,27 +163,25 @@ > > return Status.OK_STATUS; > } >- >+ > @Override >- public AbstractRepositoryTask createTaskFromExistingKey(TaskRepository repository, String id) throws CoreException { >+ public AbstractRepositoryTask createTaskFromExistingKey(TaskRepository repository, String taskId) throws CoreException { > int bugId = -1; > try { >- bugId = Integer.parseInt(id); >+ bugId = Integer.parseInt(taskId); > } catch (NumberFormatException e) { > throw new CoreException(new Status(IStatus.ERROR, MantisCorePlugin.PLUGIN_ID, IStatus.OK, >- "Invalid ticket id: " + id, e)); >+ "Invalid ticket id: " + taskId, e)); > } > >- String handle = AbstractRepositoryTask.getHandle(repository.getUrl(), bugId); >- > MantisTask task; >- ITask existingTask = taskList.getTask(handle); >+ ITask existingTask = taskList.getTask(repository.getUrl(), taskId); > if (existingTask instanceof MantisTask) { > task = (MantisTask) existingTask; > } else { > RepositoryTaskData taskData = offlineTaskHandler.downloadTaskData(repository, bugId); > // if (taskData != null) { >- task = new MantisTask(handle, getTicketDescription(taskData), true); >+ task = new MantisTask(repository.getUrl(), taskId, getTicketDescription(taskData), true); > task.setTaskData(taskData); > taskList.addTask(task); > // } else { >@@ -222,13 +212,13 @@ > return clientManager; > } > >- public MantisTask createTask(MantisTicket ticket, String handleIdentifier) { >+ public MantisTask createTask(MantisTicket ticket, String repositoryUrl, String taskId) { > MantisTask task; >- ITask existingTask = taskList.getTask(handleIdentifier); >+ ITask existingTask = taskList.getTask(repositoryUrl, taskId); > if (existingTask instanceof MantisTask) { > task = (MantisTask) existingTask; > } else { >- task = new MantisTask(handleIdentifier, getTicketDescription(ticket), true); >+ task = new MantisTask(repositoryUrl, taskId, getTicketDescription(ticket), true); > taskList.addTask(task); > } > return task; >@@ -375,4 +365,42 @@ > return ticket; > } > >+//TODO: not changed for Mantis yet... >+ @Override >+ public Set<AbstractRepositoryTask> getChangedSinceLastSync(TaskRepository repository, Set<AbstractRepositoryTask> tasks) throws CoreException { >+ if (repository.getSyncTimeStamp() == null) { >+ return tasks; >+ } >+ >+ if (!MantisRepositoryConnector.hasChangedSince(repository)) { >+ // return an empty list to avoid causing all tasks to synchronized >+ return Collections.emptySet(); >+ } >+ >+ Date since = new Date(0); >+ try { >+ since = MantisUtils.parseDate(Integer.parseInt(repository.getSyncTimeStamp())); >+ } catch (NumberFormatException e) { >+ } >+ >+ IMantisClient client; >+ try { >+ client = getClientManager().getRepository(repository); >+ Set<Integer> ids = client.getChangedTickets(since); >+ >+ Set<AbstractRepositoryTask> result = new HashSet<AbstractRepositoryTask>(); >+ if (!ids.isEmpty()) { >+ for (AbstractRepositoryTask task : tasks) { >+ Integer id = Integer.parseInt(RepositoryTaskHandleUtil.getTaskId(task.getHandleIdentifier())); >+ if (ids.contains(id)) { >+ result.add(task); >+ } >+ } >+ } >+ return result; >+ } catch (Exception e) { >+ throw new CoreException(new Status(IStatus.ERROR, MantisCorePlugin.PLUGIN_ID, IStatus.OK, "could not determine changed tasks", e)); >+ } >+ } >+ > } >\ No newline at end of file >Index: D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisAttributeFactory.java >=================================================================== >--- D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisAttributeFactory.java (revision 22) >+++ D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisAttributeFactory.java (working copy) >@@ -21,6 +21,7 @@ > > package com.itsolut.mantis.core; > >+import java.util.Date; > import java.util.HashMap; > import java.util.Map; > >@@ -28,6 +29,7 @@ > import org.eclipse.mylar.tasks.core.RepositoryTaskAttribute; > > import com.itsolut.mantis.core.model.MantisTicket.Key; >+import com.itsolut.mantis.core.util.MantisUtils; > > /** > * Provides a mapping from Mylar task keys to Mantis ticket keys. >@@ -161,7 +163,23 @@ > } > > static boolean isInternalAttribute(String id) { >- return RepositoryTaskAttribute.REMOVE_CC.equals(id) || RepositoryTaskAttribute.NEW_CC.equals(id) || RepositoryTaskAttribute.ADD_SELF_CC.equals(id); >+ return RepositoryTaskAttribute.REMOVE_CC.equals(id) || RepositoryTaskAttribute.NEW_CC.equals(id) || RepositoryTaskAttribute.ADD_SELF_CC.equals(id) || RepositoryTaskAttribute.COMMENT_NEW.equals(id); > } > >+ @Override >+ public Date getDateForAttributeType(String attributeKey, String dateString) { >+ if (dateString == null || dateString.length() == 0) { >+ return null; >+ } >+ >+ try { >+ String mappedKey = mapCommonAttributeKey(attributeKey); >+ if (mappedKey.equals(Attribute.DATE_SUBMITTED.getMantisKey()) || mappedKey.equals(Attribute.LAST_UPDATED.getMantisKey())) { >+ return MantisUtils.parseDate(Integer.valueOf(dateString)); >+ } >+ } catch (Exception e) { >+ } >+ return null; >+ } >+ > } >Index: D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisTask.java >=================================================================== >--- D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisTask.java (revision 22) >+++ D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisTask.java (working copy) >@@ -30,11 +30,10 @@ > */ > public class MantisTask extends AbstractRepositoryTask { > >- public MantisTask(String handle, String label, boolean newTask) { >- super(handle, label, newTask); >- >- setUrl(AbstractRepositoryTask.getRepositoryUrl(handle) + IMantisClient.TICKET_URL >- + AbstractRepositoryTask.getTaskId(handle)); >+ public MantisTask(String repositoryUrl, String taskId, String label, boolean newTask) { >+ super(repositoryUrl, taskId, label, newTask); >+ >+ setTaskUrl(repositoryUrl + IMantisClient.TICKET_URL + taskId); > } > > @Override >Index: D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisOfflineTaskHandler.java >=================================================================== >--- D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisOfflineTaskHandler.java (revision 22) >+++ D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisOfflineTaskHandler.java (working copy) >@@ -21,23 +21,19 @@ > > package com.itsolut.mantis.core; > >-import java.io.UnsupportedEncodingException; >-import java.util.Collections; >-import java.util.Date; >-import java.util.HashSet; > import java.util.Map; >-import java.util.Set; > > import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IProgressMonitor; > import org.eclipse.core.runtime.IStatus; > import org.eclipse.core.runtime.NullProgressMonitor; > import org.eclipse.core.runtime.Status; > import org.eclipse.mylar.tasks.core.AbstractAttributeFactory; >-import org.eclipse.mylar.tasks.core.AbstractRepositoryTask; > import org.eclipse.mylar.tasks.core.ITaskDataHandler; > import org.eclipse.mylar.tasks.core.RepositoryAttachment; > import org.eclipse.mylar.tasks.core.RepositoryTaskAttribute; > import org.eclipse.mylar.tasks.core.RepositoryTaskData; >+import org.eclipse.mylar.tasks.core.Task; > import org.eclipse.mylar.tasks.core.TaskComment; > import org.eclipse.mylar.tasks.core.TaskRepository; > >@@ -45,7 +41,6 @@ > import com.itsolut.mantis.core.exception.MantisException; > import com.itsolut.mantis.core.model.MantisAttachment; > import com.itsolut.mantis.core.model.MantisComment; >-import com.itsolut.mantis.core.model.MantisProject; > import com.itsolut.mantis.core.model.MantisProjectCategory; > import com.itsolut.mantis.core.model.MantisTicket; > import com.itsolut.mantis.core.util.MantisUtils; >@@ -75,7 +70,7 @@ > } > > try { >- RepositoryTaskData data = new RepositoryTaskData(attributeFactory, MantisCorePlugin.REPOSITORY_KIND, repository.getUrl(), id + ""); >+ RepositoryTaskData data = new RepositoryTaskData(attributeFactory, MantisCorePlugin.REPOSITORY_KIND, repository.getUrl(), id + "", Task.DEFAULT_TASK_KIND); > IMantisClient client = connector.getClientManager().getRepository(repository); > client.updateAttributes(new NullProgressMonitor(), false); > MantisTicket ticket = client.getTicket(id); >@@ -89,25 +84,10 @@ > } > } > >- public AbstractAttributeFactory getAttributeFactory() { >+ public AbstractAttributeFactory getAttributeFactory(String repositoryUrl, String repositoryKind, String taskKind) { > return attributeFactory; > } > >- public Date getDateForAttributeType(String attributeKey, String dateString) { >- if (dateString == null || dateString.length() == 0) { >- return null; >- } >- >- try { >- String mappedKey = attributeFactory.mapCommonAttributeKey(attributeKey); >- if (mappedKey.equals(Attribute.DATE_SUBMITTED.getMantisKey()) || mappedKey.equals(Attribute.LAST_UPDATED.getMantisKey())) { >- return MantisUtils.parseDate(Integer.valueOf(dateString)); >- } >- } catch (Exception e) { >- } >- return null; >- } >- > public static void updateTaskData(TaskRepository repository, AbstractAttributeFactory factory, RepositoryTaskData data, > IMantisClient client, MantisTicket ticket) throws CoreException { > >@@ -303,45 +283,30 @@ > data.addAttribute(attribute.getMantisKey(), attr); > return attr; > } >- >- //TODO: not changed for Mantis yet... >- public Set<AbstractRepositoryTask> getChangedSinceLastSync(TaskRepository repository, Set<AbstractRepositoryTask> tasks) throws CoreException, UnsupportedEncodingException { >- if (repository.getSyncTimeStamp() == null) { >- return tasks; >- } > >- if (!MantisRepositoryConnector.hasChangedSince(repository)) { >- // return an empty list to avoid causing all tasks to synchronized >- return Collections.emptySet(); >- } >- >- Date since = new Date(0); >+ public String postTaskData(TaskRepository repository, RepositoryTaskData taskData) throws CoreException { > try { >- since = MantisUtils.parseDate(Integer.parseInt(repository.getSyncTimeStamp())); >- } catch (NumberFormatException e) { >- } >- >- IMantisClient client; >- try { >- client = connector.getClientManager().getRepository(repository); >- Set<Integer> ids = client.getChangedTickets(since); >- >- Set<AbstractRepositoryTask> result = new HashSet<AbstractRepositoryTask>(); >- if (!ids.isEmpty()) { >- for (AbstractRepositoryTask task : tasks) { >- Integer id = Integer.parseInt(AbstractRepositoryTask.getTaskId(task.getHandleIdentifier())); >- if (ids.contains(id)) { >- result.add(task); >- } >- } >+ MantisTicket ticket = MantisRepositoryConnector.getMantisTicket(repository, taskData); >+ IMantisClient server = ((MantisRepositoryConnector) connector).getClientManager().getRepository(repository); >+ if (taskData.isNew()) { >+ int id = server.createTicket(ticket); >+ return Integer.toString(id); >+ } else { >+ >+ String comment = taskData.getNewComment(); >+ // XXX: new comment is now an attribute >+ taskData.removeAttribute(RepositoryTaskAttribute.COMMENT_NEW); >+ server.updateTicket(ticket, comment); >+ return null; > } >- return result; > } catch (Exception e) { >- throw new CoreException(new Status(IStatus.ERROR, MantisCorePlugin.PLUGIN_ID, IStatus.OK, "could not determine changed tasks", e)); >+ throw new CoreException(MantisCorePlugin.toStatus(e)); > } > } > >- public String postTaskData(TaskRepository repository, RepositoryTaskData taskData) throws CoreException { >- return null; >+ public boolean initializeTaskData(TaskRepository repository, >+ RepositoryTaskData data, IProgressMonitor monitor) throws CoreException { >+ // TODO Auto-generated method stub >+ return false; > } > } >Index: D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/model/MantisTicket.java >=================================================================== >--- D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/model/MantisTicket.java (revision 22) >+++ D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/model/MantisTicket.java (working copy) >@@ -27,7 +27,6 @@ > import java.util.List; > import java.util.Map; > >-import com.itsolut.mantis.core.MantisCorePlugin; > import com.itsolut.mantis.core.exception.InvalidTicketException; > > /** >Index: D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/model/MantisSearch.java >=================================================================== >--- D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/model/MantisSearch.java (revision 22) >+++ D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/model/MantisSearch.java (working copy) >@@ -19,7 +19,7 @@ > import java.util.List; > import java.util.Map; > >-import org.eclipse.mylar.context.core.MylarStatusHandler; >+import org.eclipse.mylar.core.MylarStatusHandler; > > import com.itsolut.mantis.core.IMantisClient; > import com.itsolut.mantis.core.model.MantisSearchFilter.CompareOperator; >Index: D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisRepositoryQuery.java >=================================================================== >--- D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisRepositoryQuery.java (revision 22) >+++ D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisRepositoryQuery.java (working copy) >@@ -15,7 +15,7 @@ > import java.net.URLDecoder; > import java.util.StringTokenizer; > >-import org.eclipse.mylar.context.core.MylarStatusHandler; >+import org.eclipse.mylar.core.MylarStatusHandler; > import org.eclipse.mylar.tasks.core.AbstractRepositoryQuery; > import org.eclipse.mylar.tasks.core.TaskList; > >Index: D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisQueryHit.java >=================================================================== >--- D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisQueryHit.java (revision 22) >+++ D:/dev/Eclipse/workspace/Mylar Mantis Connector/com.itsolut.mantis.core/src/com/itsolut/mantis/core/MantisQueryHit.java (working copy) >@@ -24,20 +24,16 @@ > super(taskList, repositoryUrl, description, id); > } > >- public MantisQueryHit(TaskList taskList, String handle) { >- super(taskList, AbstractRepositoryTask.getRepositoryUrl(handle), "", AbstractRepositoryTask.getTaskId(handle)); >- } >- > @Override > protected AbstractRepositoryTask createTask() { >- MantisTask newTask = new MantisTask(getHandleIdentifier(), getSummary(), true); >+ MantisTask newTask = new MantisTask(this.getRepositoryUrl(), this.getTaskId(), getSummary(), true); > newTask.setPriority(priority); > return newTask; > } > > @Override > public String getUrl() { >- return getRepositoryUrl() + IMantisClient.TICKET_URL + getId(); >+ return getRepositoryUrl() + IMantisClient.TICKET_URL + getTaskId(); > } > > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 144722
:
60118
|
60119
| 66006 |
66007
|
67982