------------------------
UNDER GOING

96/09/11 serverServer/peer_impl.java
rewrite flyer's guide
add description of SOCKS support to flyer's guide
change version number to 1.3.b1

-------------------------
THINGS TO DO

* examples make test
*doc/faq.htm
*doc/hirano.htm
96/03/19 interface inheritance
*96/03/15 version check in object passing (compile option)
*96/03/16 refresh ACL
96/03/17 username check in remote accessing to ACL 
*96/03/15 all examples/*/README.txt
*96/03/15 examples/reviveHook/README.txt
*96/03/15 why invitation/Client wont work?
*96/03/06 examples/objectStorage/README.txt
96/03/06 treat horb:// in FileIOCI by ObjectStorage
96/03/06 delete list to ACL
96/03/06 add list to ACL
* 96/03/03 ProxyingSocket.java
* examples/async/README.txt
* 96/02/28 check lastmodified to lastloadtime in acl_impl.load(file)
* 96/02/28 start ACL master in HORB SErver
96/02/28 proxy._release() does not close connection actually. socket bug??
96/02/28 secondary ACL master
96/02/28 reload ACL in HORBAgent.java
* 96/02/28 shutdown HORB Server in HORBAgent
96/02/28 system ACL, user ACL
* 96/02/25 exampeles/inheritance -> exampeles/inheritance2
96/02/15 version check in object passing ? needed?
96/02/24 DoubleBufferingIOCI
* 96/02/24 send class name when connectToInstance(). 
96/02/24 proxy._nop()
96/02/24 object migration, replication
* 96/02/24 reserve a chunk of methodNo 
96/02/22 add import in proxy and skeleton
* 96/02/22 pass exception string
* 96/02/22 add exceptions of interface to the throws clause of *_Proxy
96/02/21 schema evolution of foffiles. Type repository.
96/02/20 proxying for firewall. SOCK and SSL tunnel
96/02/20 add stop object etc. in horbstat
*96/02/18 class foo {
		Object o;
         }
	foo f = new o();
	f.o = "string";
	remote.op1(f);

	fails by "String_Proxy" not found error.

96/02/16 auditting
96/02/16 data compression in array passing
* 96/02/15 getUsername() in IOCI
96/02/15 CORBA services. transaction. persistent objects....
96/02/15 Realtime
96/02/13 FastIOCI
96/02/05 second connection to daemon server fails.
* 96/02/03 proxy for abstract class?
96/02/03 resync
96/02/03 serialize interface to get private variablesx
96/02/03 PREAMBLE_MISMATH -> no sync exception
96/02/01 Object remains after connection close. cleaner thread?
96/01/26 horb object constructor threadTablegƂ܂
@@@@o^ĂȂB
96/01/26 make thread group for each object
96/01/26 make thread group for each thread
* 96/01/26 pass exception 
* 96/01/23 abort remote operation
96/01/23 distributed logging, management console
96/02/03 check connectivity in BasicIOCI/isConnected()

* 96/01/23 release connection from remote object
* 96/02/05 horb -noloopcheck option
*96/02/10 faintHook
*96/02/15 separate services from IOCI to IOCIService
* 96/02/16 is skip really OK during array passing?
* 96/02/13 HORBServer(-1) not to run accept()
*96/02/07 ACL_Implement.java  config/accessControl[2]ǂ܂Ȃ
* null check in array passing
* optimize when array[] is a scalar array.

*96/02/13 make examples/invitation
*96/02/13 move code from proxy to IOCI
*96/02/13 version in idl
*96/02/10 getSkeleton()
*96/02/10 invitation
* 96/02/05 foffile/client
* 96/02/04 ignore nonexistence of Foo_Proxy in objectSender. set null!
*96/02/04 thread remains when client disappears if the client was in
*	the same HORB server process.
* 96/02/03 ACL contorol for HORBServer().
* constructor with argument. remove all record if constructor fails.
* 96/02/03 constructor for interface in Foo_Proxy.
*	automatically call remote constructor from _connect()

* 96/02/03 move socket related code to IOCI
* 96/02/03 split basicIOCI into two parts
* 96/01/29 inheritance for object passing.
* 96/01/29 thread priority is null.
* 96/01/29 thread name is null.
* 96/01/29 service time ̉
* 96/01/29 ObjectStatus.maxThreads always be added by 1 for daemon object.
* 96/01/26 record thread priority
* 96/01/26 pass version numbers when create connection
* 96/01/26 select ioci when create connection
* 96/01/23 arguments for remote constructor
* 96/01/23 access control, management console
* 96/01/23 repository -> registry
* 96/01/23 persistent objects
* 96/01/23 know hostname of client in server
* 96/01/23 know object name in server
* 96/01/23 HORBServer createObjectŎsAskeletonĂ邩
* 96/01/22  _Skeleton extends superClass _SkeletonZbg
* 96/01/22 packageȂꍇɁu.vo͂ȂB
* recvObject, sendObject ExceptionHORBExceptionIOException
  B
*inheritance
*  skeleton
*	dispatch o  superɎĂ
*	RXgN^o Ȃ
*	createObject(), getObject()
*	classNo
*	o.method()->((ServerA)(this.getObject())).method()
*	dispatch(ioci, classNo, methodNo)
*	dispatch()̈ o܂߂邩
* ORBServerORB̓KvH
* HorbURLportnumberǂ瓾邩B
* f.javaclasspathfR[_B
* HORB̃`FbN
* objRefƂURLg
* objRefɃ|[gԍ
* _Proxy_ProxyȂ`FbN
*passing reference
*proxy object vs. real object in variables
*	objectReceiver::objectReceiver() rB
*	fieldinterfacȅꍇobjRefB
*	sender.java  _proxỹ`FbNꂽB
*	ǁAǂ̃IuWFNgCastĂ邩ȂB
*	-> mockup͏BRpC`FbNB
*	_Skeletonł悯ȃR[hoȂ
* classFile.ClassFile java.lang.win32process said funny such like
* void argument type?
* jidl.jidl myClient said can't happen void argument type.
* jidl.jidl myClient fails compilation of server skelton
* add any data type to classfile (signature.h)
* consider throws in proxy and skeleton
* call finalizer from adaptor or proxy to remove from somewhere
* object repository
* (CHECK repository)
* pacakge jorb -> etl.edjava
* define set property protocol
* skip other constructors or implement constractor argument passing
* send casted object
* ORB bad preamble - -1
* option: don't start server
* option: server daemon
* ROREF: add time? for more distinguishness

------------------------
TEST PROGRAM TO BE WRITTEN

* inheritance
* objRef passing

-------------------------
-------------------------
RESTRICTIONS

Passing direction of any argument is out. You cannot use arguments
to receive values.

You cannot copy private members.

* When the new instance is created, constructor with no argument is called.

*You can't use constructor with arguments for remote object
*creation.

String type in argument is treated specially for optimization.

C^[tF[Xpꍇ́AinterfaceName_Impl
   ƂNXɎsB

interface extendsĂĂB܂A
   interfaceName_Implement extendsĂꍇA
   interfaceproxyĂԕ@͒񋟂ȂB

* array[][] can't include null pointer.

* hidl always generates warning messages. this is due to javac bug.
* hidl -delete switch is not implemented. this is due to limitation of java
* class library.

remote method may not be private


-------------------
NOTE

* RemoteException: exception occured in remote object

case 1) connecting to interface

Foo_Impl should implement Foo. If connecting to an interface fails,
check if the implementation class Foo_Impl is implementing Foo.
For example, 'class Foo_Impl implements Foo' is OK, but 'class Foo' is bad.


* don't call constructor after connecting to a daemon object.

--------------------------------------
CHECK

* 96/01/30 hidl -ignoresuper option. (check)
* 96/01/26 serve multiple port (check)
* 96/01/23 inheritance in object passing (check)
* 96/02/04 pass complex objects (check)
* 96/06/04 multi protocol check
* 96/02/14 username

96/01/26 start/stop service (check)
96/01/27 pass protected variables when pass objects (check)
* 96/02/06 OBJ_REFłexpectedClass̏ꍇ͍œKłB
96/02/04 ACL_Implement.startACLMaster()
96/02/14 version check
96/02/16 passing all data types and arrays of types
96/02/16 some dimensional arrays. see optimazation.

---------------------------------------
JAVA

java.net.PlainSocketImpl should be public to make user's socket
implementations.

