diff --git a/java/google/registry/flows/EppController.java b/java/google/registry/flows/EppController.java index 722440aa5..5fc6cf969 100644 --- a/java/google/registry/flows/EppController.java +++ b/java/google/registry/flows/EppController.java @@ -50,6 +50,7 @@ public final class EppController { @Inject EppMetric.Builder eppMetricBuilder; @Inject EppMetrics eppMetrics; @Inject BigQueryMetricsEnqueuer bigQueryMetricsEnqueuer; + @Inject ServerTridProvider serverTridProvider; @Inject EppController() {} /** Reads EPP XML, executes the matching flow, and returns an {@link EppOutput}. */ @@ -83,7 +84,8 @@ public final class EppController { Strings.repeat("=", 40)); // Return early by sending an error message, with no clTRID since we couldn't unmarshal it. eppMetricBuilder.setStatus(e.getResult().getCode()); - return getErrorResponse(e.getResult(), Trid.create(null)); + return getErrorResponse( + e.getResult(), Trid.create(null, serverTridProvider.createServerTrid())); } if (!eppInput.getTargetIds().isEmpty()) { eppMetricBuilder.setEppTarget(Joiner.on(',').join(eppInput.getTargetIds())); diff --git a/java/google/registry/flows/FlowModule.java b/java/google/registry/flows/FlowModule.java index 156c74b16..9993306a3 100644 --- a/java/google/registry/flows/FlowModule.java +++ b/java/google/registry/flows/FlowModule.java @@ -152,6 +152,13 @@ public class FlowModule { return credentials; } + @Provides + @FlowScope + Trid provideTrid(EppInput eppInput, ServerTridProvider serverTridProvider) { + return Trid.create( + eppInput.getCommandWrapper().getClTrid(), serverTridProvider.createServerTrid()); + } + @Provides @FlowScope @ClientId @@ -161,12 +168,6 @@ public class FlowModule { return Strings.nullToEmpty(sessionMetadata.getClientId()); } - @Provides - @FlowScope - static Trid provideTrid(EppInput eppInput) { - return Trid.create(eppInput.getCommandWrapper().getClTrid()); - } - @Provides @FlowScope static Class provideFlowClass(EppInput eppInput) { diff --git a/java/google/registry/flows/ServerTridProvider.java b/java/google/registry/flows/ServerTridProvider.java new file mode 100644 index 000000000..7ef6435b9 --- /dev/null +++ b/java/google/registry/flows/ServerTridProvider.java @@ -0,0 +1,28 @@ +// Copyright 2017 The Nomulus Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package google.registry.flows; + +import google.registry.model.eppcommon.Trid; + +/** + * An interface that provides server Trids. + * + * @see Trid + */ +public interface ServerTridProvider { + + /** Creates a new server Trid. */ + public String createServerTrid(); +} diff --git a/java/google/registry/flows/ServerTridProviderImpl.java b/java/google/registry/flows/ServerTridProviderImpl.java new file mode 100644 index 000000000..b158f003b --- /dev/null +++ b/java/google/registry/flows/ServerTridProviderImpl.java @@ -0,0 +1,50 @@ +// Copyright 2017 The Nomulus Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package google.registry.flows; + +import static com.google.common.primitives.Longs.BYTES; + +import com.google.common.io.BaseEncoding; +import java.nio.ByteBuffer; +import java.util.UUID; +import java.util.concurrent.atomic.AtomicLong; +import javax.inject.Inject; + +/** A server Trid provider that generates globally incrementing UUIDs. */ +public class ServerTridProviderImpl implements ServerTridProvider { + + private static final String SERVER_ID = getServerId(); + private static final AtomicLong idCounter = new AtomicLong(); + + @Inject public ServerTridProviderImpl() {} + + /** Creates a unique id for this server instance, as a base64 encoded UUID. */ + private static String getServerId() { + UUID uuid = UUID.randomUUID(); + ByteBuffer buffer = + ByteBuffer.allocate(BYTES * 2) + .putLong(uuid.getMostSignificantBits()) + .putLong(uuid.getLeastSignificantBits()); + return BaseEncoding.base64().encode(buffer.array()); + } + + @Override + public String createServerTrid() { + // The server id can be at most 64 characters. The SERVER_ID is at most 22 characters (128 + // bits in base64), plus the dash. That leaves 41 characters, so we just append the counter in + // hex. + return String.format("%s-%x", SERVER_ID, idCounter.incrementAndGet()); + } +} diff --git a/java/google/registry/flows/ServerTridProviderModule.java b/java/google/registry/flows/ServerTridProviderModule.java new file mode 100644 index 000000000..96c29aa46 --- /dev/null +++ b/java/google/registry/flows/ServerTridProviderModule.java @@ -0,0 +1,28 @@ +// Copyright 2017 The Nomulus Authors. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package google.registry.flows; + +import dagger.Module; +import dagger.Provides; + +/** Dagger module for the server Trid provider. */ +@Module +public class ServerTridProviderModule { + + @Provides + static ServerTridProvider provideServerTridProvider(ServerTridProviderImpl defaultProvider) { + return defaultProvider; + } +} diff --git a/java/google/registry/model/eppcommon/Trid.java b/java/google/registry/model/eppcommon/Trid.java index 62a712dd5..cd3b2d307 100644 --- a/java/google/registry/model/eppcommon/Trid.java +++ b/java/google/registry/model/eppcommon/Trid.java @@ -14,13 +14,12 @@ package google.registry.model.eppcommon; +import static google.registry.util.PreconditionsUtils.checkArgumentNotNull; + import com.google.common.annotations.VisibleForTesting; -import com.google.common.io.BaseEncoding; import com.googlecode.objectify.annotation.Embed; import google.registry.model.ImmutableObject; -import java.nio.ByteBuffer; -import java.util.UUID; -import java.util.concurrent.atomic.AtomicLong; +import javax.annotation.Nullable; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlType; @@ -34,19 +33,6 @@ import javax.xml.bind.annotation.XmlType; @XmlType(propOrder = {"clientTransactionId", "serverTransactionId"}) public class Trid extends ImmutableObject { - private static final String SERVER_ID = getServerId(); - private static final AtomicLong COUNTER = new AtomicLong(); - - /** Creates a unique id for this server instance, as a base64 encoded UUID. */ - private static String getServerId() { - UUID uuid = UUID.randomUUID(); - ByteBuffer buffer = ByteBuffer.allocate(16); - buffer.asLongBuffer() - .put(0, uuid.getMostSignificantBits()) - .put(1, uuid.getLeastSignificantBits()); - return BaseEncoding.base64().encode(buffer.array()); - } - /** The server transaction id. */ @XmlElement(name = "svTRID", namespace = "urn:ietf:params:xml:ns:epp-1.0") String serverTransactionId; @@ -63,17 +49,9 @@ public class Trid extends ImmutableObject { return clientTransactionId; } - public static Trid create(String clientTransactionId) { - Trid instance = new Trid(); - instance.clientTransactionId = clientTransactionId; - // The server id can be at most 64 characters. The SERVER_ID is at most 22 characters (128 bits - // in base64), plus the dash. That leaves 41 characters, so we just append the counter in hex. - instance.serverTransactionId = String.format("%s-%x", SERVER_ID, COUNTER.incrementAndGet()); - return instance; - } - @VisibleForTesting - public static Trid create(String clientTransactionId, String serverTransactionId) { + public static Trid create(@Nullable String clientTransactionId, String serverTransactionId) { + checkArgumentNotNull(serverTransactionId, "serverTransactionId cannot be null"); Trid instance = new Trid(); instance.clientTransactionId = clientTransactionId; instance.serverTransactionId = serverTransactionId; diff --git a/java/google/registry/module/frontend/FrontendComponent.java b/java/google/registry/module/frontend/FrontendComponent.java index 8bcf820fa..00e80b503 100644 --- a/java/google/registry/module/frontend/FrontendComponent.java +++ b/java/google/registry/module/frontend/FrontendComponent.java @@ -17,6 +17,7 @@ package google.registry.module.frontend; import dagger.Component; import google.registry.braintree.BraintreeModule; import google.registry.config.RegistryConfig.ConfigModule; +import google.registry.flows.ServerTridProviderModule; import google.registry.flows.custom.CustomLogicFactoryModule; import google.registry.keyring.api.DummyKeyringModule; import google.registry.keyring.api.KeyModule; @@ -51,6 +52,7 @@ import javax.inject.Singleton; Jackson2Module.class, KeyModule.class, ModulesServiceModule.class, + ServerTridProviderModule.class, StackdriverModule.class, SystemClockModule.class, SystemSleeperModule.class, diff --git a/java/google/registry/module/tools/ToolsComponent.java b/java/google/registry/module/tools/ToolsComponent.java index 422062ea1..60e804084 100644 --- a/java/google/registry/module/tools/ToolsComponent.java +++ b/java/google/registry/module/tools/ToolsComponent.java @@ -17,6 +17,7 @@ package google.registry.module.tools; import dagger.Component; import google.registry.config.RegistryConfig.ConfigModule; import google.registry.export.DriveModule; +import google.registry.flows.ServerTridProviderModule; import google.registry.flows.custom.CustomLogicFactoryModule; import google.registry.gcs.GcsServiceModule; import google.registry.groups.DirectoryModule; @@ -57,12 +58,13 @@ import javax.inject.Singleton; Jackson2Module.class, KeyModule.class, ModulesServiceModule.class, + ServerTridProviderModule.class, + SystemClockModule.class, + SystemSleeperModule.class, ToolsRequestComponentModule.class, UrlFetchTransportModule.class, UseAppIdentityCredentialForGoogleApisModule.class, UserServiceModule.class, - SystemClockModule.class, - SystemSleeperModule.class, }) interface ToolsComponent { ToolsRequestHandler requestHandler(); diff --git a/java/google/registry/rde/imports/RdeImportUtils.java b/java/google/registry/rde/imports/RdeImportUtils.java index 1e3a1c0f7..8d6319143 100644 --- a/java/google/registry/rde/imports/RdeImportUtils.java +++ b/java/google/registry/rde/imports/RdeImportUtils.java @@ -18,6 +18,7 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import static google.registry.util.DateTimeUtils.END_OF_TIME; import static google.registry.util.DateTimeUtils.START_OF_TIME; +import static java.nio.charset.StandardCharsets.US_ASCII; import static java.nio.charset.StandardCharsets.UTF_8; import com.google.appengine.tools.cloudstorage.GcsFilename; @@ -25,6 +26,8 @@ import com.google.common.collect.ImmutableSet; import com.google.common.io.BaseEncoding; import com.googlecode.objectify.Key; import google.registry.config.RegistryConfig.Config; +import google.registry.flows.ServerTridProvider; +import google.registry.flows.ServerTridProviderImpl; import google.registry.gcs.GcsUtils; import google.registry.model.EppResource; import google.registry.model.EppResource.ForeignKeyedEppResource; @@ -70,6 +73,8 @@ public class RdeImportUtils { private final String escrowBucketName; private final GcsUtils gcsUtils; + private static final ServerTridProvider serverTridProvider = new ServerTridProviderImpl(); + @Inject public RdeImportUtils( Ofy ofy, Clock clock, @Config("rdeImportBucket") String escrowBucketName, GcsUtils gcsUtils) { @@ -175,7 +180,8 @@ public class RdeImportUtils { // Client trids must be a token between 3 and 64 characters long // Base64 encoded UUID string meets this requirement return Trid.create( - "Import_" + BaseEncoding.base64().encode(UUID.randomUUID().toString().getBytes())); + "Import_" + BaseEncoding.base64().encode(UUID.randomUUID().toString().getBytes(US_ASCII)), + serverTridProvider.createServerTrid()); } public static BillingEvent.Recurring createAutoRenewBillingEventForDomainImport( diff --git a/javatests/google/registry/flows/EppControllerTest.java b/javatests/google/registry/flows/EppControllerTest.java index c8da36482..7731b5862 100644 --- a/javatests/google/registry/flows/EppControllerTest.java +++ b/javatests/google/registry/flows/EppControllerTest.java @@ -22,6 +22,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import com.google.common.collect.ImmutableMap; +import google.registry.flows.EppTestComponent.FakeServerTridProvider; import google.registry.model.eppcommon.Trid; import google.registry.model.eppoutput.EppOutput; import google.registry.model.eppoutput.EppResponse; @@ -86,12 +87,14 @@ public class EppControllerTest extends ShardableTestCase { eppController.bigQueryMetricsEnqueuer = metricsEnqueuer; eppController.flowComponentBuilder = flowComponentBuilder; eppController.eppMetrics = eppMetrics; + eppController.serverTridProvider = new FakeServerTridProvider(); } @Test public void testMarshallingUnknownError() throws Exception { marshal( - EppController.getErrorResponse(Result.create(Code.COMMAND_FAILED), Trid.create(null)), + EppController.getErrorResponse( + Result.create(Code.COMMAND_FAILED), Trid.create(null, "server-trid")), ValidationMode.STRICT); } diff --git a/javatests/google/registry/flows/EppTestComponent.java b/javatests/google/registry/flows/EppTestComponent.java index 96a960d84..5fbad9b57 100644 --- a/javatests/google/registry/flows/EppTestComponent.java +++ b/javatests/google/registry/flows/EppTestComponent.java @@ -115,6 +115,19 @@ interface EppTestComponent { Sleeper provideSleeper() { return sleeper; } + + @Provides + ServerTridProvider provideServerTridProvider() { + return new FakeServerTridProvider(); + } + } + + public static class FakeServerTridProvider implements ServerTridProvider { + + @Override + public String createServerTrid() { + return "server-trid"; + } } /** Subcomponent for request scoped injections. */ diff --git a/javatests/google/registry/flows/domain/DomainAllocateFlowTest.java b/javatests/google/registry/flows/domain/DomainAllocateFlowTest.java index b57c9bac3..e8ac11f3e 100644 --- a/javatests/google/registry/flows/domain/DomainAllocateFlowTest.java +++ b/javatests/google/registry/flows/domain/DomainAllocateFlowTest.java @@ -89,7 +89,7 @@ public class DomainAllocateFlowTest private static final String SMD_ID = "1-1"; private static final String CLIENT_ID = "TheRegistrar"; - private static final Trid TRID = Trid.create("ABC-123"); + private static final Trid TRID = Trid.create("ABC-123", "server-trid"); /** The applicationId, expressed as a base 10 String. */ private String applicationId = "2-TLD"; diff --git a/javatests/google/registry/model/contact/ContactResourceTest.java b/javatests/google/registry/model/contact/ContactResourceTest.java index 8a9f81242..f43b9a473 100644 --- a/javatests/google/registry/model/contact/ContactResourceTest.java +++ b/javatests/google/registry/model/contact/ContactResourceTest.java @@ -110,7 +110,7 @@ public class ContactResourceTest extends EntityTestCase { Key.create(BillingEvent.OneTime.class, 1))) .setTransferRequestTime(clock.nowUtc()) .setTransferStatus(TransferStatus.SERVER_APPROVED) - .setTransferRequestTrid(Trid.create("client trid")) + .setTransferRequestTrid(Trid.create("client-trid", "server-trid")) .build()) .build())); } diff --git a/javatests/google/registry/model/domain/DomainApplicationTest.java b/javatests/google/registry/model/domain/DomainApplicationTest.java index 286572c07..815402d08 100644 --- a/javatests/google/registry/model/domain/DomainApplicationTest.java +++ b/javatests/google/registry/model/domain/DomainApplicationTest.java @@ -90,7 +90,7 @@ public class DomainApplicationTest extends EntityTestCase { .setDsData(ImmutableSet.of(DelegationSignerData.create(1, 2, 3, new byte[] {0, 1, 2}))) .setLaunchNotice( LaunchNotice.create("tcnid", "validatorId", START_OF_TIME, START_OF_TIME)) - .setCreationTrid(Trid.create("client creation trid")) + .setCreationTrid(Trid.create("client-creation-trid", "server-trid")) .setPhase(LaunchPhase.LANDRUSH) // TODO(b/32447342): set period .setEncodedSignedMarks(ImmutableList.of(EncodedSignedMark.create("base64", "abcdefg="))) diff --git a/javatests/google/registry/model/domain/DomainResourceTest.java b/javatests/google/registry/model/domain/DomainResourceTest.java index 5c169fa2d..0ab68a05a 100644 --- a/javatests/google/registry/model/domain/DomainResourceTest.java +++ b/javatests/google/registry/model/domain/DomainResourceTest.java @@ -137,7 +137,7 @@ public class DomainResourceTest extends EntityTestCase { .setServerApproveAutorenewPollMessage(autorenewPollKey) .setTransferRequestTime(clock.nowUtc().plusDays(1)) .setTransferStatus(TransferStatus.SERVER_APPROVED) - .setTransferRequestTrid(Trid.create("client trid")) + .setTransferRequestTrid(Trid.create("client-trid", "server-trid")) .build()) .setDeletePollMessage(onetimePollKey) .setAutorenewBillingEvent(recurringBillKey) diff --git a/javatests/google/registry/model/host/HostResourceTest.java b/javatests/google/registry/model/host/HostResourceTest.java index 9721e9458..b67395a4c 100644 --- a/javatests/google/registry/model/host/HostResourceTest.java +++ b/javatests/google/registry/model/host/HostResourceTest.java @@ -69,7 +69,7 @@ public class HostResourceTest extends EntityTestCase { Key.create(BillingEvent.OneTime.class, 1))) .setTransferRequestTime(clock.nowUtc()) .setTransferStatus(TransferStatus.SERVER_APPROVED) - .setTransferRequestTrid(Trid.create("client trid")) + .setTransferRequestTrid(Trid.create("client-trid", "server-trid")) .build()) .build()); host = diff --git a/javatests/google/registry/model/poll/PollMessageExternalKeyConverterTest.java b/javatests/google/registry/model/poll/PollMessageExternalKeyConverterTest.java index ec4349249..86b6cd80c 100644 --- a/javatests/google/registry/model/poll/PollMessageExternalKeyConverterTest.java +++ b/javatests/google/registry/model/poll/PollMessageExternalKeyConverterTest.java @@ -70,7 +70,7 @@ public class PollMessageExternalKeyConverterTest { .setXmlBytes("".getBytes(UTF_8)) .setModificationTime(clock.nowUtc()) .setClientId("foo") - .setTrid(Trid.create("ABC-123")) + .setTrid(Trid.create("ABC-123", "server-trid")) .setBySuperuser(false) .setReason("reason") .setRequestedByRegistrar(false) diff --git a/javatests/google/registry/model/poll/PollMessageTest.java b/javatests/google/registry/model/poll/PollMessageTest.java index ab2e00cb9..90c2b41d9 100644 --- a/javatests/google/registry/model/poll/PollMessageTest.java +++ b/javatests/google/registry/model/poll/PollMessageTest.java @@ -43,7 +43,7 @@ public class PollMessageTest extends EntityTestCase { .setXmlBytes("".getBytes(UTF_8)) .setModificationTime(clock.nowUtc()) .setClientId("foo") - .setTrid(Trid.create("ABC-123")) + .setTrid(Trid.create("ABC-123", "server-trid")) .setBySuperuser(false) .setReason("reason") .setRequestedByRegistrar(false) diff --git a/javatests/google/registry/model/reporting/HistoryEntryTest.java b/javatests/google/registry/model/reporting/HistoryEntryTest.java index 8abe37ade..1aa64e30c 100644 --- a/javatests/google/registry/model/reporting/HistoryEntryTest.java +++ b/javatests/google/registry/model/reporting/HistoryEntryTest.java @@ -44,7 +44,7 @@ public class HistoryEntryTest extends EntityTestCase { .setModificationTime(clock.nowUtc()) .setClientId("foo") .setOtherClientId("otherClient") - .setTrid(Trid.create("ABC-123")) + .setTrid(Trid.create("ABC-123", "server-trid")) .setBySuperuser(false) .setReason("reason") .setRequestedByRegistrar(false) diff --git a/javatests/google/registry/rde/ContactResourceToXjcConverterTest.java b/javatests/google/registry/rde/ContactResourceToXjcConverterTest.java index 86b058b9d..224f79f81 100644 --- a/javatests/google/registry/rde/ContactResourceToXjcConverterTest.java +++ b/javatests/google/registry/rde/ContactResourceToXjcConverterTest.java @@ -337,7 +337,7 @@ public class ContactResourceToXjcConverterTest { .setTransferRequestTime(DateTime.parse("1925-04-19TZ")) .setPendingTransferExpirationTime(DateTime.parse("1925-04-21TZ")) .setTransferStatus(TransferStatus.SERVER_APPROVED) - .setTransferRequestTrid(Trid.create("client trid")) + .setTransferRequestTrid(Trid.create("client-trid", "server-trid")) .build()) .setDisclose(new Disclose.Builder() .setFlag(true) diff --git a/javatests/google/registry/rde/DomainResourceToXjcConverterTest.java b/javatests/google/registry/rde/DomainResourceToXjcConverterTest.java index 7236405fb..d527a7505 100644 --- a/javatests/google/registry/rde/DomainResourceToXjcConverterTest.java +++ b/javatests/google/registry/rde/DomainResourceToXjcConverterTest.java @@ -352,7 +352,7 @@ public class DomainResourceToXjcConverterTest { Key.create(billingEvent))) .setTransferRequestTime(DateTime.parse("1919-01-01T00:00:00Z")) .setTransferStatus(TransferStatus.PENDING) - .setTransferRequestTrid(Trid.create("client trid")) + .setTransferRequestTrid(Trid.create("client-trid", "server-trid")) .build()) .build(); clock.advanceOneMilli(); diff --git a/javatests/google/registry/rde/RdeFixtures.java b/javatests/google/registry/rde/RdeFixtures.java index e76f931d8..842250e0b 100644 --- a/javatests/google/registry/rde/RdeFixtures.java +++ b/javatests/google/registry/rde/RdeFixtures.java @@ -177,7 +177,7 @@ final class RdeFixtures { Key.create(billingEvent))) .setTransferRequestTime(DateTime.parse("1919-01-01T00:00:00Z")) .setTransferStatus(TransferStatus.PENDING) - .setTransferRequestTrid(Trid.create("client trid")) + .setTransferRequestTrid(Trid.create("client-trid", "server-trid")) .build()) .build(); clock.advanceOneMilli(); diff --git a/javatests/google/registry/rde/imports/RdeContactImportActionTest.java b/javatests/google/registry/rde/imports/RdeContactImportActionTest.java index 72450f4a5..5a74edf9e 100644 --- a/javatests/google/registry/rde/imports/RdeContactImportActionTest.java +++ b/javatests/google/registry/rde/imports/RdeContactImportActionTest.java @@ -127,7 +127,7 @@ public class RdeContactImportActionTest extends MapreduceTestCase { - private Trid trid = Trid.create("ABC123"); private DomainApplication domainApplication; private DateTime creationTime; @@ -71,7 +70,7 @@ public class UpdateApplicationStatusCommandTest new HistoryEntry.Builder() .setParent(domainApplication) .setModificationTime(creationTime) - .setTrid(trid) + .setTrid(Trid.create("ABC123", "server-trid")) .setType(HistoryEntry.Type.DOMAIN_APPLICATION_CREATE) .build()); @@ -81,7 +80,7 @@ public class UpdateApplicationStatusCommandTest new HistoryEntry.Builder() .setParent(domainApplication) .setModificationTime(creationTime) - .setTrid(Trid.create("ABC124")) + .setTrid(Trid.create("ABC124", "server-trid")) .setType(HistoryEntry.Type.DOMAIN_APPLICATION_CREATE) .build()); } @@ -106,7 +105,7 @@ public class UpdateApplicationStatusCommandTest .doesNotHaveApplicationStatus(REJECTED); assertThat(getPollMessageCount()).isEqualTo(0); - Trid creationTrid = Trid.create("DEF456"); + Trid creationTrid = Trid.create("DEF456", "server-trid"); persistResource(reloadResource(domainApplication).asBuilder() .setCreationTrid(creationTrid) .build()); @@ -144,7 +143,7 @@ public class UpdateApplicationStatusCommandTest .doesNotHaveApplicationStatus(ALLOCATED); assertThat(getPollMessageCount()).isEqualTo(0); - Trid creationTrid = Trid.create("DEF456"); + Trid creationTrid = Trid.create("DEF456", "server-trid"); persistResource(reloadResource(domainApplication).asBuilder() .setCreationTrid(creationTrid) .build()); @@ -178,7 +177,7 @@ public class UpdateApplicationStatusCommandTest .hasStatusValue(StatusValue.PENDING_CREATE); assertThat(getPollMessageCount()).isEqualTo(0); - Trid creationTrid = Trid.create("DEF456"); + Trid creationTrid = Trid.create("DEF456", "server-trid"); persistResource(reloadResource(domainApplication).asBuilder() .setCreationTrid(creationTrid) .build()); @@ -229,7 +228,7 @@ public class UpdateApplicationStatusCommandTest PollMessage pollMessage = getFirstPollMessage(); DomainPendingActionNotificationResponse response = (DomainPendingActionNotificationResponse) FluentIterable.from(pollMessage.getResponseData()).first().get(); - assertThat(response.getTrid()).isEqualTo(trid); + assertThat(response.getTrid()).isEqualTo(Trid.create("ABC123", "server-trid")); } @Test