@Override public byte[] getHeader() { return delegate.getHeader(); }
protected void sendMessageHeader(ISOMsg m, int len) throws IOException { byte[] h = m.getHeader(); if (h != null) { if (h.length == 5) { // swap src/dest address byte[] tmp = new byte[2]; System.arraycopy (h, 1, tmp, 0, 2); System.arraycopy (h, 3, h, 1, 2); System.arraycopy (tmp, 0, h, 3, 2); } } else h = header ; if (h != null) serverOut.write(h); } /**
protected void sendMessageHeader(ISOMsg m, int len) throws IOException { byte[] h = m.getHeader(); if (h != null) { if (tpduSwap && h.length == 5) { // swap src/dest address byte[] tmp = new byte[2]; System.arraycopy (h, 1, tmp, 0, 2); System.arraycopy (h, 3, h, 1, 2); System.arraycopy (tmp, 0, h, 3, 2); } } else h = header; if (h != null) serverOut.write(h); } /**
protected void sendMessageHeader(ISOMsg m, int len) throws IOException { byte[] h = m.getHeader(); if (h != null) { if (tpduSwap && h.length == 5) { // swap src/dest address byte[] tmp = new byte[2]; System.arraycopy (h, 1, tmp, 0, 2); System.arraycopy (h, 3, h, 1, 2); System.arraycopy (tmp, 0, h, 3, 2); } } else h = header ; if (h != null) serverOut.write(h); } /**
@Override public void handleHeader(ISOMsg m, ISOMsg r) { r.setHeader(m.getHeader()); } },
JComponent createISOMsgDumpPanel() { JPanel p = new JPanel(); JTextArea t = new JTextArea(3,20); p.setLayout(new BorderLayout()); p.setBackground(Color.white); p.setBorder(BorderFactory.createLoweredBevelBorder()); p.add(new JLabel("Dump", SwingConstants.LEFT), BorderLayout.NORTH); t.setFont(new Font ("Helvetica", Font.PLAIN, 8)); t.setLineWrap(true); try { StringBuilder buf = new StringBuilder(); if (m.getHeader() != null) { buf.append("--[Header]--\n"); buf.append(ISOUtil.hexString(m.getHeader())); buf.append("\n--[Msg]--\n"); } byte[] b = m.pack(); buf.append (ISOUtil.hexString(b)); t.setText(buf.toString()); } catch (ISOException e) { t.setText(e.toString()); t.setForeground(Color.red); } p.add(t, BorderLayout.CENTER); return p; } }
/** * sends an ISOMsg over the TCP/IP session. * * swap source/destination addresses in BASE1Header if * a reply message is detected.<br> * Sending an incoming message is seen as a reply. * * @param m the Message to be sent * @exception IOException * @exception ISOException * @see ISOChannel#send */ public void send (ISOMsg m) throws IOException, ISOException { if (m.isIncoming() && m.getHeader() != null) { BASE1Header h = new BASE1Header(m.getHeader()); h.swapDirection(); } super.send(m); }
/** * @param m the message * @param len already packed message len (to avoid re-pack) * @exception IOException */ protected void sendMessageHeader(ISOMsg m, int len) throws IOException { ISOHeader h = !isOverrideHeader() && m.getHeader() != null ? m.getISOHeader() : new BASE1Header (srcid, dstid, headerFormat); if (h instanceof BASE1Header) ((BASE1Header)h).setLen(len); serverOut.write(h.pack()); } protected int getMessageLength() throws IOException, ISOException {
ISOMsg m1 = (ISOMsg) stk.pop(); m.merge (m1); m.setHeader (m1.getHeader());
ISOMsg m1 = (ISOMsg) stk.pop(); m.merge (m1); m.setHeader (m1.getHeader()); fixup (m, BINARY_FIELDS);
public synchronized void unpack (ISOComponent c, InputStream in) throws ISOException, IOException { LogEvent evt = new LogEvent (this, "unpack"); try { if (!(c instanceof ISOMsg)) throw new ISOException ("Can't call packager on non Composite"); while (!stk.empty()) // purge from possible previous error stk.pop(); reader.parse (new InputSource (in)); if (stk.empty()) throw new ISOException ("error parsing"); ISOMsg m = (ISOMsg) c; ISOMsg m1 = (ISOMsg) stk.pop(); m.merge (m1); m.setHeader (m1.getHeader()); if (logger != null) evt.addMessage (m); } catch (ISOException e) { evt.addMessage (e); throw e; } catch (SAXException e) { evt.addMessage (e); throw new ISOException (e.toString()); } finally { Logger.log (evt); } }
@Test public void testGetHeader1() throws Throwable { ISOMsg iSOVMsg = new ISOVMsg(mock(ISOVMsg.class)); byte[] result = iSOVMsg.getHeader(); assertNull("result", result); assertNull("(ISOVMsg) iSOVMsg.header", ((ISOVMsg) iSOVMsg).header); }
@Test public void testGetHeaderLength2() throws Throwable { BaseChannel xMLChannel = new XMLChannel(); final byte[] bytes = new byte[12]; bytes[0] = (byte) 22; bytes[1] = (byte) 1; bytes[2] = (byte) 2; bytes[3] = (byte) 0; bytes[4] = (byte) 0; bytes[5] = (byte) 0; bytes[6] = (byte) 0; bytes[7] = (byte) 0; bytes[8] = (byte) 0; bytes[9] = (byte) 0; bytes[10] = (byte) 0; bytes[11] = (byte) 0; when(m.getHeader()).thenReturn(bytes); int result = xMLChannel.getHeaderLength(m); assertEquals("result", 12, result); }
@Test public void testUnpackStream() throws IOException, ISOException { String input = "<isomsg><!-- org.jpos.iso.packager.XMLPackager --><header>686561646572</header><field id=\"0\" value=\"0800\"/>" + "<field id=\"7\" value=\"7654321\"/><field id=\"11\" value=\"12345678\"/>" + "<field id=\"12\" value=\"20110224112759\"/><field id=\"24\" value=\"\"/></isomsg>"; isoMsg.setHeader("header".getBytes()); isoMsg.setMTI("0800"); isoMsg.set(7, "7654321"); isoMsg.set(11, "12345678"); isoMsg.set(12, "20110224112759"); isoMsg.set(24, "831"); ISOMsg result = xMLPackager.createISOMsg(); xMLPackager.unpack(result, new ByteArrayInputStream(input.getBytes())); assertThat(result.getHeader(), is("header".getBytes())); assertThat(result.getMTI(), is("0800")); assertThat(result.getString(7), is("7654321")); assertThat(result.getString(11), is("12345678")); assertThat(result.getString(12), is("20110224112759")); assertThat(result.getString(24), is("")); }
@Test public void testUnpackBytes() throws IOException, ISOException { String input = "<isomsg><!-- org.jpos.iso.packager.XMLPackager --><header>686561646572</header><field id=\"0\" value=\"0800\"/>" + "<field id=\"7\" value=\"7654321\"/><field id=\"11\" value=\"12345678\"/>" + "<field id=\"12\" value=\"20110224112759\"/><field id=\"24\" value=\"831\"/></isomsg>"; isoMsg.setHeader("header".getBytes()); isoMsg.setMTI("0800"); isoMsg.set(7, "7654321"); isoMsg.set(11, "12345678"); isoMsg.set(12, "20110224112759"); isoMsg.set(24, ""); ISOMsg result = xMLPackager.createISOMsg(); int consumedBytes = xMLPackager.unpack(result, input.getBytes()); assertThat(consumedBytes, is(247)); assertThat(result.getHeader(), is("header".getBytes())); assertThat(result.getMTI(), is("0800")); assertThat(result.getString(7), is("7654321")); assertThat(result.getString(11), is("12345678")); assertThat(result.getString(12), is("20110224112759")); assertThat(result.getString(24), is("831")); }
@Test public void testGetHeader() throws Throwable { byte[] header = new byte[2]; ISOHeader header2 = new BASE1Header(header); ISOMsg iSOMsg = new ISOMsg(); iSOMsg.setHeader(header2); byte[] result = iSOMsg.getHeader(); assertTrue (ISOUtil.hexString(header) + "/" + ISOUtil.hexString(result), Arrays.equals(header, result)); assertEquals("header[0]", (byte) 0, header[0]); assertSame("iSOMsg.header", header2, iSOMsg.header); }