[jetrix-cvs] SF.net SVN: jetrix:[848] jetrix/trunk/src
Brought to you by:
smanux
From: <sm...@us...> - 2010-05-03 20:51:39
|
Revision: 848 http://jetrix.svn.sourceforge.net/jetrix/?rev=848&view=rev Author: smanux Date: 2010-05-03 20:51:32 +0000 (Mon, 03 May 2010) Log Message: ----------- Switched the input/output encoding for GTetrinet clients to UTF-8 Modified Paths: -------------- jetrix/trunk/src/java/net/jetrix/Protocol.java jetrix/trunk/src/java/net/jetrix/agent/QueryAgent.java jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java jetrix/trunk/src/java/net/jetrix/clients/TetrinetClient.java jetrix/trunk/src/java/net/jetrix/listeners/TSpecListener.java jetrix/trunk/src/java/net/jetrix/listeners/TetrinetListener.java jetrix/trunk/src/java/net/jetrix/protocols/AbstractProtocol.java jetrix/trunk/src/test/net/jetrix/protocols/TetrinetProtocolTest.java Modified: jetrix/trunk/src/java/net/jetrix/Protocol.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/Protocol.java 2010-05-03 18:13:52 UTC (rev 847) +++ jetrix/trunk/src/java/net/jetrix/Protocol.java 2010-05-03 20:51:32 UTC (rev 848) @@ -88,9 +88,10 @@ * * @since 0.3 * - * @param in the stream to be read + * @param in the stream to be read + * @param encoding the charset encoding used to read the message * @throws IOException thrown if the stream is closed */ - String readLine(InputStream in) throws IOException; + String readLine(InputStream in, String encoding) throws IOException; } Modified: jetrix/trunk/src/java/net/jetrix/agent/QueryAgent.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/agent/QueryAgent.java 2010-05-03 18:13:52 UTC (rev 847) +++ jetrix/trunk/src/java/net/jetrix/agent/QueryAgent.java 2010-05-03 20:51:32 UTC (rev 848) @@ -49,6 +49,7 @@ private Socket socket; private InputStream in; private OutputStream out; + private String encoding = "Cp1252"; private Logger log = Logger.getLogger("net.jetrix"); @@ -113,8 +114,8 @@ // read the result QueryProtocol protocol = new QueryProtocol(); - String version = protocol.readLine(in); - protocol.readLine(in); + String version = protocol.readLine(in, encoding); + protocol.readLine(in, encoding); return version; } @@ -129,7 +130,7 @@ // read the result QueryProtocol protocol = new QueryProtocol(); - String line = protocol.readLine(in); + String line = protocol.readLine(in, encoding); if (line.startsWith("Number of players logged in: ")) { @@ -154,7 +155,7 @@ // read the result String line = null; QueryProtocol protocol = new QueryProtocol(); - while (!QueryProtocol.OK.equals(line = protocol.readLine(in))) + while (!QueryProtocol.OK.equals(line = protocol.readLine(in, encoding))) { Matcher matcher = pattern.matcher(line); @@ -197,7 +198,7 @@ // read the result String line = null; QueryProtocol protocol = new QueryProtocol(); - while (!QueryProtocol.OK.equals(line = protocol.readLine(in))) + while (!QueryProtocol.OK.equals(line = protocol.readLine(in, encoding))) { Matcher matcher = pattern.matcher(line); Modified: jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java 2010-05-03 18:13:52 UTC (rev 847) +++ jetrix/trunk/src/java/net/jetrix/agent/TetrinetAgent.java 2010-05-03 20:51:32 UTC (rev 848) @@ -65,6 +65,7 @@ private Socket socket; private InputStream in; private Writer out; + private String encoding = "Cp1252"; protected Protocol protocol = new TetrinetProtocol(); private boolean running; @@ -97,12 +98,12 @@ socket.setSoTimeout(15000); in = new BufferedInputStream(socket.getInputStream()); - out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "ISO-8859-1")); + out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), encoding)); send(TetrinetProtocol.encode(name, version, socket.getInetAddress().getAddress(), false)); // block until the playernum message is received - String line = protocol.readLine(in); + String line = protocol.readLine(in, encoding); Message message = protocol.getMessage(line); receive(message); @@ -132,7 +133,7 @@ { while (running) { - String line = protocol.readLine(in); + String line = protocol.readLine(in, encoding); Message message = protocol.getMessage(line); Modified: jetrix/trunk/src/java/net/jetrix/clients/TetrinetClient.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/clients/TetrinetClient.java 2010-05-03 18:13:52 UTC (rev 847) +++ jetrix/trunk/src/java/net/jetrix/clients/TetrinetClient.java 2010-05-03 20:51:32 UTC (rev 848) @@ -54,9 +54,11 @@ protected InputStream in; protected OutputStream out; protected Socket socket; + protected String encoding = "Cp1252"; protected ServerConfig serverConfig; + protected BlockingQueue<Message> queue; + protected Logger log = Logger.getLogger("net.jetrix"); - protected BlockingQueue<Message> queue; public TetrinetClient() { @@ -142,6 +144,10 @@ { ClientInfoMessage info = (ClientInfoMessage) message; setVersion(info.getName() + " " + info.getVersion()); + if ("gtetrinet".equalsIgnoreCase(info.getName())) + { + encoding = "UTF-8"; + } } else if (channel != null) { @@ -263,7 +269,7 @@ public Message receive() throws IOException { // read raw message from socket - String line = protocol.readLine(in); + String line = protocol.readLine(in, getEncoding()); lastMessageTime = System.currentTimeMillis(); if (log.isLoggable(Level.FINER)) { @@ -367,7 +373,7 @@ public String getEncoding() { - return "ISO-8859-1"; + return encoding; } public void disconnect() Modified: jetrix/trunk/src/java/net/jetrix/listeners/TSpecListener.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/listeners/TSpecListener.java 2010-05-03 18:13:52 UTC (rev 847) +++ jetrix/trunk/src/java/net/jetrix/listeners/TSpecListener.java 2010-05-03 20:51:32 UTC (rev 848) @@ -47,7 +47,7 @@ public Client getClient(Socket socket) throws Exception { TetrinetProtocol protocol = ProtocolManager.getInstance().getProtocol(TetrinetProtocol.class); - String init = protocol.readLine(socket.getInputStream()); + String init = protocol.readLine(socket.getInputStream(), "Cp1252"); TSpecClient client = new TSpecClient(); client.setProtocol(ProtocolManager.getInstance().getProtocol(TspecProtocol.class)); Modified: jetrix/trunk/src/java/net/jetrix/listeners/TetrinetListener.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/listeners/TetrinetListener.java 2010-05-03 18:13:52 UTC (rev 847) +++ jetrix/trunk/src/java/net/jetrix/listeners/TetrinetListener.java 2010-05-03 20:51:32 UTC (rev 848) @@ -52,7 +52,7 @@ { // read the first line sent by the client Protocol protocol1 = protocolManager.getProtocol(TetrinetProtocol.class); - String init = protocol1.readLine(socket.getInputStream()); + String init = protocol1.readLine(socket.getInputStream(), "Cp1252"); // test if the client is using the query protocol Protocol protocol = protocolManager.getProtocol(QueryProtocol.class); @@ -84,7 +84,7 @@ user.setName(tokens.get(1)); client.setUser(user); - client.setVersion((String) tokens.get(2)); + client.setVersion(tokens.get(2)); if ((tokens.get(0)).equals(TetrinetProtocol.INIT_TOKEN)) { client.setProtocol(protocolManager.getProtocol(TetrinetProtocol.class)); Modified: jetrix/trunk/src/java/net/jetrix/protocols/AbstractProtocol.java =================================================================== --- jetrix/trunk/src/java/net/jetrix/protocols/AbstractProtocol.java 2010-05-03 18:13:52 UTC (rev 847) +++ jetrix/trunk/src/java/net/jetrix/protocols/AbstractProtocol.java 2010-05-03 20:51:32 UTC (rev 848) @@ -80,9 +80,9 @@ return input.toByteArray(); } - public String readLine(InputStream in) throws IOException + public String readLine(InputStream in, String encoding) throws IOException { - return new String(readFrame(in), "Cp1252"); + return new String(readFrame(in), encoding); } public boolean equals(Object o) Modified: jetrix/trunk/src/test/net/jetrix/protocols/TetrinetProtocolTest.java =================================================================== --- jetrix/trunk/src/test/net/jetrix/protocols/TetrinetProtocolTest.java 2010-05-03 18:13:52 UTC (rev 847) +++ jetrix/trunk/src/test/net/jetrix/protocols/TetrinetProtocolTest.java 2010-05-03 20:51:32 UTC (rev 848) @@ -301,7 +301,7 @@ byte[] message = new byte[16 * 1024]; try { - protocol.readLine(new ByteArrayInputStream(message, 0, message.length)); + protocol.readLine(new ByteArrayInputStream(message, 0, message.length), "Cp1252"); fail("No exception raised on a 16K message"); } catch (IOException e) @@ -327,7 +327,7 @@ } return --i; } - }); + }, "Cp1252"); fail("No exception raised on extremely slow input"); } catch (IOException e) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |