fix #1666 replace with %20

This commit is contained in:
Shinsuke Sugaya 2018-05-28 06:03:33 +09:00
parent 15b2b82581
commit 255ca5ff7e
2 changed files with 60 additions and 8 deletions

View file

@ -119,7 +119,9 @@ public class GitBucketDataStoreImpl extends AbstractDataStoreImpl {
// branch is empty when git repository is empty.
if (StringUtil.isNotEmpty(branch)) {
final String refStr = getGitRef(rootURL, authToken, owner, name, branch);
logger.info("Crawl " + owner + "/" + name);
if (logger.isInfoEnabled()) {
logger.info("Crawl " + owner + "/" + name);
}
// crawl and store file contents recursively
crawlFileContents(
rootURL,
@ -139,7 +141,9 @@ public class GitBucketDataStoreImpl extends AbstractDataStoreImpl {
});
}
logger.info("Crawl issues in " + owner + "/" + name);
if (logger.isInfoEnabled()) {
logger.info("Crawl issues in " + owner + "/" + name);
}
// store issues
for (int issueId = 1; issueId <= issueCount + pullCount; issueId++) {
storeIssueById(rootURL, authToken, issueLabel, owner, name, new Integer(issueId), roleList, crawlingConfig, callback,
@ -150,7 +154,9 @@ public class GitBucketDataStoreImpl extends AbstractDataStoreImpl {
}
}
logger.info("Crawl Wiki in " + owner + "/" + name);
if (logger.isInfoEnabled()) {
logger.info("Crawl Wiki in " + owner + "/" + name);
}
// crawl Wiki
storeWikiContents(rootURL, authToken, wikiLabel, owner, name, roleList, crawlingConfig, callback, paramMap, scriptMap,
defaultDataMap, readInterval);
@ -229,7 +235,9 @@ public class GitBucketDataStoreImpl extends AbstractDataStoreImpl {
}
} while (repoList.size() < totalCount);
logger.info("There exist " + repoList.size() + " repositories");
if (logger.isInfoEnabled()) {
logger.info("There exist " + repoList.size() + " repositories");
}
return repoList;
}
@ -389,7 +397,6 @@ public class GitBucketDataStoreImpl extends AbstractDataStoreImpl {
}
for (final String page : pageList) {
// FIXME: URL encoding (e.g. page name that contains spaces)
final String pageUrl = wikiUrl + "/contents/" + page + ".md";
final String viewUrl = rootURL + owner + "/" + name + "/wiki/" + page;
@ -399,7 +406,8 @@ public class GitBucketDataStoreImpl extends AbstractDataStoreImpl {
final Map<String, Object> dataMap = new HashMap<>();
dataMap.putAll(defaultDataMap);
dataMap.putAll(ComponentUtil.getDocumentHelper().processRequest(crawlingConfig, paramMap.get("crawlingInfoId"), pageUrl));
dataMap.putAll(ComponentUtil.getDocumentHelper().processRequest(crawlingConfig, paramMap.get("crawlingInfoId"),
pageUrl.replace("+", "%20")));
dataMap.put("url", viewUrl);
dataMap.put("role", roleList);
@ -408,7 +416,9 @@ public class GitBucketDataStoreImpl extends AbstractDataStoreImpl {
// TODO scriptMap
callback.store(paramMap, dataMap);
logger.info("Stored " + pageUrl);
if (logger.isDebugEnabled()) {
logger.debug("Stored " + pageUrl);
}
if (readInterval > 0) {
sleep(readInterval);
@ -453,7 +463,7 @@ public class GitBucketDataStoreImpl extends AbstractDataStoreImpl {
}
}
private String encode(final String rootURL, final String path, final String query) {
protected String encode(final String rootURL, final String path, final String query) {
try {
final URI rootURI = new URI(rootURL);
final URI uri =

View file

@ -0,0 +1,42 @@
/*
* Copyright 2012-2018 CodeLibs Project and the Others.
*
* Licensed 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.codelibs.fess.ds.impl;
import org.codelibs.fess.unit.UnitFessTestCase;
public class GitBucketDataStoreImplTest extends UnitFessTestCase {
public GitBucketDataStoreImpl dataStore;
@Override
public void setUp() throws Exception {
super.setUp();
dataStore = new GitBucketDataStoreImpl();
}
public void test_encode() {
String rootURL = "https://gitbucket.com/";
String path;
String query;
path = "api/v3/repos/";
query = "aaa=111";
assertEquals("https://gitbucket.com/api/v3/repos/?aaa=111", dataStore.encode(rootURL, path, query));
path = "api/v3/repos/AA BB";
query = "aaa=11 11";
assertEquals("https://gitbucket.com/api/v3/repos/AA%20BB?aaa=11%2011", dataStore.encode(rootURL, path, query));
}
}