001/* 002 * jPOS Project [http://jpos.org] 003 * Copyright (C) 2000-2026 jPOS Software SRL 004 * 005 * This program is free software: you can redistribute it and/or modify 006 * it under the terms of the GNU Affero General Public License as 007 * published by the Free Software Foundation, either version 3 of the 008 * License, or (at your option) any later version. 009 * 010 * This program is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Affero General Public License for more details. 014 * 015 * You should have received a copy of the GNU Affero General Public License 016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 017 */ 018 019package org.jpos.q2.qbean; 020 021import org.jpos.q2.QBeanSupport; 022import org.jpos.space.SpaceProxy; 023 024import javax.naming.InitialContext; 025import javax.naming.NamingException; 026import java.rmi.RemoteException; 027import java.util.Set; 028 029/** 030 * Remote Space Proxy Adaptor. 031 * 032 * @author Alwyn Schoeman 033 * @version $Revision$ $Date$ 034 */ 035 036public class SpaceProxyAdaptor 037 extends QBeanSupport 038 implements SpaceProxyAdaptorMBean 039{ 040 private SpaceProxy sp = null; 041 private String spaceName = null; 042 043 public SpaceProxyAdaptor () { 044 super (); 045 } 046 047 protected void startService () throws RemoteException, NamingException { 048 if (spaceName == null) 049 sp = new SpaceProxy (); 050 else 051 sp = new SpaceProxy (spaceName); 052 InitialContext ctx = new InitialContext (); 053 ctx.rebind (getName (), sp); 054 } 055 056 protected void stopService () { 057 sp.shutdown (); 058 } 059 060 public synchronized void setSpaceName (String spaceName) { 061 this.spaceName = spaceName; 062 setAttr (getAttrs (), "spaceName", spaceName); 063 setModified (true); 064 } 065 066 public String getSpaceName () { 067 return spaceName; 068 } 069 070 public Set getKeys () { 071 return sp.getKeySet (); 072 } 073} 074 075