/*
* 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 <http://www.gnu.org/licenses/>.
*/
package org.jpos.q2.iso;
import org.jpos.core.Configurable;
import org.jpos.core.Configuration;
import org.jpos.core.ConfigurationException;
import org.jpos.iso.ISOException;
import org.jpos.iso.ISOMsg;
import org.jpos.iso.ISOResponseListener;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.*;
/**
* RMI QMUX Proxy
* @author Mark Salter
* @author Alejandro Revilla
* @author Niclas Hedhman
* @version $Revision: 2854 $ $Date: 2010-01-02 10:34:31 +0000 (Sat, 02 Jan 2010) $
* @since 1.4.9
*/
public class QMUXProxy implements RemoteQMUX, Configurable {
QMUX qmux;
private RemoteRef ref;
private RemoteStub stub;
public QMUXProxy (QMUX qmux) throws RemoteException {
super();
this.qmux = qmux;
startService ();
}
private void startService () throws RemoteException
{
try {
LocateRegistry.createRegistry (Registry.REGISTRY_PORT);
} catch (ExportException ignored) {
// NOPMD registry already exists
}
stub = UnicastRemoteObject.exportObject (this);
ref = stub.getRef();
}
public boolean isConnected() {
return qmux.isConnected();
}
public ISOMsg request(ISOMsg m, long timeout) throws ISOException {
return qmux.request(m, timeout);
}
public void request(ISOMsg m, long timeout, ISOResponseListener rl,
Object handBack) throws ISOException {
qmux.request(m, timeout, rl, handBack);
}
public void setConfiguration(Configuration cfg)
throws ConfigurationException {
qmux.setConfiguration(cfg);
}
}