Skip to content

Commit f9dcb52

Browse files
committed
Fixes from review.
- Hide more methods (no incubating methods in public APIs that are not internal) - Update builder API to use attributes directly - Use static instances in Noop API
1 parent d220005 commit f9dcb52

File tree

19 files changed

+155
-125
lines changed

19 files changed

+155
-125
lines changed

api/incubator/src/main/java/io/opentelemetry/api/incubator/entities/ExtendedOpenTelemetry.java renamed to api/incubator/src/main/java/io/opentelemetry/api/incubator/ExtendedOpenTelemetry.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
* SPDX-License-Identifier: Apache-2.0
44
*/
55

6-
package io.opentelemetry.api.incubator.entities;
6+
package io.opentelemetry.api.incubator;
77

88
import io.opentelemetry.api.OpenTelemetry;
9+
import io.opentelemetry.api.incubator.entities.Resource;
10+
import io.opentelemetry.api.incubator.entities.ResourceProvider;
911

1012
/** Extension to {@link OpenTelemetry} that adds {@link ResourceProvider}. */
1113
public interface ExtendedOpenTelemetry extends OpenTelemetry {

api/incubator/src/main/java/io/opentelemetry/api/incubator/entities/EntityBuilder.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
package io.opentelemetry.api.incubator.entities;
77

88
import io.opentelemetry.api.common.Attributes;
9-
import io.opentelemetry.api.common.AttributesBuilder;
10-
import java.util.function.Consumer;
119

1210
/**
1311
* A builder of an Entity that allows to add identifying or descriptive {@link Attributes}, as well
@@ -37,18 +35,18 @@ public interface EntityBuilder {
3735
/**
3836
* Modify the descriptive attributes of this Entity.
3937
*
40-
* @param f A {@link Consumer} which builds the descriptive attributes.
38+
* @param description The {@link Attributes} which describe this Entity.
4139
* @return this
4240
*/
43-
EntityBuilder withDescription(Consumer<AttributesBuilder> f);
41+
EntityBuilder withDescription(Attributes description);
4442

4543
/**
4644
* Modify the identifying attributes of this Entity.
4745
*
48-
* @param f A {@link Consumer} which builds the identifying attributes.
46+
* @param id The {@link Attributes} which identify this Entity.
4947
* @return this
5048
*/
51-
EntityBuilder withId(Consumer<AttributesBuilder> f);
49+
EntityBuilder withId(Attributes id);
5250

5351
/** Emits the current entity. */
5452
void emit();

api/incubator/src/main/java/io/opentelemetry/api/incubator/entities/NoopEntityBuilder.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,24 @@
55

66
package io.opentelemetry.api.incubator.entities;
77

8-
import io.opentelemetry.api.common.AttributesBuilder;
9-
import java.util.function.Consumer;
8+
import io.opentelemetry.api.common.Attributes;
109

1110
final class NoopEntityBuilder implements EntityBuilder {
11+
12+
static final EntityBuilder INSTANCE = new NoopEntityBuilder();
13+
1214
@Override
1315
public EntityBuilder setSchemaUrl(String schemaUrl) {
1416
return this;
1517
}
1618

1719
@Override
18-
public EntityBuilder withDescription(Consumer<AttributesBuilder> f) {
20+
public EntityBuilder withDescription(Attributes description) {
1921
return this;
2022
}
2123

2224
@Override
23-
public EntityBuilder withId(Consumer<AttributesBuilder> f) {
25+
public EntityBuilder withId(Attributes id) {
2426
return this;
2527
}
2628

api/incubator/src/main/java/io/opentelemetry/api/incubator/entities/NoopResource.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,15 @@
77

88
final class NoopResource implements Resource {
99

10+
static final Resource INSTANCE = new NoopResource();
11+
1012
@Override
1113
public boolean removeEntity(String entityType) {
1214
return false;
1315
}
1416

1517
@Override
1618
public EntityBuilder attachEntity(String entityType) {
17-
return new NoopEntityBuilder();
19+
return NoopEntityBuilder.INSTANCE;
1820
}
1921
}

api/incubator/src/main/java/io/opentelemetry/api/incubator/entities/NoopResourceProvider.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@
77

88
final class NoopResourceProvider implements ResourceProvider {
99

10+
static final ResourceProvider INSTANCE = new NoopResourceProvider();
11+
1012
@Override
1113
public Resource getResource() {
12-
return new NoopResource();
14+
return NoopResource.INSTANCE;
1315
}
1416
}

api/incubator/src/main/java/io/opentelemetry/api/incubator/entities/ResourceProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public interface ResourceProvider {
1717
* not record nor are emitted.
1818
*/
1919
static ResourceProvider noop() {
20-
return new NoopResourceProvider();
20+
return NoopResourceProvider.INSTANCE;
2121
}
2222

2323
/** Returns the active {@link Resource} for which Telemetry is reported. */

exporters/otlp/common/src/main/java/io/opentelemetry/exporter/internal/otlp/EntityRefMarshaler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
* <p>This class is internal and is hence not for public use. Its APIs are unstable and can change
2222
* at any time.
2323
*/
24-
public final class EntityRefMarshaler extends MarshalerWithSize {
24+
final class EntityRefMarshaler extends MarshalerWithSize {
2525
@Nullable private final byte[] schemaUrlUtf8;
2626
private final byte[] typeUtf8;
2727
private final byte[][] idKeysUtf8;
@@ -38,7 +38,7 @@ protected void writeTo(Serializer output) throws IOException {
3838
}
3939

4040
/** Consttructs an entity reference marshaler from a full entity. */
41-
public static EntityRefMarshaler createForEntity(Entity e) {
41+
static EntityRefMarshaler createForEntity(Entity e) {
4242
byte[] schemaUrlUtf8 = null;
4343
if (!StringUtils.isNullOrEmpty(e.getSchemaUrl())) {
4444
schemaUrlUtf8 = e.getSchemaUrl().getBytes(StandardCharsets.UTF_8);

exporters/otlp/common/src/test/java/io/opentelemetry/exporter/internal/otlp/EntityRefMarshalerTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.google.protobuf.InvalidProtocolBufferException;
1111
import com.google.protobuf.Message;
1212
import com.google.protobuf.util.JsonFormat;
13+
import io.opentelemetry.api.common.Attributes;
1314
import io.opentelemetry.exporter.internal.marshal.Marshaler;
1415
import io.opentelemetry.proto.common.v1.EntityRef;
1516
import io.opentelemetry.sdk.resources.internal.Entity;
@@ -25,8 +26,8 @@ void toEntityRefs() {
2526
Entity e =
2627
Entity.builder("test")
2728
.setSchemaUrl("test-url")
28-
.withDescription(attr -> attr.put("desc.key", "desc.value"))
29-
.withId(attr -> attr.put("id.key", "id.value"))
29+
.withDescription(Attributes.builder().put("desc.key", "desc.value").build())
30+
.withId(Attributes.builder().put("id.key", "id.value").build())
3031
.build();
3132
EntityRef proto = parse(EntityRef.getDefaultInstance(), EntityRefMarshaler.createForEntity(e));
3233
assertThat(proto.getType()).isEqualTo("test");

sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/ExtendedOpenTelemetrySdk.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
package io.opentelemetry.sdk.extension.incubator;
77

8-
import io.opentelemetry.api.incubator.entities.ExtendedOpenTelemetry;
8+
import io.opentelemetry.api.incubator.ExtendedOpenTelemetry;
99
import io.opentelemetry.api.incubator.entities.ResourceProvider;
1010
import io.opentelemetry.sdk.common.CompletableResultCode;
1111
import io.opentelemetry.sdk.logs.SdkLoggerProvider;

sdk-extensions/incubator/src/main/java/io/opentelemetry/sdk/extension/incubator/entities/SdkEntityBuilder.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
package io.opentelemetry.sdk.extension.incubator.entities;
77

8-
import io.opentelemetry.api.common.AttributesBuilder;
8+
import io.opentelemetry.api.common.Attributes;
99
import io.opentelemetry.api.incubator.entities.EntityBuilder;
1010
import io.opentelemetry.sdk.resources.internal.Entity;
1111
import java.util.function.Consumer;
@@ -26,14 +26,14 @@ public EntityBuilder setSchemaUrl(String schemaUrl) {
2626
}
2727

2828
@Override
29-
public EntityBuilder withDescription(Consumer<AttributesBuilder> f) {
30-
builder.withDescription(f);
29+
public EntityBuilder withDescription(Attributes description) {
30+
builder.withDescription(description);
3131
return this;
3232
}
3333

3434
@Override
35-
public EntityBuilder withId(Consumer<AttributesBuilder> f) {
36-
builder.withId(f);
35+
public EntityBuilder withId(Attributes id) {
36+
builder.withId(id);
3737
return this;
3838
}
3939

0 commit comments

Comments
 (0)