summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Cleeland <chris.cleeland@gmail.com>1998-01-29 21:11:54 +0000
committerChris Cleeland <chris.cleeland@gmail.com>1998-01-29 21:11:54 +0000
commit657d3e048fa581dad1b38f332b342feb317e6919 (patch)
treed14cd2794a32bc613e5ee9146fd128ef12a94cf8
parent78cb221ec68673afd90bf6e9ac842cba06ca1747 (diff)
downloadATCD-657d3e048fa581dad1b38f332b342feb317e6919.tar.gz
* tests/Param_Test/run_test: Added a longer delay, changed port #,
and made all output be prefaced by either "SERVER: " or "CLIENT(<type>): ". * tao/poa.cpp: Re-ordered member initializers to de-warn g++. * orbsvcs/Dump_Schedule/Dump_Schedule.cpp: _narrow needs to be passed a .in() from _vars (you get a lollipop if you understand that comment). * docs/poa_migration.html: Added this file to start the ball rolling. Right now it's poorly-formatted and a rehash of some emails, but it will be refined and grow over time.
-rw-r--r--TAO/ChangeLog-98c16
-rw-r--r--TAO/docs/poa_migration.html44
-rw-r--r--TAO/orbsvcs/Dump_Schedule/Dump_Schedule.cpp2
-rw-r--r--TAO/tao/poa.cpp4
-rwxr-xr-xTAO/tests/Param_Test/run_test8
5 files changed, 67 insertions, 7 deletions
diff --git a/TAO/ChangeLog-98c b/TAO/ChangeLog-98c
index 57c9668d50d..faa59357efb 100644
--- a/TAO/ChangeLog-98c
+++ b/TAO/ChangeLog-98c
@@ -1,3 +1,19 @@
+Thu Jan 29 14:59:01 1998 Chris Cleeland <cleeland@tango.cs.wustl.edu>
+
+ * tests/Param_Test/run_test: Added a longer delay, changed port #,
+ and made all output be prefaced by either "SERVER: " or
+ "CLIENT(<type>): ".
+
+ * tao/poa.cpp: Re-ordered member initializers to de-warn g++.
+
+ * orbsvcs/Dump_Schedule/Dump_Schedule.cpp: _narrow needs to be
+ passed a .in() from _vars (you get a lollipop if you understand
+ that comment).
+
+ * docs/poa_migration.html: Added this file to start the ball
+ rolling. Right now it's poorly-formatted and a rehash of some
+ emails, but it will be refined and grow over time.
+
Thu Jan 29 12:33:30 1998 Carlos O'Ryan <coryan@cs.wustl.edu>
* orbsvcs/tests/Simple_Naming/clnt.cpp:
diff --git a/TAO/docs/poa_migration.html b/TAO/docs/poa_migration.html
new file mode 100644
index 00000000000..89d152b44ff
--- /dev/null
+++ b/TAO/docs/poa_migration.html
@@ -0,0 +1,44 @@
+Migrating from BOA to POA
+
+Client side:
+<ul>
+<li>Very little has changed, and some have not needed any changes.</li>
+<li>You'll have to insure that the Makefile includes .o's for both the server
+and client; this is necessary to support collocation.</li>
+</ul>
+
+Server side:
+<li>POA_init() is replaced with resolve_initial_references("RootPOA") followed>
+by a _narrow operation.</li
+<li>The implementation no longer inherits from the client-side stub; they
+inherit from PortableServer::ServantBase. The implications of this are (a) if
+you want a object reference for that, you must use the _this() method.</li>
+<li>Object ID's are assigned by the POA unless you activate the servant with a
+specific ID; IDL_Cubit has examples on how to do this.</li>
+<li>Unlike the BOA, the POA explicitly addresses the temporal nature of servants>
+and declares that a POA can service either transient or persistent servants
+(not both). The root POA's (mandated, unchangeable) policy is "transient".
+The implications of this are that in order for a client to be able to
+manufacture an object reference on its own and use that to access an object,
+the servant for that object must be registered with a POA whose policy is
+"persistent". Thus, you must create a child POA with that policy and register
+the servant with that POA. NOTE: when the POA declares something as
+"persistent", it is only stating that the key is valid between different runs
+of the server; it makes no claims that state or anything else is persistent.</li
+
+<ul>
+ <li> Servants are not automatically activated, hence you must register
+ them by calling some of the activate_object* methods on a POA or
+ calling _this() on the servant; with the latest you have no control on
+ the ObjectId (which sometimes is good), and the POA must support the
+ right policies (the RootPOA does).</li>
+
+ <li>Servant constructors use to take a <const char*> parameter to set
+ they object id, this is not needed now, in fact in many cases they use
+ to pass this argument to the skeleton class: this will fail now.</li>
+</ul>
+This list is not intended to be exhaustive, but should give you a good
+starting point. If you find things along the way which have to change and I
+didn't note them, please send them to me. Perhaps we can work together on the
+ultimate migration document.
+
diff --git a/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.cpp b/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.cpp
index 49b79e26228..18be67cb507 100644
--- a/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.cpp
+++ b/TAO/orbsvcs/Dump_Schedule/Dump_Schedule.cpp
@@ -30,7 +30,7 @@ int main (int argc, char *argv[])
1);
PortableServer::POA_var root_poa =
- PortableServer::POA::_narrow (poa_object, TAO_TRY_ENV);
+ PortableServer::POA::_narrow (poa_object.in(), TAO_TRY_ENV);
TAO_CHECK_ENV;
PortableServer::POAManager_var poa_manager =
diff --git a/TAO/tao/poa.cpp b/TAO/tao/poa.cpp
index 6c31ba52759..910cb7a725b 100644
--- a/TAO/tao/poa.cpp
+++ b/TAO/tao/poa.cpp
@@ -3207,9 +3207,9 @@ TAO_Strategy_POA_Manager::lock (void)
TAO_POA_Current::TAO_POA_Current (void)
: poa_impl_ (0),
object_id_ (0),
- servant_ (0),
object_key_ (0),
- cookie_ (0)
+ cookie_ (0),
+ servant_ (0)
{
}
diff --git a/TAO/tests/Param_Test/run_test b/TAO/tests/Param_Test/run_test
index 48ec4b4922c..4823bf29711 100755
--- a/TAO/tests/Param_Test/run_test
+++ b/TAO/tests/Param_Test/run_test
@@ -1,10 +1,10 @@
#!/bin/sh
-PORT=20000
+PORT=20001
IORFILE=theior
start_server()
{
- ./server -ORBport $PORT -o $IORFILE &
+ ./server -ORBport $PORT -o $IORFILE 2>&1 | sed -e 's/^/SERVER: /' &
}
# Restart the server if we get SIGCHLD, i.e., the server died.
@@ -16,7 +16,7 @@ TYPES="short ubstring fixed_struct var_struct nested_struct struct_seq objref"
for type in $TYPES
do
echo "BEGIN Testing type $type"
- sleep 1 # Give the server a chance to start up
- ./client -f `cat $IORFILE` -t $type
+ sleep 2 # Give the server a chance to start up
+ ./client -f `cat $IORFILE` -t $type 2>&1 | sed -e "s/^/CLIENT($type): /"
echo "END Testing type $type"
done