The unified diff between revisions [e852dd74..] and [1239b292..] is displayed below. It can also be downloaded as a raw diff.

#
#
# delete "COPYING"
#
# delete "Makefile.common"
#
# delete "compilers/Makefile.am"
#
# delete "compilers/Makefile.common"
#
# delete "compilers/ciao/Makefile.am"
#
# delete "compilers/gnatprfh/Makefile.am"
#
# delete "compilers/iac/Makefile.am"
#
# delete "compilers/idlac/Makefile.am"
#
# delete "compilers/idlac/testsuite/Makefile.am"
#
# delete "cos/Makefile.am"
#
# delete "cos/Makefile.common"
#
# delete "cos/event/Makefile.am"
#
# delete "cos/ir/Makefile.am"
#
# delete "cos/naming/Makefile.am"
#
# delete "cos/notification/Makefile.am"
#
# delete "cos/time/Makefile.am"
#
# delete "examples/Makefile.am"
#
# delete "examples/Makefile.common"
#
# delete "examples/aws/Makefile.am"
#
# delete "examples/bbs/Makefile.am"
#
# delete "examples/corba/Makefile.am"
#
# delete "examples/corba/all_functions/Makefile.am"
#
# delete "examples/corba/all_types/Makefile.am"
#
# delete "examples/corba/echo/Makefile.am"
#
# delete "examples/corba/random/Makefile.am"
#
# delete "examples/corba/rtcorba/Makefile.am"
#
# delete "examples/corba/rtcorba/client_propagated/Makefile.am"
#
# delete "examples/corba/rtcorba/dhb/Makefile.am"
#
# delete "examples/corba/rtcorba/rtcosscheduling/Makefile.am"
#
# delete "examples/corba/rtcorba/server_declared/Makefile.am"
#
# delete "examples/corba/secure_echo/Makefile.am"
#
# delete "examples/corba/send/Makefile.am"
#
# delete "examples/dsa/Makefile.am"
#
# delete "examples/moma/Makefile.am"
#
# delete "examples/polyorb/Makefile.am"
#
# delete "idls/CORBA_IDL/Makefile.am"
#
# delete "idls/CORBA_PIDL/Makefile.am"
#
# delete "idls/Interop/Makefile.am"
#
# delete "idls/Makefile.am"
#
# delete "idls/Makefile.common"
#
# delete "idls/Misc/Makefile.am"
#
# delete "idls/RTCORBA/Makefile.am"
#
# delete "idls/cos/Makefile.am"
#
# delete "idls/cos/event/Makefile.am"
#
# delete "idls/cos/naming/Makefile.am"
#
# delete "idls/cos/notification/Makefile.am"
#
# delete "idls/cos/time/Makefile.am"
#
# delete "src/Makefile.am"
#
# delete "src/Makefile.common"
#
# delete "src/aws/Makefile.am"
#
# delete "src/corba/Makefile.am"
#
# delete "src/corba/Makefile.genfiles"
#
# delete "src/corba/dynamicany/Makefile.am"
#
# delete "src/corba/iop/Makefile.am"
#
# delete "src/corba/messaging"
#
# delete "src/corba/messaging/Makefile.am"
#
# delete "src/corba/portableinterceptor/Makefile.am"
#
# delete "src/corba/rtcorba/Makefile.am"
#
# delete "src/corba/security/Makefile.am"
#
# delete "src/corba/security/gssup"
#
# delete "src/corba/security/gssup/Makefile.am"
#
# delete "src/dsa/Makefile.am"
#
# delete "src/giop/Makefile.am"
#
# delete "src/giop/diop/Makefile.am"
#
# delete "src/giop/iiop/Makefile.am"
#
# delete "src/giop/iiop/security/Makefile.am"
#
# delete "src/giop/iiop/security/tls/Makefile.am"
#
# delete "src/giop/iiop/ssliop/Makefile.am"
#
# delete "src/giop/miop/Makefile.am"
#
# delete "src/moma/Makefile.am"
#
# delete "src/security/Makefile.am"
#
# delete "src/security/gssup/Makefile.am"
#
# delete "src/security/tls/Makefile.am"
#
# delete "src/security/x509/Makefile.am"
#
# delete "src/setup/Makefile.am"
#
# delete "src/setup/security/Makefile.am"
#
# delete "src/soap/Makefile.am"
#
# delete "src/srp/Makefile.am"
#
# delete "src/ssl/Makefile.am"
#
# delete "src/web_common/Makefile.am"
#
# delete "testsuite/Makefile.am"
#
# delete "testsuite/Makefile.common"
#
# delete "testsuite/acats/CXE1001/Makefile.am"
#
# delete "testsuite/acats/CXE2001/Makefile.am"
#
# delete "testsuite/acats/CXE4001/Makefile.am"
#
# delete "testsuite/acats/CXE4002/Makefile.am"
#
# delete "testsuite/acats/CXE4005/Makefile.am"
#
# delete "testsuite/acats/CXE4006/Makefile.am"
#
# delete "testsuite/acats/Makefile.am"
#
# delete "testsuite/corba/Makefile.am"
#
# delete "testsuite/corba/all_exceptions/Makefile.am"
#
# delete "testsuite/corba/benchs/Makefile.am"
#
# delete "testsuite/corba/benchs/test000/Makefile.am"
#
# delete "testsuite/corba/code_sets/Makefile.am"
#
# delete "testsuite/corba/code_sets/test000/Makefile.am"
#
# delete "testsuite/corba/cos/Makefile.am"
#
# delete "testsuite/corba/cos/event/Makefile.am"
#
# delete "testsuite/corba/cos/ir/Makefile.am"
#
# delete "testsuite/corba/cos/naming/Makefile.am"
#
# delete "testsuite/corba/cos/notification/Makefile.am"
#
# delete "testsuite/corba/cos/time/Makefile.am"
#
# delete "testsuite/corba/domainmanager/Makefile.am"
#
# delete "testsuite/corba/domainmanager/test000/Makefile.am"
#
# delete "testsuite/corba/harness/Makefile.am"
#
# delete "testsuite/corba/local/Makefile.am"
#
# delete "testsuite/corba/location_forwarding/Makefile.am"
#
# delete "testsuite/corba/location_forwarding/test000/Makefile.am"
#
# delete "testsuite/corba/location_forwarding/test001/Makefile.am"
#
# delete "testsuite/corba/object/Makefile.am"
#
# delete "testsuite/corba/object/test000/Makefile.am"
#
# delete "testsuite/corba/orb_init/Makefile.am"
#
# delete "testsuite/corba/portableinterceptor/Makefile.am"
#
# delete "testsuite/corba/portableinterceptor/test000/Makefile.am"
#
# delete "testsuite/corba/portableinterceptor/test001/Makefile.am"
#
# delete "testsuite/corba/portableinterceptor/test002/Makefile.am"
#
# delete "testsuite/corba/portableinterceptor/test003/Makefile.am"
#
# delete "testsuite/corba/portableinterceptor/test004/Makefile.am"
#
# delete "testsuite/corba/portableserver/Makefile.am"
#
# delete "testsuite/corba/rtcorba/Makefile.am"
#
# delete "testsuite/corba/rtcorba/rtcurrent/Makefile.am"
#
# delete "testsuite/corba/rtcorba/rtorb/Makefile.am"
#
# delete "testsuite/corba/rtcorba/rtpoa/Makefile.am"
#
# delete "testsuite/corba/shutdown/Makefile.am"
#
# delete "testsuite/core/Makefile.am"
#
# delete "testsuite/core/any/Makefile.am"
#
# delete "testsuite/core/chained_lists/Makefile.am"
#
# delete "testsuite/core/dynamic_dict/Makefile.am"
#
# delete "testsuite/core/fixed_point/Makefile.am"
#
# delete "testsuite/core/initialization/Makefile.am"
#
# delete "testsuite/core/naming/Makefile.am"
#
# delete "testsuite/core/obj_adapters/Makefile.am"
#
# delete "testsuite/core/poa/Makefile.am"
#
# delete "testsuite/core/random/Makefile.am"
#
# delete "testsuite/core/sync_policies/Makefile.am"
#
# delete "testsuite/core/tasking/Makefile.am"
#
# delete "testsuite/core/uri_encoding/Makefile.am"
#
# delete "testsuite/utils/Makefile.am"
#
# delete "tools/Makefile.am"
#
# delete "tools/Makefile.common"
#
# delete "tools/po_catref/Makefile.am"
#
# delete "tools/po_cos_naming/Makefile.am"
#
# delete "tools/po_createref/Makefile.am"
#
# delete "tools/po_dumpir/Makefile.am"
#
# delete "tools/po_ir/Makefile.am"
#
# delete "tools/po_names/Makefile.am"
#
# add_dir "doc"
#
# add_dir "doc/memoires"
#
# add_dir "doc/memoires/kaddour"
#
# add_dir "testsuite/tests"
#
# add_file "doc/memoires/kaddour/rapport.aux"
#  content [2f35b8e320a7644f09af8170ce986707495a68ca]
#
# add_file "examples/corba/all_functions/README"
#  content [d0e7942416eba74d2490866987ee01a8e24e0bf4]
#
# add_file "examples/corba/all_functions/run_tests.adb"
#  content [fdcee2943f7ac509684bb420ff9add1e2a409865]
#
# add_file "features-26"
#  content [5e90266bc20d4c6bcdc0235f37465302fe1b007a]
#
# add_file "projects/src_aws.gpr"
#  content [cad81ea1fc4e81c25e2f53627bde013ce2b2ce71]
#
# add_file "testsuite/tests/convert_scenario.py"
#  content [6518df378e84c64956b8f1dfe59679254718d1b1]
#
# add_file "testsuite/tests/test_utils.py"
#  content [28fe94df0a8b98bf54d9b486f7b33440ede09eae]
#
# add_file "testsuite/tests/testsuite.py"
#  content [81e774ffbe91f071668e7e9b881681db892e6d39]
#
# patch "MANIFEST"
#  from [a3a377ab5803a22b8c551440fc0099d15e25d400]
#    to [beaa6ff2ced91a674fbd62d84038eecee7ce4c8d]
#
# patch "Makefile.common.project.in"
#  from [4738780018c95021dad16427b13b8127cebbc70e]
#    to [dde27076cdb9901656cd8e30d3e36d235c2d8bef]
#
# patch "Makefile.in"
#  from [e1c37fdf3e6f99a38f578f5905494c8ac2d64ee0]
#    to [8df666ef7d6d0515da40559d747136ce77d9ff7c]
#
# patch "NEWS"
#  from [bd2d299dbfbe05abf3c9a3a3ce6e51f66c637397]
#    to [6fc0fceeb50a100852553933104e5652218c6cba]
#
# patch "compilers/gnatdist/xe_back-polyorb.adb"
#  from [28ed8faf105a2f76b079afdcb6c760eeeeb179df]
#    to [81f191f0ef2a4fbf491be8be55bdd9d2328b36bd]
#
# patch "compilers/gnatdist/xe_back.adb"
#  from [54c1aa0e7f14c90365024d0daa2220f59b4b1a57]
#    to [a4bff0627c887d0f1a1170a3be80ca49235a375c]
#
# patch "compilers/gnatdist/xe_main.adb"
#  from [8649c0dd90b9ba697b6e3304eca4acae51205b56]
#    to [98a6d62cc9dc99e21bfad88c15d4112f1ed31d11]
#
# patch "compilers/gnatdist/xe_sem.adb"
#  from [578876a4bdbdcfd4efecad688e068f8e64e33279]
#    to [d19fd0a8dfd7f5114830f15f8eb4d23e47badfaa]
#
# patch "configure.ac"
#  from [3a320ac7fc8235be957a26ed01f31c47c2522d6d]
#    to [6b898edb0ce723094ea72b5f5e2027497f2f56d8]
#
# patch "docs/polyorb_ug.texi"
#  from [0ff4d19914d1b17d183404a01a1f3bad942bef30]
#    to [69d0a7e50d0317cb3493de265250b0ab446e006d]
#
# patch "examples/corba/all_functions/all_functions-impl.adb"
#  from [108820c0c8668158652543b58ebbf97aa2dfb599]
#    to [c8f989d694c6997a5beeafbaa66aa619a18ab236]
#
# patch "examples/corba/all_functions/all_functions-impl.ads"
#  from [4f51d43d02e60648b1661773621961d62759579c]
#    to [db771adf800f9c28c5ac4055f231a93bf10e51c6]
#
# patch "examples/corba/all_functions/all_functions.idl"
#  from [7ded2c4d1497b78126524606b0dd6d815e83638c]
#    to [0561247f9f1bf3300f1dc894dc8a603fdceeea6e]
#
# patch "examples/corba/all_functions/client.adb"
#  from [3c78071eaa1d16b97a1a5ff4ad1f5e2637a70680]
#    to [5f09eb04003b8a3b3edbf3963956a357cfe67092]
#
# patch "examples/corba/all_functions/server.adb"
#  from [9c3a85db40e20a2a182143475ee18aa0331466c5]
#    to [c490c096c8b4d66be3b9152f3e34a9b7d5f54e3c]
#
# patch "projects/src_corba_messaging.gpr"
#  from [adfca3622791dded2380104447230c3e6c83365a]
#    to [74a443a8db0f0c3909c5e3f81ce30e059cbe7cf9]
#
# patch "projects/src_corba_security_gssup.gpr"
#  from [3775ef8415c97edf50784471bb4b1c0af807983d]
#    to [2fd927e162b78cb374120fc5dcb12f9d63e15142]
#
# patch "src/aws/aws-client.adb"
#  from [838f3a067b3875435fb5bb55e524695c8fccfe1b]
#    to [150620fed148ad818edecc25df56b2bb50a66236]
#
# patch "src/aws/aws-response.adb"
#  from [040d2a77dc3bdd5d6c031b2dc66989afdaf79f24]
#    to [6da2fe31047bdd8c53f1f92ddaea0fdce403d7e2]
#
# patch "src/aws/aws-server-get_status.adb"
#  from [d8c9d8a329c84be4d6d0573108331028cd6ef639]
#    to [91b67eeb8d5a8ae55df18491baa24ea1e6185f4d]
#
# patch "src/aws/aws-server-servants.adb"
#  from [72e723e3770c532deacc6225987ed3c43f11db51]
#    to [9c05b84d32454f1e40e25a23ac391435d5dcee6d]
#
# patch "src/aws/aws-server-servants.ads"
#  from [013f8761fc321fad59453bd10d107dadb536fa6d]
#    to [eda501536731939e6e9631d016f30ee07380663d]
#
# patch "src/aws/aws-server.adb"
#  from [b609500400a285ff38399d201dc8b8d09bcbbb75]
#    to [cf9383f1e6badb5d5ba1cd09de64170208d63da7]
#
# patch "src/aws/soap-client.adb"
#  from [d4c6261e2cdb7c2b5ccd976cdcdaa3abe980e321]
#    to [579b769eee9acaf5ccdea53a5cdfd2717cd1754b]
#
# patch "src/aws/soap-parameters.adb"
#  from [68ce4a373a9936776216cb24b473c92ff1fefc70]
#    to [a0f72e54c592de410fe4f645710df9ca7d5db6b5]
#
# patch "src/aws/soap-types.adb"
#  from [8fdd08efd85bea80d4cb09102e7fc581c24cfa13]
#    to [6357a1fe6db014842e5fb40183540316c27b2a33]
#
# patch "src/corba/portableserver.adb"
#  from [9e19d246711ffac86ebc80ba5b20832ffb974956]
#    to [d4a8dd7c9278a39b665b62ab5f09c9cd7de4616d]
#
# patch "src/dsa/polyorb-termination_manager-bootstrap.adb"
#  from [9db60215236e9cc8a3e9b205fd5bc10f04bfd6d6]
#    to [359c9bc7bb5d26415c2e12e9ec422973aaccdcbb]
#
# patch "src/dsa/polyorb-termination_manager.adb"
#  from [e6561bc54d9d8be42d767a90fa216405dff7ab00]
#    to [3829a151ef4a7e13a919d0979b77865e9ff53389]
#
# patch "src/dsa/s-parint.adb"
#  from [f7d9aa230b9d405eabaef038bce2fa5b94f2ed2f]
#    to [d513233ce0727c06c687742df487e374fbb16886]
#
# patch "src/dsa/s-parint.ads"
#  from [c4537630cb3914fb9c7205d8668cef3eb0da14db]
#    to [9890673a72e8d30ca1710f2ec86617802d5d28cb]
#
# patch "src/giop/gen_codeset.adb"
#  from [8f9316008a2ce5f81ee1d9855bc67762393aa0c8]
#    to [5d2d57b422427a3c8599bfd97f4f2f67ced8cbfa]
#
# patch "src/giop/polyorb-giop_p-code_sets-converters-unicode.adb"
#  from [9aa280787f528d8f1c8273b66502b6a571849454]
#    to [91a38560818af4822b1a4a6274c59373862c586c]
#
# patch "src/giop/polyorb-giop_p-code_sets-converters-unicode.ads"
#  from [dba2ef81faa90d4ddbf9f6448caf21587ad9eac9]
#    to [f10a9aff6182d3d3799b6b6771960b74147f5113]
#
# patch "src/giop/polyorb-giop_p-code_sets-converters.adb"
#  from [193184b28507d543d14199313f904615a21ac0ce]
#    to [f3ed428a929080947334dc346075cd5dd2b183dd]
#
# patch "src/giop/polyorb-giop_p-code_sets-converters.ads"
#  from [0c3526dff0da91ce3ed544bbdcd1c546ef62ca8c]
#    to [8e2671a6d99fe2a59a3dc016815618a068c918c4]
#
# patch "src/giop/polyorb-giop_p-code_sets.ads"
#  from [4c2c2df8ba5e97072fabb30277c28bde89abef1c]
#    to [61f63c442ab3b9944f1a6a6c4af8403919f55bc9]
#
# patch "src/polyorb-any.adb"
#  from [09c5147667ba43863432c92e9b8302165f6e72f9]
#    to [db5acf259c2ec53c0e84942354f5243c94fb0daa]
#
# patch "src/polyorb-binding_data-neighbour.adb"
#  from [2ac8637ba1441461c892ea280dad41cd6c48afba]
#    to [81d3e49f802c88c567bc0f34e6c5e3c3cb05eee3]
#
# patch "src/polyorb-obj_adapters-group_object_adapter.adb"
#  from [9db1d1e5f760004292db0680d58f4eee022bbd00]
#    to [d85a08db2b531b4b905c21717a53b1fbc1b9b77e]
#
# patch "src/polyorb-objects.adb"
#  from [959c555b6f967f6ba4dd3ab2fa018bbe35075426]
#    to [0ed9db0bfad54edbb55611fe9426480cf62488e9]
#
# patch "src/polyorb-orb_controller.adb"
#  from [2ef8d027899ad1efc62a72945728cf17cab4bdfe]
#    to [4d467d6908387a168e5d70ead74b691ad2b5d134]
#
# patch "src/polyorb-orb_controller.ads"
#  from [5a604e35aa437be46a33df7d98f5ea8329ddc542]
#    to [4134370f90a9884f5b41f5b1b788baaf1d0436d9]
#
# patch "src/polyorb-requests.adb"
#  from [60d26595e6e760c2a9605b8aba9bfd37feff484d]
#    to [4cb95ba9c1bbf4af82a2e4382efc0bc10e3c629f]
#
# patch "src/polyorb-smart_pointers.adb"
#  from [2b75da4b1dcd5ddc1a5741eb43ac626108ca0078]
#    to [3708a49832a6b36abcebe143d72dc127b80bfc15]
#
# patch "src/polyorb-tasking-profiles-full_tasking-threads.adb"
#  from [cb1cfa33d9a7abd96b22bd02c6fd7181797e5028]
#    to [7af57c9f78c1d1810a290d444f436d7222cd4e8d]
#
# patch "src/polyorb-utils-buffers.adb"
#  from [a44b2814f571c3d8fd0f91fa41cd04962f805683]
#    to [8e4f6bde700d063df06afa6a6787084cee31e3bc]
#
# patch "src/polyorb-utils-buffers.ads"
#  from [635fb1b582ab3c700ce12756e9062cc0f9109d4e]
#    to [b6d97a5c47d26f4402779fca18486d336149d8e6]
#
# patch "src/polyorb-utils-random.ads"
#  from [18219a4e932a758806daff7a3b51c74f43107162]
#    to [fdf971db65f33ce314a93e87dcdc7f70993fa0de]
#
# patch "src/soap/polyorb-soap_p-message-response-error.adb"
#  from [fc7111f4db4fea97f3ee9d0ec5424dc86aa444b3]
#    to [c327f08291f27a7993dae78a94bc874896450b5a]
#
# patch "src/soap/polyorb-soap_p-types.adb"
#  from [bf80357e8d0ec2988adea57f2c5a703afe40de08]
#    to [91998a249b91f4e25bad0322350887c0ffa0e519]
#
# patch "src/soap/polyorb-soap_p-types.ads"
#  from [d318b243b7b1ddce9d5d0c3fe381ba9c466456bb]
#    to [07c22d5430d6af4370caee621991b89352aed779]
#
# patch "support/missing"
#  from [3830cf89148a136f4cdb1bc0c32f0a235b1b24bc]
#    to [9f7c375af6106a150446e5faf344d62e406b1944]
#
# patch "testsuite/README"
#  from [e98167efe6becaf566a3859634c2dc007391e131]
#    to [efb2237475fc745194b6089c65e40c771c848570]
#
# patch "testsuite/corba/performance/bench_utils.adb"
#  from [2c557f53688c211dfe7bc6dd3444693e6ae7f871]
#    to [81aac62163fab7ec3b519ec23db2190171075e4a]
#
# patch "testsuite/scenarios/corba-interop.conf"
#  from [3ec2d8a34c96362bfdf78eacc7298977ba5c1d42]
#    to [118dcdc564b7b33b68da29ef7d4aec83aada472e]
#
# patch "testsuite/scenarios/corba-performance.conf"
#  from [03cdcc26d31c514cb03339f50868eea230b3f743]
#    to [497b3d366f9bb662370a77fc8790ae1a31454ade]
#
# patch "testsuite/scenarios/corba-shutdown.conf"
#  from [1e0310f2447d1db46a8b97b28a50228d65bf1e68]
#    to [ba9df3a7919356f41c4b6522a13ca72871bcf414]
#
# patch "testsuite/scenarios/examples-corba-all_types.conf"
#  from [b683b55b306cc905b1a513c9483249c603ec4453]
#    to [69863de552f0137e5cbaf5cb299595de8b71892c]
#
# patch "testsuite/scenarios/examples-corba-rtcorba-dhb.conf"
#  from [a964946c514e8c0a53bb8090950d6d45d6a0b92a]
#    to [2516ebd0e1dc7f2a9306e322d8d63cd155f4299d]
#
# patch "testsuite/scenarios/examples-corba-rtcorba-rtcosscheduling.conf"
#  from [32ff9ffd40b9d91791590c89e636f9a6d3daea06]
#    to [9e76d7280cc2bc74a8a9ead27af0707de3a5a8fc]
#
# patch "testsuite/scenarios/examples-corba-secure_echo.conf"
#  from [d7124b1012b1e09e8d9adb42df4d8ba12588cb67]
#    to [1b30925c105f7240d4aafe5b813c9abaa4b0314c]
#
# patch "testsuite/scenarios/examples-moma.conf"
#  from [bc940d9175a93a3f19d14ee09c72f3865c075480]
#    to [bbb27f6fe37dbd7c7dfb922d58940526013126a9]
#
# patch "testsuite/utils/test_driver.adb"
#  from [c7b9cf68c39c8949437468d38ebe7c726a73846d]
#    to [f790194f6c3fce028d09d2deb0386a8db7b02605]
#
# patch "testsuite/utils/test_suite-scenarios.adb"
#  from [6034dc4ba01f9e8daf65fc2be7a283e68f101f22]
#    to [d9d360f014fdd8f0b03202b5d4b30f01703d495d]
#
# patch "testsuite/utils/test_suite-scenarios.ads"
#  from [f901d29d36ad8094c70c1947f5c13de9f9eed036]
#    to [1e01ddf58df833d83e1b35645fdae83864d8b8cf]
#
# patch "testsuite/utils/test_suite-test_case-parser.adb"
#  from [2284894848c94070afd83290fa03c91006d4304c]
#    to [8bc82cba9c1f921b3cfe0d3088c4d9a80e05e4c3]
#
#   set "testsuite/tests/convert_scenario.py"
#  attr "mtn:execute"
# value "true"
#
#   set "testsuite/tests/testsuite.py"
#  attr "mtn:execute"
# value "true"
#
============================================================
--- doc/memoires/kaddour/rapport.aux	2f35b8e320a7644f09af8170ce986707495a68ca
+++ doc/memoires/kaddour/rapport.aux	2f35b8e320a7644f09af8170ce986707495a68ca
@@ -0,0 +1,148 @@
+\relax
+\@writefile{toc}{\contentsline {chapter}{\numberline {1}Etat de l'art des Middlewares}{7}}
+\@writefile{lof}{\addvspace {10\p@ }}
+\@writefile{lot}{\addvspace {10\p@ }}
+\newlabel{chap:art}{{1}{7}}
+\@writefile{toc}{\contentsline {section}{\numberline {1.1}Jonathan}{7}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.1}Introduction}{7}}
+\@writefile{lof}{\contentsline {figure}{\numberline {1.1}{\ignorespaces une liaison point \`a point}}{8}}
+\newlabel{fig:Jonathan}{{1.1}{8}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.2}La s\'emantique des liaisons et des objets dans \\ Jonathan}{8}}
+\@writefile{toc}{\contentsline {subsubsection}{Les Objets liaison et les fabriques de liaisons}{8}}
+\@writefile{toc}{\contentsline {subsubsection}{Types et r\'ef\'erences}{8}}
+\@writefile{toc}{\contentsline {paragraph}{Les subrog\'es\nobreakspace  {}:}{9}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.3}Construction d'un ORB CORBA au-dessus du \\ noyau de Jonathan}{9}}
+\citation{Spring}
+\@writefile{toc}{\contentsline {subsubsection}{La personnalit\'e CORBA}{10}}
+\@writefile{toc}{\contentsline {subsubsection}{Une fabrique CORBA de liaisons de type flux}{10}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {1.1.4}Conclusion}{10}}
+\@writefile{toc}{\contentsline {section}{\numberline {1.2}Quaterware\nobreakspace  {}:\nobreakspace  {}l'approche composant}{10}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.1}Les composants de Quaterware}{11}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.2}Composition d'un middleware}{11}}
+\@writefile{toc}{\contentsline {subsubsection}{Composition de CORBA}{12}}
+\@writefile{toc}{\contentsline {subsubsection}{Composition de RMI}{12}}
+\@writefile{toc}{\contentsline {subsubsection}{Composition de MPI}{12}}
+\citation{Reflexive}
+\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.3}Conclusion}{13}}
+\@writefile{toc}{\contentsline {section}{\numberline {1.3}Middleware r\'eflexif}{13}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {1.3.1}Principes g\'en\'eraux}{13}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {1.3.2}L'architecture}{14}}
+\@writefile{lof}{\contentsline {figure}{\numberline {1.2}{\ignorespaces Structure globale du meta espace}}{15}}
+\newlabel{fig:reflexive}{{1.2}{15}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {1.3.3}La biblioth\`eque de composants}{15}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {1.3.4}Conclusion}{15}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {2}Le protocole GIOP de CORBA}{17}}
+\@writefile{lof}{\addvspace {10\p@ }}
+\@writefile{lot}{\addvspace {10\p@ }}
+\@writefile{toc}{\contentsline {section}{\numberline {2.1}Introduction}{17}}
+\citation{Norme_Corba}
+\@writefile{toc}{\contentsline {section}{\numberline {2.2}Repr\'esentation commune de donn\'ees CDR}{18}}
+\newlabel{sec:CDR}{{2.2}{18}}
+\@writefile{toc}{\contentsline {section}{\numberline {2.3}Transfert de Messages GIOP}{19}}
+\@writefile{toc}{\contentsline {section}{\numberline {2.4}Formats de messages GIOP}{20}}
+\newlabel{sec:GIOP_messages}{{2.4}{20}}
+\@writefile{toc}{\contentsline {section}{\numberline {2.5}Le protocole IIOP (Internet Inter\discretionary {-}{}{}ORB Protocol)}{22}}
+\newlabel{sec:profil}{{2.5}{22}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {3}Le Protocole SOAP}{25}}
+\@writefile{lof}{\addvspace {10\p@ }}
+\@writefile{lot}{\addvspace {10\p@ }}
+\@writefile{toc}{\contentsline {section}{\numberline {3.1}Introduction}{25}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.2}Enveloppe de SOAP}{26}}
+\@writefile{toc}{\contentsline {paragraph}{Remarque}{26}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.3}Corps du message SOAP Body}{26}}
+\@writefile{toc}{\contentsline {paragraph}{L'\'el\'ement Fault\nobreakspace  {}:}{26}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.4}Exemples de messages SOAP}{27}}
+\@writefile{toc}{\contentsline {paragraph}{Le message SOAP encapsul\'e dans une requ\^ete HTTP}{27}}
+\citation{XML}
+\@writefile{toc}{\contentsline {paragraph}{Le message SOAP encapsul\'e dans une r\'eponse HTTP}{28}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.5}L'encodage}{28}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.1}Types simples}{29}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {3.5.2}Types compos\'es}{29}}
+\@writefile{toc}{\contentsline {paragraph}{Exemples\nobreakspace  {}:}{29}}
+\@writefile{toc}{\contentsline {section}{\numberline {3.6}Conclusion}{30}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {4}Le Middleware DROOPI}{31}}
+\@writefile{lof}{\addvspace {10\p@ }}
+\@writefile{lot}{\addvspace {10\p@ }}
+\@writefile{toc}{\contentsline {section}{\numberline {4.1}DROOPI : un middleware de plus?}{31}}
+\citation{TAO}
+\@writefile{toc}{\contentsline {section}{\numberline {4.2}Objectifs de DROOPI}{32}}
+\@writefile{toc}{\contentsline {section}{\numberline {4.3}Architecture g\'en\'erale}{32}}
+\@writefile{lof}{\contentsline {figure}{\numberline {4.1}{\ignorespaces Architecture de DROOPI}}{33}}
+\newlabel{fig:droopi-arch}{{4.1}{33}}
+\citation{POA}
+\@writefile{toc}{\contentsline {paragraph}{L'objet Request\nobreakspace  {}:}{34}}
+\@writefile{toc}{\contentsline {section}{\numberline {4.4}Couche applicative}{34}}
+\citation{Design}
+\citation{Design}
+\@writefile{toc}{\contentsline {section}{\numberline {4.5}Quelques principes du Design appliqu\'es \`a DROOPI}{35}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {4.5.1}Le motif Annotation}{35}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {4.5.2}Le motif Composant ou chaine de responsabilit\'e}{35}}
+\@writefile{lof}{\contentsline {figure}{\numberline {4.2}{\ignorespaces Le motif \IeC {<<}Annotation\IeC {>>}}}{36}}
+\newlabel{fig:annotation}{{4.2}{36}}
+\@writefile{lof}{\contentsline {figure}{\numberline {4.3}{\ignorespaces Le motif \IeC {<<}\nobreakspace  {}Component ou cha\IeC {\^\i }ne de responsabilit\'es\nobreakspace  {}\IeC {>>}}}{37}}
+\newlabel{fig:components}{{4.3}{37}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {5}Int\'egration de GIOP et SOAP dans DROOPI}{39}}
+\@writefile{lof}{\addvspace {10\p@ }}
+\@writefile{lot}{\addvspace {10\p@ }}
+\@writefile{toc}{\contentsline {section}{\numberline {5.1}Couche protocolaire g\'en\'erique}{39}}
+\newlabel{sec:couche-protocolaire}{{5.1}{39}}
+\@writefile{lof}{\contentsline {figure}{\numberline {5.1}{\ignorespaces La fonction transport.}}{40}}
+\newlabel{fig:fct_transport}{{5.1}{40}}
+\@writefile{lof}{\contentsline {figure}{\numberline {5.2}{\ignorespaces La fonction repr\'esentation.}}{40}}
+\newlabel{fig:fct_representation}{{5.2}{40}}
+\@writefile{lof}{\contentsline {figure}{\numberline {5.3}{\ignorespaces Fonction protocole.}}{41}}
+\newlabel{fig:fct_protocole}{{5.3}{41}}
+\@writefile{lof}{\contentsline {figure}{\numberline {5.4}{\ignorespaces Fonction Addressage.}}{42}}
+\newlabel{fig:fct_addressing}{{5.4}{42}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.2}Description des classes}{42}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.1}Asynchronous Evenement Source (AES)}{42}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.2}Transport Access Point (TAP)}{42}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.3}Transport Endpoint (TE)}{43}}
+\@writefile{lof}{\contentsline {figure}{\numberline {5.5}{\ignorespaces Framework de la couche protocolaire.}}{44}}
+\newlabel{fig:couche_protocolaire}{{5.5}{44}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.4}Filter}{45}}
+\newlabel{sec:filter}{{5.2.4}{45}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.5}Repr\'esentation}{45}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.6}Protocole et Session}{45}}
+\newlabel{sub:protocole}{{5.2.6}{45}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.3}Impl\'ementation de GIOP}{47}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.1}Sc\'enario d'invocation}{47}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.2}Les structures de donn\'ees}{48}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.3}Initialisation de la pile}{48}}
+\@writefile{lof}{\contentsline {figure}{\numberline {5.6}{\ignorespaces Instanciation de la pile GIOP.}}{49}}
+\newlabel{fig:Pile_GIOP}{{5.6}{49}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.4}Exemple d'impl\'ementation\nobreakspace  {}:\nobreakspace  {}le motif annotation}{50}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.5}Conclusion}{50}}
+\@writefile{toc}{\contentsline {section}{\numberline {5.4}Impl\'ementation de SOAP}{51}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.1}Sc\'enario d'invocation}{51}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.2}Repr\'esentation des donn\'ees}{52}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.3}Structures de donn\'ees}{52}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.4}Initialisation de la pile}{53}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.5}Conclusion}{53}}
+\@writefile{lof}{\contentsline {figure}{\numberline {5.7}{\ignorespaces Instanciation de la pile SOAP.}}{54}}
+\newlabel{fig:Pile_SOAP}{{5.7}{54}}
+\citation{GIOP}
+\citation{POA}
+\citation{Tasking}
+\@writefile{toc}{\contentsline {chapter}{Bibliographie}{57}}
+\bibcite{Reflexive}{1}
+\bibcite{XML}{2}
+\bibcite{GIOP}{3}
+\bibcite{Jonathan}{4}
+\bibcite{Roadmap}{5}
+\bibcite{HTTP}{6}
+\bibcite{POA}{7}
+\bibcite{Design}{8}
+\bibcite{Tutoriel_Corba}{9}
+\bibcite{Spring}{10}
+\bibcite{x-kernel}{11}
+\bibcite{DC_SOAP}{12}
+\bibcite{Norme_Corba}{13}
+\bibcite{Architecture_Droopi}{14}
+\bibcite{Droopi_Introduction}{15}
+\bibcite{Droopi_Introduction_2}{16}
+\bibcite{TAO}{17}
+\bibcite{Tasking}{18}
+\bibcite{Quaterware}{19}
+\bibcite{SOAP_aaron}{20}
+\bibcite{SOAP_Norme}{21}
============================================================
--- examples/corba/all_functions/README	d0e7942416eba74d2490866987ee01a8e24e0bf4
+++ examples/corba/all_functions/README	d0e7942416eba74d2490866987ee01a8e24e0bf4
@@ -0,0 +1,33 @@
+README for the PolyORB all_types example
+----------------------------------------
+
+$Id: README 132810 2008-11-27 14:08:19Z quinot $
+
+This demo tests the processing for various argument passing modes, both
+in the case where network communication is involved and in the case of
+local calls.
+
+Three executables are provided
+- server : a CORBA server application, provides various functions that
+  receive and return values.
+
+- client : a CORBA client application, built to interact with 'server',
+  test various combinations of argument modes
+
+- dynclient : same, using the DII
+
+* To run these tests :
+
+1) client/server test :
+
+- launch server
+- launch client using the IOR string output by server as an argument
+
+The client will interact with the server, doing several tests. The different
+results are displayed on the client side.
+
+2) local test :
+
+- launch 'server local'
+- the server runs the tests within the same partition
+
============================================================
--- examples/corba/all_functions/run_tests.adb	fdcee2943f7ac509684bb420ff9add1e2a409865
+++ examples/corba/all_functions/run_tests.adb	fdcee2943f7ac509684bb420ff9add1e2a409865
@@ -0,0 +1,254 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                           POLYORB COMPONENTS                             --
+--                                                                          --
+--                            R U N _ T E S T S                             --
+--                                                                          --
+--                                 B o d y                                  --
+--                                                                          --
+--         Copyright (C) 2002-2008, Free Software Foundation, Inc.          --
+--                                                                          --
+-- PolyORB is free software; you  can  redistribute  it and/or modify it    --
+-- under terms of the  GNU General Public License as published by the  Free --
+-- Software Foundation;  either version 2,  or (at your option)  any  later --
+-- version. PolyORB is distributed  in the hope that it will be  useful,    --
+-- but WITHOUT ANY WARRANTY;  without even the implied warranty of MERCHAN- --
+-- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public --
+-- License  for more details.  You should have received  a copy of the GNU  --
+-- General Public License distributed with PolyORB; see file COPYING. If    --
+-- not, write to the Free Software Foundation, 51 Franklin Street, Fifth    --
+-- Floor, Boston, MA 02111-1301, USA.                                       --
+--                                                                          --
+--                  PolyORB is maintained by AdaCore                        --
+--                     (email: sales@adacore.com)                           --
+--                                                                          --
+------------------------------------------------------------------------------
+
+with CORBA; use CORBA;
+with all_functions; use all_functions;
+with PolyORB.Utils.Report;
+
+procedure Run_Tests (MyObj : all_functions.Ref) is
+   use PolyORB.Utils.Report;
+   I, J, K, L, M : CORBA.Short;
+   Ok : Boolean;
+begin
+   New_Test ("Different invocation modes");
+
+   Output ("test not nil reference", not Is_Nil (MyObj));
+
+--    Set_The_Attribute (MyObj, 24);
+--    Output ("test attribute", Get_The_Attribute (MyObj) = 24);
+
+--    Output ("test readonly attribute",
+--      Get_The_Readonly_Attribute (MyObj) = 18);
+
+   begin
+      Ok := True;
+      void_proc (MyObj);
+   exception when others =>
+      Ok := False;
+   end;
+   Output ("test void procedure", Ok);
+
+   begin
+      in_proc (MyObj, 1, 2, 3);
+      Ok := True;
+   exception when others =>
+      Ok := False;
+   end;
+   Output ("test in param procedure", Ok);
+
+   begin
+      Ok := False;
+      out_proc (MyObj, I, J, K);
+      Ok := (I = 10) and then (J = 11) and then (K = 12);
+   exception when others =>
+      null;
+   end;
+   Output ("test out param procedure", Ok);
+
+   begin
+      Ok := False;
+      out_in_proc (MyObj, I, 41);
+      Ok := I = 42;
+   exception when others =>
+      null;
+   end;
+   Output ("test out in param procedure", Ok);
+
+   begin
+      Ok := False;
+      I  := 2;
+      J  := 3;
+      inout_proc (MyObj, I, J);
+      Ok := (I = 3 and then J = 4);
+   exception when others =>
+      null;
+   end;
+   Output ("test in out param procedure", Ok);
+
+   begin
+      Ok := False;
+      I := 1;
+      J := 2;
+      in_out_proc (MyObj, 1, 2, I, J);
+      Ok := (I = 3 and then J = 4);
+   exception when others =>
+      null;
+   end;
+   Output ("test in and out param procedure", Ok);
+
+   begin
+      Ok := False;
+      I  := -4;
+      J  := -5;
+      in_inout_proc (MyObj, 1, I, 3, J);
+      Ok := (I = 36) and then (J = 40);
+   exception when others =>
+      null;
+   end;
+   Output ("test in and inout param procedure", Ok);
+
+   begin
+      I := -11;
+      J := 123;
+      K := 456;
+      L := -41;
+      out_inout_proc (MyObj, I, J, K, L);
+      Ok := (I = 111) and then (J = 457) and then (K = 124) and then (L = 999);
+   exception when others =>
+      null;
+   end;
+   Output ("test inout and out param procedure", Ok);
+
+   begin
+      Ok := False;
+      I := 78;
+      J := 79;
+      in_out_inout_proc (MyObj, 1, I, J);
+      Ok := (I = -54) and then (J = 80);
+   exception when others =>
+      null;
+   end;
+   Output ("test in and out and inout param procedure", Ok);
+
+   Output ("test void function", void_fun (MyObj) = 3);
+   Output ("test in param function", in_fun (MyObj, 1, 2, 3) = 7);
+
+   begin
+      Ok := False;
+      I := 1;
+      J := 2;
+      K := 3;
+      L := 4;
+      out_fun (MyObj, I, J, K, L);
+      Ok := (I = 5) and then (J = 6) and then (K = 7) and then (L = 10);
+   exception when others =>
+      null;
+   end;
+   Output ("test out param function", Ok);
+
+   begin
+      Ok := False;
+      I := 1;
+      J := 2;
+      K := 3;
+      inout_fun (MyObj, I, J, L);
+      Ok := (I = 2) and then (J = 3) and then (L = 5);
+   exception when others =>
+      null;
+   end;
+   Output ("test inout param function", Ok);
+
+   begin
+      Ok := False;
+      I := 10;
+      J := 11;
+      in_out_fun (MyObj, 1, 2, I, J, K);
+      Ok := (I = 2) and then (J = 1) and then (K = 3);
+   exception when others =>
+      null;
+   end;
+   Output ("test in and out param function", Ok);
+
+   begin
+      Ok := False;
+      I := -1;
+      J := -2;
+      K := -3;
+      in_inout_fun (MyObj, -1, I, -2, J, K);
+      Ok := (I = -2) and then (J = -4) and then (K = -6);
+   exception when others =>
+      null;
+   end;
+   Output ("test in and inout param function", Ok);
+
+   begin
+      Ok := False;
+      I := -1;
+      J := -2;
+      K := -3;
+      L := -4;
+      M := -5;
+      out_inout_fun (MyObj, I, J, K, L, M);
+      Ok := (I = -2) and then (J = -1) and then (K = -2)
+        and then (L = -3) and then (M = -7);
+   exception when others =>
+      null;
+   end;
+   Output ("test out and inout param function", Ok);
+
+   begin
+      Ok := False;
+      I := -1;
+      J := -2;
+      K := -3;
+      in_out_inout_fun (MyObj, 85, I, J, K);
+      Ok := (I = 86) and then (J = 83) and then (K = -1);
+   exception when others =>
+      null;
+   end;
+   Output ("test in and out and inout param function", Ok);
+
+   begin
+      oneway_void_proc (MyObj);
+      delay 0.5;
+      Ok := oneway_checker (MyObj) = 1;
+      if Ok then
+         delay 1.0;
+         Ok := oneway_checker (MyObj) = 2;
+      end if;
+   exception when others =>
+      Ok := False;
+   end;
+   Output ("test void one way procedure", Ok);
+
+   declare
+      S : Short;
+   begin
+      oneway_in_proc (MyObj, 10, 20);
+      delay 0.5;
+      S := oneway_checker (MyObj);
+      Ok := S = 10;
+      if Ok then
+         delay 1.0;
+         S := oneway_checker (MyObj);
+         Ok := S = 20;
+      end if;
+   exception when others =>
+      Ok := False;
+   end;
+   Output ("test in param one way procedure", Ok);
+
+   begin
+      StopServer (MyObj);
+      Ok := True;
+   exception when others =>
+      Ok := False;
+      raise;
+   end;
+
+   Output ("shut down server", Ok);
+   End_Report;
+end Run_Tests;
============================================================
--- features-26	5e90266bc20d4c6bcdc0235f37465302fe1b007a
+++ features-26	5e90266bc20d4c6bcdc0235f37465302fe1b007a
@@ -0,0 +1,21 @@
+========================================================
+PolyORB 2.6 NEW FEATURES LIST Current as of Feb 12, 2009
+========================================================
+
+Copyright (c) 2008, AdaCore
+
+This file contains a complete list of new features in version 2.5 of PolyORB.
+See also file NEWS for various information about this release.
+
+An ISO date (YYYY-MM-DD) appears in parentheses after the description line.
+This date shows the implementation date of the feature. Any 2.6w wavefront
+subsequent to this date will contain the indicated feature, as will any
+subsequent releases.
+
+NF-26-H731-006 Improved handling of unbounded string arguments (2009-02-12)
+
+   When using the Ada DSA applicative personality, remote calls involving
+   arguments of type Ada.Strings.Unbounded.Unbounded_String now use the
+   native PolyORB string type, providing better performance. Note that the
+   PCS API has been updated, and this requries a corresponding compiler
+   update.
============================================================
--- projects/src_aws.gpr	cad81ea1fc4e81c25e2f53627bde013ce2b2ce71
+++ projects/src_aws.gpr	cad81ea1fc4e81c25e2f53627bde013ce2b2ce71
@@ -0,0 +1,50 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                           POLYORB COMPONENTS                             --
+--                                                                          --
+--                              S R C _ A W S                               --
+--                                                                          --
+--                                 P r o j                                  --
+--                                                                          --
+--           Copyright (C) 2009, Free Software Foundation, Inc.             --
+--                                                                          --
+-- PolyORB is free software; you  can  redistribute  it and/or modify it    --
+-- under terms of the  GNU General Public License as published by the  Free --
+-- Software Foundation;  either version 2,  or (at your option)  any  later --
+-- version. PolyORB is distributed  in the hope that it will be  useful,    --
+-- but WITHOUT ANY WARRANTY;  without even the implied warranty of MERCHAN- --
+-- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public --
+-- License  for more details.  You should have received  a copy of the GNU  --
+-- General Public License distributed with PolyORB; see file COPYING. If    --
+-- not, write to the Free Software Foundation, 51 Franklin Street, Fifth    --
+-- Floor, Boston, MA 02111-1301, USA.                                       --
+--                                                                          --
+--                  PolyORB is maintained by AdaCore                        --
+--                     (email: sales@adacore.com)                           --
+--                                                                          --
+------------------------------------------------------------------------------
+
+with "common", "src", "src_web_common", "xmlada";
+--  Note that the ADA_PROJECT_PATH environment variable must be set so we can
+--  find xmlada.gpr.
+
+project src_aws is
+
+   Dir := "src/aws";
+   Obj_Dir := Common.Build_Dir & Dir;
+   for Object_Dir use Obj_Dir;
+   for Source_Dirs use (Obj_Dir, Common.Source_Dir & Dir, Common.Source_Dir & "src/aws_orig");
+
+   for Library_Name use "polyorb-aws";
+   for Library_Dir use Common.Build_Dir & "lib";
+   for Library_ALI_Dir use Common.Build_Dir & "ali/src_aws";
+   for Library_Kind use "static";
+
+   package Compiler is
+
+      for Default_Switches ("Ada")
+         use Src.Compiler'Default_Switches ("Ada");
+
+   end Compiler;
+
+end src_aws;
============================================================
--- testsuite/tests/convert_scenario.py	6518df378e84c64956b8f1dfe59679254718d1b1
+++ testsuite/tests/convert_scenario.py	6518df378e84c64956b8f1dfe59679254718d1b1
@@ -0,0 +1,106 @@
+#!/usr/bin/env gnatpython
+
+import os
+import re
+import sys
+
+from gnatpython.fileutils import mkdir, cd
+
+CLIENT_SERVER_TEMPLATE = """
+from test_utils import *
+import sys
+
+if not client_server(r'%(client_cmd)s',
+                     r'%(server_cmd)s'):
+    sys.exit(1)
+
+"""
+
+LOCAL_TEMPLATE = """
+from test_utils import *
+import sys
+
+if not local(r'%(command)s'):
+    sys.exit(1)
+
+"""
+
+SCENARIO_SECTION = 'scenario'
+TEST_SECTION     = 'test'
+CLIENT_SECTION   = 'client'
+SERVER_SECTION   = 'server'
+
+def parse_scenario(filename):
+    """Parse a scenario file and create the corresponding test directories"""
+    scenario = open(filename)
+
+    test_dict = {}
+    current_section = SCENARIO_SECTION
+    current_test = ""
+
+    for line in scenario:
+        if line.startswith('['):
+            test_name = re.match(r'\[(.*) (.*)\]', line)
+            if test_name:
+                current_section = test_name.group(1)
+                current_test = test_name.group(2)
+                if current_section == TEST_SECTION:
+                    test_dict[current_test] = {}
+
+        elif current_section != SCENARIO_SECTION:
+            # Do not parse scenario section.
+            line_def = re.match(r'(.*)=(.*)', line)
+            if line_def:
+                left  = line_def.group(1)
+                right = line_def.group(2)
+                if not current_section in test_dict[current_test]:
+                    test_dict[current_test][current_section] = {}
+                test_dict[current_test][current_section][left] = right
+
+    scenario.close()
+    full_name = os.path.basename(filename)
+    sep = full_name.find('-')
+
+    parent_dir = full_name[:sep]
+    mkdir(parent_dir)
+
+    scenario_dir = full_name[sep + 1:-5]
+    mkdir(os.path.join(parent_dir, scenario_dir))
+    cd(os.path.join(parent_dir, scenario_dir))
+
+    for test_name in test_dict:
+        test_type = test_dict[test_name][TEST_SECTION]['type']
+        if test_type == 'client_server':
+            mkdir(test_name)
+            f = open(os.path.join(test_name, 'test.py'), 'w')
+            f.write(CLIENT_SERVER_TEMPLATE %
+                    {'client_cmd' :
+                     test_dict[test_name][CLIENT_SECTION]['command'],
+                     'server_cmd' :
+                     test_dict[test_name][SERVER_SECTION]['command'],
+                    })
+            f.close()
+
+            if 'expected_failure' in test_dict[test_name][TEST_SECTION]:
+                f = open(os.path.join(test_name, 'test.opt'), 'w')
+                f.write('ALL XFAIL\n')
+                f.close()
+
+        elif test_type == 'local':
+            mkdir(test_name)
+            f = open(os.path.join(test_name, 'test.py'), 'w')
+            f.write(LOCAL_TEMPLATE %
+                    {'command' :
+                     test_dict[test_name][TEST_SECTION]['command']
+                    })
+            f.close()
+
+            if 'expected_failure' in test_dict[test_name][TEST_SECTION]:
+                f = open(os.path.join(test_name, 'test.opt'), 'w')
+                f.write('ALL XFAIL\n')
+                f.close()
+        else:
+            print 'unknown type for test: ' + test_name
+
+if __name__ == "__main__":
+    parse_scenario(sys.argv[1])
============================================================
--- testsuite/tests/test_utils.py	28fe94df0a8b98bf54d9b486f7b33440ede09eae
+++ testsuite/tests/test_utils.py	28fe94df0a8b98bf54d9b486f7b33440ede09eae
@@ -0,0 +1,92 @@
+#!/usr/bin/env gnatpython
+
+"""test utils
+
+This module is imported by all testcase. It parse the command lines options
+and provide some usefull functions.
+
+You should never call this module directly. To run a single testcase, use
+ ./testsuite.py NAME_OF_TESTCASE
+"""
+
+from gnatpython.ex import Run, PIPE, STDOUT
+from gnatpython.main import Main
+
+import expect # this is in gnatpython only
+import os
+import re
+
+PWD = os.getcwd()
+BASE_DIR = os.path.join(PWD, os.pardir)
+
+def client_server(client_cmd, server_cmd):
+    """Run a client server testcase
+
+    Run server_cmd and extract the IOR string.
+    Run client_cmd with the server IOR string
+    Check for "END TESTS................   PASSED"
+    if found return True
+    """
+    client = os.path.join(BASE_DIR, client_cmd)
+    server = os.path.join(BASE_DIR, server_cmd)
+
+    # Run the server command and retrieve the IOR string
+    server_pid = expect.non_blocking_spawn(server, [])
+    if not server_pid:
+        print "Error when running " + server
+        return False
+
+    result = expect.expect (server_pid, [r"IOR:([a-z0-9]+)['|\n]"], 2.0)
+    if result != 0:
+        print "Expect error"
+        expect.close(server_pid)
+        return False
+
+    IOR_str = expect.expect_out (server_pid, 2)
+
+    # Run the client with the IOR argument
+    p = Run([client, IOR_str], output=PIPE, error=STDOUT,
+            timeout=options.timeout)
+
+    # Kill the server process
+    expect.close(server_pid)
+
+    if re.search(r"END TESTS.*PASSED", p.out):
+        print p.out
+        return True
+    else:
+        print p.out
+        return False
+
+def local(cmd):
+    """Run a local test
+
+    Execute the give command.
+    Check for "END TESTS................   PASSED"
+    if found return True
+    """
+    command = os.path.join(BASE_DIR, cmd)
+    p = Run([command], output=PIPE, error=STDOUT,
+            timeout=options.timeout)
+
+    if re.search(r"END TESTS.*PASSED", p.out):
+        print p.out
+        return True
+    else:
+        print p.out
+        return False
+
+def parse_cmd_line():
+    """Parse command line
+
+    Returns options object
+    """
+    main = Main(require_docstring=False)
+    main.add_option('--timeout', dest='timeout', type=int,
+                    default=None)
+    main.parse_args()
+    return main.options
+
+# Parse command lines options
+options = parse_cmd_line()
+
============================================================
--- testsuite/tests/testsuite.py	81e774ffbe91f071668e7e9b881681db892e6d39
+++ testsuite/tests/testsuite.py	81e774ffbe91f071668e7e9b881681db892e6d39
@@ -0,0 +1,203 @@
+#!/usr/bin/env gnatpython
+
+"""./testsuite.py [OPTIONS] [TEST_PATH]
+
+Run the PolyORB testsuite
+
+To run only core tests:
+    ./testsuite.py core/
+To run a single example:
+    ./testsuite.py examples/corba-all_functions/ALL_FUNCTIONS_4/test.py
+
+See ./testsuite.py -h for more help.
+"""
+
+from gnatpython.arch import Arch
+from gnatpython.env import Env
+from gnatpython.ex import Run, PIPE, STDOUT
+from gnatpython.main import Main
+from gnatpython.mainloop import MainLoop
+from gnatpython.optfileparser import OptFileParse
+from gnatpython.report import Report, GenerateRep
+
+from glob import glob
+
+import logging
+import os
+import sys
+
+DEFAULT_TIMEOUT = 60
+
+def main():
+    """Run the testsuite and generate reports"""
+    # Parse the command lines options
+    m, target = __parse_options()
+
+    # Generate the discs list for test.opt parsing
+    # Always add 'ALL'
+    common_discs = ['ALL', target.platform]
+
+    # Compute the test list
+    non_dead_list, dead_list = generate_testcase_list(
+        filter_list('./*/*/*/test.py',
+                    m.options.run_test),
+        common_discs)
+
+    # Add current directory in PYTHONPATH (to find test_utils.py)
+    env = Env()
+    env.add_search_path('PYTHONPATH', os.getcwd())
+
+    # Main loop :
+    #   - run all the tests
+    #   - collect the test results
+    #   - generate the res file
+    report = Report('res_polyorb')
+
+    # First report all dead tests
+    for test in dead_list:
+        report.add(test.filename, 'DEAD')
+
+    # Then run all non dead tests
+    MainLoop(non_dead_list, run_testcase,
+             gen_collect_result(report, m.options.diffs),
+             m.options.jobs)
+    report.write()
+
+    # Human readable report (rep file)
+    rep = GenerateRep('res_polyorb')
+    report_file = open('rep_polyorb', 'w')
+    report_file.write(rep.get_subject())
+    report_file.write(rep.get_report())
+    report_file.close()
+
+def filter_list(pattern, run_test=""):
+    """Compute the list of test matching pattern
+
+    If run_test is not null, run only tests containing run_test
+    """
+    test_list = glob(pattern)
+    if not run_test:
+        return test_list
+    else:
+        return [t for t in test_list if run_test in t]
+
+def generate_testcase_list(test_list, discs):
+    """Generate the testcase list
+
+    Returns two sorted list:
+        - the non dead test list (to be run in the mainloop)
+        - the dead test list (not to be run)
+    """
+    dead_list = []
+    non_dead_list = []
+    for test in test_list:
+        tc = TestCase(test)
+        tc.parseopt(discs)
+        if tc.is_dead():
+            dead_list.append(tc)
+        else:
+            non_dead_list.append(tc)
+
+    # Sort lists
+    non_dead_list.sort()
+    dead_list.sort()
+    return (non_dead_list, dead_list)
+
+class TestCase(object):
+    """Creates a TestCase object.
+
+    Contains the result fo the test.opt parsing
+    """
+    def __init__(self, filename):
+        """Create a new TestCase for the given filename"""
+        self.testdir      = os.path.dirname(filename)
+        self.filename     = filename
+        self.expected_out = None
+        self.opt          = None
+
+    def __lt__(self, right):
+        """Use filename alphabetical order"""
+        return self.filename < right.filename
+
+    def parseopt(self, tags):
+        """Parse the test.opt with the given tags"""
+        test_opt = os.path.join(self.testdir, 'test.opt')
+        if os.path.exists(test_opt):
+            self.opt = OptFileParse(tags, test_opt)
+        self.expected_out = self.getopt('out', 'test.out')
+
+    def getopt(self, key, default=None):
+        """Get the value extracted from test.opt that correspond to key
+
+        If key is not found. Returns default.
+        """
+        if self.opt is None:
+            return default
+        else:
+            return self.opt.get_value(key, default_value=default)
+
+    def is_dead(self):
+        """Returns True if the test is DEAD"""
+        if self.opt is None:
+            return False
+        else:
+            return self.opt.is_dead
+
+def run_testcase(test, job_info):
+    """Run a single test
+
+    If limit is not set, run rlimit with DEFAULT_TIMEOUT
+    """
+    logging.debug("Running " + test.testdir)
+    timeout = test.getopt('limit')
+    if timeout is None:
+        timeout = DEFAULT_TIMEOUT
+
+    return Run([sys.executable,
+                os.path.join(test.filename),
+                '--timeout', str(timeout)],
+               bg=True, output=PIPE, error=STDOUT)
+
+def gen_collect_result(report, show_diffs=False):
+    """Returns the collect_result function"""
+    # success - xfail status dict
+    status_dict = {True: {True: 'UOK', False: 'OK'},
+                   False: {True: 'XFAIL', False: 'FAILED'}}
+
+    def collect_result(test, process, job_info):
+        """Collect a test result"""
+        xfail = test.getopt('xfail', None) is not None
+        success = process.status == 0
+
+        status = status_dict[success][xfail]
+        logging.info("%-60s %s" % (test.filename, status))
+        if not success:
+            report.add(test.filename, status, diff=process.out)
+            if show_diffs:
+                logging.info(process.out)
+        else:
+            report.add(test.filename, status)
+
+    return collect_result
+
+def __parse_options():
+    """Parse command lines options"""
+    m = Main()
+    m.add_option('--diffs', dest='diffs', action='store_true',
+                 default=False, help='show diffs on stdout')
+    m.add_option('-j', '--jobs', dest='jobs', type='int',
+                 metavar='N', default=1, help='Allow N jobs at once')
+    m.parse_args()
+
+    if m.args:
+        # Run only one test
+        m.options.run_test = os.path.sep + m.args[0]
+        logging.info("Running only test '%s'" % m.options.run_test)
+    else:
+        m.options.run_test = ""
+
+    target = Arch()
+    return (m, target)
+
+if __name__ == "__main__":
+    main()
============================================================
--- MANIFEST	a3a377ab5803a22b8c551440fc0099d15e25d400
+++ MANIFEST	beaa6ff2ced91a674fbd62d84038eecee7ce4c8d
@@ -2,7 +2,6 @@ MANIFEST
 FEATURES
 INSTALL
 MANIFEST
-Makefile.common
 Makefile.common.project.in
 Makefile.in
 NEWS
@@ -10,9 +9,6 @@ aclocal.m4
 VERSION
 acinclude.m4
 aclocal.m4
-compilers/Makefile.am
-compilers/Makefile.common
-compilers/Makefile.in
 compilers/common_files/ChangeLog
 compilers/common_files/charset.adb
 compilers/common_files/charset.ads
@@ -72,12 +68,8 @@ compilers/gnatdist/xe_utils.ads
 compilers/gnatdist/xe_usage.ads
 compilers/gnatdist/xe_utils.adb
 compilers/gnatdist/xe_utils.ads
-compilers/gnatprfh/Makefile.am
-compilers/gnatprfh/Makefile.in
 compilers/gnatprfh/gnatprfh.adb.in
 compilers/iac/ChangeLog
-compilers/iac/Makefile.am
-compilers/iac/Makefile.in
 compilers/iac/analyzer.adb
 compilers/iac/analyzer.ads
 compilers/iac/backend-be_corba_ada-aligned.adb
@@ -144,8 +136,6 @@ compilers/iac/values.ads
 compilers/iac/usage.ads
 compilers/iac/values.adb
 compilers/iac/values.ads
-compilers/idlac/Makefile.am
-compilers/idlac/Makefile.in
 compilers/idlac/README.Expansion
 compilers/idlac/TODO
 compilers/idlac/ada_be-debug.adb
@@ -215,8 +205,6 @@ compilers/idlac/testparser.adb
 compilers/idlac/testgen.adb
 compilers/idlac/testlexer.adb
 compilers/idlac/testparser.adb
-compilers/idlac/testsuite/Makefile.am
-compilers/idlac/testsuite/Makefile.in
 compilers/idlac/testsuite/adabroker.parser/testparser.exp
 compilers/idlac/testsuite/adabroker.parser/testparser.idl
 compilers/idlac/testsuite/adabroker.torture/torture.idl
@@ -250,11 +238,6 @@ contrib/idlac_wrapper/idlac_wrapper.in
 contrib/README
 contrib/idlac_wrapper/README
 contrib/idlac_wrapper/idlac_wrapper.in
-cos/Makefile.am
-cos/Makefile.common
-cos/Makefile.in
-cos/event/Makefile.am
-cos/event/Makefile.in
 cos/event/coseventchanneladmin-consumeradmin-impl.adb
 cos/event/coseventchanneladmin-consumeradmin-impl.ads
 cos/event/coseventchanneladmin-eventchannel-impl.adb
@@ -291,8 +274,6 @@ cos/event/costypedeventcomm-typedpushcon
 cos/event/costypedeventcomm-typedpullsupplier-impl.ads
 cos/event/costypedeventcomm-typedpushconsumer-impl.adb
 cos/event/costypedeventcomm-typedpushconsumer-impl.ads
-cos/ir/Makefile.am
-cos/ir/Makefile.in
 cos/ir/corba-orb-typecode.adb
 cos/ir/corba-orb-typecode.ads
 cos/ir/corba-repository_root-abstractinterfacedef-impl.adb
@@ -366,8 +347,6 @@ cos/naming/File.idl
 cos/ir/polyorb-if_descriptors-corba_ir.adb
 cos/ir/polyorb-if_descriptors-corba_ir.ads
 cos/naming/File.idl
-cos/naming/Makefile.am
-cos/naming/Makefile.in
 cos/naming/cosnaming-bindingiterator-impl.adb
 cos/naming/cosnaming-bindingiterator-impl.ads
 cos/naming/cosnaming-namingcontext-impl.adb
@@ -378,8 +357,6 @@ cos/naming/menu.ads
 cos/naming/file-impl.ads
 cos/naming/menu.adb
 cos/naming/menu.ads
-cos/notification/Makefile.am
-cos/notification/Makefile.in
 cos/notification/cosnotification-adminpropertiesadmin-impl.adb
 cos/notification/cosnotification-adminpropertiesadmin-impl.ads
 cos/notification/cosnotification-qosadmin-impl.adb
@@ -456,8 +433,6 @@ cos/notification/cosnotifyfilter-mapping
 cos/notification/cosnotifyfilter-filterfactory-impl.ads
 cos/notification/cosnotifyfilter-mappingfilter-impl.adb
 cos/notification/cosnotifyfilter-mappingfilter-impl.ads
-cos/time/Makefile.am
-cos/time/Makefile.in
 cos/time/costime-timeservice-impl.adb
 cos/time/costime-timeservice-impl.ads
 cos/time/costime-tio-impl.adb
@@ -488,27 +463,20 @@ docs/svn.texi
 docs/polyorb_ug_ref.tex
 docs/polyorb_version.texi.in
 docs/svn.texi
-examples/Makefile.am
-examples/Makefile.common
-examples/Makefile.in
 examples/README
 examples/aws/Makefile.local
 examples/aws/local.gpr
-examples/corba/Makefile.am
-examples/corba/Makefile.in
 examples/corba/README
-examples/corba/all_functions/Makefile.am
-examples/corba/all_functions/Makefile.in
 examples/corba/all_functions/Makefile.local
+examples/corba/all_functions/README
 examples/corba/all_functions/all_functions-impl.adb
 examples/corba/all_functions/all_functions-impl.ads
 examples/corba/all_functions/all_functions.idl
 examples/corba/all_functions/client.adb
 examples/corba/all_functions/dynclient.adb
 examples/corba/all_functions/local.gpr
+examples/corba/all_functions/run_tests.adb
 examples/corba/all_functions/server.adb
-examples/corba/all_types/Makefile.am
-examples/corba/all_types/Makefile.in
 examples/corba/all_types/Makefile.local
 examples/corba/all_types/README
 examples/corba/all_types/all_types-impl.adb
@@ -520,8 +488,6 @@ examples/corba/all_types/server.adb
 examples/corba/all_types/ir_server.adb
 examples/corba/all_types/local.gpr
 examples/corba/all_types/server.adb
-examples/corba/echo/Makefile.am
-examples/corba/echo/Makefile.in
 examples/corba/echo/Makefile.local
 examples/corba/echo/client.adb
 examples/corba/echo/delegated_server.adb
@@ -535,8 +501,6 @@ examples/corba/echo/server.adb
 examples/corba/echo/echo_dynimpl.ads
 examples/corba/echo/local.gpr
 examples/corba/echo/server.adb
-examples/corba/random/Makefile.am
-examples/corba/random/Makefile.in
 examples/corba/random/Makefile.local
 examples/corba/random/client.adb
 examples/corba/random/local.gpr
@@ -544,10 +508,6 @@ examples/corba/random/server.adb
 examples/corba/random/random-impl.ads
 examples/corba/random/random.idl
 examples/corba/random/server.adb
-examples/corba/rtcorba/Makefile.am
-examples/corba/rtcorba/Makefile.in
-examples/corba/rtcorba/client_propagated/Makefile.am
-examples/corba/rtcorba/client_propagated/Makefile.in
 examples/corba/rtcorba/client_propagated/Makefile.local
 examples/corba/rtcorba/client_propagated/client.adb
 examples/corba/rtcorba/client_propagated/echo-impl.adb
@@ -555,8 +515,6 @@ examples/corba/rtcorba/client_propagated
 examples/corba/rtcorba/client_propagated/echo.idl
 examples/corba/rtcorba/client_propagated/local.gpr
 examples/corba/rtcorba/client_propagated/server.adb
-examples/corba/rtcorba/dhb/Makefile.am
-examples/corba/rtcorba/dhb/Makefile.in
 examples/corba/rtcorba/dhb/Makefile.local
 examples/corba/rtcorba/dhb/client_common.adb
 examples/corba/rtcorba/dhb/client_common.ads
@@ -587,8 +545,6 @@ examples/corba/rtcorba/dhb/whetstone.ads
 examples/corba/rtcorba/dhb/utils.ads
 examples/corba/rtcorba/dhb/whetstone.adb
 examples/corba/rtcorba/dhb/whetstone.ads
-examples/corba/rtcorba/rtcosscheduling/Makefile.am
-examples/corba/rtcorba/rtcosscheduling/Makefile.in
 examples/corba/rtcorba/rtcosscheduling/Makefile.local
 examples/corba/rtcorba/rtcosscheduling/client.adb
 examples/corba/rtcorba/rtcosscheduling/client_scheduling.conf
@@ -598,8 +554,6 @@ examples/corba/rtcorba/rtcosscheduling/s
 examples/corba/rtcorba/rtcosscheduling/local.gpr
 examples/corba/rtcorba/rtcosscheduling/server.adb
 examples/corba/rtcorba/rtcosscheduling/server_scheduling.conf
-examples/corba/rtcorba/server_declared/Makefile.am
-examples/corba/rtcorba/server_declared/Makefile.in
 examples/corba/rtcorba/server_declared/Makefile.local
 examples/corba/rtcorba/server_declared/client.adb
 examples/corba/rtcorba/server_declared/echo-impl.adb
@@ -607,7 +561,6 @@ examples/corba/rtcorba/server_declared/s
 examples/corba/rtcorba/server_declared/echo.idl
 examples/corba/rtcorba/server_declared/local.gpr
 examples/corba/rtcorba/server_declared/server.adb
-examples/corba/secure_echo/Makefile.am
 examples/corba/secure_echo/Makefile.local
 examples/corba/secure_echo/ca_openssl.conf
 examples/corba/secure_echo/client.adb
@@ -626,8 +579,6 @@ examples/corba/secure_echo/tls_gssup_exa
 examples/corba/secure_echo/tls_example.in
 examples/corba/secure_echo/tls_gssup.conf.in
 examples/corba/secure_echo/tls_gssup_example.in
-examples/corba/send/Makefile.am
-examples/corba/send/Makefile.in
 examples/corba/send/Makefile.local
 examples/corba/send/listener.adb
 examples/corba/send/local.gpr
@@ -645,8 +596,6 @@ examples/dsa/local.gpr
 examples/dsa/echo/server.adb
 examples/dsa/echo/server.ads
 examples/dsa/local.gpr
-examples/moma/Makefile.am
-examples/moma/Makefile.in
 examples/moma/Makefile.local
 examples/moma/README
 examples/moma/client.adb
@@ -656,8 +605,6 @@ examples/moma/server.adb
 examples/moma/local.gpr
 examples/moma/router.adb
 examples/moma/server.adb
-examples/polyorb/Makefile.am
-examples/polyorb/Makefile.in
 examples/polyorb/Makefile.local
 examples/polyorb/README
 examples/polyorb/local.gpr
@@ -679,6 +626,7 @@ features-25
 features-23
 features-24
 features-25
+features-26
 idls/CORBA_IDL/CORBA_Current.idl
 idls/CORBA_IDL/CORBA_CustomMarshal.idl
 idls/CORBA_IDL/CORBA_DomainManager.idl
@@ -688,8 +636,6 @@ idls/CORBA_IDL/CORBA_TypeCode.idl
 idls/CORBA_IDL/CORBA_StandardExceptions.idl
 idls/CORBA_IDL/CORBA_Stream.idl
 idls/CORBA_IDL/CORBA_TypeCode.idl
-idls/CORBA_IDL/Makefile.am
-idls/CORBA_IDL/Makefile.in
 idls/CORBA_IDL/orb.idl
 idls/CORBA_PIDL/CORBA_Context.idl
 idls/CORBA_PIDL/CORBA_NVList.idl
@@ -699,8 +645,6 @@ idls/CORBA_PIDL/CORBA_ValueBase.idl
 idls/CORBA_PIDL/CORBA_Request.idl
 idls/CORBA_PIDL/CORBA_ServerRequest.idl
 idls/CORBA_PIDL/CORBA_ValueBase.idl
-idls/CORBA_PIDL/Makefile.am
-idls/CORBA_PIDL/Makefile.in
 idls/CORBA_PIDL/pseudo_orb.idl
 idls/Interop/BiDirPolicy.idl
 idls/Interop/CONV_FRAME.idl
@@ -711,39 +655,26 @@ idls/Interop/IOP_DCE.idl
 idls/Interop/IIOP.idl
 idls/Interop/IOP.idl
 idls/Interop/IOP_DCE.idl
-idls/Interop/Makefile.am
-idls/Interop/Makefile.in
 idls/Interop/SendingContext.idl
-idls/Makefile.am
-idls/Makefile.common
-idls/Makefile.in
 idls/Misc/Dynamic.idl
 idls/Misc/DynamicAny.idl
 idls/Misc/FT.idl
 idls/Misc/MGM.idl
 idls/Misc/MIOP.idl
-idls/Misc/Makefile.am
-idls/Misc/Makefile.in
 idls/Misc/MessageRouting.idl
 idls/Misc/Messaging.idl
 idls/Misc/PortableGroup.idl
 idls/Misc/PortableInterceptor.idl
 idls/Misc/PortableServer.idl
-idls/RTCORBA/Makefile.am
-idls/RTCORBA/Makefile.in
 idls/RTCORBA/RTCORBA.idl
 idls/RTCORBA/RTCosScheduling.idl
 idls/RTCORBA/RTPortableServer.idl
-idls/cos/Makefile.am
-idls/cos/Makefile.in
 idls/cos/collection/CosCollection.idl
 idls/cos/concurrency/CosConcurrencyControl.idl
 idls/cos/event/CosEventChannelAdmin.idl
 idls/cos/event/CosEventComm.idl
 idls/cos/event/CosTypedEventChannelAdmin.idl
 idls/cos/event/CosTypedEventComm.idl
-idls/cos/event/Makefile.am
-idls/cos/event/Makefile.in
 idls/cos/externalization/CosExternalization.idl
 idls/cos/externalization/CosExternalizationContainment.idl
 idls/cos/externalization/CosExternalizationReference.idl
@@ -756,8 +687,6 @@ idls/cos/naming/Lname-library.idl
 idls/cos/lifecycle/LifeCycleService.idl
 idls/cos/naming/CosNaming.idl
 idls/cos/naming/Lname-library.idl
-idls/cos/naming/Makefile.am
-idls/cos/naming/Makefile.in
 idls/cos/naming/polyorb-corba_p-naming_tools.adb
 idls/cos/naming/polyorb-corba_p-naming_tools.ads
 idls/cos/notification/CosNotification.idl
@@ -766,8 +695,6 @@ idls/cos/notification/CosTypedNotifyComm
 idls/cos/notification/CosNotifyFilter.idl
 idls/cos/notification/CosTypedNotifyChannelAdmin.idl
 idls/cos/notification/CosTypedNotifyComm.idl
-idls/cos/notification/Makefile.am
-idls/cos/notification/Makefile.in
 idls/cos/persistent/cospersistenceddo.idl
 idls/cos/persistent/cospersistenceds_cli.idl
 idls/cos/persistent/cospersistencepds.idl
@@ -794,8 +721,6 @@ idls/cos/time/CosTimerEvent.idl
 idls/cos/security/SecurityReplaceable.idl
 idls/cos/time/CosTime.idl
 idls/cos/time/CosTimerEvent.idl
-idls/cos/time/Makefile.am
-idls/cos/time/Makefile.in
 idls/cos/time/TimeBase.idl
 idls/cos/trader/CosTrading.idl
 idls/cos/trader/CosTradingDynamic.idl
@@ -887,22 +812,17 @@ projects/test_common.gpr
 projects/src_ssl.gpr
 projects/src_web_common.gpr
 projects/test_common.gpr
+projects/testsuite_utils.gpr
 projects/tools_po_catref.gpr
 projects/tools_po_cos_naming.gpr
 projects/tools_po_createref.gpr
 projects/tools_po_dumpir.gpr
 projects/tools_po_ir.gpr
 projects/tools_po_names.gpr
-src/Makefile.am
-src/Makefile.common
-src/Makefile.in
 src/ROADMAP
 src/TODO
 src/config.adc.in
 src/config.h.in
-src/corba/Makefile.am
-src/corba/Makefile.genfiles
-src/corba/Makefile.in
 src/corba/corba-abstractbase.adb
 src/corba/corba-abstractbase.ads
 src/corba/corba-bounded_strings.adb
@@ -961,8 +881,6 @@ src/corba/corba.ads
 src/corba/corba-serverrequest.ads
 src/corba/corba.adb
 src/corba/corba.ads
-src/corba/dynamicany/Makefile.am
-src/corba/dynamicany/Makefile.in
 src/corba/dynamicany/dynamicany-dynany-impl.adb
 src/corba/dynamicany/dynamicany-dynany-impl.ads
 src/corba/dynamicany/dynamicany-dynanyfactory-impl.adb
@@ -987,16 +905,12 @@ src/corba/dynamicany/polyorb-corba_p-dyn
 src/corba/dynamicany/dynamicany-dynvaluecommon-impl.ads
 src/corba/dynamicany/polyorb-corba_p-dynamic_any.adb
 src/corba/dynamicany/polyorb-corba_p-dynamic_any.ads
-src/corba/iop/Makefile.am
-src/corba/iop/Makefile.in
 src/corba/iop/iop-codec-impl.adb
 src/corba/iop/iop-codec-impl.ads
 src/corba/iop/iop-codecfactory-impl.adb
 src/corba/iop/iop-codecfactory-impl.ads
 src/corba/iop/polyorb-corba_p-codec_utils.adb
 src/corba/iop/polyorb-corba_p-codec_utils.ads
-src/corba/messaging/Makefile.am
-src/corba/messaging/Makefile.in
 src/corba/polyorb-corba_p-adapteractivator.adb
 src/corba/polyorb-corba_p-adapteractivator.ads
 src/corba/polyorb-corba_p-corbaloc.adb
@@ -1033,8 +947,6 @@ src/corba/polyorb-sequences-unbounded-co
 src/corba/polyorb-sequences-bounded-corba_helper.ads
 src/corba/polyorb-sequences-unbounded-corba_helper.adb
 src/corba/polyorb-sequences-unbounded-corba_helper.ads
-src/corba/portableinterceptor/Makefile.am
-src/corba/portableinterceptor/Makefile.in
 src/corba/portableinterceptor/polyorb-corba_p-interceptors.adb
 src/corba/portableinterceptor/polyorb-corba_p-interceptors.ads
 src/corba/portableinterceptor/polyorb-corba_p-interceptors_policies.adb
@@ -1114,8 +1026,6 @@ src/corba/portableserver.ads
 src/corba/portableserver-threadpolicy.ads
 src/corba/portableserver.adb
 src/corba/portableserver.ads
-src/corba/rtcorba/Makefile.am
-src/corba/rtcorba/Makefile.in
 src/corba/rtcorba/polyorb-rtcorba_p-mutex.adb
 src/corba/rtcorba/polyorb-rtcorba_p-mutex.ads
 src/corba/rtcorba/polyorb-rtcorba_p-prioritymodelpolicy.adb
@@ -1170,10 +1080,6 @@ src/corba/rtcorba/rtportableserver.ads
 src/corba/rtcorba/rtportableserver-poa.adb
 src/corba/rtcorba/rtportableserver-poa.ads
 src/corba/rtcorba/rtportableserver.ads
-src/corba/security/Makefile.am
-src/corba/security/Makefile.in
-src/corba/security/gssup/Makefile.am
-src/corba/security/gssup/Makefile.in
 src/corba/security/polyorb-corba_p-css_state_machine.adb
 src/corba/security/polyorb-corba_p-css_state_machine.ads
 src/corba/security/polyorb-corba_p-css_state_machine_actions.adb
@@ -1187,8 +1093,6 @@ src/csupport.c
 src/corba/security/polyorb-corba_p-tss_state_machine_actions.adb
 src/corba/security/polyorb-corba_p-tss_state_machine_actions.ads
 src/csupport.c
-src/dsa/Makefile.am
-src/dsa/Makefile.in
 src/dsa/polyorb-dsa_p-conversions.ads
 src/dsa/polyorb-dsa_p-exceptions.adb
 src/dsa/polyorb-dsa_p-exceptions.ads
@@ -1227,11 +1131,7 @@ src/dsa/s-shasto.ads
 src/dsa/s-parint.ads
 src/dsa/s-shasto.adb
 src/dsa/s-shasto.ads
-src/giop/Makefile.am
-src/giop/Makefile.in
 src/giop/cs_registry1.2h
-src/giop/diop/Makefile.am
-src/giop/diop/Makefile.in
 src/giop/diop/polyorb-binding_data-giop-diop.adb
 src/giop/diop/polyorb-binding_data-giop-diop.ads
 src/giop/diop/polyorb-giop_p-transport_mechanisms-diop.adb
@@ -1243,8 +1143,6 @@ src/giop/gen_codeset.adb
 src/giop/diop/polyorb-setup-diop.adb
 src/giop/diop/polyorb-setup-diop.ads
 src/giop/gen_codeset.adb
-src/giop/iiop/Makefile.am
-src/giop/iiop/Makefile.in
 src/giop/iiop/polyorb-binding_data-giop-iiop.adb
 src/giop/iiop/polyorb-binding_data-giop-iiop.ads
 src/giop/iiop/polyorb-giop_p-tagged_components-alternate_iiop_address.adb
@@ -1259,14 +1157,10 @@ src/giop/iiop/polyorb-setup-iiop.ads
 src/giop/iiop/polyorb-setup-access_points-iiop.ads
 src/giop/iiop/polyorb-setup-iiop.adb
 src/giop/iiop/polyorb-setup-iiop.ads
-src/giop/iiop/security/Makefile.am
-src/giop/iiop/security/Makefile.in
 src/giop/iiop/security/polyorb-giop_p-tagged_components-csi_sec_mech_list.adb
 src/giop/iiop/security/polyorb-giop_p-tagged_components-csi_sec_mech_list.ads
 src/giop/iiop/security/polyorb-giop_p-tagged_components-null_tag.adb
 src/giop/iiop/security/polyorb-giop_p-tagged_components-null_tag.ads
-src/giop/iiop/security/tls/Makefile.am
-src/giop/iiop/security/tls/Makefile.in
 src/giop/iiop/security/tls/polyorb-giop_p-tagged_components-tls_sec_trans.adb
 src/giop/iiop/security/tls/polyorb-giop_p-tagged_components-tls_sec_trans.ads
 src/giop/iiop/security/tls/polyorb-giop_p-transport_mechanisms-tls.adb
@@ -1275,16 +1169,12 @@ src/giop/iiop/security/tls/polyorb-setup
 src/giop/iiop/security/tls/polyorb-setup-access_points-tlsiop.ads
 src/giop/iiop/security/tls/polyorb-setup-tlsiop.adb
 src/giop/iiop/security/tls/polyorb-setup-tlsiop.ads
-src/giop/iiop/ssliop/Makefile.am
-src/giop/iiop/ssliop/Makefile.in
 src/giop/iiop/ssliop/polyorb-giop_p-transport_mechanisms-ssliop.adb
 src/giop/iiop/ssliop/polyorb-giop_p-transport_mechanisms-ssliop.ads
 src/giop/iiop/ssliop/polyorb-setup-access_points-ssliop.adb
 src/giop/iiop/ssliop/polyorb-setup-access_points-ssliop.ads
 src/giop/iiop/ssliop/polyorb-setup-ssliop.adb
 src/giop/iiop/ssliop/polyorb-setup-ssliop.ads
-src/giop/miop/Makefile.am
-src/giop/miop/Makefile.in
 src/giop/miop/polyorb-binding_data-giop-uipmc.adb
 src/giop/miop/polyorb-binding_data-giop-uipmc.ads
 src/giop/miop/polyorb-filters-miop-miop_in.adb
@@ -1351,8 +1241,6 @@ src/giop/polyorb-representations-cdr-gio
 src/giop/polyorb-representations-cdr-giop_1_2.ads
 src/giop/polyorb-representations-cdr-giop_utils.adb
 src/giop/polyorb-representations-cdr-giop_utils.ads
-src/moma/Makefile.am
-src/moma/Makefile.in
 src/moma/moma-configuration-server.adb
 src/moma/moma-configuration-server.ads
 src/moma/moma-configuration.adb
@@ -1822,10 +1710,6 @@ src/ravenscar_compatible.adc.in
 src/polyorb.conf
 src/ravenscar.adc.in
 src/ravenscar_compatible.adc.in
-src/security/Makefile.am
-src/security/Makefile.in
-src/security/gssup/Makefile.am
-src/security/gssup/Makefile.in
 src/security/gssup/polyorb-security-authentication_mechanisms-gssup_client.adb
 src/security/gssup/polyorb-security-authentication_mechanisms-gssup_client.ads
 src/security/gssup/polyorb-security-authentication_mechanisms-gssup_target.adb
@@ -1879,8 +1763,6 @@ src/security/polyorb_asn1.c
 src/security/polyorb-security-types.ads
 src/security/polyorb-security.ads
 src/security/polyorb_asn1.c
-src/security/tls/Makefile.am
-src/security/tls/Makefile.in
 src/security/tls/polyorb-asynch_ev-sockets-tls.adb
 src/security/tls/polyorb-asynch_ev-sockets-tls.ads
 src/security/tls/polyorb-security-credentials-tls.adb
@@ -1893,15 +1775,11 @@ src/security/tls/polyorb-utils-tls_acces
 src/security/tls/polyorb-transport-connected-sockets-tls.ads
 src/security/tls/polyorb-utils-tls_access_points.adb
 src/security/tls/polyorb-utils-tls_access_points.ads
-src/security/x509/Makefile.am
-src/security/x509/Makefile.in
 src/security/x509/polyorb-security-identities-distinguished_name.adb
 src/security/x509/polyorb-security-identities-distinguished_name.ads
 src/security/x509/polyorb-x509.adb
 src/security/x509/polyorb-x509.ads
 src/security/x509/polyorb_x509.c
-src/setup/Makefile.am
-src/setup/Makefile.in
 src/setup/polyorb-setup-base.adb.in
 src/setup/polyorb-setup-base.ads
 src/setup/polyorb-setup-client.adb.in
@@ -1918,16 +1796,12 @@ src/setup/polyorb-setup-thread_pool_serv
 src/setup/polyorb-setup-thread_per_session_server.ads
 src/setup/polyorb-setup-thread_pool_server.adb
 src/setup/polyorb-setup-thread_pool_server.ads
-src/setup/security/Makefile.am
-src/setup/security/Makefile.in
 src/setup/security/polyorb-setup-secure_client.adb
 src/setup/security/polyorb-setup-secure_client.ads
 src/setup/security/polyorb-setup-secure_server.adb
 src/setup/security/polyorb-setup-secure_server.ads
 src/setup/security/polyorb-setup-security_base.adb
 src/setup/security/polyorb-setup-security_base.ads
-src/soap/Makefile.am
-src/soap/Makefile.in
 src/soap/gen_http_body
 src/soap/polyorb-binding_data-soap.adb
 src/soap/polyorb-binding_data-soap.ads
@@ -1963,8 +1837,6 @@ src/soap/polyorb-utils-text_buffers.ads
 src/soap/polyorb-soap_p.ads
 src/soap/polyorb-utils-text_buffers.adb
 src/soap/polyorb-utils-text_buffers.ads
-src/srp/Makefile.am
-src/srp/Makefile.in
 src/srp/polyorb-binding_data-srp.adb
 src/srp/polyorb-binding_data-srp.ads
 src/srp/polyorb-protocols-srp.adb
@@ -1975,8 +1847,6 @@ src/srp/polyorb-utils-srp.ads
 src/srp/polyorb-setup-access_points-srp.ads
 src/srp/polyorb-utils-srp.adb
 src/srp/polyorb-utils-srp.ads
-src/ssl/Makefile.am
-src/ssl/Makefile.in
 src/ssl/polyorb-asynch_ev-sockets-ssl.adb
 src/ssl/polyorb-asynch_ev-sockets-ssl.ads
 src/ssl/polyorb-ssl.adb
@@ -1986,8 +1856,6 @@ src/ssl/polyorb_ssl.c
 src/ssl/polyorb-utils-ssl_access_points.adb
 src/ssl/polyorb-utils-ssl_access_points.ads
 src/ssl/polyorb_ssl.c
-src/web_common/Makefile.am
-src/web_common/Makefile.in
 src/web_common/aws-mime.adb
 src/web_common/aws-mime.ads
 src/web_common/aws-url-raise_url_error.adb
@@ -2027,12 +1895,879 @@ support/utils.m4
 support/subversion.m4
 support/texinfo.tex
 support/utils.m4
-tools/Makefile.am
-tools/Makefile.common
-tools/Makefile.in
+testsuite/README
+testsuite/acats/CXE1001/Makefile.local
+testsuite/acats/CXE1001/cxe1001_a.adb
+testsuite/acats/CXE1001/cxe1001_b.adb
+testsuite/acats/CXE1001/cxe1001_p.adb
+testsuite/acats/CXE1001/cxe1001_q.adb
+testsuite/acats/CXE1001/local.gpr
+testsuite/acats/CXE1001/part1.adb
+testsuite/acats/CXE1001/part2.adb
+testsuite/acats/CXE2001/Makefile.local
+testsuite/acats/CXE2001/cxe2001_a.adb
+testsuite/acats/CXE2001/cxe2001_b.adb
+testsuite/acats/CXE2001/cxe2001_part_b.adb
+testsuite/acats/CXE2001/cxe2001_part_b.ads
+testsuite/acats/CXE2001/cxe2001_shared.adb
+testsuite/acats/CXE2001/cxe2001_shared.ads
+testsuite/acats/CXE2001/local.gpr
+testsuite/acats/CXE2001/part1.adb
+testsuite/acats/CXE2001/part2.adb
+testsuite/acats/CXE4001/Makefile.local
+testsuite/acats/CXE4001/cxe4001_a.adb
+testsuite/acats/CXE4001/cxe4001_b.adb
+testsuite/acats/CXE4001/cxe4001_decl_pure.ads
+testsuite/acats/CXE4001/cxe4001_partition_a.adb
+testsuite/acats/CXE4001/cxe4001_partition_a.ads
+testsuite/acats/CXE4001/cxe4001_partition_b.adb
+testsuite/acats/CXE4001/cxe4001_partition_b.ads
+testsuite/acats/CXE4001/local.gpr
+testsuite/acats/CXE4001/part1.adb
+testsuite/acats/CXE4001/part2.adb
+testsuite/acats/CXE4002/Makefile.local
+testsuite/acats/CXE4002/cxe4002_a.adb
+testsuite/acats/CXE4002/cxe4002_b.adb
+testsuite/acats/CXE4002/cxe4002_common.ads
+testsuite/acats/CXE4002/cxe4002_part_a1.adb
+testsuite/acats/CXE4002/cxe4002_part_a1.ads
+testsuite/acats/CXE4002/cxe4002_part_a2.adb
+testsuite/acats/CXE4002/cxe4002_part_a2.ads
+testsuite/acats/CXE4002/local.gpr
+testsuite/acats/CXE4002/part1.adb
+testsuite/acats/CXE4002/part2.adb
+testsuite/acats/CXE4005/Makefile.local
+testsuite/acats/CXE4005/cxe4005_a.adb
+testsuite/acats/CXE4005/cxe4005_b.adb
+testsuite/acats/CXE4005/cxe4005_common.adb
+testsuite/acats/CXE4005/cxe4005_common.ads
+testsuite/acats/CXE4005/cxe4005_normal.adb
+testsuite/acats/CXE4005/cxe4005_normal.ads
+testsuite/acats/CXE4005/cxe4005_part_a1.adb
+testsuite/acats/CXE4005/cxe4005_part_a1.ads
+testsuite/acats/CXE4005/cxe4005_part_a2.adb
+testsuite/acats/CXE4005/cxe4005_part_a2.ads
+testsuite/acats/CXE4005/cxe4005_part_b.adb
+testsuite/acats/CXE4005/cxe4005_part_b.ads
+testsuite/acats/CXE4005/cxe4005_remote_types.adb
+testsuite/acats/CXE4005/cxe4005_remote_types.ads
+testsuite/acats/CXE4005/local.gpr
+testsuite/acats/CXE4005/part1.adb
+testsuite/acats/CXE4005/part2.adb
+testsuite/acats/CXE4006/Makefile.local
+testsuite/acats/CXE4006/cxe4006_a.adb
+testsuite/acats/CXE4006/cxe4006_b.adb
+testsuite/acats/CXE4006/cxe4006_common.adb
+testsuite/acats/CXE4006/cxe4006_common.ads
+testsuite/acats/CXE4006/cxe4006_normal.adb
+testsuite/acats/CXE4006/cxe4006_normal.ads
+testsuite/acats/CXE4006/cxe4006_part_a1.adb
+testsuite/acats/CXE4006/cxe4006_part_a1.ads
+testsuite/acats/CXE4006/cxe4006_part_a2.adb
+testsuite/acats/CXE4006/cxe4006_part_a2.ads
+testsuite/acats/CXE4006/cxe4006_part_b.adb
+testsuite/acats/CXE4006/cxe4006_part_b.ads
+testsuite/acats/CXE4006/local.gpr
+testsuite/acats/CXE4006/part1.adb
+testsuite/acats/CXE4006/part2.adb
+testsuite/acats/support/impdef-annex_e.ads
+testsuite/acats/support/impdef.adb
+testsuite/acats/support/impdef.ads
+testsuite/acats/support/report.adb
+testsuite/acats/support/report.ads
+testsuite/corba/all_exceptions/Makefile.local
+testsuite/corba/all_exceptions/all_exceptions-impl.adb
+testsuite/corba/all_exceptions/all_exceptions-impl.ads
+testsuite/corba/all_exceptions/all_exceptions.idl
+testsuite/corba/all_exceptions/client.adb
+testsuite/corba/all_exceptions/local.gpr
+testsuite/corba/all_exceptions/server.adb
+testsuite/corba/benchs/test000/Makefile.local
+testsuite/corba/benchs/test000/client.adb
+testsuite/corba/benchs/test000/local.gpr
+testsuite/corba/benchs/test000/server.adb
+testsuite/corba/benchs/test000/test-activator-impl.adb
+testsuite/corba/benchs/test000/test-activator-impl.ads
+testsuite/corba/benchs/test000/test-echo-impl.adb
+testsuite/corba/benchs/test000/test-echo-impl.ads
+testsuite/corba/benchs/test000/test-factory-impl.adb
+testsuite/corba/benchs/test000/test-factory-impl.ads
+testsuite/corba/benchs/test000/test.idl
+testsuite/corba/benchs/test000/test_support.adb
+testsuite/corba/benchs/test000/test_support.ads
+testsuite/corba/code_sets/test000/Makefile.local
+testsuite/corba/code_sets/test000/client.adb
+testsuite/corba/code_sets/test000/local.gpr
+testsuite/corba/code_sets/test000/polyorb-giop_p-code_sets-converters-test.adb
+testsuite/corba/code_sets/test000/polyorb-giop_p-code_sets-converters-test.ads
+testsuite/corba/code_sets/test000/server.adb
+testsuite/corba/code_sets/test000/test_interface-impl.adb
+testsuite/corba/code_sets/test000/test_interface-impl.ads
+testsuite/corba/code_sets/test000/test_interface.idl
+testsuite/corba/cos/event/Makefile.local
+testsuite/corba/cos/event/README
+testsuite/corba/cos/event/auto_print.adb
+testsuite/corba/cos/event/auto_print.ads
+testsuite/corba/cos/event/consumer.cmd
+testsuite/corba/cos/event/local.gpr
+testsuite/corba/cos/event/supplier.cmd
+testsuite/corba/cos/event/test_event.adb
+testsuite/corba/cos/event/typedevent_multipleclient.cmd
+testsuite/corba/cos/event/typedevent_singleclient.cmd
+testsuite/corba/cos/event/typedtest_event.adb
+testsuite/corba/cos/event/typedtest_interface-impl.adb
+testsuite/corba/cos/event/typedtest_interface-impl.ads
+testsuite/corba/cos/event/typedtest_interface.idl
+testsuite/corba/cos/ir/Makefile.local
+testsuite/corba/cos/ir/client.adb
+testsuite/corba/cos/ir/local.gpr
+testsuite/corba/cos/ir/server.adb
+testsuite/corba/cos/naming/Makefile.local
+testsuite/corba/cos/naming/local.gpr
+testsuite/corba/cos/naming/test_naming_corba.adb
+testsuite/corba/cos/notification/Makefile.local
+testsuite/corba/cos/notification/README
+testsuite/corba/cos/notification/auto_print.adb
+testsuite/corba/cos/notification/auto_print.ads
+testsuite/corba/cos/notification/local.gpr
+testsuite/corba/cos/notification/test_notification.adb
+testsuite/corba/cos/notification/testanypull_multiple.cmd
+testsuite/corba/cos/notification/testanypullsupplier_multipleconsumer.cmd
+testsuite/corba/cos/notification/testanypush_multiple.cmd
+testsuite/corba/cos/notification/testanypush_single.cmd
+testsuite/corba/cos/notification/testsequencepull_multiple.cmd
+testsuite/corba/cos/notification/testsequencepull_single.cmd
+testsuite/corba/cos/notification/testsequencepush_multiple.cmd
+testsuite/corba/cos/notification/teststructpushsupplier_multipleconsumer.cmd
+testsuite/corba/cos/notification/teststructuredpull_multiple.cmd
+testsuite/corba/cos/notification/teststructuredpull_single.cmd
+testsuite/corba/cos/notification/teststructuredpush_multiple.cmd
+testsuite/corba/cos/time/Makefile.local
+testsuite/corba/cos/time/local.gpr
+testsuite/corba/cos/time/test_time.adb
+testsuite/corba/domainmanager/test000/Makefile.local
+testsuite/corba/domainmanager/test000/client.adb
+testsuite/corba/domainmanager/test000/corba-domainmanager-impl.adb
+testsuite/corba/domainmanager/test000/corba-domainmanager-impl.ads
+testsuite/corba/domainmanager/test000/corba-domainmanager-skel.adb
+testsuite/corba/domainmanager/test000/corba-domainmanager-skel.ads
+testsuite/corba/domainmanager/test000/local.gpr
+testsuite/corba/domainmanager/test000/server.adb
+testsuite/corba/domainmanager/test000/test-domainmanager-impl.ads
+testsuite/corba/domainmanager/test000/test-echo-impl.ads
+testsuite/corba/domainmanager/test000/test.idl
+testsuite/corba/harness/Makefile.local
+testsuite/corba/harness/client.adb
+testsuite/corba/harness/client_common.adb
+testsuite/corba/harness/client_common.ads
+testsuite/corba/harness/harness-impl.adb
+testsuite/corba/harness/harness-impl.ads
+testsuite/corba/harness/harness.idl
+testsuite/corba/harness/local.adb
+testsuite/corba/harness/local.gpr
+testsuite/corba/harness/server_common.adb
+testsuite/corba/harness/server_common.ads
+testsuite/corba/harness/server_no_tasking.adb
+testsuite/corba/harness/server_no_tasking2.adb
+testsuite/corba/harness/server_thread_per_request.adb
+testsuite/corba/harness/server_thread_per_session.adb
+testsuite/corba/harness/server_thread_pool.adb
+testsuite/corba/harness/server_thread_pool_hahs.adb
+testsuite/corba/harness/server_thread_pool_lf.adb
+testsuite/corba/interop/cpp/MICO/Makefile.MICO
+testsuite/corba/interop/cpp/README
+testsuite/corba/interop/cpp/TAO/Makefile.TAO
+testsuite/corba/interop/cpp/TAO/dynserver_mt_TAO.cc
+testsuite/corba/interop/cpp/common/all_functions_client.cc
+testsuite/corba/interop/cpp/common/all_types_client.cc
+testsuite/corba/interop/cpp/common/all_types_dynclient.cc
+testsuite/corba/interop/cpp/common/all_types_dynserver.cc
+testsuite/corba/interop/cpp/common/all_types_imp.cc
+testsuite/corba/interop/cpp/common/all_types_server.cc
+testsuite/corba/interop/cpp/common/report.cc
+testsuite/corba/interop/cpp/omniORB/Makefile.omniORB
+testsuite/corba/interop/java/Jonathan/Makefile.Jonathan
+testsuite/corba/interop/java/OpenORB/Makefile.OpenORB
+testsuite/corba/interop/java/README
+testsuite/corba/interop/java/common/Alltypes.java
+testsuite/corba/interop/java/common/Client.java
+testsuite/corba/interop/java/common/DynClient.java
+testsuite/corba/interop/java/common/DynServer.java
+testsuite/corba/interop/java/common/DynSkeleton.java
+testsuite/corba/interop/java/common/Server.java
+testsuite/corba/interop/java/common/all_types.idl
+testsuite/corba/local/Makefile.local
+testsuite/corba/local/local.gpr
+testsuite/corba/local/test000.adb
+testsuite/corba/location_forwarding/test000/Makefile.local
+testsuite/corba/location_forwarding/test000/local.gpr
+testsuite/corba/location_forwarding/test000/test000.adb
+testsuite/corba/location_forwarding/test000/test_globals.ads
+testsuite/corba/location_forwarding/test000/test_interface-impl.adb
+testsuite/corba/location_forwarding/test000/test_interface-impl.ads
+testsuite/corba/location_forwarding/test000/test_interface.idl
+testsuite/corba/location_forwarding/test000/test_servantactivator-impl.adb
+testsuite/corba/location_forwarding/test000/test_servantactivator-impl.ads
+testsuite/corba/location_forwarding/test001/Makefile.local
+testsuite/corba/location_forwarding/test001/local.gpr
+testsuite/corba/location_forwarding/test001/test001_client.adb
+testsuite/corba/location_forwarding/test001/test001_server.adb
+testsuite/corba/location_forwarding/test001/test_globals.ads
+testsuite/corba/location_forwarding/test001/test_interface-impl.adb
+testsuite/corba/location_forwarding/test001/test_interface-impl.ads
+testsuite/corba/location_forwarding/test001/test_interface.idl
+testsuite/corba/location_forwarding/test001/test_servantactivator-impl.adb
+testsuite/corba/location_forwarding/test001/test_servantactivator-impl.ads
+testsuite/corba/object/test000/Makefile.local
+testsuite/corba/object/test000/local.gpr
+testsuite/corba/object/test000/test000_client.adb
+testsuite/corba/object/test000/test000_server.adb
+testsuite/corba/object/test000/test_interface-impl.adb
+testsuite/corba/object/test000/test_interface-impl.ads
+testsuite/corba/object/test000/test_interface.idl
+testsuite/corba/orb_init/Makefile.local
+testsuite/corba/orb_init/local.gpr
+testsuite/corba/orb_init/test000.adb
+testsuite/corba/performance/Makefile.local
+testsuite/corba/performance/README
+testsuite/corba/performance/bench_utils.adb
+testsuite/corba/performance/bench_utils.ads
+testsuite/corba/performance/benchs-impl.adb
+testsuite/corba/performance/benchs-impl.ads
+testsuite/corba/performance/benchs.idl
+testsuite/corba/performance/client.adb
+testsuite/corba/performance/local.gpr
+testsuite/corba/performance/print_data.gnuplot
+testsuite/corba/performance/server_common.adb
+testsuite/corba/performance/server_common.ads
+testsuite/corba/performance/server_no_tasking.adb
+testsuite/corba/performance/server_thread_pool.adb
+testsuite/corba/portableinterceptor/test000/Makefile.local
+testsuite/corba/portableinterceptor/test000/local.gpr
+testsuite/corba/portableinterceptor/test000/test000.adb
+testsuite/corba/portableinterceptor/test000/test000_globals.adb
+testsuite/corba/portableinterceptor/test000/test000_globals.ads
+testsuite/corba/portableinterceptor/test000/test000_idl-clientinterceptor-impl.adb
+testsuite/corba/portableinterceptor/test000/test000_idl-clientinterceptor-impl.ads
+testsuite/corba/portableinterceptor/test000/test000_idl-orbinitializer-impl.adb
+testsuite/corba/portableinterceptor/test000/test000_idl-orbinitializer-impl.ads
+testsuite/corba/portableinterceptor/test000/test000_idl-serverinterceptor-impl.adb
+testsuite/corba/portableinterceptor/test000/test000_idl-serverinterceptor-impl.ads
+testsuite/corba/portableinterceptor/test000/test000_idl-testinterface-impl.adb
+testsuite/corba/portableinterceptor/test000/test000_idl-testinterface-impl.ads
+testsuite/corba/portableinterceptor/test000/test000_idl.idl
+testsuite/corba/portableinterceptor/test001/Makefile.local
+testsuite/corba/portableinterceptor/test001/local.gpr
+testsuite/corba/portableinterceptor/test001/test001.adb
+testsuite/corba/portableinterceptor/test001/test001_client_interceptor-impl.adb
+testsuite/corba/portableinterceptor/test001/test001_client_interceptor-impl.ads
+testsuite/corba/portableinterceptor/test001/test001_client_request_info_tests.adb
+testsuite/corba/portableinterceptor/test001/test001_client_request_info_tests.ads
+testsuite/corba/portableinterceptor/test001/test001_globals.adb
+testsuite/corba/portableinterceptor/test001/test001_globals.ads
+testsuite/corba/portableinterceptor/test001/test001_interface-impl.adb
+testsuite/corba/portableinterceptor/test001/test001_interface-impl.ads
+testsuite/corba/portableinterceptor/test001/test001_interface.idl
+testsuite/corba/portableinterceptor/test001/test001_orb_initializer-impl.adb
+testsuite/corba/portableinterceptor/test001/test001_orb_initializer-impl.ads
+testsuite/corba/portableinterceptor/test001/test001_request_info_tests.adb
+testsuite/corba/portableinterceptor/test001/test001_request_info_tests.ads
+testsuite/corba/portableinterceptor/test001/test001_server_interceptor-impl.adb
+testsuite/corba/portableinterceptor/test001/test001_server_interceptor-impl.ads
+testsuite/corba/portableinterceptor/test001/test001_server_request_info_tests.adb
+testsuite/corba/portableinterceptor/test001/test001_server_request_info_tests.ads
+testsuite/corba/portableinterceptor/test002/Makefile.local
+testsuite/corba/portableinterceptor/test002/local.gpr
+testsuite/corba/portableinterceptor/test002/test002.adb
+testsuite/corba/portableinterceptor/test002/test002_client_interceptor-impl.adb
+testsuite/corba/portableinterceptor/test002/test002_client_interceptor-impl.ads
+testsuite/corba/portableinterceptor/test002/test002_globals.ads
+testsuite/corba/portableinterceptor/test002/test002_interface-impl.adb
+testsuite/corba/portableinterceptor/test002/test002_interface-impl.ads
+testsuite/corba/portableinterceptor/test002/test002_interface.idl
+testsuite/corba/portableinterceptor/test002/test002_orb_initializer-impl.adb
+testsuite/corba/portableinterceptor/test002/test002_orb_initializer-impl.ads
+testsuite/corba/portableinterceptor/test002/test002_server_interceptor-impl.adb
+testsuite/corba/portableinterceptor/test002/test002_server_interceptor-impl.ads
+testsuite/corba/portableinterceptor/test003/Makefile.local
+testsuite/corba/portableinterceptor/test003/local.gpr
+testsuite/corba/portableinterceptor/test003/test003.adb
+testsuite/corba/portableinterceptor/test004/Makefile.local
+testsuite/corba/portableinterceptor/test004/client.adb
+testsuite/corba/portableinterceptor/test004/local.gpr
+testsuite/corba/portableinterceptor/test004/server.adb
+testsuite/corba/portableinterceptor/test004/test-clientinterceptor-impl.adb
+testsuite/corba/portableinterceptor/test004/test-clientinterceptor-impl.ads
+testsuite/corba/portableinterceptor/test004/test-clientorbinitializer-impl.adb
+testsuite/corba/portableinterceptor/test004/test-clientorbinitializer-impl.ads
+testsuite/corba/portableinterceptor/test004/test-demo-impl.adb
+testsuite/corba/portableinterceptor/test004/test-demo-impl.ads
+testsuite/corba/portableinterceptor/test004/test-iorinterceptor-impl.adb
+testsuite/corba/portableinterceptor/test004/test-iorinterceptor-impl.ads
+testsuite/corba/portableinterceptor/test004/test-serverorbinitializer-impl.adb
+testsuite/corba/portableinterceptor/test004/test-serverorbinitializer-impl.ads
+testsuite/corba/portableinterceptor/test004/test.idl
+testsuite/corba/portableserver/Makefile.local
+testsuite/corba/portableserver/echo-impl.adb
+testsuite/corba/portableserver/echo-impl.ads
+testsuite/corba/portableserver/echo.idl
+testsuite/corba/portableserver/local.gpr
+testsuite/corba/portableserver/test-impl.adb
+testsuite/corba/portableserver/test-impl.ads
+testsuite/corba/portableserver/test.idl
+testsuite/corba/portableserver/test000.adb
+testsuite/corba/portableserver/test000_setup.adb
+testsuite/corba/portableserver/test000_setup.ads
+testsuite/corba/portableserver/test001.adb
+testsuite/corba/portableserver/test002.adb
+testsuite/corba/portableserver/test_adapteractivator.adb
+testsuite/corba/portableserver/test_adapteractivator.ads
+testsuite/corba/portableserver/test_globals.ads
+testsuite/corba/portableserver/test_job.adb
+testsuite/corba/portableserver/test_job.ads
+testsuite/corba/portableserver/test_mypoa.adb
+testsuite/corba/portableserver/test_mypoa.ads
+testsuite/corba/portableserver/test_nullactivator-impl.adb
+testsuite/corba/portableserver/test_nullactivator-impl.ads
+testsuite/corba/portableserver/test_servantactivator.adb
+testsuite/corba/portableserver/test_servantactivator.ads
+testsuite/corba/portableserver/test_simpleactivator-impl.adb
+testsuite/corba/portableserver/test_simpleactivator-impl.ads
+testsuite/corba/rtcorba/rtcurrent/Makefile.local
+testsuite/corba/rtcorba/rtcurrent/local.gpr
+testsuite/corba/rtcorba/rtcurrent/rtcurrent.adb
+testsuite/corba/rtcorba/rtorb/Makefile.local
+testsuite/corba/rtcorba/rtorb/echo-impl.adb
+testsuite/corba/rtcorba/rtorb/echo-impl.ads
+testsuite/corba/rtcorba/rtorb/echo.idl
+testsuite/corba/rtcorba/rtorb/local.gpr
+testsuite/corba/rtcorba/rtorb/test000.adb
+testsuite/corba/rtcorba/rtpoa/Makefile.local
+testsuite/corba/rtcorba/rtpoa/echo-impl.adb
+testsuite/corba/rtcorba/rtpoa/echo-impl.ads
+testsuite/corba/rtcorba/rtpoa/echo.idl
+testsuite/corba/rtcorba/rtpoa/local.gpr
+testsuite/corba/rtcorba/rtpoa/test000.adb
+testsuite/corba/shutdown/Makefile.local
+testsuite/corba/shutdown/local.gpr
+testsuite/corba/shutdown/test000_client.adb
+testsuite/corba/shutdown/test001_client.adb
+testsuite/corba/shutdown/test_client.adb
+testsuite/corba/shutdown/test_interface-impl.adb
+testsuite/corba/shutdown/test_interface-impl.ads
+testsuite/corba/shutdown/test_interface.idl
+testsuite/core/any/Makefile.local
+testsuite/core/any/local.gpr
+testsuite/core/any/test000.adb
+testsuite/core/chained_lists/Makefile.local
+testsuite/core/chained_lists/local.gpr
+testsuite/core/chained_lists/test000.adb
+testsuite/core/dynamic_dict/Makefile.local
+testsuite/core/dynamic_dict/local.gpr
+testsuite/core/dynamic_dict/test000.adb
+testsuite/core/fixed_point/Makefile.local
+testsuite/core/fixed_point/local.gpr
+testsuite/core/fixed_point/test000.adb
+testsuite/core/initialization/Makefile.local
+testsuite/core/initialization/local.gpr
+testsuite/core/initialization/test000.adb
+testsuite/core/initialization/test001.adb
+testsuite/core/initialization/test002.adb
+testsuite/core/initialization/test003.adb
+testsuite/core/initialization/test004.adb
+testsuite/core/naming/Makefile.local
+testsuite/core/naming/local.gpr
+testsuite/core/naming/test000.adb
+testsuite/core/obj_adapters/Makefile.local
+testsuite/core/obj_adapters/local.gpr
+testsuite/core/obj_adapters/test000.adb
+testsuite/core/obj_adapters/test001.adb
+testsuite/core/obj_adapters/test_common.adb
+testsuite/core/obj_adapters/test_common.ads
+testsuite/core/obj_adapters/test_servant.adb
+testsuite/core/obj_adapters/test_servant.ads
+testsuite/core/poa/Makefile.local
+testsuite/core/poa/local.gpr
+testsuite/core/poa/test000.adb
+testsuite/core/poa/test_servant.adb
+testsuite/core/poa/test_servant.ads
+testsuite/core/random/Makefile.local
+testsuite/core/random/local.gpr
+testsuite/core/random/test000.adb
+testsuite/core/sync_policies/Makefile.local
+testsuite/core/sync_policies/client.adb
+testsuite/core/sync_policies/local.gpr
+testsuite/core/sync_policies/ping_object.adb
+testsuite/core/sync_policies/ping_object.ads
+testsuite/core/sync_policies/server_common.adb
+testsuite/core/sync_policies/server_common.ads
+testsuite/core/sync_policies/server_no_tasking.adb
+testsuite/core/tasking/Makefile.local
+testsuite/core/tasking/local.gpr
+testsuite/core/tasking/ravenscar_setup.adb
+testsuite/core/tasking/ravenscar_setup.ads
+testsuite/core/tasking/test000.adb
+testsuite/core/tasking/test000_common.adb
+testsuite/core/tasking/test000_common.ads
+testsuite/core/tasking/test000r.adb
+testsuite/core/tasking/test001.adb
+testsuite/core/tasking/test001_common.adb
+testsuite/core/tasking/test001_common.ads
+testsuite/core/tasking/test002.adb
+testsuite/core/tasking/test002_common.adb
+testsuite/core/tasking/test002_common.ads
+testsuite/core/tasking/test003.adb
+testsuite/core/tasking/test003_common.adb
+testsuite/core/tasking/test003_common.ads
+testsuite/core/uri_encoding/Makefile.local
+testsuite/core/uri_encoding/local.gpr
+testsuite/core/uri_encoding/test000.adb
+testsuite/idls/MANIFEST
+testsuite/idls/Makefile.ada
+testsuite/idls/README
+testsuite/idls/abstract001/tin.idl
+testsuite/idls/ada0009/name_clashing.idl
+testsuite/idls/ada0010/tin.idl
+testsuite/idls/ada0011/tin.idl
+testsuite/idls/ada0012/tin.idl
+testsuite/idls/ada0013/tin.idl
+testsuite/idls/ada0014/tin.idl
+testsuite/idls/ada0015/tin.idl
+testsuite/idls/ada0016/tin.idl
+testsuite/idls/ada0017/tin.idl
+testsuite/idls/ada0018/tin.idl
+testsuite/idls/ada0019/tin.idl
+testsuite/idls/ada0020/tin.idl
+testsuite/idls/ada0021/tin.idl
+testsuite/idls/ada0022/tin.idl
+testsuite/idls/aif_b01/test.out
+testsuite/idls/aif_b01/tin.idl
+testsuite/idls/aif_p01/test.out
+testsuite/idls/aif_p01/tin.idl
+testsuite/idls/anon_types001/tin.idl
+testsuite/idls/attr001/tin.idl
+testsuite/idls/autotest.sh
+testsuite/idls/avt_b01/test.out
+testsuite/idls/avt_b01/tin.idl
+testsuite/idls/avt_p01/test.out
+testsuite/idls/avt_p01/tin.idl
+testsuite/idls/chicken-egg/chicken.idl
+testsuite/idls/chicken-egg/egg.idl
+testsuite/idls/circular/test_array_1.idl
+testsuite/idls/circular/test_array_11.idl
+testsuite/idls/circular/test_array_2.idl
+testsuite/idls/circular/test_exception_1.idl
+testsuite/idls/circular/test_exception_2.idl
+testsuite/idls/circular/test_sequence_1.idl
+testsuite/idls/circular/test_sequence_2.idl
+testsuite/idls/circular/test_struct_1.idl
+testsuite/idls/circular/test_struct_2.idl
+testsuite/idls/circular/test_typedef_1.idl
+testsuite/idls/circular/test_typedef_2.idl
+testsuite/idls/cmp-words
+testsuite/idls/compile_files.sh
+testsuite/idls/corba_idl/CORBA_Context.idl
+testsuite/idls/corba_idl/CORBA_Current.idl
+testsuite/idls/corba_idl/CORBA_DomainManager.idl
+testsuite/idls/corba_idl/CORBA_InterfaceRepository.idl
+testsuite/idls/corba_idl/CORBA_NVList.idl
+testsuite/idls/corba_idl/CORBA_ORB.idl
+testsuite/idls/corba_idl/CORBA_ORB_init.idl
+testsuite/idls/corba_idl/CORBA_Object.idl
+testsuite/idls/corba_idl/CORBA_Policy.idl
+testsuite/idls/corba_idl/CORBA_Request.idl
+testsuite/idls/corba_idl/CORBA_ServerRequest.idl
+testsuite/idls/corba_idl/CORBA_StandardExceptions.idl
+testsuite/idls/corba_idl/CORBA_Stream.idl
+testsuite/idls/corba_idl/CORBA_TypeCode.idl
+testsuite/idls/corba_idl/CORBA_ValueBase.idl
+testsuite/idls/corba_idl/orb.idl
+testsuite/idls/echo/Makefile
+testsuite/idls/echo/client.adb
+testsuite/idls/echo/echo-impl.adb
+testsuite/idls/echo/echo-impl.ads
+testsuite/idls/echo/echo.idl
+testsuite/idls/echo/server.adb
+testsuite/idls/expansion01/expansion.idl
+testsuite/idls/expansion02/expansion.idl
+testsuite/idls/expansion03/expansion.idl
+testsuite/idls/forward01/forward.idl
+testsuite/idls/forward02/forward.idl
+testsuite/idls/forward03/forward.idl
+testsuite/idls/harness/Makefile
+testsuite/idls/harness/client.adb
+testsuite/idls/harness/client_common.adb
+testsuite/idls/harness/client_common.ads
+testsuite/idls/harness/harness-impl.adb
+testsuite/idls/harness/harness-impl.ads
+testsuite/idls/harness/harness.idl
+testsuite/idls/harness/server_common.adb
+testsuite/idls/harness/server_common.ads
+testsuite/idls/harness/server_no_tasking.adb
+testsuite/idls/harness/server_no_tasking2.adb
+testsuite/idls/harness/server_thread_per_request.adb
+testsuite/idls/harness/server_thread_per_session.adb
+testsuite/idls/harness/server_thread_pool.adb
+testsuite/idls/harness/server_thread_pool_hahs.adb
+testsuite/idls/harness/server_thread_pool_lf.adb
+testsuite/idls/header-sort
+testsuite/idls/iac-idl
+testsuite/idls/iac-types
+testsuite/idls/iac001/test.out
+testsuite/idls/iac001/tin.idl
+testsuite/idls/iac002/tin.idl
+testsuite/idls/iac003/test.out
+testsuite/idls/iac003/tin.idl
+testsuite/idls/iac004/test.out
+testsuite/idls/iac004/tin.idl
+testsuite/idls/iac005/t.idl
+testsuite/idls/iac005/test.out
+testsuite/idls/iac005/tin.idl
+testsuite/idls/iac006/test.out
+testsuite/idls/iac006/tin.idl
+testsuite/idls/iac007/tin.idl
+testsuite/idls/idl02030/test.out
+testsuite/idls/idl02030/tin.idl
+testsuite/idls/idl02031/test.out
+testsuite/idls/idl02031/tin.idl
+testsuite/idls/idl02034/test.out
+testsuite/idls/idl02034/tin.idl
+testsuite/idls/idl07040/test.out
+testsuite/idls/idl07040/tin.idl
+testsuite/idls/idl07051/test.out
+testsuite/idls/idl07051/tin.idl
+testsuite/idls/idl07052/test.out
+testsuite/idls/idl07052/tin.idl
+testsuite/idls/idl07053/test.out
+testsuite/idls/idl07053/tin.idl
+testsuite/idls/idl15001/test.out
+testsuite/idls/idl15001/tin.idl
+testsuite/idls/idl15011/test.out
+testsuite/idls/idl15011/tin.idl
+testsuite/idls/idl15012/test.out
+testsuite/idls/idl15012/tin.idl
+testsuite/idls/idl15021/test.out
+testsuite/idls/idl15021/tin.idl
+testsuite/idls/idl15022/test.out
+testsuite/idls/idl15022/tin.idl
+testsuite/idls/idl15023/test.out
+testsuite/idls/idl15023/tin.idl
+testsuite/idls/idl15024/test.out
+testsuite/idls/idl15024/tin.idl
+testsuite/idls/idl15025/test.out
+testsuite/idls/idl15025/tin.idl
+testsuite/idls/idl15031/test.out
+testsuite/idls/idl15031/tin.idl
+testsuite/idls/idl15032/test.out
+testsuite/idls/idl15032/tin.idl
+testsuite/idls/idl15033/test.out
+testsuite/idls/idl15033/tin.idl
+testsuite/idls/idl15034/test.out
+testsuite/idls/idl15034/tin.idl
+testsuite/idls/idlac000/tin.idl
+testsuite/idls/idlac001/tin.idl
+testsuite/idls/idlac002/tin.idl
+testsuite/idls/idlac003/tin.idl
+testsuite/idls/idlac004/tin.idl
+testsuite/idls/import001/int1.idl
+testsuite/idls/import001/int2.idl
+testsuite/idls/import001/int3.idl
+testsuite/idls/inherit001/tin.idl
+testsuite/idls/inherit002/tin.idl
+testsuite/idls/inherit003/tin.idl
+testsuite/idls/inherit004/tin.idl
+testsuite/idls/inherit005/tin.idl
+testsuite/idls/ir001/tin.idl
+testsuite/idls/list_types.sh
+testsuite/idls/local/local1.idl
+testsuite/idls/local/local2.idl
+testsuite/idls/local/local3.idl
+testsuite/idls/local/local4.idl
+testsuite/idls/local/local5.idl
+testsuite/idls/local001/tin.idl
+testsuite/idls/local002/tin.idl
+testsuite/idls/local003/tin.idl
+testsuite/idls/max_values/tin.idl
+testsuite/idls/parse_file.sh
+testsuite/idls/pp-idl
+testsuite/idls/reserved_words/tin.idl
+testsuite/idls/run-test.sh
+testsuite/idls/sequences01/test15.idl
+testsuite/idls/test001/test.out
+testsuite/idls/test001/tin.idl
+testsuite/idls/test002/test.out
+testsuite/idls/test002/tin.idl
+testsuite/idls/test003/test.out
+testsuite/idls/test003/tin.idl
+testsuite/idls/test004/test.out
+testsuite/idls/test004/tin.idl
+testsuite/idls/test005/test.out
+testsuite/idls/test005/tin.idl
+testsuite/idls/test006/test.out
+testsuite/idls/test006/tin.idl
+testsuite/idls/test007/test.out
+testsuite/idls/test007/tin.idl
+testsuite/idls/test008/test.out
+testsuite/idls/test008/tin.idl
+testsuite/idls/test009/test.out
+testsuite/idls/test009/tin.idl
+testsuite/idls/test010/test.out
+testsuite/idls/test010/tin.idl
+testsuite/idls/test011/test.out
+testsuite/idls/test011/tin.idl
+testsuite/idls/test012/test.out
+testsuite/idls/test012/tin.idl
+testsuite/idls/test013/test.out
+testsuite/idls/test013/tin.idl
+testsuite/idls/test014/test.out
+testsuite/idls/test014/tin.idl
+testsuite/idls/test015/test.out
+testsuite/idls/test015/tin.idl
+testsuite/idls/test016/test.out
+testsuite/idls/test016/tin.idl
+testsuite/idls/test017/test.out
+testsuite/idls/test017/tin.idl
+testsuite/idls/test018/test.out
+testsuite/idls/test018/tin.idl
+testsuite/idls/test019/test.out
+testsuite/idls/test019/tin.idl
+testsuite/idls/test020/test.out
+testsuite/idls/test020/tin.idl
+testsuite/idls/test021/test.out
+testsuite/idls/test021/tin.idl
+testsuite/idls/test022/test.out
+testsuite/idls/test022/tin.idl
+testsuite/idls/test023/test.out
+testsuite/idls/test023/tin.idl
+testsuite/idls/test024/test.out
+testsuite/idls/test024/tin.idl
+testsuite/idls/test025/test.out
+testsuite/idls/test025/tin.idl
+testsuite/idls/test026/test.out
+testsuite/idls/test026/tin.idl
+testsuite/idls/test027/test.out
+testsuite/idls/test027/tin.idl
+testsuite/idls/test028/test.out
+testsuite/idls/test028/tin.idl
+testsuite/idls/test029/test.out
+testsuite/idls/test029/tin.idl
+testsuite/idls/test030/test.out
+testsuite/idls/test030/tin.idl
+testsuite/idls/test031/test.out
+testsuite/idls/test031/tin.idl
+testsuite/idls/test032/test.out
+testsuite/idls/test032/tin.idl
+testsuite/idls/test033/test.out
+testsuite/idls/test033/tin.idl
+testsuite/idls/test034/test.out
+testsuite/idls/test034/tin.idl
+testsuite/idls/test035/test.out
+testsuite/idls/test035/tin.idl
+testsuite/idls/test036/test.out
+testsuite/idls/test036/tin.idl
+testsuite/idls/test037/test.out
+testsuite/idls/test037/tin.idl
+testsuite/idls/test038/test.out
+testsuite/idls/test038/tin.idl
+testsuite/idls/test039/test.out
+testsuite/idls/test039/tin.idl
+testsuite/idls/test040/test.out
+testsuite/idls/test040/tin.idl
+testsuite/idls/test041/test.out
+testsuite/idls/test041/tin.idl
+testsuite/idls/test042/test.out
+testsuite/idls/test042/tin.idl
+testsuite/idls/test043/test.out
+testsuite/idls/test043/tin.idl
+testsuite/idls/test044/test.out
+testsuite/idls/test044/tin.idl
+testsuite/idls/test045/test.out
+testsuite/idls/test045/tin.idl
+testsuite/idls/test046/test.out
+testsuite/idls/test046/tin.idl
+testsuite/idls/test047/test.out
+testsuite/idls/test047/tin.idl
+testsuite/idls/test048/test.out
+testsuite/idls/test048/tin.idl
+testsuite/idls/test049/test.out
+testsuite/idls/test049/tin.idl
+testsuite/idls/test050/test.out
+testsuite/idls/test050/tin.idl
+testsuite/idls/test051/test.out
+testsuite/idls/test051/tin.idl
+testsuite/idls/test052/test.out
+testsuite/idls/test052/tin.idl
+testsuite/idls/test053/test.out
+testsuite/idls/test053/tin.idl
+testsuite/idls/test054/test.out
+testsuite/idls/test054/tin.idl
+testsuite/idls/test055/test.out
+testsuite/idls/test055/tin.idl
+testsuite/idls/test_errors.sh
+testsuite/idls/types001/test.out
+testsuite/idls/types001/tin.idl
+testsuite/idls/types002/test.out
+testsuite/idls/types002/tin.idl
+testsuite/idls/types003/test.out
+testsuite/idls/types003/tin.idl
+testsuite/idls/types004/test.out
+testsuite/idls/types004/tin.idl
+testsuite/idls/types005/test.out
+testsuite/idls/types005/tin.idl
+testsuite/idls/types006/test.out
+testsuite/idls/types006/tin.idl
+testsuite/idls/types007/test.out
+testsuite/idls/types007/tin.idl
+testsuite/idls/types008/test.out
+testsuite/idls/types008/tin.idl
+testsuite/idls/types009/test.out
+testsuite/idls/types009/tin.idl
+testsuite/idls/types010/test.out
+testsuite/idls/types010/tin.idl
+testsuite/idls/types011/test.out
+testsuite/idls/types011/tin.idl
+testsuite/idls/types012/test.out
+testsuite/idls/types012/tin.idl
+testsuite/idls/types013/test.out
+testsuite/idls/types013/tin.idl
+testsuite/idls/types014/tan.idl
+testsuite/idls/types014/test.out
+testsuite/idls/types014/tin.idl
+testsuite/idls/va_f01/test.out
+testsuite/idls/va_f01/tin.idl
+testsuite/idls/va_f02/test.out
+testsuite/idls/va_f02/tin.idl
+testsuite/idls/va_t01/test.out
+testsuite/idls/va_t01/tin.idl
+testsuite/idls/va_t02/test.out
+testsuite/idls/va_t02/tin.idl
+testsuite/idls/va_t03/test.out
+testsuite/idls/va_t03/tin.idl
+testsuite/idls/va_t04/test.out
+testsuite/idls/va_t04/tin.idl
+testsuite/idls/vb_b01/test.out
+testsuite/idls/vb_b01/tin.idl
+testsuite/idls/vb_d01/test.out
+testsuite/idls/vb_d01/tin.idl
+testsuite/idls/vb_d02/test.out
+testsuite/idls/vb_d02/tin.idl
+testsuite/idls/vb_d03/test.out
+testsuite/idls/vb_d03/tin.idl
+testsuite/idls/vb_d04/test.out
+testsuite/idls/vb_d04/tin.idl
+testsuite/idls/vb_d05/test.out
+testsuite/idls/vb_d05/tin.idl
+testsuite/idls/vb_e01/test.out
+testsuite/idls/vb_e01/tin.idl
+testsuite/idls/vb_p01/test.out
+testsuite/idls/vb_p01/tin.idl
+testsuite/idls/vb_p02/test.out
+testsuite/idls/vb_p02/tin.idl
+testsuite/idls/vb_p03/test.out
+testsuite/idls/vb_p03/tin.idl
+testsuite/idls/vt_b01/test.out
+testsuite/idls/vt_b01/tin.idl
+testsuite/idls/vt_e01/test.out
+testsuite/idls/vt_e01/tin.idl
+testsuite/idls/vt_i01/test.out
+testsuite/idls/vt_i01/tin.idl
+testsuite/idls/vt_m01/test.out
+testsuite/idls/vt_m01/tin.idl
+testsuite/idls/vt_m02/test.out
+testsuite/idls/vt_m02/tin.idl
+testsuite/idls/vt_o01/test.out
+testsuite/idls/vt_o01/tin.idl
+testsuite/idls/vt_p01/test.out
+testsuite/idls/vt_p01/tin.idl
+testsuite/idls/vti_avb01/test.out
+testsuite/idls/vti_avb01/tin.idl
+testsuite/idls/vti_avb02/test.out
+testsuite/idls/vti_avb02/tin.idl
+testsuite/idls/vti_si01/test.out
+testsuite/idls/vti_si01/tin.idl
+testsuite/idls/vti_si02/test.out
+testsuite/idls/vti_si02/tin.idl
+testsuite/idls/vti_si03/test.out
+testsuite/idls/vti_si03/tin.idl
+testsuite/idls/vti_vb01/test.out
+testsuite/idls/vti_vb01/tin.idl
+testsuite/scenarios/corba-all_exceptions.conf
+testsuite/scenarios/corba-benchs.conf
+testsuite/scenarios/corba-code_sets.conf
+testsuite/scenarios/corba-domainmanager.conf
+testsuite/scenarios/corba-harness.conf
+testsuite/scenarios/corba-interop.conf
+testsuite/scenarios/corba-local.conf
+testsuite/scenarios/corba-location_forwarding.conf
+testsuite/scenarios/corba-object.conf
+testsuite/scenarios/corba-orb_init.conf
+testsuite/scenarios/corba-performance.conf
+testsuite/scenarios/corba-portableinterceptor.conf
+testsuite/scenarios/corba-portableserver.conf
+testsuite/scenarios/corba-rtcorba-rtcurrent.conf
+testsuite/scenarios/corba-rtcorba-rtorb.conf
+testsuite/scenarios/corba-rtcorba-rtpoa.conf
+testsuite/scenarios/corba-shutdown.conf
+testsuite/scenarios/core-chained_lists.conf
+testsuite/scenarios/core-dynamic_dict.conf
+testsuite/scenarios/core-fixed_point.conf
+testsuite/scenarios/core-initialization.conf
+testsuite/scenarios/core-obj_adapters.conf
+testsuite/scenarios/core-poa.conf
+testsuite/scenarios/core-random.conf
+testsuite/scenarios/core-sync_policies.conf
+testsuite/scenarios/core-tasking.conf
+testsuite/scenarios/core-uri_encoding.conf
+testsuite/scenarios/cos-ir.conf
+testsuite/scenarios/cos-naming.conf
+testsuite/scenarios/cos-time.conf
+testsuite/scenarios/examples-corba-all_functions.conf
+testsuite/scenarios/examples-corba-all_types.conf
+testsuite/scenarios/examples-corba-echo.conf
+testsuite/scenarios/examples-corba-random.conf
+testsuite/scenarios/examples-corba-rtcorba-client_propagated.conf
+testsuite/scenarios/examples-corba-rtcorba-dhb.conf
+testsuite/scenarios/examples-corba-rtcorba-rtcosscheduling.conf
+testsuite/scenarios/examples-corba-rtcorba-server_declared.conf
+testsuite/scenarios/examples-corba-secure_echo.conf
+testsuite/scenarios/examples-corba-send.conf
+testsuite/scenarios/examples-moma.conf
+testsuite/scenarios/examples-polyorb.conf
+testsuite/scenarios/polyorb_conf/broken_codesets.conf
+testsuite/scenarios/polyorb_conf/code_sets_000_client.conf
+testsuite/scenarios/polyorb_conf/code_sets_000_server.conf
+testsuite/scenarios/polyorb_conf/giop.conf
+testsuite/scenarios/polyorb_conf/giop_1_0.conf
+testsuite/scenarios/polyorb_conf/giop_1_1.conf
+testsuite/scenarios/polyorb_conf/giop_1_2.conf
+testsuite/scenarios/polyorb_conf/miop.conf
+testsuite/scenarios/polyorb_conf/performance.conf
+testsuite/scenarios/polyorb_conf/soap.conf
+testsuite/scenarios/polyorb_conf/ssliop.conf
+testsuite/ssl-cert.conf
+testsuite/utils/Makefile.local
+testsuite/utils/local.gpr
+testsuite/utils/test_driver.adb
+testsuite/utils/test_suite-output-file.adb
+testsuite/utils/test_suite-output-file.ads
+testsuite/utils/test_suite-output-text.adb
+testsuite/utils/test_suite-output-text.ads
+testsuite/utils/test_suite-output.adb
+testsuite/utils/test_suite-output.ads
+testsuite/utils/test_suite-run.adb
+testsuite/utils/test_suite-run.ads
+testsuite/utils/test_suite-scenarios.adb
+testsuite/utils/test_suite-scenarios.ads
+testsuite/utils/test_suite-test_case-client_server.adb
+testsuite/utils/test_suite-test_case-client_server.ads
+testsuite/utils/test_suite-test_case-local.adb
+testsuite/utils/test_suite-test_case-local.ads
+testsuite/utils/test_suite-test_case-parser.adb
+testsuite/utils/test_suite-test_case-parser.ads
+testsuite/utils/test_suite-test_case.adb
+testsuite/utils/test_suite-test_case.ads
+testsuite/utils/test_suite.ads
 tools/README
-tools/po_catref/Makefile.am
-tools/po_catref/Makefile.in
 tools/po_catref/common.adb
 tools/po_catref/common.ads
 tools/po_catref/output.adb
@@ -2062,13 +2797,9 @@ tools/po_catref/polyorb-giop_p-tagged_co
 tools/po_catref/polyorb-giop_p-tagged_components-print.ads
 tools/po_catref/polyorb-giop_p-tagged_components-ssl_sec_trans-print.adb
 tools/po_catref/polyorb-giop_p-tagged_components-ssl_sec_trans-print.ads
-tools/po_cos_naming/Makefile.am
-tools/po_cos_naming/Makefile.in
 tools/po_cos_naming/ir_ab_names.adb
 tools/po_cos_naming/po_cos_naming.adb
 tools/po_cos_naming/po_cos_naming_shell.adb
-tools/po_createref/Makefile.am
-tools/po_createref/Makefile.in
 tools/po_createref/po_createref.adb
 tools/po_createref/po_createref_parse_cmd.adb
 tools/po_createref/po_createref_parse_cmd.ads
@@ -2090,12 +2821,6 @@ tools/po_createref/polyorb-giop_p-tagged
 tools/po_createref/polyorb-giop_p-tagged_components-policies-create.ads
 tools/po_createref/polyorb-giop_p-tagged_components-ssl_sec_trans-create.adb
 tools/po_createref/polyorb-giop_p-tagged_components-ssl_sec_trans-create.ads
-tools/po_dumpir/Makefile.am
-tools/po_dumpir/Makefile.in
 tools/po_dumpir/po_dumpir.adb
-tools/po_ir/Makefile.am
-tools/po_ir/Makefile.in
 tools/po_ir/po_ir.adb
-tools/po_names/Makefile.am
-tools/po_names/Makefile.in
 tools/po_names/po_names.adb
============================================================
--- Makefile.common.project.in	4738780018c95021dad16427b13b8127cebbc70e
+++ Makefile.common.project.in	dde27076cdb9901656cd8e30d3e36d235c2d8bef
@@ -1,5 +1,5 @@
 # Common Makefile fragments for all PolyORB subsystems
-# $Id: Makefile.common.project.in 124905 2008-05-21 12:10:30Z quinot $
+# $Id: Makefile.common.project.in 141119 2009-03-11 12:59:56Z hugues $

 #
 # PolyORB's libraries
@@ -31,7 +31,7 @@ web_common_lib=$(top_builddir)/src/web_c
 # PolyORB's libraries -- NEW (should replace above)???
 #

-#???Not used: aws_lib=-I$(top_builddir)/src/aws/libpolyorb-aws.a
+aws_lib=libpolyorb-aws.a

 corba_lib=libpolyorb-corba.a \
 	  libpolyorb-corba-rtcorba.a
============================================================
--- Makefile.in	e1c37fdf3e6f99a38f578f5905494c8ac2d64ee0
+++ Makefile.in	8df666ef7d6d0515da40559d747136ce77d9ff7c
@@ -24,6 +24,11 @@ default: all
 #
 # testsuite -- builds the examples and testsuite
 #
+# run_tests -- runs the testsuite (presumes polyorb and test_driver are already
+# built)
+#
+# all-and-test -- builds everything needed, then runs the testsuite
+#
 # src_corba.gpr -- target to build src/corba (and similarly for all the *.gpr
 # files in the projects subdirectory). That is, there is a ".PHONY" target with
 # the same name as each project file, sans directory name.
@@ -82,7 +87,7 @@ EXTRA_GNATMAKE_FLAGS    = @EXTRA_GNATMAK
 # EXTRA_GNATMAKE_FLAGS are user-provided, empty by default (typically
 # used to specify a non-default --RTS switch).

-BASE_GNATMAKE_FLAGS	  := ${ADAFLAGS} ${PARALLEL_GNATMAKE_FLAGS} ${EXTRA_GNATMAKE_FLAGS}
+BASE_GNATMAKE_FLAGS	  :=--create-missing-dirs ${ADAFLAGS} ${PARALLEL_GNATMAKE_FLAGS} ${EXTRA_GNATMAKE_FLAGS}
 # Gnatmake flags for units built from project files

 COMP_TOOLS_GNATMAKE_FLAGS := @STYLE_SWITCH@ -gnatwa@WARNINGS_MODE@ -gnat05 -gnatec=${top_builddir}/compilers/config.adc ${BASE_GNATMAKE_FLAGS}
@@ -219,7 +224,8 @@ build-po_gnatdist \
 build-po_gnatdist \
 \
 : build-%:
-	cd compilers/${compiler_dir} && \
+	mkdir -p compilers/${compiler_dir} && \
+	  cd compilers/${compiler_dir} && \
 	  ${GNATMAKE} -m \
 	   $* \
 	   ${COMP_TOOLS_GNATMAKE_FLAGS} \
@@ -291,6 +297,7 @@ src/soap/polyorb-http_methods.adb src/so
 # Note that the second gen_http_body command below overwrites perfect_hash.adb
 # with different content.
 src/soap/polyorb-http_methods.adb src/soap/polyorb-http_headers.adb: ${GEN_HTTP_BODY} compilers/gnatprfh/gnatprfh ${top_srcdir}/src/soap/polyorb-http_methods.ads ${top_srcdir}/src/soap/polyorb-http_headers.ads
+	mkdir -p src/soap
 	cd src/soap && ${GEN_HTTP_BODY} ${GNATPRFH} ${top_srcdir}/src/soap Method
 	cd src/soap && ${GEN_HTTP_BODY} ${GNATPRFH} ${top_srcdir}/src/soap Header

@@ -301,7 +308,7 @@ build-gen_codeset:
 GEN_CODESET = src/giop/gen_codeset

 build-gen_codeset:
-	cd src/giop && \
+	mkdir -p src/giop && cd src/giop && \
 	  ${GNATMAKE} gen_codeset -I${top_srcdir}/src/giop ${COMP_TOOLS_GNATMAKE_FLAGS}

 src/giop/polyorb-giop_p-code_sets-data.ads-stamp: ${top_srcdir}/src/giop/cs_registry1.2h ${GEN_CODESET}
@@ -374,6 +381,7 @@ cos/ir/orb.idl-stamp: ${top_srcdir}/idls
 #???What is the following all about?  Why does it "chmod" and "rm"?
 cos/ir/orb.idl-stamp: ${top_srcdir}/idls/CORBA_IDL/orb.idl ${top_srcdir}/idls/CORBA_IDL/CORBA_InterfaceRepository.idl ${top_srcdir}/idls/CORBA_IDL/CORBA_TypeCode.idl ${IDLAC_bin} ${IDLAC_WRAPPER}
 	@chmod a+x ${IDLAC_WRAPPER}
+	mkdir -p ${dir $@}
 	cd ${dir $@} && ${idlac} $<
 	${RM} cos/ir/corba-repository_root.ads
 	touch $@
@@ -436,40 +444,8 @@ do-gnatmake: ${POLYORB_LIBS} ${SERVICE_L
 #???lib/polyorb.ali is missing the first time around.
 # Because we can't share library directories!

-# The mkdir.flag targets are used to create the necessary directories. There is
-# one ALI directory for each project file (for example, ali/src_corba is the
-# ALI directory for projects/src_corba.gpr). There is also a single library
-# directory (lib) shared by all project files.
-# Note: This would be unnecessary if we used the -p switch of gnatmake,
-# but we want this to work with older versions of gnatmake that do not
-# support -p (this option was introduced in GNAT 6.0).
-# WAG: 5.04
-ALI_FLAGS := ${patsubst %.gpr,ali/%/mkdir.flag,${PROJECT_FILES}}
-MKDIR_FLAGS := ${ALI_FLAGS} lib/mkdir.flag
-
-${MKDIR_FLAGS}: %/mkdir.flag:
-	mkdir -p $*
-	touch $@
-
-# Note that each foo.gpr target depends on ALL .../mkdir.flag targets,
-# because gnatmake needs to look at the ALI directories for imported
-# projects.
-
-PRJ_GNATMAKE_FLAGS :=
-# This variable is used to pass additional per-project command line switches
-# to gnatmake.
-
-.PHONY: ${PROJECT_FILES}
-${PROJECT_FILES}: %.gpr: \
-    ${MKDIR_FLAGS} \
-    perfect-hash \
-    polyorb-idl-stamps \
-    build-gen_codeset \
-    src/giop/polyorb-giop_p-code_sets-data.ads-stamp \
-    tools/po_catref/polyorb-giop_p-code_sets-description_data.ads-stamp
-	ADA_PROJECT_PATH="${top_builddir}/projects${PATH_SEP}${top_srcdir}/projects${PATH_SEP}$$ADA_PROJECT_PATH" \
-	  ${GNATMAKE_FOR_TARGET} -P $@ ${BASE_GNATMAKE_FLAGS} ${PRJ_GNATMAKE_FLAGS} ${GNATMAKE_FLAGS_FOR_TARGET}
-
+.PHONY: libpolyorb-aws.a
+libpolyorb-aws.a: src_aws.gpr
 .PHONY: libpolyorb-corba-cos-event-impl.a
 libpolyorb-corba-cos-event-impl.a: cos_event.gpr
 .PHONY: libpolyorb-corba-cos-ir-impl.a
@@ -577,6 +553,43 @@ ${C_OBJECTS}: %.o: ${top_srcdir}/%.c
 ${C_OBJECTS}: %.o: ${top_srcdir}/%.c
 	${CC_FOR_TARGET} -c -o $@ -I${top_builddir}/src ${CPPFLAGS} ${CFLAGS} ${CFLAGS_FOR_TARGET} $<

+### No additions to C_FILES / C_OBJECTS beyond this point
+
+# The mkdir.flag targets are used to create the necessary directories. There is
+# one ALI directory for each project file (for example, ali/src_corba is the
+# ALI directory for projects/src_corba.gpr). There is also a single library
+# directory (lib) shared by all project files.
+# Note: This would be unnecessary if we used the -p switch of gnatmake,
+# but we want this to work with older versions of gnatmake that do not
+# support -p (this option was introduced in GNAT 6.0).
+# WAG: 5.04
+ALI_MKDIR_FLAGS = ${patsubst %.gpr,ali/%/mkdir.flag,${PROJECT_FILES}}
+C_MKDIR_FLAGS   = ${patsubst %,%mkdir.flag,${dir ${C_OBJECTS}}}
+MKDIR_FLAGS     = ${ALI_MKDIR_FLAGS} ${C_MKDIR_FLAGS} lib/mkdir.flag
+
+${MKDIR_FLAGS}: %/mkdir.flag:
+	mkdir -p $*
+	touch $@
+
+# Note that each foo.gpr target depends on ALL .../mkdir.flag targets,
+# because gnatmake needs to look at the ALI directories for imported
+# projects.
+
+PRJ_GNATMAKE_FLAGS :=
+# This variable is used to pass additional per-project command line switches
+# to gnatmake.
+
+.PHONY: ${PROJECT_FILES}
+${PROJECT_FILES}: %.gpr: \
+    ${MKDIR_FLAGS} \
+    perfect-hash \
+    polyorb-idl-stamps \
+    build-gen_codeset \
+    src/giop/polyorb-giop_p-code_sets-data.ads-stamp \
+    tools/po_catref/polyorb-giop_p-code_sets-description_data.ads-stamp
+	ADA_PROJECT_PATH="${top_builddir}/projects${PATH_SEP}${top_srcdir}/projects${PATH_SEP}$$ADA_PROJECT_PATH" \
+	  ${GNATMAKE_FOR_TARGET} -P $@ ${BASE_GNATMAKE_FLAGS} ${PRJ_GNATMAKE_FLAGS} ${GNATMAKE_FLAGS_FOR_TARGET}
+
 ##########################
 # examples and testsuite #
 ##########################
@@ -717,6 +730,18 @@ build-test_driver:
 	ADA_PROJECT_PATH="${top_builddir}/projects${PATH_SEP}${top_srcdir}/projects${PATH_SEP}$$ADA_PROJECT_PATH" \
 	  ${GNATMAKE_FOR_TARGET} -P testsuite_utils.gpr ${BASE_GNATMAKE_FLAGS} ${PRJ_GNATMAKE_FLAGS} ${GNATMAKE_FLAGS_FOR_TARGET}

+.PHONY: run_tests
+run_tests:
+	cd testsuite && ./utils/test_driver -full ${top_srcdir}/testsuite/scenarios -output file -config ${top_srcdir}/testsuite -verbose
+
+# 'all' depends on either build-iac or build-idlac; we might as well build
+# both, here. We run_tests via recursive make, rather than having all-and-test
+# depend on run_tests, so it works for parallel make (run_tests should not
+# run concurrently with the other stuff).
+.PHONY: all-and-test
+all-and-test: all build-iac build-idlac examples testsuite
+	${MAKE} run_tests
+
 ################################################################

 # Rules for running idlac on .idl files
@@ -871,11 +896,11 @@ clean:
 clean:
 	${RM} -f ${all_idl_stamps} ./cos/ir/orb.idl-stamp # ???and more
 	${RM} -f ${idlac_output_files}
-	find . -name '*.ali' | xargs ${RM} -f
-	find . -name '*.o'   | xargs ${RM} -f
+	find . -name '*.ali' -o -name '*.o' | xargs ${RM} -f
 	${RM} -f lib/lib*.a
 	${RM} -f ${all_example_exes}
 	(cd compilers && ${RM} -f ${COMPILER_EXES})
+	${RM} -f ${MKDIR_FLAGS}
 	${RM} -f ${IAC_NODES_STAMPS}
 	${RM} -f ${IAC_NODES_SOURCES}
 	${RM} -f src/soap/polyorb-http_methods.adb src/soap/polyorb-http_headers.adb
@@ -896,7 +921,7 @@ distclean: clean
 	${RM} -f tools/po_names/po_names

 distclean: clean
-	${SHELL} support/cleanup-conf-files
+	${SHELL} ${top_srcdir}/support/cleanup-conf-files
 	${RM} -f config.*

 .SUFFIXES: .c .o
@@ -2327,6 +2352,7 @@ debug-makefile:
 	@echo MAKEFLAGS = ${MAKEFLAGS}
 	@echo GNATMAKE_FLAGS = ${GNATMAKE_FLAGS}
 	@echo MAKECMDGOALS = ${MAKECMDGOALS}
+	@echo MKDIR_FLAGS = ${MKDIR_FLAGS}
 	@echo polyorb_idl_stamps = ${polyorb_idl_stamps}
 	@echo all_idl_stamps = ${all_idl_stamps}
 	@echo POLYORB_LIBS = ${POLYORB_LIBS}
============================================================
--- NEWS	bd2d299dbfbe05abf3c9a3a3ce6e51f66c637397
+++ NEWS	6fc0fceeb50a100852553933104e5652218c6cba
@@ -21,10 +21,24 @@
 --                                                                          --
 ------------------------------------------------------------------------------

-* PolyORB 2.5
+* PolyORB 2.6
 =============

 This release contains the PolyORB generic middleware, and its CORBA
+and DSA instantiations. In addition to the 2.5 release, it includes:
+
+New features
+------------
+
+See the features-26 file.
+
+Bug fixes
+---------
+
+* PolyORB 2.5 (branched on 2008-11-03)
+======================================
+
+This release contains the PolyORB generic middleware, and its CORBA
 and DSA instantiations. In addition to the 2.4 release, it includes:

 New features
@@ -35,6 +49,20 @@ Bug fixes
 Bug fixes
 ---------

+When building a single partition with non-local termination, po_gnatdist
+would systematically mark the partition as termination initiator, possibly
+causing a deadlock when terminating the application. (Building all partitions
+at the same time, which is the default, worked fine.) (HA30-008)
+
+Calling a method that has IN or INOUT arguments following an OUT argument
+locally on a partition (i.e. without involving any actual network
+communication) would cause an incorrect matching of formal and actual
+parameters, causing incorrect values to be passed to the servant, or
+a crash if parameters were of incompatible types. (HB25-017)
+
+po_gnatdist crashed when building only the main partition in an application
+with an Ada starter. (HB10-009)
+
 IAC was generating incorrect Ada code for "default:" in a union. (H930-022)

 Several issues have been fixed in the circuitry handling TypeCodes and Anys
@@ -74,8 +102,8 @@ integer expressions are now allowed. (H7
 IAC and IDLAC required array sizes to be literals or constants. Arbitrary
 integer expressions are now allowed. (H723-024).

-* PolyORB 2.4
-=============
+* PolyORB 2.4 (branched on 2008-05-06)
+======================================

 This release contains the PolyORB generic middleware, and its CORBA
 and DSA instantiations. In addition to the 2.3 release, it includes:
============================================================
--- compilers/gnatdist/xe_back-polyorb.adb	28ed8faf105a2f76b079afdcb6c760eeeeb179df
+++ compilers/gnatdist/xe_back-polyorb.adb	81f191f0ef2a4fbf491be8be55bdd9d2328b36bd
@@ -708,11 +708,6 @@ package body XE_Back.PolyORB is
       Write_Indentation (+1);
       Write_Line ("Shutdown  => null));");
       Decrement_Indentation;
-
-      --  Reset the configuration table so that next partition elaboration
-      --  is configurated properly.
-
-      Reset_Conf;
    end Generate_Parameters_Source;

    ----------------------------------
@@ -1100,32 +1095,35 @@ package body XE_Back.PolyORB is
       Current : Partition_Type;
       Is_Initiator_Set : Boolean := False;
    begin
-
       Prepare_Directories;
-
       Generate_All_Stubs_And_Skels;

       --  For each partition, generate the elaboration, main, executable
       --  and stamp files.

       for J in Partitions.First + 1 .. Partitions.Last loop
-         if Partitions.Table (J).To_Build then
-            Current := Partitions.Table (J);
+         Current := Partitions.Table (J);

-            if not Is_Initiator_Set
-              and then Current.Tasking /= No_Tasking
-              and then Current.Termination /= Local_Termination
-            then
-               Set_Str_To_Name_Buffer ("true");
-               Set_Conf (PE_Termination_Initiator, Name_Find);
-               Is_Initiator_Set := True;
+         --  Reset the configuration table to forget all options set for
+         --  previous partitions.

-               --  Because configuration is reset after generating each
-               --  elaboration file, this conf parameter will only affect
-               --  current partition.
+         Reset_Conf;

-            end if;
+         --  Set termination initiator option on first partition with non local
+         --  termination. Note that this must be done outside of the To_Build
+         --  test. Otherwise, when building two partitions in separate
+         --  gnatdist runs, both may end up being set up as initiators.

+         if not Is_Initiator_Set
+           and then Current.Tasking /= No_Tasking
+           and then Current.Termination /= Local_Termination
+         then
+            Set_Str_To_Name_Buffer ("true");
+            Set_Conf (PE_Termination_Initiator, Name_Find);
+            Is_Initiator_Set := True;
+         end if;
+
+         if Partitions.Table (J).To_Build then
             if Current.To_Build and then Current.Passive /= BTrue then
                if Rebuild_Partition (J) then
                   if not Quiet_Mode then
============================================================
--- compilers/gnatdist/xe_back.adb	54c1aa0e7f14c90365024d0daa2220f59b4b1a57
+++ compilers/gnatdist/xe_back.adb	a4bff0627c887d0f1a1170a3be80ca49235a375c
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 1995-2008, Free Software Foundation, Inc.          --
+--         Copyright (C) 1995-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -522,8 +522,8 @@ package body XE_Back is
             Write_Name (Get_Rsh_Options);
             Write_Char (' ');
             Write_Char (Ext_Quote);
-
             Write_Str (Get_Env_Vars (P, Names_Only => False));
+            Write_Char (' ');
          end if;

          --  Executable file name must be quoted because it may contain
@@ -544,7 +544,7 @@ package body XE_Back is
          if P /= Main_Partition then
             Write_Str  (" ");
             Write_Name (Get_Detach_Flag (Backend));
-            Write_Str  (" & ");
+            Write_Str  (" &");
             Write_Char (Ext_Quote);
             Write_Str  (" < /dev/null > /dev/null 2>&1");
          end if;
@@ -812,6 +812,13 @@ package body XE_Back is
          Add_Str_To_Name_Buffer (" ");
          V := Env_Vars.Table (V).Next_Env_Var;
       end loop;
+
+      --  Remove trailing space, if the string is not empty
+
+      if Name_Len > 0 then
+         Name_Len := Name_Len - 1;
+      end if;
+
       return Name_Buffer (1 .. Name_Len);
    end Get_Env_Vars;

============================================================
--- compilers/gnatdist/xe_main.adb	8649c0dd90b9ba697b6e3304eca4acae51205b56
+++ compilers/gnatdist/xe_main.adb	98a6d62cc9dc99e21bfad88c15d4112f1ed31d11
@@ -148,9 +148,9 @@ begin
       end loop;
    end if;

-   --  Check consistency once we know which partitions to build. Some
-   --  parts of configuration may be missing because we partially
-   --  build the distributed system.
+   --  Check consistency once we know which partitions to build. Some parts of
+   --  configuration may be missing because we partially build the distributed
+   --  system.

    XE_Back.Initialize (Backend);
    Analyze;
============================================================
--- compilers/gnatdist/xe_sem.adb	578876a4bdbdcfd4efecad688e068f8e64e33279
+++ compilers/gnatdist/xe_sem.adb	d19fd0a8dfd7f5114830f15f8eb4d23e47badfaa
@@ -53,8 +53,8 @@ package body XE_Sem is
    --  default channel attribute.

    procedure Apply_Default_Partition_Attributes (Partition : Partition_Id);
-   --  When a partition attribute has not been assigned, apply the
-   --  default partition attribute.
+   --  When a partition attribute has not been assigned, apply the default
+   --  value for the attribute.

    procedure Assign_Unit_Tasking (ALI : ALI_Id);
    --  Assign PCS tasking for a RCI unit.
@@ -286,9 +286,14 @@ package body XE_Sem is
       end if;

       for J in Partitions.First + 1 .. Partitions.Last loop
-         if Partitions.Table (J).To_Build then
-            Apply_Default_Partition_Attributes (J);
-         end if;
+
+         --  Apply default values for unspecified attributes. Note that this
+         --  must be done even for partitions that are not built, since their
+         --  attributes might be referenced by other partitions, e.g. when
+         --  generating an Ada starter procedure (which needs the partition's
+         --  executable file name).
+
+         Apply_Default_Partition_Attributes (J);
       end loop;

       for J in Channels.First + 1 .. Channels.Last loop
============================================================
--- configure.ac	3a320ac7fc8235be957a26ed01f31c47c2522d6d
+++ configure.ac	6b898edb0ce723094ea72b5f5e2027497f2f56d8
@@ -1,6 +1,6 @@
-# $Id: configure.ac 127813 2008-08-15 11:43:47Z quinot $
+# $Id: configure.ac 132303 2008-11-13 01:53:23Z duff $

-define(POLYORB_RELEASE, [2.5.0w])
+define(POLYORB_RELEASE, [2.6.0w])

 AC_PREREQ(2.57)
 AC_INIT(PolyORB, pkg_version(POLYORB_RELEASE), polyorb-bugs@lists.adacore.com)
@@ -309,7 +309,7 @@ AS_HELP_STRING([--with-corba-services=x]
   newwithval=`echo ${withval} | tr "[A-Z]" "[a-z]"`
   for S in ${newwithval}
   do
-     if test -f ${srcdir}/cos/${S}/Makefile.am
+     if test -d ${srcdir}/cos/${S}
      then
         SERVICE_LIST="${SERVICE_LIST}${S} "
      else
@@ -810,15 +810,10 @@ AC_OUTPUT(FILTER_OUTPUT_FILES(OUTPUT_FIL
 AC_OUTPUT(FILTER_OUTPUT_FILES(OUTPUT_FILTER,[
 	Makefile
 	Makefile.common.project
-	compilers/Makefile
 	compilers/common_files/platform.ads
 	compilers/config.adc
 	compilers/gnatdist/xe_defs-defaults.ads
-	compilers/gnatprfh/Makefile
 	compilers/gnatprfh/gnatprfh.adb
-	compilers/iac/Makefile
-	compilers/idlac/Makefile
-	compilers/idlac/testsuite/Makefile
 	docs/Makefile
 	docs/polyorb_version.texi
 	projects/config.gpr
@@ -826,150 +821,23 @@ AC_OUTPUT(FILTER_OUTPUT_FILES(OUTPUT_FIL
 	projects/src_setup.gpr
 	projects-distrib/polyorb.gpr
 	projects-distrib/polyorb/src_setup.gpr
-	src/Makefile
 	src/config.adc
-	src/corba/Makefile
-	src/corba/dynamicany/Makefile
-	src/corba/iop/Makefile
-	src/corba/messaging/Makefile
-	src/corba/portableinterceptor/Makefile
-	src/corba/rtcorba/Makefile
-	src/corba/security/Makefile
-	src/corba/security/gssup/Makefile
-	src/dsa/Makefile
-	src/giop/Makefile
-	src/giop/iiop/Makefile
-	src/giop/iiop/security/Makefile
-	src/giop/iiop/security/tls/Makefile
-	src/giop/iiop/ssliop/Makefile
-	src/giop/diop/Makefile
-	src/giop/miop/Makefile
-	src/moma/Makefile
-	src/web_common/Makefile
-	src/aws/Makefile
-	src/security/Makefile
-	src/security/gssup/Makefile
-	src/security/tls/Makefile
-	src/security/x509/Makefile
-	src/setup/Makefile
 	src/setup/polyorb-setup-base.adb
 	src/setup/polyorb-setup-client.adb
 	src/setup/polyorb-setup-server.adb
-	src/setup/security/Makefile
-	src/soap/Makefile
-	src/srp/Makefile
-	src/ssl/Makefile
 	src/polyorb-platform.ads
 	src/polyorb-platform-ssl_linker_options.ads
 	src/ravenscar.adc
 	src/ravenscar_compatible.adc
-	idls/Makefile
-	idls/CORBA_IDL/Makefile
-	idls/CORBA_PIDL/Makefile
-	idls/Interop/Makefile
-	idls/Misc/Makefile
-	idls/RTCORBA/Makefile
-	idls/cos/Makefile
-	idls/cos/event/Makefile
-	idls/cos/naming/Makefile
-	idls/cos/notification/Makefile
-	idls/cos/time/Makefile
 	contrib/idlac_wrapper/idlac_wrapper
-	cos/Makefile
-	cos/event/Makefile
-	cos/naming/Makefile
-	cos/notification/Makefile
-	cos/time/Makefile
-	cos/ir/Makefile
-	examples/Makefile
-	examples/corba/Makefile
-	examples/corba/all_types/Makefile
-	examples/corba/all_functions/Makefile
-	examples/corba/echo/Makefile
-	examples/corba/random/Makefile
-	examples/corba/rtcorba/Makefile
-	examples/corba/rtcorba/client_propagated/Makefile
-	examples/corba/rtcorba/dhb/Makefile
-	examples/corba/rtcorba/server_declared/Makefile
-	examples/corba/rtcorba/rtcosscheduling/Makefile
-	examples/corba/send/Makefile
-	examples/corba/secure_echo/Makefile
 	examples/corba/secure_echo/gssup.conf
 	examples/corba/secure_echo/gssup_example
 	examples/corba/secure_echo/tls.conf
 	examples/corba/secure_echo/tls_example
 	examples/corba/secure_echo/tls_gssup.conf
 	examples/corba/secure_echo/tls_gssup_example
-	examples/dsa/Makefile
-	examples/bbs/Makefile
-	examples/moma/Makefile
-	examples/aws/Makefile
-	examples/polyorb/Makefile
-	testsuite/Makefile
-	testsuite/corba/Makefile
-	testsuite/corba/all_exceptions/Makefile
-	testsuite/corba/benchs/Makefile
-	testsuite/corba/benchs/test000/Makefile
-	testsuite/corba/code_sets/Makefile
-	testsuite/corba/code_sets/test000/Makefile
-	testsuite/corba/cos/Makefile
-	testsuite/corba/cos/event/Makefile
-	testsuite/corba/cos/ir/Makefile
-	testsuite/corba/cos/naming/Makefile
-	testsuite/corba/cos/notification/Makefile
-	testsuite/corba/cos/time/Makefile
-	testsuite/corba/domainmanager/Makefile
-	testsuite/corba/domainmanager/test000/Makefile
-	testsuite/corba/harness/Makefile
-	testsuite/corba/local/Makefile
-	testsuite/corba/location_forwarding/Makefile
-	testsuite/corba/location_forwarding/test000/Makefile
-	testsuite/corba/location_forwarding/test001/Makefile
-	testsuite/corba/orb_init/Makefile
-	testsuite/corba/object/Makefile
-	testsuite/corba/object/test000/Makefile
-	testsuite/corba/portableinterceptor/Makefile
-	testsuite/corba/portableinterceptor/test000/Makefile
-	testsuite/corba/portableinterceptor/test001/Makefile
-	testsuite/corba/portableinterceptor/test002/Makefile
-	testsuite/corba/portableinterceptor/test003/Makefile
-	testsuite/corba/portableinterceptor/test004/Makefile
-	testsuite/corba/portableserver/Makefile
-	testsuite/corba/rtcorba/Makefile
-	testsuite/corba/rtcorba/rtcurrent/Makefile
-	testsuite/corba/rtcorba/rtorb/Makefile
-	testsuite/corba/rtcorba/rtpoa/Makefile
-	testsuite/corba/shutdown/Makefile
-	testsuite/core/Makefile
-	testsuite/core/any/Makefile
-	testsuite/core/chained_lists/Makefile
-	testsuite/core/dynamic_dict/Makefile
-	testsuite/core/fixed_point/Makefile
-	testsuite/core/initialization/Makefile
-	testsuite/core/naming/Makefile
-	testsuite/core/obj_adapters/Makefile
-	testsuite/core/poa/Makefile
-	testsuite/core/random/Makefile
-	testsuite/core/sync_policies/Makefile
-	testsuite/core/tasking/Makefile
-	testsuite/core/uri_encoding/Makefile
-	testsuite/acats/Makefile
-	testsuite/acats/CXE1001/Makefile
-	testsuite/acats/CXE2001/Makefile
-	testsuite/acats/CXE4001/Makefile
-	testsuite/acats/CXE4002/Makefile
-	testsuite/acats/CXE4005/Makefile
-	testsuite/acats/CXE4006/Makefile
-	testsuite/utils/Makefile
-	tools/Makefile
-	tools/po_catref/Makefile
 	tools/po_catref/po_catref_setup.adb
-	tools/po_cos_naming/Makefile
-	tools/po_createref/Makefile
 	tools/po_createref/po_createref_setup.adb
-	tools/po_dumpir/Makefile
-	tools/po_ir/Makefile
-	tools/po_names/Makefile
 	support/adacompiler
 	support/linker
 	polyorb-config
============================================================
--- docs/polyorb_ug.texi	0ff4d19914d1b17d183404a01a1f3bad942bef30
+++ docs/polyorb_ug.texi	69d0a7e50d0317cb3493de265250b0ab446e006d
@@ -55,7 +55,7 @@
 @c
 @c oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo

-@c $Id: polyorb_ug.texi 128976 2008-09-25 12:16:18Z quinot $
+@c $Id: polyorb_ug.texi 135863 2009-01-20 15:58:45Z hugues $

 @include svn.texi

@@ -89,7 +89,7 @@
 @title PolyORB User's Guide
 @include polyorb_version.texi
 @subtitle Version @value{POLYORB_VERSION}
-@svndate $Date: 2008-09-25 14:16:18 +0200 (Thu, 25 Sep 2008) $
+@svndate $Date: 2009-01-20 16:58:45 +0100 (Tue, 20 Jan 2009) $
 @subtitle @value{SVNDate}
 @author @value{AUTHORS1}
 @author @value{AUTHORS2}
@@ -117,7 +117,7 @@ @top PolyORB User's Guide
 @include polyorb_version.texi
 Version @value{POLYORB_VERSION}

-$Date: 2008-09-25 14:16:18 +0200 (Thu, 25 Sep 2008) $
+$Date: 2009-01-20 16:58:45 +0100 (Tue, 20 Jan 2009) $

 @value{AUTHORS1}
 @value{AUTHORS2}
@@ -5401,6 +5401,19 @@ @section Running a DSA application
 first value output for @code{POLYORB_DSA_NAME_SERVICE} before
 launching each DSA partition.

+Here is a small trace output that demonstrates the setup
+
+@smallexample
+
+polyorb/examples/dsa/echo% ../../../tools/po_cos_naming/po_cos_naming&
+polyorb/examples/dsa/echo% POLYORB_CORBA_NAME_SERVICE=''....''
+
+polyorb/examples/dsa/echo% export POLYORB_DSA_NAME_SERVICE=''...''
+polyorb/examples/dsa/echo% ./client
+The client has started!
+Thus spake my server upon me:Hi!
+@end smallexample
+
 @c -------------------------------------------------------------------
 @node MOMA
 @chapter MOMA
============================================================
--- examples/corba/all_functions/all_functions-impl.adb	108820c0c8668158652543b58ebbf97aa2dfb599
+++ examples/corba/all_functions/all_functions-impl.adb	c8f989d694c6997a5beeafbaa66aa619a18ab236
@@ -85,6 +85,16 @@ package body all_functions.Impl is
       null;
    end in_proc;

+   procedure out_in_proc
+     (Self : access Object;
+      a : out CORBA.Short;
+      b : CORBA.Long)
+   is
+      pragma Unreferenced (Self);
+   begin
+      a := CORBA.Short (b) + 1;
+   end out_in_proc;
+
    procedure out_proc
      (Self : access Object;
       a : out CORBA.Short;
@@ -153,11 +163,14 @@ package body all_functions.Impl is
       pragma Warnings (Off);
       pragma Unreferenced (Self);
       pragma Warnings (On);
+
+      Entry_B : constant CORBA.Short := B;
+      Entry_C : constant CORBA.Short := C;
    begin
-      a := 45;
-      b := 46;
-      c := 47;
-      d := 48;
+      a := 111;
+      b := Entry_C + 1;
+      c := Entry_B + 1;
+      d := 999;
    end out_inout_proc;

    procedure in_out_inout_proc
============================================================
--- examples/corba/all_functions/all_functions-impl.ads	4f51d43d02e60648b1661773621961d62759579c
+++ examples/corba/all_functions/all_functions-impl.ads	db771adf800f9c28c5ac4055f231a93bf10e51c6
@@ -62,6 +62,11 @@ package all_functions.Impl is
       b : out CORBA.Short;
       c : out CORBA.Short);

+   procedure out_in_proc
+     (Self : access Object;
+      a : out CORBA.Short;
+      b : CORBA.Long);
+
    procedure inout_proc
      (Self : access Object;
       a : in out CORBA.Short;
============================================================
--- examples/corba/all_functions/all_functions.idl	7ded2c4d1497b78126524606b0dd6d815e83638c
+++ examples/corba/all_functions/all_functions.idl	0561247f9f1bf3300f1dc894dc8a603fdceeea6e
@@ -14,6 +14,8 @@ interface all_functions {

   void out_proc(out short a, out short b, out short c) ;

+  void out_in_proc (out short a, in long b) ;
+
   void inout_proc(inout short a, inout short b) ;

   void in_out_proc(in short a, in short b, out short c, out short d) ;
============================================================
--- examples/corba/all_functions/client.adb	3c78071eaa1d16b97a1a5ff4ad1f5e2637a70680
+++ examples/corba/all_functions/client.adb	5f09eb04003b8a3b3edbf3963956a357cfe67092
@@ -16,12 +16,12 @@
 -- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public --
 -- License  for more details.  You should have received  a copy of the GNU  --
 -- General Public License distributed with PolyORB; see file COPYING. If    --
--- not, write to the Free Software Foundation, 59 Temple Place - Suite 330, --
--- Boston, MA 02111-1307, USA.                                              --
+-- not, write to the Free Software Foundation, 51 Franklin Street, Fifth    --
+-- Floor, Boston, MA 02111-1301, USA.                                       --
 --                                                                          --
 --                                                                          --
---                PolyORB is maintained by ACT Europe.                      --
---                    (email: sales@act-europe.fr)                          --
+--                  PolyORB is maintained by AdaCore                        --
+--                     (email: sales@adacore.com)                           --
 --                                                                          --
 ------------------------------------------------------------------------------

@@ -33,244 +33,22 @@ with all_functions; use all_functions;

 with all_functions; use all_functions;

-with PolyORB.Utils.Report;
-
 with PolyORB.Setup.Client;
 pragma Warnings (Off, PolyORB.Setup.Client);

-procedure Client is
+with Run_Tests;

-   use PolyORB.Utils.Report;
-
-   IOR : CORBA.String;
+procedure Client is
    MyObj : all_functions.Ref;
-   I, J, K, L, M : CORBA.Short;
-   Ok : Boolean;
-
 begin
    CORBA.ORB.Initialize ("ORB");

    if Ada.Command_Line.Argument_Count < 1 then
-      Ada.Text_IO.Put_Line ("usage : client <IOR_string_from_server>");
+      Ada.Text_IO.Put_Line ("Usage: client <IOR_string_from_server>");
       return;
    end if;

-   New_Test ("Different invocation modes");
-
-   --  transforms the Ada string into CORBA.String
-   IOR := CORBA.To_CORBA_String (Ada.Command_Line.Argument (1));
-
-   --  getting the CORBA.Object
-   CORBA.ORB.String_To_Object (IOR, MyObj);
-
-   --  checking if it worked
-   if all_functions.Is_Nil (MyObj) then
-      Ada.Text_IO.Put_Line ("main : cannot invoke on a nil reference");
-      return;
-   end if;
-
-   Output ("test not nil reference", not Is_Nil (MyObj));
-
---    Set_The_Attribute (MyObj, 24);
---    Output ("test attribute", Get_The_Attribute (MyObj) = 24);
-
---    Output ("test readonly attribute",
---      Get_The_Readonly_Attribute (MyObj) = 18);
-
-   begin
-      Ok := True;
-      void_proc (MyObj);
-   exception when others =>
-      Ok := False;
-   end;
-   Output ("test void procedure", Ok);
-
-   begin
-      in_proc (MyObj, 1, 2, 3);
-      Ok := True;
-   exception when others =>
-      Ok := False;
-   end;
-   Output ("test in param procedure", Ok);
-
-   begin
-      Ok := False;
-      out_proc (MyObj, I, J, K);
-      Ok := (I = 10) and then (J = 11) and then (K = 12);
-   exception when others =>
-      null;
-   end;
-   Output ("test out param procedure", Ok);
-
-   begin
-      Ok := False;
-      I  := 2;
-      J  := 3;
-      inout_proc (MyObj, I, J);
-      Ok := (I = 3 and then J = 4);
-   exception when others =>
-      null;
-   end;
-   Output ("test in out param procedure", Ok);
-
-   begin
-      Ok := False;
-      I := 1;
-      J := 2;
-      in_out_proc (MyObj, 1, 2, I, J);
-      Ok := (I = 3 and then J = 4);
-   exception when others =>
-      null;
-   end;
-   Output ("test in and out param procedure", Ok);
-
-   begin
-      Ok := False;
-      I  := -4;
-      J  := -5;
-      in_inout_proc (MyObj, 1, I, 3, J);
-      Ok := (I = 36) and then (J = 40);
-   exception when others =>
-      null;
-   end;
-   Output ("test in and inout param procedure", Ok);
-
-   begin
-      I := -11;
-      J := -21;
-      K := -31;
-      L := -41;
-      out_inout_proc (MyObj, I, J, K, L);
-      Ok := (I = 45) and then (J = 46) and then (K = 47) and then (L = 48);
-   exception when others =>
-      null;
-   end;
-   Output ("test inout and out param procedure", Ok);
-
-   begin
-      Ok := False;
-      I := 78;
-      J := 79;
-      in_out_inout_proc (MyObj, 1, I, J);
-      Ok := (I = -54) and then (J = 80);
-   exception when others =>
-      null;
-   end;
-   Output ("test in and out and inout param procedure", Ok);
-
-   Output ("test void function", void_fun (MyObj) = 3);
-   Output ("test in param function", in_fun (MyObj, 1, 2, 3) = 7);
-
-   begin
-      Ok := False;
-      I := 1;
-      J := 2;
-      K := 3;
-      L := 4;
-      out_fun (MyObj, I, J, K, L);
-      Ok := (I = 5) and then (J = 6) and then (K = 7) and then (L = 10);
-   exception when others =>
-      null;
-   end;
-   Output ("test out param function", Ok);
-
-   begin
-      Ok := False;
-      I := 1;
-      J := 2;
-      K := 3;
-      inout_fun (MyObj, I, J, L);
-      Ok := (I = 2) and then (J = 3) and then (L = 5);
-   exception when others =>
-      null;
-   end;
-   Output ("test inout param function", Ok);
-
-   begin
-      Ok := False;
-      I := 10;
-      J := 11;
-      in_out_fun (MyObj, 1, 2, I, J, K);
-      Ok := (I = 2) and then (J = 1) and then (K = 3);
-   exception when others =>
-      null;
-   end;
-   Output ("test in and out param function", Ok);
-
-   begin
-      Ok := False;
-      I := -1;
-      J := -2;
-      K := -3;
-      in_inout_fun (MyObj, -1, I, -2, J, K);
-      Ok := (I = -2) and then (J = -4) and then (K = -6);
-   exception when others =>
-      null;
-   end;
-   Output ("test in and inout param function", Ok);
-
-   begin
-      Ok := False;
-      I := -1;
-      J := -2;
-      K := -3;
-      L := -4;
-      M := -5;
-      out_inout_fun (MyObj, I, J, K, L, M);
-      Ok := (I = -2) and then (J = -1) and then (K = -2)
-        and then (L = -3) and then (M = -7);
-   exception when others =>
-      null;
-   end;
-   Output ("test out and inout param function", Ok);
-
-   begin
-      Ok := False;
-      I := -1;
-      J := -2;
-      K := -3;
-      in_out_inout_fun (MyObj, 85, I, J, K);
-      Ok := (I = 86) and then (J = 83) and then (K = -1);
-   exception when others =>
-      null;
-   end;
-   Output ("test in and out and inout param function", Ok);
-
-   begin
-      oneway_void_proc (MyObj);
-      delay 0.5;
-      Ok := oneway_checker (MyObj) = 1;
-      if Ok then
-         delay 1.0;
-         Ok := oneway_checker (MyObj) = 2;
-      end if;
-   exception when others =>
-      Ok := False;
-   end;
-   Output ("test void one way procedure", Ok);
-
-   begin
-      oneway_in_proc (MyObj, 10, 20);
-      delay 0.5;
-      Ok := oneway_checker (MyObj) = 10;
-      if Ok then
-         delay 1.0;
-         Ok := oneway_checker (MyObj) = 20;
-      end if;
-   exception when others =>
-      Ok := False;
-   end;
-   Output ("test in param one way procedure", Ok);
-
-   begin
-      StopServer (MyObj);
-      Ok := True;
-   exception when others =>
-      Ok := False;
-      raise;
-   end;
-
-   Output ("shut down server", Ok);
-
-   End_Report;
+   CORBA.ORB.String_To_Object
+     (CORBA.To_CORBA_String (Ada.Command_Line.Argument (1)), MyObj);
+   Run_Tests (MyObj);
 end Client;
============================================================
--- examples/corba/all_functions/server.adb	9c3a85db40e20a2a182143475ee18aa0331466c5
+++ examples/corba/all_functions/server.adb	c490c096c8b4d66be3b9152f3e34a9b7d5f54e3c
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2002-2006, Free Software Foundation, Inc.          --
+--         Copyright (C) 2002-2008, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -26,6 +26,7 @@ with all_functions.Impl;
 ------------------------------------------------------------------------------

 with all_functions.Impl;
+with all_functions.Helper;

 with CORBA;
 with CORBA.Object;
@@ -39,8 +40,11 @@ pragma Warnings (Off, PolyORB.Setup.Thre

 --  Note : the server must execute two tasks concurrently to pass oneway tests

+with Ada.Command_Line;
 with Ada.Text_IO;

+with Run_Tests;
+
 procedure Server is
    Ref : CORBA.Object.Ref;
 begin
@@ -54,5 +58,11 @@ begin
      ("'" & CORBA.To_Standard_String
               (PolyORB.CORBA_P.CORBALOC.Object_To_Corbaloc (Ref)) & "'");

-   Initiate_Server;
+   Initiate_Server (Start_New_Task => True);
+
+   if Ada.Command_Line.Argument_Count = 1
+        and then Ada.Command_Line.Argument (1) = "local"
+   then
+      Run_Tests (all_functions.Helper.To_Ref (Ref));
+   end if;
 end Server;
============================================================
--- projects/src_corba_messaging.gpr	adfca3622791dded2380104447230c3e6c83365a
+++ projects/src_corba_messaging.gpr	74a443a8db0f0c3909c5e3f81ce30e059cbe7cf9
@@ -32,8 +32,11 @@ project src_corba_messaging is
    Dir := "src/corba/messaging";
    Obj_Dir := Common.Build_Dir & Dir;
    for Object_Dir use Obj_Dir;
-   for Source_Dirs use (Obj_Dir, Common.Source_Dir & Dir);

+   for Source_Dirs use (Obj_Dir);
+   --  for Source_Dirs use (Obj_Dir, Common.Source_Dir & Dir);
+   --  Only generated sources, no sources from repository
+
    for Library_Name use "polyorb-corba-messaging";
    for Library_Dir use Common.Build_Dir & "lib";
    for Library_ALI_Dir use Common.Build_Dir & "ali/src_corba_messaging";
============================================================
--- projects/src_corba_security_gssup.gpr	3775ef8415c97edf50784471bb4b1c0af807983d
+++ projects/src_corba_security_gssup.gpr	2fd927e162b78cb374120fc5dcb12f9d63e15142
@@ -32,8 +32,11 @@ project src_corba_security_gssup is
    Dir := "src/corba/security/gssup";
    Obj_Dir := Common.Build_Dir & Dir;
    for Object_Dir use Obj_Dir;
-   for Source_Dirs use (Obj_Dir, Common.Source_Dir & Dir);

+   for Source_Dirs use (Obj_Dir);
+   --  for Source_Dirs use (Obj_Dir, Common.Source_Dir & Dir);
+   --  Only generated sources, no sources from repository
+
    for Library_Name use "polyorb-corba-security-gssup";
    for Library_Dir use Common.Build_Dir & "lib";
    for Library_ALI_Dir use Common.Build_Dir & "ali/src_corba_security_gssup";
============================================================
--- src/aws/aws-client.adb	838f3a067b3875435fb5bb55e524695c8fccfe1b
+++ src/aws/aws-client.adb	150620fed148ad818edecc25df56b2bb50a66236
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2000-2008, Free Software Foundation, Inc.          --
+--         Copyright (C) 2000-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -559,7 +559,7 @@ package body AWS.Client is
                        (PolyORB.Any.Get_Aggregate_Element
                         (PolyORB_Request.Result.Argument,
                          PolyORB.Any.TypeCode.TC_Octet,
-                         Unsigned_Long (Index)));
+                         Index));
                   begin
                      Byte_Stream (Stream_Element_Offset (Index))
                        := Stream_Element (Element);
@@ -654,7 +654,7 @@ package body AWS.Client is
       if URI /= No_Data then
          declare
             Overriding_URI : URL.Object := Parse (URI);
-            Parameters : Unbounded_String :=
+            Parameters : constant Unbounded_String :=
               To_Unbounded_String (URL.Query (Overriding_URI));
          begin
             Connection.Host_URL := Overriding_URI;
@@ -664,7 +664,7 @@ package body AWS.Client is
          end;
       else
          declare
-            Parameters : Unbounded_String :=
+            Parameters : constant Unbounded_String :=
               To_Unbounded_String (URL.Query (Connection.Host_URL));
          begin
             Handle_Request (Connection, "GET", Parameters, Result);
@@ -1013,7 +1013,7 @@ package body AWS.Client is
       if URI /= No_Data then
          declare
             Overriding_URI : URL.Object := Parse (URI);
-            Parameters : Unbounded_String :=
+            Parameters : constant Unbounded_String :=
               To_Unbounded_String (URL.Query (Overriding_URI));
          begin
             Connection.Host_URL := Overriding_URI;
@@ -1023,7 +1023,7 @@ package body AWS.Client is
          end;
       else
          declare
-            Parameters : Unbounded_String :=
+            Parameters : constant Unbounded_String :=
               To_Unbounded_String (URL.Query (Connection.Host_URL));
          begin
             Handle_Request (Connection, "HEAD", Parameters, Result);
============================================================
--- src/aws/aws-response.adb	040d2a77dc3bdd5d6c031b2dc66989afdaf79f24
+++ src/aws/aws-response.adb	6da2fe31047bdd8c53f1f92ddaea0fdce403d7e2
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2000-2006, Free Software Foundation, Inc.          --
+--         Copyright (C) 2000-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -109,7 +109,7 @@ package body AWS.Response is

    function Authentication (D : Data) return Authentication_Mode is
       use AWS.Headers;
-      Auth_Values : VString_Array
+      Auth_Values : constant VString_Array
         := Get_Values (D.Header, Messages.WWW_Authenticate_Token);
    begin
       if Auth_Values'Length = 1 then
@@ -126,7 +126,7 @@ package body AWS.Response is

    function Authentication_Stale (D : Data) return Boolean is
       use AWS.Headers;
-      Auth_Values : VString_Array
+      Auth_Values : constant VString_Array
         := Get_Values (D.Header, Messages.WWW_Authenticate_Token);
    begin
       for J in Auth_Values'Range loop
============================================================
--- src/aws/aws-server-get_status.adb	d8c9d8a329c84be4d6d0573108331028cd6ef639
+++ src/aws/aws-server-get_status.adb	91b67eeb8d5a8ae55df18491baa24ea1e6185f4d
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2000-2006, Free Software Foundation, Inc.          --
+--         Copyright (C) 2000-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -205,8 +205,6 @@ function AWS.Server.Get_Status (Server :
 --           Assoc ("ACTIVITY_TIME_STAMP_V",   Activity_Time_Stamp));
 --     end Slot_Table;

-   use type Templates.Translate_Table;
-
    Admin_URI : constant String := CNF.Admin_URI (Server.Properties);

    Translations : constant Templates.Translate_Table
============================================================
--- src/aws/aws-server-servants.adb	72e723e3770c532deacc6225987ed3c43f11db51
+++ src/aws/aws-server-servants.adb	9c05b84d32454f1e40e25a23ac391435d5dcee6d
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2006-2008, Free Software Foundation, Inc.          --
+--         Copyright (C) 2006-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -316,7 +316,7 @@ package body AWS.Server.Servants is
             pragma Debug (C, O ("Integrate_Data:"
                              & " byte sequence response (file)"));
             declare
-               Sq_Type : PolyORB.Any.TypeCode.Local_Ref
+               Sq_Type : constant PolyORB.Any.TypeCode.Local_Ref
                  := PolyORB.Any.TypeCode.TC_Sequence;
             begin
                PolyORB.Any.TypeCode.Add_Parameter
@@ -421,7 +421,7 @@ package body AWS.Server.Servants is
    ---------------------

    function Execute_Servant
-     (S   : access Web_Servant;
+     (S   : not null access Web_Servant;
       Msg : Components.Message'Class)
      return Components.Message'Class
    is
@@ -457,7 +457,7 @@ package body AWS.Server.Servants is
    end Execute_Servant;

    function Execute_Servant
-     (S   : access SOAP_Servant;
+     (S   : not null access SOAP_Servant;
       Msg : Components.Message'Class)
      return Components.Message'Class
    is
============================================================
--- src/aws/aws-server-servants.ads	013f8761fc321fad59453bd10d107dadb536fa6d
+++ src/aws/aws-server-servants.ads	eda501536731939e6e9631d016f30ee07380663d
@@ -1,3 +1,29 @@
+------------------------------------------------------------------------------
+--                                                                          --
+--                           POLYORB COMPONENTS                             --
+--                                                                          --
+--                  A W S . S E R V E R . S E R V A N T S                   --
+--                                                                          --
+--                                 S p e c                                  --
+--                                                                          --
+--           Copyright (C) 2009, Free Software Foundation, Inc.             --
+--                                                                          --
+-- PolyORB is free software; you  can  redistribute  it and/or modify it    --
+-- under terms of the  GNU General Public License as published by the  Free --
+-- Software Foundation;  either version 2,  or (at your option)  any  later --
+-- version. PolyORB is distributed  in the hope that it will be  useful,    --
+-- but WITHOUT ANY WARRANTY;  without even the implied warranty of MERCHAN- --
+-- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public --
+-- License  for more details.  You should have received  a copy of the GNU  --
+-- General Public License distributed with PolyORB; see file COPYING. If    --
+-- not, write to the Free Software Foundation, 51 Franklin Street, Fifth    --
+-- Floor, Boston, MA 02111-1301, USA.                                       --
+--                                                                          --
+--                  PolyORB is maintained by AdaCore                        --
+--                     (email: sales@adacore.com)                           --
+--                                                                          --
+------------------------------------------------------------------------------
+
 with PolyORB.Components;

 use PolyORB;
@@ -14,12 +40,12 @@ private
    type SOAP_Servant_Acc is access all SOAP_Servant;

    function Execute_Servant
-     (S   : access Web_Servant;
+     (S   : not null access Web_Servant;
       Msg : Components.Message'Class)
      return Components.Message'Class;

    function Execute_Servant
-     (S   : access SOAP_Servant;
+     (S   : not null access SOAP_Servant;
       Msg : Components.Message'Class)
      return Components.Message'Class;

============================================================
--- src/aws/aws-server.adb	b609500400a285ff38399d201dc8b8d09bcbbb75
+++ src/aws/aws-server.adb	cf9383f1e6badb5d5ba1cd09de64170208d63da7
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2000-2008, Free Software Foundation, Inc.          --
+--         Copyright (C) 2000-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -119,7 +119,7 @@ package body AWS.Server is
    procedure Run is
    begin
       pragma Debug (C, O ("AWS.Server.Run"));
-      PolyORB.ORB.Run (PolyORB.Setup.The_ORB, May_Poll => True);
+      PolyORB.ORB.Run (PolyORB.Setup.The_ORB, May_Exit => False);
    end Run;

    --------------
============================================================
--- src/aws/soap-client.adb	d4c6261e2cdb7c2b5ccd976cdcdaa3abe980e321
+++ src/aws/soap-client.adb	579b769eee9acaf5ccdea53a5cdfd2717cd1754b
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2000-2008, Free Software Foundation, Inc.          --
+--         Copyright (C) 2000-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -80,7 +80,8 @@ package body SOAP.Client is
       PolyORB_Request : PolyORB.Requests.Request_Access;
       PolyORB_Response : PolyORB.Any.NamedValue;

-      SOAP_Params : SOAP.Parameters.List := SOAP.Message.Parameters (P);
+      SOAP_Params : constant SOAP.Parameters.List
+        := SOAP.Message.Parameters (P);
       Reference : constant String :=
         Protocol (Host_URL (Connection.all))
         & "://"
@@ -96,7 +97,7 @@ package body SOAP.Client is

       for Index in 1 .. SOAP.Parameters.Argument_Count (SOAP_Params) loop
          Add_Item (Args, SOAP.Types.To_NamedValue
-                   (Parameters.Argument (SOAP_Params, Positive (Index))));
+                   (Parameters.Argument (SOAP_Params, Index)));
       end loop;

       Create_Request (Target => PolyORB.References.URI.String_To_Object
============================================================
--- src/aws/soap-parameters.adb	68ce4a373a9936776216cb24b473c92ff1fefc70
+++ src/aws/soap-parameters.adb	a0f72e54c592de410fe4f645710df9ca7d5db6b5
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2000-2006, Free Software Foundation, Inc.          --
+--         Copyright (C) 2000-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -119,7 +119,7 @@ package body SOAP.Parameters is
    -----------------

    procedure Check_Array (P : List; Name : String) is
-      O : Types.Object'Class := Argument (P, Name);
+      O : constant Types.Object'Class := Argument (P, Name);
    begin
       if O not in Types.SOAP_Array then
          Exceptions.Raise_Exception
@@ -134,7 +134,7 @@ package body SOAP.Parameters is
    ------------------

    procedure Check_Base64 (P : List; Name : String) is
-      O : Types.Object'Class := Argument (P, Name);
+      O : constant Types.Object'Class := Argument (P, Name);
    begin
       if O not in Types.SOAP_Base64 then
          Exceptions.Raise_Exception
@@ -149,7 +149,7 @@ package body SOAP.Parameters is
    -------------------

    procedure Check_Boolean (P : List; Name : String) is
-      O : Types.Object'Class := Argument (P, Name);
+      O : constant Types.Object'Class := Argument (P, Name);
    begin
       if O not in Types.XSD_Boolean then
          Exceptions.Raise_Exception
@@ -164,7 +164,7 @@ package body SOAP.Parameters is
    -----------------

    procedure Check_Float (P : List; Name : String) is
-      O : Types.Object'Class := Argument (P, Name);
+      O : constant Types.Object'Class := Argument (P, Name);
    begin
       if O not in Types.XSD_Float then
          Exceptions.Raise_Exception
@@ -179,7 +179,7 @@ package body SOAP.Parameters is
    -------------------

    procedure Check_Integer (P : List; Name : String) is
-      O : Types.Object'Class := Argument (P, Name);
+      O : constant Types.Object'Class := Argument (P, Name);
    begin
       if O not in Types.XSD_Integer then
          Exceptions.Raise_Exception
@@ -194,7 +194,7 @@ package body SOAP.Parameters is
    ----------------

    procedure Check_Null (P : List; Name : String) is
-      O : Types.Object'Class := Argument (P, Name);
+      O : constant Types.Object'Class := Argument (P, Name);
    begin
       if O not in Types.XSD_Null then
          Exceptions.Raise_Exception
@@ -209,7 +209,7 @@ package body SOAP.Parameters is
    ------------------

    procedure Check_Record (P : List; Name : String) is
-      O : Types.Object'Class := Argument (P, Name);
+      O : constant Types.Object'Class := Argument (P, Name);
    begin
       if O not in Types.SOAP_Record then
          Exceptions.Raise_Exception
============================================================
--- src/aws/soap-types.adb	8fdd08efd85bea80d4cb09102e7fc581c24cfa13
+++ src/aws/soap-types.adb	6357a1fe6db014842e5fb40183540316c27b2a33
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2000-2008, Free Software Foundation, Inc.          --
+--         Copyright (C) 2000-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -901,7 +901,7 @@ package body SOAP.Types is
          declare
             use Ada.Streams;

-            Sq_Type : PolyORB.Any.TypeCode.Local_Ref
+            Sq_Type : constant PolyORB.Any.TypeCode.Local_Ref
               := PolyORB.Any.TypeCode.TC_Sequence;
             Byte_Stream : constant Ada.Streams.Stream_Element_Array
               := AWS.Translator.Base64_Decode (V (SOAP_Base64 (Obj)));
@@ -930,8 +930,8 @@ package body SOAP.Types is
       elsif Obj in SOAP_Array then
          declare
             use PolyORB.Any;
-            Ar_Type : PolyORB.Any.TypeCode.Local_Ref
-              := PolyORB.Any.TypeCode.TC_Array;
+            Ar_Type : constant PolyORB.Any.TypeCode.Local_Ref :=
+                        PolyORB.Any.TypeCode.TC_Array;
          begin

             pragma Debug (C, O ("To_Any: SOAP_Array: nb of elements= "
@@ -944,8 +944,8 @@ package body SOAP.Types is
             PolyORB.Any.TypeCode.Add_Parameter
               (Ar_Type,
                To_Any
-               (Get_Unwound_Type
-                (To_Any (-(SOAP_Array (Obj).O (SOAP_Array (Obj).O'First))))));
+               (TypeCode.To_Ref (Get_Unwound_Type
+                (To_Any (-(SOAP_Array (Obj).O (SOAP_Array (Obj).O'First)))))));

             --  We first build the typecode.

@@ -965,8 +965,8 @@ package body SOAP.Types is
          declare
             use PolyORB.Any;

-            St_Type : PolyORB.Any.TypeCode.Local_Ref
-              := PolyORB.Any.TypeCode.TC_Struct;
+            St_Type : constant PolyORB.Any.TypeCode.Local_Ref :=
+                        PolyORB.Any.TypeCode.TC_Struct;
          begin
             PolyORB.Any.TypeCode.Add_Parameter
               (St_Type,
@@ -978,12 +978,13 @@ package body SOAP.Types is
                                    ("repository_id")));
             for K in SOAP_Record (Obj).O'Range loop
                PolyORB.Any.TypeCode.Add_Parameter
-                 (St_Type, To_Any (Get_Unwound_Type
-                                   (To_Any (-(SOAP_Record (Obj).O (K))))));
+                 (St_Type, To_Any (TypeCode.To_Ref (Get_Unwound_Type
+                                   (To_Any (-(SOAP_Record (Obj).O (K)))))));
                --  thus we get the type

                declare
-                  The_Element : Object'Class := -(SOAP_Record (Obj).O (K));
+                  The_Element : constant Object'Class :=
+                                  -(SOAP_Record (Obj).O (K));
                begin
                   PolyORB.Any.TypeCode.Add_Parameter
                     (St_Type, PolyORB.Any.To_Any
@@ -1111,7 +1112,7 @@ package body SOAP.Types is
                        := PolyORB.Any.From_Any
                        (PolyORB.Any.Get_Aggregate_Element
                         (Item, PolyORB.Any.TypeCode.TC_Octet,
-                         Unsigned_Long (Index)));
+                         Index));
                   begin
                      Byte_Stream (Stream_Element_Offset (Index))
                        := Stream_Element (Element);
@@ -1168,7 +1169,7 @@ package body SOAP.Types is
          begin
             for Index in 1 .. Number_Of_Elements loop
                declare
-                  Element : PolyORB.Any.Any :=
+                  Element : constant PolyORB.Any.Any :=
                     (PolyORB.Any.Get_Aggregate_Element
                      (Item, PolyORB.Any.TypeCode.Member_Type
                       (PolyORB.Any.Get_Type (Item), Index - 1),
============================================================
--- src/corba/portableserver.adb	9e19d246711ffac86ebc80ba5b20832ffb974956
+++ src/corba/portableserver.adb	d4a8dd7c9278a39b665b62ab5f09c9cd7de4616d
@@ -173,11 +173,15 @@ package body PortableServer is
             --  True and the R.Exception_Info Any is non-empty. We set out
             --  arguments only if no exception was raised.

+            --  Note: At this point the stack frame of the skel has been exited
+            --  and the shadow any's for IN mode arguments now have dangling
+            --  content pointers. In particular this means that any call to
+            --  Image (R.Out_Args) is likely to fail on such arguments.
+
             if R.Arguments_Called
                  and then
                PolyORB.Any.Is_Empty (R.Exception_Info)
             then
-
                pragma Debug
                  (C, O ("Execute_Servant: executed, setting out args"));
                Set_Out_Args (R, Error);
============================================================
--- src/dsa/polyorb-termination_manager-bootstrap.adb	9db60215236e9cc8a3e9b205fd5bc10f04bfd6d6
+++ src/dsa/polyorb-termination_manager-bootstrap.adb	359c9bc7bb5d26415c2e12e9ec422973aaccdcbb
@@ -70,11 +70,11 @@ package body PolyORB.Termination_Manager
    -- Stub Types managing --
    -------------------------

-   type RACW_Tick_Stub_Type_Access is
+   type Term_Manager_Stub_Access is
      access all Term_Manager_Access'Stub_Type;

    --  We have to consider three views of the same type:
-   --    * RACW_Tick_Stub_Type_Access: the type returned by RACW'Stub_Type
+   --    * Term_Manager_Stub_Access: the type returned by RACW'Stub_Type
    --    * RACW_Stub_Type_Access: a general stub type used by S-PolInt
    --    * Term_Manager_Access : the type we use in the termination manager
    --  We define some Unchecked_Conversions between them:
@@ -84,14 +84,14 @@ package body PolyORB.Termination_Manager
    --  To disable "possible aliasing problem" warnings which do not apply in
    --  this case.

-   function RACW_Tick_To_RACW_Access is
+   function To_RACW_Stub_Access is
      new Ada.Unchecked_Conversion
-       (Source => RACW_Tick_Stub_Type_Access,
+       (Source => Term_Manager_Stub_Access,
         Target => RACW_Stub_Type_Access);

-   function RACW_Access_To_TM_Access is
+   function To_TM_Access is
      new Ada.Unchecked_Conversion
-       (Source => RACW_Stub_Type_Access,
+       (Source => System.Address,
         Target => Term_Manager_Access);

    pragma Warnings (On);
@@ -146,6 +146,7 @@ package body PolyORB.Termination_Manager

          NK := DSA_Node;
          Ref := Note.TM_Ref;
+
       else
          pragma Debug (C, O ("Extracting TM ref from Client BO"));

@@ -177,7 +178,7 @@ package body PolyORB.Termination_Manager

       end if;

-      pragma Debug (C, O ("Extracted Ref is:" & Image (Ref)));
+      pragma Debug (C, O ("-> TM: " & Image (Ref)));
    end Extract_TM_Reference_From_BO;

    ---------------
@@ -353,32 +354,16 @@ package body PolyORB.Termination_Manager
    -- Ref_To_Term_Manager_Access --
    --------------------------------

-   function Ref_To_Term_Manager_Access (R : References.Ref)
-     return Term_Manager_Access
+   function Ref_To_Term_Manager_Access
+     (R : References.Ref) return Term_Manager_Access
    is
-      The_Stub : constant RACW_Tick_Stub_Type_Access
-        := new Term_Manager_Access'Stub_Type;
-      --  A Stub of Term Manager type
-
-      The_Same_Stub : RACW_Stub_Type_Access;
    begin
-
-      --  We convert it to the general S-Pol_Int stub type so we can access the
-      --  target Field.
-
-      The_Same_Stub := RACW_Tick_To_RACW_Access (The_Stub);
-
-      --  We manually increment R reference counter since we don't want the
-      --  reference finalized while we got an RACW using it.
-
-      Smart_Pointers.Inc_Usage
-        (References.Entity_Of (R));
-
-      --  Finally, we assign the reference to the Stub target field
-
-      The_Same_Stub.Target := References.Entity_Of (R);
-
-      return RACW_Access_To_TM_Access (The_Same_Stub);
+      return To_TM_Access
+               (System.Partition_Interface.Get_RACW
+                  (Ref          => R,
+                   Stub_Tag     => Term_Manager_Access'Stub_Type'Tag,
+                   Is_RAS       => False,
+                   Asynchronous => False));
    end Ref_To_Term_Manager_Access;

    -----------------------
============================================================
--- src/dsa/polyorb-termination_manager.adb	e6561bc54d9d8be42d767a90fa216405dff7ab00
+++ src/dsa/polyorb-termination_manager.adb	3829a151ef4a7e13a919d0979b77865e9ff53389
@@ -162,7 +162,7 @@ package body PolyORB.Termination_Manager

       All_Binding_Objects :
       while not Last (It) loop
-         pragma Debug (C, O ("Calling Action on a neighbour..."));
+         pragma Debug (C, O ("Calling Action on neighbour..."));

          declare
             use Ada.Exceptions;
@@ -181,11 +181,9 @@ package body PolyORB.Termination_Manager
                   Status := False;

                when Non_DSA_Node =>
+                  --  Non-DSA nodes do not take part in the global decision

-                  --  Non DSA nodes do not take part in the global decision
-
                   null;
-
             end case;

             --  XXX A server only, no tasking partition, will not take part
@@ -214,24 +212,22 @@ package body PolyORB.Termination_Manager
    is
       Result : Request_Status;
    begin
-
       Enter (Critical_Section);
+      pragma Debug (C, O ("Check_Stamp: stamp =" & S'Img
+                            & ", Current =" & The_TM.Current_Stamp'Img));

       if S < The_TM.Current_Stamp then
-
          --  If stamp is older than current stamp, this is an outdated message

          Result := Outdated;

       elsif S = The_TM.Current_Stamp then
-
          --  If stamp is equal to the current stamp then the request is not
-         --  from a Father node.
+         --  from a father node.

          Result := Not_From_Father;

       elsif S > The_TM.Current_Stamp then
-
          --  If stamp is more recent than current stamp, this is a new wave,
          --  update the current stamp.

@@ -240,9 +236,8 @@ package body PolyORB.Termination_Manager
       end if;

       Leave (Critical_Section);
-
+      pragma Debug (C, O ("Check_Stamp: -> " & Result'Img));
       return Result;
-
    end Check_Stamp;

    ---------------
@@ -265,16 +260,15 @@ package body PolyORB.Termination_Manager

    procedure In_Initiator_Loop is
    begin
-
+      --  ??? This should be tested only once, not at each term loop iteration
       if The_TM.Termination_Policy = Local_Termination then
          pragma Debug (C, O ("A partition cannot be the initiator"
                          &" and have a local termination policy."));
          raise Program_Error;
       end if;

-      if Is_Locally_Terminated (The_TM.Non_Terminating_Tasks)
-        and then Is_Terminated (The_TM, Get_Stamp + 1)
-      then
+      pragma Debug (C, O ("In_Initiator_Loop: start wave"));
+      if Is_Terminated (The_TM, Get_Stamp + 1) then
          The_TM.Terminated := Terminate_Now (The_TM, Get_Stamp + 1);
       end if;
    end In_Initiator_Loop;
@@ -319,7 +313,7 @@ package body PolyORB.Termination_Manager
                      (The_ORB.ORB_Controller, Expected_Running_Tasks);
          Leave_ORB_Critical_Section (The_ORB.ORB_Controller);
          exit when Result;
-         Relative_Delay (The_TM.Time_Between_Waves);
+         Relative_Delay (The_TM.Time_Between_Waves / 10);
       end loop;

       pragma Debug (C, O ("Is_Locally_Terminated: leave, Result = "
@@ -334,33 +328,36 @@ package body PolyORB.Termination_Manager
    function Is_Terminated (TM : access Term_Manager; Stamp : Stamp_Type)
      return Boolean
    is
-      Local_Decision : Boolean := True;
-      Neighbours_Decision : Boolean := True;
+      Local_Decision        : Boolean := True;
+      Neighbours_Decision   : Boolean := True;
       Non_Terminating_Tasks : Natural;
    begin
-
       case Check_Stamp (Stamp) is
          when Not_From_Father =>
+            --  If the request is not from a father node, we immediatly answer
+            --  True as this does not change the computation.
+
             return True;

-            --  If the request is not from a Father node, we immediatly answer
-            --  True as this does not change the computation.
+         when Outdated =>
+            return False;

-         when Outdated        =>
-            return False;
-         when Valid           =>
+         when Valid =>
             null;
             pragma Debug (C, O ("New wave (Is_Terminated) received"));
       end case;

       --  Compute the number of expected non terminating tasks

+      pragma Debug (C, O ("TM.Is_Initiator = " & TM.Is_Initiator'Img));
+      pragma Debug (C, O ("TM.Non_Terminating_Tasks ="
+                            & TM.Non_Terminating_Tasks'Img));
+
       if not TM.Is_Initiator then

          --  If the termination manager is not the initiator, local termination
-         --  will be checked inside a request job so one of the orb tasks will
-         --  be running at that time, and we have one more non terminating
-         --  task.
+         --  will be checked inside a request job so one of the ORB tasks will
+         --  be running at that time, so we have one more non terminating task.

          Non_Terminating_Tasks := TM.Non_Terminating_Tasks + 1;
       else
@@ -373,14 +370,14 @@ package body PolyORB.Termination_Manager
         & " remaining tasks"));

       if not Is_Locally_Terminated (Non_Terminating_Tasks) then
-         pragma
-           Debug (O ("Node is not locally terminated, refusing termination."));
+         pragma Debug
+           (C, O ("Node is not locally terminated, refusing termination."));
          Local_Decision := False;
       end if;

       if Is_Active then
-         pragma
-           Debug (O ("Node is active (has sent messages since the last wave),"
+         pragma Debug
+           (C, O ("Node is active (has sent messages since the last wave),"
                      & " refusing termination."));
          Local_Decision := False;
       end if;
@@ -394,12 +391,13 @@ package body PolyORB.Termination_Manager
       Neighbours_Decision :=
         Call_On_Neighbours (Do_Is_Terminated'Access, Stamp);

+      pragma Debug (C, O ("Is_Terminated: Local " & Local_Decision'Img
+                            & " / Neighbours " & Neighbours_Decision'Img));
       --  Reset Activity counter

       Reset_Activity;

       return Local_Decision and then Neighbours_Decision;
-
    end Is_Terminated;

    -----------
@@ -414,7 +412,6 @@ package body PolyORB.Termination_Manager
    is
       Thread_Acc : Thread_Access;
    begin
-
       Create (Critical_Section);

       TM.Time_Between_Waves := Time_Between_Waves;
@@ -427,13 +424,15 @@ package body PolyORB.Termination_Manager

       TM.Non_Terminating_Tasks := TM.Non_Terminating_Tasks + 1;

+      pragma Debug (C, O ("Starting TM: Is_Initiator = " & Initiator'Img
+                            & " / NTT =" & TM.Non_Terminating_Tasks'Img));
+
       Thread_Acc := Run_In_Task
         (TF               => Get_Thread_Factory,
          Default_Priority => System.Any_Priority'First,
          P                => Termination_Loop'Access);

       pragma Assert (Thread_Acc /= null);
-
    end Start;

    ----------------------
@@ -480,9 +479,12 @@ package body PolyORB.Termination_Manager

       case Check_Stamp (Stamp) is
          when Valid  =>
+            pragma Debug
+              (C, O ("Terminate_Now: received wave with valid time stamp"));
             null;
-            pragma Debug (C, O ("New wave (Terminate_Now) received"));
          when others =>
+            pragma Debug
+              (C, O ("Terminate_Now: received wave with junk time stamp"));
             return True;
       end case;

============================================================
--- src/dsa/s-parint.adb	f7d9aa230b9d405eabaef038bce2fa5b94f2ed2f
+++ src/dsa/s-parint.adb	d513233ce0727c06c687742df487e374fbb16886
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2004-2008, Free Software Foundation, Inc.          --
+--         Copyright (C) 2004-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -778,9 +778,12 @@ package body System.Partition_Interface
       return Wide_Character (PolyORB.Types.Wchar'(From_Any (Item)));
    end FA_WC;

-   function FA_String (Item : PolyORB.Any.Any) return String is
+   function FA_String
+     (Item : PolyORB.Any.Any) return Ada.Strings.Unbounded.Unbounded_String
+   is
    begin
-      return PolyORB.Types.To_String (From_Any (Item));
+      return Ada.Strings.Unbounded.Unbounded_String
+        (PolyORB.Types.String'(From_Any (Item)));
    end FA_String;

    ---------------------------
@@ -1269,7 +1272,7 @@ package body System.Partition_Interface
          --  We leak memory here each time we receive a new unique value of a
          --  remote access to classwide or remote access to subprogram type.

-         Answer.Target   := Handler.Target;
+         Answer.Target       := Handler.Target;
          Answer.Asynchronous := Handler.Asynchronous;

          Objects_HTable.Set (Answer, Answer);
@@ -2029,7 +2032,7 @@ package body System.Partition_Interface
       PATC.Add_Parameter
         (Default_Servant.Obj_TypeCode, To_Any (PName));
       PATC.Add_Parameter
-        (Default_Servant.Obj_TypeCode, TA_String ("DSA:" & Name & ":1.0"));
+        (Default_Servant.Obj_TypeCode, TA_Std_String ("DSA:" & Name & ":1.0"));

       if RACW_POA_Config = null then
          return;
@@ -2196,10 +2199,16 @@ package body System.Partition_Interface
       return To_Any (PolyORB.Types.Wchar (Item));
    end TA_WC;

-   function TA_String (S : String) return PolyORB.Any.Any is
+   function TA_String
+     (S : Ada.Strings.Unbounded.Unbounded_String) return PolyORB.Any.Any is
    begin
+      return PolyORB.Any.To_Any (PolyORB.Types.String (S));
+   end TA_String;
+
+   function TA_Std_String (S : String) return PolyORB.Any.Any is
+   begin
       return PolyORB.Any.To_Any (PolyORB.Types.To_PolyORB_String (S));
-   end TA_String;
+   end TA_Std_String;

    -------------
    -- To_Name --
============================================================
--- src/dsa/s-parint.ads	c4537630cb3914fb9c7205d8668cef3eb0da14db
+++ src/dsa/s-parint.ads	9890673a72e8d30ca1710f2ec86617802d5d28cb
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---         Copyright (C) 2004-2008, Free Software Foundation, Inc.          --
+--         Copyright (C) 2004-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -35,6 +35,7 @@ with Ada.Streams;

 with Ada.Exceptions;
 with Ada.Streams;
+with Ada.Strings.Unbounded;
 with Ada.Tags;

 with PolyORB.Any;
@@ -67,7 +68,7 @@ package System.Partition_Interface is
    DSA_Implementation : constant DSA_Implementation_Name := PolyORB_DSA;
    --  Identification of this DSA implementation variant

-   PCS_Version : constant := 2;
+   PCS_Version : constant := 3;
    --  Version of the PCS API (for Exp_Dist consistency check).
    --  This version number is matched against Gnatvsn.PCS_Version_Number to
    --  ensure that the versions of Exp_Dist and the PCS are consistent.
@@ -411,16 +412,11 @@ package System.Partition_Interface is
    function FA_SSU (Item : Any) return Short_Short_Unsigned;
    function FA_WC (Item : Any) return Wide_Character;

-   function FA_String (Item : Any) return String;
-
-   function FA_ObjRef
-     (Item : Any)
-      return PolyORB.References.Ref
+   function FA_String
+     (Item : Any) return Ada.Strings.Unbounded.Unbounded_String;
+   function FA_ObjRef (Item : Any) return PolyORB.References.Ref
      renames PolyORB.Any.ObjRef.From_Any;

---     function TA_AD (X) return Any;
---     function TA_AS (X) return Any;
-
    function TA_A (Item : DSAT.Any_Container_Ptr) return Any;
    function TA_B (Item : Boolean) return Any;
    function TA_C (Item : Character) return Any;
@@ -439,13 +435,11 @@ package System.Partition_Interface is
    function TA_SSI (Item : Short_Short_Integer) return Any;
    function TA_SSU (Item : Short_Short_Unsigned) return Any;
    function TA_WC (Item : Wide_Character) return Any;
-
-   function TA_String (S : String) return Any;
-
-   function TA_ObjRef (R : PolyORB.References.Ref)
-     return Any
+   function TA_String (S : Ada.Strings.Unbounded.Unbounded_String) return Any;
+   function TA_ObjRef (R : PolyORB.References.Ref) return Any
      renames PolyORB.Any.ObjRef.To_Any;

+   function TA_Std_String (S : String) return Any;
    function TA_TC (TC : PolyORB.Any.TypeCode.Local_Ref) return Any
      renames PolyORB.Any.To_Any;

@@ -626,10 +620,15 @@ package System.Partition_Interface is
       Val  : Any)
      renames PolyORB.Requests.Set_Result;

+   procedure Request_Destroy
+     (Self : in out PolyORB.Requests.Request_Access)
+     renames PolyORB.Requests.Destroy_Request;
+
    Asynchronous_P_To_Sync_Scope : constant array (Boolean)
-     of PolyORB.Requests.Flags
-     := (False => PolyORB.Requests.Sync_With_Target,
-         True  => PolyORB.Requests.Sync_With_Transport);
+     of PolyORB.Requests.Flags :=
+       (False => PolyORB.Requests.Sync_With_Target,
+        True  => PolyORB.Requests.Sync_With_Transport);
+
    --  Request_Flags to use for a request according to whether or not the call
    --  is asynchronous.

============================================================
--- src/giop/gen_codeset.adb	8f9316008a2ce5f81ee1d9855bc67762393aa0c8
+++ src/giop/gen_codeset.adb	5d2d57b422427a3c8599bfd97f4f2f67ced8cbfa
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2004-2006, Free Software Foundation, Inc.          --
+--         Copyright (C) 2004-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -172,20 +172,22 @@ procedure Gen_Codeset is
       for J in Code_Set_Table.First .. Code_Set_Table.Last loop
          declare
             Info   : Code_Set_Info renames Code_Set_Table.Table (J);
-            Length : constant Natural
-              := Info.Character_Set_Last - Info.Character_Set_First + 1;
-            Index  : constant Natural
-              := Find (Info.Character_Set_First, Info.Character_Set_Last);
+            Length : constant Natural :=
+                       Info.Character_Set_Last - Info.Character_Set_First + 1;
+            Index  : constant Natural :=
+                       Find
+                         (Info.Character_Set_First, Info.Character_Set_Last);
             First  : constant Natural := Aux_Table.Last + 1;
          begin
             if Index = 0 then
-               for J in Info.Character_Set_First
-                          .. Info.Character_Set_Last
+               for J in Info.Character_Set_First .. Info.Character_Set_Last
                loop
                   Aux_Table.Append (Character_Sets_Table.Table (J));
                end loop;
+
                Info.Character_Set_First := First;
                Info.Character_Set_Last  := First + Length - 1;
+
             else
                Info.Character_Set_First := Index;
                Info.Character_Set_Last  := Index + Length - 1;
@@ -210,42 +212,63 @@ procedure Gen_Codeset is
       procedure Put is new Integer_Put (Integer);
    begin
       Put_Line ("--  AUTOMATICALLY GENERATED, DO NOT EDIT!");
+      New_Line;
+
+      --  Disable style checks (N), and set maximum line length to the largest
+      --  allowed value (M32766).
+
+      Put_Line ("pragma Style_Checks (""NM32766"");");
       Put_Line ("private package " & Pkg_Name & " is");
       New_Line;

       Put_Line
        ("   Info : constant array (Positive range <>)"
-          & " of Code_Set_Info_Record");
-      Put ("     := (");
+          & " of Code_Set_Info_Record :=");
+      Put ("     (");

       for J in 1 .. Code_Set_Table.Last loop
          declare
             Info : Code_Set_Info renames Code_Set_Table.Table (J);
             Buf  : String (1 .. 13);
+
+            procedure Put_Description;
+            --  Output Ada comment with description of current entry
+
+            procedure Put_Description is
+            begin
+               Put (" --  ");
+               for J in Info.Description_First .. Info.Description_Last loop
+                  Put (Description_Table.Table (J));
+               end loop;
+               New_Line;
+            end Put_Description;
+
          begin
             Put (Buf, Info.Code_Set);

             Put ('(');
             Put (Buf (2 .. 13));
             Put (',');
-            Put (Info.Character_Set_First, 4);
+            Put (Info.Character_Set_First, 3);
             Put (',');
-            Put (Info.Character_Set_Last, 4);
+            Put (Info.Character_Set_Last, 3);
             Put (')');
-         end;

-         if J /= Code_Set_Table.Last then
-            Put (',');
-            New_Line;
-            Put ("         ");
-         else
-            Put_Line (");");
-         end if;
+            if J /= Code_Set_Table.Last then
+               Put (", ");
+               Put_Description;
+               Put ("      ");
+
+            else
+               Put (");");
+               Put_Description;
+            end if;
+         end;
       end loop;
       New_Line;

-      Put_Line ("   Character_Sets : constant Character_Set_Id_Array");
-      Put ("     := (");
+      Put_Line ("   Character_Sets : constant Character_Set_Id_Array :=");
+      Put ("     (");

       for J in 1 .. Character_Sets_Table.Last loop
          declare
@@ -259,7 +282,7 @@ procedure Gen_Codeset is
             Put (",");
             if J mod 7 = 0 then
                New_Line;
-               Put ("         ");
+               Put ("      ");
             else
                Put (' ');
             end if;
============================================================
--- src/giop/polyorb-giop_p-code_sets-converters-unicode.adb	9aa280787f528d8f1c8273b66502b6a571849454
+++ src/giop/polyorb-giop_p-code_sets-converters-unicode.adb	91a38560818af4822b1a4a6274c59373862c586c
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---           Copyright (C) 2006, Free Software Foundation, Inc.             --
+--         Copyright (C) 2006-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -229,15 +229,16 @@ package body PolyORB.GIOP_P.Code_Sets.Co

       use PolyORB.Parameters;

-      --  The following parameters force the registration of
-      --  additional "fallback" code sets for char and wchar
-      --  data. This is useful for interoperation with ORB
-      --  with broken char sets negotiation support.
+      --  The following parameters force the registration of additional
+      --  "fallback" code sets for char and wchar data. This is useful for
+      --  interoperation with ORB with broken char sets negotiation support.

-      Char_Fallback      : constant Boolean
-        := Get_Conf ("giop", "giop.add_char_fallback_code_set", False);
-      Wide_Char_Fallback : constant Boolean
-        := Get_Conf ("giop", "giop.add_wchar_fallback_code_set", False);
+      Char_Fallback      : constant Boolean := Get_Conf
+                             ("giop", "giop.add_char_fallback_code_set",
+                              Default => False);
+      Wide_Char_Fallback : constant Boolean := Get_Conf
+                             ("giop", "giop.add_wchar_fallback_code_set",
+                              Default => False);

    begin
       --  Register supported char code sets (UTF-8)
@@ -323,11 +324,11 @@ package body PolyORB.GIOP_P.Code_Sets.Co

       if C.GIOP_1_2_Mode then
          Marshall (Buffer, Octet'(4));
-         Marshall (Buffer, BOM, 1);
-         Marshall (Buffer, Unsigned_Short (Wchar'Pos (Data)), 1);
+         Unaligned_Unsigned_Short.Marshall (Buffer, BOM);
+         Unaligned_Unsigned_Short.Marshall (Buffer, Wchar'Pos (Data));

       else
-         Marshall (Buffer, Unsigned_Short (Wchar'Pos (Data)), 2);
+         Marshall (Buffer, Unsigned_Short (Wchar'Pos (Data)));
       end if;
    end Marshall;

@@ -338,18 +339,15 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       Error  : in out Errors.Error_Container)
    is
       Equiv : constant Wide_String := To_Wide_String (Data);
-      Align : Alignment_Type;

    begin
       if C.GIOP_1_2_Mode then
          Marshall (Buffer, Unsigned_Long (Equiv'Length + 1) * 2);
-         Marshall (Buffer, BOM, 1);
-         Align := 1;
+         Marshall (Buffer, BOM);

       else
          Marshall (Buffer, Unsigned_Long (Equiv'Length + 2));
-         Marshall (Buffer, BOM, 2);
-         Align := 2;
+         Marshall (Buffer, BOM);
       end if;

       for J in Equiv'Range loop
@@ -366,12 +364,11 @@ package body PolyORB.GIOP_P.Code_Sets.Co

          Marshall
            (Buffer,
-            Unsigned_Short (Wide_Character'Pos (Equiv (J))),
-            Align);
+            Unsigned_Short'(Wide_Character'Pos (Equiv (J))));
       end loop;

       if not C.GIOP_1_2_Mode then
-         Marshall (Buffer, Unsigned_Short (0), 2);
+         Marshall (Buffer, Unsigned_Short (0));
       end if;
    end Marshall;

@@ -397,10 +394,11 @@ package body PolyORB.GIOP_P.Code_Sets.Co

       if C.GIOP_1_2_Mode then
          Marshall (Buffer, Types.Octet'(2));
-         Marshall (Buffer, Unsigned_Short (Wchar'Pos (Data)), 1);
+         Unaligned_Unsigned_Short.Marshall
+           (Buffer, Unsigned_Short'(Wchar'Pos (Data)));

       else
-         Marshall (Buffer, Unsigned_Short (Wchar'Pos (Data)), 2);
+         Marshall (Buffer, Unsigned_Short'(Wchar'Pos (Data)));
       end if;
    end Marshall;

@@ -411,16 +409,12 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       Error  : in out Errors.Error_Container)
    is
       Equiv : constant Wide_String := PolyORB.Types.To_Wide_String (Data);
-      Align : Alignment_Type;
-
    begin
       if C.GIOP_1_2_Mode then
          Marshall (Buffer, Unsigned_Long'(Equiv'Length * 2));
-         Align := 1;

       else
          Marshall (Buffer, Unsigned_Long'(Equiv'Length + 1));
-         Align := 2;
       end if;

       for J in Equiv'Range loop
@@ -438,12 +432,11 @@ package body PolyORB.GIOP_P.Code_Sets.Co

          Marshall
            (Buffer,
-            Unsigned_Short (Wide_Character'Pos (Equiv (J))),
-            Align);
+            Unsigned_Short'(Wide_Character'Pos (Equiv (J))));
       end loop;

       if not C.GIOP_1_2_Mode then
-         Marshall (Buffer, Unsigned_Short'(0), Align);
+         Marshall (Buffer, Unsigned_Short'(0));
       end if;
    end Marshall;

@@ -469,10 +462,11 @@ package body PolyORB.GIOP_P.Code_Sets.Co

       if C.GIOP_1_2_Mode then
          Marshall (Buffer, Types.Octet'(4));
-         Marshall (Buffer, Unsigned_Long (Wchar'Pos (Data)), 1);
+         Unaligned_Unsigned_Long.Marshall
+           (Buffer, Unsigned_Long'(Wchar'Pos (Data)));

       else
-         Marshall (Buffer, Unsigned_Long (Wchar'Pos (Data)), 4);
+         Marshall (Buffer, Unsigned_Long (Wchar'Pos (Data)));
       end if;
    end Marshall;

@@ -486,16 +480,7 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       Space : constant Reservation := Reserve (Buffer, 4);
       J     : Positive := Equiv'First;
       L     : Natural := 0;
-      Align : Alignment_Type;
-
    begin
-      if C.GIOP_1_2_Mode then
-         Align := 1;
-
-      else
-         Align := 4;
-      end if;
-
       while J <= Equiv'Last loop
          if Equiv (J) in High_Surrogate_Character then
             if J < Equiv'Last
@@ -507,8 +492,7 @@ package body PolyORB.GIOP_P.Code_Sets.Co
                   ((Wide_Character'Pos (Equiv (J)) - High_Surrogate_Base)
                     * 16#400#
                     + (Wide_Character'Pos (Equiv (J + 1)) - Low_Surrogate_Base)
-                    + 16#10000#),
-                  Align);
+                    + 16#10000#));
                J := J + 2;
                L := L + 1;

@@ -534,17 +518,14 @@ package body PolyORB.GIOP_P.Code_Sets.Co
             return;

          else
-            Marshall
-              (Buffer,
-               Unsigned_Long (Wide_Character'Pos (Equiv (J))),
-               Align);
+            Marshall (Buffer, Unsigned_Long (Wide_Character'Pos (Equiv (J))));
             J := J + 1;
             L := L + 1;
          end if;
       end loop;

       if not C.GIOP_1_2_Mode then
-         Marshall (Buffer, Unsigned_Long'(0), Align);
+         Marshall (Buffer, Unsigned_Long'(0));
       end if;

       declare
@@ -616,7 +597,7 @@ package body PolyORB.GIOP_P.Code_Sets.Co
             Length : constant Octet := Unmarshall (Buffer);

          begin
-            Code := Unmarshall (Buffer, 1);
+            Code := Unaligned_Unsigned_Short.Unmarshall (Buffer);

             if Length = 2 then
                Data := Wchar'Val (Code);
@@ -627,7 +608,8 @@ package body PolyORB.GIOP_P.Code_Sets.Co
                   --  XXX Value marshalled in reverse endian-ness

                elsif Code = BOM then
-                  Data := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer, 1)));
+                  Data := Wchar'Val
+                            (Unaligned_Unsigned_Short.Unmarshall (Buffer));

                else
                   raise Program_Error;
@@ -639,14 +621,14 @@ package body PolyORB.GIOP_P.Code_Sets.Co
          end;

       else
-         Code := Unmarshall (Buffer, 2);
+         Code := Unmarshall (Buffer);

          if Code = Reverse_BOM then
             raise Program_Error;
             --  XXX Value marshalled in reverse endian-ness

          elsif Code = BOM then
-            Data := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer, 2)));
+            Data := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer)));

          else
             Data := Wchar'Val (Code);
@@ -675,7 +657,6 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       Result : Standard.Wide_String (1 .. Integer (Length));
       First  : Positive;
       Last   : Natural;
-      Align  : Alignment_Type;
       Code   : Unsigned_Short;

    begin
@@ -691,14 +672,12 @@ package body PolyORB.GIOP_P.Code_Sets.Co
          end if;

          Last  := Natural (Length / 2);
-         Align := 1;

       else
          Last  := Natural (Length);
-         Align := 2;
       end if;

-      Code := Unmarshall (Buffer, Align);
+      Code := Unmarshall (Buffer);

       if Code = Reverse_BOM then
          raise Program_Error;
@@ -714,7 +693,7 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       end if;

       for J in First .. Last loop
-         Result (J) := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer, Align)));
+         Result (J) := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer)));

          if Result (J) in Invalid_Character then
             Throw
@@ -750,11 +729,11 @@ package body PolyORB.GIOP_P.Code_Sets.Co
             --  XXX Raise Marshall exception ?

          else
-            Data := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer, 1)));
+            Data := Wchar'Val (Unaligned_Unsigned_Short.Unmarshall (Buffer));
          end if;

       else
-         Data := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer, 2)));
+         Data := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer)));
       end if;

       if Data in Surrogate_Character
@@ -778,7 +757,6 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       Length : constant Unsigned_Long := Unmarshall (Buffer);
       Result : Standard.Wide_String (1 .. Integer (Length));
       Last   : Natural := Result'First - 1;
-      Align  : Alignment_Type;

    begin
       if C.GIOP_1_2_Mode then
@@ -786,17 +764,14 @@ package body PolyORB.GIOP_P.Code_Sets.Co
             raise Program_Error;
             --  XXX Raise Marshall exception ?
          end if;
-
          Last  := Natural (Length / 2);
-         Align := 1;

       else
          Last  := Natural (Length);
-         Align := 2;
       end if;

       for J in Result'First .. Last loop
-         Result (J) := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer, Align)));
+         Result (J) := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer)));

          if Result (J) in Surrogate_Character
            or else Result (J) in Invalid_Character
@@ -833,13 +808,12 @@ package body PolyORB.GIOP_P.Code_Sets.Co
          if Length /= 4 then
             raise Program_Error;
             --  XXX Raise Marshall exception ?
-
          else
-            Aux := Unsigned_Long'(Unmarshall (Buffer, 1));
+            Aux := Unaligned_Unsigned_Long.Unmarshall (Buffer);
          end if;

       else
-         Aux := Unsigned_Long'(Unmarshall (Buffer, 4));
+         Aux := Unsigned_Long'(Unmarshall (Buffer));
       end if;

       if Aux > 16#FFFF#
@@ -867,7 +841,6 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       pragma Unreferenced (Error);

       Length : Unsigned_Long := Unmarshall (Buffer);
-      Align  : Alignment_Type;

    begin
       if C.GIOP_1_2_Mode then
@@ -877,10 +850,6 @@ package body PolyORB.GIOP_P.Code_Sets.Co
          end if;

          Length := Length / 4;
-         Align := 1;
-
-      else
-         Align := 2;
       end if;

       declare
@@ -890,7 +859,7 @@ package body PolyORB.GIOP_P.Code_Sets.Co

       begin
          for J in 1 .. Length loop
-            Aux := Unsigned_Long'(Unmarshall (Buffer, Align));
+            Aux := Unsigned_Long'(Unmarshall (Buffer));

             if Aux <= 16#FFFF# then
                Last := Last + 1;
============================================================
--- src/giop/polyorb-giop_p-code_sets-converters-unicode.ads	dba2ef81faa90d4ddbf9f6448caf21587ad9eac9
+++ src/giop/polyorb-giop_p-code_sets-converters-unicode.ads	f10a9aff6182d3d3799b6b6771960b74147f5113
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---           Copyright (C) 2006, Free Software Foundation, Inc.             --
+--         Copyright (C) 2006-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -25,12 +25,12 @@
 --                                                                          --
 ------------------------------------------------------------------------------

---  This package provides character data code sets converters for
---  Unicode encoding: UTF-8 for char data and UTF-16 for wchar data.
+--  This package provides character data code sets converters for Unicode
+--  encodings: UTF-8 for char data and UTF-16 for wchar data.

---  Note: Client application which use these encodings should be ready
---  to dial with multibite character sequences and avoid use of char
---  IDL type (use string instead).
+--  Note: Client application which use these encodings should be ready to deal
+--  with multibyte character sequences and avoid use of char IDL type (use
+--  string instead).

 --  Supported char native code sets:
 --    0x05010001  X/Open UTF-8; UCS Transformation Format 8 (UTF-8)
============================================================
--- src/giop/polyorb-giop_p-code_sets-converters.adb	193184b28507d543d14199313f904615a21ac0ce
+++ src/giop/polyorb-giop_p-code_sets-converters.adb	f3ed428a929080947334dc346075cd5dd2b183dd
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2004-2008, Free Software Foundation, Inc.          --
+--         Copyright (C) 2004-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -25,8 +25,6 @@
 --                                                                          --
 ------------------------------------------------------------------------------

-with Ada.Streams;
-
 with PolyORB.Initialization;
 with PolyORB.Parameters;
 with PolyORB.Representations.CDR.Common;
@@ -35,7 +33,6 @@ package body PolyORB.GIOP_P.Code_Sets.Co

 package body PolyORB.GIOP_P.Code_Sets.Converters is

-   use Ada.Streams;
    use PolyORB.Buffers;
    use PolyORB.Errors;
    use PolyORB.Representations.CDR.Common;
@@ -161,13 +158,10 @@ package body PolyORB.GIOP_P.Code_Sets.Co
    ----------

    function Find
-     (Code_Set : Code_Set_Id)
-      return Info_Lists.Element_Access
+     (Code_Set : Code_Set_Id) return Info_Lists.Element_Access
    is
       use Info_Lists;
-
       Iter : Iterator := First (Info);
-
    begin
       while not Last (Iter) loop
          if Value (Iter).Code_Set = Code_Set then
@@ -180,13 +174,10 @@ package body PolyORB.GIOP_P.Code_Sets.Co
    end Find;

    function Find
-     (Code_Set : Code_Set_Id)
-      return Wide_Info_Lists.Element_Access
+     (Code_Set : Code_Set_Id) return Wide_Info_Lists.Element_Access
    is
       use Wide_Info_Lists;
-
       Iter : Iterator := First (Wide_Info);
-
    begin
       while not Last (Iter) loop
          if Value (Iter).Code_Set = Code_Set then
@@ -204,14 +195,11 @@ package body PolyORB.GIOP_P.Code_Sets.Co

    function Get_Converter
      (Native_Code_Set : Code_Set_Id;
-      Target_Code_Set : Code_Set_Id)
-      return Converter_Access
+      Target_Code_Set : Code_Set_Id) return Converter_Access
    is
       use Conversion_Lists;
       use type Info_Lists.Element_Access;
-
       Info : constant Info_Lists.Element_Access := Find (Native_Code_Set);
-
    begin
       if Info = null then
          return null;
@@ -225,7 +213,6 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       else
          declare
             Iter : Iterator := First (Info.Conversions);
-
          begin
             while not Last (Iter) loop
                if Target_Code_Set = Value (Iter).Code_Set then
@@ -241,14 +228,11 @@ package body PolyORB.GIOP_P.Code_Sets.Co

    function Get_Converter
      (Native_Code_Set : Code_Set_Id;
-      Target_Code_Set : Code_Set_Id)
-      return Wide_Converter_Access
+      Target_Code_Set : Code_Set_Id) return Wide_Converter_Access
    is
       use Wide_Conversion_Lists;
       use type Wide_Info_Lists.Element_Access;
-
       Info : constant Wide_Info_Lists.Element_Access := Find (Native_Code_Set);
-
    begin
       if Info = null then
          return null;
@@ -262,7 +246,6 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       else
          declare
             Iter : Iterator := First (Info.Conversions);
-
          begin
             while not Last (Iter) loop
                if Target_Code_Set = Value (Iter).Code_Set then
@@ -281,26 +264,6 @@ package body PolyORB.GIOP_P.Code_Sets.Co
    --------------

    procedure Marshall
-     (Buffer    : access Buffer_Type;
-      Data      : Unsigned_Long;
-      Alignment : Alignment_Type)
-   is
-   begin
-      pragma Assert (Alignment = 4);
-      Marshall (Buffer, Data);
-   end Marshall;
-
-   procedure Marshall
-     (Buffer    : access Buffer_Type;
-      Data      : Unsigned_Short;
-      Alignment : Alignment_Type)
-   is
-   begin
-      pragma Assert (Alignment = 2);
-      Marshall (Buffer, Data);
-   end Marshall;
-
-   procedure Marshall
      (C      : ISO88591_Native_Converter;
       Buffer : access Buffers.Buffer_Type;
       Data   : Types.Char;
@@ -308,7 +271,6 @@ package body PolyORB.GIOP_P.Code_Sets.Co
    is
       pragma Unreferenced (C);
       pragma Unreferenced (Error);
-
    begin
       Marshall_Latin_1_Char (Buffer, Data);
    end Marshall;
@@ -321,7 +283,6 @@ package body PolyORB.GIOP_P.Code_Sets.Co
    is
       pragma Unreferenced (C);
       pragma Unreferenced (Error);
-
    begin
       Marshall_Latin_1_String (Buffer, Data);
    end Marshall;
@@ -333,7 +294,6 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       Error  : in out Errors.Error_Container)
    is
       pragma Unreferenced (C);
-
    begin
       if Character'Pos (Data) < 16#80# then
          Marshall (Buffer, Octet (Character'Pos (Data)));
@@ -358,12 +318,13 @@ package body PolyORB.GIOP_P.Code_Sets.Co

    begin
       Pad_Align (Buffer, 4);
+
       declare
-         Reserv : constant Reservation := Reserve (Buffer, 4);
-         Buf    : Buffer_Access        := new Buffer_Type;
-         Length : Unsigned_Long        := 0;
-         Equiv  : constant Standard.String
-           := To_String (Data) & Character'Val (16#00#);
+         Reserv : constant Reservation     := Reserve (Buffer, 4);
+         Buf    : Buffer_Access            := new Buffer_Type;
+         Length : Unsigned_Long            := 0;
+         Equiv  : constant Standard.String :=
+                    To_String (Data) & Character'Val (16#00#);

       begin
          for J in Equiv'Range loop
@@ -394,13 +355,13 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       Error  : in out Errors.Error_Container)
    is
       pragma Unreferenced (Error);
-
    begin
       if C.GIOP_1_2_Mode then
          Marshall (Buffer, Types.Octet'(2));
-         Marshall (Buffer, Unsigned_Short (Wchar'Pos (Data)), 1);
+         Unaligned_Unsigned_Short.Marshall
+           (Buffer, Unsigned_Short (Wchar'Pos (Data)));
       else
-         Marshall (Buffer, Unsigned_Short (Wchar'Pos (Data)), 2);
+         Marshall (Buffer, Unsigned_Short (Wchar'Pos (Data)));
       end if;
    end Marshall;

@@ -411,28 +372,23 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       Error  : in out Errors.Error_Container)
    is
       pragma Unreferenced (Error);
-
       Equiv : constant Wide_String := PolyORB.Types.To_Wide_String (Data);
-      Align : Alignment_Type;
-
    begin
       if C.GIOP_1_2_Mode then
          Marshall (Buffer, Unsigned_Long'(Equiv'Length * 2));
-         Align := 1;
+
       else
          Marshall (Buffer, Unsigned_Long'(Equiv'Length + 1));
-         Align := 2;
       end if;

       for J in Equiv'Range loop
          Marshall
            (Buffer,
-            Unsigned_Short (Wide_Character'Pos (Equiv (J))),
-            Align);
+            Unsigned_Short'(Wide_Character'Pos (Equiv (J))));
       end loop;

       if not C.GIOP_1_2_Mode then
-         Marshall (Buffer, Unsigned_Short'(0), Align);
+         Marshall (Buffer, Unsigned_Short'(0));
       end if;
    end Marshall;

@@ -443,9 +399,7 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       Error  : in out Errors.Error_Container)
    is
    begin
-      if Data in Surrogate_Character
-        or else Data in Invalid_Character
-      then
+      if Data in Surrogate_Character or else Data in Invalid_Character then
          Throw
            (Error,
             Data_Conversion_E,
@@ -458,11 +412,12 @@ package body PolyORB.GIOP_P.Code_Sets.Co

       if C.GIOP_1_2_Mode then
          Marshall (Buffer, Octet'(4));
-         Marshall (Buffer, BOM, 1);
-         Marshall (Buffer, Unsigned_Short'(Wchar'Pos (Data)), 1);
+         Unaligned_Unsigned_Short.Marshall (Buffer, BOM);
+         Unaligned_Unsigned_Short.Marshall
+           (Buffer, Unsigned_Short'(Wchar'Pos (Data)));

       else
-         Marshall (Buffer, Unsigned_Short'(Wchar'Pos (Data)), 2);
+         Marshall (Buffer, Unsigned_Short'(Wchar'Pos (Data)));
       end if;
    end Marshall;

@@ -473,17 +428,14 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       Error  : in out Errors.Error_Container)
    is
       Equiv : constant Wide_String := To_Wide_String (Data);
-      Align : Alignment_Type;
-
    begin
       if C.GIOP_1_2_Mode then
          Marshall (Buffer, Unsigned_Long (Equiv'Length + 1) * 2);
-         Marshall (Buffer, BOM, 1);
-         Align := 1;
+         Marshall (Buffer, BOM);
+
       else
          Marshall (Buffer, Unsigned_Long (Equiv'Length + 2));
-         Marshall (Buffer, BOM, 2);
-         Align := 2;
+         Marshall (Buffer, BOM);
       end if;

       for J in Equiv'Range loop
@@ -499,14 +451,11 @@ package body PolyORB.GIOP_P.Code_Sets.Co
             return;
          end if;

-         Marshall
-           (Buffer,
-            Unsigned_Short (Wide_Character'Pos (Equiv (J))),
-            Align);
+         Marshall (Buffer, Unsigned_Short'(Wide_Character'Pos (Equiv (J))));
       end loop;

       if not C.GIOP_1_2_Mode then
-         Marshall (Buffer, Unsigned_Short (0), 2);
+         Marshall (Buffer, Unsigned_Short'(0));
       end if;
    end Marshall;

@@ -590,9 +539,7 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       return Code_Set_Id_List
    is
       use type Info_Lists.Element_Access;
-
       Info : constant Info_Lists.Element_Access := Find (Code_Set);
-
    begin
       if Info /= null then
          return Info.Conversion_Code_Sets;
@@ -606,13 +553,10 @@ package body PolyORB.GIOP_P.Code_Sets.Co
    ------------------------------------------

    function Supported_Wchar_Conversion_Code_Sets
-     (Code_Set : Code_Set_Id)
-      return Code_Set_Id_List
+     (Code_Set : Code_Set_Id) return Code_Set_Id_List
    is
       use type Wide_Info_Lists.Element_Access;
-
       Info : constant Wide_Info_Lists.Element_Access := Find (Code_Set);
-
    begin
       if Info /= null then
          return Info.Conversion_Code_Sets;
@@ -625,24 +569,6 @@ package body PolyORB.GIOP_P.Code_Sets.Co
    -- Unmarshall --
    ----------------

-   function Unmarshall
-     (Buffer    : access Buffer_Type;
-      Alignment : Alignment_Type) return Unsigned_Long
-   is
-   begin
-      pragma Assert (Alignment = 4);
-      return Unmarshall (Buffer);
-   end Unmarshall;
-
-   function Unmarshall
-     (Buffer    : access Buffer_Type;
-      Alignment : Alignment_Type) return Unsigned_Short
-   is
-   begin
-      pragma Assert (Alignment = 2);
-      return Unmarshall (Buffer);
-   end Unmarshall;
-
    procedure Unmarshall
      (C      : ISO88591_Native_Converter;
       Buffer : access Buffers.Buffer_Type;
@@ -656,6 +582,10 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       Data := Unmarshall_Latin_1_Char (Buffer);
    end Unmarshall;

+   ----------------
+   -- Unmarshall --
+   ----------------
+
    procedure Unmarshall
      (C      : ISO88591_Native_Converter;
       Buffer : access Buffers.Buffer_Type;
@@ -664,7 +594,6 @@ package body PolyORB.GIOP_P.Code_Sets.Co
    is
       pragma Unreferenced (C);
       pragma Unreferenced (Error);
-
    begin
       Data := Unmarshall_Latin_1_String (Buffer);
    end Unmarshall;
@@ -735,7 +664,6 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       Error  : in out Errors.Error_Container)
    is
       pragma Unreferenced (Error);
-
       Length : Octet;
    begin
       if C.GIOP_1_2_Mode then
@@ -745,11 +673,11 @@ package body PolyORB.GIOP_P.Code_Sets.Co
             raise Program_Error;
             --  XXX Raise Marshall exception ?
          else
-            Data := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer, 1)));
+            Data := Wchar'Val (Unaligned_Unsigned_Short.Unmarshall (Buffer));
          end if;

       else
-         Data := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer, 2)));
+         Data := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer)));
       end if;
    end Unmarshall;

@@ -764,24 +692,20 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       Length : constant Unsigned_Long := Unmarshall (Buffer);
       Result : Standard.Wide_String (1 .. Integer (Length));
       Last   : Natural := Result'First - 1;
-      Align  : Alignment_Type;
    begin
       if C.GIOP_1_2_Mode then
          if Length mod 2 /= 0 then
             raise Program_Error;
             --  XXX Raise Marshall exception ?
          end if;
-
          Last  := Natural (Length / 2);
-         Align := 1;

       else
          Last  := Natural (Length);
-         Align := 2;
       end if;

       for J in Result'First .. Last loop
-         Result (J) := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer, Align)));
+         Result (J) := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer)));
       end loop;

       if not C.GIOP_1_2_Mode then
@@ -805,7 +729,7 @@ package body PolyORB.GIOP_P.Code_Sets.Co
             Length : constant Octet := Unmarshall (Buffer);

          begin
-            Code := Unmarshall (Buffer, 1);
+            Code := Unaligned_Unsigned_Short.Unmarshall (Buffer);

             if Length = 2 then
                Data := Wchar'Val (Code);
@@ -816,7 +740,8 @@ package body PolyORB.GIOP_P.Code_Sets.Co
                   --  XXX Value marshalled in reverse endian-ness

                elsif Code = BOM then
-                  Data := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer, 1)));
+                  Data := Wchar'Val
+                            (Unaligned_Unsigned_Short.Unmarshall (Buffer));

                else
                   raise Program_Error;
@@ -828,13 +753,13 @@ package body PolyORB.GIOP_P.Code_Sets.Co
          end;

       else
-         Code := Unmarshall (Buffer, 2);
+         Code := Unmarshall (Buffer);
          if Code = Reverse_BOM then
             raise Program_Error;
             --  XXX Value marshalled in reverse endian-ness

          elsif Code = BOM then
-            Data := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer, 2)));
+            Data := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer)));

          else
             Data := Wchar'Val (Code);
@@ -863,7 +788,6 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       Result : Standard.Wide_String (1 .. Integer (Length));
       First  : Positive;
       Last   : Natural;
-      Align  : Alignment_Type;
       Code   : Unsigned_Short;
    begin
       if C.GIOP_1_2_Mode then
@@ -875,19 +799,17 @@ package body PolyORB.GIOP_P.Code_Sets.Co
             Data := To_PolyORB_Wide_String (Wide_String'(""));
             return;
          end if;
-
          Last  := Natural (Length / 2);
-         Align := 1;
+
       else
          Last  := Natural (Length);
-         Align := 2;
       end if;

-      Code := Unmarshall (Buffer, Align);
+      Code := Unmarshall (Buffer);

       if Code = Reverse_BOM then
          raise Program_Error;
-         --  Value encoded in reverse endian-ness.
+         --  Value encoded in reverse endian-ness

       elsif Code = BOM then
          Last  := Last - 1;
@@ -898,7 +820,7 @@ package body PolyORB.GIOP_P.Code_Sets.Co
       end if;

       for J in First .. Last loop
-         Result (J) := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer, Align)));
+         Result (J) := Wchar'Val (Unsigned_Short'(Unmarshall (Buffer)));

          if Result (J) in Surrogate_Character
            or else Result (J) in Invalid_Character
@@ -929,15 +851,16 @@ package body PolyORB.GIOP_P.Code_Sets.Co

       use PolyORB.Parameters;

-      --  The following parameters force the registration of
-      --  additional "fallback" code sets for char and wchar
-      --  data. This is useful for interoperation with ORB
-      --  with broken char sets negotiation support.
+      --  These parameters force the registration of additional fallback code
+      --  sets for char and wchar data. This is useful for interoperation with
+      --  ORBs with broken charsets negotiation support.

-      Char_Fallback      : constant Boolean
-        := Get_Conf ("giop", "giop.add_char_fallback_code_set", False);
-      Wide_Char_Fallback : constant Boolean
-        := Get_Conf ("giop", "giop.add_wchar_fallback_code_set", False);
+      Char_Fallback      : constant Boolean := Get_Conf
+                             ("giop", "giop.add_char_fallback_code_set",
+                              Default => False);
+      Wide_Char_Fallback : constant Boolean := Get_Conf
+                             ("giop", "giop.add_wchar_fallback_code_set",
+                              Default => False);

    begin
       --  Register supported char code sets (ISO-8859-1)
============================================================
--- src/giop/polyorb-giop_p-code_sets-converters.ads	0c3526dff0da91ce3ed544bbdcd1c546ef62ca8c
+++ src/giop/polyorb-giop_p-code_sets-converters.ads	8e2671a6d99fe2a59a3dc016815618a068c918c4
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---         Copyright (C) 2004-2006, Free Software Foundation, Inc.          --
+--         Copyright (C) 2004-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -27,17 +27,23 @@

 --  Code sets converters

---  Each code set converter process conversion between native code set
---  and transmission code set and marshalling/unmarshalling of data.
---  For each pair of native/transmission code sets we define it's own
---  converter.
+--  Each code set converter process conversion between native code set and
+--  transmission code set and marshalling/unmarshalling of data. A converter is
+--  defined for each pair of native/transmission code sets.

+with GNAT.Byte_Swapping;
+
 with PolyORB.Buffers;
+with PolyORB.Utils.Buffers;
+pragma Elaborate_All (PolyORB.Utils.Buffers);

 package PolyORB.GIOP_P.Code_Sets.Converters is

-   type Converter is abstract tagged private;
+   ----------------------------------------
+   -- Narrow character converter (CCS-C) --
+   ----------------------------------------

+   type Converter is abstract tagged limited private;
    type Converter_Access is access all Converter'Class;

    procedure Marshall
@@ -68,8 +74,11 @@ package PolyORB.GIOP_P.Code_Sets.Convert
       Error  : in out Errors.Error_Container)
       is abstract;

-   type Wide_Converter is abstract tagged private;
+   --------------------------------------
+   -- Wide character converter (CCS-W) --
+   --------------------------------------

+   type Wide_Converter is abstract tagged limited private;
    type Wide_Converter_Access is access all Wide_Converter'Class;

    procedure Set_GIOP_1_2_Mode (C : in out Wide_Converter);
@@ -105,38 +114,32 @@ package PolyORB.GIOP_P.Code_Sets.Convert

    function Get_Converter
      (Native_Code_Set : Code_Set_Id;
-      Target_Code_Set : Code_Set_Id)
-      return Converter_Access;
-   --  Return converter for processing conversion between
-   --  corresponding code sets for char data.
+      Target_Code_Set : Code_Set_Id) return Converter_Access;
+   --  Return converter for processing conversion between corresponding code
+   --  sets for char data.

    function Get_Converter
      (Native_Code_Set : Code_Set_Id;
-      Target_Code_Set : Code_Set_Id)
-      return Wide_Converter_Access;
-   --  Return converter for processing conversion between
-   --  corresponding code sets for wchar data.
+      Target_Code_Set : Code_Set_Id) return Wide_Converter_Access;
+   --  Return converter for processing conversion between corresponding code
+   --  sets for wchar data.

    function Supported_Char_Conversion_Code_Sets
-     (Code_Set : Code_Set_Id)
-      return Code_Set_Id_List;
-   --  Return list of Code_Set_Id supported as conversion code set for
-   --  defined native code set of char data.
+     (Code_Set : Code_Set_Id) return Code_Set_Id_List;
+   --  Return list of Code_Set_Id supported as conversion code set for defined
+   --  native code set of char data (CCS-C).

    function Supported_Wchar_Conversion_Code_Sets
      (Code_Set : Code_Set_Id)
       return Code_Set_Id_List;
-   --  Return list of Code_Set_Id supported as conversion code set for
-   --  defined native code set of wchar data.
+   --  Return list of Code_Set_Id supported as conversion code set for defined
+   --  native code set of wchar data (CCS-W).

 private

-   type Converter_Factory is
-     access function return Converter_Access;
+   type Converter_Factory is access function return Converter_Access;
+   type Wide_Converter_Factory is access function return Wide_Converter_Access;

-   type Wide_Converter_Factory is
-     access function return Wide_Converter_Access;
-
    procedure Register_Native_Code_Set
      (Code_Set : Code_Set_Id;
       Native   : Converter_Factory;
@@ -161,38 +164,32 @@ private
       Factory    : Wide_Converter_Factory);
    --  Register additional conversion code set

-   type Converter is abstract tagged null record;
+   type Converter is abstract tagged limited null record;

-   type Wide_Converter is abstract tagged record
+   type Wide_Converter is abstract tagged limited record
       GIOP_1_2_Mode : Boolean := False;
    end record;

-   --  Shared marshalling subprogram (for use in another converters)
+   ----------------------------------------------------
+   -- Supporting routines for unaligned unsigned I/O --
+   ----------------------------------------------------

-   procedure Marshall
-     (Buffer    : access Buffers.Buffer_Type;
-      Data      : Types.Unsigned_Short;
-      Alignment : Buffers.Alignment_Type);
-   --  Marshall Unsigned_Short as big endian value with specified Alignment
+   use PolyORB.Utils.Buffers;

-   function Unmarshall
-     (Buffer    : access Buffers.Buffer_Type;
-      Alignment : Buffers.Alignment_Type)
-      return Types.Unsigned_Short;
-   --  Unmarshall Unsigned_Short as big endian value with specified Alignment
+   function Swapped is
+     new GNAT.Byte_Swapping.Swapped2 (PolyORB.Types.Unsigned_Short);

-   procedure Marshall
-     (Buffer    : access Buffers.Buffer_Type;
-      Data      : Types.Unsigned_Long;
-      Alignment : Buffers.Alignment_Type);
-   --  Marshall Unsigned_Long as big endian value with specified Alignment
+   package Unaligned_Unsigned_Short is
+     new Align_Transfer_Elementary
+       (T => PolyORB.Types.Unsigned_Short, With_Alignment => False);

-   function Unmarshall
-     (Buffer    : access Buffers.Buffer_Type;
-      Alignment : Buffers.Alignment_Type)
-      return Types.Unsigned_Long;
-   --  Unmarshall Unsigned_Long as big endian value with specified Alignment
+   function Swapped is
+     new GNAT.Byte_Swapping.Swapped4 (PolyORB.Types.Unsigned_Long);

+   package Unaligned_Unsigned_Long is
+     new Align_Transfer_Elementary
+       (T => PolyORB.Types.Unsigned_Long, With_Alignment => False);
+
    --  Ada95 data converters

    type ISO88591_Native_Converter is new Converter with null record;
============================================================
--- src/giop/polyorb-giop_p-code_sets.ads	4c2c2df8ba5e97072fabb30277c28bde89abef1c
+++ src/giop/polyorb-giop_p-code_sets.ads	61f63c442ab3b9944f1a6a6c4af8403919f55bc9
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---         Copyright (C) 2004-2006, Free Software Foundation, Inc.          --
+--         Copyright (C) 2004-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -50,11 +50,12 @@ package PolyORB.GIOP_P.Code_Sets is
    Char_Data_Fallback_Code_Set  : constant Code_Set_Id := UTF_8_Code_Set;
    Wchar_Data_Fallback_Code_Set : constant Code_Set_Id := UTF_16_Code_Set;

-   --  Ada95 Native Code_Set_Ids. See RM 3.5.2
+   --  Ada 95 Native Code_Set_Ids. See RM 3.5.2

-   Ada95_Native_Character_Code_Set : constant Code_Set_Id := Latin_1_Code_Set;
-   Ada95_Native_Wide_Character_Code_Set : constant Code_Set_Id
-     := UCS_2_Level_1_Code_Set;
+   Ada95_Native_Character_Code_Set      : constant Code_Set_Id :=
+                                            Latin_1_Code_Set;
+   Ada95_Native_Wide_Character_Code_Set : constant Code_Set_Id :=
+                                            UCS_2_Level_1_Code_Set;

    type Character_Set_Id is new PolyORB.Types.Unsigned_Short;

@@ -86,13 +87,13 @@ package PolyORB.GIOP_P.Code_Sets is
      Fallback : Code_Set_Id;
      TCS      :    out Code_Set_Id;
      Error    : in out PolyORB.Errors.Error_Container);
-   --  Proceed code set negotiation based on:
+   --  Select transmission code set to use based on:
    --   - CNCS - Client Native Code Set
    --   - CCCS - Client Conversion Code Sets
    --   - SNCS - Server Native Code Set
    --   - SCCS - Server Conversion Code Sets
    --  Fallback argument provide fallback code sets.
-   --  Return negotiated transmission code set (TCS) or throw
+   --  Returns negotiated transmission code set (TCS) or raises
    --  Codeset_Incompatible error if code sets are incompatible.

 private
============================================================
--- src/polyorb-any.adb	09c5147667ba43863432c92e9b8302165f6e72f9
+++ src/polyorb-any.adb	db5acf259c2ec53c0e84942354f5243c94fb0daa
@@ -1616,19 +1616,15 @@ package body PolyORB.Any is
    -----------

    function Image (NV : NamedValue) return Standard.String is
+      function Flag_Name (F : Flags) return Standard.String;
+      pragma Inline (Flag_Name);
+      --  Return string representation for F, which denotes an argument mode

       ---------------
       -- Flag_Name --
       ---------------

-      function Flag_Name
-        (F : Flags)
-        return Standard.String;
-      pragma Inline (Flag_Name);
-
-      function Flag_Name
-        (F : Flags)
-        return Standard.String is
+      function Flag_Name (F : Flags) return Standard.String is
       begin
          case F is
             when ARG_IN =>
@@ -1646,8 +1642,7 @@ package body PolyORB.Any is

    begin
       return Flag_Name (NV.Arg_Modes) & " "
-        & To_Standard_String (NV.Name)
-        & " = " & Image (NV.Argument);
+        & To_Standard_String (NV.Name) & " = " & Image (NV.Argument);
    end Image;

    ----------------------
============================================================
--- src/polyorb-binding_data-neighbour.adb	2ac8637ba1441461c892ea280dad41cd6c48afba
+++ src/polyorb-binding_data-neighbour.adb	81d3e49f802c88c567bc0f34e6c5e3c3cb05eee3
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---           Copyright (C) 2006, Free Software Foundation, Inc.             --
+--         Copyright (C) 2006-2008, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -128,8 +128,14 @@ package body PolyORB.Binding_Data.Neighb
    -----------

    function Image (Prof : Neighbour_Profile_Type) return String is
+      use Binding_Objects;
+      BO_Acc : constant Binding_Object_Access :=
+                 Binding_Object_Access
+                   (Smart_Pointers.Entity_Of (Prof.Target_Binding_Object));
    begin
-      return "Neighbour Profile - Object_Id: "
+      return "Neighbour (from "
+        & Image (Get_Profile (BO_Acc).all)
+        & ") - Object_Id: "
         & PolyORB.Objects.Image (Prof.Object_Id.all);
    end Image;

============================================================
--- src/polyorb-obj_adapters-group_object_adapter.adb	9db1d1e5f760004292db0680d58f4eee022bbd00
+++ src/polyorb-obj_adapters-group_object_adapter.adb	d85a08db2b531b4b905c21717a53b1fbc1b9b77e
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2001-2008, Free Software Foundation, Inc.          --
+--         Copyright (C) 2001-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -279,12 +279,11 @@ package body PolyORB.Obj_Adapters.Group_
       use type PolyORB.Servants.Servant_Access;

    begin
-      pragma Debug (C, O ("Find_Servant " & Oid_To_Hex_String (Id.all)));
+      pragma Debug (C, O ("Find_Servant " & Image (Id.all)));

       Enter (GOA.Lock);

-      Servant := Lookup (GOA.Registered_Groups,
-                         Oid_To_Hex_String (Id.all), null);
+      Servant := Lookup (GOA.Registered_Groups, Image (Id.all), null);
       if Servant = null then
          pragma Debug (C, O ("Servant not found"));
          Throw (Error,
============================================================
--- src/polyorb-objects.adb	959c555b6f967f6ba4dd3ab2fa018bbe35075426
+++ src/polyorb-objects.adb	0ed9db0bfad54edbb55611fe9426480cf62488e9
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2001-2006, Free Software Foundation, Inc.          --
+--         Copyright (C) 2001-2008, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -56,11 +56,9 @@ package body PolyORB.Objects is
    function String_To_Oid (S : String) return Object_Id is
       A : Object_Id (Stream_Element_Offset (S'First)
                   .. Stream_Element_Offset (S'Last));
+      for A'Address use S'Address;
+      pragma Import (Ada, A);
    begin
-      for J in A'Range loop
-         A (J) := Stream_Element (Character'Pos (S (Integer (J))));
-      end loop;
-
       return A;
    end String_To_Oid;

@@ -68,6 +66,19 @@ package body PolyORB.Objects is
    -- Image --
    -----------

-   function Image (Oid : Object_Id) return String renames Oid_To_Hex_String;
+   function Image (Oid : Object_Id) return String is
+      Oid_S  : String (1 .. Oid'Length);
+      for Oid_S'Address use Oid'Address;
+      pragma Import (Ada, Oid_S);

+      Result : String (1 .. Oid'Length) := Oid_S;
+   begin
+      for J in Result'Range loop
+         if Character'Pos (Result (J)) not in 32 .. 127 then
+            Result (J) := '.';
+         end if;
+      end loop;
+      return Result;
+   end Image;
+
 end PolyORB.Objects;
============================================================
--- src/polyorb-orb_controller.adb	2ef8d027899ad1efc62a72945728cf17cab4bdfe
+++ src/polyorb-orb_controller.adb	4d467d6908387a168e5d70ead74b691ad2b5d134
@@ -188,11 +188,14 @@ package body PolyORB.ORB_Controller is

    function Is_Locally_Terminated
      (O                      : access ORB_Controller;
-      Expected_Running_Tasks : Natural := 1) return Boolean
+      Expected_Running_Tasks : Natural) return Boolean
    is
       use PolyORB.Tasking.Threads;
+      Result : Boolean;
    begin
-      pragma Debug (C2, O2 ("Is_Locally_Terminated: " & Status (O.all)));
+      pragma Debug
+        (C1, O1 ("Is_Locally_Terminated (exp" & Expected_Running_Tasks'Img
+                   & "R): " & Status (O.all)));

       if Get_Count (O.Summary, Kind => Transient) > 0
         or else Get_Count (O.Summary, State => Running)
@@ -200,14 +203,16 @@ package body PolyORB.ORB_Controller is
         or else Get_Count (O.Summary, State => Unscheduled) > 0
         or else Has_Pending_Job (O)
       then
-         return False;
+         Result := False;
+      else
+         Result := (Awake_Count
+                     - Independent_Count
+                     - Get_Count (O.Summary, State => Idle)
+                     - Get_Count (O.Summary, State => Blocked)
+                     = Expected_Running_Tasks);
       end if;
-
-      return (Awake_Count
-               - Independent_Count
-               - Get_Count (O.Summary, State => Idle)
-               - Get_Count (O.Summary, State => Blocked)
-               = Expected_Running_Tasks);
+      pragma Debug (C1, O1 ("-> " & Result'Img));
+      return Result;
    end Is_Locally_Terminated;

    ---------------
@@ -435,10 +440,11 @@ package body PolyORB.ORB_Controller is
    begin
       pragma Debug (C1, O1 ("Unregister_Task: enter"));
       pragma Assert (State (TI.all) = Terminated);
+
       Task_Removed (O.Summary, TI.all);
-      Notify_Event
-        (ORB_Controller'Class (O.all)'Access,
-         Event'(Kind => Task_Unregistered));
+      Notify_Event (ORB_Controller'Class (O.all)'Access,
+        Event'(Kind => Task_Unregistered));
+
       pragma Debug (C2, O2 (Status (O.all)));
       pragma Debug (C1, O1 ("Unregister_Task: leave"));
    end Unregister_Task;
============================================================
--- src/polyorb-orb_controller.ads	5a604e35aa437be46a33df7d98f5ea8329ddc542
+++ src/polyorb-orb_controller.ads	4134370f90a9884f5b41f5b1b788baaf1d0436d9
@@ -216,7 +216,7 @@ package PolyORB.ORB_Controller is

    function Is_Locally_Terminated
      (O                      : access ORB_Controller;
-      Expected_Running_Tasks : Natural := 1) return Boolean;
+      Expected_Running_Tasks : Natural) return Boolean;
    --  Return true if the local node is locally terminated.
    --  Expected_Running_Tasks is the number of expected non terminated tasks
    --  when local termination is computed.
============================================================
--- src/polyorb-requests.adb	60d26595e6e760c2a9605b8aba9bfd37feff484d
+++ src/polyorb-requests.adb	4cb95ba9c1bbf4af82a2e4382efc0bc10e3c629f
@@ -52,34 +52,34 @@ package body PolyORB.Requests is
       Src_Args        :        Any.NVList.Ref;
       Direction       :        Any.Flags;
       Error           : in out Error_Container;
-      Ignore_Src_Mode :        Boolean        := True;
-      Can_Extend      :        Boolean        := False);
+      Ignore_Src_Mode :        Boolean;
+      Can_Extend      :        Boolean := False);

    procedure Pump_Up_Arguments_By_Position
      (Dst_Args        : in out Any.NVList.Ref;
       Src_Args        :        Any.NVList.Ref;
       Direction       :        Any.Flags;
       Error           : in out Error_Container;
-      Ignore_Src_Mode :        Boolean        := True;
-      Can_Extend      :        Boolean        := False);
+      Ignore_Src_Mode :        Boolean;
+      Can_Extend      :        Boolean := False);

    procedure Pump_Up_Arguments_By_Name
      (Dst_Args        : in out Any.NVList.Ref;
       Src_Args        :        Any.NVList.Ref;
       Direction       :        Any.Flags;
       Error           : in out Error_Container;
-      Ignore_Src_Mode :        Boolean        := True;
-      Can_Extend      :        Boolean        := False);
+      Ignore_Src_Mode :        Boolean;
+      Can_Extend      :        Boolean := False);

-   --  True arguments of direction Direction (or INOUT) from received
-   --  protocol arguments list P_Args (either from a request, on
-   --  server side, or for a reply, on client side) into A_Args.  If
-   --  Can_Extend is set to True and Src_Args contains extra arguments
-   --  that are not required by Dst_Args, then they are appended.
+   --  True arguments of direction Direction (or INOUT) from received protocol
+   --  arguments list P_Args (either from a request, on server side, or for a
+   --  reply, on client side) into A_Args. If Can_Extend is set to True and
+   --  Src_Args contains extra arguments that are not required by Dst_Args,
+   --  then they are appended.
    --
-   --  Each variant of the Pump_Up_Arguments procedure corresponds to
-   --  a reconciliation method, according to the identification
-   --  capabilities of the personalities.
+   --  Each variant of the Pump_Up_Arguments procedure corresponds to a
+   --  reconciliation method, according to the identification capabilities of
+   --  the personalities.

    --------------------
    -- Create_Request --
@@ -183,7 +183,7 @@ package body PolyORB.Requests is
       Src_Args        :        Any.NVList.Ref;
       Direction       :        Any.Flags;
       Error           : in out Error_Container;
-      Ignore_Src_Mode :        Boolean        := True;
+      Ignore_Src_Mode :        Boolean;
       Can_Extend      :        Boolean        := False)
    is
       use PolyORB.Any;
@@ -202,51 +202,45 @@ package body PolyORB.Requests is

       pragma Assert (Direction = ARG_IN or else Direction = ARG_OUT);

-      --  When Direction is ARG_IN, we are a server and we
-      --  are pumping arguments from an incoming request message
-      --  into the request that will be processed by the
-      --  actual application object. In this case, we know
-      --  that arguments in Dst_Args have their correct canonical
-      --  modes and names. We assume that Src_Args only contain
-      --  arguments whose actual mode (as specifid in Dst_Args) is
-      --  ARG_IN or ARG_INOUT, possibly without names. If without
-      --  names, we assume that they are in the order of Dst_Args.
+      --  When Direction is ARG_IN, we are a server and we are pumping
+      --  arguments from an incoming request message into the request that will
+      --  be processed by the actual application object. In this case, we know
+      --  that arguments in Dst_Args have their correct canonical modes and
+      --  names. We assume that Src_Args only contain arguments whose actual
+      --  mode (as specifid in Dst_Args) is ARG_IN or ARG_INOUT, possibly
+      --  without names. If without names, we assume that they are in the order
+      --  of Dst_Args.

-      --  When direction is ARG_OUT, we are a client and
-      --  we are pumping up INOUT and OUT arguments from an
-      --  incoming reply message into the request that will be
-      --  handed back to the client appplication object.
-      --  (no return value must be present in Src_Args, only
-      --  actual arguments). We assue that Src_Args only contain
-      --  arguments whose actual mode is ARG_INOUT or ARG_OUT,
-      --  possibly without names, and if without names in the
-      --  order of Dst_Args.
+      --  When direction is ARG_OUT, we are a client and we are pumping up
+      --  INOUT and OUT arguments from an incoming reply message into the
+      --  request that will be handed back to the client appplication object.
+      --  (no return value must be present in Src_Args, only actual arguments).
+      --  We assume that Src_Args only contain arguments whose actual mode is
+      --  ARG_INOUT or ARG_OUT, possibly without names, and if without names in
+      --  the order of Dst_Args.

-      --  Note that we cannot rely on the mode indications in
-      --  Src_Args because some protocols (eg SOAP) do not
-      --  set it correcly (more specifically SOAP does not support
-      --  deferred unmarshalling, and insist on unmarshalling Self.Args
-      --  before Arguments is called. Consequence: 'OUT' mode arguments
-      --  might be missing in Self.Args, and 'INOUT' arguments might
-      --  be marked as 'IN'. Also, there is no guarantee that the order
-      --  of arguments is the same in Args and Self.Args.)
+      --  Note that we cannot rely on the mode indications in Src_Args because
+      --  some protocols (eg SOAP) do not set it correcly (more specifically
+      --  SOAP does not support deferred unmarshalling, and insist on
+      --  unmarshalling Self.Args before Arguments is called. Consequence:
+      --  'OUT' mode arguments might be missing in Self.Args, and 'INOUT'
+      --  arguments might be marked as 'IN'. Also, there is no guarantee that
+      --  the order of arguments is the same in Args and Self.Args.)

       while not Last (Dst_It) loop

          declare
             Dst_Arg : constant Element_Access := Value (Dst_It);
-
          begin
             if Dst_Arg.Arg_Modes = ARG_INOUT
               or else Dst_Arg.Arg_Modes = Direction
             then

-               --  This arguments needs to be pumped up from the
-               --  Src_Args list. If Ignore_Arg_Mode is True,
-               --  we assume that Src contains only arguments
-               --  that actually need to be copied, else we check
-               --  the arg modes of Src args and copy only those
-               --  that need to, according to Direction.
+               --  This arguments needs to be pumped up from the Src_Args list.
+               --  If Ignore_Arg_Mode is True, we assume that Src contains only
+               --  arguments that actually need to be copied, else we check the
+               --  arg modes of Src args and copy only those that need to,
+               --  according to Direction.

                loop
                   declare
@@ -274,14 +268,12 @@ package body PolyORB.Requests is
                      else
                         Next (Src_It);
                         if Last (Src_It) then
-                           declare
-                              Member : constant System_Exception_Members
-                                := (Minor => 1, Completed => Completed_No);
-                           begin
-                              Throw (Error, Bad_Param_E, Member);
-                              pragma Debug (C, O ("arg not found"));
-                              return;
-                           end;
+                           pragma Debug (C, O ("argument not found"));
+                           Throw
+                             (Error, Bad_Param_E,
+                              System_Exception_Members'
+                                (Minor => 1, Completed => Completed_No));
+                           return;
                         end if;
                      end if;
                   end;
@@ -295,7 +287,8 @@ package body PolyORB.Requests is
       if Can_Extend then
          pragma Debug (C, O ("Appending remaining arguments"));
          --  If Dst_Args is an extensible NV_List, then we append the
-         --  remaining Src_Args
+         --  remaining Src_Args.
+
          while not Last (Src_It) loop
             if Ignore_Src_Mode
               or else Value (Src_It).Arg_Modes = ARG_INOUT
@@ -317,8 +310,8 @@ package body PolyORB.Requests is
       Src_Args        :        Any.NVList.Ref;
       Direction       :        Any.Flags;
       Error           : in out Error_Container;
-      Ignore_Src_Mode :        Boolean        := True;
-      Can_Extend      :        Boolean        := False)
+      Ignore_Src_Mode :        Boolean;
+      Can_Extend      :        Boolean := False)
    is
       use PolyORB.Components;

@@ -351,12 +344,11 @@ package body PolyORB.Requests is
               or else Value (Dst_It).Arg_Modes = Direction
             then

-               --  This arguments needs to be pumped up from the
-               --  Src_Args list. If Ignore_Arg_Mode is True,
-               --  we assume that Src contains only arguments
-               --  that actually need to be copied, else we check
-               --  the arg modes of Src args and copy only those
-               --  that need to, according to Direction.
+               --  This arguments needs to be pumped up from the Src_Args list.
+               --  If Ignore_Arg_Mode is True, we assume that Src contains only
+               --  arguments that actually need to be copied, else we check the
+               --  arg modes of Src args and copy only those that need to,
+               --  according to Direction.

                Src_It := First (List_Of (Src_Args).all);
                Src_Idx := Copied_Src_Args'First;
@@ -393,14 +385,12 @@ package body PolyORB.Requests is
                end loop;

                if not Src_Arg_Found then
-                  declare
-                     Member : constant System_Exception_Members
-                       := (Minor => 1, Completed => Completed_No);
-                  begin
-                     Throw (Error, Bad_Param_E, Member);
-                     pragma Debug (C, O ("arg not found"));
-                     return;
-                  end;
+                  pragma Debug (C, O ("argument not found"));
+                  Throw
+                    (Error, Bad_Param_E,
+                     System_Exception_Members'
+                       (Minor => 1, Completed => Completed_No));
+                  return;
                end if;
             end if;
          end;
@@ -408,8 +398,8 @@ package body PolyORB.Requests is
       end loop;

       if Can_Extend then
-         --  If Dst_Args is an extensible NV_List, then we append the
-         --  remaining Src_Args
+         --  If Dst_Args is an extensible NV_List, then we append the remaining
+         --  Src_Args.

          Src_It := First (List_Of (Src_Args).all);
          Src_Idx := Copied_Src_Args'First;
@@ -439,8 +429,8 @@ package body PolyORB.Requests is
       Src_Args        :        Any.NVList.Ref;
       Direction       :        Any.Flags;
       Error           : in out Error_Container;
-      Ignore_Src_Mode :        Boolean        := True;
-      Can_Extend      :        Boolean        := False)
+      Ignore_Src_Mode :        Boolean;
+      Can_Extend      :        Boolean := False)
    is
       use PolyORB.Components;

@@ -450,15 +440,13 @@ package body PolyORB.Requests is
       use PolyORB.Any.NVList.Internals.NV_Lists;

       function Name_Exists
-        (Name : Types.Identifier; From : Iterator)
-         return Boolean;
-      --  True iff the list on which From iterates contains
-      --  a namedvalue whose name is Name between the position
-      --  denoted by From and the end of the list.
+        (Name : Types.Identifier; From : Iterator) return Boolean;
+      --  True if, and only if, the list on which From iterates contains a
+      --  NamedValue whose name is Name between the position denoted by From
+      --  and the end of the list.

       function Name_Exists
-        (Name : Types.Identifier; From : Iterator)
-         return Boolean
+        (Name : Types.Identifier; From : Iterator) return Boolean
       is
          It : Iterator := From;
       begin
@@ -481,8 +469,8 @@ package body PolyORB.Requests is
       Src_It : Iterator;
       Copy_Argument : Boolean;
       Identification_By_Name, Identification_By_Position : Boolean := True;
-      --  By default, we assume that arguments are identified by both
-      --  name and position (this is the ideal case).
+      --  By default, we assume that arguments are identified by both name and
+      --  position (this is the ideal case).

    begin
       if Same_Entity (Src_Args, Dst_Args) then
@@ -501,12 +489,11 @@ package body PolyORB.Requests is
               or else Value (Dst_It).Arg_Modes = Direction
             then

-               --  This arguments needs to be pumped up from the
-               --  Src_Args list. If Ignore_Arg_Mode is True,
-               --  we assume that Src contains only arguments
-               --  that actually need to be copied, else we check
-               --  the arg modes of Src args and copy only those
-               --  that need to, according to Direction.
+               --  This arguments needs to be pumped up from the Src_Args list.
+               --  If Ignore_Arg_Mode is True, we assume that Src contains only
+               --  arguments that actually need to be copied, else we check the
+               --  arg modes of Src args and copy only those that need to,
+               --  according to Direction.

                Src_It := First (List_Of (Src_Args).all);
                Src_Idx := Copied_Src_Args'First;
@@ -514,8 +501,8 @@ package body PolyORB.Requests is
                                 & To_String (Value (Dst_It).Name)));
                loop
                   Copy_Argument := False;
-                  --  By default, we will not copy the argument: it is
-                  --  up to the algorithm to decide it.
+                  --  By default, we will not copy the argument: it is up to
+                  --  the algorithm to decide it.

                   if (Ignore_Src_Mode
                       or else Value (Src_It).Arg_Modes = ARG_INOUT
@@ -545,10 +532,9 @@ package body PolyORB.Requests is
                               then
                                  Copy_Argument := True;
                                  --  The name does not match. It is not a
-                                 --  problem if we are identifying
-                                 --  arguments by their positions and not
-                                 --  by their names, since we then do not
-                                 --  consider the names.
+                                 --  problem if we are identifying arguments by
+                                 --  their positions and not by their names,
+                                 --  since we then do not consider the names.

                               elsif Identification_By_Name
                                 and then Name_Exists
@@ -556,94 +542,84 @@ package body PolyORB.Requests is
                               then
                                  Identification_By_Position := False;
                                  Copy_Argument := False;
-                                 --  If the name does not match, but
-                                 --  exists, and we are performing
-                                 --  identification by name (and possibly
-                                 --  identification by position), then we
-                                 --  assume that the argument will match
-                                 --  by name later and then we are not
-                                 --  performing identification by
-                                 --  position any more. Thus
-                                 --  identification by name has the
-                                 --  priority.
+                                 --  If the name does not match, but exists,
+                                 --  and we are performing identification by
+                                 --  name (and possibly identification by
+                                 --  position), then we assume that the
+                                 --  argument will match by name later and then
+                                 --  we are not performing identification by
+                                 --  position any more. Thus identification by
+                                 --  name has the priority.

                               else
                                  Identification_By_Name := False;
                                  pragma Debug (C, O ("no more ident by name"));
-                                 --  If we were identifying the arguments
-                                 --  by their names and the name does not
-                                 --  match and does not exist in the hash
-                                 --  table, then we cannot perform such
-                                 --  identification any more.
+                                 --  If we were identifying the arguments by
+                                 --  their names and the name does not match
+                                 --  and does not exist in the hash table, then
+                                 --  we cannot perform such identification any
+                                 --  more.

                                  if Identification_By_Position then
                                     Copy_Argument := True;
                                  else
-                                    declare
-                                       Member : constant
-                                         System_Exception_Members
-                                         := (Minor => 1,
-                                             Completed => Completed_No);
-                                    begin
-                                       Throw (Error, Bad_TypeCode_E, Member);
-                                       pragma Debug (C, O ("dead end"));
-                                       return;
+                                    --  We must identify the arguments by name
+                                    --  or by position. Bail out if neither is
+                                    --  possible.

-                                    --  We must identify the arguments either
-                                    --  by their name or their position. If
-                                    --  not, this is an error.
-                                    end;
+                                    pragma Debug (C, O ("dead end"));
+                                    Throw
+                                      (Error, Bad_TypeCode_E,
+                                       System_Exception_Members'
+                                         (Minor => 1,
+                                          Completed => Completed_No));
+                                    return;
                                  end if;
                               end if;
                            end if;
                         else
                            Identification_By_Position := False;
                            pragma Debug (C, O ("no more ident by pos"));
+
                            --  If we were identifying arguments by their
-                           --  positions, the types should have matched
-                           --  (first unused src_arg with first unused
-                           --  dst_arg). This is not the case, so we are
-                           --  not identifying arguments by their
-                           --  positions.
+                           --  positions, the types should have matched (first
+                           --  unused src_arg with first unused dst_arg). This
+                           --  is not the case, so we are not identifying
+                           --  arguments by their positions.

                            if Identification_By_Name then
                               if not Name_Exists
                                 (Value (Dst_It).Name, From => Src_It)
                               then
-                                 --  If the name does not exist, this
-                                 --  means that we will never be able to
-                                 --  make this argument match.
-                                 declare
-                                    Member : constant System_Exception_Members
-                                      := (Minor => 1,
-                                          Completed => Completed_No);
-                                 begin
-                                    Throw (Error, Bad_Param_E, Member);
-                                    pragma Debug (C, O ("name not found"));
-                                    return;
-                                 end;
+                                 --  If the name does not exist, this means
+                                 --  that we will never be able to make this
+                                 --  argument match.
+
+                                 pragma Debug (C, O ("name not found"));
+                                 Throw
+                                   (Error, Bad_Param_E,
+                                    System_Exception_Members'
+                                      (Minor => 1, Completed => Completed_No));
+                                 return;
                               end if;

-                              --  Else, the type of src_arg does not
-                              --  match with dst_arg, but its name exists
-                              --  in the hash table; so we can hope that
-                              --  the argument which has the proper name
-                              --  also has the proper type: so we do
-                              --  nothing but continuing the search among
-                              --  src_args.
+                              --  Else, the type of Src_Arg does not match
+                              --  Dst_Arg, but its name exists in the hash
+                              --  table, so we can hope that the argument which
+                              --  has the proper name also has the proper type:
+                              --  we do nothing but continuing the search
+                              --  among Src_Args.
+
                            else
-                              declare
-                                 Member : constant System_Exception_Members
-                                   := (Minor => 1, Completed => Completed_No);
-                              begin
-                                 Throw (Error, Bad_TypeCode_E, Member);
-                                 pragma Debug
-                                   (C, O ("by position impossible"));
-                                 return;
-                                 --  We must identify the arguments either
-                                 --  by their name or their position. If
-                                 --  not, this is an error.
-                              end;
+                              --  We must identify the arguments by name or by
+                              --  position. Bail out if neither is possible.
+
+                              Throw
+                                (Error, Bad_TypeCode_E,
+                                 System_Exception_Members'
+                                   (Minor => 1, Completed => Completed_No));
+                              pragma Debug (C, O ("by position impossible"));
+                              return;
                            end if;
                         end if;
                      end;
@@ -656,6 +632,7 @@ package body PolyORB.Requests is
                                      Value (Src_It).Argument);
                      Copied_Src_Args (Src_Idx) := True;
                      exit;
+
                   else
                      Src_Idx := Src_Idx + 1;
                      Next (Src_It);
@@ -667,14 +644,12 @@ package body PolyORB.Requests is
                end loop;

                if not Src_Arg_Found then
-                  declare
-                     Member : constant System_Exception_Members
-                       := (Minor => 1, Completed => Completed_No);
-                  begin
-                     Throw (Error, Bad_Param_E, Member);
-                     pragma Debug (C, O ("arg not found"));
-                     return;
-                  end;
+                  pragma Debug (C, O ("arg not found"));
+                  Throw
+                    (Error, Bad_Param_E,
+                       System_Exception_Members'
+                         (Minor => 1, Completed => Completed_No));
+                  return;
                end if;
             end if;
          end;
@@ -682,8 +657,8 @@ package body PolyORB.Requests is
       end loop;

       if Can_Extend then
-         --  If dst_args is an extensible NV_List, then we append the
-         --  remaining Src_Args
+         --  If Dst_Args is an extensible NV_List, then we append the remaining
+         --  Src_Args.

          Src_It := First (List_Of (Src_Args).all);
          Src_Idx := Copied_Src_Args'First;
@@ -722,27 +697,23 @@ package body PolyORB.Requests is
    ---------------

    procedure Arguments
-     (Self           :        Request_Access;
+     (Self           : Request_Access;
       Args           : in out Any.NVList.Ref;
       Error          : in out Error_Container;
-      Identification :        Arguments_Identification := Ident_By_Position;
-      Can_Extend     :        Boolean := False)
+      Identification : Arguments_Identification := Ident_By_Position;
+      Can_Extend     : Boolean := False)
    is
       use Any.NVList;
       use Components;
-
    begin
       if Self.Arguments_Called
         or else not PolyORB.Any.Is_Empty (Self.Exception_Info)
       then
-         declare
-            Member : constant System_Exception_Members
-              := (Minor => 7, Completed => Completed_No);
-         begin
-            pragma Debug (C, O ("Arguments called twice"));
-            Throw (Error, Bad_Inv_Order_E, Member);
-            return;
-         end;
+         pragma Debug (C, O ("Arguments called twice"));
+         Throw
+           (Error, Bad_Inv_Order_E,
+            System_Exception_Members'(Minor => 7, Completed => Completed_No));
+         return;
       end if;
       Self.Arguments_Called := True;

@@ -775,33 +746,48 @@ package body PolyORB.Requests is
          pragma Debug (C, O ("in Arguments: " & Image (Self.Args)));

          declare
-            Identification_Method : constant Arguments_Identification
-              := Identification and Self.Args_Ident;
-
+            Identification_Method : constant Arguments_Identification :=
+                                      Identification and Self.Args_Ident;
+            Ignore_Src_Mode : constant Boolean :=
+                                Self.Requesting_Component.all
+                                  in Protocols.Session'Class;
          begin
             if Identification_Method = Ident_By_Position
               or else Identification_Method = Ident_Both
             then
+               --  If reconciling arguments by position, and the call comes
+               --  from a network connection, assume that only IN arguments are
+               --  present, and that the direction indications may be wrong in
+               --  Self.Args (because the protocol does not distinguish between
+               --  IN and IN OUT arguments). However for a local call, we may
+               --  assume that direction indicators are correct, and we must
+               --  ensure that we omit all OUT arguments.
+
                Pump_Up_Arguments_By_Position
-                 (Dst_Args   => Args,
-                  Src_Args   => Self.Args,
-                  Direction  => Any.ARG_IN,
-                  Error      => Error,
-                  Can_Extend => Can_Extend);
+                 (Dst_Args        => Args,
+                  Src_Args        => Self.Args,
+                  Direction       => Any.ARG_IN,
+                  Error           => Error,
+                  Ignore_Src_Mode => Ignore_Src_Mode,
+                  Can_Extend      => Can_Extend);
+
             elsif Identification_Method = Ident_By_Name then
                Pump_Up_Arguments_By_Name
-                 (Dst_Args   => Args,
-                  Src_Args   => Self.Args,
-                  Direction  => Any.ARG_IN,
-                  Error      => Error,
-                  Can_Extend => Can_Extend);
+                 (Dst_Args        => Args,
+                  Src_Args        => Self.Args,
+                  Direction       => Any.ARG_IN,
+                  Error           => Error,
+                  Ignore_Src_Mode => Ignore_Src_Mode,
+                  Can_Extend      => Can_Extend);
+
             else
                Pump_Up_Arguments_Unspecified
-                 (Dst_Args   => Args,
-                  Src_Args   => Self.Args,
-                  Direction  => Any.ARG_IN,
-                  Error      => Error,
-                  Can_Extend => Can_Extend);
+                 (Dst_Args        => Args,
+                  Src_Args        => Self.Args,
+                  Direction       => Any.ARG_IN,
+                  Error           => Error,
+                  Ignore_Src_Mode => Ignore_Src_Mode,
+                  Can_Extend      => Can_Extend);
             end if;
          end;
       end if;
@@ -838,14 +824,11 @@ package body PolyORB.Requests is
         or else Self.Set_Result_Called
         or else not PolyORB.Any.Is_Empty (Self.Exception_Info)
       then
-         declare
-            Member : constant System_Exception_Members :=
-                       (Minor => 8, Completed => Completed_No);
-         begin
-            pragma Debug (C, O ("Invalid Set_Result call"));
-            Throw (Error, Bad_Inv_Order_E, Member);
-            return;
-         end;
+         pragma Debug (C, O ("Invalid Set_Result call"));
+         Throw
+           (Error, Bad_Inv_Order_E,
+            System_Exception_Members'(Minor => 8, Completed => Completed_No));
+         return;
       end if;

       Self.Set_Result_Called := True;
@@ -882,8 +865,8 @@ package body PolyORB.Requests is
       Error          : in out Error_Container;
       Identification : Arguments_Identification := Ident_By_Position)
    is
-      Identification_Method : constant Arguments_Identification
-        := Identification and Self.Args_Ident;
+      Identification_Method : constant Arguments_Identification :=
+                                Identification and Self.Args_Ident;
    begin
       if Identification_Method = Ident_By_Position
         or else Identification_Method = Ident_Both
@@ -909,13 +892,11 @@ package body PolyORB.Requests is
             Ignore_Src_Mode => False,
             Error           => Error);
       end if;
-      --  Copy back inout and out arguments from Out_Args
-      --  to Args, so the requestor finds them where
-      --  it expects.
+      --  Copy back inout and out arguments from Out_Args to Args, so the
+      --  requestor finds them where it expects.

-      --  XXX If a method has IN and OUT args and R.Args
-      --  contains only the IN arguments (and no empty
-      --  Any's for the OUT ones) what happens?
+      --  XXX If a method has IN and OUT args and R.Args contains only the IN
+      --  arguments (and no empty Any's for the OUT ones) what happens?
    end Set_Out_Args;

 end PolyORB.Requests;
============================================================
--- src/polyorb-smart_pointers.adb	2b75da4b1dcd5ddc1a5741eb43ac626108ca0078
+++ src/polyorb-smart_pointers.adb	3708a49832a6b36abcebe143d72dc127b80bfc15
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2001-2008, Free Software Foundation, Inc.          --
+--         Copyright (C) 2001-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -76,9 +76,7 @@ package body PolyORB.Smart_Pointers is
    -- Dec_Usage --
    ---------------

-   procedure Dec_Usage
-     (Obj : in out Entity_Ptr)
-   is
+   procedure Dec_Usage (Obj : in out Entity_Ptr) is
       procedure Free is new Ada.Unchecked_Deallocation
         (Unsafe_Entity'Class, Entity_Ptr);

@@ -221,17 +219,29 @@ package body PolyORB.Smart_Pointers is
          end if;
       end Return_Ref_External_Tag;

+      Obj : Entity_Ptr := The_Ref.A_Ref;
+
    begin
       pragma Debug (C, O (Return_Ref_External_Tag));

-      if The_Ref.A_Ref /= null then
-         Dec_Usage (The_Ref.A_Ref);
+      --  Invalidate A_Ref early because such access may subsequently become
+      --  erroneous, see below.
+
+      The_Ref.A_Ref := null;
+
+      if Obj /= null then
+         Dec_Usage (Obj);
+
+         --  From this point on, we may not assume that The_Ref is still valid,
+         --  because in the case of auto-referential structures, it may be
+         --  a member of Obj.all, which has been destroyed above if its ref
+         --  counter dropped to 0.
+
       else
          pragma Debug (C, O ("Finalize: null ref"));
          null;
       end if;

-      The_Ref.A_Ref := null;
       pragma Debug (C, O ("Finalize: leave"));
    end Finalize;

============================================================
--- src/polyorb-tasking-profiles-full_tasking-threads.adb	cb1cfa33d9a7abd96b22bd02c6fd7181797e5028
+++ src/polyorb-tasking-profiles-full_tasking-threads.adb	7af57c9f78c1d1810a290d444f436d7222cd4e8d
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2002-2008, Free Software Foundation, Inc.          --
+--         Copyright (C) 2002-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -135,7 +135,7 @@ package body PolyORB.Tasking.Profiles.Fu
             if Terminated_Task /= null then
                O ("Reaper: giving up on non-terminating task "
                  & Ada.Task_Identification.Image (Terminated_Task'Identity),
-                  Error);
+                  Notice);
             end if;
          or
             terminate;
============================================================
--- src/polyorb-utils-buffers.adb	a44b2814f571c3d8fd0f91fa41cd04962f805683
+++ src/polyorb-utils-buffers.adb	8e4f6bde700d063df06afa6a6787084cee31e3bc
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2001-2008, Free Software Foundation, Inc.          --
+--         Copyright (C) 2001-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -51,7 +51,9 @@ package body PolyORB.Utils.Buffers is
          Data_Address : Opaque_Pointer;
          Item_Swapped : aliased T;
       begin
-         Pad_Align (Buffer, T'Size / 8);
+         if With_Alignment then
+            Pad_Align (Buffer, T'Size / 8);
+         end if;

          Allocate_And_Insert_Cooked_Data
            (Buffer,
@@ -91,7 +93,9 @@ package body PolyORB.Utils.Buffers is
       function Unmarshall (Buffer : access Buffer_Type) return T is
          Data_Address : Opaque_Pointer;
       begin
-         Align_Position (Buffer, T'Size / 8);
+         if With_Alignment then
+            Align_Position (Buffer, T'Size / 8);
+         end if;
          Extract_Data (Buffer, Data_Address, T'Size / 8);

          --  Note: Need to go through a stream element array to account for
============================================================
--- src/polyorb-utils-buffers.ads	635fb1b582ab3c700ce12756e9062cc0f9109d4e
+++ src/polyorb-utils-buffers.ads	b6d97a5c47d26f4402779fca18486d336149d8e6
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---         Copyright (C) 2001-2008, Free Software Foundation, Inc.          --
+--         Copyright (C) 2001-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -37,25 +37,30 @@ package PolyORB.Utils.Buffers is
    use PolyORB.Buffers;
    use Ada.Streams;

-   --  Marshalling and unmarshalling of elementary multi-byte data types
+   ----------------------------------------------------
+   --  Marshalling/unmarshalling of elementary types --
+   ----------------------------------------------------
+
    --  This generic package provides marshalling and unmarshalling operations
    --  that transfer the memory representation of T to/from the buffer,
-   --  with alignment equal to the data size, and performing byte swapping
-   --  if the buffer endianness differs from the host order.
+   --  with optional alignment (equal to the data size), and performing byte
+   --  swapping if the buffer endianness differs from the host order.

    generic
       type T is private;
       with function Swapped (Item : T) return T is <>;
+
+      With_Alignment : Boolean := True;
+      --  If With_Alignment is False, then don't align the buffer prior to
+      --  transfers in the routines below.
+
    package Align_Transfer_Elementary is
-      procedure Marshall
-        (Buffer : access Buffer_Type;
-         Item   : T);
+      procedure Marshall (Buffer : access Buffer_Type; Item : T);
       --  Align buffer on T'Size, then marshall a copy of Item, swapping its
       --  bytes using the provided procedure if Buffer's endianness is not
       --  Host_Order.

-      function Unmarshall
-        (Buffer : access Buffer_Type) return T;
+      function Unmarshall (Buffer : access Buffer_Type) return T;
       --  Align buffer on T'Size, then unmarshall a T value, swapping its bytes
       --  using the provided swapper if Buffer's endianness is not Host_Order.
    end Align_Transfer_Elementary;
@@ -64,15 +69,14 @@ package PolyORB.Utils.Buffers is
      (Buffer    : access Buffer_Type;
       Octets    : Stream_Element_Array;
       Alignment : Alignment_Type := 1);
-   --  Align Buffer on Alignment, then marshall a copy
-   --  of Octets into Buffer, as is.
+   --  Align Buffer on Alignment, then marshall a copy of Octets into it, as is

    procedure Align_Unmarshall_Copy
      (Buffer    : access Buffer_Type;
       Alignment : Alignment_Type := 1;
       Data      : out Stream_Element_Array);
    --  Align Buffer on Alignment, then fill Data by extracting Data'Length
-   --  at the current position. The data need not be contiguous in the buffer
-   --  (it may span multiple chunks).
+   --  bytes at the current position. The data need not be contiguous in the
+   --  in (it may span multiple chunks).

 end PolyORB.Utils.Buffers;
============================================================
--- src/polyorb-utils-random.ads	18219a4e932a758806daff7a3b51c74f43107162
+++ src/polyorb-utils-random.ads	fdf971db65f33ce314a93e87dcdc7f70993fa0de
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---         Copyright (C) 2003-2007, Free Software Foundation, Inc.          --
+--         Copyright (C) 2003-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -25,8 +25,8 @@
 --                                                                          --
 ------------------------------------------------------------------------------

---  A pseudo-random generator based on Makoto Matsumoto and Takuji
---  Nishimura `Mersenne Twister' random number generator MT19937.
+--  A pseudo-random generator based on Makoto Matsumoto and Takuji Nishimura
+--  `Mersenne Twister' random number generator MT19937.

 --  Note: we cannot depend on Ada.Numerics.Discrete_Random because of
 --  its wrong categorization. PolyORB components require a preelaborable
============================================================
--- src/soap/polyorb-soap_p-message-response-error.adb	fc7111f4db4fea97f3ee9d0ec5424dc86aa444b3
+++ src/soap/polyorb-soap_p-message-response-error.adb	c327f08291f27a7993dae78a94bc874896450b5a
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2000-2006, Free Software Foundation, Inc.          --
+--         Copyright (C) 2000-2008, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -202,7 +202,7 @@ package body PolyORB.SOAP_P.Message.Resp
                  (Message_Body,
                   "   "
                   & SOAP.Utils.Tag (P_Name, Start => True)
-                  & Types.Image (P_K)
+                  & Types.Value_Image (P_K)
                   & SOAP.Utils.Tag (P_Name, Start => False)
                   & NL);
             end;
============================================================
--- src/soap/polyorb-soap_p-types.adb	bf80357e8d0ec2988adea57f2c5a703afe40de08
+++ src/soap/polyorb-soap_p-types.adb	91998a249b91f4e25bad0322350887c0ffa0e519
@@ -286,7 +286,7 @@ package body PolyORB.SOAP_P.Types is
 --    -- Image --
 --    -----------

-   function Image (NV : NamedValue) return String is
+   function Value_Image (NV : NamedValue) return String is
       TC : constant TypeCode.Object_Ptr := Get_Unwound_Type (NV.Argument);
       Kind : constant TCKind := TypeCode.Kind (TC);
    begin
@@ -334,7 +334,7 @@ package body PolyORB.SOAP_P.Types is
             --  XXX ???
             return "Image: Unsupported TCKind:" & TCKind'Image (Kind);
       end case;
-   end Image;
+   end Value_Image;

 --    function Image (O : XSD_Time_Instant) return String is

@@ -569,7 +569,7 @@ package body PolyORB.SOAP_P.Types is
             pragma Debug (C, O ("Defaulting."));
             return "<" & To_Standard_String (NV.Name)
               & xsi_type (XML_Type (NV)) & '>'
-              & Image (NV)
+              & Value_Image (NV)
               & "</" & To_Standard_String (NV.Name) & '>';
       end case;
    end XML_Image;
@@ -648,7 +648,7 @@ package body PolyORB.SOAP_P.Types is
       return "<" & Tag_Name
         & " id="""
         & PolyORB.Types.Trimmed_Image (Unsigned_Long_Long (Pos)) & """>"
-        & Image (NV)
+        & Value_Image (NV)
         & "</" & Tag_Name & ">";
    end XML_Enum_Image;

============================================================
--- src/soap/polyorb-soap_p-types.ads	d318b243b7b1ddce9d5d0c3fe381ba9c466456bb
+++ src/soap/polyorb-soap_p-types.ads	07c22d5430d6af4370caee621991b89352aed779
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---         Copyright (C) 2000-2006, Free Software Foundation, Inc.          --
+--         Copyright (C) 2000-2008, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -35,7 +35,7 @@ package PolyORB.SOAP_P.Types is
    Data_Error : exception;
    --  Raised when a variable has not the expected type.

-   function Image (NV : NamedValue) return String;
+   function Value_Image (NV : NamedValue) return String;
    --  Returns O value image.

    function XML_Image (NV : NamedValue) return String;
============================================================
--- support/missing	3830cf89148a136f4cdb1bc0c32f0a235b1b24bc
+++ support/missing	9f7c375af6106a150446e5faf344d62e406b1944
@@ -18,11 +18,6 @@
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 # 02111-1307, USA.

-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
 if test $# -eq 0; then
   echo 1>&2 "Try \`$0 --help' for more information"
   exit 1
============================================================
--- testsuite/README	e98167efe6becaf566a3859634c2dc007391e131
+++ testsuite/README	efb2237475fc745194b6089c65e40c771c848570
@@ -28,13 +28,11 @@ 2/ Build PolyORB's examples

 2/ Build PolyORB's examples

-Go in $build_dir/examples
-Run make
+$ make examples

 3/ Build the test suite

-Go in $build_dir/testsuite
-Run Make
+$ make testsuite

 Note: some tests are not built by default: they require the
 installation of third-party middleware, and adaptation of the
@@ -43,7 +41,7 @@ for more details.

 * Run the test suite

-In $buld_dir/testsuite, type 'make run_tests'.
+$ make run_tests

 This will launch the test suite. Output is in $build_dir/output.

============================================================
--- testsuite/corba/performance/bench_utils.adb	2c557f53688c211dfe7bc6dd3444693e6ae7f871
+++ testsuite/corba/performance/bench_utils.adb	81aac62163fab7ec3b519ec23db2190171075e4a
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---           Copyright (C) 2007, Free Software Foundation, Inc.             --
+--         Copyright (C) 2007-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -117,6 +117,7 @@ package body Bench_Utils is
                          & Ada.Exceptions.Exception_Information (E));
                Output (Test_Name, False);
                Close (Fd);
+               return;
          end;

          D2 := Clock;
============================================================
--- testsuite/scenarios/corba-interop.conf	3ec2d8a34c96362bfdf78eacc7298977ba5c1d42
+++ testsuite/scenarios/corba-interop.conf	118dcdc564b7b33b68da29ef7d4aec83aada472e
@@ -5,6 +5,7 @@ type=client_server
 [test CORBA_INTEROP_0]
 id=MICO only test
 type=client_server
+expected_failure=true

 [client CORBA_INTEROP_0]
 command=corba/interop/cpp/MICO/all_types_dynclient
@@ -15,6 +16,7 @@ type=client_server
 [test CORBA_INTEROP_1]
 id=omniORB only test
 type=client_server
+expected_failure=true

 [client CORBA_INTEROP_1]
 command=corba/interop/cpp/omniORB/all_types_dynclient
@@ -25,6 +27,7 @@ type=client_server
 [test CORBA_INTEROP_2]
 id=TAO only test
 type=client_server
+expected_failure=true

 [client CORBA_INTEROP_2]
 command=corba/interop/cpp/TAO/all_types_dynclient
@@ -35,6 +38,7 @@ type=client_server
 [test CORBA_INTEROP_3]
 id=omniORB client/PolyORB server all_types test
 type=client_server
+expected_failure=true

 [client CORBA_INTEROP_3]
 command=corba/interop/cpp/omniORB/all_types_client
@@ -45,6 +49,7 @@ type=client_server
 [test CORBA_INTEROP_4]
 id=omniORB client/PolyORB server all_functions test
 type=client_server
+expected_failure=true

 [client CORBA_INTEROP_4]
 command=corba/interop/cpp/omniORB/all_functions_client
@@ -55,6 +60,7 @@ type=client_server
 [test CORBA_INTEROP_5]
 id=TAO client/PolyORB server all_types test
 type=client_server
+expected_failure=true

 [client CORBA_INTEROP_5]
 command=corba/interop/cpp/TAO/all_types_dynclient
============================================================
--- testsuite/scenarios/corba-performance.conf	03cdcc26d31c514cb03339f50868eea230b3f743
+++ testsuite/scenarios/corba-performance.conf	497b3d366f9bb662370a77fc8790ae1a31454ade
@@ -6,6 +6,7 @@ timeout=1000000
 id=Performance of the stack
 type=client_server
 timeout=1000000
+expected_failure=true

 [client CORBA_PERFORMANCE_0]
 command=corba/performance/client
============================================================
--- testsuite/scenarios/corba-shutdown.conf	1e0310f2447d1db46a8b97b28a50228d65bf1e68
+++ testsuite/scenarios/corba-shutdown.conf	ba9df3a7919356f41c4b6522a13ca72871bcf414
@@ -10,4 +10,5 @@ type=local
 [test SHUTDOWN_1]
 id=CORBA.ORB.Shutdown blocking test
 type=local
+expected_failure=true
 command=corba/shutdown/test001_client
============================================================
--- testsuite/scenarios/examples-corba-all_types.conf	b683b55b306cc905b1a513c9483249c603ec4453
+++ testsuite/scenarios/examples-corba-all_types.conf	69863de552f0137e5cbaf5cb299595de8b71892c
@@ -52,6 +52,7 @@ type=client_server
 [test ALL_TYPES_4]
 id=All_Types test, using SSLIOP protocol
 type=client_server
+expected_failure=true

 [client ALL_TYPES_4]
 command=../examples/corba/all_types/client
============================================================
--- testsuite/scenarios/examples-corba-rtcorba-dhb.conf	a964946c514e8c0a53bb8090950d6d45d6a0b92a
+++ testsuite/scenarios/examples-corba-rtcorba-dhb.conf	2516ebd0e1dc7f2a9306e322d8d63cd155f4299d
@@ -5,6 +5,7 @@ type=client_server
 [test RTCORBA_DHB_0]
 id=RTCORBA DHB benchmark
 type=client_server
+expected_failure=true
 exec_in_base_dir=true
 timeout=100000

============================================================
--- testsuite/scenarios/examples-corba-rtcorba-rtcosscheduling.conf	32ff9ffd40b9d91791590c89e636f9a6d3daea06
+++ testsuite/scenarios/examples-corba-rtcorba-rtcosscheduling.conf	9e76d7280cc2bc74a8a9ead27af0707de3a5a8fc
@@ -6,6 +6,7 @@ exec_in_base_dir=true
 id=Test RTCosScheduling
 type=client_server
 exec_in_base_dir=true
+expected_failure=true

 [client RTCORBA_RTCOSSCHEDULING_0]
 command=../examples/corba/rtcorba/rtcosscheduling/client
============================================================
--- testsuite/scenarios/examples-corba-secure_echo.conf	d7124b1012b1e09e8d9adb42df4d8ba12588cb67
+++ testsuite/scenarios/examples-corba-secure_echo.conf	1b30925c105f7240d4aafe5b813c9abaa4b0314c
@@ -7,15 +7,18 @@ exec_in_base_dir=true
 type=local
 command=../examples/corba/secure_echo/gssup_example
 exec_in_base_dir=true
+expected_failure=true

 [test CORBA_SECURE_ECHO_1]
 id=CSIv2 CORBA echo test, TLS
 type=local
 command=../examples/corba/secure_echo/tls_example
 exec_in_base_dir=true
+expected_failure=true

 [test CORBA_SECURE_ECHO_2]
 id=CSIv2 CORBA echo test, TLS GSSUP
 type=local
 command=../examples/corba/secure_echo/tls_gssup_example
 exec_in_base_dir=true
+expected_failure=true
============================================================
--- testsuite/scenarios/examples-moma.conf	bc940d9175a93a3f19d14ee09c72f3865c075480
+++ testsuite/scenarios/examples-moma.conf	bbb27f6fe37dbd7c7dfb922d58940526013126a9
@@ -6,6 +6,7 @@ exec_in_base_dir=true
 id=Simple test
 type=client_server
 exec_in_base_dir=true
+expected_failure=true

 [client MOMA_0]
 command=../examples/moma/client
@@ -17,6 +18,7 @@ exec_in_base_dir=true
 id=Call back test
 type=client_server
 exec_in_base_dir=true
+expected_failure=true

 [client MOMA_1]
 command=../examples/moma/client_call_back
============================================================
--- testsuite/utils/test_driver.adb	c7b9cf68c39c8949437468d38ebe7c726a73846d
+++ testsuite/utils/test_driver.adb	f790194f6c3fce028d09d2deb0386a8db7b02605
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2002-2008, Free Software Foundation, Inc.          --
+--         Copyright (C) 2002-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -27,7 +27,6 @@

 --  Wrapper to launch PolyORB's testsuite

-with Ada.Exceptions;
 with Ada.Text_IO;

 with GNAT.Command_Line;
@@ -75,6 +74,7 @@ procedure Test_Driver is
    Item           : String_Access;
    Configuration_Base_Dir : String_Access;
    Position : Integer := -1;
+   Verbose : Boolean := False;

    ---------
    -- Run --
@@ -94,14 +94,16 @@ procedure Test_Driver is
               (Item.all, Position,
                Configuration_Base_Dir.all,
                Test_Suite_Output'Class (Output.all),
-               Result);
+               Result,
+               Verbose);

          when Run_All_Scenarios =>
             Test_Suite.Scenarios.Run_All_Scenarios
               (Item.all,
                Configuration_Base_Dir.all,
                Test_Suite_Output'Class (Output.all),
-               Result);
+               Result,
+               Verbose);
       end case;

       Log (Test_Suite_Output'Class (Output.all), "Test driver exited.");
@@ -113,26 +115,9 @@ procedure Test_Driver is

       Close (Test_Suite_Output'Class (Output.all));

-      if Result then
-         GNAT.OS_Lib.OS_Exit (0);
-      else
+      if not Result then
          GNAT.OS_Lib.OS_Exit (1);
       end if;
-
-   exception
-      when E : others =>
-         Error (Test_Suite_Output'Class (Output.all),
-                "==> Internal Error <==");
-         Error (Test_Suite_Output'Class (Output.all),
-                " Got exception: "
-                & Ada.Exceptions.Exception_Name (E)
-                & ", "
-                & Ada.Exceptions.Exception_Message (E));
-         Error (Test_Suite_Output'Class (Output.all),
-                " with information: "
-                & Ada.Exceptions.Exception_Information (E));
-         Close (Test_Suite_Output'Class (Output.all));
-         GNAT.OS_Lib.OS_Exit (1);
    end Run;

    -----------------------
@@ -142,7 +127,7 @@ procedure Test_Driver is
    procedure Scan_Command_Line is
    begin
       loop
-         case Getopt ("scenario: full: output: config: position:") is
+         case Getopt ("scenario: full: output: config: position: verbose") is
             when ASCII.NUL =>
                exit;

@@ -184,6 +169,11 @@ procedure Test_Driver is
                   Position := Integer'Value (Parameter);
                end if;

+            when 'v' =>
+               if Full_Switch = "verbose" then
+                  Verbose := True;
+               end if;
+
             when others =>
                raise Program_Error;
          end case;
@@ -191,9 +181,11 @@ procedure Test_Driver is

    exception
       when Invalid_Switch =>
+         Scan_Succesful := False;
          Put_Line (Standard_Error, "Invalid Switch " & Full_Switch);

       when Invalid_Parameter =>
+         Scan_Succesful := False;
          Put_Line (Standard_Error, "No parameter for " & Full_Switch);
    end Scan_Command_Line;

@@ -209,9 +201,10 @@ procedure Test_Driver is
    begin
       New_Line;
       Put_Line (Standard_Error, "Usage: " & Executable_Name
-                & " -scenario scenario_file [-position N]"
-                & "|-full directory"
-                & " -output file|text -config dir,");
+                  & " -scenario scenario_file [-position N]"
+                  & "|-full directory"
+                  & " -output file|stdout -config dir,"
+                  & " -verbose");
       Put_Line (Standard_Error,
                 "  -scenario scenario_file : plays scenario_file,");
       Put_Line (Standard_Error,
@@ -223,6 +216,8 @@ procedure Test_Driver is
                 "  -output   file|stdout   : output to files|standard output");
       Put_Line (Standard_Error,
                 "  -config   dir           : directory for scenario files ");
+      Put_Line (Standard_Error,
+                "  -verbose                : print information on the run ");

       New_Line;
    end Usage;
@@ -238,14 +233,6 @@ begin
       Run;
    else
       Usage;
+      GNAT.OS_Lib.OS_Exit (1);
    end if;
-
-exception
-   when E : others =>
-      Put_Line (Standard_Error, "==> Internal Error <==");
-      Put_Line (Standard_Error, " Got exception: "
-                & Ada.Exceptions.Exception_Name (E)
-                & ", "
-                & Ada.Exceptions.Exception_Message (E));
-
 end Test_Driver;
============================================================
--- testsuite/utils/test_suite-scenarios.adb	6034dc4ba01f9e8daf65fc2be7a283e68f101f22
+++ testsuite/utils/test_suite-scenarios.adb	d9d360f014fdd8f0b03202b5d4b30f01703d495d
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2003-2007, Free Software Foundation, Inc.          --
+--         Copyright (C) 2003-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -26,14 +26,18 @@ with Ada.Exceptions;
 ------------------------------------------------------------------------------

 with Ada.Exceptions;
+with Ada.Text_IO;

 with GNAT.Directory_Operations.Iteration;
 with PolyORB.Parameters.File;
+with PolyORB.Utils.Report;

 with Test_Suite.Test_Case.Parser;

 package body Test_Suite.Scenarios is

+   use Ada.Text_IO;
+
    Total_Failed_Tests : Natural := 0;
    Total_Tests : Natural := 0;

@@ -42,11 +46,12 @@ package body Test_Suite.Scenarios is
    ------------------

    procedure Run_Scenario
-     (Scenario_File : String;
-      Position      : Integer := -1;
+     (Scenario_File     : String;
+      Position          : Integer := -1;
       Configuration_Dir : String;
-      Output        : Test_Suite_Output'Class;
-      Test_Success  : out Boolean)
+      Output            : Test_Suite_Output'Class;
+      Test_Success      : out Boolean;
+      Verbose           : Boolean)
    is
       use PolyORB.Parameters;
       use PolyORB.Parameters.File;
@@ -80,6 +85,10 @@ package body Test_Suite.Scenarios is
          Log (Output, "Scenario " & Scenario_Name);
          Log (Output, "Description: " & Scenario_Id);

+         if Verbose then
+            Put_Line ("Starting scenario " & Scenario_Name);
+         end if;
+
          if Position = -1 then
             loop
                declare
@@ -138,6 +147,7 @@ package body Test_Suite.Scenarios is
                  & Natural'Image (Expected_Failed_Tests)
                  & " expected failed tests");
             Test_Success := True;
+
          else
             Log (Output, "FAILED:"
                  & Natural'Image (Count - Failed_Tests)
@@ -147,8 +157,12 @@ package body Test_Suite.Scenarios is
             Test_Success := False;
          end if;

-         Separator (Output);
+         if Verbose then
+            PolyORB.Utils.Report.Output
+              ("Scenario " & Scenario_Name, Test_Success);
+         end if;

+         Separator (Output);
          Close_Scenario_Output_Context (Output, Result_Total);

          Total_Failed_Tests := Total_Failed_Tests + Failed_Tests;
@@ -160,6 +174,7 @@ package body Test_Suite.Scenarios is
          Log (Output, "Error in scenario file: " & Scenario_File);
          Log (Output, Ada.Exceptions.Exception_Information (E));
          Separator (Output);
+         raise;
    end Run_Scenario;

    -----------------------
@@ -167,13 +182,30 @@ package body Test_Suite.Scenarios is
    -----------------------

    procedure Run_All_Scenarios
-     (Directory_Name : String;
+     (Directory_Name    : String;
       Configuration_Dir : String;
-      Output         : Test_Suite_Output'Class;
-      Test_Success : out Boolean)
+      Output            : Test_Suite_Output'Class;
+      Test_Success      : out Boolean;
+      Verbose           : Boolean)
    is
       Scenarios : Natural := 0;

+      procedure Count_Scenario_Wrapper
+        (Scenario_File : String;
+         Index         : Positive;
+         Quit          : in out Boolean);
+
+      procedure Count_Scenario_Wrapper
+        (Scenario_File : String;
+         Index         : Positive;
+         Quit          : in out Boolean)
+      is
+         pragma Unreferenced (Scenario_File, Index);
+      begin
+         Scenarios := Scenarios + 1;
+         Quit := False;
+      end Count_Scenario_Wrapper;
+
       procedure Run_Scenario_Wrapper
         (Scenario_File : String;
          Index         : Positive;
@@ -188,26 +220,43 @@ package body Test_Suite.Scenarios is
          Test_Output : Boolean;
       begin
          Run_Scenario
-           (Scenario_File, -1, Configuration_Dir, Output, Test_Output);
+           (Scenario_File, -1, Configuration_Dir, Output, Test_Output,
+            Verbose);
          Test_Success := Test_Success and Test_Output;
-         Scenarios := Scenarios + 1;
          Quit := False;
       end Run_Scenario_Wrapper;

       procedure Run_Scenario_With_Pattern is new
         GNAT.Directory_Operations.Iteration.Find (Run_Scenario_Wrapper);

+      procedure Count_Scenario is new
+        GNAT.Directory_Operations.Iteration.Find (Count_Scenario_Wrapper);
+
    begin
       Test_Success := True;

       Log (Output, "Running all scenario from: " & Directory_Name);
       Separator (Output);

+      Count_Scenario (Directory_Name, "(.*)-(.*)\.conf");
+
+      if Verbose then
+         Put_Line ("Running all" & Integer'Image (Scenarios)
+                     &  " scenario files from: " & Directory_Name);
+      end if;
+
       Run_Scenario_With_Pattern (Directory_Name, "(.*)-(.*)\.conf");
       Log (Output, Natural'Image (Scenarios) & " scenarios executed,");
       Log (Output, Natural'Image (Total_Tests - Total_Failed_Tests)
-           & " out of" & Natural'Image (Total_Tests)
-           & " tests passed");
+             & " out of" & Natural'Image (Total_Tests)
+             & " tests passed");
+
+      if Verbose then
+         Put_Line (Natural'Image (Scenarios) & " scenarios executed,");
+         Put_Line (Natural'Image (Total_Tests - Total_Failed_Tests)
+                     & " out of" & Natural'Image (Total_Tests)
+                     & " tests passed");
+      end if;
    end Run_All_Scenarios;

 end Test_Suite.Scenarios;
============================================================
--- testsuite/utils/test_suite-scenarios.ads	f901d29d36ad8094c70c1947f5c13de9f9eed036
+++ testsuite/utils/test_suite-scenarios.ads	1e01ddf58df833d83e1b35645fdae83864d8b8cf
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---         Copyright (C) 2003-2006, Free Software Foundation, Inc.          --
+--         Copyright (C) 2003-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -32,20 +32,22 @@ package Test_Suite.Scenarios is
    use Test_Suite.Output;

    procedure Run_Scenario
-     (Scenario_File : String;
-      Position      : Integer := -1;
+     (Scenario_File     : String;
+      Position          : Integer := -1;
       Configuration_Dir : String;
-      Output        : Test_Suite_Output'Class;
-      Test_Success   : out Boolean);
+      Output            : Test_Suite_Output'Class;
+      Test_Success      : out Boolean;
+      Verbose           : Boolean);
    --  Run scenario file Scenario_File. If Position is greater than
    --  -1, executes only test at #position position in Scenario_File.
    --  On exit, set Test_Success according to test output.

    procedure Run_All_Scenarios
-     (Directory_Name : String;
+     (Directory_Name    : String;
       Configuration_Dir : String;
-      Output         : Test_Suite_Output'Class;
-      Test_Success : out Boolean);
+      Output            : Test_Suite_Output'Class;
+      Test_Success      : out Boolean;
+      Verbose           : Boolean);
    --  Run recursively all scenarios in Directory_Name directory
    --  On exit, set Test_Success according to test output.

============================================================
--- testsuite/utils/test_suite-test_case-parser.adb	2284894848c94070afd83290fa03c91006d4304c
+++ testsuite/utils/test_suite-test_case-parser.adb	8bc82cba9c1f921b3cfe0d3088c4d9a80e05e4c3
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 2003-2006, Free Software Foundation, Inc.          --
+--         Copyright (C) 2003-2009, Free Software Foundation, Inc.          --
 --                                                                          --
 -- PolyORB is free software; you  can  redistribute  it and/or modify it    --
 -- under terms of the  GNU General Public License as published by the  Free --
@@ -47,7 +47,7 @@ package body Test_Suite.Test_Case.Parser
       Output   : Test_Suite_Output'Class)
      return Test'Class
    is
-      Default_Timeout : constant Integer := 10_000;
+      Default_Timeout : constant Integer := 100_000;

       Test_Id : constant String := Natural'Image (Number);

@@ -89,12 +89,13 @@ package body Test_Suite.Test_Case.Parser
       declare
          Timeout_S : constant String := Get_Conf (Section, "timeout");
       begin
-         Timeout := Integer'Value (Timeout_S);
-         Log (Output, " Timeout :" & Integer'Image (Timeout));
-      exception
-         when others =>
+         if Timeout_S = "" then
             Timeout := Default_Timeout;
             Log (Output, " Timeout : (default)" & Integer'Image (Timeout));
+         else
+            Timeout := Integer'Value (Timeout_S);
+            Log (Output, " Timeout :" & Integer'Image (Timeout));
+         end if;
       end;

       Separator (Output);