----------------------README--------------------------------------------

ERMI Beta 1
Pedro Garca Lpez  July 2003.





Installation and Setup
-----------------------------------------------------

To test this software you need an Event Server. We give you two options:

A) Embedded PET Event Service (JSDT)  DEFAULT.
	Launch JSDTServer
		cd bus/bin
		JSDTserver.bat
	Your applications will use the env.properties included in bus/bin
	
B) Elvin server
	Install an elvin server
	Launch Elvin server
	Rename env2.properties as env.properties.
	Rename 

Now you must change the CLASS_STORE PATH in env.properties to your current path: BUS/bin/class_store.
	


Now you can test the examples...
BUS/bin/test.bat





B. Running the samples

B.1 Simple (ermi.samples.simple)

Steps: (A, B, C, and D are optional, Stubs and Skels are already compiled in this distribution).
	a) Generating stubs and skeletons
		cd bus/bin
		rmic ermi.samples.simple.Simple
		Stubs and skeletons (.java) are located in bus/bin.
	b) Compile Stub and Skel 
	c) Code Impl class (included in this sample)
	d) Code Server and Client
	e) run the Server
		run ermi.samples.simple.SimpleServer
	f) run the Client
		run ermi.samples.simple.SimpleClient
	
B.2 Naming (ermi.samples.naming)

Steps:
	a) run the registry
		eregistry
	b) Code Server and Client
	c) run the Server
		run ermi.samples.naming.SimpleNamingServer
	d) run the List Client
		run ermi.samples.naming.SimpleNamingList
	e) run the Client
		run ermi.samples.naming.SimpleNamingClient

B.3 Listeners (ermi.samples.listener)
Steps:
	
	a) run the Server
		run ermi.samples.listener.SpriteServer
	b) run the Client 2 (listener)
		run ermi.samples.listener.SpriteClient2
	c) run the Client 2 (listener) again
		run ermi.samples.listener.SpriteClient2	
	d) run the Client 1 (setX) again
		run ermi.samples.listener.SpriteClient1

B.4 Basic Types (ermi.samples.basictypes)
Steps:
	
	a) run the Server
		run ermi.samples.basictypes.SpriteServer
	b) run the Client 
		run ermi.samples.basictypes.SpriteClient

B.5 Filters and Interception
Steps:

	a) run the registry
		eregistry
	b) Code Server and Client
	c) run the Server
		run ermi.samples.naming.SimpleNamingServer
	d) run the Interceptor
		run ermi.samples.filter.LogFilterServer
	e) run the Client
		run ermi.samples.naming.SimpleNamingClient
B.5 Filters and Interception (Removing filters)
Steps:

	a) run the registry
		eregistry
	b) Code Server and Client
	c) run the Server
		run ermi.samples.naming.SimpleNamingServer
	d) run the Interceptor 1 (Console 1)
		run ermi.samples.filter.LogFilterServer
	e) run the Interceptor 2 (Console 2)
		run ermi.samples.filter.LogFilterServer	
		or 
		run ermi.samples.ignorefilter.IgnoreServer	
	f) run the Client
		run ermi.samples.naming.SimpleNamingClient
	g) In Console 1 or 2 print exit. The Filter is then removed.
	h) run the Client
		run ermi.samples.naming.SimpleNamingClient
		
B.6 Dynamic class loading
	a) Remove the class bus\classes\ermi\samples\dynamic\SimpleStub
	b)run the Server
		run ermi.samples.dynamic.SimpleServer
	c) run the Client
		run ermi.samples.dynamic.SimpleClient
	You will see REMOTE msg as a result of the dymanic class load.
	The class store is defined in env.properties.	
	
	
	
B.7 Mobile Objects

	a) run the Teleport Server
		run ermi.samples.mobile.TeleportServer
	b) run the Teleport Client
		run ermi.samples.mobile.TeleportClient
	c) 	run the Client
		run ermi.samples.simple.SimpleClient
	d) Press any key in Teleport Client, the SimpleServer is sent to TeleportServer
	e) run the Client
		run ermi.samples.simple.SimpleClient
		
B.8 Exceptions

 	a) run the Server
		run ermi.samples.exception.SimpleServer
	b) run the Client
		run ermi.samples.exception.SimpleClient
		
B.9 Pass by reference

	a) run the PlaceServer
			run ermi.samples.reference.PlaceServer
	b) run the UserServer (and add it to the Place)
			run ermi.samples.reference.UserServer
	c) run the UserClient
			run ermi.samples.reference.UserClient

B.10 Object replicas
	a) run the Registry
			eregistry
	b) run the SpriteClient1
			run ermi.samples.replica.SpriteClient1
	c) run the SpriteClient2
			run ermi.samples.replica.SpriteClient2
	d) run the SpriteClient3
			run ermi.samples.replica.SpriteClient3



	