
org.jpos.iso.channel.LogChannel Maven / Gradle / Ivy
Go to download
jPOS is an ISO-8583 based financial transaction
library/framework that can be customized and
extended in order to implement financial interchanges.
/*
* jPOS Project [http://jpos.org]
* Copyright (C) 2000-2017 jPOS Software SRL
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
package org.jpos.iso.channel;
import org.jpos.core.Configuration;
import org.jpos.core.ConfigurationException;
import org.jpos.iso.*;
import java.io.BufferedReader;
import java.io.EOFException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Extracts <isomsg> blocks from standard jPOS log
*
* @see ISOMsg
* @see ISOException
* @see ISOChannel
*/
public class LogChannel extends BaseChannel {
BufferedReader reader = null;
int timestampField=0;
int realmField=0;
private static Pattern logPattern = Pattern.compile(" 0 || realmField > 0) && s.contains(" 1) {
if (realmField > 0)
realm = matcher.group(1);
if (timestampField > 0)
at = matcher.group(2);
}
}
if (s.contains("") && --inMsg == 0) {
if (at != null || realm != null && inMsg == 0) {
if (realm != null) {
sb.append(" ");
realm = null;
}
if (at != null) {
sb.append(" ");
}
}
sb.append (s);
break;
}
if (inMsg > 0)
sb.append (s);
}
return sb.toString().getBytes();
}
protected int getHeaderLength() {
return 0;
}
protected void connect (Socket socket) throws IOException {
super.connect (socket);
reader = new BufferedReader (new InputStreamReader (serverIn));
}
public void disconnect () throws IOException {
super.disconnect ();
reader = null;
}
@Override
public void setConfiguration (Configuration cfg) throws ConfigurationException {
super.setConfiguration(cfg);
timestampField = cfg.getInt("timestamp-field", 0);
realmField = cfg.getInt("realm-field", 0);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy