aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsImporter.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/jenkins/JenkinsImporter.java')
-rw-r--r--src/main/java/io/trygvis/esper/testing/jenkins/JenkinsImporter.java70
1 files changed, 57 insertions, 13 deletions
diff --git a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsImporter.java b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsImporter.java
index 942aa15..b639108 100644
--- a/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsImporter.java
+++ b/src/main/java/io/trygvis/esper/testing/jenkins/JenkinsImporter.java
@@ -1,30 +1,74 @@
package io.trygvis.esper.testing.jenkins;
+import fj.*;
+import fj.data.*;
import io.trygvis.esper.testing.*;
+import io.trygvis.esper.testing.object.*;
+import org.apache.commons.httpclient.*;
+import org.apache.commons.httpclient.params.*;
import org.codehaus.httpcache4j.cache.*;
import org.codehaus.httpcache4j.client.*;
+import org.joda.time.*;
import java.net.*;
-import java.util.*;
+import java.net.URI;
+import java.util.HashSet;
+import java.util.concurrent.*;
public class JenkinsImporter {
- private final JenkinsClient jenkinsClient;
-
public static void main(String[] args) throws Exception {
Main.configureLog4j();
- new JenkinsImporter().work();
- }
- public JenkinsImporter() {
- HTTPCache http = new HTTPCache(new MemoryCacheStorage(), HTTPClientResponseResolver.createMultithreadedInstance());
- jenkinsClient = new JenkinsClient(http, URI.create("https://builds.apache.org"));
- }
+// HTTPClientResponseResolver resolver = HTTPClientResponseResolver.createMultithreadedInstance();
+// HTTPClientResponseResolver resolver = new HTTPClientResponseResolver(new HttpClient(new MultiThreadedHttpConnectionManager()));
+ HTTPClientResponseResolver resolver = new HTTPClientResponseResolver(new HttpClient(new SimpleHttpConnectionManager()));
+ HttpClientParams params = new HttpClientParams();
+// params.setConnectionManagerTimeout(1000);
+ params.setSoTimeout(1000);
+ resolver.getClient().setParams(params);
+ HTTPCache http = new HTTPCache(new MemoryCacheStorage(), resolver);
+ final JenkinsClient jenkinsClient = new JenkinsClient(http);
+
+ jenkinsClient.setDebugXml(true);
+
+ HashSet<URI> servers = new HashSet<>();
+ servers.add(URI.create("https://builds.apache.org"));
+
+ final ScheduledThreadPoolExecutor executorService = new ScheduledThreadPoolExecutor(1);
- private void work() throws Exception {
- List<JenkinsJobXml> jobs = jenkinsClient.fetchJobs();
+ ObjectManager<URI, JenkinsServer> serverManager = new ObjectManager<>("JenkinsServer", servers, new ObjectFactory<URI, JenkinsServer>() {
+ public JenkinsServer create(URI uri) {
+ return new JenkinsServer(executorService, jenkinsClient, uri);
+ }
+ });
+ final boolean[] shouldRun = new boolean[]{true};
- for (JenkinsJobXml job : jobs) {
- System.out.println("job.name = " + job.name);
+ Runtime.getRuntime().addShutdownHook(new Thread() {
+ {
+ setName("Shutdown hoook");
+ }
+
+ public void run() {
+ shouldRun[0] = false;
+ }
+ });
+
+ while (shouldRun[0]) {
+ for (JenkinsServer server : serverManager.getObjects()) {
+ Option<P2<JenkinsXml, LocalDateTime>> o = server.getJenkins();
+
+ if (o.isSome()) {
+ P2<JenkinsXml, LocalDateTime> p = o.some();
+ System.out.println("Last update: " + p._2() + ", jobs=" + p._1().jobs.size());
+ } else {
+ System.out.println("Never updated: url=" + server.uri);
+ }
+ }
+
+ Thread.sleep(1000);
}
+
+ serverManager.close();
+ executorService.shutdownNow();
}
}