aboutsummaryrefslogtreecommitdiff
path: root/kamon-akka-remote
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2014-11-03 23:27:57 +0100
committerIvan Topolnjak <ivantopo@gmail.com>2014-11-03 23:27:57 +0100
commit59faf588080b137817444a6877170e2bd687427f (patch)
treea5f1cadf6c21915938d435e1a9d01583475d0c6a /kamon-akka-remote
parent4b999c39b6bd09d891de718fad10b795264755c6 (diff)
parent6e3d9ae88ecce10420eeac82294c54c1b43dedf4 (diff)
downloadKamon-59faf588080b137817444a6877170e2bd687427f.tar.gz
Kamon-59faf588080b137817444a6877170e2bd687427f.tar.bz2
Kamon-59faf588080b137817444a6877170e2bd687427f.zip
Merge branch 'master' into release-0.2, kamon-play still need fixes.
Conflicts: kamon-core/src/main/scala/kamon/instrumentation/akka/ActorCellInstrumentation.scala kamon-core/src/test/scala/kamon/metric/RouterMetricsSpec.scala kamon-newrelic/src/main/scala/kamon/newrelic/NewRelic.scala kamon-play/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala kamon-play/src/main/scala/kamon/play/instrumentation/WSInstrumentation.scala kamon-play/src/test/scala/kamon/play/WSInstrumentationSpec.scala kamon-playground/src/main/scala/test/SimpleRequestProcessor.scala kamon-statsd/src/main/scala/kamon/statsd/StatsD.scala project/Dependencies.scala
Diffstat (limited to 'kamon-akka-remote')
-rw-r--r--kamon-akka-remote/src/main/java/akka/remote/instrumentation/TraceContextAwareWireFormats.java2261
-rw-r--r--kamon-akka-remote/src/main/resources/META-INF/aop.xml12
-rw-r--r--kamon-akka-remote/src/main/scala/kamon/instrumentation/akka/RemotingInstrumentation.scala99
-rw-r--r--kamon-akka-remote/src/test/scala/kamon/instrumentation/akka/RemotingInstrumentationSpec.scala170
4 files changed, 2542 insertions, 0 deletions
diff --git a/kamon-akka-remote/src/main/java/akka/remote/instrumentation/TraceContextAwareWireFormats.java b/kamon-akka-remote/src/main/java/akka/remote/instrumentation/TraceContextAwareWireFormats.java
new file mode 100644
index 00000000..36a01f25
--- /dev/null
+++ b/kamon-akka-remote/src/main/java/akka/remote/instrumentation/TraceContextAwareWireFormats.java
@@ -0,0 +1,2261 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: TraceContextAwareWireFormats.proto
+
+package akka.remote.instrumentation;
+
+public final class TraceContextAwareWireFormats {
+ private TraceContextAwareWireFormats() {}
+ public static void registerAllExtensions(
+ com.google.protobuf.ExtensionRegistry registry) {
+ }
+ public interface AckAndTraceContextAwareEnvelopeContainerOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // optional .AcknowledgementInfo ack = 1;
+ boolean hasAck();
+ akka.remote.WireFormats.AcknowledgementInfo getAck();
+ akka.remote.WireFormats.AcknowledgementInfoOrBuilder getAckOrBuilder();
+
+ // optional .TraceContextAwareRemoteEnvelope envelope = 2;
+ boolean hasEnvelope();
+ akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope getEnvelope();
+ akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelopeOrBuilder getEnvelopeOrBuilder();
+ }
+ public static final class AckAndTraceContextAwareEnvelopeContainer extends
+ com.google.protobuf.GeneratedMessage
+ implements AckAndTraceContextAwareEnvelopeContainerOrBuilder {
+ // Use AckAndTraceContextAwareEnvelopeContainer.newBuilder() to construct.
+ private AckAndTraceContextAwareEnvelopeContainer(Builder builder) {
+ super(builder);
+ }
+ private AckAndTraceContextAwareEnvelopeContainer(boolean noInit) {}
+
+ private static final AckAndTraceContextAwareEnvelopeContainer defaultInstance;
+ public static AckAndTraceContextAwareEnvelopeContainer getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public AckAndTraceContextAwareEnvelopeContainer getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return akka.remote.instrumentation.TraceContextAwareWireFormats.internal_static_AckAndTraceContextAwareEnvelopeContainer_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return akka.remote.instrumentation.TraceContextAwareWireFormats.internal_static_AckAndTraceContextAwareEnvelopeContainer_fieldAccessorTable;
+ }
+
+ private int bitField0_;
+ // optional .AcknowledgementInfo ack = 1;
+ public static final int ACK_FIELD_NUMBER = 1;
+ private akka.remote.WireFormats.AcknowledgementInfo ack_;
+ public boolean hasAck() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public akka.remote.WireFormats.AcknowledgementInfo getAck() {
+ return ack_;
+ }
+ public akka.remote.WireFormats.AcknowledgementInfoOrBuilder getAckOrBuilder() {
+ return ack_;
+ }
+
+ // optional .TraceContextAwareRemoteEnvelope envelope = 2;
+ public static final int ENVELOPE_FIELD_NUMBER = 2;
+ private akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope envelope_;
+ public boolean hasEnvelope() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope getEnvelope() {
+ return envelope_;
+ }
+ public akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelopeOrBuilder getEnvelopeOrBuilder() {
+ return envelope_;
+ }
+
+ private void initFields() {
+ ack_ = akka.remote.WireFormats.AcknowledgementInfo.getDefaultInstance();
+ envelope_ = akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope.getDefaultInstance();
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ if (hasAck()) {
+ if (!getAck().isInitialized()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
+ }
+ if (hasEnvelope()) {
+ if (!getEnvelope().isInitialized()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
+ }
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeMessage(1, ack_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeMessage(2, envelope_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(1, ack_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(2, envelope_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainerOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return akka.remote.instrumentation.TraceContextAwareWireFormats.internal_static_AckAndTraceContextAwareEnvelopeContainer_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return akka.remote.instrumentation.TraceContextAwareWireFormats.internal_static_AckAndTraceContextAwareEnvelopeContainer_fieldAccessorTable;
+ }
+
+ // Construct using akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ getAckFieldBuilder();
+ getEnvelopeFieldBuilder();
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ if (ackBuilder_ == null) {
+ ack_ = akka.remote.WireFormats.AcknowledgementInfo.getDefaultInstance();
+ } else {
+ ackBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000001);
+ if (envelopeBuilder_ == null) {
+ envelope_ = akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope.getDefaultInstance();
+ } else {
+ envelopeBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000002);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer.getDescriptor();
+ }
+
+ public akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer getDefaultInstanceForType() {
+ return akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer.getDefaultInstance();
+ }
+
+ public akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer build() {
+ akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer buildPartial() {
+ akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer result = new akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ if (ackBuilder_ == null) {
+ result.ack_ = ack_;
+ } else {
+ result.ack_ = ackBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ if (envelopeBuilder_ == null) {
+ result.envelope_ = envelope_;
+ } else {
+ result.envelope_ = envelopeBuilder_.build();
+ }
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer) {
+ return mergeFrom((akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer other) {
+ if (other == akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer.getDefaultInstance()) return this;
+ if (other.hasAck()) {
+ mergeAck(other.getAck());
+ }
+ if (other.hasEnvelope()) {
+ mergeEnvelope(other.getEnvelope());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ if (hasAck()) {
+ if (!getAck().isInitialized()) {
+
+ return false;
+ }
+ }
+ if (hasEnvelope()) {
+ if (!getEnvelope().isInitialized()) {
+
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 10: {
+ akka.remote.WireFormats.AcknowledgementInfo.Builder subBuilder = akka.remote.WireFormats.AcknowledgementInfo.newBuilder();
+ if (hasAck()) {
+ subBuilder.mergeFrom(getAck());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setAck(subBuilder.buildPartial());
+ break;
+ }
+ case 18: {
+ akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope.Builder subBuilder = akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope.newBuilder();
+ if (hasEnvelope()) {
+ subBuilder.mergeFrom(getEnvelope());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setEnvelope(subBuilder.buildPartial());
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // optional .AcknowledgementInfo ack = 1;
+ private akka.remote.WireFormats.AcknowledgementInfo ack_ = akka.remote.WireFormats.AcknowledgementInfo.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ akka.remote.WireFormats.AcknowledgementInfo, akka.remote.WireFormats.AcknowledgementInfo.Builder, akka.remote.WireFormats.AcknowledgementInfoOrBuilder> ackBuilder_;
+ public boolean hasAck() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public akka.remote.WireFormats.AcknowledgementInfo getAck() {
+ if (ackBuilder_ == null) {
+ return ack_;
+ } else {
+ return ackBuilder_.getMessage();
+ }
+ }
+ public Builder setAck(akka.remote.WireFormats.AcknowledgementInfo value) {
+ if (ackBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ ack_ = value;
+ onChanged();
+ } else {
+ ackBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ return this;
+ }
+ public Builder setAck(
+ akka.remote.WireFormats.AcknowledgementInfo.Builder builderForValue) {
+ if (ackBuilder_ == null) {
+ ack_ = builderForValue.build();
+ onChanged();
+ } else {
+ ackBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ return this;
+ }
+ public Builder mergeAck(akka.remote.WireFormats.AcknowledgementInfo value) {
+ if (ackBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) == 0x00000001) &&
+ ack_ != akka.remote.WireFormats.AcknowledgementInfo.getDefaultInstance()) {
+ ack_ =
+ akka.remote.WireFormats.AcknowledgementInfo.newBuilder(ack_).mergeFrom(value).buildPartial();
+ } else {
+ ack_ = value;
+ }
+ onChanged();
+ } else {
+ ackBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000001;
+ return this;
+ }
+ public Builder clearAck() {
+ if (ackBuilder_ == null) {
+ ack_ = akka.remote.WireFormats.AcknowledgementInfo.getDefaultInstance();
+ onChanged();
+ } else {
+ ackBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000001);
+ return this;
+ }
+ public akka.remote.WireFormats.AcknowledgementInfo.Builder getAckBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getAckFieldBuilder().getBuilder();
+ }
+ public akka.remote.WireFormats.AcknowledgementInfoOrBuilder getAckOrBuilder() {
+ if (ackBuilder_ != null) {
+ return ackBuilder_.getMessageOrBuilder();
+ } else {
+ return ack_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ akka.remote.WireFormats.AcknowledgementInfo, akka.remote.WireFormats.AcknowledgementInfo.Builder, akka.remote.WireFormats.AcknowledgementInfoOrBuilder>
+ getAckFieldBuilder() {
+ if (ackBuilder_ == null) {
+ ackBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ akka.remote.WireFormats.AcknowledgementInfo, akka.remote.WireFormats.AcknowledgementInfo.Builder, akka.remote.WireFormats.AcknowledgementInfoOrBuilder>(
+ ack_,
+ getParentForChildren(),
+ isClean());
+ ack_ = null;
+ }
+ return ackBuilder_;
+ }
+
+ // optional .TraceContextAwareRemoteEnvelope envelope = 2;
+ private akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope envelope_ = akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope, akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope.Builder, akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelopeOrBuilder> envelopeBuilder_;
+ public boolean hasEnvelope() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope getEnvelope() {
+ if (envelopeBuilder_ == null) {
+ return envelope_;
+ } else {
+ return envelopeBuilder_.getMessage();
+ }
+ }
+ public Builder setEnvelope(akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope value) {
+ if (envelopeBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ envelope_ = value;
+ onChanged();
+ } else {
+ envelopeBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ public Builder setEnvelope(
+ akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope.Builder builderForValue) {
+ if (envelopeBuilder_ == null) {
+ envelope_ = builderForValue.build();
+ onChanged();
+ } else {
+ envelopeBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ public Builder mergeEnvelope(akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope value) {
+ if (envelopeBuilder_ == null) {
+ if (((bitField0_ & 0x00000002) == 0x00000002) &&
+ envelope_ != akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope.getDefaultInstance()) {
+ envelope_ =
+ akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope.newBuilder(envelope_).mergeFrom(value).buildPartial();
+ } else {
+ envelope_ = value;
+ }
+ onChanged();
+ } else {
+ envelopeBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ public Builder clearEnvelope() {
+ if (envelopeBuilder_ == null) {
+ envelope_ = akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope.getDefaultInstance();
+ onChanged();
+ } else {
+ envelopeBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000002);
+ return this;
+ }
+ public akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope.Builder getEnvelopeBuilder() {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return getEnvelopeFieldBuilder().getBuilder();
+ }
+ public akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelopeOrBuilder getEnvelopeOrBuilder() {
+ if (envelopeBuilder_ != null) {
+ return envelopeBuilder_.getMessageOrBuilder();
+ } else {
+ return envelope_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope, akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope.Builder, akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelopeOrBuilder>
+ getEnvelopeFieldBuilder() {
+ if (envelopeBuilder_ == null) {
+ envelopeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope, akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope.Builder, akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelopeOrBuilder>(
+ envelope_,
+ getParentForChildren(),
+ isClean());
+ envelope_ = null;
+ }
+ return envelopeBuilder_;
+ }
+
+ // @@protoc_insertion_point(builder_scope:AckAndTraceContextAwareEnvelopeContainer)
+ }
+
+ static {
+ defaultInstance = new AckAndTraceContextAwareEnvelopeContainer(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:AckAndTraceContextAwareEnvelopeContainer)
+ }
+
+ public interface TraceContextAwareRemoteEnvelopeOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // required .ActorRefData recipient = 1;
+ boolean hasRecipient();
+ akka.remote.WireFormats.ActorRefData getRecipient();
+ akka.remote.WireFormats.ActorRefDataOrBuilder getRecipientOrBuilder();
+
+ // required .SerializedMessage message = 2;
+ boolean hasMessage();
+ akka.remote.WireFormats.SerializedMessage getMessage();
+ akka.remote.WireFormats.SerializedMessageOrBuilder getMessageOrBuilder();
+
+ // optional .ActorRefData sender = 4;
+ boolean hasSender();
+ akka.remote.WireFormats.ActorRefData getSender();
+ akka.remote.WireFormats.ActorRefDataOrBuilder getSenderOrBuilder();
+
+ // optional fixed64 seq = 5;
+ boolean hasSeq();
+ long getSeq();
+
+ // optional .RemoteTraceContext traceContext = 15;
+ boolean hasTraceContext();
+ akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext getTraceContext();
+ akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContextOrBuilder getTraceContextOrBuilder();
+ }
+ public static final class TraceContextAwareRemoteEnvelope extends
+ com.google.protobuf.GeneratedMessage
+ implements TraceContextAwareRemoteEnvelopeOrBuilder {
+ // Use TraceContextAwareRemoteEnvelope.newBuilder() to construct.
+ private TraceContextAwareRemoteEnvelope(Builder builder) {
+ super(builder);
+ }
+ private TraceContextAwareRemoteEnvelope(boolean noInit) {}
+
+ private static final TraceContextAwareRemoteEnvelope defaultInstance;
+ public static TraceContextAwareRemoteEnvelope getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public TraceContextAwareRemoteEnvelope getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return akka.remote.instrumentation.TraceContextAwareWireFormats.internal_static_TraceContextAwareRemoteEnvelope_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return akka.remote.instrumentation.TraceContextAwareWireFormats.internal_static_TraceContextAwareRemoteEnvelope_fieldAccessorTable;
+ }
+
+ private int bitField0_;
+ // required .ActorRefData recipient = 1;
+ public static final int RECIPIENT_FIELD_NUMBER = 1;
+ private akka.remote.WireFormats.ActorRefData recipient_;
+ public boolean hasRecipient() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public akka.remote.WireFormats.ActorRefData getRecipient() {
+ return recipient_;
+ }
+ public akka.remote.WireFormats.ActorRefDataOrBuilder getRecipientOrBuilder() {
+ return recipient_;
+ }
+
+ // required .SerializedMessage message = 2;
+ public static final int MESSAGE_FIELD_NUMBER = 2;
+ private akka.remote.WireFormats.SerializedMessage message_;
+ public boolean hasMessage() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public akka.remote.WireFormats.SerializedMessage getMessage() {
+ return message_;
+ }
+ public akka.remote.WireFormats.SerializedMessageOrBuilder getMessageOrBuilder() {
+ return message_;
+ }
+
+ // optional .ActorRefData sender = 4;
+ public static final int SENDER_FIELD_NUMBER = 4;
+ private akka.remote.WireFormats.ActorRefData sender_;
+ public boolean hasSender() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public akka.remote.WireFormats.ActorRefData getSender() {
+ return sender_;
+ }
+ public akka.remote.WireFormats.ActorRefDataOrBuilder getSenderOrBuilder() {
+ return sender_;
+ }
+
+ // optional fixed64 seq = 5;
+ public static final int SEQ_FIELD_NUMBER = 5;
+ private long seq_;
+ public boolean hasSeq() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ public long getSeq() {
+ return seq_;
+ }
+
+ // optional .RemoteTraceContext traceContext = 15;
+ public static final int TRACECONTEXT_FIELD_NUMBER = 15;
+ private akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext traceContext_;
+ public boolean hasTraceContext() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ public akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext getTraceContext() {
+ return traceContext_;
+ }
+ public akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContextOrBuilder getTraceContextOrBuilder() {
+ return traceContext_;
+ }
+
+ private void initFields() {
+ recipient_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
+ message_ = akka.remote.WireFormats.SerializedMessage.getDefaultInstance();
+ sender_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
+ seq_ = 0L;
+ traceContext_ = akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext.getDefaultInstance();
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ if (!hasRecipient()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
+ if (!hasMessage()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
+ if (!getRecipient().isInitialized()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
+ if (!getMessage().isInitialized()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
+ if (hasSender()) {
+ if (!getSender().isInitialized()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
+ }
+ if (hasTraceContext()) {
+ if (!getTraceContext().isInitialized()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
+ }
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeMessage(1, recipient_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeMessage(2, message_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeMessage(4, sender_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ output.writeFixed64(5, seq_);
+ }
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ output.writeMessage(15, traceContext_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(1, recipient_);
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(2, message_);
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(4, sender_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeFixed64Size(5, seq_);
+ }
+ if (((bitField0_ & 0x00000010) == 0x00000010)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeMessageSize(15, traceContext_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelopeOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return akka.remote.instrumentation.TraceContextAwareWireFormats.internal_static_TraceContextAwareRemoteEnvelope_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return akka.remote.instrumentation.TraceContextAwareWireFormats.internal_static_TraceContextAwareRemoteEnvelope_fieldAccessorTable;
+ }
+
+ // Construct using akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ getRecipientFieldBuilder();
+ getMessageFieldBuilder();
+ getSenderFieldBuilder();
+ getTraceContextFieldBuilder();
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ if (recipientBuilder_ == null) {
+ recipient_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
+ } else {
+ recipientBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000001);
+ if (messageBuilder_ == null) {
+ message_ = akka.remote.WireFormats.SerializedMessage.getDefaultInstance();
+ } else {
+ messageBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000002);
+ if (senderBuilder_ == null) {
+ sender_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
+ } else {
+ senderBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000004);
+ seq_ = 0L;
+ bitField0_ = (bitField0_ & ~0x00000008);
+ if (traceContextBuilder_ == null) {
+ traceContext_ = akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext.getDefaultInstance();
+ } else {
+ traceContextBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000010);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope.getDescriptor();
+ }
+
+ public akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope getDefaultInstanceForType() {
+ return akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope.getDefaultInstance();
+ }
+
+ public akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope build() {
+ akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope buildPartial() {
+ akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope result = new akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ if (recipientBuilder_ == null) {
+ result.recipient_ = recipient_;
+ } else {
+ result.recipient_ = recipientBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ if (messageBuilder_ == null) {
+ result.message_ = message_;
+ } else {
+ result.message_ = messageBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ if (senderBuilder_ == null) {
+ result.sender_ = sender_;
+ } else {
+ result.sender_ = senderBuilder_.build();
+ }
+ if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+ to_bitField0_ |= 0x00000008;
+ }
+ result.seq_ = seq_;
+ if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
+ to_bitField0_ |= 0x00000010;
+ }
+ if (traceContextBuilder_ == null) {
+ result.traceContext_ = traceContext_;
+ } else {
+ result.traceContext_ = traceContextBuilder_.build();
+ }
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope) {
+ return mergeFrom((akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope other) {
+ if (other == akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope.getDefaultInstance()) return this;
+ if (other.hasRecipient()) {
+ mergeRecipient(other.getRecipient());
+ }
+ if (other.hasMessage()) {
+ mergeMessage(other.getMessage());
+ }
+ if (other.hasSender()) {
+ mergeSender(other.getSender());
+ }
+ if (other.hasSeq()) {
+ setSeq(other.getSeq());
+ }
+ if (other.hasTraceContext()) {
+ mergeTraceContext(other.getTraceContext());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ if (!hasRecipient()) {
+
+ return false;
+ }
+ if (!hasMessage()) {
+
+ return false;
+ }
+ if (!getRecipient().isInitialized()) {
+
+ return false;
+ }
+ if (!getMessage().isInitialized()) {
+
+ return false;
+ }
+ if (hasSender()) {
+ if (!getSender().isInitialized()) {
+
+ return false;
+ }
+ }
+ if (hasTraceContext()) {
+ if (!getTraceContext().isInitialized()) {
+
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 10: {
+ akka.remote.WireFormats.ActorRefData.Builder subBuilder = akka.remote.WireFormats.ActorRefData.newBuilder();
+ if (hasRecipient()) {
+ subBuilder.mergeFrom(getRecipient());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setRecipient(subBuilder.buildPartial());
+ break;
+ }
+ case 18: {
+ akka.remote.WireFormats.SerializedMessage.Builder subBuilder = akka.remote.WireFormats.SerializedMessage.newBuilder();
+ if (hasMessage()) {
+ subBuilder.mergeFrom(getMessage());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setMessage(subBuilder.buildPartial());
+ break;
+ }
+ case 34: {
+ akka.remote.WireFormats.ActorRefData.Builder subBuilder = akka.remote.WireFormats.ActorRefData.newBuilder();
+ if (hasSender()) {
+ subBuilder.mergeFrom(getSender());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setSender(subBuilder.buildPartial());
+ break;
+ }
+ case 41: {
+ bitField0_ |= 0x00000008;
+ seq_ = input.readFixed64();
+ break;
+ }
+ case 122: {
+ akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext.Builder subBuilder = akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext.newBuilder();
+ if (hasTraceContext()) {
+ subBuilder.mergeFrom(getTraceContext());
+ }
+ input.readMessage(subBuilder, extensionRegistry);
+ setTraceContext(subBuilder.buildPartial());
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // required .ActorRefData recipient = 1;
+ private akka.remote.WireFormats.ActorRefData recipient_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ akka.remote.WireFormats.ActorRefData, akka.remote.WireFormats.ActorRefData.Builder, akka.remote.WireFormats.ActorRefDataOrBuilder> recipientBuilder_;
+ public boolean hasRecipient() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public akka.remote.WireFormats.ActorRefData getRecipient() {
+ if (recipientBuilder_ == null) {
+ return recipient_;
+ } else {
+ return recipientBuilder_.getMessage();
+ }
+ }
+ public Builder setRecipient(akka.remote.WireFormats.ActorRefData value) {
+ if (recipientBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ recipient_ = value;
+ onChanged();
+ } else {
+ recipientBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000001;
+ return this;
+ }
+ public Builder setRecipient(
+ akka.remote.WireFormats.ActorRefData.Builder builderForValue) {
+ if (recipientBuilder_ == null) {
+ recipient_ = builderForValue.build();
+ onChanged();
+ } else {
+ recipientBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000001;
+ return this;
+ }
+ public Builder mergeRecipient(akka.remote.WireFormats.ActorRefData value) {
+ if (recipientBuilder_ == null) {
+ if (((bitField0_ & 0x00000001) == 0x00000001) &&
+ recipient_ != akka.remote.WireFormats.ActorRefData.getDefaultInstance()) {
+ recipient_ =
+ akka.remote.WireFormats.ActorRefData.newBuilder(recipient_).mergeFrom(value).buildPartial();
+ } else {
+ recipient_ = value;
+ }
+ onChanged();
+ } else {
+ recipientBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000001;
+ return this;
+ }
+ public Builder clearRecipient() {
+ if (recipientBuilder_ == null) {
+ recipient_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
+ onChanged();
+ } else {
+ recipientBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000001);
+ return this;
+ }
+ public akka.remote.WireFormats.ActorRefData.Builder getRecipientBuilder() {
+ bitField0_ |= 0x00000001;
+ onChanged();
+ return getRecipientFieldBuilder().getBuilder();
+ }
+ public akka.remote.WireFormats.ActorRefDataOrBuilder getRecipientOrBuilder() {
+ if (recipientBuilder_ != null) {
+ return recipientBuilder_.getMessageOrBuilder();
+ } else {
+ return recipient_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ akka.remote.WireFormats.ActorRefData, akka.remote.WireFormats.ActorRefData.Builder, akka.remote.WireFormats.ActorRefDataOrBuilder>
+ getRecipientFieldBuilder() {
+ if (recipientBuilder_ == null) {
+ recipientBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ akka.remote.WireFormats.ActorRefData, akka.remote.WireFormats.ActorRefData.Builder, akka.remote.WireFormats.ActorRefDataOrBuilder>(
+ recipient_,
+ getParentForChildren(),
+ isClean());
+ recipient_ = null;
+ }
+ return recipientBuilder_;
+ }
+
+ // required .SerializedMessage message = 2;
+ private akka.remote.WireFormats.SerializedMessage message_ = akka.remote.WireFormats.SerializedMessage.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ akka.remote.WireFormats.SerializedMessage, akka.remote.WireFormats.SerializedMessage.Builder, akka.remote.WireFormats.SerializedMessageOrBuilder> messageBuilder_;
+ public boolean hasMessage() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public akka.remote.WireFormats.SerializedMessage getMessage() {
+ if (messageBuilder_ == null) {
+ return message_;
+ } else {
+ return messageBuilder_.getMessage();
+ }
+ }
+ public Builder setMessage(akka.remote.WireFormats.SerializedMessage value) {
+ if (messageBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ message_ = value;
+ onChanged();
+ } else {
+ messageBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ public Builder setMessage(
+ akka.remote.WireFormats.SerializedMessage.Builder builderForValue) {
+ if (messageBuilder_ == null) {
+ message_ = builderForValue.build();
+ onChanged();
+ } else {
+ messageBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ public Builder mergeMessage(akka.remote.WireFormats.SerializedMessage value) {
+ if (messageBuilder_ == null) {
+ if (((bitField0_ & 0x00000002) == 0x00000002) &&
+ message_ != akka.remote.WireFormats.SerializedMessage.getDefaultInstance()) {
+ message_ =
+ akka.remote.WireFormats.SerializedMessage.newBuilder(message_).mergeFrom(value).buildPartial();
+ } else {
+ message_ = value;
+ }
+ onChanged();
+ } else {
+ messageBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000002;
+ return this;
+ }
+ public Builder clearMessage() {
+ if (messageBuilder_ == null) {
+ message_ = akka.remote.WireFormats.SerializedMessage.getDefaultInstance();
+ onChanged();
+ } else {
+ messageBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000002);
+ return this;
+ }
+ public akka.remote.WireFormats.SerializedMessage.Builder getMessageBuilder() {
+ bitField0_ |= 0x00000002;
+ onChanged();
+ return getMessageFieldBuilder().getBuilder();
+ }
+ public akka.remote.WireFormats.SerializedMessageOrBuilder getMessageOrBuilder() {
+ if (messageBuilder_ != null) {
+ return messageBuilder_.getMessageOrBuilder();
+ } else {
+ return message_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ akka.remote.WireFormats.SerializedMessage, akka.remote.WireFormats.SerializedMessage.Builder, akka.remote.WireFormats.SerializedMessageOrBuilder>
+ getMessageFieldBuilder() {
+ if (messageBuilder_ == null) {
+ messageBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ akka.remote.WireFormats.SerializedMessage, akka.remote.WireFormats.SerializedMessage.Builder, akka.remote.WireFormats.SerializedMessageOrBuilder>(
+ message_,
+ getParentForChildren(),
+ isClean());
+ message_ = null;
+ }
+ return messageBuilder_;
+ }
+
+ // optional .ActorRefData sender = 4;
+ private akka.remote.WireFormats.ActorRefData sender_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ akka.remote.WireFormats.ActorRefData, akka.remote.WireFormats.ActorRefData.Builder, akka.remote.WireFormats.ActorRefDataOrBuilder> senderBuilder_;
+ public boolean hasSender() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public akka.remote.WireFormats.ActorRefData getSender() {
+ if (senderBuilder_ == null) {
+ return sender_;
+ } else {
+ return senderBuilder_.getMessage();
+ }
+ }
+ public Builder setSender(akka.remote.WireFormats.ActorRefData value) {
+ if (senderBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ sender_ = value;
+ onChanged();
+ } else {
+ senderBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ public Builder setSender(
+ akka.remote.WireFormats.ActorRefData.Builder builderForValue) {
+ if (senderBuilder_ == null) {
+ sender_ = builderForValue.build();
+ onChanged();
+ } else {
+ senderBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ public Builder mergeSender(akka.remote.WireFormats.ActorRefData value) {
+ if (senderBuilder_ == null) {
+ if (((bitField0_ & 0x00000004) == 0x00000004) &&
+ sender_ != akka.remote.WireFormats.ActorRefData.getDefaultInstance()) {
+ sender_ =
+ akka.remote.WireFormats.ActorRefData.newBuilder(sender_).mergeFrom(value).buildPartial();
+ } else {
+ sender_ = value;
+ }
+ onChanged();
+ } else {
+ senderBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000004;
+ return this;
+ }
+ public Builder clearSender() {
+ if (senderBuilder_ == null) {
+ sender_ = akka.remote.WireFormats.ActorRefData.getDefaultInstance();
+ onChanged();
+ } else {
+ senderBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000004);
+ return this;
+ }
+ public akka.remote.WireFormats.ActorRefData.Builder getSenderBuilder() {
+ bitField0_ |= 0x00000004;
+ onChanged();
+ return getSenderFieldBuilder().getBuilder();
+ }
+ public akka.remote.WireFormats.ActorRefDataOrBuilder getSenderOrBuilder() {
+ if (senderBuilder_ != null) {
+ return senderBuilder_.getMessageOrBuilder();
+ } else {
+ return sender_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ akka.remote.WireFormats.ActorRefData, akka.remote.WireFormats.ActorRefData.Builder, akka.remote.WireFormats.ActorRefDataOrBuilder>
+ getSenderFieldBuilder() {
+ if (senderBuilder_ == null) {
+ senderBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ akka.remote.WireFormats.ActorRefData, akka.remote.WireFormats.ActorRefData.Builder, akka.remote.WireFormats.ActorRefDataOrBuilder>(
+ sender_,
+ getParentForChildren(),
+ isClean());
+ sender_ = null;
+ }
+ return senderBuilder_;
+ }
+
+ // optional fixed64 seq = 5;
+ private long seq_ ;
+ public boolean hasSeq() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ public long getSeq() {
+ return seq_;
+ }
+ public Builder setSeq(long value) {
+ bitField0_ |= 0x00000008;
+ seq_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearSeq() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ seq_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ // optional .RemoteTraceContext traceContext = 15;
+ private akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext traceContext_ = akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext.getDefaultInstance();
+ private com.google.protobuf.SingleFieldBuilder<
+ akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext, akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext.Builder, akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContextOrBuilder> traceContextBuilder_;
+ public boolean hasTraceContext() {
+ return ((bitField0_ & 0x00000010) == 0x00000010);
+ }
+ public akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext getTraceContext() {
+ if (traceContextBuilder_ == null) {
+ return traceContext_;
+ } else {
+ return traceContextBuilder_.getMessage();
+ }
+ }
+ public Builder setTraceContext(akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext value) {
+ if (traceContextBuilder_ == null) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ traceContext_ = value;
+ onChanged();
+ } else {
+ traceContextBuilder_.setMessage(value);
+ }
+ bitField0_ |= 0x00000010;
+ return this;
+ }
+ public Builder setTraceContext(
+ akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext.Builder builderForValue) {
+ if (traceContextBuilder_ == null) {
+ traceContext_ = builderForValue.build();
+ onChanged();
+ } else {
+ traceContextBuilder_.setMessage(builderForValue.build());
+ }
+ bitField0_ |= 0x00000010;
+ return this;
+ }
+ public Builder mergeTraceContext(akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext value) {
+ if (traceContextBuilder_ == null) {
+ if (((bitField0_ & 0x00000010) == 0x00000010) &&
+ traceContext_ != akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext.getDefaultInstance()) {
+ traceContext_ =
+ akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext.newBuilder(traceContext_).mergeFrom(value).buildPartial();
+ } else {
+ traceContext_ = value;
+ }
+ onChanged();
+ } else {
+ traceContextBuilder_.mergeFrom(value);
+ }
+ bitField0_ |= 0x00000010;
+ return this;
+ }
+ public Builder clearTraceContext() {
+ if (traceContextBuilder_ == null) {
+ traceContext_ = akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext.getDefaultInstance();
+ onChanged();
+ } else {
+ traceContextBuilder_.clear();
+ }
+ bitField0_ = (bitField0_ & ~0x00000010);
+ return this;
+ }
+ public akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext.Builder getTraceContextBuilder() {
+ bitField0_ |= 0x00000010;
+ onChanged();
+ return getTraceContextFieldBuilder().getBuilder();
+ }
+ public akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContextOrBuilder getTraceContextOrBuilder() {
+ if (traceContextBuilder_ != null) {
+ return traceContextBuilder_.getMessageOrBuilder();
+ } else {
+ return traceContext_;
+ }
+ }
+ private com.google.protobuf.SingleFieldBuilder<
+ akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext, akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext.Builder, akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContextOrBuilder>
+ getTraceContextFieldBuilder() {
+ if (traceContextBuilder_ == null) {
+ traceContextBuilder_ = new com.google.protobuf.SingleFieldBuilder<
+ akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext, akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext.Builder, akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContextOrBuilder>(
+ traceContext_,
+ getParentForChildren(),
+ isClean());
+ traceContext_ = null;
+ }
+ return traceContextBuilder_;
+ }
+
+ // @@protoc_insertion_point(builder_scope:TraceContextAwareRemoteEnvelope)
+ }
+
+ static {
+ defaultInstance = new TraceContextAwareRemoteEnvelope(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:TraceContextAwareRemoteEnvelope)
+ }
+
+ public interface RemoteTraceContextOrBuilder
+ extends com.google.protobuf.MessageOrBuilder {
+
+ // required string traceName = 1;
+ boolean hasTraceName();
+ String getTraceName();
+
+ // required string traceToken = 2;
+ boolean hasTraceToken();
+ String getTraceToken();
+
+ // required bool isOpen = 3;
+ boolean hasIsOpen();
+ boolean getIsOpen();
+
+ // required fixed64 startMilliTime = 4;
+ boolean hasStartMilliTime();
+ long getStartMilliTime();
+ }
+ public static final class RemoteTraceContext extends
+ com.google.protobuf.GeneratedMessage
+ implements RemoteTraceContextOrBuilder {
+ // Use RemoteTraceContext.newBuilder() to construct.
+ private RemoteTraceContext(Builder builder) {
+ super(builder);
+ }
+ private RemoteTraceContext(boolean noInit) {}
+
+ private static final RemoteTraceContext defaultInstance;
+ public static RemoteTraceContext getDefaultInstance() {
+ return defaultInstance;
+ }
+
+ public RemoteTraceContext getDefaultInstanceForType() {
+ return defaultInstance;
+ }
+
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return akka.remote.instrumentation.TraceContextAwareWireFormats.internal_static_RemoteTraceContext_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return akka.remote.instrumentation.TraceContextAwareWireFormats.internal_static_RemoteTraceContext_fieldAccessorTable;
+ }
+
+ private int bitField0_;
+ // required string traceName = 1;
+ public static final int TRACENAME_FIELD_NUMBER = 1;
+ private java.lang.Object traceName_;
+ public boolean hasTraceName() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public String getTraceName() {
+ java.lang.Object ref = traceName_;
+ if (ref instanceof String) {
+ return (String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ String s = bs.toStringUtf8();
+ if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+ traceName_ = s;
+ }
+ return s;
+ }
+ }
+ private com.google.protobuf.ByteString getTraceNameBytes() {
+ java.lang.Object ref = traceName_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+ traceName_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ // required string traceToken = 2;
+ public static final int TRACETOKEN_FIELD_NUMBER = 2;
+ private java.lang.Object traceToken_;
+ public boolean hasTraceToken() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public String getTraceToken() {
+ java.lang.Object ref = traceToken_;
+ if (ref instanceof String) {
+ return (String) ref;
+ } else {
+ com.google.protobuf.ByteString bs =
+ (com.google.protobuf.ByteString) ref;
+ String s = bs.toStringUtf8();
+ if (com.google.protobuf.Internal.isValidUtf8(bs)) {
+ traceToken_ = s;
+ }
+ return s;
+ }
+ }
+ private com.google.protobuf.ByteString getTraceTokenBytes() {
+ java.lang.Object ref = traceToken_;
+ if (ref instanceof String) {
+ com.google.protobuf.ByteString b =
+ com.google.protobuf.ByteString.copyFromUtf8((String) ref);
+ traceToken_ = b;
+ return b;
+ } else {
+ return (com.google.protobuf.ByteString) ref;
+ }
+ }
+
+ // required bool isOpen = 3;
+ public static final int ISOPEN_FIELD_NUMBER = 3;
+ private boolean isOpen_;
+ public boolean hasIsOpen() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public boolean getIsOpen() {
+ return isOpen_;
+ }
+
+ // required fixed64 startMilliTime = 4;
+ public static final int STARTMILLITIME_FIELD_NUMBER = 4;
+ private long startMilliTime_;
+ public boolean hasStartMilliTime() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ public long getStartMilliTime() {
+ return startMilliTime_;
+ }
+
+ private void initFields() {
+ traceName_ = "";
+ traceToken_ = "";
+ isOpen_ = false;
+ startMilliTime_ = 0L;
+ }
+ private byte memoizedIsInitialized = -1;
+ public final boolean isInitialized() {
+ byte isInitialized = memoizedIsInitialized;
+ if (isInitialized != -1) return isInitialized == 1;
+
+ if (!hasTraceName()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
+ if (!hasTraceToken()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
+ if (!hasIsOpen()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
+ if (!hasStartMilliTime()) {
+ memoizedIsInitialized = 0;
+ return false;
+ }
+ memoizedIsInitialized = 1;
+ return true;
+ }
+
+ public void writeTo(com.google.protobuf.CodedOutputStream output)
+ throws java.io.IOException {
+ getSerializedSize();
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ output.writeBytes(1, getTraceNameBytes());
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ output.writeBytes(2, getTraceTokenBytes());
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ output.writeBool(3, isOpen_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ output.writeFixed64(4, startMilliTime_);
+ }
+ getUnknownFields().writeTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public int getSerializedSize() {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (((bitField0_ & 0x00000001) == 0x00000001)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(1, getTraceNameBytes());
+ }
+ if (((bitField0_ & 0x00000002) == 0x00000002)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBytesSize(2, getTraceTokenBytes());
+ }
+ if (((bitField0_ & 0x00000004) == 0x00000004)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeBoolSize(3, isOpen_);
+ }
+ if (((bitField0_ & 0x00000008) == 0x00000008)) {
+ size += com.google.protobuf.CodedOutputStream
+ .computeFixed64Size(4, startMilliTime_);
+ }
+ size += getUnknownFields().getSerializedSize();
+ memoizedSerializedSize = size;
+ return size;
+ }
+
+ private static final long serialVersionUID = 0L;
+ @java.lang.Override
+ protected java.lang.Object writeReplace()
+ throws java.io.ObjectStreamException {
+ return super.writeReplace();
+ }
+
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext parseFrom(
+ com.google.protobuf.ByteString data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext parseFrom(
+ com.google.protobuf.ByteString data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext parseFrom(byte[] data)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data).buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext parseFrom(
+ byte[] data,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ return newBuilder().mergeFrom(data, extensionRegistry)
+ .buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext parseFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext parseFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext parseDelimitedFrom(java.io.InputStream input)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext parseDelimitedFrom(
+ java.io.InputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ Builder builder = newBuilder();
+ if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
+ return builder.buildParsed();
+ } else {
+ return null;
+ }
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext parseFrom(
+ com.google.protobuf.CodedInputStream input)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input).buildParsed();
+ }
+ public static akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext parseFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ return newBuilder().mergeFrom(input, extensionRegistry)
+ .buildParsed();
+ }
+
+ public static Builder newBuilder() { return Builder.create(); }
+ public Builder newBuilderForType() { return newBuilder(); }
+ public static Builder newBuilder(akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext prototype) {
+ return newBuilder().mergeFrom(prototype);
+ }
+ public Builder toBuilder() { return newBuilder(this); }
+
+ @java.lang.Override
+ protected Builder newBuilderForType(
+ com.google.protobuf.GeneratedMessage.BuilderParent parent) {
+ Builder builder = new Builder(parent);
+ return builder;
+ }
+ public static final class Builder extends
+ com.google.protobuf.GeneratedMessage.Builder<Builder>
+ implements akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContextOrBuilder {
+ public static final com.google.protobuf.Descriptors.Descriptor
+ getDescriptor() {
+ return akka.remote.instrumentation.TraceContextAwareWireFormats.internal_static_RemoteTraceContext_descriptor;
+ }
+
+ protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internalGetFieldAccessorTable() {
+ return akka.remote.instrumentation.TraceContextAwareWireFormats.internal_static_RemoteTraceContext_fieldAccessorTable;
+ }
+
+ // Construct using akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext.newBuilder()
+ private Builder() {
+ maybeForceBuilderInitialization();
+ }
+
+ private Builder(BuilderParent parent) {
+ super(parent);
+ maybeForceBuilderInitialization();
+ }
+ private void maybeForceBuilderInitialization() {
+ if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
+ }
+ }
+ private static Builder create() {
+ return new Builder();
+ }
+
+ public Builder clear() {
+ super.clear();
+ traceName_ = "";
+ bitField0_ = (bitField0_ & ~0x00000001);
+ traceToken_ = "";
+ bitField0_ = (bitField0_ & ~0x00000002);
+ isOpen_ = false;
+ bitField0_ = (bitField0_ & ~0x00000004);
+ startMilliTime_ = 0L;
+ bitField0_ = (bitField0_ & ~0x00000008);
+ return this;
+ }
+
+ public Builder clone() {
+ return create().mergeFrom(buildPartial());
+ }
+
+ public com.google.protobuf.Descriptors.Descriptor
+ getDescriptorForType() {
+ return akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext.getDescriptor();
+ }
+
+ public akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext getDefaultInstanceForType() {
+ return akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext.getDefaultInstance();
+ }
+
+ public akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext build() {
+ akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(result);
+ }
+ return result;
+ }
+
+ private akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext buildParsed()
+ throws com.google.protobuf.InvalidProtocolBufferException {
+ akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext result = buildPartial();
+ if (!result.isInitialized()) {
+ throw newUninitializedMessageException(
+ result).asInvalidProtocolBufferException();
+ }
+ return result;
+ }
+
+ public akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext buildPartial() {
+ akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext result = new akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext(this);
+ int from_bitField0_ = bitField0_;
+ int to_bitField0_ = 0;
+ if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
+ to_bitField0_ |= 0x00000001;
+ }
+ result.traceName_ = traceName_;
+ if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
+ to_bitField0_ |= 0x00000002;
+ }
+ result.traceToken_ = traceToken_;
+ if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
+ to_bitField0_ |= 0x00000004;
+ }
+ result.isOpen_ = isOpen_;
+ if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
+ to_bitField0_ |= 0x00000008;
+ }
+ result.startMilliTime_ = startMilliTime_;
+ result.bitField0_ = to_bitField0_;
+ onBuilt();
+ return result;
+ }
+
+ public Builder mergeFrom(com.google.protobuf.Message other) {
+ if (other instanceof akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext) {
+ return mergeFrom((akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext)other);
+ } else {
+ super.mergeFrom(other);
+ return this;
+ }
+ }
+
+ public Builder mergeFrom(akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext other) {
+ if (other == akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext.getDefaultInstance()) return this;
+ if (other.hasTraceName()) {
+ setTraceName(other.getTraceName());
+ }
+ if (other.hasTraceToken()) {
+ setTraceToken(other.getTraceToken());
+ }
+ if (other.hasIsOpen()) {
+ setIsOpen(other.getIsOpen());
+ }
+ if (other.hasStartMilliTime()) {
+ setStartMilliTime(other.getStartMilliTime());
+ }
+ this.mergeUnknownFields(other.getUnknownFields());
+ return this;
+ }
+
+ public final boolean isInitialized() {
+ if (!hasTraceName()) {
+
+ return false;
+ }
+ if (!hasTraceToken()) {
+
+ return false;
+ }
+ if (!hasIsOpen()) {
+
+ return false;
+ }
+ if (!hasStartMilliTime()) {
+
+ return false;
+ }
+ return true;
+ }
+
+ public Builder mergeFrom(
+ com.google.protobuf.CodedInputStream input,
+ com.google.protobuf.ExtensionRegistryLite extensionRegistry)
+ throws java.io.IOException {
+ com.google.protobuf.UnknownFieldSet.Builder unknownFields =
+ com.google.protobuf.UnknownFieldSet.newBuilder(
+ this.getUnknownFields());
+ while (true) {
+ int tag = input.readTag();
+ switch (tag) {
+ case 0:
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ default: {
+ if (!parseUnknownField(input, unknownFields,
+ extensionRegistry, tag)) {
+ this.setUnknownFields(unknownFields.build());
+ onChanged();
+ return this;
+ }
+ break;
+ }
+ case 10: {
+ bitField0_ |= 0x00000001;
+ traceName_ = input.readBytes();
+ break;
+ }
+ case 18: {
+ bitField0_ |= 0x00000002;
+ traceToken_ = input.readBytes();
+ break;
+ }
+ case 24: {
+ bitField0_ |= 0x00000004;
+ isOpen_ = input.readBool();
+ break;
+ }
+ case 33: {
+ bitField0_ |= 0x00000008;
+ startMilliTime_ = input.readFixed64();
+ break;
+ }
+ }
+ }
+ }
+
+ private int bitField0_;
+
+ // required string traceName = 1;
+ private java.lang.Object traceName_ = "";
+ public boolean hasTraceName() {
+ return ((bitField0_ & 0x00000001) == 0x00000001);
+ }
+ public String getTraceName() {
+ java.lang.Object ref = traceName_;
+ if (!(ref instanceof String)) {
+ String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+ traceName_ = s;
+ return s;
+ } else {
+ return (String) ref;
+ }
+ }
+ public Builder setTraceName(String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000001;
+ traceName_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearTraceName() {
+ bitField0_ = (bitField0_ & ~0x00000001);
+ traceName_ = getDefaultInstance().getTraceName();
+ onChanged();
+ return this;
+ }
+ void setTraceName(com.google.protobuf.ByteString value) {
+ bitField0_ |= 0x00000001;
+ traceName_ = value;
+ onChanged();
+ }
+
+ // required string traceToken = 2;
+ private java.lang.Object traceToken_ = "";
+ public boolean hasTraceToken() {
+ return ((bitField0_ & 0x00000002) == 0x00000002);
+ }
+ public String getTraceToken() {
+ java.lang.Object ref = traceToken_;
+ if (!(ref instanceof String)) {
+ String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
+ traceToken_ = s;
+ return s;
+ } else {
+ return (String) ref;
+ }
+ }
+ public Builder setTraceToken(String value) {
+ if (value == null) {
+ throw new NullPointerException();
+ }
+ bitField0_ |= 0x00000002;
+ traceToken_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearTraceToken() {
+ bitField0_ = (bitField0_ & ~0x00000002);
+ traceToken_ = getDefaultInstance().getTraceToken();
+ onChanged();
+ return this;
+ }
+ void setTraceToken(com.google.protobuf.ByteString value) {
+ bitField0_ |= 0x00000002;
+ traceToken_ = value;
+ onChanged();
+ }
+
+ // required bool isOpen = 3;
+ private boolean isOpen_ ;
+ public boolean hasIsOpen() {
+ return ((bitField0_ & 0x00000004) == 0x00000004);
+ }
+ public boolean getIsOpen() {
+ return isOpen_;
+ }
+ public Builder setIsOpen(boolean value) {
+ bitField0_ |= 0x00000004;
+ isOpen_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearIsOpen() {
+ bitField0_ = (bitField0_ & ~0x00000004);
+ isOpen_ = false;
+ onChanged();
+ return this;
+ }
+
+ // required fixed64 startMilliTime = 4;
+ private long startMilliTime_ ;
+ public boolean hasStartMilliTime() {
+ return ((bitField0_ & 0x00000008) == 0x00000008);
+ }
+ public long getStartMilliTime() {
+ return startMilliTime_;
+ }
+ public Builder setStartMilliTime(long value) {
+ bitField0_ |= 0x00000008;
+ startMilliTime_ = value;
+ onChanged();
+ return this;
+ }
+ public Builder clearStartMilliTime() {
+ bitField0_ = (bitField0_ & ~0x00000008);
+ startMilliTime_ = 0L;
+ onChanged();
+ return this;
+ }
+
+ // @@protoc_insertion_point(builder_scope:RemoteTraceContext)
+ }
+
+ static {
+ defaultInstance = new RemoteTraceContext(true);
+ defaultInstance.initFields();
+ }
+
+ // @@protoc_insertion_point(class_scope:RemoteTraceContext)
+ }
+
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_AckAndTraceContextAwareEnvelopeContainer_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_AckAndTraceContextAwareEnvelopeContainer_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_TraceContextAwareRemoteEnvelope_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_TraceContextAwareRemoteEnvelope_fieldAccessorTable;
+ private static com.google.protobuf.Descriptors.Descriptor
+ internal_static_RemoteTraceContext_descriptor;
+ private static
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable
+ internal_static_RemoteTraceContext_fieldAccessorTable;
+
+ public static com.google.protobuf.Descriptors.FileDescriptor
+ getDescriptor() {
+ return descriptor;
+ }
+ private static com.google.protobuf.Descriptors.FileDescriptor
+ descriptor;
+ static {
+ java.lang.String[] descriptorData = {
+ "\n\"TraceContextAwareWireFormats.proto\032\021Wi" +
+ "reFormats.proto\"\201\001\n(AckAndTraceContextAw" +
+ "areEnvelopeContainer\022!\n\003ack\030\001 \001(\0132\024.Ackn" +
+ "owledgementInfo\0222\n\010envelope\030\002 \001(\0132 .Trac" +
+ "eContextAwareRemoteEnvelope\"\277\001\n\037TraceCon" +
+ "textAwareRemoteEnvelope\022 \n\trecipient\030\001 \002" +
+ "(\0132\r.ActorRefData\022#\n\007message\030\002 \002(\0132\022.Ser" +
+ "ializedMessage\022\035\n\006sender\030\004 \001(\0132\r.ActorRe" +
+ "fData\022\013\n\003seq\030\005 \001(\006\022)\n\014traceContext\030\017 \001(\013" +
+ "2\023.RemoteTraceContext\"c\n\022RemoteTraceCont",
+ "ext\022\021\n\ttraceName\030\001 \002(\t\022\022\n\ntraceToken\030\002 \002" +
+ "(\t\022\016\n\006isOpen\030\003 \002(\010\022\026\n\016startMilliTime\030\004 \002" +
+ "(\006B\037\n\033akka.remote.instrumentationH\001"
+ };
+ com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
+ new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
+ public com.google.protobuf.ExtensionRegistry assignDescriptors(
+ com.google.protobuf.Descriptors.FileDescriptor root) {
+ descriptor = root;
+ internal_static_AckAndTraceContextAwareEnvelopeContainer_descriptor =
+ getDescriptor().getMessageTypes().get(0);
+ internal_static_AckAndTraceContextAwareEnvelopeContainer_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_AckAndTraceContextAwareEnvelopeContainer_descriptor,
+ new java.lang.String[] { "Ack", "Envelope", },
+ akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer.class,
+ akka.remote.instrumentation.TraceContextAwareWireFormats.AckAndTraceContextAwareEnvelopeContainer.Builder.class);
+ internal_static_TraceContextAwareRemoteEnvelope_descriptor =
+ getDescriptor().getMessageTypes().get(1);
+ internal_static_TraceContextAwareRemoteEnvelope_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_TraceContextAwareRemoteEnvelope_descriptor,
+ new java.lang.String[] { "Recipient", "Message", "Sender", "Seq", "TraceContext", },
+ akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope.class,
+ akka.remote.instrumentation.TraceContextAwareWireFormats.TraceContextAwareRemoteEnvelope.Builder.class);
+ internal_static_RemoteTraceContext_descriptor =
+ getDescriptor().getMessageTypes().get(2);
+ internal_static_RemoteTraceContext_fieldAccessorTable = new
+ com.google.protobuf.GeneratedMessage.FieldAccessorTable(
+ internal_static_RemoteTraceContext_descriptor,
+ new java.lang.String[] { "TraceName", "TraceToken", "IsOpen", "StartMilliTime", },
+ akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext.class,
+ akka.remote.instrumentation.TraceContextAwareWireFormats.RemoteTraceContext.Builder.class);
+ return null;
+ }
+ };
+ com.google.protobuf.Descriptors.FileDescriptor
+ .internalBuildGeneratedFileFrom(descriptorData,
+ new com.google.protobuf.Descriptors.FileDescriptor[] {
+ akka.remote.WireFormats.getDescriptor(),
+ }, assigner);
+ }
+
+ // @@protoc_insertion_point(outer_class_scope)
+}
diff --git a/kamon-akka-remote/src/main/resources/META-INF/aop.xml b/kamon-akka-remote/src/main/resources/META-INF/aop.xml
new file mode 100644
index 00000000..ba1c8e79
--- /dev/null
+++ b/kamon-akka-remote/src/main/resources/META-INF/aop.xml
@@ -0,0 +1,12 @@
+<!DOCTYPE aspectj PUBLIC "-//AspectJ//DTD//EN" "http://www.eclipse.org/aspectj/dtd/aspectj.dtd">
+
+<aspectj>
+ <aspects>
+ <!-- Remoting and Cluster -->
+ <aspect name="akka.remote.instrumentation.RemotingInstrumentation"/>
+ </aspects>
+
+ <weaver>
+ <include within="akka..*"/>
+ </weaver>
+</aspectj> \ No newline at end of file
diff --git a/kamon-akka-remote/src/main/scala/kamon/instrumentation/akka/RemotingInstrumentation.scala b/kamon-akka-remote/src/main/scala/kamon/instrumentation/akka/RemotingInstrumentation.scala
new file mode 100644
index 00000000..560008cf
--- /dev/null
+++ b/kamon-akka-remote/src/main/scala/kamon/instrumentation/akka/RemotingInstrumentation.scala
@@ -0,0 +1,99 @@
+package akka.remote.instrumentation
+
+import akka.actor.{ ActorRef, Address }
+import akka.remote.instrumentation.TraceContextAwareWireFormats.{ TraceContextAwareRemoteEnvelope, RemoteTraceContext, AckAndTraceContextAwareEnvelopeContainer }
+import akka.remote.{ RemoteActorRefProvider, Ack, SeqNo }
+import akka.remote.WireFormats._
+import akka.util.ByteString
+import kamon.trace.TraceRecorder
+import org.aspectj.lang.ProceedingJoinPoint
+import org.aspectj.lang.annotation._
+
+@Aspect
+class RemotingInstrumentation {
+
+ @Pointcut("execution(* akka.remote.transport.AkkaPduProtobufCodec$.constructMessage(..)) && " +
+ "args(localAddress, recipient, serializedMessage, senderOption, seqOption, ackOption)")
+ def constructAkkaPduMessage(localAddress: Address, recipient: ActorRef, serializedMessage: SerializedMessage,
+ senderOption: Option[ActorRef], seqOption: Option[SeqNo], ackOption: Option[Ack]): Unit = {}
+
+ @Around("constructAkkaPduMessage(localAddress, recipient, serializedMessage, senderOption, seqOption, ackOption)")
+ def aroundSerializeRemoteMessage(pjp: ProceedingJoinPoint, localAddress: Address, recipient: ActorRef,
+ serializedMessage: SerializedMessage, senderOption: Option[ActorRef], seqOption: Option[SeqNo], ackOption: Option[Ack]): AnyRef = {
+
+ val ackAndEnvelopeBuilder = AckAndTraceContextAwareEnvelopeContainer.newBuilder
+ val envelopeBuilder = TraceContextAwareRemoteEnvelope.newBuilder
+
+ envelopeBuilder.setRecipient(serializeActorRef(recipient.path.address, recipient))
+ senderOption foreach { ref ⇒ envelopeBuilder.setSender(serializeActorRef(localAddress, ref)) }
+ seqOption foreach { seq ⇒ envelopeBuilder.setSeq(seq.rawValue) }
+ ackOption foreach { ack ⇒ ackAndEnvelopeBuilder.setAck(ackBuilder(ack)) }
+ envelopeBuilder.setMessage(serializedMessage)
+
+ // Attach the TraceContext info, if available.
+ if (!TraceRecorder.currentContext.isEmpty) {
+ val context = TraceRecorder.currentContext
+ val relativeStartMilliTime = System.currentTimeMillis - ((System.nanoTime - context.nanoTimestamp) / 1000000)
+
+ envelopeBuilder.setTraceContext(RemoteTraceContext.newBuilder()
+ .setTraceName(context.name)
+ .setTraceToken(context.token)
+ .setIsOpen(context.isOpen)
+ .setStartMilliTime(relativeStartMilliTime)
+ .build())
+ }
+
+ ackAndEnvelopeBuilder.setEnvelope(envelopeBuilder)
+ ByteString.ByteString1C(ackAndEnvelopeBuilder.build.toByteArray) //Reuse Byte Array (naughty!)
+ }
+
+ // Copied from akka.remote.transport.AkkaPduProtobufCodec because of private access.
+ private def ackBuilder(ack: Ack): AcknowledgementInfo.Builder = {
+ val ackBuilder = AcknowledgementInfo.newBuilder()
+ ackBuilder.setCumulativeAck(ack.cumulativeAck.rawValue)
+ ack.nacks foreach { nack ⇒ ackBuilder.addNacks(nack.rawValue) }
+ ackBuilder
+ }
+
+ // Copied from akka.remote.transport.AkkaPduProtobufCodec because of private access.
+ private def serializeActorRef(defaultAddress: Address, ref: ActorRef): ActorRefData = {
+ ActorRefData.newBuilder.setPath(
+ if (ref.path.address.host.isDefined) ref.path.toSerializationFormat
+ else ref.path.toSerializationFormatWithAddress(defaultAddress)).build()
+ }
+
+ // Copied from akka.remote.transport.AkkaPduProtobufCodec because of private access.
+ private def serializeAddress(address: Address): AddressData = address match {
+ case Address(protocol, system, Some(host), Some(port)) ⇒
+ AddressData.newBuilder
+ .setHostname(host)
+ .setPort(port)
+ .setSystem(system)
+ .setProtocol(protocol)
+ .build()
+ case _ ⇒ throw new IllegalArgumentException(s"Address [${address}] could not be serialized: host or port missing.")
+ }
+
+ @Pointcut("execution(* akka.remote.transport.AkkaPduProtobufCodec$.decodeMessage(..)) && args(bs, provider, localAddress)")
+ def decodeRemoteMessage(bs: ByteString, provider: RemoteActorRefProvider, localAddress: Address): Unit = {}
+
+ @Around("decodeRemoteMessage(bs, provider, localAddress)")
+ def aroundDecodeRemoteMessage(pjp: ProceedingJoinPoint, bs: ByteString, provider: RemoteActorRefProvider, localAddress: Address): AnyRef = {
+ val ackAndEnvelope = AckAndTraceContextAwareEnvelopeContainer.parseFrom(bs.toArray)
+
+ if (ackAndEnvelope.hasEnvelope && ackAndEnvelope.getEnvelope.hasTraceContext) {
+ val remoteTraceContext = ackAndEnvelope.getEnvelope.getTraceContext
+ val system = provider.guardian.underlying.system
+ val ctx = TraceRecorder.joinRemoteTraceContext(
+ remoteTraceContext.getTraceName(),
+ remoteTraceContext.getTraceToken(),
+ remoteTraceContext.getStartMilliTime(),
+ remoteTraceContext.getIsOpen(),
+ system)
+
+ TraceRecorder.setContext(ctx)
+ }
+
+ pjp.proceed()
+ }
+}
diff --git a/kamon-akka-remote/src/test/scala/kamon/instrumentation/akka/RemotingInstrumentationSpec.scala b/kamon-akka-remote/src/test/scala/kamon/instrumentation/akka/RemotingInstrumentationSpec.scala
new file mode 100644
index 00000000..63cc9832
--- /dev/null
+++ b/kamon-akka-remote/src/test/scala/kamon/instrumentation/akka/RemotingInstrumentationSpec.scala
@@ -0,0 +1,170 @@
+package kamon.instrumentation.akka
+
+import akka.actor.SupervisorStrategy.Resume
+import akka.actor._
+import akka.pattern.{ ask, pipe }
+import akka.remote.RemoteScope
+import akka.routing.RoundRobinRouter
+import akka.testkit.{ ImplicitSender, TestKitBase }
+import akka.util.Timeout
+import com.typesafe.config.ConfigFactory
+import kamon.trace.TraceRecorder
+import org.scalatest.{ Matchers, WordSpecLike }
+
+import scala.concurrent.duration._
+import scala.util.control.NonFatal
+
+class RemotingInstrumentationSpec extends TestKitBase with WordSpecLike with Matchers {
+ implicit def self = testActor
+
+ implicit lazy val system: ActorSystem = ActorSystem("remoting-spec-local-system", ConfigFactory.parseString(
+ """
+ |akka {
+ | actor {
+ | provider = "akka.remote.RemoteActorRefProvider"
+ | }
+ | remote {
+ | enabled-transports = ["akka.remote.netty.tcp"]
+ | netty.tcp {
+ | hostname = "127.0.0.1"
+ | port = 2552
+ | }
+ | }
+ |}
+ """.stripMargin))
+
+ val remoteSystem: ActorSystem = ActorSystem("remoting-spec-remote-system", ConfigFactory.parseString(
+ """
+ |akka {
+ | actor {
+ | provider = "akka.remote.RemoteActorRefProvider"
+ | }
+ | remote {
+ | enabled-transports = ["akka.remote.netty.tcp"]
+ | netty.tcp {
+ | hostname = "127.0.0.1"
+ | port = 2553
+ | }
+ | }
+ |}
+ """.stripMargin))
+
+ val RemoteSystemAddress = AddressFromURIString("akka.tcp://remoting-spec-remote-system@127.0.0.1:2553")
+
+ "The Remoting instrumentation" should {
+ "propagate the TraceContext when creating a new remote actor" in {
+ TraceRecorder.withNewTraceContext("deploy-remote-actor", Some("deploy-remote-actor-1")) {
+ system.actorOf(TraceTokenReplier.remoteProps(Some(testActor), RemoteSystemAddress), "remote-deploy-fixture")
+ }
+
+ expectMsg("name=deploy-remote-actor|token=deploy-remote-actor-1|isOpen=true")
+ }
+
+ "propagate the TraceContext when sending a message to a remotely deployed actor" in {
+ val remoteRef = system.actorOf(TraceTokenReplier.remoteProps(None, RemoteSystemAddress), "remote-message-fixture")
+
+ TraceRecorder.withNewTraceContext("message-remote-actor", Some("message-remote-actor-1")) {
+ remoteRef ! "reply-trace-token"
+ }
+
+ expectMsg("name=message-remote-actor|token=message-remote-actor-1|isOpen=true")
+ }
+
+ "propagate the TraceContext when pipe or ask a message to a remotely deployed actor" in {
+ implicit val ec = system.dispatcher
+ implicit val askTimeout = Timeout(10 seconds)
+ val remoteRef = system.actorOf(TraceTokenReplier.remoteProps(None, RemoteSystemAddress), "remote-ask-and-pipe-fixture")
+
+ TraceRecorder.withNewTraceContext("ask-and-pipe-remote-actor", Some("ask-and-pipe-remote-actor-1")) {
+ (remoteRef ? "reply-trace-token") pipeTo (testActor)
+ }
+
+ expectMsg("name=ask-and-pipe-remote-actor|token=ask-and-pipe-remote-actor-1|isOpen=true")
+ }
+
+ "propagate the TraceContext when sending a message to an ActorSelection" in {
+ remoteSystem.actorOf(TraceTokenReplier.props(None), "actor-selection-target-a")
+ remoteSystem.actorOf(TraceTokenReplier.props(None), "actor-selection-target-b")
+ val selection = system.actorSelection(RemoteSystemAddress + "/user/actor-selection-target-*")
+
+ TraceRecorder.withNewTraceContext("message-remote-actor-selection", Some("message-remote-actor-selection-1")) {
+ selection ! "reply-trace-token"
+ }
+
+ // one for each selected actor
+ expectMsg("name=message-remote-actor-selection|token=message-remote-actor-selection-1|isOpen=true")
+ expectMsg("name=message-remote-actor-selection|token=message-remote-actor-selection-1|isOpen=true")
+ }
+
+ "propagate the TraceContext a remotely supervised child fails" in {
+ val supervisor = system.actorOf(Props(new SupervisorOfRemote(testActor, RemoteSystemAddress)))
+
+ TraceRecorder.withNewTraceContext("remote-supervision", Some("remote-supervision-1")) {
+ supervisor ! "fail"
+ }
+
+ expectMsg("name=remote-supervision|token=remote-supervision-1|isOpen=true")
+ }
+
+ "propagate the TraceContext when sending messages to remote routees of a router" in {
+ remoteSystem.actorOf(TraceTokenReplier.props(None), "remote-routee")
+ val routees = Vector[String](RemoteSystemAddress + "/user/remote-routee")
+ val router = system.actorOf(Props.empty.withRouter(RoundRobinRouter(routees = routees)))
+
+ TraceRecorder.withNewTraceContext("remote-routee", Some("remote-routee-1")) {
+ router ! "reply-trace-token"
+ }
+
+ expectMsg("name=remote-routee|token=remote-routee-1|isOpen=true")
+ }
+ }
+
+}
+
+class TraceTokenReplier(creationTraceContextListener: Option[ActorRef]) extends Actor with ActorLogging {
+ creationTraceContextListener map { recipient ⇒
+ recipient ! currentTraceContextInfo
+ }
+
+ def receive = {
+ case "fail" ⇒
+ throw new ArithmeticException("Division by zero.")
+ case "reply-trace-token" ⇒
+ log.info("Sending back the TT: " + TraceRecorder.currentContext.token)
+ sender ! currentTraceContextInfo
+ }
+
+ def currentTraceContextInfo: String = {
+ val ctx = TraceRecorder.currentContext
+ s"name=${ctx.name}|token=${ctx.token}|isOpen=${ctx.isOpen}"
+ }
+}
+
+object TraceTokenReplier {
+ def props(creationTraceContextListener: Option[ActorRef]): Props =
+ Props(new TraceTokenReplier(creationTraceContextListener))
+
+ def remoteProps(creationTraceContextListener: Option[ActorRef], remoteAddress: Address): Props = {
+ Props(new TraceTokenReplier(creationTraceContextListener))
+ .withDeploy(Deploy(scope = RemoteScope(remoteAddress)))
+ }
+}
+
+class SupervisorOfRemote(traceContextListener: ActorRef, remoteAddress: Address) extends Actor {
+ val supervisedChild = context.actorOf(TraceTokenReplier.remoteProps(None, remoteAddress), "remotely-supervised-child")
+
+ def receive = {
+ case "fail" ⇒ supervisedChild ! "fail"
+ }
+
+ override def supervisorStrategy: SupervisorStrategy = OneForOneStrategy() {
+ case NonFatal(throwable) ⇒
+ traceContextListener ! currentTraceContextInfo
+ Resume
+ }
+
+ def currentTraceContextInfo: String = {
+ val ctx = TraceRecorder.currentContext
+ s"name=${ctx.name}|token=${ctx.token}|isOpen=${ctx.isOpen}"
+ }
+}