diff options
author | spingel | 2009-06-14 01:11:50 +0000 |
---|---|---|
committer | spingel | 2009-06-14 01:11:50 +0000 |
commit | 44c2a5df795179f2750fa3f84cc4b9f58a92c113 (patch) | |
tree | c8dcc4aa669d0134e7ba285487580752e9450e98 /org.eclipse.mylyn.trac.core | |
parent | 1fbda3496447ed471f5e929fab036be0168a403e (diff) | |
download | org.eclipse.mylyn.tasks-44c2a5df795179f2750fa3f84cc4b9f58a92c113.tar.gz org.eclipse.mylyn.tasks-44c2a5df795179f2750fa3f84cc4b9f58a92c113.tar.xz org.eclipse.mylyn.tasks-44c2a5df795179f2750fa3f84cc4b9f58a92c113.zip |
NEW - bug 175211: Support Trac 0.11
https://bugs.eclipse.org/bugs/show_bug.cgi?id=175211
Diffstat (limited to 'org.eclipse.mylyn.trac.core')
3 files changed, 39 insertions, 19 deletions
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/ITracClient.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/ITracClient.java index f223687b0..23a579c56 100644 --- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/ITracClient.java +++ b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/ITracClient.java @@ -20,6 +20,7 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.mylyn.internal.trac.core.model.TracComponent; import org.eclipse.mylyn.internal.trac.core.model.TracMilestone; import org.eclipse.mylyn.internal.trac.core.model.TracPriority; +import org.eclipse.mylyn.internal.trac.core.model.TracRepositoryInfo; import org.eclipse.mylyn.internal.trac.core.model.TracSearch; import org.eclipse.mylyn.internal.trac.core.model.TracSeverity; import org.eclipse.mylyn.internal.trac.core.model.TracTicket; @@ -51,9 +52,9 @@ public interface ITracClient { public String toString() { switch (this) { case TRAC_0_9: - return "Web (Trac 0.9 or 0.10)"; //$NON-NLS-1$ + return "Web"; //$NON-NLS-1$ case XML_RPC: - return "XML-RPC Plugin (Rev. " + TracXmlRpcClient.REQUIRED_REVISION + ")"; //$NON-NLS-1$ //$NON-NLS-2$ + return "XML-RPC"; //$NON-NLS-1$ default: return null; } @@ -138,10 +139,11 @@ public interface ITracClient { /** * Validates the repository connection. * + * @return information about the repository * @throws TracException * thrown in case of a connection error */ - void validate(IProgressMonitor monitor) throws TracException; + TracRepositoryInfo validate(IProgressMonitor monitor) throws TracException; /** * Returns true, if the repository details are cached. If this method returns true, invoking diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/Messages.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/Messages.java index ebad0a702..2bb978305 100644 --- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/Messages.java +++ b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/Messages.java @@ -27,5 +27,8 @@ public class Messages extends NLS { } public static String TracWebClient_Updating_attributes; + public static String TracXmlRpcClient_API_version_unsupported_Error; + public static String TracXmlRpcClient_API_version_X_unsupported_Error; + public static String TracXmlRpcClient_Required_API_calls_missing_Error; } diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracWebClient.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracWebClient.java index c506bd963..bd8b4b822 100644 --- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracWebClient.java +++ b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracWebClient.java @@ -53,6 +53,7 @@ import org.eclipse.mylyn.internal.trac.core.TracCorePlugin; import org.eclipse.mylyn.internal.trac.core.model.TracComponent; import org.eclipse.mylyn.internal.trac.core.model.TracMilestone; import org.eclipse.mylyn.internal.trac.core.model.TracPriority; +import org.eclipse.mylyn.internal.trac.core.model.TracRepositoryInfo; import org.eclipse.mylyn.internal.trac.core.model.TracSearch; import org.eclipse.mylyn.internal.trac.core.model.TracSearchFilter; import org.eclipse.mylyn.internal.trac.core.model.TracSeverity; @@ -394,7 +395,7 @@ public class TracWebClient extends AbstractTracClient { return values; } - public void validate(IProgressMonitor monitor) throws TracException { + public TracRepositoryInfo validate(IProgressMonitor monitor) throws TracException { GetMethod method = connect(repositoryUrl + "/", monitor); //$NON-NLS-1$ try { InputStream in = WebUtil.getResponseBodyAsStream(method, monitor); @@ -423,14 +424,24 @@ public class TracWebClient extends AbstractTracClient { } } - if (version != null && !(version.startsWith("Trac 0.9") || version.startsWith("Trac 0.10"))) { //$NON-NLS-1$ //$NON-NLS-2$ - throw new TracException("The Trac version " + version //$NON-NLS-1$ - + " is unsupported. Please use version 0.9.x or 0.10.x."); //$NON-NLS-1$ + if (version != null) { + if (version.startsWith("Trac 0.9")) { //$NON-NLS-1$ + return new TracRepositoryInfo(0, 0, 0, version); + } else if (version.startsWith("Trac 0.10")) { //$NON-NLS-1$ + return new TracRepositoryInfo(0, 1, 0, version); + } else if (version.startsWith("Trac 0.11")) { //$NON-NLS-1$ + return new TracRepositoryInfo(1, 0, 0, version); + } else { + throw new TracException("The Trac version " + version //$NON-NLS-1$ + + " is unsupported. Please use version 0.9, 0.10. or 0.11"); //$NON-NLS-1$ + } } if (!valid) { throw new TracException("Not a valid Trac repository"); //$NON-NLS-1$ } + + return new TracRepositoryInfo(version); } finally { in.close(); } @@ -688,18 +699,22 @@ public class TracWebClient extends AbstractTracClient { } private void addResolutionAndStatus() { - data.ticketResolutions = new ArrayList<TracTicketResolution>(5); - data.ticketResolutions.add(new TracTicketResolution("fixed", 1)); //$NON-NLS-1$ - data.ticketResolutions.add(new TracTicketResolution("invalid", 2)); //$NON-NLS-1$ - data.ticketResolutions.add(new TracTicketResolution("wontfix", 3)); //$NON-NLS-1$ - data.ticketResolutions.add(new TracTicketResolution("duplicate", 4)); //$NON-NLS-1$ - data.ticketResolutions.add(new TracTicketResolution("worksforme", 5)); //$NON-NLS-1$ - - data.ticketStatus = new ArrayList<TracTicketStatus>(4); - data.ticketStatus.add(new TracTicketStatus("new", 1)); //$NON-NLS-1$ - data.ticketStatus.add(new TracTicketStatus("assigned", 2)); //$NON-NLS-1$ - data.ticketStatus.add(new TracTicketStatus("reopened", 3)); //$NON-NLS-1$ - data.ticketStatus.add(new TracTicketStatus("closed", 4)); //$NON-NLS-1$ + if (data.ticketResolutions == null || data.ticketResolutions.isEmpty()) { + data.ticketResolutions = new ArrayList<TracTicketResolution>(5); + data.ticketResolutions.add(new TracTicketResolution("fixed", 1)); //$NON-NLS-1$ + data.ticketResolutions.add(new TracTicketResolution("invalid", 2)); //$NON-NLS-1$ + data.ticketResolutions.add(new TracTicketResolution("wontfix", 3)); //$NON-NLS-1$ + data.ticketResolutions.add(new TracTicketResolution("duplicate", 4)); //$NON-NLS-1$ + data.ticketResolutions.add(new TracTicketResolution("worksforme", 5)); //$NON-NLS-1$ + } + + if (data.ticketStatus == null || data.ticketStatus.isEmpty()) { + data.ticketStatus = new ArrayList<TracTicketStatus>(4); + data.ticketStatus.add(new TracTicketStatus("new", 1)); //$NON-NLS-1$ + data.ticketStatus.add(new TracTicketStatus("assigned", 2)); //$NON-NLS-1$ + data.ticketStatus.add(new TracTicketStatus("reopened", 3)); //$NON-NLS-1$ + data.ticketStatus.add(new TracTicketStatus("closed", 4)); //$NON-NLS-1$ + } } private List<String> getOptionValues(HtmlStreamTokenizer tokenizer) throws IOException, ParseException { |