Skip to content

Commit 598d6f3

Browse files
committed
apply http manager to handle rquest
1 parent 97efc6c commit 598d6f3

File tree

4 files changed

+53
-21
lines changed

4 files changed

+53
-21
lines changed

core/src/main/java/com/flowci/core/common/config/AppConfig.java

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,7 @@
2222
import com.flowci.core.common.helper.ThreadHelper;
2323
import com.flowci.util.FileHelper;
2424
import lombok.extern.log4j.Log4j2;
25-
import org.apache.http.client.HttpClient;
26-
import org.apache.http.client.config.RequestConfig;
2725
import org.apache.http.client.utils.URIBuilder;
28-
import org.apache.http.impl.client.HttpClientBuilder;
2926
import org.springframework.beans.factory.annotation.Autowired;
3027
import org.springframework.boot.autoconfigure.web.servlet.MultipartProperties;
3128
import org.springframework.cache.annotation.EnableCaching;
@@ -94,18 +91,6 @@ public ObjectMapper objectMapper() {
9491
return JacksonHelper.create();
9592
}
9693

97-
@Bean("httpClient")
98-
public HttpClient httpClient() {
99-
int timeout = 10 * 1000;
100-
RequestConfig config = RequestConfig.custom()
101-
.setConnectTimeout(timeout)
102-
.setConnectionRequestTimeout(timeout)
103-
.setSocketTimeout(timeout)
104-
.build();
105-
106-
return HttpClientBuilder.create().setDefaultRequestConfig(config).build();
107-
}
108-
10994
@Bean("appTaskExecutor")
11095
public TaskExecutor getAppTaskExecutor() {
11196
return ThreadHelper.createTaskExecutor(100, 100, 50, "app-task-");
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.flowci.core.common.manager;
2+
3+
import org.apache.http.HttpResponse;
4+
import org.apache.http.client.HttpClient;
5+
import org.apache.http.client.config.RequestConfig;
6+
import org.apache.http.client.methods.HttpGet;
7+
import org.apache.http.impl.client.HttpClientBuilder;
8+
import org.apache.http.util.EntityUtils;
9+
import org.springframework.stereotype.Component;
10+
11+
import javax.annotation.PostConstruct;
12+
import java.io.IOException;
13+
14+
@Component("httpManager")
15+
public class HttpRequestManager {
16+
17+
private final static int DefaultTimeout = 30 * 1000;
18+
19+
private final static String DefaultUserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36";
20+
21+
private HttpClient client;
22+
23+
@PostConstruct
24+
public void init() {
25+
RequestConfig config = RequestConfig.custom()
26+
.setConnectTimeout(DefaultTimeout)
27+
.setConnectionRequestTimeout(DefaultTimeout)
28+
.setSocketTimeout(DefaultTimeout)
29+
.build();
30+
client = HttpClientBuilder.create().setDefaultRequestConfig(config).build();
31+
}
32+
33+
public String get(String url) throws IOException {
34+
HttpGet request = new HttpGet(url);
35+
request.setHeader("User-Agent", DefaultUserAgent);
36+
37+
HttpResponse execute = client.execute(request);
38+
return EntityUtils.toString(execute.getEntity());
39+
}
40+
}

core/src/main/java/com/flowci/core/flow/config/FlowConfig.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.fasterxml.jackson.databind.ObjectMapper;
2121
import com.flowci.core.common.config.AppProperties;
2222
import com.flowci.core.common.helper.CacheHelper;
23+
import com.flowci.core.common.manager.HttpRequestManager;
2324
import com.flowci.core.flow.domain.Template;
2425
import com.github.benmanes.caffeine.cache.Cache;
2526
import lombok.extern.log4j.Log4j2;
@@ -28,7 +29,6 @@
2829
import org.springframework.context.annotation.Configuration;
2930

3031
import java.io.IOException;
31-
import java.net.URL;
3232
import java.util.List;
3333

3434
/**
@@ -50,12 +50,14 @@ public Cache<String, List<String>> gitBranchCache() {
5050
}
5151

5252
@Bean("templates")
53-
public List<Template> getTemplates() throws IOException {
53+
public List<Template> getTemplates(HttpRequestManager httpManager) throws IOException {
54+
String body = httpManager.get(flowProperties.getTemplatesUrl());
55+
5456
TypeReference<List<Template>> typeRef = new TypeReference<List<Template>>() {
5557
};
56-
String url = flowProperties.getTemplatesUrl();
57-
List<Template> list = objectMapper.readValue(new URL(url), typeRef);
58-
log.info("Templates is loaded from {}", url);
58+
59+
List<Template> list = objectMapper.readValue(body, typeRef);
60+
log.info("Templates is loaded from {}", flowProperties.getTemplatesUrl());
5961
return list;
6062
}
6163
}

core/src/main/java/com/flowci/core/plugin/service/PluginServiceImpl.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.fasterxml.jackson.databind.ObjectMapper;
2121
import com.flowci.core.common.config.AppProperties;
2222
import com.flowci.core.common.git.GitClient;
23+
import com.flowci.core.common.manager.HttpRequestManager;
2324
import com.flowci.core.common.manager.VarManager;
2425
import com.flowci.core.plugin.dao.PluginDao;
2526
import com.flowci.core.plugin.domain.Plugin;
@@ -90,6 +91,9 @@ public class PluginServiceImpl implements PluginService {
9091
@Autowired
9192
private VarManager varManager;
9293

94+
@Autowired
95+
private HttpRequestManager httpManager;
96+
9397
private final Object reloadLock = new Object();
9498

9599
@EventListener
@@ -191,7 +195,8 @@ public Path getDir(Plugin plugin) {
191195
public List<PluginRepoInfo> load(String repoUrl) {
192196
try {
193197
repoUrl = repoUrl + "?t=" + Instant.now().toEpochMilli();
194-
return objectMapper.readValue(new URL(repoUrl), RepoListType);
198+
String body = httpManager.get(repoUrl);
199+
return objectMapper.readValue(body, RepoListType);
195200
} catch (Throwable e) {
196201
log.warn("Unable to load plugin repo '{}' : {}", repoUrl, e.getMessage());
197202
return Collections.emptyList();

0 commit comments

Comments
 (0)