1 package org.sapia.ubik.rmi.examples; 2 3 import org.sapia.ubik.rmi.naming.remote.RemoteInitialContextFactory; 4 import org.sapia.ubik.rmi.naming.remote.discovery.ServiceDiscoListener; 5 import org.sapia.ubik.rmi.naming.remote.discovery.ServiceDiscoveryEvent; 6 import org.sapia.ubik.rmi.naming.remote.proxy.ReliableLocalContext; 7 import org.sapia.ubik.rmi.server.Log; 8 import org.sapia.ubik.rmi.server.Stateless; 9 10 import java.rmi.RemoteException ; 11 12 import java.util.Properties ; 13 14 import javax.naming.*; 15 16 17 25 public class StatelessFoo implements Foo, Stateless, ServiceDiscoListener { 26 public StatelessFoo() throws java.rmi.RemoteException { 27 } 28 29 32 public Bar getBar() throws RemoteException { 33 return new StatelessUbikBar(hashCode()); 34 } 35 36 39 public void onServiceDiscovered(ServiceDiscoveryEvent evt) { 40 System.out.println("Discovered : " + evt); 41 } 42 43 public static void main(String [] args) { 44 try { 45 Log.setWarning(); 46 47 Properties props = new Properties (); 49 props.setProperty(InitialContext.PROVIDER_URL, "ubik://localhost:1099/"); 50 props.setProperty(InitialContext.INITIAL_CONTEXT_FACTORY, 51 RemoteInitialContextFactory.class.getName()); 52 53 InitialContext ctx = new InitialContext(props); 54 55 ReliableLocalContext.currentContext().addServiceDiscoListener(new StatelessFoo()); 56 57 StatelessFoo foo = new StatelessFoo(); 58 ctx.rebind("Foo", foo); 59 60 System.out.println("StatelessFoo started... @ " + 61 Integer.toHexString(foo.hashCode())); 62 63 while (true) { 64 Thread.sleep(10000); 65 } 66 } catch (Throwable t) { 67 t.printStackTrace(); 68 } 69 } 70 } 71 | Popular Tags |