/* * 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); } }