// Copyright © 1998 Sun Microsystems, Inc. All Rights Reserved. // package examples.activation; import java.io.File; import java.rmi.*; import java.rmi.activation.*; import java.util.Properties; public class Setup4 { // This class registers information about the MyPersistentClass // class with rmid and the rmiregistry // public static void main(String[] args) throws Exception { System.setSecurityManager(new RMISecurityManager()); YetAnotherRemoteInterface yari; // Declare an instance of the interface // Don't forget the trailing slash at the end of the URL // or your classes won't be found // String location = "file:/home/rmi_tutorial/activation/"; // Create the rest of the parameters that will be passed to // the ActivationDesc constructor // Properties props = new Properties(); // Because of the 1.2 security model, file writing has to be // explicitly allowed, as does socket creation. The first // argument to the put method, inherited from Hashtable, // is the key and the second is the value // props.put("java.security.policy", "/home/rmi_tutorial/activation/policy"); ActivationGroupDesc.CommandEnvironment ace = null; ActivationGroupID agi = ActivationGroup.getSystem().registerGroup( new ActivationGroupDesc(props, ace)); // Pass the file that we want to persist to as the Marshalled // object MarshalledObject data = new MarshalledObject (new File( "/home/rmi_tutorial/activation/persistentObjectStore.ser")); // The second argument to the ActivationDesc constructor will be used // to uniquely identify this class; it's location is relative to the // URL-formatted String, location. // ActivationDesc desc = new ActivationDesc (agi, "examples.activation.MyPersistentClass", location, data); yari = (YetAnotherRemoteInterface)Activatable.register(desc); System.out.println("Got the stub for MyPersistentClass"); // Bind the stub to a name in the registry running on 1099 // Naming.rebind("MyPersistentClass", yari); System.out.println("Exported MyPersistentClass"); System.exit(0); } }