Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractTracClient.java')
-rw-r--r--org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractTracClient.java235
1 files changed, 0 insertions, 235 deletions
diff --git a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractTracClient.java b/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractTracClient.java
deleted file mode 100644
index d0f7c1d53..000000000
--- a/org.eclipse.mylyn.trac.core/src/org/eclipse/mylyn/internal/trac/core/client/AbstractTracClient.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2006, 2009 Steffen Pingel and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Steffen Pingel - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.trac.core.client;
-
-import java.io.IOException;
-import java.net.HttpURLConnection;
-import java.net.Proxy;
-import java.net.URL;
-import java.util.HashMap;
-
-import org.apache.commons.httpclient.Cookie;
-import org.apache.commons.httpclient.HostConfiguration;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.NameValuePair;
-import org.apache.commons.httpclient.cookie.CookiePolicy;
-import org.apache.commons.httpclient.methods.PostMethod;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.mylyn.commons.net.AbstractWebLocation;
-import org.eclipse.mylyn.commons.net.AuthenticationCredentials;
-import org.eclipse.mylyn.commons.net.WebUtil;
-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.TracSeverity;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketField;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketResolution;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketStatus;
-import org.eclipse.mylyn.internal.trac.core.model.TracTicketType;
-import org.eclipse.mylyn.internal.trac.core.model.TracVersion;
-
-/**
- * @author Steffen Pingel
- */
-public abstract class AbstractTracClient implements ITracClient {
-
- protected static final boolean DEBUG_AUTH = Boolean.valueOf(Platform.getDebugOption("org.eclipse.mylyn.trac.core/debug/authentication")); //$NON-NLS-1$
-
- protected static final String USER_AGENT = "TracConnector"; //$NON-NLS-1$
-
- private static final String LOGIN_COOKIE_NAME = "trac_auth"; //$NON-NLS-1$
-
- protected final String repositoryUrl;
-
- protected final Version version;
-
- protected final AbstractWebLocation location;
-
- protected TracClientData data;
-
- public AbstractTracClient(URL repositoryUrl, Version version, String username, String password, Proxy proxy) {
- this.repositoryUrl = repositoryUrl.toString();
- this.version = version;
-
- this.location = null;
-
- this.data = new TracClientData();
- }
-
- public AbstractTracClient(AbstractWebLocation location, Version version) {
- this.location = location;
- this.version = version;
- this.repositoryUrl = location.getUrl();
-
- this.data = new TracClientData();
- }
-
- protected HttpClient createHttpClient() {
- HttpClient httpClient = new HttpClient();
- httpClient.setHttpConnectionManager(WebUtil.getConnectionManager());
- httpClient.getParams().setCookiePolicy(CookiePolicy.RFC_2109);
- WebUtil.configureHttpClient(httpClient, USER_AGENT);
- return httpClient;
- }
-
- public Version getVersion() {
- return version;
- }
-
- protected boolean credentialsValid(AuthenticationCredentials credentials) {
- return credentials != null && credentials.getUserName().length() > 0;
- }
-
- protected void authenticateAccountManager(HttpClient httpClient, HostConfiguration hostConfiguration,
- AuthenticationCredentials credentials, IProgressMonitor monitor) throws IOException, TracLoginException {
- PostMethod post = new PostMethod(WebUtil.getRequestPath(repositoryUrl + LOGIN_URL));
- post.setFollowRedirects(false);
- String formToken = getFormToken(httpClient);
- NameValuePair[] data = { new NameValuePair("referer", ""), //$NON-NLS-1$ //$NON-NLS-2$
- new NameValuePair("user", credentials.getUserName()), //$NON-NLS-1$
- new NameValuePair("password", credentials.getPassword()), new NameValuePair("__FORM_TOKEN", formToken) }; //$NON-NLS-1$ //$NON-NLS-2$
-
- post.setRequestBody(data);
- try {
- if (DEBUG_AUTH) {
- System.err.println(location.getUrl() + ": Attempting form-based account manager authentication"); //$NON-NLS-1$
- }
- int code = WebUtil.execute(httpClient, hostConfiguration, post, monitor);
- if (DEBUG_AUTH) {
- System.err.println(location.getUrl() + ": Received account manager response (" + code + ")"); //$NON-NLS-1$ //$NON-NLS-2$
- }
- // code should be a redirect in case of success
- if (code == HttpURLConnection.HTTP_OK) {
- throw new TracLoginException();
- }
- } finally {
- post.releaseConnection();
- }
- }
-
- private String getFormToken(HttpClient httpClient) {
- Cookie[] cookies = httpClient.getState().getCookies();
- for (Cookie cookie : cookies) {
- if ("trac_form_token".equals(cookie.getName())) { //$NON-NLS-1$
- return cookie.getValue();
- }
- }
- return ""; //$NON-NLS-1$
- }
-
- /**
- * Check if authentication cookie has been set.
- *
- * @throws TracLoginException
- * thrown if the cookie has not been set
- */
- protected void validateAuthenticationState(HttpClient httpClient) throws TracLoginException {
- Cookie[] cookies = httpClient.getState().getCookies();
- for (Cookie cookie : cookies) {
- if (LOGIN_COOKIE_NAME.equals(cookie.getName())) {
- return;
- }
- }
-
- throw new TracLoginException();
- }
-
- public TracComponent[] getComponents() {
- return (data.components != null) ? data.components.toArray(new TracComponent[0]) : null;
- }
-
- public TracMilestone[] getMilestones() {
- return (data.milestones != null) ? data.milestones.toArray(new TracMilestone[0]) : null;
- }
-
- public TracPriority[] getPriorities() {
- return (data.priorities != null) ? data.priorities.toArray(new TracPriority[0]) : null;
- }
-
- public TracSeverity[] getSeverities() {
- return (data.severities != null) ? data.severities.toArray(new TracSeverity[0]) : null;
- }
-
- public TracTicketField[] getTicketFields() {
- return (data.ticketFields != null) ? data.ticketFields.toArray(new TracTicketField[0]) : null;
- }
-
- public TracTicketField getTicketFieldByName(String name) {
- if (data.ticketFields != null) {
- // lazily fill fieldByName map
- if (data.ticketFieldByName == null) {
- synchronized (data) {
- if (data.ticketFieldByName == null) {
- data.ticketFieldByName = new HashMap<String, TracTicketField>();
- for (TracTicketField field : data.ticketFields) {
- data.ticketFieldByName.put(field.getName(), field);
- }
- }
- }
- }
- return data.ticketFieldByName.get(name);
- }
- return null;
- }
-
- public TracTicketResolution[] getTicketResolutions() {
- return (data.ticketResolutions != null) ? data.ticketResolutions.toArray(new TracTicketResolution[0]) : null;
- }
-
- public TracTicketStatus[] getTicketStatus() {
- return (data.ticketStatus != null) ? data.ticketStatus.toArray(new TracTicketStatus[0]) : null;
- }
-
- public TracTicketType[] getTicketTypes() {
- return (data.ticketTypes != null) ? data.ticketTypes.toArray(new TracTicketType[0]) : null;
- }
-
- public TracVersion[] getVersions() {
- return (data.versions != null) ? data.versions.toArray(new TracVersion[0]) : null;
- }
-
- public boolean hasAttributes() {
- return (data.lastUpdate != 0);
- }
-
- public void updateAttributes(IProgressMonitor monitor, boolean force) throws TracException {
- if (!hasAttributes() || force) {
- updateAttributes(monitor);
- data.lastUpdate = System.currentTimeMillis();
- }
- }
-
- public abstract void updateAttributes(IProgressMonitor monitor) throws TracException;
-
- public void setData(TracClientData data) {
- this.data = data;
- }
-
- public String[] getDefaultTicketResolutions() {
- return new String[] { "fixed", "invalid", "wontfix", "duplicate", "worksforme" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
- }
-
- public String[] getDefaultTicketActions(String status) {
- if ("new".equals(status)) { //$NON-NLS-1$
- return new String[] { "leave", "resolve", "reassign", "accept" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
- } else if ("assigned".equals(status)) { //$NON-NLS-1$
- return new String[] { "leave", "resolve", "reassign" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- } else if ("reopened".equals(status)) { //$NON-NLS-1$
- return new String[] { "leave", "resolve", "reassign" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- } else if ("closed".equals(status)) { //$NON-NLS-1$
- return new String[] { "leave", "reopen" }; //$NON-NLS-1$ //$NON-NLS-2$
- }
- return null;
- }
-
-}

Back to the top