Skip to content
This repository was archived by the owner on Dec 23, 2023. It is now read-only.

Commit 4f53ef4

Browse files
authored
Merge pull request #20 from dinooliva/census-statics
Removes unnecessary static methods from class Census.
2 parents 89a6bd7 + a46440b commit 4f53ef4

File tree

7 files changed

+110
-76
lines changed

7 files changed

+110
-76
lines changed

core/java/com/google/census/Census.java

Lines changed: 3 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -13,42 +13,20 @@
1313

1414
package com.google.census;
1515

16-
import java.nio.ByteBuffer;
17-
18-
import javax.annotation.Nullable;
19-
2016
/**
2117
* {@link Census}.
2218
*/
2319
public final class Census {
2420
private static final CensusContextFactory CONTEXT_FACTORY = new Provider<CensusContextFactory>(
2521
"com.google.census.CensusContextFactoryImpl").newInstance();
2622

27-
private static final CensusContext DEFAULT = CONTEXT_FACTORY.getCurrent();
28-
2923
/** Returns the default {@link CensusContextFactory}. */
3024
public static CensusContextFactory getCensusContextFactory() {
3125
return CONTEXT_FACTORY;
3226
}
3327

34-
/** Returns the default {@link CensusContext}. */
35-
public static CensusContext getDefault() {
36-
return DEFAULT;
37-
}
38-
39-
/** Returns the current thread-local {@link CensusContext}. */
40-
public static CensusContext getCurrent() {
41-
return CONTEXT_FACTORY.getCurrent();
42-
}
43-
44-
/**
45-
* Creates a {@link CensusContext} from the given on-the-wire encoded representation.
46-
*
47-
* <p>Should be the inverse of {@link CensusContext#serialize()}. The serialized representation
48-
* should be based on the {@link CensusContext} protobuf representation.
49-
*/
50-
@Nullable
51-
public static CensusContext deserialize(ByteBuffer buffer) {
52-
return CONTEXT_FACTORY.deserialize(buffer);
28+
// VisibleForTesting
29+
Census() {
30+
throw new AssertionError();
5331
}
5432
}

core/java/com/google/census/CensusScope.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public final class CensusScope implements Closeable {
4141
* current. Restores the saved {@link CensusContext} on close.
4242
*/
4343
public CensusScope(CensusContext context) {
44-
saved = Census.getCurrent();
44+
saved = Census.getCensusContextFactory().getCurrent();
4545
context.setCurrent();
4646
}
4747

@@ -74,7 +74,8 @@ public static CensusScope of(
7474

7575
/** Builder for {@link CensusScope}. */
7676
public static final class Builder {
77-
private final CensusContext.Builder builder = Census.getCurrent().builder();
77+
private final CensusContext.Builder builder =
78+
Census.getCensusContextFactory().getCurrent().builder();
7879

7980
public Builder set(TagKey key, TagValue value) {
8081
builder.set(key, value);

core/javatests/com/google/census/CensusContextFactoryTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,13 @@
2727
public class CensusContextFactoryTest {
2828
@Test
2929
public void testDeserializeEmpty() {
30-
assertThat(Census.deserialize(ByteBuffer.wrap(new byte[0]))).isEqualTo(Census.getDefault());
30+
assertThat(Census.getCensusContextFactory().deserialize(ByteBuffer.wrap(new byte[0])))
31+
.isEqualTo(Census.getCensusContextFactory().getDefault());
3132
}
3233

3334
@Test
3435
public void testGetCurrent() {
35-
assertThat(Census.getCurrent()).isEqualTo(Census.getDefault());
36+
assertThat(Census.getCensusContextFactory().getCurrent())
37+
.isEqualTo(Census.getCensusContextFactory().getDefault());
3638
}
3739
}

core/javatests/com/google/census/CensusContextTest.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
*/
2929
@RunWith(JUnit4.class)
3030
public class CensusContextTest {
31-
private static final CensusContext DEFAULT = Census.getDefault();
31+
private static final CensusContext DEFAULT = Census.getCensusContextFactory().getDefault();
3232

3333
private static final MetricName[] CensusMetricNames = {
3434
RpcConstants.RPC_CLIENT_REQUEST_BYTES, RpcConstants.RPC_CLIENT_RESPONSE_BYTES,
@@ -118,27 +118,28 @@ public void testSerialize() {
118118

119119
@Test
120120
public void testSetCurrent() {
121-
assertThat(DEFAULT).isEqualTo(Census.getCurrent());
121+
assertThat(DEFAULT).isEqualTo(Census.getCensusContextFactory().getCurrent());
122122

123123
CensusContext context = DEFAULT.with(K1, V1);
124124
context.setCurrent();
125-
assertThat(context).isEqualTo(Census.getCurrent());
125+
assertThat(context).isEqualTo(Census.getCensusContextFactory().getCurrent());
126126

127127
DEFAULT.setCurrent();
128-
assertThat(DEFAULT).isEqualTo(Census.getCurrent());
128+
assertThat(DEFAULT).isEqualTo(Census.getCensusContextFactory().getCurrent());
129129
}
130130

131131
@Test
132132
public void testMultipleThreadsWithContext() throws Exception {
133-
CensusContext currentContext = Census.getCurrent();
134-
CensusContext c1 = Census.getDefault().with(K1, V1);
135-
CensusContext c2 = Census.getDefault().with(K2, V2);
133+
CensusContext currentContext = Census.getCensusContextFactory().getCurrent();
134+
CensusContext c1 = Census.getCensusContextFactory().getDefault().with(K1, V1);
135+
CensusContext c2 = Census.getCensusContextFactory().getDefault().with(K2, V2);
136136
ExecutorService executor = Executors.newFixedThreadPool(1);
137137
// Attach c1 to the executor thread.
138-
Future<?> future = executor.submit(withContext(Census.getDefault(), c1));
138+
Future<?> future =
139+
executor.submit(withContext(Census.getCensusContextFactory().getDefault(), c1));
139140
future.get();
140141
// Verify that the context for the current thread was not updated.
141-
assertThat(Census.getCurrent()).isEqualTo(currentContext);
142+
assertThat(Census.getCensusContextFactory().getCurrent()).isEqualTo(currentContext);
142143
// Attach c2 to the executor thread.
143144
future = executor.submit(withContext(c1, c2));
144145
future.get();
@@ -169,17 +170,17 @@ public void testToString() {
169170
}
170171

171172
private static void testSerialization(CensusContext expected) {
172-
CensusContext actual = Census.deserialize(expected.serialize());
173+
CensusContext actual = Census.getCensusContextFactory().deserialize(expected.serialize());
173174
assertThat(actual).isEqualTo(expected);
174175
}
175176

176177
private static final Runnable withContext(final CensusContext prev, final CensusContext next) {
177178
return new Runnable() {
178179
@Override
179180
public void run() {
180-
assertThat(Census.getCurrent()).isEqualTo(prev);
181+
assertThat(Census.getCensusContextFactory().getCurrent()).isEqualTo(prev);
181182
next.setCurrent();
182-
assertThat(Census.getCurrent()).isEqualTo(next);
183+
assertThat(Census.getCensusContextFactory().getCurrent()).isEqualTo(next);
183184
}
184185
};
185186
}

core/javatests/com/google/census/CensusScopeTest.java

Lines changed: 39 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -36,83 +36,95 @@ public class CensusScopeTest {
3636

3737
@Test
3838
public void testNoScope() {
39-
assertEquals(Census.getCurrent(), Census.getDefault());
39+
assertEquals(
40+
Census.getCensusContextFactory().getCurrent(),
41+
Census.getCensusContextFactory().getDefault());
4042
}
4143

4244
@Test
4345
public void testScope() {
44-
CensusScope scope = new CensusScope(Census.getCurrent().with(K1, V1));
46+
CensusScope scope = new CensusScope(Census.getCensusContextFactory().getCurrent().with(K1, V1));
4547
try {
4648
assertEquals(
47-
Census.getDefault().with(K1, V1),
48-
Census.getCurrent());
49+
Census.getCensusContextFactory().getDefault().with(K1, V1),
50+
Census.getCensusContextFactory().getCurrent());
4951
} finally {
5052
scope.close();
5153
}
52-
assertEquals(Census.getDefault(), Census.getCurrent());
54+
assertEquals(
55+
Census.getCensusContextFactory().getDefault(),
56+
Census.getCensusContextFactory().getCurrent());
5357
}
5458

5559
@Test
5660
public void testNestedScope() {
57-
CensusScope s1 = new CensusScope(Census.getCurrent().with(K1, V1));
61+
CensusScope s1 = new CensusScope(Census.getCensusContextFactory().getCurrent().with(K1, V1));
5862
try {
5963
assertEquals(
60-
Census.getDefault().with(K1, V1),
61-
Census.getCurrent());
62-
CensusScope s2 = new CensusScope(Census.getCurrent().with(K2, V2));
64+
Census.getCensusContextFactory().getDefault().with(K1, V1),
65+
Census.getCensusContextFactory().getCurrent());
66+
CensusScope s2 = new CensusScope(Census.getCensusContextFactory().getCurrent().with(K2, V2));
6367
try {
6468
assertEquals(
65-
Census.getDefault().with(K1, V1).with(K2, V2),
66-
Census.getCurrent());
69+
Census.getCensusContextFactory().getDefault().with(K1, V1).with(K2, V2),
70+
Census.getCensusContextFactory().getCurrent());
6771
} finally {
6872
s2.close();
6973
}
7074
assertEquals(
71-
Census.getDefault().with(K1, V1),
72-
Census.getCurrent());
75+
Census.getCensusContextFactory().getDefault().with(K1, V1),
76+
Census.getCensusContextFactory().getCurrent());
7377
} finally {
7478
s1.close();
7579
}
76-
assertEquals(Census.getDefault(), Census.getCurrent());
80+
assertEquals(
81+
Census.getCensusContextFactory().getDefault(),
82+
Census.getCensusContextFactory().getCurrent());
7783
}
7884

7985
@Test
8086
public void testOf1() {
8187
CensusScope scope = CensusScope.of(K1, V1);
8288
try {
8389
assertEquals(
84-
Census.getDefault().with(K1, V1),
85-
Census.getCurrent());
90+
Census.getCensusContextFactory().getDefault().with(K1, V1),
91+
Census.getCensusContextFactory().getCurrent());
8692
} finally {
8793
scope.close();
8894
}
89-
assertEquals(Census.getDefault(), Census.getCurrent());
95+
assertEquals(
96+
Census.getCensusContextFactory().getDefault(),
97+
Census.getCensusContextFactory().getCurrent());
9098
}
9199

92100
@Test
93101
public void testOf2() {
94102
CensusScope scope = CensusScope.of(K1, V1, K2, V2);
95103
try {
96104
assertEquals(
97-
Census.getDefault().with(K1, V1, K2, V2),
98-
Census.getCurrent());
105+
Census.getCensusContextFactory().getDefault().with(K1, V1, K2, V2),
106+
Census.getCensusContextFactory().getCurrent());
99107
} finally {
100108
scope.close();
101109
}
102-
assertEquals(Census.getDefault(), Census.getCurrent());
110+
assertEquals(
111+
Census.getCensusContextFactory().getDefault(),
112+
Census.getCensusContextFactory().getCurrent());
103113
}
104114

105115
@Test
106116
public void testOf3() {
107117
CensusScope scope = CensusScope.of(K1, V1, K2, V2, K3, V3);
108118
try {
109119
assertEquals(
110-
Census.getDefault().with(K1, V1, K2, V2, K3, V3),
111-
Census.getCurrent());
120+
Census.getCensusContextFactory().getDefault().with(K1, V1, K2, V2, K3, V3),
121+
Census.getCensusContextFactory().getCurrent());
112122
} finally {
113123
scope.close();
114124
}
115-
assertEquals(Census.getDefault(), Census.getCurrent());
125+
assertEquals(
126+
Census.getCensusContextFactory().getDefault(),
127+
Census.getCensusContextFactory().getCurrent());
116128
}
117129

118130
@Test
@@ -122,11 +134,12 @@ public void testBuilder() {
122134
CensusScope scope = builder.build();
123135
try {
124136
assertEquals(
125-
Census.getDefault().builder().set(K1, V1).set(K2, V2).set(K3, V3).set(K4, V4).build(),
126-
Census.getCurrent());
137+
Census.getCensusContextFactory().getDefault()
138+
.builder().set(K1, V1).set(K2, V2).set(K3, V3).set(K4, V4).build(),
139+
Census.getCensusContextFactory().getCurrent());
127140
} finally {
128141
scope.close();
129142
}
130-
assertEquals(Census.getDefault(), Census.getCurrent());
143+
assertEquals(Census.getCensusContextFactory().getDefault(), Census.getCensusContextFactory().getCurrent());
131144
}
132145
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
* Copyright 2016, Google Inc.
3+
* Licensed under the Apache License, Version 2.0 (the "License");
4+
* you may not use this file except in compliance with the License.
5+
* You may obtain a copy of the License at
6+
* http://www.apache.org/licenses/LICENSE-2.0
7+
* Unless required by applicable law or agreed to in writing, software
8+
* distributed under the License is distributed on an "AS IS" BASIS,
9+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10+
* See the License for the specific language governing permissions and
11+
* limitations under the License.
12+
*/
13+
14+
package com.google.census;
15+
16+
import static com.google.common.truth.Truth.assertThat;
17+
18+
import org.junit.Test;
19+
import org.junit.runner.RunWith;
20+
import org.junit.runners.JUnit4;
21+
22+
/**
23+
* Tests for {@link RpcConstants}
24+
*/
25+
@RunWith(JUnit4.class)
26+
public final class CensusTest {
27+
@Test
28+
public void getCensusContextFactory() {
29+
assertThat(Census.getCensusContextFactory()).isNotNull();
30+
}
31+
32+
@Test(expected = AssertionError.class)
33+
public void testConstructor() {
34+
new Census();
35+
}
36+
}

examples/java/com/google/census/CensusRunner.java

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,27 +37,30 @@ public class CensusRunner {
3737

3838
public static void main(String args[]) {
3939
System.out.println("Hello Census World");
40-
System.out.println("Default Tags: " + Census.getDefault());
41-
System.out.println("Current Tags: " + Census.getCurrent());
40+
System.out.println("Default Tags: " + Census.getCensusContextFactory().getDefault());
41+
System.out.println("Current Tags: " + Census.getCensusContextFactory().getCurrent());
4242
CensusScope scope1 = CensusScope.of(K1, V1, K2, V2);
4343
try {
44-
CensusContext context1 = Census.getDefault().with(K1, V1, K2, V2);
45-
System.out.println(" Current Tags: " + Census.getCurrent());
46-
System.out.println(" Current == Default + tags1: " + Census.getCurrent().equals(context1));
44+
CensusContext context1 = Census.getCensusContextFactory().getDefault().with(K1, V1, K2, V2);
45+
System.out.println(" Current Tags: " + Census.getCensusContextFactory().getCurrent());
46+
System.out.println(" Current == Default + tags1: "
47+
+ Census.getCensusContextFactory().getCurrent().equals(context1));
4748
CensusScope scope2 = CensusScope.of(K3, V3, K4, V4);
4849
try {
4950
CensusContext context2 = context1.with(K3, V3, K4, V4);
50-
System.out.println(" Current Tags: " + Census.getCurrent());
51+
System.out.println(" Current Tags: "
52+
+ Census.getCensusContextFactory().getCurrent());
5153
System.out.println(" Current == Default + tags1 + tags2: "
52-
+ Census.getCurrent().equals(context2));
53-
Census.getCurrent().record(MetricMap.of(M1, 0.2, M2, 0.4));
54+
+ Census.getCensusContextFactory().getCurrent().equals(context2));
55+
Census.getCensusContextFactory().getCurrent().record(MetricMap.of(M1, 0.2, M2, 0.4));
5456
} finally {
5557
scope2.close();
5658
}
5759
} finally {
5860
scope1.close();
5961
}
6062
System.out.println("Current == Default: " +
61-
Census.getCurrent().equals(Census.getDefault()));
63+
Census.getCensusContextFactory().getCurrent()
64+
.equals(Census.getCensusContextFactory().getDefault()));
6265
}
6366
}

0 commit comments

Comments
 (0)