Author: kwright
Date: Tue Sep 16 17:28:39 2014
New Revision: 1625338
URL: http://svn.apache.org/r1625338
Log:
Fix for CONNECTORS-1026. Committed on behalf of Daniel Aschauer.
Added:
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraServerInfo.java
(with props)
Modified:
manifoldcf/trunk/CHANGES.txt
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraRepositoryConnector.java
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraSession.java
Modified: manifoldcf/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/manifoldcf/trunk/CHANGES.txt?rev=1625338&r1=1625337&r2=1625338&view=diff
==============================================================================
--- manifoldcf/trunk/CHANGES.txt (original)
+++ manifoldcf/trunk/CHANGES.txt Tue Sep 16 17:28:39 2014
@@ -3,6 +3,9 @@ $Id$
======================= 2.0-dev =====================
+CONNECTORS-1026: Change JIRA URL to use the standard form.
+(Daniel Aschaeur)
+
CONNECTORS-1027: Improve some general and PostgreSQL queries
for large crawling sets.
(Paul Boichat, Karl Wright)
Modified:
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraRepositoryConnector.java
URL:
http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraRepositoryConnector.java?rev=1625338&r1=1625337&r2=1625338&view=diff
==============================================================================
---
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraRepositoryConnector.java
(original)
+++
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraRepositoryConnector.java
Tue Sep 16 17:28:39 2014
@@ -35,6 +35,7 @@ import java.util.Map;
import java.util.Date;
import java.util.Set;
import java.util.Iterator;
+
import org.apache.manifoldcf.crawler.system.Logging;
import org.apache.manifoldcf.crawler.connectors.BaseRepositoryConnector;
import org.apache.manifoldcf.agents.interfaces.ServiceInterruption;
@@ -51,6 +52,7 @@ import org.apache.manifoldcf.core.interf
import org.apache.manifoldcf.crawler.interfaces.IProcessActivity;
import org.apache.manifoldcf.crawler.interfaces.ISeedingActivity;
import org.apache.manifoldcf.crawler.interfaces.IExistingVersions;
+
import java.util.Map.Entry;
/**
@@ -1022,7 +1024,7 @@ public class JiraRepositoryConnector ext
rd.addField(entry.getKey(), entry.getValue());
}
- String documentURI = jiraFile.getSelf();
+ String documentURI = composeDocumentURI(getBaseUrl(session),
jiraFile.getKey());
String document = getJiraBody(jiraFile);
try {
byte[] documentBytes = document.getBytes(StandardCharsets.UTF_8);
@@ -1066,6 +1068,19 @@ public class JiraRepositoryConnector ext
}
return body.toString();
}
+
+
+ /**
+ * Compose the "real" url of the jira issue (BASEURL+/browse/+ISSUEKEY)
+ * @param baseUrl
+ * @param key
+ * @return
+ */
+ private String composeDocumentURI(String baseUrl, String key) {
+ if (!baseUrl.endsWith("/"))
+ baseUrl = baseUrl + "/";
+ return baseUrl + "browse/" + key;
+ }
/** Grab forced acl out of document specification.
*@param spec is the document specification.
@@ -1314,6 +1329,24 @@ public class JiraRepositoryConnector ext
return t.getResponse();
}
+
+ protected String getBaseUrl(JiraSession jiraSession) throws
ManifoldCFException, ServiceInterruption {
+ String url = "";
+ try {
+ url = jiraSession.getBaseUrl();
+ return url;
+ } catch (java.net.SocketTimeoutException e) {
+ handleIOException(e);
+ } catch (InterruptedIOException e) {
+ handleIOException(e);
+ } catch (IOException e) {
+ handleIOException(e);
+ } catch (ResponseException e) {
+ handleResponseException(e);
+ }
+ return url;
+ }
+
protected static class GetIssueThread extends Thread {
protected final JiraSession session;
Added:
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraServerInfo.java
URL:
http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraServerInfo.java?rev=1625338&view=auto
==============================================================================
---
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraServerInfo.java
(added)
+++
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraServerInfo.java
Tue Sep 16 17:28:39 2014
@@ -0,0 +1,48 @@
+/**
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+package org.apache.manifoldcf.crawler.connectors.jira;
+
+import org.json.simple.JSONObject;
+
+/** An instance of this class represents the ServerInfo, but is used only to
get the baseUrl.
+ * Other fields that are available: versionNumbers, buildDate, serverTime,
scmInfo, serverTitle
+*/
+public class JiraServerInfo extends JiraJSONResponse {
+
+ // Specific keys we care about
+ private final static String BASEURL = "baseUrl";
+ private final static String BUILDNUMBER = "buildNumber";
+ private final static String VERSION = "version";
+
+ public JiraServerInfo() {
+ super();
+ }
+
+ public String getBaseUrl() {
+ return (String)((JSONObject)object).get(BASEURL);
+ }
+
+ public Long getBuildNumber() {
+ return (Long)((JSONObject)object).get(BUILDNUMBER);
+ }
+
+ public String getVersion() {
+ return (String)((JSONObject)object).get(VERSION);
+ }
+
+}
Propchange:
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraServerInfo.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraServerInfo.java
------------------------------------------------------------------------------
svn:keywords = Id
Modified:
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraSession.java
URL:
http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraSession.java?rev=1625338&r1=1625337&r2=1625338&view=diff
==============================================================================
---
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraSession.java
(original)
+++
manifoldcf/trunk/connectors/jira/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/jira/JiraSession.java
Tue Sep 16 17:28:39 2014
@@ -30,8 +30,8 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.manifoldcf.core.util.URLEncoder;
-import java.nio.charset.Charset;
+import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Map;
import java.util.HashMap;
@@ -66,9 +66,7 @@ import org.apache.http.client.AuthCache;
import org.apache.http.impl.client.BasicAuthCache;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.client.protocol.HttpClientContext;
-
import org.apache.http.ParseException;
-
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
import org.json.simple.JSONArray;
@@ -83,6 +81,7 @@ public class JiraSession {
private final String path;
private final String clientId;
private final String clientSecret;
+ private String baseUrl;
private HttpClientConnectionManager connectionManager;
private HttpClient httpClient;
@@ -292,6 +291,21 @@ public class JiraSession {
statistics.put("Total Issues", qr.getTotal().toString());
return statistics;
}
+
+ /**
+ * Get baseUrl via serverInfo API call
+ * @return
+ * @throws IOException
+ * @throws ResponseException
+ */
+ public String getBaseUrl() throws IOException, ResponseException {
+ if (this.baseUrl == null) {
+ JiraServerInfo jiraServerInfo = new JiraServerInfo();
+ getRest("serverInfo",jiraServerInfo);
+ this.baseUrl = jiraServerInfo.getBaseUrl();
+ }
+ return this.baseUrl;
+ }
/**
* Get the list of matching root documents, e.g. seeds.