Skip to content

Commit 2299db7

Browse files
authored
Support setting ThreadFactory for Jetty 10, 11 and 12 (#3531)
This PR prepares support for project loom with allowing to set a ThreadFactory for the InstrumentedQueuedThreadPool. The constructors for the InstrumentedQueuedThreadPool are aligned with the ones from QueuedThreadPool to allow setting parameters that currently cannot be provided.
1 parent f48ddce commit 2299db7

File tree

3 files changed

+132
-5
lines changed

3 files changed

+132
-5
lines changed

metrics-jetty10/src/main/java/io/dropwizard/metrics/jetty10/InstrumentedQueuedThreadPool.java

Lines changed: 61 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.eclipse.jetty.util.thread.QueuedThreadPool;
77

88
import java.util.concurrent.BlockingQueue;
9+
import java.util.concurrent.ThreadFactory;
910

1011
import static com.codahale.metrics.MetricRegistry.name;
1112

@@ -34,6 +35,13 @@ public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
3435
this(registry, maxThreads, minThreads, 60000);
3536
}
3637

38+
public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
39+
@Name("maxThreads") int maxThreads,
40+
@Name("minThreads") int minThreads,
41+
@Name("queue") BlockingQueue<Runnable> queue) {
42+
this(registry, maxThreads, minThreads, 60000, queue);
43+
}
44+
3745
public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
3846
@Name("maxThreads") int maxThreads,
3947
@Name("minThreads") int minThreads,
@@ -46,16 +54,67 @@ public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
4654
@Name("minThreads") int minThreads,
4755
@Name("idleTimeout") int idleTimeout,
4856
@Name("queue") BlockingQueue<Runnable> queue) {
49-
this(registry, maxThreads, minThreads, idleTimeout, queue, null);
57+
this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);
58+
}
59+
60+
public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
61+
@Name("maxThreads") int maxThreads,
62+
@Name("minThreads") int minThreads,
63+
@Name("idleTimeout") int idleTimeout,
64+
@Name("queue") BlockingQueue<Runnable> queue,
65+
@Name("prefix") String prefix) {
66+
this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);
67+
}
68+
69+
public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
70+
@Name("maxThreads") int maxThreads,
71+
@Name("minThreads") int minThreads,
72+
@Name("idleTimeout") int idleTimeout,
73+
@Name("queue") BlockingQueue<Runnable> queue,
74+
@Name("threadFactory") ThreadFactory threadFactory) {
75+
this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);
76+
}
77+
78+
public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
79+
@Name("maxThreads") int maxThreads,
80+
@Name("minThreads") int minThreads,
81+
@Name("idleTimeout") int idleTimeout,
82+
@Name("queue") BlockingQueue<Runnable> queue,
83+
@Name("threadGroup") ThreadGroup threadGroup) {
84+
this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);
85+
}
86+
87+
public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
88+
@Name("maxThreads") int maxThreads,
89+
@Name("minThreads") int minThreads,
90+
@Name("idleTimeout") int idleTimeout,
91+
@Name("reservedThreads") int reservedThreads,
92+
@Name("queue") BlockingQueue<Runnable> queue,
93+
@Name("threadGroup") ThreadGroup threadGroup) {
94+
this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);
95+
}
96+
97+
public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
98+
@Name("maxThreads") int maxThreads,
99+
@Name("minThreads") int minThreads,
100+
@Name("idleTimeout") int idleTimeout,
101+
@Name("reservedThreads") int reservedThreads,
102+
@Name("queue") BlockingQueue<Runnable> queue,
103+
@Name("threadGroup") ThreadGroup threadGroup,
104+
@Name("threadFactory") ThreadFactory threadFactory) {
105+
this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);
50106
}
51107

52108
public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
53109
@Name("maxThreads") int maxThreads,
54110
@Name("minThreads") int minThreads,
55111
@Name("idleTimeout") int idleTimeout,
112+
@Name("reservedThreads") int reservedThreads,
56113
@Name("queue") BlockingQueue<Runnable> queue,
114+
@Name("threadGroup") ThreadGroup threadGroup,
115+
@Name("threadFactory") ThreadFactory threadFactory,
57116
@Name("prefix") String prefix) {
58-
super(maxThreads, minThreads, idleTimeout, queue);
117+
super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);
59118
this.metricRegistry = registry;
60119
this.prefix = prefix;
61120
}

metrics-jetty11/src/main/java/io/dropwizard/metrics/jetty11/InstrumentedQueuedThreadPool.java

Lines changed: 61 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.eclipse.jetty.util.thread.QueuedThreadPool;
77

88
import java.util.concurrent.BlockingQueue;
9+
import java.util.concurrent.ThreadFactory;
910

1011
import static com.codahale.metrics.MetricRegistry.name;
1112

@@ -34,6 +35,13 @@ public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
3435
this(registry, maxThreads, minThreads, 60000);
3536
}
3637

38+
public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
39+
@Name("maxThreads") int maxThreads,
40+
@Name("minThreads") int minThreads,
41+
@Name("queue") BlockingQueue<Runnable> queue) {
42+
this(registry, maxThreads, minThreads, 60000, queue);
43+
}
44+
3745
public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
3846
@Name("maxThreads") int maxThreads,
3947
@Name("minThreads") int minThreads,
@@ -46,16 +54,67 @@ public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
4654
@Name("minThreads") int minThreads,
4755
@Name("idleTimeout") int idleTimeout,
4856
@Name("queue") BlockingQueue<Runnable> queue) {
49-
this(registry, maxThreads, minThreads, idleTimeout, queue, null);
57+
this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);
58+
}
59+
60+
public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
61+
@Name("maxThreads") int maxThreads,
62+
@Name("minThreads") int minThreads,
63+
@Name("idleTimeout") int idleTimeout,
64+
@Name("queue") BlockingQueue<Runnable> queue,
65+
@Name("prefix") String prefix) {
66+
this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);
67+
}
68+
69+
public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
70+
@Name("maxThreads") int maxThreads,
71+
@Name("minThreads") int minThreads,
72+
@Name("idleTimeout") int idleTimeout,
73+
@Name("queue") BlockingQueue<Runnable> queue,
74+
@Name("threadFactory") ThreadFactory threadFactory) {
75+
this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);
76+
}
77+
78+
public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
79+
@Name("maxThreads") int maxThreads,
80+
@Name("minThreads") int minThreads,
81+
@Name("idleTimeout") int idleTimeout,
82+
@Name("queue") BlockingQueue<Runnable> queue,
83+
@Name("threadGroup") ThreadGroup threadGroup) {
84+
this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);
85+
}
86+
87+
public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
88+
@Name("maxThreads") int maxThreads,
89+
@Name("minThreads") int minThreads,
90+
@Name("idleTimeout") int idleTimeout,
91+
@Name("reservedThreads") int reservedThreads,
92+
@Name("queue") BlockingQueue<Runnable> queue,
93+
@Name("threadGroup") ThreadGroup threadGroup) {
94+
this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);
95+
}
96+
97+
public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
98+
@Name("maxThreads") int maxThreads,
99+
@Name("minThreads") int minThreads,
100+
@Name("idleTimeout") int idleTimeout,
101+
@Name("reservedThreads") int reservedThreads,
102+
@Name("queue") BlockingQueue<Runnable> queue,
103+
@Name("threadGroup") ThreadGroup threadGroup,
104+
@Name("threadFactory") ThreadFactory threadFactory) {
105+
this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);
50106
}
51107

52108
public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
53109
@Name("maxThreads") int maxThreads,
54110
@Name("minThreads") int minThreads,
55111
@Name("idleTimeout") int idleTimeout,
112+
@Name("reservedThreads") int reservedThreads,
56113
@Name("queue") BlockingQueue<Runnable> queue,
114+
@Name("threadGroup") ThreadGroup threadGroup,
115+
@Name("threadFactory") ThreadFactory threadFactory,
57116
@Name("prefix") String prefix) {
58-
super(maxThreads, minThreads, idleTimeout, queue);
117+
super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);
59118
this.metricRegistry = registry;
60119
this.prefix = prefix;
61120
}

metrics-jetty12/src/main/java/io/dropwizard/metrics/jetty12/InstrumentedQueuedThreadPool.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,16 @@ public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
5454
@Name("minThreads") int minThreads,
5555
@Name("idleTimeout") int idleTimeout,
5656
@Name("queue") BlockingQueue<Runnable> queue) {
57-
this(registry, maxThreads, minThreads, idleTimeout, queue, null);
57+
this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);
58+
}
59+
60+
public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
61+
@Name("maxThreads") int maxThreads,
62+
@Name("minThreads") int minThreads,
63+
@Name("idleTimeout") int idleTimeout,
64+
@Name("queue") BlockingQueue<Runnable> queue,
65+
@Name("threadFactory") ThreadFactory threadFactory) {
66+
this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);
5867
}
5968

6069
public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,

0 commit comments

Comments
 (0)