/** * Issues a disconnect followed by a connect * @exception IOException */ public void reconnect() throws IOException { disconnect(); connect(); } public void setLogger (Logger logger, String realm) {
public void configure(BaseChannel isoChannel, Collection<ISORequestListener> requestListeners) { channel.setChannel(isoChannel); if (requestListeners != null) { this.requestListeners = requestListeners; } if (name == null) { name = isoChannel.getName(); } if (isoChannel.getPort() > 0) { port = isoChannel.getPort(); } }
/** * constructs a client ISOChannel * @param host server TCP Address * @param port server port number * @param p an ISOPackager * @see ISOPackager */ public BaseChannel (String host, int port, ISOPackager p) { this(); setHost(host, port); setPackager(p); } /**
/** * constructs a server ISOChannel associated with a Server Socket * @param p an ISOPackager * @param serverSocket where to accept a connection * @exception IOException on error * @see ISOPackager */ public BaseChannel (ISOPackager p, ServerSocket serverSocket) throws IOException { this(); setPackager (p); setServerSocket (serverSocket); }
byte[] header=null; LogEvent evt = new LogEvent (this, "receive"); ISOMsg m = createMsg (); // call createMsg instead of createISOMsg for if (!isConnected()) throw new IOException ("unconnected ISOChannel"); int len = getMessageLength(); if (expectKeepAlive) { while (len == 0) { len = getMessageLength(); int hLen = getHeaderLength(); header = readHeader(hLen); b = streamReceive(); else if (len > 0 && len <= getMaxPacketLength()) { if (hLen > 0) { header = readHeader(hLen); len -= header.length; getMessage (b, 0, len); getMessageTrailer(m); "receive length " +len + " seems strange - maxPacketLength = " + getMaxPacketLength());
if (!isConnected()) throw new IOException ("unconnected ISOChannel"); m.setDirection(ISOMsg.OUTGOING); ISOPackager p = getDynamicPackager(m); m.setPackager (p); m = applyOutgoingFilters (m, evt); evt.addMessage (m); byte[] b = pack(m); synchronized (serverOutLock) { sendMessageLength(b.length + getHeaderLength(m)); sendMessageHeader(m, b.length); sendMessage (b, 0, b.length); sendMessageTrailer(m, b); serverOut.flush (); setChanged(); notifyObservers(m); } catch (VetoException e) {
/** * Connects client ISOChannel to server * @exception IOException */ public void connect () throws IOException { LogEvent evt = new LogEvent (this, "connect"); try { if (serverSocket != null) { accept(serverSocket); evt.addMessage ("local port "+serverSocket.getLocalPort() +" remote host "+socket.getInetAddress()); } else { connect(newSocket (hosts, ports, evt)); } applyTimeout(); Logger.log (evt); } catch (ConnectException e) { Logger.log (new LogEvent (this, "connection-refused", getHost()+":"+getPort()) ); } catch (IOException e) { evt.addMessage (e.getMessage ()); Logger.log (evt); throw e; } }
@Test public void testDisconnectWithCustomSoLingerOption() throws Exception { Socket socket = mockSocket(); when(socketFactory.createSocket(anyString(), anyInt())).thenReturn(socket); BaseChannel rawChannel = new RawChannel(); rawChannel.setSocketFactory(socketFactory); rawChannel.setSoLinger(true, 0); rawChannel.connect(); rawChannel.disconnect(); verify(socket).setSoLinger(true, 0); verify(socket).close(); verify(socket, never()).shutdownOutput(); // this does not make sense when sending a TCP RST down the socket assertTrue(rawChannel.isSoLingerOn()); assertEquals(0, rawChannel.getSoLingerSeconds()); }
@Test public void testSetConfigurationThrowsNullPointerException() throws Throwable { BaseChannel x25Channel = new X25Channel(); Configuration cfg = new SimpleConfiguration((Properties) null); try { x25Channel.setConfiguration(cfg); fail("Expected NullPointerException to be thrown"); } catch (NullPointerException ex) { assertNull("ex.getMessage()", ex.getMessage()); assertEquals("(X25Channel) x25Channel.getMaxPacketLength()", 100000, x25Channel.getMaxPacketLength()); assertEquals("(X25Channel) x25Channel.getPort()", 0, x25Channel.getPort()); assertEquals("(X25Channel) x25Channel.getTimeout()", 0, x25Channel.getTimeout()); assertNull("(X25Channel) x25Channel.getHost()", x25Channel.getHost()); assertNull("(X25Channel) x25Channel.getSocket()", x25Channel.getSocket()); assertFalse("(X25Channel) x25Channel.overrideHeader", ((X25Channel) x25Channel).overrideHeader); } }
applyTimeout(); setLogger(getLogger(), getOriginalRealm() + "/" + socket.getInetAddress().getHostAddress() + ":" + socket.getPort() ); postConnectHook(); usable = true; cnt[CONNECT]++; setChanged(); notifyObservers();
@Test public void testConnectThrowsNullPointerException1() throws Throwable { Socket socket = new Socket(Proxy.NO_PROXY); BaseChannel gZIPChannel = new GZIPChannel(); gZIPChannel.setTimeout(1); try { gZIPChannel.connect(socket); fail("Expected NullPointerException to be thrown"); } catch (NullPointerException ex) { assertNull("ex.getMessage()", ex.getMessage()); assertNull("(GZIPChannel) gZIPChannel.serverIn", ((GZIPChannel) gZIPChannel).serverIn); assertNull("(GZIPChannel) gZIPChannel.serverOut", ((GZIPChannel) gZIPChannel).serverOut); assertSame("(GZIPChannel) gZIPChannel.getSocket()", socket, gZIPChannel.getSocket()); assertEquals("(GZIPChannel) gZIPChannel.cnt.length", 3, ((GZIPChannel) gZIPChannel).cnt.length); assertFalse("(GZIPChannel) gZIPChannel.usable", ((GZIPChannel) gZIPChannel).usable); assertNull("(GZIPChannel) gZIPChannel.logger", ((GZIPChannel) gZIPChannel).logger); assertNull("(GZIPChannel) gZIPChannel.originalRealm", ((GZIPChannel) gZIPChannel).originalRealm); assertNull("(GZIPChannel) gZIPChannel.realm", ((GZIPChannel) gZIPChannel).realm); assertNull("socket.getChannel()", socket.getChannel()); } }
@Test public void testSetServerSocket() throws Throwable { BaseChannel x25Channel = new X25Channel(); ServerSocket sock = new ServerSocket(); x25Channel.setServerSocket(sock); assertSame("(X25Channel) x25Channel.serverSocket", sock, ((X25Channel) x25Channel).serverSocket); assertEquals("(X25Channel) x25Channel.getPort()", 0, x25Channel.getPort()); assertNull("(X25Channel) x25Channel.getHost()", x25Channel.getHost()); assertEquals("(X25Channel) x25Channel.getName()", "", x25Channel.getName()); }
@Test public void testSetHost() throws Throwable { BaseChannel x25Channel = new X25Channel(); x25Channel.setHost("testBaseChannelHost", 100); assertEquals("(X25Channel) x25Channel.getPort()", 100, x25Channel.getPort()); assertEquals("(X25Channel) x25Channel.getHost()", "testBaseChannelHost", x25Channel.getHost()); }
@Test public void testDisconnect1() throws Throwable { ServerSocket sock = new ServerSocket(); BaseChannel cSChannel = new CSChannel(new PostPackager()); cSChannel.setServerSocket(sock); cSChannel.disconnect(); assertSame("(CSChannel) cSChannel.serverSocket", sock, ((CSChannel) cSChannel).serverSocket); assertNull("(CSChannel) cSChannel.getSocket()", cSChannel.getSocket()); assertFalse("(CSChannel) cSChannel.usable", ((CSChannel) cSChannel).usable); }
@Test public void testCreateISOMsgThrowsNullPointerException() throws Throwable { BaseChannel cSChannel = new CSChannel(new ISO93BPackager()); cSChannel.setPackager(null); try { cSChannel.createMsg(); fail("Expected NullPointerException to be thrown"); } catch (NullPointerException ex) { assertNull("ex.getMessage()", ex.getMessage()); assertNull("(CSChannel) cSChannel.packager", ((CSChannel) cSChannel).packager); } }
@Test public void testGetDynamicPackager1() throws Throwable { BaseChannel nACChannel = new NACChannel(); ISOPackager p = new ISO87APackagerBBitmap(); nACChannel.setPackager(p); byte[] image = new byte[1]; ISOPackager result = nACChannel.getDynamicPackager(image); assertSame("result", p, result); }
protected void connect (Socket socket) throws IOException { super.connect (socket); reader = new BufferedReader (new InputStreamReader (serverIn)); } public void disconnect () throws IOException {
public void disconnect () throws IOException { super.disconnect (); reader = null; } protected int getHeaderLength() {
/** * @param filter filter to add (both directions, incoming/outgoing) */ public void addFilter (ISOFilter filter) { addFilter (filter, 0); } /**
@Test public void testAcceptThrowsSocketException() throws Throwable { BaseChannel gZIPChannel = new GZIPChannel(); ServerSocket s = new ServerSocket(); try { gZIPChannel.accept(s); fail("Expected SocketException to be thrown"); } catch (SocketException ex) { assertEquals("ex.getClass()", SocketException.class, ex.getClass()); assertNull("(GZIPChannel) gZIPChannel.logger", ((GZIPChannel) gZIPChannel).logger); assertNull("(GZIPChannel) gZIPChannel.originalRealm", ((GZIPChannel) gZIPChannel).originalRealm); assertNull("(GZIPChannel) gZIPChannel.serverIn", ((GZIPChannel) gZIPChannel).serverIn); assertNull("(GZIPChannel) gZIPChannel.serverOut", ((GZIPChannel) gZIPChannel).serverOut); assertNull("(GZIPChannel) gZIPChannel.getSocket()", gZIPChannel.getSocket()); assertEquals("(GZIPChannel) gZIPChannel.cnt.length", 3, ((GZIPChannel) gZIPChannel).cnt.length); assertNull("(GZIPChannel) gZIPChannel.realm", ((GZIPChannel) gZIPChannel).realm); assertFalse("(GZIPChannel) gZIPChannel.usable", ((GZIPChannel) gZIPChannel).usable); assertFalse("s.isClosed()", s.isClosed()); } }