/* * Copyright 2017 Nokia Solutions and Networks * Licensed under the Apache License, Version 2.0, * see license.txt file for details. */ package org.rf.ide.core.execution.server; import java.io.IOException; import org.rf.ide.core.execution.RobotDefaultAgentEventListener; import org.rf.ide.core.execution.server.response.ProtocolVersion; import org.rf.ide.core.execution.server.response.ServerResponse.ResponseException; class AgentServerProtocolVersionChecker extends RobotDefaultAgentEventListener { private AgentClient client; @Override public void setClient(final AgentClient client) { this.client = client; } @Override public void handleVersions(final String pythonVersion, final String robotVersion, final int protocolVersion) { final boolean isCorrect = protocolVersion == AgentConnectionServer.RED_AGENT_PROTOCOL_VERSION; try { client.send(new ProtocolVersion(isCorrect)); } catch (ResponseException | IOException e) { throw new RobotAgentEventsListenerException("Unable to send response to client", e); } if (!isCorrect) { throw new RobotAgentEventsListenerException("RED & Agent protocol mismatch.\n" + "\tRED version: " + AgentConnectionServer.RED_AGENT_PROTOCOL_VERSION + "\n" + "\tAgent version: " + protocolVersion); } } }