1754256e4b1acba1555bcb1892a2627fd34f594c6Cédric Beustpackage org.testng.remote.strprotocol; 2754256e4b1acba1555bcb1892a2627fd34f594c6Cédric Beust 33eb34813b24377dd042c9e85b8a7854af34e3b81Cédric Beustimport org.testng.remote.RemoteTestNG; 43eb34813b24377dd042c9e85b8a7854af34e3b81Cédric Beust 5754256e4b1acba1555bcb1892a2627fd34f594c6Cédric Beustimport java.io.IOException; 654c45175326b6cda1d4da7780f906871632de1d5Cédric Beustimport java.io.ObjectInputStream; 7754256e4b1acba1555bcb1892a2627fd34f594c6Cédric Beustimport java.io.ObjectOutputStream; 8754256e4b1acba1555bcb1892a2627fd34f594c6Cédric Beust 9754256e4b1acba1555bcb1892a2627fd34f594c6Cédric Beust 10754256e4b1acba1555bcb1892a2627fd34f594c6Cédric Beustpublic class SerializedMessageSender extends BaseMessageSender { 11754256e4b1acba1555bcb1892a2627fd34f594c6Cédric Beust 12754256e4b1acba1555bcb1892a2627fd34f594c6Cédric Beust public SerializedMessageSender(String host, int port) { 135c2da9a4d95f922a413b8502f4ddc3ab0f13c9d3Cédric Beust super(host, port, false /* no ack */); 145c2da9a4d95f922a413b8502f4ddc3ab0f13c9d3Cédric Beust } 155c2da9a4d95f922a413b8502f4ddc3ab0f13c9d3Cédric Beust 165c2da9a4d95f922a413b8502f4ddc3ab0f13c9d3Cédric Beust public SerializedMessageSender(String host, int port, boolean ack) { 175c2da9a4d95f922a413b8502f4ddc3ab0f13c9d3Cédric Beust super(host, port, ack); 18754256e4b1acba1555bcb1892a2627fd34f594c6Cédric Beust } 19754256e4b1acba1555bcb1892a2627fd34f594c6Cédric Beust 20754256e4b1acba1555bcb1892a2627fd34f594c6Cédric Beust @Override 21754256e4b1acba1555bcb1892a2627fd34f594c6Cédric Beust public void sendMessage(IMessage message) throws IOException { 22d6c0c9ac6acabd3a5d072f3f02d5dda00fc77bdbCédric Beust synchronized(m_outStream) { 2354c45175326b6cda1d4da7780f906871632de1d5Cédric Beust p("Sending message " + message); 243eb34813b24377dd042c9e85b8a7854af34e3b81Cédric Beust ObjectOutputStream oos = new ObjectOutputStream(m_outStream); 253eb34813b24377dd042c9e85b8a7854af34e3b81Cédric Beust oos.writeObject(message); 263eb34813b24377dd042c9e85b8a7854af34e3b81Cédric Beust oos.flush(); 2754c45175326b6cda1d4da7780f906871632de1d5Cédric Beust 280482f188546780be2e9fbb4607765fcaaecb898bCédric Beust waitForAck(); 29754256e4b1acba1555bcb1892a2627fd34f594c6Cédric Beust } 30754256e4b1acba1555bcb1892a2627fd34f594c6Cédric Beust } 31754256e4b1acba1555bcb1892a2627fd34f594c6Cédric Beust 3215f707e1b3e9b4360b4b1e5fa5ad7a3b396b04fdCédric Beust @Override 3354c45175326b6cda1d4da7780f906871632de1d5Cédric Beust public IMessage receiveMessage() throws IOException, ClassNotFoundException { 3454c45175326b6cda1d4da7780f906871632de1d5Cédric Beust 3554c45175326b6cda1d4da7780f906871632de1d5Cédric Beust IMessage result = null; 3654c45175326b6cda1d4da7780f906871632de1d5Cédric Beust try { 373eb34813b24377dd042c9e85b8a7854af34e3b81Cédric Beust ObjectInputStream ios = new ObjectInputStream(m_inStream); 3854c45175326b6cda1d4da7780f906871632de1d5Cédric Beust// synchronized(m_input) { 393eb34813b24377dd042c9e85b8a7854af34e3b81Cédric Beust result = (IMessage) ios.readObject(); 4054c45175326b6cda1d4da7780f906871632de1d5Cédric Beust p("Received message " + result); 4154c45175326b6cda1d4da7780f906871632de1d5Cédric Beust// sendAck(); 4254c45175326b6cda1d4da7780f906871632de1d5Cédric Beust// } 4354c45175326b6cda1d4da7780f906871632de1d5Cédric Beust } 4408e92ff179284885dde755591df8e2f3b360aff7Cédric Beust catch(Exception ex) { 4508e92ff179284885dde755591df8e2f3b360aff7Cédric Beust if (RemoteTestNG.isVerbose()) { 4608e92ff179284885dde755591df8e2f3b360aff7Cédric Beust ex.printStackTrace(); 4708e92ff179284885dde755591df8e2f3b360aff7Cédric Beust } 4854c45175326b6cda1d4da7780f906871632de1d5Cédric Beust } 4954c45175326b6cda1d4da7780f906871632de1d5Cédric Beust return result; 5054c45175326b6cda1d4da7780f906871632de1d5Cédric Beust } 5154c45175326b6cda1d4da7780f906871632de1d5Cédric Beust 520482f188546780be2e9fbb4607765fcaaecb898bCédric Beust static void p(String s) { 533eb34813b24377dd042c9e85b8a7854af34e3b81Cédric Beust if (RemoteTestNG.isVerbose()) { 543eb34813b24377dd042c9e85b8a7854af34e3b81Cédric Beust System.out.println("[SerializedMessageSender] " + s); 553eb34813b24377dd042c9e85b8a7854af34e3b81Cédric Beust } 5615f707e1b3e9b4360b4b1e5fa5ad7a3b396b04fdCédric Beust } 57754256e4b1acba1555bcb1892a2627fd34f594c6Cédric Beust} 58