summaryrefslogtreecommitdiffstats
path: root/docker-api
diff options
context:
space:
mode:
authorvalerijf <valerijf@yahoo-inc.com>2016-09-29 09:16:13 +0200
committervalerijf <valerijf@yahoo-inc.com>2016-09-29 09:45:47 +0200
commitb29108db8c2cbb0bd537ab33500d88b49010f5a9 (patch)
treef1fb5049cdbff24cdb802554ba964b3dbfde7e75 /docker-api
parent1a80d176855b0b45d79e1c081d3cccae7c008e2d (diff)
Fixed synchronization and added copyright
Diffstat (limited to 'docker-api')
-rw-r--r--docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/CounterWrapper.java7
-rw-r--r--docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/GaugeWrapper.java10
-rw-r--r--docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricReceiverWrapper.java5
-rw-r--r--docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricValue.java1
-rw-r--r--docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerTest.java4
5 files changed, 19 insertions, 8 deletions
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/CounterWrapper.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/CounterWrapper.java
index 59fd6a82682..f6b398e83a2 100644
--- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/CounterWrapper.java
+++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/CounterWrapper.java
@@ -1,3 +1,4 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.dockerapi.metrics;
import com.yahoo.metrics.simple.Counter;
@@ -9,6 +10,8 @@ import com.yahoo.metrics.simple.Counter;
* @author valerijf
*/
public class CounterWrapper implements MetricValue {
+ private final Object lock = new Object();
+
private final Counter counter;
private long value = 0;
@@ -21,7 +24,7 @@ public class CounterWrapper implements MetricValue {
}
public void add(long n) {
- synchronized (counter) {
+ synchronized (lock) {
counter.add(n);
value += n;
}
@@ -29,7 +32,7 @@ public class CounterWrapper implements MetricValue {
@Override
public Number getValue() {
- synchronized (counter) {
+ synchronized (lock) {
return value;
}
}
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/GaugeWrapper.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/GaugeWrapper.java
index aae841b24fc..db0670c2f87 100644
--- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/GaugeWrapper.java
+++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/GaugeWrapper.java
@@ -1,6 +1,6 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.dockerapi.metrics;
-
import com.yahoo.metrics.simple.Gauge;
/**
@@ -10,6 +10,8 @@ import com.yahoo.metrics.simple.Gauge;
* @author valerijf
*/
public class GaugeWrapper implements MetricValue {
+ private final Object lock = new Object();
+
private final Gauge gauge;
private double value;
@@ -18,7 +20,7 @@ public class GaugeWrapper implements MetricValue {
}
public void sample(double x) {
- synchronized (gauge) {
+ synchronized (lock) {
gauge.sample(x);
this.value = x;
}
@@ -26,6 +28,8 @@ public class GaugeWrapper implements MetricValue {
@Override
public Number getValue() {
- return value;
+ synchronized (lock) {
+ return value;
+ }
}
}
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricReceiverWrapper.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricReceiverWrapper.java
index 851af65dfb3..a670c29a983 100644
--- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricReceiverWrapper.java
+++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricReceiverWrapper.java
@@ -1,12 +1,13 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.dockerapi.metrics;
import com.google.inject.Inject;
import com.yahoo.metrics.simple.MetricReceiver;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
/**
* Export metrics to both /state/v1/metrics and makes them available programatically.
@@ -14,7 +15,7 @@ import java.util.Set;
* @author valerijf
*/
public class MetricReceiverWrapper {
- private final Map<String, MetricValue> metrics = new HashMap<>();
+ private final Map<String, MetricValue> metrics = new ConcurrentHashMap<>();
private final MetricReceiver metricReceiver;
@Inject
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricValue.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricValue.java
index a53c0d0188c..f9e04694cb5 100644
--- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricValue.java
+++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/metrics/MetricValue.java
@@ -1,3 +1,4 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.dockerapi.metrics;
/**
diff --git a/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerTest.java b/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerTest.java
index 7aa0ae9b701..6c5d6b1f3bb 100644
--- a/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerTest.java
+++ b/docker-api/src/test/java/com/yahoo/vespa/hosted/dockerapi/DockerTest.java
@@ -3,6 +3,8 @@ package com.yahoo.vespa.hosted.dockerapi;
import com.github.dockerjava.api.model.Network;
import com.github.dockerjava.core.command.BuildImageResultCallback;
+import com.yahoo.metrics.simple.MetricReceiver;
+import com.yahoo.vespa.hosted.dockerapi.metrics.MetricReceiverWrapper;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
@@ -42,7 +44,7 @@ public class DockerTest {
.clientKeyPath("")
.uri("unix:///var/run/docker.sock"));
- private static final DockerImpl docker = new DockerImpl(dockerConfig, null);
+ private static final DockerImpl docker = new DockerImpl(dockerConfig, new MetricReceiverWrapper(MetricReceiver.nullImplementation));
private static final DockerImage dockerImage = new DockerImage("simple-ipv6-server:Dockerfile");