Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

jetcd leaves behind non-daemon threads belonging to http client #8

Open
wants to merge 108 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
108 commits
Select commit Hold shift + click to select a range
5afd78d
Allow passing in http client so it's possible to cleanly shut down wi…
timboudreau Mar 19, 2014
fa7161c
Version
timboudreau Mar 19, 2014
b46bf79
Use less resource-consumptive netty instead of apache http client
timboudreau Mar 20, 2014
e178c56
Cleanup
timboudreau Mar 20, 2014
c4d0eb7
Source level 1.7
timboudreau Mar 20, 2014
070a8c2
Versions
timboudreau Mar 20, 2014
efb1fe1
Client version
timboudreau Mar 20, 2014
832dc36
Client version
timboudreau Mar 20, 2014
3b1c63e
Client version
timboudreau Mar 20, 2014
c434e4c
Version
timboudreau Mar 20, 2014
f22dfc3
Skip tests by default - requires running local etcd, not appropriate …
timboudreau Mar 20, 2014
c40c861
Make readme reflect reality
timboudreau Mar 22, 2014
4378442
Update library versions
timboudreau Apr 19, 2014
6443da4
Bugfix in ServerBuilder for scope bindings
timboudreau Jun 28, 2014
38fb369
Add cookie store support to http client
timboudreau Sep 9, 2014
8d4999e
Fix dependency
timboudreau Sep 9, 2014
9a69a44
Fix same send/receive port in http client; fix annotation processors…
timboudreau Oct 16, 2014
37e6cb5
Add numble, bump to 1.5.0 - switching source level to 1.8
timboudreau Nov 5, 2014
7085f61
Pom cleanup
timboudreau Nov 6, 2014
ee86dfb
HttpClient updates
timboudreau Nov 11, 2014
09d3aa7
Bump version to 1.5.2
timboudreau Nov 26, 2014
a5e2707
Bump version; give Output a way to close deferred writes
timboudreau Dec 30, 2014
93e9d17
Update to 1.5.4; timeout fixes in netty-http-client
timboudreau Jan 7, 2015
7f309d4
Acteur 1.6 with factored out and rewritten engine; simplified scopes …
timboudreau Jan 10, 2015
ab93d00
Back to JDK 7. Sigh.
timboudreau Mar 7, 2015
6ada1e3
Release 1.6.0
timboudreau Mar 7, 2015
9907817
-m
timboudreau Mar 7, 2015
16d06cf
Bump version to 1.6.1.1-dev to accomodate logging changes
timboudreau Mar 10, 2015
beb57b8
A provision for simple suites with selenium
timboudreau Mar 17, 2015
0005c22
Update to Netty 4.0.28 and Guice 4.0 release
timboudreau Jun 8, 2015
daef0e1
Fix some test harness issues and bump version to 1.6.2
timboudreau Jun 14, 2015
4b1fd05
Expose LogSink in bunyan-java; bump version
timboudreau Sep 1, 2015
afdb5b0
Version 1.6.4
Dec 18, 2015
1edc607
POM file cleanup and bump version of a few libraries
Dec 18, 2015
0daf848
Add missing POM sections
Dec 18, 2015
3fa62c6
License notices; some additions to util + JDK 8 required there; bump …
Jan 4, 2017
a588d2f
Netty 4.2 compatibility
May 21, 2017
84c6a5e
Use project.groupId where possible
May 22, 2017
f6d4de3
Merge branch 'master' of https://github.com/timboudreau/jetcd
May 22, 2017
34e98ab
Code changes due to incompatible changes in library
May 27, 2017
92d0193
1.7.0 release
May 29, 2017
40171ac
Move to 2.0.0-dev version
May 29, 2017
a18fed8
Allow acteur to have default scope objects; bump version to 2.0.1-dev
Sep 1, 2017
fb74411
Fix order bug with async logging in bunyan-java; test verbosity reduc…
timboudreau Oct 5, 2017
b6d80ba
Eliminate a lot of output from tests; misc cleanup; use newer version…
timboudreau Oct 5, 2017
a546c63
Roll a 2.0.2 release
timboudreau Oct 11, 2017
283d3d9
Version 2.0.3
timboudreau Oct 17, 2017
bee91dc
v2.0.4 with new methods in MongoUpdater.Updater
timboudreau Oct 28, 2017
2091390
Add probe for in depth tracing and logging in Acteur; better support …
timboudreau Oct 29, 2017
add8d44
Add update methods to MongoUpdater, v2.0.6
timboudreau Nov 2, 2017
02d6a02
Improve CORS handling in Acteur
timboudreau Nov 16, 2017
cf63367
Improve env handling in giulius-settings
timboudreau Nov 27, 2017
18e43f4
Improved selenium support
timboudreau Dec 15, 2017
3e4fbd8
Much simplified API for async operations in Acteur
timboudreau Dec 28, 2017
d51ba85
v2.1.1 - util enhancements
timboudreau Jan 12, 2018
1625859
Version 2.2.0 - main change is range headers in Acteur
timboudreau Jan 24, 2018
267d9c9
Remove some blocking from the mongodb async bindings startup path
timboudreau Jan 30, 2018
606358f
Fix multiple cookie parsing; v2.2.2
timboudreau Feb 8, 2018
122862c
Major optimization to filter list of applicable pages to ones that co…
timboudreau Feb 25, 2018
856b7b1
Fix CORS decorator adding cache control headers to every response it …
timboudreau Feb 27, 2018
ad3655b
Add ability to set some buffer sizes in Acteur
timboudreau Feb 27, 2018
aa6665f
Eliminate dependency on org.openide.util caused by older versions of …
timboudreau Mar 9, 2018
5182273
Use new maven repo url
timboudreau Mar 12, 2018
48fdd7f
Version 2.4.1
timboudreau Apr 20, 2018
2a7b90d
Factor out annotation processors; generate meta-inf file for @Inject;…
timboudreau Jul 1, 2018
cc0691b
Split util into several libraries and leave stubs in com.mastfrog.util
timboudreau Jul 16, 2018
180c262
Get this building with newer guava; should probably just delete it - …
timboudreau Apr 28, 2019
6f2d702
Prep for deployment to maven central
timboudreau May 6, 2019
4479bac
Finishing prep for push to maven central
timboudreau May 6, 2019
deca95d
More pom cleanup and metadata
timboudreau May 6, 2019
7c88b5a
Release 2.5.0 ready
timboudreau May 6, 2019
df2efff
Bump version to 2.5.1-dev
timboudreau May 7, 2019
4ec1016
Add pom metadata where missing and update version to 2.6.0
timboudreau Oct 17, 2019
e330c5a
Release 2.6.1
timboudreau Nov 15, 2019
eae532b
v2.6.2 - update maven plugins, make various things more robust to par…
timboudreau Nov 26, 2019
271ceff
Add dynamic graph; v2.6.3
timboudreau Nov 26, 2019
9e4f577
Buffer like fixes, misc
timboudreau Nov 27, 2019
83b2cf3
v2.6.5 - ensure the recently introduced path matching cache plays nic…
timboudreau Nov 29, 2019
d528767
Update simplevalidation version so all dependencies are ones in maven…
timboudreau Dec 4, 2019
08acfc3
Bump version to 2.6.7
timboudreau Dec 19, 2019
2f4f84c
Bump version
timboudreau Dec 21, 2019
eb9a8a4
Release 2.6.9
timboudreau May 25, 2020
efd3d9b
Annotation tools delegate processor improvements; bump library versio…
timboudreau May 25, 2020
bbf7637
Bump version (hotfix strings 2.6.11.1 precedes this)
timboudreau Jun 27, 2020
a2a550e
v2.6.12
timboudreau Jul 12, 2020
4c6c9f7
v2.6.13
timboudreau Aug 4, 2020
5e2ce46
v2.7.0 - remove some obsolete projects, correct method names in funct…
timboudreau Aug 10, 2020
936b615
Version 2.7.1
timboudreau Oct 16, 2020
385a003
v2.7.2 - annotation processor fixes for differences between jdk 8 and…
timboudreau Mar 11, 2021
858456d
v2.7.3
timboudreau Nov 10, 2021
9e7cd23
A number of optimizations; in particular a rewrite of ShutdownHookReg…
timboudreau Dec 20, 2021
ea49e27
Remove obsolete repository sections from poms; misc test fixes to ens…
Apr 27, 2022
399493f
With some library updates, bump to v2.8.1
timboudreau May 6, 2022
1812dba
v2.8.2 with automatic module names
Jun 18, 2022
0a2dc5c
v2.8.3
timboudreau Jun 23, 2022
577cff2
Updated versions in 140 projects
timboudreau Sep 10, 2022
95a6cc8
Updated versions in 143 projects
timboudreau Sep 10, 2022
e0aca96
Updated versions in 147 projects
timboudreau Sep 23, 2022
40b9b57
Updated versions in 149 projects
timboudreau Oct 12, 2022
a5f8c5d
Updated versions in 150 projects
timboudreau Oct 18, 2022
18a9aa9
'Split header parsers and entities with no dependencies on Netty out …
timboudreau Oct 19, 2022
3fee9e6
Updated versions in 144 projects
Oct 28, 2022
7368663
Updated versions in 146 projects
timboudreau Nov 11, 2022
e2bf8cb
Updated versions in 146 projects
timboudreau Nov 20, 2022
071e7ec
Updated versions in 146 projects
timboudreau Nov 28, 2022
dc0084e
Updated versions in 146 projects
timboudreau Feb 13, 2023
f9c7b9c
Updated versions in 146 projects
timboudreau Feb 20, 2023
ce0d990
Updated versions in 148 projects
Feb 21, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ CircleCI: ![CircleCI Status](https://circleci.com/gh/justinsb/jetcd.png?circle-t

A simple Java client library for the awesome [etcd]

Uses the Apache [HttpAsyncClient] to implement watches without blocking a thread, and Google's [Guava] to give us the nice [ListenableFuture] interface.
This fork of jetcd uses [Netty HTTP Client](https://github.com/timboudreau/netty-http-client) to do asynchronous HTTP
requests with minimal resource utilization (the [original](https://github.com/justinsb/jetcd) uses [HttpAsyncClient]
to do the same - the Netty client is lighter-weight, but has more dependencies).

Check out [SmokeTest.java] to see how this is used (and tested), but here's a quick code example:

Expand Down
230 changes: 136 additions & 94 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -1,95 +1,137 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.justinsb</groupId>
<artifactId>etcd-client</artifactId>
<version>0.1-SNAPSHOT</version>

<properties>
<artifactTargetPath>${project.build.directory}</artifactTargetPath>
</properties>

<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpasyncclient</artifactId>
<version>4.0-beta4</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>14.0.1</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.4</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.5</version>
<scope>test</scope>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<configuration>
<target>1.5</target>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>package</phase> <!-- bind to the packaging phase -->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>

<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.5.2</version>
<configuration>
<xmlOutput>true</xmlOutput>
<xmlOutputDirectory>${artifactTargetPath}</xmlOutputDirectory>
<findbugsXmlOutputDirectory>${artifactTargetPath}</findbugsXmlOutputDirectory>
</configuration>
</plugin>
</plugins>
</reporting>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>com.mastfrog</groupId>
<version>2.9.7</version>
<artifactId>mastfrog-parent</artifactId>
<relativePath/>
</parent>

<groupId>com.justinsb</groupId>
<artifactId>etcd-client</artifactId>

<url>https://github.com/timboudreau/jetcd</url>
<version>0.3-tboudreau-fork-1</version>

<properties>
<artifactTargetPath>${project.build.directory}</artifactTargetPath>
<maven.test.skip.exec>true</maven.test.skip.exec>
</properties>

<dependencies>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.mastfrog</groupId>
<artifactId>netty-http-client</artifactId>
<version>${mastfrog.version}</version>
</dependency>
</dependencies>

<build>
<plugins>

<plugin>

<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<target>1.5</target>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>

<!-- this is used for inheritance merges -->

<phase>package</phase>

<!-- bind to the packaging phase -->

<goals>
<goal>single</goal>
</goals>
</execution>
</executions>

</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
</plugins>

</build>
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.5</version>
<configuration>
<xmlOutput>true</xmlOutput>
<xmlOutputDirectory>${artifactTargetPath}</xmlOutputDirectory>
<findbugsXmlOutputDirectory>${artifactTargetPath}</findbugsXmlOutputDirectory>
</configuration>
</plugin>
</plugins>

</reporting>
<issueManagement>
<system>Github</system>
<url>https://github.com/timboudreau/jetcd/issues</url>
</issueManagement>

<scm>
<url>https://github.com/timboudreau/jetcd.git</url>
<connection>scm:git:https://github.com/timboudreau/jetcd.git</connection>
<developerConnection>git@github.com/timboudreau/jetcd.git</developerConnection>
</scm>

<organization>
<name>Mastfrog Technologies</name>
<url>https://mastfrog.com</url>
</organization>

<licenses>
<license>
<name>MIT</name>
<url>https://opensource.org/licenses/MIT</url>
<distribution>repo</distribution>
</license>
</licenses>

<developers>
<developer>
<name>Tim Boudreau</name>
<email>tim@timboudreau.com</email>
<url>https://timboudreau.com</url>
</developer>
</developers>

</project>
Loading