Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorspingel2009-06-14 01:11:50 +0000
committerspingel2009-06-14 01:11:50 +0000
commit44c2a5df795179f2750fa3f84cc4b9f58a92c113 (patch)
treec8dcc4aa669d0134e7ba285487580752e9450e98 /org.eclipse.mylyn.trac.core
parent1fbda3496447ed471f5e929fab036be0168a403e (diff)
downloadorg.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')
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/ITracClient.java8
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/Messages.java3
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/TracWebClient.java47
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 {

Back to the top