in protonj2-client/src/main/java/org/apache/qpid/protonj2/client/impl/ClientConnection.java [863:908]
private void initializeProtonResources(ReconnectLocation location) throws ClientException {
if (options.saslOptions().saslEnabled()) {
engine = EngineFactory.PROTON.createEngine();
} else {
engine = EngineFactory.PROTON.createNonSaslEngine();
}
if (options.traceFrames()) {
engine.configuration().setTraceFrames(true);
if (!engine.configuration().isTraceFrames()) {
LOG.warn("Connection {} frame tracing was enabled but protocol engine does not support it", getId());
}
}
engine.outputHandler(this::handleEngineOutput)
.shutdownHandler(this::handleEngineShutdown)
.errorHandler(this::handleEngineFailure);
protonConnection = engine.connection();
if (client.containerId() != null) {
protonConnection.setContainerId(client.containerId());
} else {
protonConnection.setContainerId(connectionId);
}
if (options.virtualHost() != null) {
protonConnection.setHostname(options.virtualHost().isEmpty() ? null : options.virtualHost());
} else {
protonConnection.setHostname(location.getHost());
}
protonConnection.setLinkedResource(this);
protonConnection.setChannelMax(options.channelMax());
protonConnection.setMaxFrameSize(options.maxFrameSize());
protonConnection.setIdleTimeout((int) options.idleTimeout());
protonConnection.setOfferedCapabilities(ClientConversionSupport.toSymbolArray(options.offeredCapabilities()));
protonConnection.setDesiredCapabilities(ClientConversionSupport.toSymbolArray(options.desiredCapabilities()));
protonConnection.setProperties(ClientConversionSupport.toSymbolKeyedMap(options.properties()));
protonConnection.localOpenHandler(this::handleLocalOpen)
.localCloseHandler(this::handleLocalClose)
.openHandler(this::handleRemoteOpen)
.closeHandler(this::handleRemoteClose);
configureEngineSaslSupport();
}