@@ -0,0 +1,718 @@
+package org.realityforge.replicant.client.transport;%0A%0Aimport javax.annotation.Nonnull;%0A%0A/**%0A * Abstract representation of client session.%0A * Simply tracks the session identifier and job sequencing.%0A */%0Apublic abstract class ClientSession%0A%7B%0A  private final String _sessionID;%0A  private final RequestManager _requestManager;%0A%0A  public ClientSession( @Nonnull final String sessionID )%0A  %7B%0A    _sessionID = sessionID;%0A    _requestManager = newRequestManager();%0A  %7D%0A%0A  @Nonnull%0A  public String getSessionID()%0A  %7B%0A    return _sessionID;%0A  %7D%0A%0A  @Nonnull%0A  public RequestManager getRequestManager()%0A  %7B%0A    return _requestManager;%0A  %7D%0A%0A  protected RequestManager newRequestManager()%0A  %7B%0A    return new RequestManager();%0A  %7D%0A%7D%0A

Introduce a base class for sessions