summaryrefslogtreecommitdiff
path: root/modules/CIAO/tests
diff options
context:
space:
mode:
authorWilliam R. Otte <wotte@dre.vanderbilt.edu>2009-11-10 20:33:31 +0000
committerWilliam R. Otte <wotte@dre.vanderbilt.edu>2009-11-10 20:33:31 +0000
commitf1790ce045fad390af2c69b2c25f714705c90b66 (patch)
tree45261f5f605e6cf33789427f838cc87599dbc485 /modules/CIAO/tests
parent0e7e7420693d452ba049b31217a915c2c52da1fe (diff)
downloadATCD-f1790ce045fad390af2c69b2c25f714705c90b66.tar.gz
branching/taggingtest_branch_one
Diffstat (limited to 'modules/CIAO/tests')
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/Logs/PROBLEM-REPORT-FORM93
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.idl27
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc121
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPointEI.idl19
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp592
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h244
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp197
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/descriptors/DeploymentPlan.cdp117
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/descriptors/TestNodeManagerMap.dat1
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/descriptors/rt-config-example.csr30
-rwxr-xr-xmodules/CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl179
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.idl52
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.mpc44
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_skel_export.h58
-rw-r--r--modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_stub_export.h58
-rw-r--r--modules/CIAO/tests/CIAO_ComponentServer/Activator/Activator.mpc6
-rw-r--r--modules/CIAO/tests/CIAO_ComponentServer/Activator/client.cpp191
-rwxr-xr-xmodules/CIAO/tests/CIAO_ComponentServer/Activator/run_test.pl35
-rw-r--r--modules/CIAO/tests/CIAO_ComponentServer/Basic/Basic.mpc6
-rw-r--r--modules/CIAO/tests/CIAO_ComponentServer/Basic/client.cpp143
-rwxr-xr-xmodules/CIAO/tests/CIAO_ComponentServer/Basic/run_test.pl110
-rw-r--r--modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.idl21
-rw-r--r--modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc112
-rw-r--r--modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.cpp131
-rw-r--r--modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.h108
-rw-r--r--modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/client.cpp187
-rwxr-xr-xmodules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/run_test.pl33
-rw-r--r--modules/CIAO/tests/CIDL/CodeGen/Basic.idl65
-rw-r--r--modules/CIAO/tests/CIDL/CodeGen/Basic.mpc80
-rw-r--r--modules/CIAO/tests/CIDL/CodeGen/CodeGen.idl46
-rw-r--r--modules/CIAO/tests/CIDL/CodeGen/CodeGen.mpc116
-rw-r--r--modules/CIAO/tests/CIDL/CodeGen/README40
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.idl51
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.idl29
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.mpc18
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.idl24
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.idl46
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.idl68
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc21
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.idl96
-rw-r--r--modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc21
-rw-r--r--modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_exec_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Events/Abstract/Abstract.idl38
-rw-r--r--modules/CIAO/tests/IDL3/Events/Abstract/Abstract.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/Events/Abstract/Abstract_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Events/Abstract/Abstract_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Events/Any/Any.mpc26
-rw-r--r--modules/CIAO/tests/IDL3/Events/Any/EventAny.idl16
-rw-r--r--modules/CIAO/tests/IDL3/Events/Any/README35
-rw-r--r--modules/CIAO/tests/IDL3/Events/Any/main.cpp85
-rwxr-xr-xmodules/CIAO/tests/IDL3/Events/Any/run_test.pl31
-rw-r--r--modules/CIAO/tests/IDL3/Events/Regular/Regular.idl44
-rw-r--r--modules/CIAO/tests/IDL3/Events/Regular/Regular.mpc20
-rw-r--r--modules/CIAO/tests/IDL3/Events/Regular/Regular_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Events/Regular/Regular_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.idl54
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Basic/Basic.idl31
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Basic/Basic.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Basic/Basic_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Basic/Basic_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Factory/Factory.idl35
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Factory/Factory.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Factory/Factory_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Factory/Factory_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Finder/Finder.idl30
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Finder/Finder.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Finder/Finder_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Finder/Finder_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.idl33
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/All/README88
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/All/all.mpc37
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/All/convert.idl53
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/All/include.idl35
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/All/keyword_clash.idl89
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/All/pass_through.idl94
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/All/raw_include.idl27
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.idl25
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.idl27
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.idl38
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl28
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc18
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.idl22
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.mpc17
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.idl28
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.mpc18
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_stub_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_svnt_export.h58
-rw-r--r--modules/CIAO/tests/IDL3/Lookup/README21
-rw-r--r--modules/CIAO/tests/IDL3/Lookup/lookup_test.idl76
-rw-r--r--modules/CIAO/tests/IDL3/Lookup/lookup_test.mpc18
-rwxr-xr-xmodules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl56
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/test.idl11
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/IDL2XMI_Test.mpc14
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.cpp103
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.h67
-rwxr-xr-xmodules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl59
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/xmlvalidator.cpp64
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/XMI.dtd6384
-rwxr-xr-xmodules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl56
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl20
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File1.idl15
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File2.idl20
-rwxr-xr-xmodules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl56
-rwxr-xr-xmodules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl79
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/test.idl43
-rwxr-xr-xmodules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/run_test.pl63
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/test.idl6
-rwxr-xr-xmodules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl56
-rw-r--r--modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl25
-rw-r--r--modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.idl134
-rw-r--r--modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.mpc129
-rw-r--r--modules/CIAO/tests/IDL_Test/Cornucopia/README30
-rw-r--r--modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.idl8
-rw-r--r--modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.mpc105
-rw-r--r--modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.idl12
-rw-r--r--modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.mpc104
-rw-r--r--modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.idl9
-rw-r--r--modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.mpc137
-rw-r--r--modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.idl13
-rw-r--r--modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.mpc132
-rw-r--r--modules/CIAO/tests/IDL_Test/Keywords/Keyword_Clash.idl110
-rw-r--r--modules/CIAO/tests/IDL_Test/Keywords/Keywords.mpc109
-rw-r--r--modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.idl8
-rw-r--r--modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.mpc128
-rw-r--r--modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.cpp106
-rw-r--r--modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.h84
-rw-r--r--modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.idl14
-rw-r--r--modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.mpc131
-rw-r--r--modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.idl54
-rw-r--r--modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.mpc82
-rw-r--r--modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/CodeGen.idl47
-rw-r--r--modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/README12
-rw-r--r--modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Reused_Facet_Interface.mpc112
-rw-r--r--modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.idl17
-rw-r--r--modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.mpc65
-rw-r--r--modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_skel_export.h58
-rw-r--r--modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_stub_export.h58
-rw-r--r--modules/CIAO/tests/Minimum/Receiver/Receiver.idl18
-rw-r--r--modules/CIAO/tests/Minimum/Receiver/Receiver.mpc134
-rw-r--r--modules/CIAO/tests/Minimum/Receiver/Receiver_exec.cpp132
-rw-r--r--modules/CIAO/tests/Minimum/Receiver/Receiver_exec.h98
-rw-r--r--modules/CIAO/tests/Minimum/Sender/Sender.idl28
-rw-r--r--modules/CIAO/tests/Minimum/Sender/Sender.mpc113
-rw-r--r--modules/CIAO/tests/Minimum/Sender/Sender_exec.cpp138
-rw-r--r--modules/CIAO/tests/Minimum/Sender/Sender_exec.h101
-rw-r--r--modules/CIAO/tests/tests.mwc9
180 files changed, 17315 insertions, 0 deletions
diff --git a/modules/CIAO/tests/Bug_2130_Regression/Logs/PROBLEM-REPORT-FORM b/modules/CIAO/tests/Bug_2130_Regression/Logs/PROBLEM-REPORT-FORM
new file mode 100644
index 00000000000..df98c63f06d
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/Logs/PROBLEM-REPORT-FORM
@@ -0,0 +1,93 @@
+To: ciao-users@cs.wustl.edu
+Subject: RTComponentServer: Session_Container::get_objref blocks
+
+ CIAO VERSION: 0.4.7
+ TAO VERSION : 1.4.7
+ ACE VERSION : 5.4.7
+
+ HOST MACHINE and OPERATING SYSTEM:
+ Intel(R) Pentium(R) D CPU 3.00GHZ
+ Microsoft Windows XP Professional Version 2002 Service Pack 2
+
+ COMPILER NAME AND VERSION (AND PATCHLEVEL):
+ Microsoft Visual C++ .NET 2003
+ Microsoft (R) 32-Bit C/C++-Optimierungscompiler Version 13.10.3077
+
+ THE $ACE_ROOT/ace/config.h FILE [if you use a link to a platform-
+ specific file, simply state which one]:
+ #include "ace/config-win32.h"
+
+ THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE [if you
+ use a link to a platform-specific file, simply state which one
+ (unless this isn't used in this case, e.g., with Microsoft Visual
+ C++)]:
+
+ CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
+ ssl=0
+ qos=1
+ cidl=0
+ rwho=0
+ sctp=0
+ qt=1
+
+ AREA/CLASS/EXAMPLE AFFECTED:
+ CIAO/ciao/Session_Container::get_objref
+
+
+ DOES THE PROBLEM AFFECT:
+ COMPILATION?
+ No
+ LINKING?
+ No
+ EXECUTION?
+ Yes
+ OTHER (please specify)?
+[Please indicate whether ACE/TAO/CIAO, your application, or both are affected.]
+
+ SYNOPSIS:
+ A call of Session_Container::get_objref blocks forever.
+
+ DESCRIPTION:
+ I'm running two clients simultaneously callings the methods acquireSession
+ and releaseSession of the CORBA component TSEC_CheckPoint ( please see
+ sample code in TSEC_CheckPoint_exec.cpp lines 233... and 283... and also
+ controller.cpp line 150... ) configured with realtime policies. After the
+ start of the second client the component TSEC_CheckPoint blocks in the
+ method Session_Container::get_objref ( please see the log file
+ DebuggerCallStack.log ).
+
+ The serious code line of TSEC_CheckPoint_exec.cpp is:
+ CORBA::Object_var obj = this->getObjRef( p_sessionImpl) ;
+
+ If only one client is calling acquireSession every thing works fine.
+ But if I start a second client which is calling acquireSession then the
+ block happens.
+
+ I'm using the patch from 20051612 for the files
+ Container_Base.cpp and Container_Base.h which I merge with the CIAO
+ version 047.
+
+ If i use CIAO version < 043 everythings works fine with no blocks.
+
+ REPEAT BY:
+ Please build the sample code:
+ - cd interfaces
+ - mwc.pl -type nmake
+ - nmake realclean clean depend all
+ - touch *.idl
+ - nmake
+ - cd SEC_CheckPoint
+ - mwc.pl -type nmake
+ - nmake realclean clean depend all
+
+ Please run the sample:
+ - cd descriptors
+ - start_da.bat
+ - start_am.bat
+ - start_test.bat
+ - start_testcase_1.bat
+ - start_testcase_2.bat
+
+
+ SAMPLE FIX/WORKAROUND:
+[If available ]
diff --git a/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.idl b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.idl
new file mode 100644
index 00000000000..83d68fc4353
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.idl
@@ -0,0 +1,27 @@
+//$Id$
+
+#ifndef TSEC_CHECKPOINT_IDL
+#define TSEC_CHECKPOINT_IDL
+
+#include "../interfaces/ENW.idl"
+
+
+module ENW
+{
+ component TSEC_CheckPoint supports ISessionService
+ {
+ provides ISessionService sessionService;
+
+ consumes ET_LifeToken lifeTokenIn;
+ publishes ET_LifeToken lifeTokenOut;
+
+ };
+
+ home TSEC_CheckPointHome manages TSEC_CheckPoint
+ {
+ factory new_TSEC_CheckPoint( in string Version );
+ };
+};
+
+
+#endif // TSEC_CHECKPOINT_IDL
diff --git a/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc
new file mode 100644
index 00000000000..9e7a1102f55
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint.mpc
@@ -0,0 +1,121 @@
+//$Id$
+
+project(TSEC_CheckPoint_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=TSEC_CHECKPOINT_STUB_Export \
+ -Wb,stub_export_include=TSEC_CheckPoint_stub_export.h \
+ -Wb,skel_export_macro=TSEC_CHECKPOINT_SVNT_Export \
+ -Wb,skel_export_include=TSEC_CheckPoint_svnt_export.h \
+ -Wb,exec_export_macro=TSEC_CHECKPOINT_EXEC_Export \
+ -Wb,exec_export_include=TSEC_CheckPoint_exec_export.h \
+ -Glfa
+ requires += dummy_label
+
+ IDL_Files {
+ TSEC_CheckPoint.idl
+ }
+}
+
+project(TSEC_CheckPoint_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += TSEC_CheckPoint_idl_gen
+ idlflags += -SS -St \
+ -Wb,export_macro=TSEC_CHECKPOINT_EXEC_Export \
+ -Wb,export_include=TSEC_CheckPoint_exec_export.h
+
+ requires += dummy_label
+ IDL_Files {
+ TSEC_CheckPointE.idl
+ }
+}
+
+
+project(TSEC_CheckPoint_stub): ccm_stub, event {
+ after += ENW_stub TSEC_CheckPoint_idl_gen
+ libpaths += ../interfaces
+ libs += ENW_stub
+ sharedname = TSEC_CheckPoint_stub
+ dynamicflags = TSEC_CHECKPOINT_STUB_BUILD_DLL
+ requires += dummy_label
+ IDL_Files {
+ }
+
+ Source_Files {
+ TSEC_CheckPointC.cpp
+ }
+
+ Header_Files {
+ TSEC_CheckPointC.h
+ TSEC_CheckPoint_stub_export.h
+ }
+
+ Inline_Files {
+ TSEC_CheckPointC.inl
+ }
+}
+
+project(TSEC_CheckPoint_svnt) : ciao_servant, event {
+ after += TSEC_CheckPoint_skel TSEC_CheckPoint_exec
+ after += ENW_skel ENW_stub
+ sharedname = TSEC_CheckPoint_svnt
+ libpaths += ../interfaces
+ libs += TSEC_CheckPoint_stub TSEC_CheckPoint_exec
+ libs += ENW_stub ENW_skel
+ requires += dummy_label
+ dynamicflags = TSEC_CHECKPOINT_SVNT_BUILD_DLL
+ requires += dummy_label
+ IDL_Files {
+ }
+
+ Source_Files {
+ TSEC_CheckPointS.cpp
+ TSEC_CheckPoint_svnt.cpp
+ }
+}
+
+
+project(TSEC_CheckPoint_exec) : ciao_executor, event, ccm_svnt, ciao_session_container, naming {
+ after += TSEC_CheckPoint_stub TSEC_CheckPoint_lem_gen
+ after += ENW_skel ENW_stub
+ requires += dummy_label
+ includes += ../interfaces
+
+ sharedname = TSEC_CheckPoint_exec
+ libpaths += ../interfaces
+ libs += TSEC_CheckPoint_stub
+ libs += ENW_stub ENW_skel
+
+ idlflags -= -GT
+ idlflags += -SS -St \
+ -Wb,export_macro=TSEC_CHECKPOINT_EXEC_Export \
+ -Wb,export_include=TSEC_CheckPoint_exec_export.h
+ dynamicflags = TSEC_CHECKPOINT_EXEC_BUILD_DLL
+
+ IDL_Files {
+ TSEC_CheckPointEI.idl
+ }
+
+ Source_Files {
+ TSEC_CheckPointEC.cpp
+ TSEC_CheckPointEIC.cpp
+ TSEC_CheckPoint_exec.cpp
+ }
+}
+
+
+project(TSEC_CheckPoint_controller) : ccm_stub, valuetype, event {
+ exename = controller
+ after += TSEC_CheckPoint_stub
+ libs += TSEC_CheckPoint_stub ENW_stub
+ libpaths += ../interfaces
+ requires += dummy_label
+ IDL_Files {
+ }
+
+ Source_Files {
+ controller.cpp
+ }
+}
+
+
+
diff --git a/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPointEI.idl b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPointEI.idl
new file mode 100644
index 00000000000..9cd47181299
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPointEI.idl
@@ -0,0 +1,19 @@
+// $Id$
+
+#ifndef TSEC_CHECKPOINTEI_IDL
+#define TSEC_CHECKPOINTEI_IDL
+
+#include "TSEC_CheckPointE.idl"
+
+module ENW
+{
+ local interface TSEC_CheckPoint_Exec :
+ CCM_TSEC_CheckPoint,
+ CCM_ISessionService,
+ Components::SessionComponent
+ {
+ };
+
+};
+
+#endif /* TSEC_CHECKPOINTEI_IDL */
diff --git a/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp
new file mode 100644
index 00000000000..8f2b0c02d3d
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.cpp
@@ -0,0 +1,592 @@
+//$Id$
+
+//-------------------------------------------------------------------
+// Includes
+//-------------------------------------------------------------------
+
+#include "ace/Timer_Queue.h"
+#include "ace/Reactor.h"
+#include "ace/os_include/os_assert.h"
+
+#include "tao/LocalObject.h"
+#include <orbsvcs/CosNamingC.h>
+
+#include "ciao/Version.h"
+#include "ciao/Containers/Session/Session_Container.h"
+#include "TSEC_CheckPoint_exec.h"
+#include "TSEC_CheckPoint_svnt.h"
+
+
+//-------------------------------------------------------------------
+// Defines
+//-------------------------------------------------------------------
+
+#define SEPARATION_LINE "----------------------------------------" \
+ "----------------------------------------\n"
+
+
+//-------------------------------------------------------------------
+// Statics
+//-------------------------------------------------------------------
+
+static const char* argv[] =
+{
+ "TSEC_CheckPoint"
+};
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+Impl::TSEC_SessionEntry::TSEC_SessionEntry()
+: _p_sessionImpl( 0 )
+{
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+Impl::TSEC_SessionEntry::TSEC_SessionEntry
+(
+ TSEC_Session_impl* pSessionImpl,
+ ENW::TSession_ptr Session
+)
+: _p_sessionImpl( pSessionImpl )
+{
+ if( !CORBA::is_nil( Session ) )
+ {
+ _session = ENW::TSession::_duplicate( Session );
+ }
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+Impl::TSEC_Session_impl::TSEC_Session_impl
+(
+ TSEC_CheckPoint_exec_i& Parent,
+ CORBA::Long Ident
+)
+ : _isInUse(0),_ident( Ident ),_parent( Parent )
+{
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+Impl::TSEC_Session_impl::~TSEC_Session_impl()
+{
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+CORBA::ULong
+Impl::TSEC_Session_impl::hash
+(
+ CORBA::ULong Maximum
+)
+{
+ CORBA::ULong hash =
+ static_cast <CORBA::ULong> (reinterpret_cast <ptrdiff_t> (this));
+
+ return hash % Maximum;
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+CORBA::Long
+Impl::TSEC_Session_impl::getIdent
+(
+)
+{
+ //ACE_GUARD_RETURN( TMutex, guard, _parent.getMutex(), -1 );
+
+ return _ident;
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+CORBA::Boolean
+Impl::TSEC_Session_impl::isInUse
+(
+)
+{
+ //ACE_GUARD_RETURN( TMutex, guard, _parent.getMutex(), FALSE );
+ return _isInUse;
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+Impl::TSEC_CheckPoint_exec_i::TSEC_CheckPoint_exec_i()
+: _p_sessionContainer( 0 ),
+ _isActivated( false )
+{
+ ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::"
+ "TSEC_CheckPoint_exec_i\n" ) );
+
+ this->init();
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+Impl::TSEC_CheckPoint_exec_i::TSEC_CheckPoint_exec_i
+(
+ const char* /*Version*/
+)
+: _p_sessionContainer( 0 ),
+ _isActivated( false )
+{
+ ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::"
+ "TSEC_CheckPoint_exec_i\n" ) );
+ this->init();
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+Impl::TSEC_CheckPoint_exec_i::~TSEC_CheckPoint_exec_i()
+{
+ ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::"
+ "~TSEC_CheckPoint_exec_i\n" ) );
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+CORBA::Object_ptr
+Impl::TSEC_CheckPoint_exec_i::getObjRef
+(
+ PortableServer::Servant Servant
+)
+{
+ return this->_p_sessionContainer->get_objref( Servant );
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+int
+Impl::TSEC_CheckPoint_exec_i::init
+(
+)
+{
+ ACE_DEBUG ((LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::init\n"));
+
+ int argc = sizeof( argv ) / sizeof( argv[0] );
+
+ CORBA::ORB_var orb = CORBA::ORB_init( argc,
+ const_cast<char **> (argv)
+ );
+ _orb = CORBA::ORB::_duplicate( orb.in () );
+
+ return 0;
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+CORBA::Object_ptr
+Impl::TSEC_CheckPoint_exec_i::installServant
+(
+ PortableServer::Servant Servant
+)
+{
+ assert( this->_p_sessionContainer );
+ PortableServer::ObjectId_var oid;
+ return this->_p_sessionContainer->install_servant( Servant,
+ CIAO::Container_Types::COMPONENT_t, oid.out ());
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+void
+Impl::TSEC_CheckPoint_exec_i::uninstallServant
+(
+ CORBA::Object_ptr ObjRef
+)
+{
+ assert( this->_p_sessionContainer );
+
+ this->_p_sessionContainer->uninstall( ObjRef, CIAO::Container_Types::COMPONENT_t);
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+ENW::TSession_ptr
+Impl::TSEC_CheckPoint_exec_i::createSession
+(
+)
+{
+ static long cnt = 0L;
+
+ ENW::TSession_var session = ENW::TSession::_nil();
+
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::createSession...\n" ) );
+
+ TSEC_Session_impl* p_sessionImpl = new TSEC_Session_impl( *this, ++cnt );
+ PortableServer::ServantBase_var safe_servant( p_sessionImpl );
+ CORBA::Object_var obj = this->installServant( p_sessionImpl
+ );
+ session = ENW::TSession::_narrow ( obj.in () );
+
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::createSession...[DONE]\n" ) );
+
+ return session._retn();
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+::CORBA::Boolean
+Impl::TSEC_CheckPoint_exec_i::destroySession
+(
+ ENW::TSession_ptr Session
+)
+{
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::destroySession...\n" ) );
+
+ if( CORBA::is_nil( Session ) )
+ {
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::destroySession...[ERROR]\n" ) );
+ return 0;
+ }
+
+ this->uninstallServant( Session );
+
+ return 1;
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+ENW::TSession_ptr
+Impl::TSEC_CheckPoint_exec_i::acquireSession
+(
+ CORBA::Long Ident
+)
+{
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::acquireSession...\n" ) );
+
+ if( Ident <= 0 || Ident > TSEC_SESSION_MAX_IDENT )
+ {
+ if( Ident != -1 )
+ {
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[ERROR]\n" ) );
+ throw ENW::EUnknownIdent();
+ }
+ }
+
+ ENW::TSession_var session = ENW::TSession::_nil();
+ TSEC_Session_impl* p_sessionImpl = 0;
+
+ try
+ {
+ {
+ //ACE_GUARD_RETURN( TMutex, guard, _mutex, ENW::TSession::_nil() );
+ p_sessionImpl = sessionVector[Ident-1]._p_sessionImpl;
+ }
+
+ p_sessionImpl->isInUse( 1 );
+ CORBA::Object_var obj = this->getObjRef( p_sessionImpl) ;
+ session = ENW::TSession::_narrow ( obj.in () );
+ //session = sessionVector[Ident-1]._session;
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Reason\n");
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[ERROR]\n" ) );
+
+ return session._retn();
+ }
+
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[DONE]\n" ) );
+
+ return session._retn();
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+::CORBA::Boolean
+Impl::TSEC_CheckPoint_exec_i::releaseSession
+(
+ CORBA::Long Ident,
+ ENW::TSession_ptr Session
+)
+{
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...\n" ) );
+
+ if( CORBA::is_nil( Session ) )
+ {
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[ERROR]\n" ) );
+ throw ENW::EUnknownSession();
+ }
+
+ //CORBA::Long ident = Session->getIdent();
+ CORBA::Long ident = Ident;
+
+ if( ident <= 0 || ident > TSEC_SESSION_MAX_IDENT )
+ {
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[ERROR]\n" ) );
+ return 0;;
+ }
+
+ TSEC_Session_impl* p_sessionImpl = 0;
+
+ {
+ //ACE_GUARD_RETURN( TMutex, guard, _mutex, FALSE );
+
+ p_sessionImpl = sessionVector[ident-1]._p_sessionImpl;
+ }
+
+ assert( p_sessionImpl );
+
+
+ if( !p_sessionImpl->isInUse() )
+ {
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[ERROR]\n" ) );
+ return 0;
+ }
+
+ p_sessionImpl->isInUse( 0);
+
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) TSEC_CheckPoint_exec_i::releaseSession...[DONE]\n" ) );
+
+ return 1;
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+ENW::CCM_ISessionService_ptr
+Impl::TSEC_CheckPoint_exec_i::get_sessionService
+(
+)
+{
+ return ENW::CCM_ISessionService::_duplicate( this );
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+void
+Impl::TSEC_CheckPoint_exec_i::set_session_context
+(
+ Components::SessionContext_ptr Ctx
+)
+{
+ ACE_DEBUG( ( LM_DEBUG,
+ "Impl::TSEC_CheckPoint_exec_i::set_session_context\n" ) );
+
+ this->_context =
+ ENW::CCM_TSEC_CheckPoint_Context::_narrow( Ctx
+ );
+
+ if( CORBA::is_nil( this->_context.in() ) )
+ {
+ throw CORBA::INTERNAL();
+ }
+
+ CIAO_ENW_TSEC_CheckPoint_Impl::TSEC_CheckPoint_Context* p_checkPoint_Context =
+ CIAO_ENW_TSEC_CheckPoint_Impl::TSEC_CheckPoint_Context::_narrow( Ctx );
+
+ if( !p_checkPoint_Context )
+ {
+ throw CORBA::INTERNAL();
+ }
+
+ this->_p_sessionContainer = dynamic_cast < ::CIAO::Session_Container*>(p_checkPoint_Context->_ciao_the_Container());
+
+ if( !_p_sessionContainer )
+ {
+ throw CORBA::INTERNAL();
+ }
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+void
+Impl::TSEC_CheckPoint_exec_i::push_lifeTokenIn
+(
+ ENW::ET_LifeToken* /* Event */
+)
+{
+ _awaitingLifeToken = false;
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+void
+Impl::TSEC_CheckPoint_exec_i::configuration_complete
+(
+)
+{
+ ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::configuration_complete\n" ) );
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+void
+Impl::TSEC_CheckPoint_exec_i::ccm_activate
+(
+)
+{
+ ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::ccm_activate\n" ) );
+
+ TSEC_Session_impl* p_sessionImpl = 0;
+
+ for( CORBA::Long i = 0; i < TSEC_SESSION_MAX_IDENT; ++i )
+ {
+ p_sessionImpl = new TSEC_Session_impl( *this, i + 1 );
+ PortableServer::ServantBase_var safe_servant( p_sessionImpl );
+ CORBA::Object_var obj = this->installServant( p_sessionImpl
+ );
+ ENW::TSession_var session =
+ ENW::TSession::_narrow ( obj.in () );
+ sessionVector[i] = TSEC_SessionEntry( p_sessionImpl, session.in () );
+ }
+
+ _isActivated = true;
+}
+
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+void
+Impl::TSEC_CheckPoint_exec_i::ccm_passivate
+(
+)
+{
+ ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::ccm_passivate\n" ) );
+ _isActivated = false;
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+void
+Impl::TSEC_CheckPoint_exec_i::ccm_remove
+(
+)
+{
+ ACE_DEBUG( ( LM_DEBUG, "Impl::TSEC_CheckPoint_exec_i::ccm_remove\n" ) );
+ _isActivated = false;
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+Impl::TSEC_CheckPointHome_exec_i::TSEC_CheckPointHome_exec_i()
+{
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+Impl::TSEC_CheckPointHome_exec_i::~TSEC_CheckPointHome_exec_i()
+{
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+::Components::EnterpriseComponent_ptr
+Impl::TSEC_CheckPointHome_exec_i::new_TSEC_CheckPoint
+(
+ const char* Version
+ )
+{
+ return new Impl::TSEC_CheckPoint_exec_i( Version );
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+::Components::EnterpriseComponent_ptr
+Impl::TSEC_CheckPointHome_exec_i::create
+(
+)
+{
+
+ return new Impl::TSEC_CheckPoint_exec_i();
+}
+
+
+//-------------------------------------------------------------------
+// Operation
+//-------------------------------------------------------------------
+
+extern "C" TSEC_CHECKPOINT_EXEC_Export ::Components::HomeExecutorBase_ptr
+createTSEC_CheckPointHome_Impl()
+{
+ return new Impl::TSEC_CheckPointHome_exec_i();
+}
+
diff --git a/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h
new file mode 100644
index 00000000000..7f09543ea32
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/TSEC_CheckPoint_exec.h
@@ -0,0 +1,244 @@
+//$Id$
+
+//===================================================================
+/**
+ * @file TSEC_CheckPoint_exec.h
+ *
+ * Header file for the Executor implementation.
+ */
+//===================================================================
+
+#ifndef TSEC_CheckPoint_EXEC_H
+#define TSEC_CheckPoint_EXEC_H
+
+//-------------------------------------------------------------------
+// Includes
+//-------------------------------------------------------------------
+
+#include "ace/Thread_Manager.h"
+#include "ace/Task.h"
+
+#include "tao/LocalObject.h"
+
+#include "ENWS.h"
+#include "TSEC_CheckPointEIC.h"
+#include "TSEC_CheckPoint_exec_export.h"
+
+
+//-------------------------------------------------------------------
+// Defines
+//-------------------------------------------------------------------
+
+#define TSEC_SESSION_ID_MAX 0xffffffff
+#define TSEC_SESSION_MAX_IDENT 2
+
+
+//-------------------------------------------------------------------
+// Type definitions
+//-------------------------------------------------------------------
+
+
+//-------------------------------------------------------------------
+// Forward declarations
+//-------------------------------------------------------------------
+
+
+//-------------------------------------------------------------------
+// Classes
+//-------------------------------------------------------------------
+
+namespace Impl
+{
+ typedef TAO_SYNCH_MUTEX TMutex;
+
+ class TSEC_CheckPoint_exec_i;
+
+ class TSEC_Session_impl :
+ public virtual POA_ENW::TSession,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+
+ TSEC_Session_impl
+ (
+ TSEC_CheckPoint_exec_i& Parent,
+ CORBA::Long Ident
+ );
+
+ virtual ~TSEC_Session_impl();
+
+ CORBA::Long getIdent();
+ CORBA::Boolean isInUse();
+ void isInUse( CORBA::Boolean Flag ) { _isInUse = Flag; }
+
+ protected:
+ CORBA::Boolean _isInUse;
+ CORBA::Long _ident;
+
+ TSEC_CheckPoint_exec_i& _parent;
+
+ CORBA::ULong hash
+ (
+ CORBA::ULong Maximum
+ );
+
+ TSEC_CheckPoint_exec_i& getParent() { return _parent; }
+
+ };
+
+ struct TSEC_SessionEntry
+ {
+ TSEC_SessionEntry();
+
+ TSEC_SessionEntry
+ (
+ TSEC_Session_impl* pSessionImpl,
+ ENW::TSession_ptr Session
+ );
+
+ TSEC_Session_impl* _p_sessionImpl;
+ ENW::TSession_var _session;
+ };
+
+ class TSEC_CHECKPOINT_EXEC_Export TSEC_CheckPoint_exec_i :
+ public virtual ENW::TSEC_CheckPoint_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ TSEC_CheckPoint_exec_i();
+ TSEC_CheckPoint_exec_i( const char* Version );
+
+ virtual ~TSEC_CheckPoint_exec_i();
+
+ // Attribute Operationen:
+ //
+
+
+ // Interface ISessionService
+ //
+
+ virtual ENW::CCM_ISessionService_ptr get_sessionService
+ (
+ );
+
+
+ virtual ENW::TSession_ptr createSession
+ (
+ );
+
+ virtual CORBA::Boolean destroySession
+ (
+ ENW::TSession_ptr Session
+ );
+
+ virtual ENW::TSession_ptr acquireSession
+ (
+ CORBA::Long Ident
+ );
+
+ virtual CORBA::Boolean releaseSession
+ (
+ CORBA::Long Ident,
+ ENW::TSession_ptr Session
+ );
+
+
+ // Events
+ //
+
+ virtual void push_lifeTokenIn
+ (
+ ENW::ET_LifeToken* Event
+ );
+
+
+ // Operations from Components::SessionComponent
+ //
+
+ virtual void set_session_context
+ (
+ Components::SessionContext_ptr ctx
+ );
+
+ virtual void configuration_complete
+ (
+ );
+
+ virtual void ccm_activate
+ (
+ );
+
+ virtual void ccm_passivate
+ (
+ );
+
+ virtual void ccm_remove
+ (
+ );
+
+ CORBA::Object_ptr getObjRef
+ (
+ PortableServer::Servant Servant
+ );
+
+ int init(
+ );
+
+ CORBA::Object_ptr installServant
+ (
+ PortableServer::Servant Servant
+ );
+
+ void uninstallServant
+ (
+ CORBA::Object_ptr ObjRef
+ );
+
+ TMutex& getMutex() { return _mutex; }
+
+ protected:
+ // Copmponent specific context
+
+ ENW::CCM_TSEC_CheckPoint_Context_var _context;
+ ::CIAO::Session_Container* _p_sessionContainer;
+ TMutex _mutex;
+ CORBA::ORB_var _orb;
+
+ private:
+ bool _awaitingLifeToken;
+ bool _isActivated;
+
+ //TSEC_Session_impl* sessionVector[TSEC_SESSION_MAX_IDENT];
+ TSEC_SessionEntry sessionVector[TSEC_SESSION_MAX_IDENT];
+ };
+
+ /**
+ * home executor implementation class.
+ */
+ class TSEC_CHECKPOINT_EXEC_Export TSEC_CheckPointHome_exec_i :
+ public virtual ENW::CCM_TSEC_CheckPointHome,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+
+ TSEC_CheckPointHome_exec_i();
+
+ virtual ~TSEC_CheckPointHome_exec_i();
+
+ // Explicit home operations.
+ virtual ::Components::EnterpriseComponent_ptr new_TSEC_CheckPoint
+ (
+ const char* Version
+ );
+
+ // Implicit home operations.
+ virtual ::Components::EnterpriseComponent_ptr create
+ (
+ );
+ };
+} // Impl
+
+extern "C" TSEC_CHECKPOINT_EXEC_Export ::Components::HomeExecutorBase_ptr
+createTSEC_CheckPointHome_Impl();
+
+#endif // TSEC_CheckPoint_EXEC_H
diff --git a/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp
new file mode 100644
index 00000000000..8901cdbf20a
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/SEC_CheckPoint/controller.cpp
@@ -0,0 +1,197 @@
+//$Id$
+
+
+/**
+ * @file controller.cpp
+ *
+ * This program interact with a TSEC_CheckPoint component, using its supported
+ * interface "ISessionService"
+ */
+
+
+//-------------------------------------------------------------------
+// Includes
+//-------------------------------------------------------------------
+
+#include "ace/streams.h"
+#include "ace/Get_Opt.h"
+
+#include "TSEC_CheckPointC.h"
+
+
+//-------------------------------------------------------------------
+// Defines
+//-------------------------------------------------------------------
+
+#define SEPARATION_LINE "----------------------------------------" \
+ "----------------------------------------\n"
+
+#define TESTCASE_NOT_DEFINED 0
+#define TESTCASE_ACQUIRE_RELEASE_SESSION 1
+#define TESTCASE_CREATE_DESTROY_SESSION 2
+
+
+//-------------------------------------------------------------------
+// Statics
+//-------------------------------------------------------------------
+
+static int _testcase = TESTCASE_NOT_DEFINED;
+static int _loop = 0;
+static int _ident = 1;
+static const ACE_TCHAR* _sessionService_ior = 0;
+
+
+//-------------------------------------------------------------------
+// Function
+//-------------------------------------------------------------------
+
+int
+parse_args
+(
+ int argc,
+ ACE_TCHAR* argv[]
+)
+{
+ ACE_Get_Opt get_opts( argc, argv, ACE_TEXT("i:k:l:t:") );
+ int c;
+
+ while( ( c = get_opts() ) != -1 )
+ {
+ switch( c )
+ {
+ case 'i':
+ _ident = ACE_OS::atoi( get_opts.opt_arg() );
+ break;
+
+ case 'k':
+ _sessionService_ior = get_opts.opt_arg();
+ break;
+
+ case 'l':
+ _loop = ACE_OS::atoi( get_opts.opt_arg() );
+ break;
+
+ case 't':
+ _testcase = ACE_OS::atoi( get_opts.opt_arg() );
+ break;
+
+ case '?': // display help for use of the server.
+ default:
+ ACE_ERROR_RETURN( ( LM_ERROR,
+ "usage: %s\n"
+ "-i <Ident> (default is 1)\n"
+ "-k <TSEC_CheckPoint IOR> (default is file://TSEC_CheckPoint.ior)\n"
+ "-t <testcase number> (default is 1)\n"
+ "\n",
+ argv[0] ),
+ -1 );
+ break;
+ }
+ }
+
+ if ( _sessionService_ior == 0 )
+ {
+ _sessionService_ior = ACE_TEXT("file://TSEC_CheckPoint.ior");
+ }
+
+ if( _testcase == 0 )
+ {
+ _testcase = TESTCASE_ACQUIRE_RELEASE_SESSION;
+ }
+
+ return 0;
+}
+
+
+//-------------------------------------------------------------------
+// Function
+//-------------------------------------------------------------------
+
+int
+ACE_TMAIN
+(
+ int argc,
+ ACE_TCHAR* argv[]
+)
+{
+ try
+ {
+ // Initialize orb
+ CORBA::ORB_var orb =
+ CORBA::ORB_init( argc, argv);
+
+ if( parse_args( argc, argv ) != 0 )
+ {
+ return -1;
+ }
+
+ CORBA::Object_var obj = orb->string_to_object( _sessionService_ior
+ );
+
+ ENW::ISessionService_var sessionService =
+ ENW::ISessionService::_narrow (obj.in () );
+
+ if( CORBA::is_nil( sessionService.in() ) )
+ {
+ ACE_ERROR_RETURN( ( LM_ERROR,
+ "Unable to acquire 'SessionService' objref\n" ),
+ -1 );
+ }
+
+ ACE_DEBUG( ( LM_DEBUG, SEPARATION_LINE ) );
+
+ for( int i = 0; i < _loop; ++i )
+ {
+ switch( _testcase )
+ {
+ case TESTCASE_ACQUIRE_RELEASE_SESSION:
+ {
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) Executing testcase acquire release session...[running]\n" ) );
+
+ ENW::TSession_var session = sessionService->acquireSession( _ident );
+ //CORBA::Long ident = session->getIdent();
+ sessionService->releaseSession( _ident, session.in () );
+
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) Executing testcase acquire release session...[ready]\n" ) );
+ }
+
+ break;
+
+ case TESTCASE_CREATE_DESTROY_SESSION:
+ {
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) Executing testcase create destroy session...[running]\n" ) );
+
+ ENW::TSession_var session = sessionService->createSession();
+ CORBA::Long ident = session->getIdent();
+ ACE_DEBUG(( LM_DEBUG, "(%P|%t@%T) Ident: %d\n", ident ) );
+
+ if( !sessionService->destroySession( session.in () ) )
+ {
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) Executing testcase create destroy session...[ERROR]\n" ) );
+ }
+
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) Executing testcase create destroy session...[ready]\n" ) );
+ }
+
+ break;
+
+ default:
+ ACE_DEBUG( ( LM_DEBUG, "(%P|%t@%T) Testcase is undefined!\n" ) );
+ break;
+
+ }
+ }
+
+ orb->destroy( );
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("Who is the culprit\n");
+ cerr << "Uncaught CORBA exception" << endl;
+
+ return 1;
+ }
+
+ return 0;
+}
+
diff --git a/modules/CIAO/tests/Bug_2130_Regression/descriptors/DeploymentPlan.cdp b/modules/CIAO/tests/Bug_2130_Regression/descriptors/DeploymentPlan.cdp
new file mode 100644
index 00000000000..d814af11a50
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/descriptors/DeploymentPlan.cdp
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Deployment:deploymentPlan
+ xmlns:Deployment="http://www.omg.org/Deployment"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.omg.org/Deployment Modified_Deployment.xsd">
+
+ <label>CheckPoint-DeploymentPlan</label>
+
+ <UUID>CheckPoint_Plan_UUID_0001</UUID>
+
+ <realizes>
+ <label>CheckPoint-realizes-cid</label>
+ <UUID>c0965470-7b83-11d9-9669-0800200c9a66</UUID>
+ <specificType/>
+ <supportedType>IDL:ENW/Sender:1.0</supportedType>
+ <port>
+ <name>read_message</name>
+ <specificType>IDL:ENW/ISessionService:1.0</specificType>
+ <supportedType>IDL:ENW/ISessionService:1.0</supportedType>
+ <provider>false</provider>
+ <exclusiveProvider>false</exclusiveProvider>
+ <exclusiveUser>true</exclusiveUser>
+ <optional>false</optional>
+ <kind>SimplexReceptacle</kind>
+ </port>
+ </realizes>
+
+ <implementation id="CheckPoint-TSEC_CheckPoint-mdd">
+ <name>CheckPoint-TSEC_CheckPoint-mdd</name>
+ <source><!-- @@ Don't know what goes here --></source>
+ <artifact>CheckPoint-TSEC_CheckPoint_exec</artifact>
+ <artifact>CheckPoint-TSEC_CheckPoint_svnt</artifact>
+ </implementation>
+
+ <instance id="CheckPoint-TSEC_CheckPoint-idd">
+ <name>CheckPoint-TSEC_CheckPoint-idd</name>
+ <node>CheckPointNode</node>
+ <source/>
+ <implementation>CheckPoint-TSEC_CheckPoint-mdd</implementation>
+ <configProperty>
+ <name>ComponentIOR</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>TSEC_CheckPoint.ior</string>
+ </value>
+ </value>
+ </configProperty>
+
+ <deployedResource>
+ <resourceUsage>InstanceUsesResource</resourceUsage>
+ <requirementName>CIAO:PolicySet</requirementName>
+ <resourceName>test_server_resource_id</resourceName>
+ <resourceValue>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>test_policy_set_id</string>
+ </value>
+ </resourceValue>
+ </deployedResource>
+ </instance>
+
+ <artifact id="CheckPoint-TSEC_CheckPoint_exec">
+ <name>TSEC_CheckPoint_exec</name>
+ <source/>
+ <node/>
+ <location>TSEC_CheckPoint_exec</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>createTSEC_CheckPointHome_Impl</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <artifact id="CheckPoint-TSEC_CheckPoint_svnt">
+ <name>TSEC_CheckPoint_svnt</name>
+ <source/>
+ <node/>
+ <location>TSEC_CheckPoint_svnt</location>
+ <execParameter>
+ <name>entryPoint</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>create_ENW_TSEC_CheckPointHome_Servant</string>
+ </value>
+ </value>
+ </execParameter>
+ </artifact>
+
+ <infoProperty>
+ <name>CIAOServerResources</name>
+ <value>
+ <type>
+ <kind>tk_string</kind>
+ </type>
+ <value>
+ <string>rt-config-example.csr</string>
+ </value>
+ </value>
+ </infoProperty>
+
+</Deployment:deploymentPlan>
+
diff --git a/modules/CIAO/tests/Bug_2130_Regression/descriptors/TestNodeManagerMap.dat b/modules/CIAO/tests/Bug_2130_Regression/descriptors/TestNodeManagerMap.dat
new file mode 100644
index 00000000000..9ec03384ec9
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/descriptors/TestNodeManagerMap.dat
@@ -0,0 +1 @@
+CheckPointNode corbaloc:iiop:localhost:30000/NodeManager \ No newline at end of file
diff --git a/modules/CIAO/tests/Bug_2130_Regression/descriptors/rt-config-example.csr b/modules/CIAO/tests/Bug_2130_Regression/descriptors/rt-config-example.csr
new file mode 100644
index 00000000000..e1d120352aa
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/descriptors/rt-config-example.csr
@@ -0,0 +1,30 @@
+
+<CIAO:ServerResources
+ xmlns:CIAO="http://www.dre.vanderbilt.edu/ServerResources"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.dre.vanderbilt.edu/ServerResources CIAOServerResources.xsd"
+ id="test_server_resource_id">
+
+ <orbConfigs>
+ <resources>
+ <threadpool id="threadpool-1">
+ <stacksize>0</stacksize>
+ <static_threads>6</static_threads>
+ <dynamic_threads>0</dynamic_threads>
+ <default_priority>2</default_priority>
+ <allow_request_buffering>false</allow_request_buffering>
+ <max_buffered_requests>0</max_buffered_requests>
+ <max_request_buffered_size>0</max_request_buffered_size>
+ </threadpool>
+ </resources>
+
+ <policySet id="test_policy_set_id">
+ <priorityModel server_priority="2">
+ <priority_model>SERVER_DECLARED</priority_model>
+ </priorityModel>
+ <threadpool>threadpool-1</threadpool>
+ </policySet>
+
+ </orbConfigs>
+</CIAO:ServerResources> \ No newline at end of file
diff --git a/modules/CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl b/modules/CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl
new file mode 100755
index 00000000000..dccd19ae0d2
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/descriptors/run_test.pl
@@ -0,0 +1,179 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{'ACE_ROOT'}/bin";
+use PerlACE::Run_Test;
+
+$DAnCE = "$ENV{'ACE_ROOT'}/TAO/CIAO/DAnCE";
+$CIAO_ROOT = "$ENV{'CIAO_ROOT'}";
+$TAO_ROOT = "$ENV{'TAO_ROOT'}";
+$daemons_running = 0;
+$em_running = 0;
+$daemons = 1;
+@ports = ( 30000 );
+@iorfiles = ( "NodeApp.ior" );
+$status = 0;
+$dat_file = "TestNodeManagerMap.dat";
+$cdp_file = "DeploymentPlan.cdp";
+$controller_exec = "../SEC_CheckPoint/controller";
+
+PerlACE::add_lib_path ('../SEC_CheckPoint');
+
+$E = 0;
+$EM = 0;
+
+# Delete if there are any .ior files.
+sub delete_ior_files {
+ for ($i = 0; $i < $daemons; ++$i) {
+ unlink $iorfiles[$i];
+ }
+ unlink PerlACE::LocalFile ("EM.ior");
+ unlink PerlACE::LocalFile ("TSEC_CheckPoint.ior");
+ unlink PerlACE::LocalFile ("DAM.ior");
+}
+
+sub kill_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+}
+
+sub kill_open_processes {
+ if ($daemons_running == 1) {
+ kill_node_daemons ();
+ }
+
+ if ($em_running == 1) {
+ $EM->Kill ();
+ $EM->TimedWait (1);
+ }
+}
+
+sub run_node_daemons {
+ for ($i = 0; $i < $daemons; ++$i)
+ {
+ $iorfile = $iorfiles[$i];
+ $port = $ports[$i];
+
+ $iiop = "iiop://localhost:$port";
+ $node_app = "$CIAO_ROOT/bin/NodeApplication";
+
+ $d_cmd = "$DANCE_ROOT/bin/dance_node_manager";
+ $d_param = "-ORBEndpoint $iiop -s $node_app -o $iorfile -a \"-r\"";
+
+ $Daemons[$i] = new PerlACE::Process ($d_cmd, $d_param);
+
+
+ $result = $Daemons[$i]->Spawn ();
+ push(@processes, $Daemons[$i]);
+
+ if (PerlACE::waitforfile_timed ($iorfile,
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR
+ "ERROR: The ior file of node daemon $i could not be found\n";
+ for (; $i > 0; --$i) {
+ $Daemons[$i]->Kill (); $Daemons[$i]->TimedWait (1);
+ }
+ return -1;
+ }
+ }
+ $daemons_running = 1;
+ return 0;
+}
+
+delete_ior_files ();
+
+
+# Invoke node daemons.
+print "Invoking node daemons\n";
+$status = run_node_daemons ();
+
+if ($status != 0) {
+ print STDERR "ERROR: Unable to execute the node daemons\n";
+ exit 1;
+}
+
+$ns_running = 1;
+
+# Invoke execution manager.
+print "Invoking execution manager\n";
+$EM = new PerlACE::Process ("$CIAO_ROOT/bin/Execution_Manager",
+ "-o EM.ior -i $dat_file");
+$EM->Spawn ();
+
+if (PerlACE::waitforfile_timed ("EM.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR
+ "ERROR: The ior file of execution manager could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+$em_running = 1;
+
+# Invoke executor - start the application -.
+print "Invoking executor - start the application -\n";
+$E =
+ new PerlACE::Process ("$CIAO_ROOT/bin/plan_launcher",
+ "-p DeploymentPlan.cdp -k file://EM.ior -o DAM.ior");
+
+$E->SpawnWaitKill (5000);
+
+
+if (PerlACE::waitforfile_timed ("TSEC_CheckPoint.ior",
+ $PerlACE::wait_interval_for_process_creation) == -1) {
+ print STDERR "ERROR: The ior file of sender could not be found\n";
+ kill_open_processes ();
+ exit 1;
+}
+
+print "Running testcase 1\n";
+
+$controller = new PerlACE::Process ("$controller_exec", "-i 1 -k file://TSEC_CheckPoint.ior -t 1 -l 100000");
+$result = $controller->SpawnWaitKill (3000);
+
+if ($result != 0) {
+ print STDERR "ERROR: The controller returned $result\n";
+ $status = 1;
+}
+
+
+print "Running testcase 2\n";
+
+$controller = new PerlACE::Process ("$controller_exec", "-i 2 -k file://TSEC_CheckPoint.ior -t 1 -l 100000");
+$result = $controller->SpawnWaitKill (3000);
+
+if ($result != 0) {
+ print STDERR "ERROR: The controller returned $result\n";
+ $status = 1;
+}
+
+print "Running testcase 3\n";
+
+$controller = new PerlACE::Process ("$controller_exec", "-k file://TSEC_CheckPoint.ior -t 2 -l 100000");
+$result = $controller->SpawnWaitKill (3000);
+
+if ($result != 0) {
+ print STDERR "ERROR: The controller returned $result\n";
+ $status = 1;
+}
+
+
+# Invoke executor - stop the application -.
+print "Invoking executor - stop the application -\n";
+$E =
+ new PerlACE::Process ("$CIAO_ROOT/bin/plan_launcher",
+ "-k file://EM.ior -i file://DAM.ior");
+$E->SpawnWaitKill (3000);
+
+print "Executor returned.\n";
+print "Shutting down rest of the processes.\n";
+
+delete_ior_files ();
+kill_open_processes ();
+
+exit $status;
diff --git a/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.idl b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.idl
new file mode 100644
index 00000000000..f62febba8a3
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.idl
@@ -0,0 +1,52 @@
+//$Id$
+
+#ifndef ENW_IDL
+#define ENW_IDL
+
+#include <Components.idl>
+
+
+module ENW
+{
+ exception EUnknownIdent
+ {
+ };
+
+ exception EUnknownSession
+ {
+ };
+
+ eventtype ET_LifeToken
+ {
+ };
+
+ //////////////////////////////////////////////////////////////////////////////
+ //
+ // ICheckPoint-Interfaces
+ //
+
+ const long IdNotDefined = -1;
+
+ interface TSession
+ {
+ long getIdent();
+ boolean isInUse();
+ };
+
+ interface ISessionService
+ {
+ TSession createSession();
+ boolean destroySession( in TSession Session );
+
+ TSession acquireSession( in long Ident )
+ raises( EUnknownIdent );
+
+ boolean releaseSession( in long Ident,
+ in TSession Session )
+ raises( EUnknownSession );
+ };
+
+};
+
+
+#endif //ENW_IDL
diff --git a/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.mpc b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.mpc
new file mode 100644
index 00000000000..940fc921321
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW.mpc
@@ -0,0 +1,44 @@
+//$Id$
+
+project(ENW_stub): ccm_stub, event {
+ sharedname = ENW_stub
+ idlflags -= -GT
+ idlflags += -Wb,stub_export_macro=ENW_STUB_Export \
+ -Wb,stub_export_include=ENW_stub_export.h \
+ -Wb,skel_export_macro=ENW_SKEL_Export \
+ -Wb,skel_export_include=ENW_skel_export.h
+ dynamicflags = ENW_STUB_BUILD_DLL
+
+ IDL_Files {
+ ENW.idl
+ }
+
+ Source_Files {
+ ENWC.cpp
+ }
+}
+
+project(ENW_skel) : ciao_servant, event {
+ after += ENW_stub
+ sharedname = ENW_skel
+ libs += ENW_stub
+ idlflags -= -GT
+ idlflags += -Wb,stub_export_macro=ENW_STUB_Export \
+ -Wb,stub_export_include=ENW_stub_export.h \
+ -Wb,skel_export_macro=ENW_SKEL_Export \
+ -Wb,skel_export_include=ENW_skel_export.h
+
+ dynamicflags = ENW_SKEL_BUILD_DLL
+
+ IDL_Files {
+ ENW.idl
+ }
+
+ Source_Files {
+ ENWS.cpp
+ }
+}
+
+
+
+
diff --git a/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_skel_export.h b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_skel_export.h
new file mode 100644
index 00000000000..eb90568f309
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_skel_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ENW_SKEL
+// ------------------------------
+#ifndef ENW_SKEL_EXPORT_H
+#define ENW_SKEL_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ENW_SKEL_HAS_DLL)
+# define ENW_SKEL_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ENW_SKEL_HAS_DLL */
+
+#if !defined (ENW_SKEL_HAS_DLL)
+# define ENW_SKEL_HAS_DLL 1
+#endif /* ! ENW_SKEL_HAS_DLL */
+
+#if defined (ENW_SKEL_HAS_DLL) && (ENW_SKEL_HAS_DLL == 1)
+# if defined (ENW_SKEL_BUILD_DLL)
+# define ENW_SKEL_Export ACE_Proper_Export_Flag
+# define ENW_SKEL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ENW_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ENW_SKEL_BUILD_DLL */
+# define ENW_SKEL_Export ACE_Proper_Import_Flag
+# define ENW_SKEL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ENW_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ENW_SKEL_BUILD_DLL */
+#else /* ENW_SKEL_HAS_DLL == 1 */
+# define ENW_SKEL_Export
+# define ENW_SKEL_SINGLETON_DECLARATION(T)
+# define ENW_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ENW_SKEL_HAS_DLL == 1 */
+
+// Set ENW_SKEL_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ENW_SKEL_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ENW_SKEL_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ENW_SKEL_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ENW_SKEL_NTRACE */
+
+#if (ENW_SKEL_NTRACE == 1)
+# define ENW_SKEL_TRACE(X)
+#else /* (ENW_SKEL_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ENW_SKEL_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ENW_SKEL_NTRACE == 1) */
+
+#endif /* ENW_SKEL_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_stub_export.h b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_stub_export.h
new file mode 100644
index 00000000000..dd8f95cc1f5
--- /dev/null
+++ b/modules/CIAO/tests/Bug_2130_Regression/interfaces/ENW_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ENW_STUB
+// ------------------------------
+#ifndef ENW_STUB_EXPORT_H
+#define ENW_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ENW_STUB_HAS_DLL)
+# define ENW_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ENW_STUB_HAS_DLL */
+
+#if !defined (ENW_STUB_HAS_DLL)
+# define ENW_STUB_HAS_DLL 1
+#endif /* ! ENW_STUB_HAS_DLL */
+
+#if defined (ENW_STUB_HAS_DLL) && (ENW_STUB_HAS_DLL == 1)
+# if defined (ENW_STUB_BUILD_DLL)
+# define ENW_STUB_Export ACE_Proper_Export_Flag
+# define ENW_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ENW_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ENW_STUB_BUILD_DLL */
+# define ENW_STUB_Export ACE_Proper_Import_Flag
+# define ENW_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ENW_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ENW_STUB_BUILD_DLL */
+#else /* ENW_STUB_HAS_DLL == 1 */
+# define ENW_STUB_Export
+# define ENW_STUB_SINGLETON_DECLARATION(T)
+# define ENW_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ENW_STUB_HAS_DLL == 1 */
+
+// Set ENW_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ENW_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ENW_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ENW_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ENW_STUB_NTRACE */
+
+#if (ENW_STUB_NTRACE == 1)
+# define ENW_STUB_TRACE(X)
+#else /* (ENW_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ENW_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ENW_STUB_NTRACE == 1) */
+
+#endif /* ENW_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/Activator/Activator.mpc b/modules/CIAO/tests/CIAO_ComponentServer/Activator/Activator.mpc
new file mode 100644
index 00000000000..df8ec43d6f2
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/Activator/Activator.mpc
@@ -0,0 +1,6 @@
+// $Id$
+project (Activator_CIAOComponentServer_Test) : ciao_componentserver_stub, ccm_configvalue, ciao_cs_client {
+ Source_Files {
+ client.cpp
+ }
+} \ No newline at end of file
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/Activator/client.cpp b/modules/CIAO/tests/CIAO_ComponentServer/Activator/client.cpp
new file mode 100644
index 00000000000..1d5ae186911
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/Activator/client.cpp
@@ -0,0 +1,191 @@
+// $Id$
+
+#include "ace/Get_Opt.h"
+#include "ciao/ComponentServer/CIAO_CS_ClientS.h"
+#include "ciao/ComponentServer/CIAO_ComponentServerC.h"
+#include "ciao/ComponentServer/CIAO_ServerActivator_Impl.h"
+#include "ciao/ComponentServer/CIAO_ComponentInstallation_Impl.h"
+#include "ciao/Valuetype_Factories/ConfigValue.h"
+
+const ACE_TCHAR *cs_path = ACE_TEXT ("ciao_componentserver");
+CORBA::ULong spawn_delay = 30;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, "s:d:");
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 's':
+ cs_path = get_opts.opt_arg ();
+ break;
+
+ case 'd':
+ spawn_delay = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-s <path> "
+ "-d <uint> "
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR **argv)
+{
+ using namespace CIAO::Deployment;
+
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ CORBA::Object_var object =
+ orb->resolve_initial_references ("RootPOA");
+
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (object.in ());
+
+ PortableServer::POAManager_var poa_manager =
+ root_poa->the_POAManager ();
+
+ poa_manager->activate ();
+
+ CIAO::Deployment::ComponentInstallation_Impl *tmp_ci;
+
+ ACE_NEW_THROW_EX (tmp_ci,
+ CIAO::Deployment::ComponentInstallation_Impl (),
+ CORBA::NO_MEMORY ());
+
+ PortableServer::ServantBase_var safe_servant = tmp_ci;
+
+ CIAO_ServerActivator_i *sa_tmp = new CIAO_ServerActivator_i (spawn_delay,
+ ACE_TEXT_ALWAYS_CHAR (cs_path),
+ 0,
+ false,
+ tmp_ci->_this (),
+ orb.in (),
+ root_poa.in ());
+ PortableServer::ServantBase_var safe = sa_tmp;
+
+ ServerActivator_var sa = sa_tmp->_this ();
+
+ // Make our configvalues
+ // ::Components::ConfigValues_var configs = new
+ ::Components::ConfigValues configs(2);
+ //ACE_DEBUG ((LM_DEBUG, "Attempting to create componentserver with no configvalues\n"));
+ // Make a componentserver with no configvalues
+ ComponentServer_var server1 (ComponentServer::_narrow (sa->create_component_server (configs)));
+ //ACE_DEBUG ((LM_DEBUG, "Componentserver with no configvalues created!\n"));
+
+ //ACE_DEBUG ((LM_DEBUG, "Attempting to create componentserver with UUID configvalues\n"));
+ CORBA::Any val;
+ val <<= "MyNameIsEarl";
+ configs.length (1);
+ ::Components::ConfigValue_var cv_tmp = new CIAO::ConfigValue_impl ("edu.vanderbilt.dre.ServerUUID", val);
+ configs[0] = cv_tmp._retn ();
+
+ ComponentServer_var server2 (ComponentServer::_narrow (sa->create_component_server (configs)));
+
+
+ // Initialize servant
+
+ if (CORBA::is_nil (server1.in ()) ||
+ CORBA::is_nil (server1.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Nil componentserver references"), -1);
+ }
+
+ Components::Deployment::Container_var tmp = server1->create_container (0);
+ Container_var cont1a = Container::_narrow (tmp.in ());
+ if (CORBA::is_nil (cont1a.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from first create op on server 1 %u %u\n",
+ tmp.in (), cont1a.in ()));
+ return -1;
+ }
+ //ACE_DEBUG ((LM_DEBUG, "Got container from server 1a\n"));
+
+ Container_var cont1b = Container::_narrow (server1->create_container (0));
+ if (CORBA::is_nil (cont1b.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from second create op on server 1\n"));
+ return -1;
+ }
+ //ACE_DEBUG ((LM_DEBUG, "Got container from server 1b\n"));
+
+ Container_var cont2a = Container::_narrow (server2->create_container (0));
+ if (CORBA::is_nil (cont2a.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from first create op on server 2\n"));
+ return -1;
+ }
+ //ACE_DEBUG ((LM_DEBUG, "Got container from server 2a\n"));
+
+ try
+ {
+ server2->remove_container (cont1a);
+ ACE_ERROR ((LM_ERROR, "Error: remove_container removed a container not belonging to the component server\n"));
+ }
+ catch (::Components::RemoveFailure &)
+ {
+ //ACE_DEBUG ((LM_DEBUG, "Server 2 Refused to remove container it didn't own\n"));
+ // expected
+ }
+
+ ::Components::Deployment::Containers_var cses = server1->get_containers ();
+
+ if (cses->length () != 2)
+ ACE_ERROR ((LM_ERROR, "Error: get_containers returned the wrong number of containers, %u should be 2\n",
+ cses->length ()));
+ else //ACE_DEBUG ((LM_DEBUG, "Got %u containers\n", cses->length ()));
+
+ server1->remove_container (cont1a);
+ //ACE_DEBUG ((LM_DEBUG, "Successfully removed container 1a\n"));
+
+ cses = server1->get_containers ();
+
+ if (cses->length () != 1)
+ ACE_ERROR ((LM_ERROR, "Error: get_containers returned %u containers after removal, should be 1\n",
+ cses->length ()));
+
+ server2->remove_container (cont2a);
+ //ACE_DEBUG ((LM_DEBUG, "Successfully removed container 2a\n"));
+ server1->remove_container (cont1b);
+ //ACE_DEBUG ((LM_DEBUG, "Successfully removed container 1b\n"));
+
+ //ACE_DEBUG ((LM_DEBUG, "Removing component server\n"));
+ sa->remove_component_server (server1.in ());
+ sa->remove_component_server (server2.in ());
+ //ACE_DEBUG ((LM_DEBUG, "Componentserver removed\n"));
+
+ orb->destroy ();
+ }
+ catch (::Components::CreateFailure &)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Caught CreateFailure exception.\n"));
+ }
+ catch (::Components::RemoveFailure &)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Caught RemoveFailure exception.\n"));
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Caught unknown exception\n"));
+ }
+ return 0;
+}
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/Activator/run_test.pl b/modules/CIAO/tests/CIAO_ComponentServer/Activator/run_test.pl
new file mode 100755
index 00000000000..cf78cd053d0
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/Activator/run_test.pl
@@ -0,0 +1,35 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+$status = 0;
+$debug_level = '0';
+$ciao_root = "$ENV{CIAO_ROOT}";
+
+foreach $i (@ARGV) {
+ if ($i eq '-debug') {
+ $debug_level = '10';
+ }
+}
+
+my $target = PerlACE::TestTarget::create_target ($PerlACE::TestConfig);
+
+$SV1 = $target->CreateProcess ("./client", "-s $ciao_root/bin/ciao_componentserver");
+
+$server1 = $SV1->SpawnWaitKill (300);
+
+if ($server1 != 0) {
+ $target->GetStderrLog();
+ print STDERR "ERROR: server1 returned $server\n";
+ exit 1;
+}
+
+$target->GetStderrLog();
+
+exit $status;
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/Basic/Basic.mpc b/modules/CIAO/tests/CIAO_ComponentServer/Basic/Basic.mpc
new file mode 100644
index 00000000000..1de96195bb9
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/Basic/Basic.mpc
@@ -0,0 +1,6 @@
+// $Id$
+project (Basic_CIAOComponentServer_Test) : ciao_componentserver_stub {
+ Source_Files {
+ client.cpp
+ }
+} \ No newline at end of file
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/Basic/client.cpp b/modules/CIAO/tests/CIAO_ComponentServer/Basic/client.cpp
new file mode 100644
index 00000000000..8d36037c8f2
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/Basic/client.cpp
@@ -0,0 +1,143 @@
+// $Id$
+
+#include "ace/Get_Opt.h"
+#include "ciao/ComponentServer/CIAO_ComponentServerC.h"
+
+const ACE_TCHAR *server_1 = ACE_TEXT("file://test1.ior");
+const ACE_TCHAR *server_2 = ACE_TEXT("file://test2.ior");
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("k:j:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'k':
+ server_1 = get_opts.opt_arg ();
+ break;
+
+ case 'j':
+ server_2 = get_opts.opt_arg ();
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-k <ior> "
+ "-j <ior> "
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR **argv)
+{
+ using namespace CIAO::Deployment;
+
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ CORBA::Object_var tmp1 = orb->string_to_object(server_1);
+ CORBA::Object_var tmp2 = orb->string_to_object(server_2);
+
+ ComponentServer_var server1 (ComponentServer::_narrow (tmp1)),
+ server2 (ComponentServer::_narrow (tmp2));
+
+ if (CORBA::is_nil (server1.in ()) ||
+ CORBA::is_nil (server1.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Nil componentserver references"), -1);
+ }
+
+ Components::Deployment::Container_var tmp = server1->create_container (0);
+ Container_var cont1a = Container::_narrow (tmp.in ());
+ if (CORBA::is_nil (cont1a.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from first create op on server 1 %u %u\n",
+ tmp.in (), cont1a.in ()));
+ return -1;
+ }
+ ACE_ERROR ((LM_DEBUG, "Got container from server 1a\n"));
+
+ Container_var cont1b = Container::_narrow (server1->create_container (0));
+ if (CORBA::is_nil (cont1b.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from second create op on server 1\n"));
+ return -1;
+ }
+ ACE_ERROR ((LM_DEBUG, "Got container from server 1b\n"));
+
+ Container_var cont2a = Container::_narrow (server2->create_container (0));
+ if (CORBA::is_nil (cont2a.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from first create op on server 2\n"));
+ return -1;
+ }
+ ACE_ERROR ((LM_DEBUG, "Got container from server 2a\n"));
+
+ try
+ {
+ server2->remove_container (cont1a);
+ ACE_ERROR ((LM_ERROR, "Error: remove_container removed a container not belonging to the component server\n"));
+ }
+ catch (const ::Components::RemoveFailure &)
+ {
+ ACE_DEBUG ((LM_DEBUG, "Server 2 Refused to remove container it didn't own\n"));
+ // expected
+ }
+
+ ::Components::Deployment::Containers_var cses = server1->get_containers ();
+
+ if (cses->length () != 2)
+ ACE_ERROR ((LM_ERROR, "Error: get_containers returned the wrong number of containers, %u should be 2\n",
+ cses->length ()));
+ else ACE_DEBUG ((LM_DEBUG, "Got %u containers\n", cses->length ()));
+
+ server1->remove_container (cont1a);
+ ACE_DEBUG ((LM_DEBUG, "Successfully removed container 1a\n"));
+
+ cses = server1->get_containers ();
+
+ if (cses->length () != 1)
+ ACE_ERROR ((LM_ERROR, "Error: get_containers returned %u containers after removal, should be 1\n",
+ cses->length ()));
+
+ server2->remove_container (cont2a);
+ ACE_DEBUG ((LM_DEBUG, "Successfully removed container 2a\n"));
+ server1->remove_container (cont1b);
+ ACE_DEBUG ((LM_DEBUG, "Successfully removed container 1b\n"));
+
+ server1->remove ();
+ server1->shutdown ();
+ server2->remove ();
+ server2->shutdown ();
+
+ orb->destroy ();
+ }
+ catch (const ::Components::CreateFailure &)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Caught CreateFailure exception.\n"));
+ }
+ catch (const ::Components::RemoveFailure &)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Caught RemoveFailure exception.\n"));
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Caught unknown exception\n"));
+ }
+ return 0;
+}
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/Basic/run_test.pl b/modules/CIAO/tests/CIAO_ComponentServer/Basic/run_test.pl
new file mode 100755
index 00000000000..513023fa7fb
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/Basic/run_test.pl
@@ -0,0 +1,110 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+$status = 0;
+$debug_level = '0';
+$ciao_root = "$ENV{CIAO_ROOT}";
+
+foreach $i (@ARGV) {
+ if ($i eq '-debug') {
+ $debug_level = '10';
+ }
+}
+
+my $target = PerlACE::TestTarget::create_target ($PerlACE::TestConfig);
+my $host = new PerlACE::TestTarget;
+
+$iorbase1 = "server1.ior";
+$iorbase2 = "server2.ior";
+
+$server_iorfile1 = $target->LocalFile ($iorbase1);
+$server_iorfile2 = $target->LocalFile ($iorbase2);
+
+$target->DeleteFile($iorbase1);
+$target->DeleteFile($iorbase2);
+
+$client_iorfile1 = $host->LocalFile ($iorbase1);
+$client_iorfile2 = $host->LocalFile ($iorbase2);
+
+$host->DeleteFile($iorbase1);
+$host->DeleteFile($iorbase2);
+
+$SV1 = $target->CreateProcess ("$ciao_root/bin/ciao_componentserver", "-ORBDebuglevel $debug_level -u $server_iorfile1 -o $server_iorfile1");
+$SV2 = $target->CreateProcess ("$ciao_root/bin/ciao_componentserver", "-ORBDebuglevel $debug_level -u $server_iorfile2 -o $server_iorfile2");
+
+$CL = $host->CreateProcess ("client", "-k file://$client_iorfile1 -j file://$client_iorfile2");
+
+$server_status1 = $SV1->Spawn ();
+$server_status2 = $SV2->Spawn ();
+
+if ($server_status1 != 0) {
+ print STDERR "ERROR: server1 returned $server_status1\n";
+ exit 1;
+}
+if ($server_status2 != 0) {
+ print STDERR "ERROR: server2 returned $server_status2\n";
+ exit 1;
+}
+
+if ($target->WaitForFileTimed ($iorbase1,
+ $target->ProcessStartWaitInterval ()) == -1) {
+ print STDERR "ERROR: cannot find file <$server_iorfile1>\n";
+ $SV1->Kill (); $SV1->TimedWait (1);
+ exit 1;
+}
+
+if ($target->WaitForFileTimed ($iorbase2,
+ $target->ProcessStartWaitInterval ()) == -1) {
+ print STDERR "ERROR: cannot find file <$server_iorfile2>\n";
+ $SV2->Kill (); $SV2->TimedWait (1);
+ exit 1;
+}
+
+if ($target->GetFile ($server_iorfile1, $iorbase) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$iorfile1>\n";
+ $SV1->Kill (); $SV1->TimedWait (1);
+ exit 1;
+}
+
+if ($target->GetFile ($server_iorfile2, $iorbase) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$iorfile2>\n";
+ $SV2->Kill (); $SV2->TimedWait (1);
+ exit 1;
+}
+
+$client_status = $CL->SpawnWaitKill (300);
+
+if ($client_status != 0) {
+ print STDERR "ERROR: client returned $client_status\n";
+ $status = 1;
+}
+
+$server_status1 = $SV1->WaitKill (10);
+$server_status2 = $SV2->WaitKill (10);
+
+if ($server_status1 != 0) {
+ print STDERR "ERROR: server1 returned $server_status1\n";
+ $status = 1;
+}
+
+if ($server_status2 != 0) {
+ print STDERR "ERROR: server2 returned $server_status2\n";
+ $status = 1;
+}
+
+$target->GetStderrLog();
+
+$target->DeleteFile($iorbase1);
+$target->DeleteFile($iorbase2);
+
+$host->DeleteFile($iorbase1);
+$host->DeleteFile($iorbase2);
+
+exit $status;
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.idl b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.idl
new file mode 100644
index 00000000000..dcf676fb276
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.idl
@@ -0,0 +1,21 @@
+//$Id$
+
+#include <Components.idl>
+
+module Foo
+{
+ interface Simple
+ {
+ void trigger ();
+ };
+
+ component SimpleComponent supports Simple
+ {
+ readonly attribute string creationtype_;
+ };
+
+ home SimpleHome manages SimpleComponent
+ {
+ };
+};
+
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc
new file mode 100644
index 00000000000..cf6400373a5
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent.mpc
@@ -0,0 +1,112 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl SimpleComponent"
+
+project(SimpleComponent_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SIMPLECOMPONENT_STUB_Export \
+ -Wb,stub_export_include=SimpleComponent_stub_export.h \
+ -Wb,skel_export_macro=SIMPLECOMPONENT_SVNT_Export \
+ -Wb,skel_export_include=SimpleComponent_svnt_export.h \
+ -Wb,exec_export_macro=SIMPLECOMPONENT_EXEC_Export \
+ -Wb,exec_export_include=SimpleComponent_exec_export.h
+
+ IDL_Files {
+ SimpleComponent.idl
+ }
+}
+
+project(SimpleComponent_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += SimpleComponent_idl_gen
+ idlflags += -Wb,export_macro=SIMPLECOMPONENT_EXEC_Export \
+ -Wb,export_include=SimpleComponent_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SimpleComponentE.idl
+ }
+}
+
+project(SimpleComponent_stub) : ccm_stub {
+ after += SimpleComponent_idl_gen
+
+ sharedname = SimpleComponent_stub
+ dynamicflags = SIMPLECOMPONENT_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleComponentC.cpp
+ }
+
+ Header_Files {
+ SimpleComponentC.h
+ SimpleComponent_stub_export.h
+ }
+
+ Inline_Files {
+ SimpleComponentC.inl
+ }
+}
+
+project(SimpleComponent_exec) : ciao_executor {
+ after += SimpleComponent_lem_gen SimpleComponent_stub
+ sharedname = SimpleComponent_exec
+ libs += SimpleComponent_stub
+
+ dynamicflags = SIMPLECOMPONENT_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SimpleComponentEC.cpp
+ SimpleComponent_exec.cpp
+ }
+
+ Header_Files {
+ SimpleComponentEC.h
+ SimpleComponent_exec.h
+ SimpleComponent_exec_export.h
+ }
+
+ Inline_Files {
+ SimpleComponentEC.inl
+ }
+}
+
+
+project(SimpleComponent_svnt) : ciao_servant {
+ sharedname = SimpleComponent_svnt
+ libs += SimpleComponent_stub SimpleComponent_exec
+ after += SimpleComponent_stub SimpleComponent_exec
+ dynamicflags = SIMPLECOMPONENT_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+ Source_Files {
+ SimpleComponentS.cpp
+ SimpleComponent_svnt.cpp
+ }
+
+ Header_Files {
+ SimpleComponentS.h
+ SimpleComponent_svnt.h
+ SimpleComponent_svnt_export.h
+ }
+
+ Inline_Files {
+ SimpleComponentS.inl
+ }
+}
+
+project (SimpleComp_CIAOComponentServer_Tst) : ciao_componentserver_stub, ccm_configvalue, ciao_cs_client, ciao_logger {
+ after += SimpleComponent_stub SimpleComponent_svnt
+ libs += SimpleComponent_stub
+ IDL_Files {
+ }
+ Source_Files {
+ client.cpp
+ }
+}
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.cpp b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.cpp
new file mode 100644
index 00000000000..0c81e9ab1d6
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.cpp
@@ -0,0 +1,131 @@
+// $Id$
+
+#include "SimpleComponent_exec.h"
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO_Foo_SimpleComponent_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: SimpleComponent_exec_i
+ //==================================================================
+
+ SimpleComponent_exec_i::SimpleComponent_exec_i (const char *type)
+ : type_ (CORBA::string_dup (type))
+ {
+ }
+
+ SimpleComponent_exec_i::~SimpleComponent_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ void
+ SimpleComponent_exec_i::trigger ()
+ {
+ ACE_DEBUG ((LM_EMERGENCY, "Hello, world!!!!!!!!\n"));
+ }
+
+ // Attribute operations.
+
+ char *
+ SimpleComponent_exec_i::creationtype_ ()
+ {
+ return CORBA::string_dup (this->type_.in ());
+ }
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ SimpleComponent_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Foo::CCM_SimpleComponent_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ SimpleComponent_exec_i::configuration_complete ()
+ {
+ // Your code here.
+ }
+
+ void
+ SimpleComponent_exec_i::ccm_activate ()
+ {
+ // Your code here.
+ }
+
+ void
+ SimpleComponent_exec_i::ccm_passivate ()
+ {
+ // Your code here.
+ }
+
+ void
+ SimpleComponent_exec_i::ccm_remove ()
+ {
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SimpleHome_exec_i
+ //==================================================================
+
+ SimpleHome_exec_i::SimpleHome_exec_i (void)
+ {
+ CIAO_TRACE ("SimpleHome_exec_i::SimpleHome_exec_i");
+ CIAO_DEBUG ((LM_NOTICE, CLINFO "SimpleHome_exec_i::SimpleHome_exec_i - "
+ "Home constructed\n"));
+ }
+
+ SimpleHome_exec_i::~SimpleHome_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SimpleHome_exec_i::create ()
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ SimpleComponent_exec_i ("HomeCreated"),
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SIMPLECOMPONENT_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Foo_SimpleHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SimpleHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.h b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.h
new file mode 100644
index 00000000000..8c53fab0a15
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/SimpleComponent_exec.h
@@ -0,0 +1,108 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_SIMPLECOMPONENT_EXEC_H
+#define CIAO_SIMPLECOMPONENT_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SimpleComponentEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "SimpleComponent_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Foo_SimpleComponent_Impl
+{
+ class SIMPLECOMPONENT_EXEC_Export SimpleComponent_exec_i
+ : public virtual SimpleComponent_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleComponent_exec_i (const char *CreateType);
+ virtual ~SimpleComponent_exec_i (void);
+
+ // Supported or inherited operations.
+
+ virtual void
+ trigger ();
+
+ // Attribute operations.
+
+ virtual char *
+ creationtype_ ()
+ ;
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Foo::CCM_SimpleComponent_Context_var context_;
+
+ CORBA::String_var type_;
+
+ };
+
+ class SIMPLECOMPONENT_EXEC_Export SimpleHome_exec_i
+ : public virtual SimpleHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SimpleHome_exec_i (void);
+ virtual ~SimpleHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SIMPLECOMPONENT_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Foo_SimpleHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SIMPLECOMPONENT_EXEC_H */
+
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/client.cpp b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/client.cpp
new file mode 100644
index 00000000000..bdcdf022d1a
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/client.cpp
@@ -0,0 +1,187 @@
+// $Id$
+
+#include "ace/Get_Opt.h"
+#include "ciao/ComponentServer/CIAO_CS_ClientS.h"
+#include "ciao/ComponentServer/CIAO_ComponentServerC.h"
+#include "ciao/ComponentServer/CIAO_ServerActivator_Impl.h"
+#include "ciao/ComponentServer/CIAO_ComponentInstallation_Impl.h"
+#include "ciao/ComponentServer/CIAO_PropertiesC.h"
+#include "ciao/Valuetype_Factories/ConfigValue.h"
+#include "ciao/Logger/Logger_Service.h"
+
+#include "SimpleComponentC.h"
+
+const char *cs_path = "ciao_componentserver";
+CORBA::ULong spawn_delay = 30;
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("s:d:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 's':
+ cs_path = ACE_TEXT_ALWAYS_CHAR (get_opts.opt_arg ());
+ break;
+
+ case 'd':
+ spawn_delay = ACE_OS::atoi (get_opts.opt_arg ());
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "usage: %s "
+ "-s <path> "
+ "-d <uint> "
+ "\n",
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN (int argc, ACE_TCHAR **argv)
+{
+ using namespace CIAO::Deployment;
+
+ CIAO::Logger_Service logger;
+
+ logger.init (argc, argv);
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+ if (parse_args (argc, argv) != 0)
+ return 1;
+
+ CORBA::Object_var object =
+ orb->resolve_initial_references ("RootPOA");
+
+ PortableServer::POA_var root_poa =
+ PortableServer::POA::_narrow (object.in ());
+
+ PortableServer::POAManager_var poa_manager =
+ root_poa->the_POAManager ();
+
+ poa_manager->activate ();
+ ACE_DEBUG ((LM_DEBUG, "foo\n"));
+
+ CIAO::Deployment::ComponentInstallation_Impl *tmp_ci = 0;
+
+ ACE_NEW_THROW_EX (tmp_ci,
+ CIAO::Deployment::ComponentInstallation_Impl (),
+ CORBA::NO_MEMORY ());
+
+ PortableServer::ServantBase_var safe_servant = tmp_ci;
+
+ root_poa->activate_object (tmp_ci);
+
+ CIAO_ServerActivator_i *sa_tmp = new CIAO_ServerActivator_i (spawn_delay,
+ cs_path,
+ 0,
+ false,
+ tmp_ci->_this (),
+ orb.in (),
+ root_poa.in ());
+
+ PortableServer::ServantBase_var safe = sa_tmp;
+
+ ServerActivator_var sa = sa_tmp->_this ();
+
+ //ACE_DEBUG ((LM_DEBUG, "Attempting to create componentserver with no configvalues\n"));
+ // Make a componentserver with no configvalues
+ ComponentServer_var server1 (ComponentServer::_narrow (sa->create_component_server (0)));
+
+ if (CORBA::is_nil (server1.in ()))
+ {
+ ACE_ERROR_RETURN ((LM_ERROR,
+ "Nil componentserver references"), -1);
+ }
+
+ Components::Deployment::Container_var tmp = server1->create_container (0);
+ Container_var cont1a = Container::_narrow (tmp.in ());
+
+ if (CORBA::is_nil (cont1a.in ()))
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Got nil object reference from first create op on server 1 %u %u\n",
+ tmp.in (), cont1a.in ()));
+ return -1;
+ }
+
+ // Make our configvalues
+ // ::Components::ConfigValues_var configs = new
+ CORBA::Any val;
+ ::Components::ConfigValues configs(3);
+ configs.length (3);
+
+ val <<= "create_Foo_SimpleHome_Servant";
+ configs[0] = new CIAO::ConfigValue_impl (CIAO::Deployment::SVNT_ENTRYPT,
+ val);
+ val <<= "SimpleComponent_svnt";
+ configs[1] = new CIAO::ConfigValue_impl (CIAO::Deployment::SVNT_ARTIFACT,
+ val);
+ tmp_ci->install ("SimpleComponent_svnt", "SimpleComponent_svnt");
+ val <<= "SimpleComponent_exec";
+ configs[2] = new CIAO::ConfigValue_impl (CIAO::Deployment::EXEC_ARTIFACT,
+ val);
+ tmp_ci->install ("SimpleComponent_exec", "SimpleComponent_exec");
+
+ // Install Home
+ Components::CCMHome_var home = cont1a->install_home ("MyNameIsEarl",
+ "create_Foo_SimpleHome_Impl",
+ configs);
+
+ if (CORBA::is_nil (home))
+ {
+ ACE_ERROR ((LM_ERROR, "Got back a nil home ref from install_home\n"));
+ return -1;
+ }
+
+ Foo::SimpleHome_var shome = Foo::SimpleHome::_narrow (home.in ());
+
+ if (CORBA::is_nil (shome))
+ {
+ ACE_ERROR ((LM_ERROR, "Narrow failed from CCM_Home to SimpleHome\n"));
+ return -1;
+ }
+
+
+ Foo::SimpleComponent_var sc = shome->create ();
+
+ if (CORBA::is_nil (sc))
+ {
+ ACE_ERROR ((LM_ERROR, "Home failed to make a component\n"));
+ return -1;
+ }
+
+ sc->trigger ();
+
+ cont1a->remove_home (home.in ());
+
+ server1->remove_container (cont1a.in ());
+
+ //ACE_DEBUG ((LM_DEBUG, "Removing component server\n"));
+ sa->remove_component_server (server1.in ());
+ //ACE_DEBUG ((LM_DEBUG, "Componentserver removed\n"));
+
+ orb->destroy ();
+ }
+ catch (::Components::CreateFailure &)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Caught CreateFailure exception.\n"));
+ }
+ catch (::Components::RemoveFailure &)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Caught RemoveFailure exception.\n"));
+ }
+ catch (...)
+ {
+ ACE_ERROR ((LM_ERROR, "Error: Caught unknown exception\n"));
+ }
+ return 0;
+}
diff --git a/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/run_test.pl b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/run_test.pl
new file mode 100755
index 00000000000..5d8a72f7694
--- /dev/null
+++ b/modules/CIAO/tests/CIAO_ComponentServer/SimpleComponent/run_test.pl
@@ -0,0 +1,33 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+$status = 0;
+$ciao_root = "$ENV{CIAO_ROOT}";
+
+foreach $i (@ARGV) {
+ if ($i eq '-debug') {
+ $ENV{"DANCE_TRACE_ENABLE"} = 1;
+ $ENV{"CIAO_TRACE_ENABLE"} = 1;
+ }
+}
+
+my $target = PerlACE::TestTarget::create_target ($PerlACE::TestConfig);
+
+$TG = $target->CreateProcess ("client", "-s $ciao_root/bin/ciao_componentserver -d 120");
+$server_status = $TG->SpawnWaitKill ($target->ProcessStartWaitInterval ());
+
+if ($server_status != 0) {
+ print STDERR "ERROR: process returned $server_status\n";
+ exit 1;
+}
+
+$target->GetStderrLog();
+
+exit $status;
diff --git a/modules/CIAO/tests/CIDL/CodeGen/Basic.idl b/modules/CIAO/tests/CIDL/CodeGen/Basic.idl
new file mode 100644
index 00000000000..9c86c4b7846
--- /dev/null
+++ b/modules/CIAO/tests/CIDL/CodeGen/Basic.idl
@@ -0,0 +1,65 @@
+// $Id$
+//=============================================================================
+/**
+ * @file Basic.idl
+ *
+ * Definition of events, and common interfaces used in the BasicSP module.
+ *
+ * @author Balachandran Natarajan <bala@dre.vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CIAO_BASIC_IDL
+#define CIAO_BASIC_IDL
+
+#include <Components.idl>
+
+// @@NOTE: Do we need a pragma prefix. Anyway its broken now in TAO..
+
+module Extra
+{
+ exception NoReason {};
+ exception NoRhyme {};
+
+ struct UserDataQosPolicy {
+ sequence<octet> value;
+ };
+
+ struct key {
+ long value[3];
+ };
+
+ interface Superfluous
+ {
+ attribute string useless_attr;
+ long superfluous_op (in string empty_arg)
+ raises (NoReason);
+ };
+
+ interface Supernumerary
+ {
+ void supernumerary_op (out string dummy_arg)
+ raises (NoRhyme, NoReason);
+ };
+};
+
+// #pragma prefix ""
+
+module Basic
+{
+ interface ReadData : Extra::Superfluous
+ {
+ string get_data ();
+ };
+
+ interface AnalyzeData
+ {
+ void perform_analysis (inout string data);
+ attribute boolean fine_tooth_comb;
+ };
+
+ eventtype TimeOut {};
+ eventtype DataAvailable {};
+};
+
+#endif /*CIAO_BASIC_IDL*/
diff --git a/modules/CIAO/tests/CIDL/CodeGen/Basic.mpc b/modules/CIAO/tests/CIDL/CodeGen/Basic.mpc
new file mode 100644
index 00000000000..35f827366be
--- /dev/null
+++ b/modules/CIAO/tests/CIDL/CodeGen/Basic.mpc
@@ -0,0 +1,80 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Basic"
+
+project(Basic_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=BASIC_STUB_Export \
+ -Wb,stub_export_include=Basic_stub_export.h \
+ -Wb,skel_export_macro=BASIC_SKEL_Export \
+ -Wb,skel_export_include=Basic_skel_export.h
+
+ IDL_Files {
+ Basic.idl
+ }
+}
+
+project(Basic_lem_gen) : componentidldefaults {
+ custom_only = 1
+ after += Basic_idl_gen
+ idlflags += -Wb,stub_export_macro=BASIC_STUB_Export \
+ -Wb,stub_export_include=Basic_stub_export.h \
+ -Wb,skel_export_macro=BASIC_SKEL_Export \
+ -Wb,skel_export_include=Basic_skel_export.h
+
+ IDL_Files {
+ BasicE.idl
+ }
+}
+
+project(Basic_stub) : ccm_stub {
+ after += Basic_lem_gen
+ libs +=
+
+ sharedname = Basic_stub
+ dynamicflags = BASIC_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ BasicC.cpp
+ BasicEC.cpp
+ }
+
+ Header_Files {
+ BasicC.h
+ Basic_stub_export.h
+ }
+
+ Inline_Files {
+ BasicC.inl
+ }
+}
+
+
+project(Basic_skel) : ciao_executor {
+ after += Basic_stub
+ sharedname = Basic_skel
+ libs += Basic_stub
+
+
+ dynamicflags = BASIC_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ BasicS.cpp
+ }
+
+ Header_Files {
+ BasicS.h
+ Basic_skel_export.h
+ }
+
+ Inline_Files {
+ BasicS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/CIDL/CodeGen/CodeGen.idl b/modules/CIAO/tests/CIDL/CodeGen/CodeGen.idl
new file mode 100644
index 00000000000..224315de2b8
--- /dev/null
+++ b/modules/CIAO/tests/CIDL/CodeGen/CodeGen.idl
@@ -0,0 +1,46 @@
+//$Id$
+#include "Basic.idl"
+#include "BasicE.idl"
+
+module Basic
+{
+ component Base supports Extra::Supernumerary, Extra::Superfluous
+ {
+ provides ReadData data_read;
+ attribute boolean is_not_necessary;
+ };
+
+ component CodeGen : Base
+ {
+ provides ReadData data_out;
+ uses ReadData data_in;
+ publishes DataAvailable out_avail;
+ consumes DataAvailable in_avail;
+ provides AnalyzeData data_crunch;
+
+ readonly attribute boolean is_necessary;
+ };
+
+ home BaseHome supports Extra::Supernumerary manages Base
+ {
+ void base_do_nothing ();
+
+ factory create_no_base (in long fake_id)
+ raises (Extra::NoRhyme);
+
+ finder find_no_base ();
+
+ readonly attribute boolean is_useful;
+ };
+
+ home CodeGenHome : BaseHome manages CodeGen
+ {
+ factory create_no_derived ();
+
+ finder find_no_derived ();
+
+ attribute boolean is_not_useful;
+
+ string do_nothing ();
+ };
+};
diff --git a/modules/CIAO/tests/CIDL/CodeGen/CodeGen.mpc b/modules/CIAO/tests/CIDL/CodeGen/CodeGen.mpc
new file mode 100644
index 00000000000..70e490dea96
--- /dev/null
+++ b/modules/CIAO/tests/CIDL/CodeGen/CodeGen.mpc
@@ -0,0 +1,116 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Basic CodeGen"
+//
+// NOTE: This MPC file has been hand edited so the executor files
+// will be autogenerated part of the build process. Excercise
+// caution when regenerating this file (that is, remember to
+// insert the logic for autogeneration of executor files).
+
+project(Basic_CodeGen_idl_gen) : componentidldefaults {
+ after += Basic_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=CODEGEN_STUB_Export \
+ -Wb,stub_export_include=CodeGen_stub_export.h \
+ -Wb,skel_export_macro=CODEGEN_SVNT_Export \
+ -Wb,skel_export_include=CodeGen_svnt_export.h \
+ -Wb,exec_export_macro=CODEGEN_EXEC_Export \
+ -Wb,exec_export_include=CodeGen_exec_export.h \
+ -Gex
+
+ IDL_Files {
+ CodeGen.idl
+ }
+}
+
+project(Basic_CodeGen_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Basic_CodeGen_idl_gen
+ idlflags += -Wb,export_macro=CODEGEN_EXEC_Export \
+ -Wb,export_include=CodeGen_exec_export.h \
+ -SS
+ IDL_Files {
+ CodeGenE.idl
+ }
+}
+
+project(Basic_CodeGen_stub) : ccm_stub {
+ after += Basic_CodeGen_idl_gen Basic_stub
+ libs += Basic_stub
+
+ sharedname = CodeGen_stub
+ dynamicflags = CODEGEN_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CodeGenC.cpp
+ }
+
+ Header_Files {
+ CodeGenC.h
+ CodeGen_stub_export.h
+ }
+
+ Inline_Files {
+ CodeGenC.inl
+ }
+}
+
+project(Basic_CodeGen_exec) : ciao_executor {
+ after += Basic_CodeGen_lem_gen Basic_CodeGen_stub
+ sharedname = CodeGen_exec
+ libs += CodeGen_stub Basic_stub
+
+ dynamicflags = CODEGEN_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CodeGenEC.cpp
+ CodeGen_exec.cpp
+ }
+
+ Header_Files {
+ CodeGenEC.h
+ CodeGen_exec.h
+ CodeGen_exec_export.h
+ }
+
+ Inline_Files {
+ CodeGenEC.inl
+ }
+}
+
+
+project(Basic_CodeGen_svnt) : ciao_servant {
+ after += Basic_skel Basic_CodeGen_exec
+ sharedname = CodeGen_svnt
+ libs += CodeGen_exec \
+ CodeGen_stub \
+ Basic_skel \
+ Basic_stub
+
+ dynamicflags = CODEGEN_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CodeGenS.cpp
+ CodeGen_svnt.cpp
+ }
+
+ Header_Files {
+ CodeGenS.h
+ CodeGen_svnt.h
+ CodeGen_svnt_export.h
+ }
+
+ Inline_Files {
+ CodeGenS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/CIDL/CodeGen/README b/modules/CIAO/tests/CIDL/CodeGen/README
new file mode 100644
index 00000000000..da6e8f6ee90
--- /dev/null
+++ b/modules/CIAO/tests/CIDL/CodeGen/README
@@ -0,0 +1,40 @@
+
+Code Generation Test
+========================
+
+While the tests in CIAO_ROOT/tests/IDL3 target IDL3 support
+and IDL3-specific code generation in particular, the tests
+in CIAO_ROOT/CIDL target CIDL features and code generated
+from .cidl files. The test in this directory particularly
+stresses the code generation of the CIDL compiler. This
+code includes the executor mapping IDL, the servant code,
+and the executor implementation code. The latter is not
+fully generated of course, it's merely classes (one for
+each component executor, home executor, and facet executor)
+with the spec-defined operations filled in, but with the
+IDL-defined operations and attributes left blank.
+
+The IDL files in this test include most if not all of the
+IDL3 features that might cause a problem in code generation -
+catching operations and attributes for supported interfaces,
+operations and attributes for supported interface base
+classes, operations and attributes for inherited home
+classes, factory and finder operations for homes and those
+inherited from base homes - you get the idea. More stuff
+will be added as we think of it or a problem crops up.The object
+of this test is for all builds to complete successfully -
+there's no execution involved, since every build is a
+library, there's no executable to drive it.
+
+Please see the README file in CIAO_ROOT for info on how
+to set up builds with MPC. The builds in this test depend
+directly on CIAO_Container, CIAO_Servant and CIAO_Stub,
+and indirectly on everything those three depend on. There's
+a list in the above mentioned README file - to build those
+libraries, you'll of course need ACE (ACE_ROOT/ace), TAO
+(ACE_ROOT/TAO/tao) the IDL compiler (3 builds in
+ACE_ROOT/TAO/TAO_IDL) and gperf (ACE_ROOT/apps/gperf/src).
+
+Enjoy!
+
+Jeff \ No newline at end of file
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.idl b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.idl
new file mode 100644
index 00000000000..15c32fe82b3
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.idl
@@ -0,0 +1,51 @@
+// $Id$
+/**
+ * @file Attributes.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+#include <Components.idl>
+
+module Attributes
+{
+ component Foo
+ {
+ attribute float test;
+ attribute long testA, testB;
+ };
+
+ component Bar
+ {
+ readonly attribute float test1;
+ readonly attribute long testB, testC;
+ };
+
+ exception FooException
+ {
+ };
+
+ exception BarException
+ {
+ };
+
+ component FooRaises
+ {
+ attribute float test2 getraises (FooException);
+ };
+
+ component BarRaises
+ {
+ attribute float test3 setraises (BarException);
+ };
+
+ component FooBarRaises
+ {
+ attribute float test4
+ getraises (FooException) setraises (BarException);
+ };
+
+ component ROFooRaises
+ {
+ readonly attribute float test5 raises (FooException);
+ };
+};
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.mpc b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.mpc
new file mode 100644
index 00000000000..eea659666a3
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Attributes"
+
+project(Attributes_stub): ccm_stub {
+
+ sharedname = Attributes_stub
+ idlflags += -Wb,stub_export_macro=ATTRIBUTES_STUB_Export -Wb,stub_export_include=Attributes_stub_export.h -Wb,skel_export_macro=ATTRIBUTES_SVNT_Export -Wb,skel_export_include=Attributes_svnt_export.h
+ dynamicflags = ATTRIBUTES_STUB_BUILD_DLL
+
+ IDL_Files {
+ Attributes.idl
+ }
+
+ Source_Files {
+ AttributesC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_stub_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_stub_export.h
new file mode 100644
index 00000000000..dfa59c5b267
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ATTRIBUTES_STUB
+// ------------------------------
+#ifndef ATTRIBUTES_STUB_EXPORT_H
+#define ATTRIBUTES_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ATTRIBUTES_STUB_HAS_DLL)
+# define ATTRIBUTES_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ATTRIBUTES_STUB_HAS_DLL */
+
+#if !defined (ATTRIBUTES_STUB_HAS_DLL)
+# define ATTRIBUTES_STUB_HAS_DLL 1
+#endif /* ! ATTRIBUTES_STUB_HAS_DLL */
+
+#if defined (ATTRIBUTES_STUB_HAS_DLL) && (ATTRIBUTES_STUB_HAS_DLL == 1)
+# if defined (ATTRIBUTES_STUB_BUILD_DLL)
+# define ATTRIBUTES_STUB_Export ACE_Proper_Export_Flag
+# define ATTRIBUTES_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ATTRIBUTES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ATTRIBUTES_STUB_BUILD_DLL */
+# define ATTRIBUTES_STUB_Export ACE_Proper_Import_Flag
+# define ATTRIBUTES_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ATTRIBUTES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ATTRIBUTES_STUB_BUILD_DLL */
+#else /* ATTRIBUTES_STUB_HAS_DLL == 1 */
+# define ATTRIBUTES_STUB_Export
+# define ATTRIBUTES_STUB_SINGLETON_DECLARATION(T)
+# define ATTRIBUTES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ATTRIBUTES_STUB_HAS_DLL == 1 */
+
+// Set ATTRIBUTES_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ATTRIBUTES_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ATTRIBUTES_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ATTRIBUTES_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ATTRIBUTES_STUB_NTRACE */
+
+#if (ATTRIBUTES_STUB_NTRACE == 1)
+# define ATTRIBUTES_STUB_TRACE(X)
+#else /* (ATTRIBUTES_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ATTRIBUTES_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ATTRIBUTES_STUB_NTRACE == 1) */
+
+#endif /* ATTRIBUTES_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_svnt_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_svnt_export.h
new file mode 100644
index 00000000000..e641264d206
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Attributes/Attributes_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ATTRIBUTES_SVNT
+// ------------------------------
+#ifndef ATTRIBUTES_SVNT_EXPORT_H
+#define ATTRIBUTES_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ATTRIBUTES_SVNT_HAS_DLL)
+# define ATTRIBUTES_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ATTRIBUTES_SVNT_HAS_DLL */
+
+#if !defined (ATTRIBUTES_SVNT_HAS_DLL)
+# define ATTRIBUTES_SVNT_HAS_DLL 1
+#endif /* ! ATTRIBUTES_SVNT_HAS_DLL */
+
+#if defined (ATTRIBUTES_SVNT_HAS_DLL) && (ATTRIBUTES_SVNT_HAS_DLL == 1)
+# if defined (ATTRIBUTES_SVNT_BUILD_DLL)
+# define ATTRIBUTES_SVNT_Export ACE_Proper_Export_Flag
+# define ATTRIBUTES_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ATTRIBUTES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ATTRIBUTES_SVNT_BUILD_DLL */
+# define ATTRIBUTES_SVNT_Export ACE_Proper_Import_Flag
+# define ATTRIBUTES_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ATTRIBUTES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ATTRIBUTES_SVNT_BUILD_DLL */
+#else /* ATTRIBUTES_SVNT_HAS_DLL == 1 */
+# define ATTRIBUTES_SVNT_Export
+# define ATTRIBUTES_SVNT_SINGLETON_DECLARATION(T)
+# define ATTRIBUTES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ATTRIBUTES_SVNT_HAS_DLL == 1 */
+
+// Set ATTRIBUTES_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ATTRIBUTES_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ATTRIBUTES_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ATTRIBUTES_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ATTRIBUTES_SVNT_NTRACE */
+
+#if (ATTRIBUTES_SVNT_NTRACE == 1)
+# define ATTRIBUTES_SVNT_TRACE(X)
+#else /* (ATTRIBUTES_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ATTRIBUTES_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ATTRIBUTES_SVNT_NTRACE == 1) */
+
+#endif /* ATTRIBUTES_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.idl b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.idl
new file mode 100644
index 00000000000..e07fa13a7d2
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.idl
@@ -0,0 +1,29 @@
+// $Id$
+/**
+ * @file EventSink.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ */
+
+#include <Components.idl>
+
+module EventSink
+{
+ eventtype foo_event
+ {
+ };
+
+ eventtype bar_event
+ {
+ };
+
+ component Foo
+ {
+ consumes foo_event c_foo;
+ };
+
+ component Bar : Foo
+ {
+ consumes bar_event c_bar;
+ };
+
+};
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.mpc b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.mpc
new file mode 100644
index 00000000000..79ca1898fd6
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink.mpc
@@ -0,0 +1,18 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n EventSink"
+
+project(EventSink_stub): ccm_stub {
+
+ sharedname = EventSink_stub
+ idlflags += -Wb,stub_export_macro=EVENTSINK_STUB_Export -Wb,stub_export_include=EventSink_stub_export.h -Wb,skel_export_macro=EVENTSINK_SVNT_Export -Wb,skel_export_include=EventSink_svnt_export.h
+ dynamicflags = EVENTSINK_STUB_BUILD_DLL
+
+ IDL_Files {
+ EventSink.idl
+ }
+
+ Source_Files {
+ EventSinkC.cpp
+ }
+}
+
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_stub_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_stub_export.h
new file mode 100644
index 00000000000..e2a7f876165
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl EVENTSINK_STUB
+// ------------------------------
+#ifndef EVENTSINK_STUB_EXPORT_H
+#define EVENTSINK_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (EVENTSINK_STUB_HAS_DLL)
+# define EVENTSINK_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && EVENTSINK_STUB_HAS_DLL */
+
+#if !defined (EVENTSINK_STUB_HAS_DLL)
+# define EVENTSINK_STUB_HAS_DLL 1
+#endif /* ! EVENTSINK_STUB_HAS_DLL */
+
+#if defined (EVENTSINK_STUB_HAS_DLL) && (EVENTSINK_STUB_HAS_DLL == 1)
+# if defined (EVENTSINK_STUB_BUILD_DLL)
+# define EVENTSINK_STUB_Export ACE_Proper_Export_Flag
+# define EVENTSINK_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define EVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* EVENTSINK_STUB_BUILD_DLL */
+# define EVENTSINK_STUB_Export ACE_Proper_Import_Flag
+# define EVENTSINK_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define EVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* EVENTSINK_STUB_BUILD_DLL */
+#else /* EVENTSINK_STUB_HAS_DLL == 1 */
+# define EVENTSINK_STUB_Export
+# define EVENTSINK_STUB_SINGLETON_DECLARATION(T)
+# define EVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* EVENTSINK_STUB_HAS_DLL == 1 */
+
+// Set EVENTSINK_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (EVENTSINK_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define EVENTSINK_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define EVENTSINK_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !EVENTSINK_STUB_NTRACE */
+
+#if (EVENTSINK_STUB_NTRACE == 1)
+# define EVENTSINK_STUB_TRACE(X)
+#else /* (EVENTSINK_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define EVENTSINK_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (EVENTSINK_STUB_NTRACE == 1) */
+
+#endif /* EVENTSINK_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_svnt_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_svnt_export.h
new file mode 100644
index 00000000000..b30cb9768c2
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSink/EventSink_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl EVENTSINK_SVNT
+// ------------------------------
+#ifndef EVENTSINK_SVNT_EXPORT_H
+#define EVENTSINK_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (EVENTSINK_SVNT_HAS_DLL)
+# define EVENTSINK_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && EVENTSINK_SVNT_HAS_DLL */
+
+#if !defined (EVENTSINK_SVNT_HAS_DLL)
+# define EVENTSINK_SVNT_HAS_DLL 1
+#endif /* ! EVENTSINK_SVNT_HAS_DLL */
+
+#if defined (EVENTSINK_SVNT_HAS_DLL) && (EVENTSINK_SVNT_HAS_DLL == 1)
+# if defined (EVENTSINK_SVNT_BUILD_DLL)
+# define EVENTSINK_SVNT_Export ACE_Proper_Export_Flag
+# define EVENTSINK_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define EVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* EVENTSINK_SVNT_BUILD_DLL */
+# define EVENTSINK_SVNT_Export ACE_Proper_Import_Flag
+# define EVENTSINK_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define EVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* EVENTSINK_SVNT_BUILD_DLL */
+#else /* EVENTSINK_SVNT_HAS_DLL == 1 */
+# define EVENTSINK_SVNT_Export
+# define EVENTSINK_SVNT_SINGLETON_DECLARATION(T)
+# define EVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* EVENTSINK_SVNT_HAS_DLL == 1 */
+
+// Set EVENTSINK_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (EVENTSINK_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define EVENTSINK_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define EVENTSINK_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !EVENTSINK_SVNT_NTRACE */
+
+#if (EVENTSINK_SVNT_NTRACE == 1)
+# define EVENTSINK_SVNT_TRACE(X)
+#else /* (EVENTSINK_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define EVENTSINK_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (EVENTSINK_SVNT_NTRACE == 1) */
+
+#endif /* EVENTSINK_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.idl b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.idl
new file mode 100644
index 00000000000..f5614d964e5
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.idl
@@ -0,0 +1,24 @@
+// $Id$
+/**
+ * @file EventSource.idl
+ * @author Will Otte <wotte@dre.vanderblit.edu>
+ */
+
+#include <Components.idl>
+
+module PublishesEmits
+{
+ eventtype foo_event
+ {
+ };
+
+ component Foo
+ {
+ publishes foo_event p_foo;
+ };
+
+ component Bar
+ {
+ emits foo_event foo;
+ };
+};
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.mpc b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.mpc
new file mode 100644
index 00000000000..5f81314a9cf
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n EventSource"
+
+project(EventSource_stub): ccm_stub {
+
+ sharedname = EventSource_stub
+ idlflags += -Wb,stub_export_macro=EVENTSOURCE_STUB_Export -Wb,stub_export_include=EventSource_stub_export.h -Wb,skel_export_macro=EVENTSOURCE_SVNT_Export -Wb,skel_export_include=EventSource_svnt_export.h
+ dynamicflags = EVENTSOURCE_STUB_BUILD_DLL
+
+ IDL_Files {
+ EventSource.idl
+ }
+
+ Source_Files {
+ EventSourceC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_stub_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_stub_export.h
new file mode 100644
index 00000000000..a0cf71bbe6d
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl EVENTSOURCE_STUB
+// ------------------------------
+#ifndef EVENTSOURCE_STUB_EXPORT_H
+#define EVENTSOURCE_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (EVENTSOURCE_STUB_HAS_DLL)
+# define EVENTSOURCE_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && EVENTSOURCE_STUB_HAS_DLL */
+
+#if !defined (EVENTSOURCE_STUB_HAS_DLL)
+# define EVENTSOURCE_STUB_HAS_DLL 1
+#endif /* ! EVENTSOURCE_STUB_HAS_DLL */
+
+#if defined (EVENTSOURCE_STUB_HAS_DLL) && (EVENTSOURCE_STUB_HAS_DLL == 1)
+# if defined (EVENTSOURCE_STUB_BUILD_DLL)
+# define EVENTSOURCE_STUB_Export ACE_Proper_Export_Flag
+# define EVENTSOURCE_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define EVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* EVENTSOURCE_STUB_BUILD_DLL */
+# define EVENTSOURCE_STUB_Export ACE_Proper_Import_Flag
+# define EVENTSOURCE_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define EVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* EVENTSOURCE_STUB_BUILD_DLL */
+#else /* EVENTSOURCE_STUB_HAS_DLL == 1 */
+# define EVENTSOURCE_STUB_Export
+# define EVENTSOURCE_STUB_SINGLETON_DECLARATION(T)
+# define EVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* EVENTSOURCE_STUB_HAS_DLL == 1 */
+
+// Set EVENTSOURCE_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (EVENTSOURCE_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define EVENTSOURCE_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define EVENTSOURCE_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !EVENTSOURCE_STUB_NTRACE */
+
+#if (EVENTSOURCE_STUB_NTRACE == 1)
+# define EVENTSOURCE_STUB_TRACE(X)
+#else /* (EVENTSOURCE_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define EVENTSOURCE_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (EVENTSOURCE_STUB_NTRACE == 1) */
+
+#endif /* EVENTSOURCE_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_svnt_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_svnt_export.h
new file mode 100644
index 00000000000..dd5eeacd906
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/EventSource/EventSource_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl EVENTSOURCE_SVNT
+// ------------------------------
+#ifndef EVENTSOURCE_SVNT_EXPORT_H
+#define EVENTSOURCE_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (EVENTSOURCE_SVNT_HAS_DLL)
+# define EVENTSOURCE_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && EVENTSOURCE_SVNT_HAS_DLL */
+
+#if !defined (EVENTSOURCE_SVNT_HAS_DLL)
+# define EVENTSOURCE_SVNT_HAS_DLL 1
+#endif /* ! EVENTSOURCE_SVNT_HAS_DLL */
+
+#if defined (EVENTSOURCE_SVNT_HAS_DLL) && (EVENTSOURCE_SVNT_HAS_DLL == 1)
+# if defined (EVENTSOURCE_SVNT_BUILD_DLL)
+# define EVENTSOURCE_SVNT_Export ACE_Proper_Export_Flag
+# define EVENTSOURCE_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define EVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* EVENTSOURCE_SVNT_BUILD_DLL */
+# define EVENTSOURCE_SVNT_Export ACE_Proper_Import_Flag
+# define EVENTSOURCE_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define EVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* EVENTSOURCE_SVNT_BUILD_DLL */
+#else /* EVENTSOURCE_SVNT_HAS_DLL == 1 */
+# define EVENTSOURCE_SVNT_Export
+# define EVENTSOURCE_SVNT_SINGLETON_DECLARATION(T)
+# define EVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* EVENTSOURCE_SVNT_HAS_DLL == 1 */
+
+// Set EVENTSOURCE_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (EVENTSOURCE_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define EVENTSOURCE_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define EVENTSOURCE_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !EVENTSOURCE_SVNT_NTRACE */
+
+#if (EVENTSOURCE_SVNT_NTRACE == 1)
+# define EVENTSOURCE_SVNT_TRACE(X)
+#else /* (EVENTSOURCE_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define EVENTSOURCE_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (EVENTSOURCE_SVNT_NTRACE == 1) */
+
+#endif /* EVENTSOURCE_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.idl b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.idl
new file mode 100644
index 00000000000..eedabcf3184
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.idl
@@ -0,0 +1,46 @@
+// $Id$
+/**
+ * @file Facets.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * This IDL file tests Facets within components.
+ */
+
+#include <Components.idl>
+
+module Facets
+{
+ interface foo_interface
+ {
+ };
+
+ interface bar_interface
+ {
+ };
+
+ component Foo
+ {
+ provides foo_interface p_foo;
+ };
+
+ component Bar : Foo
+ {
+ provides bar_interface p_bar;
+ };
+
+ component FooFoo : Foo
+ {
+ provides foo_interface p_foofoo;
+ };
+
+ component FooBar
+ {
+ provides foo_interface foo;
+ provides bar_interface bar;
+ };
+
+ component ObjectProvider
+ {
+ provides Object foo_object;
+ };
+};
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.mpc b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.mpc
new file mode 100644
index 00000000000..ab3da28df3d
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Facets"
+
+project(Facets_stub): ccm_stub {
+
+ sharedname = Facets_stub
+ idlflags += -Wb,stub_export_macro=FACETS_STUB_Export -Wb,stub_export_include=Facets_stub_export.h -Wb,skel_export_macro=FACETS_SVNT_Export -Wb,skel_export_include=Facets_svnt_export.h
+ dynamicflags = FACETS_STUB_BUILD_DLL
+
+ IDL_Files {
+ Facets.idl
+ }
+
+ Source_Files {
+ FacetsC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_stub_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_stub_export.h
new file mode 100644
index 00000000000..025fc8215f2
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl FACETS_STUB
+// ------------------------------
+#ifndef FACETS_STUB_EXPORT_H
+#define FACETS_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (FACETS_STUB_HAS_DLL)
+# define FACETS_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && FACETS_STUB_HAS_DLL */
+
+#if !defined (FACETS_STUB_HAS_DLL)
+# define FACETS_STUB_HAS_DLL 1
+#endif /* ! FACETS_STUB_HAS_DLL */
+
+#if defined (FACETS_STUB_HAS_DLL) && (FACETS_STUB_HAS_DLL == 1)
+# if defined (FACETS_STUB_BUILD_DLL)
+# define FACETS_STUB_Export ACE_Proper_Export_Flag
+# define FACETS_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define FACETS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* FACETS_STUB_BUILD_DLL */
+# define FACETS_STUB_Export ACE_Proper_Import_Flag
+# define FACETS_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define FACETS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* FACETS_STUB_BUILD_DLL */
+#else /* FACETS_STUB_HAS_DLL == 1 */
+# define FACETS_STUB_Export
+# define FACETS_STUB_SINGLETON_DECLARATION(T)
+# define FACETS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* FACETS_STUB_HAS_DLL == 1 */
+
+// Set FACETS_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (FACETS_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define FACETS_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define FACETS_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !FACETS_STUB_NTRACE */
+
+#if (FACETS_STUB_NTRACE == 1)
+# define FACETS_STUB_TRACE(X)
+#else /* (FACETS_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define FACETS_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (FACETS_STUB_NTRACE == 1) */
+
+#endif /* FACETS_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_svnt_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_svnt_export.h
new file mode 100644
index 00000000000..e4750de9b91
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Facets/Facets_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl FACETS_SVNT
+// ------------------------------
+#ifndef FACETS_SVNT_EXPORT_H
+#define FACETS_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (FACETS_SVNT_HAS_DLL)
+# define FACETS_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && FACETS_SVNT_HAS_DLL */
+
+#if !defined (FACETS_SVNT_HAS_DLL)
+# define FACETS_SVNT_HAS_DLL 1
+#endif /* ! FACETS_SVNT_HAS_DLL */
+
+#if defined (FACETS_SVNT_HAS_DLL) && (FACETS_SVNT_HAS_DLL == 1)
+# if defined (FACETS_SVNT_BUILD_DLL)
+# define FACETS_SVNT_Export ACE_Proper_Export_Flag
+# define FACETS_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define FACETS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* FACETS_SVNT_BUILD_DLL */
+# define FACETS_SVNT_Export ACE_Proper_Import_Flag
+# define FACETS_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define FACETS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* FACETS_SVNT_BUILD_DLL */
+#else /* FACETS_SVNT_HAS_DLL == 1 */
+# define FACETS_SVNT_Export
+# define FACETS_SVNT_SINGLETON_DECLARATION(T)
+# define FACETS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* FACETS_SVNT_HAS_DLL == 1 */
+
+// Set FACETS_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (FACETS_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define FACETS_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define FACETS_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !FACETS_SVNT_NTRACE */
+
+#if (FACETS_SVNT_NTRACE == 1)
+# define FACETS_SVNT_TRACE(X)
+#else /* (FACETS_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define FACETS_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (FACETS_SVNT_NTRACE == 1) */
+
+#endif /* FACETS_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.idl b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.idl
new file mode 100644
index 00000000000..bd0af99cd86
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.idl
@@ -0,0 +1,68 @@
+// $Id$
+/**
+ * @file Receptacles.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests Receptacles within components.
+ */
+
+#include <Components.idl>
+
+module ReceptaclesSingle
+{
+ interface foo_interface
+ {
+ };
+
+ interface bar_interface
+ {
+ };
+
+ component Foo
+ {
+ uses foo_interface u_foo;
+ };
+
+ component Bar : Foo
+ {
+ uses bar_interface u_bar;
+ };
+
+ component FooBar
+ {
+ uses foo_interface foo;
+ uses bar_interface bar;
+ };
+
+ component ObjectFoo
+ {
+ uses Object foo;
+ };
+
+};
+
+module ReceptaclesMultiple
+{
+ interface foo_interface
+ {
+ };
+
+ interface bar_interface
+ {
+ };
+
+ component Foo
+ {
+ uses multiple foo_interface um_foo;
+ };
+
+ component Bar
+ {
+ uses multiple bar_interface um_bar;
+ };
+
+ component ObjectFoo
+ {
+ uses multiple Object foo;
+ };
+};
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc
new file mode 100644
index 00000000000..401f8d0c5c1
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles.mpc
@@ -0,0 +1,21 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Receptacles"
+
+project(Receptacles_stub): ccm_stub {
+
+ sharedname = Receptacles_stub
+ idlflags += -Wb,stub_export_macro=RECEPTACLES_STUB_Export \
+ -Wb,stub_export_include=Receptacles_stub_export.h \
+ -Wb,skel_export_macro=RECEPTACLES_SVNT_Export \
+ -Wb,skel_export_include=Receptacles_svnt_export.h
+
+ dynamicflags = RECEPTACLES_STUB_BUILD_DLL
+
+ IDL_Files {
+ Receptacles.idl
+ }
+
+ Source_Files {
+ ReceptaclesC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_stub_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_stub_export.h
new file mode 100644
index 00000000000..15dedbc8a73
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl RECEPTACLES_STUB
+// ------------------------------
+#ifndef RECEPTACLES_STUB_EXPORT_H
+#define RECEPTACLES_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (RECEPTACLES_STUB_HAS_DLL)
+# define RECEPTACLES_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && RECEPTACLES_STUB_HAS_DLL */
+
+#if !defined (RECEPTACLES_STUB_HAS_DLL)
+# define RECEPTACLES_STUB_HAS_DLL 1
+#endif /* ! RECEPTACLES_STUB_HAS_DLL */
+
+#if defined (RECEPTACLES_STUB_HAS_DLL) && (RECEPTACLES_STUB_HAS_DLL == 1)
+# if defined (RECEPTACLES_STUB_BUILD_DLL)
+# define RECEPTACLES_STUB_Export ACE_Proper_Export_Flag
+# define RECEPTACLES_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define RECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* RECEPTACLES_STUB_BUILD_DLL */
+# define RECEPTACLES_STUB_Export ACE_Proper_Import_Flag
+# define RECEPTACLES_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define RECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* RECEPTACLES_STUB_BUILD_DLL */
+#else /* RECEPTACLES_STUB_HAS_DLL == 1 */
+# define RECEPTACLES_STUB_Export
+# define RECEPTACLES_STUB_SINGLETON_DECLARATION(T)
+# define RECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* RECEPTACLES_STUB_HAS_DLL == 1 */
+
+// Set RECEPTACLES_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (RECEPTACLES_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define RECEPTACLES_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define RECEPTACLES_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !RECEPTACLES_STUB_NTRACE */
+
+#if (RECEPTACLES_STUB_NTRACE == 1)
+# define RECEPTACLES_STUB_TRACE(X)
+#else /* (RECEPTACLES_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define RECEPTACLES_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (RECEPTACLES_STUB_NTRACE == 1) */
+
+#endif /* RECEPTACLES_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_svnt_export.h b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_svnt_export.h
new file mode 100644
index 00000000000..4a4a4f52dcd
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/ComplexComponent/Receptacles/Receptacles_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl RECEPTACLES_SVNT
+// ------------------------------
+#ifndef RECEPTACLES_SVNT_EXPORT_H
+#define RECEPTACLES_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (RECEPTACLES_SVNT_HAS_DLL)
+# define RECEPTACLES_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && RECEPTACLES_SVNT_HAS_DLL */
+
+#if !defined (RECEPTACLES_SVNT_HAS_DLL)
+# define RECEPTACLES_SVNT_HAS_DLL 1
+#endif /* ! RECEPTACLES_SVNT_HAS_DLL */
+
+#if defined (RECEPTACLES_SVNT_HAS_DLL) && (RECEPTACLES_SVNT_HAS_DLL == 1)
+# if defined (RECEPTACLES_SVNT_BUILD_DLL)
+# define RECEPTACLES_SVNT_Export ACE_Proper_Export_Flag
+# define RECEPTACLES_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define RECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* RECEPTACLES_SVNT_BUILD_DLL */
+# define RECEPTACLES_SVNT_Export ACE_Proper_Import_Flag
+# define RECEPTACLES_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define RECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* RECEPTACLES_SVNT_BUILD_DLL */
+#else /* RECEPTACLES_SVNT_HAS_DLL == 1 */
+# define RECEPTACLES_SVNT_Export
+# define RECEPTACLES_SVNT_SINGLETON_DECLARATION(T)
+# define RECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* RECEPTACLES_SVNT_HAS_DLL == 1 */
+
+// Set RECEPTACLES_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (RECEPTACLES_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define RECEPTACLES_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define RECEPTACLES_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !RECEPTACLES_SVNT_NTRACE */
+
+#if (RECEPTACLES_SVNT_NTRACE == 1)
+# define RECEPTACLES_SVNT_TRACE(X)
+#else /* (RECEPTACLES_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define RECEPTACLES_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (RECEPTACLES_SVNT_NTRACE == 1) */
+
+#endif /* RECEPTACLES_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.idl b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.idl
new file mode 100644
index 00000000000..8b020a77e54
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.idl
@@ -0,0 +1,96 @@
+// $Id$
+/**
+ * @file SimpleComponent.idl
+ *
+ * Tests simple component declarations.
+ */
+
+#include <Components.idl>
+
+module VerySimple
+{
+
+ component Foo
+ {
+ };
+
+ home FooHome manages Foo
+ {
+ };
+
+};
+
+module SupportsInterface
+{
+ interface foo_interface
+ {
+ };
+
+ component Foo supports foo_interface
+ {
+ };
+
+ home FooHome manages Foo
+ {
+ };
+
+};
+
+
+module SupportsMultiple
+{
+ interface foo_interface
+ {
+ };
+
+ interface bar_interface
+ {
+ };
+
+ component FooBar supports foo_interface, bar_interface
+ {
+ };
+
+ home FooBarHome manages FooBar
+ {
+ };
+};
+
+module Inheritance
+{
+ interface foo_interface
+ {
+ };
+
+ interface Bar_interface
+ {
+ };
+
+ component Foo supports foo_interface
+ {
+ };
+
+ component Bar : Foo
+ {
+ };
+
+ home FooHome manages Foo
+ {
+ };
+
+ home BarHome manages Bar
+ {
+ };
+
+
+};
+
+module Bug_2790_Regression
+{
+ // It is legal for a derived component to support an interface
+ interface Wibble {};
+ interface Wobble {};
+ component Bobble {};
+ component Bibble : Bobble supports Wibble, Wobble {};
+};
+
diff --git a/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc
new file mode 100644
index 00000000000..f2b44a8123e
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent.mpc
@@ -0,0 +1,21 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl SimpleComponent"
+
+project(SimpleComponent_stub_idl3): ccm_stub {
+
+ sharedname = SimpleComponent_stub
+ idlflags += -Wb,stub_export_macro=SIMPLECOMPONENT_STUB_Export \
+ -Wb,stub_export_include=SimpleComponent_stub_export.h \
+ -Wb,skel_export_macro=SIMPLECOMPONENT_SVNT_Export \
+ -Wb,skel_export_include=SimpleComponent_svnt_export.h
+
+ dynamicflags = SIMPLECOMPONENT_STUB_BUILD_DLL
+
+ IDL_Files {
+ SimpleComponent.idl
+ }
+
+ Source_Files {
+ SimpleComponentC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_exec_export.h b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_exec_export.h
new file mode 100644
index 00000000000..add746da8f5
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_exec_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl SIMPLECOMPONENT_EXEC
+// ------------------------------
+#ifndef SIMPLECOMPONENT_EXEC_EXPORT_H
+#define SIMPLECOMPONENT_EXEC_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (SIMPLECOMPONENT_EXEC_HAS_DLL)
+# define SIMPLECOMPONENT_EXEC_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && SIMPLECOMPONENT_EXEC_HAS_DLL */
+
+#if !defined (SIMPLECOMPONENT_EXEC_HAS_DLL)
+# define SIMPLECOMPONENT_EXEC_HAS_DLL 1
+#endif /* ! SIMPLECOMPONENT_EXEC_HAS_DLL */
+
+#if defined (SIMPLECOMPONENT_EXEC_HAS_DLL) && (SIMPLECOMPONENT_EXEC_HAS_DLL == 1)
+# if defined (SIMPLECOMPONENT_EXEC_BUILD_DLL)
+# define SIMPLECOMPONENT_EXEC_Export ACE_Proper_Export_Flag
+# define SIMPLECOMPONENT_EXEC_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define SIMPLECOMPONENT_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* SIMPLECOMPONENT_EXEC_BUILD_DLL */
+# define SIMPLECOMPONENT_EXEC_Export ACE_Proper_Import_Flag
+# define SIMPLECOMPONENT_EXEC_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define SIMPLECOMPONENT_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* SIMPLECOMPONENT_EXEC_BUILD_DLL */
+#else /* SIMPLECOMPONENT_EXEC_HAS_DLL == 1 */
+# define SIMPLECOMPONENT_EXEC_Export
+# define SIMPLECOMPONENT_EXEC_SINGLETON_DECLARATION(T)
+# define SIMPLECOMPONENT_EXEC_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* SIMPLECOMPONENT_EXEC_HAS_DLL == 1 */
+
+// Set SIMPLECOMPONENT_EXEC_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (SIMPLECOMPONENT_EXEC_NTRACE)
+# if (ACE_NTRACE == 1)
+# define SIMPLECOMPONENT_EXEC_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define SIMPLECOMPONENT_EXEC_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !SIMPLECOMPONENT_EXEC_NTRACE */
+
+#if (SIMPLECOMPONENT_EXEC_NTRACE == 1)
+# define SIMPLECOMPONENT_EXEC_TRACE(X)
+#else /* (SIMPLECOMPONENT_EXEC_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define SIMPLECOMPONENT_EXEC_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (SIMPLECOMPONENT_EXEC_NTRACE == 1) */
+
+#endif /* SIMPLECOMPONENT_EXEC_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_stub_export.h b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_stub_export.h
new file mode 100644
index 00000000000..eb8cb7a6c97
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl SIMPLECOMPONENT_STUB
+// ------------------------------
+#ifndef SIMPLECOMPONENT_STUB_EXPORT_H
+#define SIMPLECOMPONENT_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (SIMPLECOMPONENT_STUB_HAS_DLL)
+# define SIMPLECOMPONENT_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && SIMPLECOMPONENT_STUB_HAS_DLL */
+
+#if !defined (SIMPLECOMPONENT_STUB_HAS_DLL)
+# define SIMPLECOMPONENT_STUB_HAS_DLL 1
+#endif /* ! SIMPLECOMPONENT_STUB_HAS_DLL */
+
+#if defined (SIMPLECOMPONENT_STUB_HAS_DLL) && (SIMPLECOMPONENT_STUB_HAS_DLL == 1)
+# if defined (SIMPLECOMPONENT_STUB_BUILD_DLL)
+# define SIMPLECOMPONENT_STUB_Export ACE_Proper_Export_Flag
+# define SIMPLECOMPONENT_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define SIMPLECOMPONENT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* SIMPLECOMPONENT_STUB_BUILD_DLL */
+# define SIMPLECOMPONENT_STUB_Export ACE_Proper_Import_Flag
+# define SIMPLECOMPONENT_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define SIMPLECOMPONENT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* SIMPLECOMPONENT_STUB_BUILD_DLL */
+#else /* SIMPLECOMPONENT_STUB_HAS_DLL == 1 */
+# define SIMPLECOMPONENT_STUB_Export
+# define SIMPLECOMPONENT_STUB_SINGLETON_DECLARATION(T)
+# define SIMPLECOMPONENT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* SIMPLECOMPONENT_STUB_HAS_DLL == 1 */
+
+// Set SIMPLECOMPONENT_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (SIMPLECOMPONENT_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define SIMPLECOMPONENT_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define SIMPLECOMPONENT_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !SIMPLECOMPONENT_STUB_NTRACE */
+
+#if (SIMPLECOMPONENT_STUB_NTRACE == 1)
+# define SIMPLECOMPONENT_STUB_TRACE(X)
+#else /* (SIMPLECOMPONENT_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define SIMPLECOMPONENT_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (SIMPLECOMPONENT_STUB_NTRACE == 1) */
+
+#endif /* SIMPLECOMPONENT_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_svnt_export.h b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_svnt_export.h
new file mode 100644
index 00000000000..694af85e994
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Components/SimpleComponent/SimpleComponent_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl SIMPLECOMPONENT_SVNT
+// ------------------------------
+#ifndef SIMPLECOMPONENT_SVNT_EXPORT_H
+#define SIMPLECOMPONENT_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (SIMPLECOMPONENT_SVNT_HAS_DLL)
+# define SIMPLECOMPONENT_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && SIMPLECOMPONENT_SVNT_HAS_DLL */
+
+#if !defined (SIMPLECOMPONENT_SVNT_HAS_DLL)
+# define SIMPLECOMPONENT_SVNT_HAS_DLL 1
+#endif /* ! SIMPLECOMPONENT_SVNT_HAS_DLL */
+
+#if defined (SIMPLECOMPONENT_SVNT_HAS_DLL) && (SIMPLECOMPONENT_SVNT_HAS_DLL == 1)
+# if defined (SIMPLECOMPONENT_SVNT_BUILD_DLL)
+# define SIMPLECOMPONENT_SVNT_Export ACE_Proper_Export_Flag
+# define SIMPLECOMPONENT_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define SIMPLECOMPONENT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* SIMPLECOMPONENT_SVNT_BUILD_DLL */
+# define SIMPLECOMPONENT_SVNT_Export ACE_Proper_Import_Flag
+# define SIMPLECOMPONENT_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define SIMPLECOMPONENT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* SIMPLECOMPONENT_SVNT_BUILD_DLL */
+#else /* SIMPLECOMPONENT_SVNT_HAS_DLL == 1 */
+# define SIMPLECOMPONENT_SVNT_Export
+# define SIMPLECOMPONENT_SVNT_SINGLETON_DECLARATION(T)
+# define SIMPLECOMPONENT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* SIMPLECOMPONENT_SVNT_HAS_DLL == 1 */
+
+// Set SIMPLECOMPONENT_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (SIMPLECOMPONENT_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define SIMPLECOMPONENT_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define SIMPLECOMPONENT_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !SIMPLECOMPONENT_SVNT_NTRACE */
+
+#if (SIMPLECOMPONENT_SVNT_NTRACE == 1)
+# define SIMPLECOMPONENT_SVNT_TRACE(X)
+#else /* (SIMPLECOMPONENT_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define SIMPLECOMPONENT_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (SIMPLECOMPONENT_SVNT_NTRACE == 1) */
+
+#endif /* SIMPLECOMPONENT_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Events/Abstract/Abstract.idl b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract.idl
new file mode 100644
index 00000000000..15eb50971b3
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract.idl
@@ -0,0 +1,38 @@
+// $Id$
+/**
+ * @file Abstract.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests the compilation of abstract events.
+ */
+
+#include <Components.idl>
+
+module AbstractEvents
+{
+ abstract eventtype foo_event
+ {
+ };
+
+ abstract eventtype InhFoo_event : foo_event
+ {
+ };
+
+ abstract eventtype bar_event
+ {
+ };
+
+ abstract eventtype foobar_event : foo_event, bar_event
+ {
+ };
+
+ // test event multiple inheretance
+
+ eventtype concrete_foo
+ {
+ };
+
+ eventtype concrete_foobar : concrete_foo, foo_event
+ {
+ };
+};
diff --git a/modules/CIAO/tests/IDL3/Events/Abstract/Abstract.mpc b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract.mpc
new file mode 100644
index 00000000000..83d67de5f39
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Abstract"
+
+project(Abstract_stub): ccm_stub {
+
+ sharedname = Abstract_stub
+ idlflags += -Wb,stub_export_macro=ABSTRACT_STUB_Export -Wb,stub_export_include=Abstract_stub_export.h -Wb,skel_export_macro=ABSTRACT_SVNT_Export -Wb,skel_export_include=Abstract_svnt_export.h
+ dynamicflags = ABSTRACT_STUB_BUILD_DLL
+
+ IDL_Files {
+ Abstract.idl
+ }
+
+ Source_Files {
+ AbstractC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Events/Abstract/Abstract_stub_export.h b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract_stub_export.h
new file mode 100644
index 00000000000..2ec86f36950
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ABSTRACT_STUB
+// ------------------------------
+#ifndef ABSTRACT_STUB_EXPORT_H
+#define ABSTRACT_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ABSTRACT_STUB_HAS_DLL)
+# define ABSTRACT_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ABSTRACT_STUB_HAS_DLL */
+
+#if !defined (ABSTRACT_STUB_HAS_DLL)
+# define ABSTRACT_STUB_HAS_DLL 1
+#endif /* ! ABSTRACT_STUB_HAS_DLL */
+
+#if defined (ABSTRACT_STUB_HAS_DLL) && (ABSTRACT_STUB_HAS_DLL == 1)
+# if defined (ABSTRACT_STUB_BUILD_DLL)
+# define ABSTRACT_STUB_Export ACE_Proper_Export_Flag
+# define ABSTRACT_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ABSTRACT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ABSTRACT_STUB_BUILD_DLL */
+# define ABSTRACT_STUB_Export ACE_Proper_Import_Flag
+# define ABSTRACT_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ABSTRACT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ABSTRACT_STUB_BUILD_DLL */
+#else /* ABSTRACT_STUB_HAS_DLL == 1 */
+# define ABSTRACT_STUB_Export
+# define ABSTRACT_STUB_SINGLETON_DECLARATION(T)
+# define ABSTRACT_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ABSTRACT_STUB_HAS_DLL == 1 */
+
+// Set ABSTRACT_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ABSTRACT_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ABSTRACT_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ABSTRACT_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ABSTRACT_STUB_NTRACE */
+
+#if (ABSTRACT_STUB_NTRACE == 1)
+# define ABSTRACT_STUB_TRACE(X)
+#else /* (ABSTRACT_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ABSTRACT_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ABSTRACT_STUB_NTRACE == 1) */
+
+#endif /* ABSTRACT_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Events/Abstract/Abstract_svnt_export.h b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract_svnt_export.h
new file mode 100644
index 00000000000..890926fec22
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Abstract/Abstract_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ABSTRACT_SVNT
+// ------------------------------
+#ifndef ABSTRACT_SVNT_EXPORT_H
+#define ABSTRACT_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ABSTRACT_SVNT_HAS_DLL)
+# define ABSTRACT_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ABSTRACT_SVNT_HAS_DLL */
+
+#if !defined (ABSTRACT_SVNT_HAS_DLL)
+# define ABSTRACT_SVNT_HAS_DLL 1
+#endif /* ! ABSTRACT_SVNT_HAS_DLL */
+
+#if defined (ABSTRACT_SVNT_HAS_DLL) && (ABSTRACT_SVNT_HAS_DLL == 1)
+# if defined (ABSTRACT_SVNT_BUILD_DLL)
+# define ABSTRACT_SVNT_Export ACE_Proper_Export_Flag
+# define ABSTRACT_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ABSTRACT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ABSTRACT_SVNT_BUILD_DLL */
+# define ABSTRACT_SVNT_Export ACE_Proper_Import_Flag
+# define ABSTRACT_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ABSTRACT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ABSTRACT_SVNT_BUILD_DLL */
+#else /* ABSTRACT_SVNT_HAS_DLL == 1 */
+# define ABSTRACT_SVNT_Export
+# define ABSTRACT_SVNT_SINGLETON_DECLARATION(T)
+# define ABSTRACT_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ABSTRACT_SVNT_HAS_DLL == 1 */
+
+// Set ABSTRACT_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ABSTRACT_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ABSTRACT_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ABSTRACT_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ABSTRACT_SVNT_NTRACE */
+
+#if (ABSTRACT_SVNT_NTRACE == 1)
+# define ABSTRACT_SVNT_TRACE(X)
+#else /* (ABSTRACT_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ABSTRACT_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ABSTRACT_SVNT_NTRACE == 1) */
+
+#endif /* ABSTRACT_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Events/Any/Any.mpc b/modules/CIAO/tests/IDL3/Events/Any/Any.mpc
new file mode 100644
index 00000000000..1d95ba0b319
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Any/Any.mpc
@@ -0,0 +1,26 @@
+// $Id$
+
+project(EventAny_local): ccm_stub {
+ exename = EventAny
+ idlflags += -SS
+
+ IDL_Files {
+ EventAny.idl
+ }
+
+ Source_Files {
+ EventAnyC.cpp
+ main.cpp
+ }
+
+ Header_Files {
+ EventAnyC.h
+ }
+
+ Inline_Files {
+ EventAnyC.inl
+ }
+
+ Template_Files {
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Events/Any/EventAny.idl b/modules/CIAO/tests/IDL3/Events/Any/EventAny.idl
new file mode 100644
index 00000000000..d53ddf55c08
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Any/EventAny.idl
@@ -0,0 +1,16 @@
+// $Id$
+/**
+ * @file EventAny.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests Any insertion/extraction of event types,
+ * and (de)marshaling of such Anys.
+ */
+
+#include <Components.idl>
+
+eventtype StringMsg
+{
+ public string str_msg;
+};
+
diff --git a/modules/CIAO/tests/IDL3/Events/Any/README b/modules/CIAO/tests/IDL3/Events/Any/README
new file mode 100644
index 00000000000..7bf91be5776
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Any/README
@@ -0,0 +1,35 @@
+
+Event Any Test
+=======================
+
+This test defines, instantiates, and initializes an IDL
+eventtype with a public string member, inserts it into
+an Any, marshals the Any, demarshals the Any, extracts
+the eventtype, and compares the resulting member string
+with the original. The purpose of the test is to ensure
+that (1) the demarshaling of the Any and (2) the
+extraction of the eventtype, are successful, since both
+these actions are done interpretively by traversing the
+eventtype's type code. The motivation for the test was
+the failure of these actions due to missing cases in
+the interpretive demarshaling code corresponding to
+the kind of the eventtype's type code (CORBA::tk_event).
+
+There are several places the test can fail:
+
+- marshaling of the Any
+- demarshaling of the Any
+- extraction from the Any
+- string compare of the sent and received eventtype members
+
+Note that the test code registers a valuetype factory
+with the orb, a necessary step in extracting the
+eventtype from the Any. In a real-world use case (such
+as an event channel) such a factory would have to
+be registered with the orb anywhere the eventtype is
+to be demarshaled from a CDR stream or extracted from
+an Any that was itself demarshaled.
+
+Jeff Parsons
+
+
diff --git a/modules/CIAO/tests/IDL3/Events/Any/main.cpp b/modules/CIAO/tests/IDL3/Events/Any/main.cpp
new file mode 100644
index 00000000000..4ce90923aa1
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Any/main.cpp
@@ -0,0 +1,85 @@
+// $Id$
+
+#include "EventAnyC.h"
+#include "tao/AnyTypeCode/Any.h"
+#include "ace/Get_Opt.h"
+
+void
+insert_into_any (CORBA::Any& any, Components::EventBase* vb)
+{
+ any <<= vb;
+}
+
+void
+debug_msg (const char *msg)
+{
+ ACE_ERROR ((LM_ERROR, "Error: %s\n", msg));
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ try
+ {
+ CORBA::ORB_var orb = CORBA::ORB_init (argc, argv);
+ StringMsg_init *StringMsg_factory = new StringMsg_init;
+
+ orb->register_value_factory (StringMsg_factory->tao_repository_id (),
+ StringMsg_factory);
+ StringMsg_factory->_remove_ref (); // release ownership
+
+ const char *test_str = "a message";
+
+ StringMsg_var ev = new OBV_StringMsg;
+ ev->str_msg (test_str);
+
+ CORBA::Any in_any;
+ insert_into_any (in_any, ev.in ());
+
+ TAO_OutputCDR out;
+ CORBA::Boolean good = out << in_any;
+
+ if (!good)
+ {
+ debug_msg ("Any marshaling failed");
+ return -1;
+ }
+
+ TAO_InputCDR in (out);
+ CORBA::Any out_any;
+ good = in >> out_any;
+
+ if (!good)
+ {
+ debug_msg ("Any demarshaling failed");
+ return -1;
+ }
+
+ StringMsg *ev_out = 0;
+ good = out_any >>= ev_out;
+
+ if (!good)
+ {
+ debug_msg ("Any extraction failed");
+ return -1;
+ }
+
+ const char *result_str = ev_out->str_msg ();
+
+ if (result_str == 0 || ACE_OS::strcmp (result_str, test_str) != 0)
+ {
+ debug_msg ("Extracted member string null or incorrect");
+ return -1;
+ }
+
+ orb->destroy ();
+ }
+ catch (const CORBA::Exception& ex)
+ {
+ ex._tao_print_exception ("caught exception:");
+ return 1;
+ }
+
+ return 0;
+}
+
diff --git a/modules/CIAO/tests/IDL3/Events/Any/run_test.pl b/modules/CIAO/tests/IDL3/Events/Any/run_test.pl
new file mode 100755
index 00000000000..f13f9726b5b
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Any/run_test.pl
@@ -0,0 +1,31 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+# The first three lines above let this script run without specifying the
+# full path to perl, as long as it is in the user's PATH.
+# Taken from perlrun man page.
+
+# Do not use environment variables here since not all platforms use ACE_ROOT
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::Run_Test;
+use English;
+
+$status = 0;
+$exflags = "";
+
+# Run the test
+
+$EX = new PerlACE::Process ("EventAny");
+$EX->Arguments ($exflags);
+$test = $EX->SpawnWaitKill (10);
+
+if ($test != 0) {
+ print STDERR "ERROR: test error status $test\n";
+ $status = 1;
+}
+
+exit $status;
diff --git a/modules/CIAO/tests/IDL3/Events/Regular/Regular.idl b/modules/CIAO/tests/IDL3/Events/Regular/Regular.idl
new file mode 100644
index 00000000000..f9169026e88
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Regular/Regular.idl
@@ -0,0 +1,44 @@
+// $Id$
+/**
+ * @file Regular.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests the compilation of regular event types.
+ */
+
+#include <Components.idl>
+
+module RegularEvents
+{
+ eventtype foo
+ {
+ };
+
+ eventtype bar
+ {
+ };
+
+ eventtype InhFoo : foo
+ {
+ };
+
+ /* @@
+ * TAO_IDL cannot handle custom yet.
+ custom eventtype custom_foo
+ {
+ };
+
+ custom eventtype custom_InhFoo : foo
+ {
+ };
+ */
+
+ eventtype Baz
+ {
+ long test_op ();
+ void test_op_a (in long foo, out float bar);
+ InhFoo test_op_b ();
+ };
+
+
+};
diff --git a/modules/CIAO/tests/IDL3/Events/Regular/Regular.mpc b/modules/CIAO/tests/IDL3/Events/Regular/Regular.mpc
new file mode 100644
index 00000000000..6186490384c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Regular/Regular.mpc
@@ -0,0 +1,20 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Regular"
+
+project(Regular_stub): ccm_stub {
+
+ sharedname = Regular_stub
+ idlflags += -Wb,stub_export_macro=REGULAR_STUB_Export \
+ -Wb,stub_export_include=Regular_stub_export.h \
+ -Wb,skel_export_macro=REGULAR_SVNT_Export \
+ -Wb,skel_export_include=Regular_svnt_export.h
+ dynamicflags = REGULAR_STUB_BUILD_DLL
+
+ IDL_Files {
+ Regular.idl
+ }
+
+ Source_Files {
+ RegularC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Events/Regular/Regular_stub_export.h b/modules/CIAO/tests/IDL3/Events/Regular/Regular_stub_export.h
new file mode 100644
index 00000000000..7185b7d78b2
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Regular/Regular_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl REGULAR_STUB
+// ------------------------------
+#ifndef REGULAR_STUB_EXPORT_H
+#define REGULAR_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (REGULAR_STUB_HAS_DLL)
+# define REGULAR_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && REGULAR_STUB_HAS_DLL */
+
+#if !defined (REGULAR_STUB_HAS_DLL)
+# define REGULAR_STUB_HAS_DLL 1
+#endif /* ! REGULAR_STUB_HAS_DLL */
+
+#if defined (REGULAR_STUB_HAS_DLL) && (REGULAR_STUB_HAS_DLL == 1)
+# if defined (REGULAR_STUB_BUILD_DLL)
+# define REGULAR_STUB_Export ACE_Proper_Export_Flag
+# define REGULAR_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define REGULAR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* REGULAR_STUB_BUILD_DLL */
+# define REGULAR_STUB_Export ACE_Proper_Import_Flag
+# define REGULAR_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define REGULAR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* REGULAR_STUB_BUILD_DLL */
+#else /* REGULAR_STUB_HAS_DLL == 1 */
+# define REGULAR_STUB_Export
+# define REGULAR_STUB_SINGLETON_DECLARATION(T)
+# define REGULAR_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* REGULAR_STUB_HAS_DLL == 1 */
+
+// Set REGULAR_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (REGULAR_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define REGULAR_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define REGULAR_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !REGULAR_STUB_NTRACE */
+
+#if (REGULAR_STUB_NTRACE == 1)
+# define REGULAR_STUB_TRACE(X)
+#else /* (REGULAR_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define REGULAR_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (REGULAR_STUB_NTRACE == 1) */
+
+#endif /* REGULAR_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Events/Regular/Regular_svnt_export.h b/modules/CIAO/tests/IDL3/Events/Regular/Regular_svnt_export.h
new file mode 100644
index 00000000000..05a2687b566
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Events/Regular/Regular_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl REGULAR_SVNT
+// ------------------------------
+#ifndef REGULAR_SVNT_EXPORT_H
+#define REGULAR_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (REGULAR_SVNT_HAS_DLL)
+# define REGULAR_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && REGULAR_SVNT_HAS_DLL */
+
+#if !defined (REGULAR_SVNT_HAS_DLL)
+# define REGULAR_SVNT_HAS_DLL 1
+#endif /* ! REGULAR_SVNT_HAS_DLL */
+
+#if defined (REGULAR_SVNT_HAS_DLL) && (REGULAR_SVNT_HAS_DLL == 1)
+# if defined (REGULAR_SVNT_BUILD_DLL)
+# define REGULAR_SVNT_Export ACE_Proper_Export_Flag
+# define REGULAR_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define REGULAR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* REGULAR_SVNT_BUILD_DLL */
+# define REGULAR_SVNT_Export ACE_Proper_Import_Flag
+# define REGULAR_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define REGULAR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* REGULAR_SVNT_BUILD_DLL */
+#else /* REGULAR_SVNT_HAS_DLL == 1 */
+# define REGULAR_SVNT_Export
+# define REGULAR_SVNT_SINGLETON_DECLARATION(T)
+# define REGULAR_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* REGULAR_SVNT_HAS_DLL == 1 */
+
+// Set REGULAR_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (REGULAR_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define REGULAR_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define REGULAR_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !REGULAR_SVNT_NTRACE */
+
+#if (REGULAR_SVNT_NTRACE == 1)
+# define REGULAR_SVNT_TRACE(X)
+#else /* (REGULAR_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define REGULAR_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (REGULAR_SVNT_NTRACE == 1) */
+
+#endif /* REGULAR_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.idl b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.idl
new file mode 100644
index 00000000000..7dd338d871e
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.idl
@@ -0,0 +1,54 @@
+// $Id$
+/**
+ * @file HomeAttributes.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests attributes in homes
+ */
+
+#include <Components.idl>
+
+module HomeAttributes
+{
+ interface foo_interface
+ {
+ };
+
+ component Foo supports foo_interface
+ {
+ };
+
+ home FooHome manages Foo
+ {
+ attribute float test;
+ attribute long testA, testB;
+ };
+
+ exception FooException
+ {
+ };
+
+ exception BarException
+ {
+ };
+
+ home ROFooHome manages Foo
+ {
+ readonly attribute float test1;
+ readonly attribute long testB, testC;
+ };
+
+ home FooRaisesHome manages Foo
+ {
+ attribute float test2 getraises (FooException);
+ attribute float test3 setraises (BarException);
+ attribute float test4
+ getraises (FooException) setraises (BarException);
+ };
+
+ home ROFooRaisesHome manages Foo
+ {
+ readonly attribute float test5 raises (FooException);
+ };
+
+};
diff --git a/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.mpc b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.mpc
new file mode 100644
index 00000000000..063c212b83a
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n HomeAttributes"
+
+project(HomeAttributes_stub): ccm_stub {
+
+ sharedname = HomeAttributes_stub
+ idlflags += -Wb,stub_export_macro=HOMEATTRIBUTES_STUB_Export -Wb,stub_export_include=HomeAttributes_stub_export.h -Wb,skel_export_macro=HOMEATTRIBUTES_SVNT_Export -Wb,skel_export_include=HomeAttributes_svnt_export.h
+ dynamicflags = HOMEATTRIBUTES_STUB_BUILD_DLL
+
+ IDL_Files {
+ HomeAttributes.idl
+ }
+
+ Source_Files {
+ HomeAttributesC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_stub_export.h b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_stub_export.h
new file mode 100644
index 00000000000..f347446a533
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl HOMEATTRIBUTES_STUB
+// ------------------------------
+#ifndef HOMEATTRIBUTES_STUB_EXPORT_H
+#define HOMEATTRIBUTES_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (HOMEATTRIBUTES_STUB_HAS_DLL)
+# define HOMEATTRIBUTES_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && HOMEATTRIBUTES_STUB_HAS_DLL */
+
+#if !defined (HOMEATTRIBUTES_STUB_HAS_DLL)
+# define HOMEATTRIBUTES_STUB_HAS_DLL 1
+#endif /* ! HOMEATTRIBUTES_STUB_HAS_DLL */
+
+#if defined (HOMEATTRIBUTES_STUB_HAS_DLL) && (HOMEATTRIBUTES_STUB_HAS_DLL == 1)
+# if defined (HOMEATTRIBUTES_STUB_BUILD_DLL)
+# define HOMEATTRIBUTES_STUB_Export ACE_Proper_Export_Flag
+# define HOMEATTRIBUTES_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define HOMEATTRIBUTES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* HOMEATTRIBUTES_STUB_BUILD_DLL */
+# define HOMEATTRIBUTES_STUB_Export ACE_Proper_Import_Flag
+# define HOMEATTRIBUTES_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define HOMEATTRIBUTES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* HOMEATTRIBUTES_STUB_BUILD_DLL */
+#else /* HOMEATTRIBUTES_STUB_HAS_DLL == 1 */
+# define HOMEATTRIBUTES_STUB_Export
+# define HOMEATTRIBUTES_STUB_SINGLETON_DECLARATION(T)
+# define HOMEATTRIBUTES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* HOMEATTRIBUTES_STUB_HAS_DLL == 1 */
+
+// Set HOMEATTRIBUTES_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (HOMEATTRIBUTES_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define HOMEATTRIBUTES_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define HOMEATTRIBUTES_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !HOMEATTRIBUTES_STUB_NTRACE */
+
+#if (HOMEATTRIBUTES_STUB_NTRACE == 1)
+# define HOMEATTRIBUTES_STUB_TRACE(X)
+#else /* (HOMEATTRIBUTES_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define HOMEATTRIBUTES_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (HOMEATTRIBUTES_STUB_NTRACE == 1) */
+
+#endif /* HOMEATTRIBUTES_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_svnt_export.h b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_svnt_export.h
new file mode 100644
index 00000000000..f99dd7694f3
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Attributes/HomeAttributes_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl HOMEATTRIBUTES_SVNT
+// ------------------------------
+#ifndef HOMEATTRIBUTES_SVNT_EXPORT_H
+#define HOMEATTRIBUTES_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (HOMEATTRIBUTES_SVNT_HAS_DLL)
+# define HOMEATTRIBUTES_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && HOMEATTRIBUTES_SVNT_HAS_DLL */
+
+#if !defined (HOMEATTRIBUTES_SVNT_HAS_DLL)
+# define HOMEATTRIBUTES_SVNT_HAS_DLL 1
+#endif /* ! HOMEATTRIBUTES_SVNT_HAS_DLL */
+
+#if defined (HOMEATTRIBUTES_SVNT_HAS_DLL) && (HOMEATTRIBUTES_SVNT_HAS_DLL == 1)
+# if defined (HOMEATTRIBUTES_SVNT_BUILD_DLL)
+# define HOMEATTRIBUTES_SVNT_Export ACE_Proper_Export_Flag
+# define HOMEATTRIBUTES_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define HOMEATTRIBUTES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* HOMEATTRIBUTES_SVNT_BUILD_DLL */
+# define HOMEATTRIBUTES_SVNT_Export ACE_Proper_Import_Flag
+# define HOMEATTRIBUTES_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define HOMEATTRIBUTES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* HOMEATTRIBUTES_SVNT_BUILD_DLL */
+#else /* HOMEATTRIBUTES_SVNT_HAS_DLL == 1 */
+# define HOMEATTRIBUTES_SVNT_Export
+# define HOMEATTRIBUTES_SVNT_SINGLETON_DECLARATION(T)
+# define HOMEATTRIBUTES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* HOMEATTRIBUTES_SVNT_HAS_DLL == 1 */
+
+// Set HOMEATTRIBUTES_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (HOMEATTRIBUTES_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define HOMEATTRIBUTES_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define HOMEATTRIBUTES_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !HOMEATTRIBUTES_SVNT_NTRACE */
+
+#if (HOMEATTRIBUTES_SVNT_NTRACE == 1)
+# define HOMEATTRIBUTES_SVNT_TRACE(X)
+#else /* (HOMEATTRIBUTES_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define HOMEATTRIBUTES_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (HOMEATTRIBUTES_SVNT_NTRACE == 1) */
+
+#endif /* HOMEATTRIBUTES_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Basic/Basic.idl b/modules/CIAO/tests/IDL3/Homes/Basic/Basic.idl
new file mode 100644
index 00000000000..3d9f4c5162e
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Basic/Basic.idl
@@ -0,0 +1,31 @@
+// $Id$
+/**
+ * @file Basic.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests the compileability of basic Home types.
+ */
+
+#include <Components.idl>
+
+module BasicHomes
+{
+
+ interface foo_interface {};
+
+ component Foo supports foo_interface {};
+
+ home FooHome manages Foo
+ {
+ };
+
+
+ interface bar_interface {};
+
+ component Bar supports bar_interface {};
+
+ home BarHome supports foo_interface manages Bar
+ {
+ };
+
+};
diff --git a/modules/CIAO/tests/IDL3/Homes/Basic/Basic.mpc b/modules/CIAO/tests/IDL3/Homes/Basic/Basic.mpc
new file mode 100644
index 00000000000..f676e9d9b70
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Basic/Basic.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Basic"
+
+project(IDL3_Basic_stub): ccm_stub {
+
+ sharedname = Homes_Basic_stub
+ idlflags += -Wb,stub_export_macro=BASIC_STUB_Export -Wb,stub_export_include=Basic_stub_export.h -Wb,skel_export_macro=BASIC_SVNT_Export -Wb,skel_export_include=Basic_svnt_export.h
+ dynamicflags = BASIC_STUB_BUILD_DLL
+
+ IDL_Files {
+ Basic.idl
+ }
+
+ Source_Files {
+ BasicC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Homes/Basic/Basic_stub_export.h b/modules/CIAO/tests/IDL3/Homes/Basic/Basic_stub_export.h
new file mode 100644
index 00000000000..469d1f6827c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Basic/Basic_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl BASIC_STUB
+// ------------------------------
+#ifndef BASIC_STUB_EXPORT_H
+#define BASIC_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (BASIC_STUB_HAS_DLL)
+# define BASIC_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && BASIC_STUB_HAS_DLL */
+
+#if !defined (BASIC_STUB_HAS_DLL)
+# define BASIC_STUB_HAS_DLL 1
+#endif /* ! BASIC_STUB_HAS_DLL */
+
+#if defined (BASIC_STUB_HAS_DLL) && (BASIC_STUB_HAS_DLL == 1)
+# if defined (BASIC_STUB_BUILD_DLL)
+# define BASIC_STUB_Export ACE_Proper_Export_Flag
+# define BASIC_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define BASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* BASIC_STUB_BUILD_DLL */
+# define BASIC_STUB_Export ACE_Proper_Import_Flag
+# define BASIC_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define BASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* BASIC_STUB_BUILD_DLL */
+#else /* BASIC_STUB_HAS_DLL == 1 */
+# define BASIC_STUB_Export
+# define BASIC_STUB_SINGLETON_DECLARATION(T)
+# define BASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* BASIC_STUB_HAS_DLL == 1 */
+
+// Set BASIC_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (BASIC_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define BASIC_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define BASIC_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !BASIC_STUB_NTRACE */
+
+#if (BASIC_STUB_NTRACE == 1)
+# define BASIC_STUB_TRACE(X)
+#else /* (BASIC_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define BASIC_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (BASIC_STUB_NTRACE == 1) */
+
+#endif /* BASIC_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Basic/Basic_svnt_export.h b/modules/CIAO/tests/IDL3/Homes/Basic/Basic_svnt_export.h
new file mode 100644
index 00000000000..569fe626ebc
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Basic/Basic_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl BASIC_SVNT
+// ------------------------------
+#ifndef BASIC_SVNT_EXPORT_H
+#define BASIC_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (BASIC_SVNT_HAS_DLL)
+# define BASIC_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && BASIC_SVNT_HAS_DLL */
+
+#if !defined (BASIC_SVNT_HAS_DLL)
+# define BASIC_SVNT_HAS_DLL 1
+#endif /* ! BASIC_SVNT_HAS_DLL */
+
+#if defined (BASIC_SVNT_HAS_DLL) && (BASIC_SVNT_HAS_DLL == 1)
+# if defined (BASIC_SVNT_BUILD_DLL)
+# define BASIC_SVNT_Export ACE_Proper_Export_Flag
+# define BASIC_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define BASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* BASIC_SVNT_BUILD_DLL */
+# define BASIC_SVNT_Export ACE_Proper_Import_Flag
+# define BASIC_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define BASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* BASIC_SVNT_BUILD_DLL */
+#else /* BASIC_SVNT_HAS_DLL == 1 */
+# define BASIC_SVNT_Export
+# define BASIC_SVNT_SINGLETON_DECLARATION(T)
+# define BASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* BASIC_SVNT_HAS_DLL == 1 */
+
+// Set BASIC_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (BASIC_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define BASIC_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define BASIC_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !BASIC_SVNT_NTRACE */
+
+#if (BASIC_SVNT_NTRACE == 1)
+# define BASIC_SVNT_TRACE(X)
+#else /* (BASIC_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define BASIC_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (BASIC_SVNT_NTRACE == 1) */
+
+#endif /* BASIC_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Factory/Factory.idl b/modules/CIAO/tests/IDL3/Homes/Factory/Factory.idl
new file mode 100644
index 00000000000..c9520b11c0a
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Factory/Factory.idl
@@ -0,0 +1,35 @@
+// $Id$
+/**
+ * @file Factory.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests the compilation of Homes with Factorys.
+ */
+
+#include <Components.idl>
+
+module FactoryHomes
+{
+ exception foo_exception
+ {
+ };
+
+ interface foo_interface
+ {
+ };
+
+ component Foo supports foo_interface
+ {
+ };
+
+ home FooHome manages Foo
+ {
+ factory FooFactory (in string foo, in short bar) raises (foo_exception);
+ };
+
+ eventtype food
+ {
+ };
+
+
+};
diff --git a/modules/CIAO/tests/IDL3/Homes/Factory/Factory.mpc b/modules/CIAO/tests/IDL3/Homes/Factory/Factory.mpc
new file mode 100644
index 00000000000..90aed185da2
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Factory/Factory.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Factory"
+
+project(Factory_stub): ccm_stub {
+
+ sharedname = Factory_stub
+ idlflags += -Wb,stub_export_macro=FACTORY_STUB_Export -Wb,stub_export_include=Factory_stub_export.h -Wb,skel_export_macro=FACTORY_SVNT_Export -Wb,skel_export_include=Factory_svnt_export.h
+ dynamicflags = FACTORY_STUB_BUILD_DLL
+
+ IDL_Files {
+ Factory.idl
+ }
+
+ Source_Files {
+ FactoryC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Homes/Factory/Factory_stub_export.h b/modules/CIAO/tests/IDL3/Homes/Factory/Factory_stub_export.h
new file mode 100644
index 00000000000..4a5cbf3ac4e
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Factory/Factory_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl FACTORY_STUB
+// ------------------------------
+#ifndef FACTORY_STUB_EXPORT_H
+#define FACTORY_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (FACTORY_STUB_HAS_DLL)
+# define FACTORY_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && FACTORY_STUB_HAS_DLL */
+
+#if !defined (FACTORY_STUB_HAS_DLL)
+# define FACTORY_STUB_HAS_DLL 1
+#endif /* ! FACTORY_STUB_HAS_DLL */
+
+#if defined (FACTORY_STUB_HAS_DLL) && (FACTORY_STUB_HAS_DLL == 1)
+# if defined (FACTORY_STUB_BUILD_DLL)
+# define FACTORY_STUB_Export ACE_Proper_Export_Flag
+# define FACTORY_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define FACTORY_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* FACTORY_STUB_BUILD_DLL */
+# define FACTORY_STUB_Export ACE_Proper_Import_Flag
+# define FACTORY_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define FACTORY_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* FACTORY_STUB_BUILD_DLL */
+#else /* FACTORY_STUB_HAS_DLL == 1 */
+# define FACTORY_STUB_Export
+# define FACTORY_STUB_SINGLETON_DECLARATION(T)
+# define FACTORY_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* FACTORY_STUB_HAS_DLL == 1 */
+
+// Set FACTORY_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (FACTORY_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define FACTORY_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define FACTORY_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !FACTORY_STUB_NTRACE */
+
+#if (FACTORY_STUB_NTRACE == 1)
+# define FACTORY_STUB_TRACE(X)
+#else /* (FACTORY_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define FACTORY_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (FACTORY_STUB_NTRACE == 1) */
+
+#endif /* FACTORY_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Factory/Factory_svnt_export.h b/modules/CIAO/tests/IDL3/Homes/Factory/Factory_svnt_export.h
new file mode 100644
index 00000000000..3bfb6c71d9e
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Factory/Factory_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl FACTORY_SVNT
+// ------------------------------
+#ifndef FACTORY_SVNT_EXPORT_H
+#define FACTORY_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (FACTORY_SVNT_HAS_DLL)
+# define FACTORY_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && FACTORY_SVNT_HAS_DLL */
+
+#if !defined (FACTORY_SVNT_HAS_DLL)
+# define FACTORY_SVNT_HAS_DLL 1
+#endif /* ! FACTORY_SVNT_HAS_DLL */
+
+#if defined (FACTORY_SVNT_HAS_DLL) && (FACTORY_SVNT_HAS_DLL == 1)
+# if defined (FACTORY_SVNT_BUILD_DLL)
+# define FACTORY_SVNT_Export ACE_Proper_Export_Flag
+# define FACTORY_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define FACTORY_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* FACTORY_SVNT_BUILD_DLL */
+# define FACTORY_SVNT_Export ACE_Proper_Import_Flag
+# define FACTORY_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define FACTORY_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* FACTORY_SVNT_BUILD_DLL */
+#else /* FACTORY_SVNT_HAS_DLL == 1 */
+# define FACTORY_SVNT_Export
+# define FACTORY_SVNT_SINGLETON_DECLARATION(T)
+# define FACTORY_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* FACTORY_SVNT_HAS_DLL == 1 */
+
+// Set FACTORY_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (FACTORY_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define FACTORY_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define FACTORY_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !FACTORY_SVNT_NTRACE */
+
+#if (FACTORY_SVNT_NTRACE == 1)
+# define FACTORY_SVNT_TRACE(X)
+#else /* (FACTORY_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define FACTORY_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (FACTORY_SVNT_NTRACE == 1) */
+
+#endif /* FACTORY_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Finder/Finder.idl b/modules/CIAO/tests/IDL3/Homes/Finder/Finder.idl
new file mode 100644
index 00000000000..5057b162fc3
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Finder/Finder.idl
@@ -0,0 +1,30 @@
+// $Id$
+/**
+ * @file Finder.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests the compilation of Homes with Factorys.
+ */
+
+#include <Components.idl>
+
+module FactoryHomes
+{
+ exception foo_exception
+ {
+ };
+
+ interface foo_interface
+ {
+ };
+
+ component Foo supports foo_interface
+ {
+ };
+
+ home FooHome manages Foo
+ {
+ factory FooFinder (in string foo, in short bar) raises (foo_exception);
+ };
+
+};
diff --git a/modules/CIAO/tests/IDL3/Homes/Finder/Finder.mpc b/modules/CIAO/tests/IDL3/Homes/Finder/Finder.mpc
new file mode 100644
index 00000000000..ce99a021e6f
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Finder/Finder.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Finder"
+
+project(Finder_stub): ccm_stub {
+
+ sharedname = Finder_stub
+ idlflags += -Wb,stub_export_macro=FINDER_STUB_Export -Wb,stub_export_include=Finder_stub_export.h -Wb,skel_export_macro=FINDER_SVNT_Export -Wb,skel_export_include=Finder_svnt_export.h
+ dynamicflags = FINDER_STUB_BUILD_DLL
+
+ IDL_Files {
+ Finder.idl
+ }
+
+ Source_Files {
+ FinderC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Homes/Finder/Finder_stub_export.h b/modules/CIAO/tests/IDL3/Homes/Finder/Finder_stub_export.h
new file mode 100644
index 00000000000..4d9cd68fe15
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Finder/Finder_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl FINDER_STUB
+// ------------------------------
+#ifndef FINDER_STUB_EXPORT_H
+#define FINDER_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (FINDER_STUB_HAS_DLL)
+# define FINDER_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && FINDER_STUB_HAS_DLL */
+
+#if !defined (FINDER_STUB_HAS_DLL)
+# define FINDER_STUB_HAS_DLL 1
+#endif /* ! FINDER_STUB_HAS_DLL */
+
+#if defined (FINDER_STUB_HAS_DLL) && (FINDER_STUB_HAS_DLL == 1)
+# if defined (FINDER_STUB_BUILD_DLL)
+# define FINDER_STUB_Export ACE_Proper_Export_Flag
+# define FINDER_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define FINDER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* FINDER_STUB_BUILD_DLL */
+# define FINDER_STUB_Export ACE_Proper_Import_Flag
+# define FINDER_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define FINDER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* FINDER_STUB_BUILD_DLL */
+#else /* FINDER_STUB_HAS_DLL == 1 */
+# define FINDER_STUB_Export
+# define FINDER_STUB_SINGLETON_DECLARATION(T)
+# define FINDER_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* FINDER_STUB_HAS_DLL == 1 */
+
+// Set FINDER_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (FINDER_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define FINDER_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define FINDER_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !FINDER_STUB_NTRACE */
+
+#if (FINDER_STUB_NTRACE == 1)
+# define FINDER_STUB_TRACE(X)
+#else /* (FINDER_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define FINDER_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (FINDER_STUB_NTRACE == 1) */
+
+#endif /* FINDER_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Finder/Finder_svnt_export.h b/modules/CIAO/tests/IDL3/Homes/Finder/Finder_svnt_export.h
new file mode 100644
index 00000000000..87a52c9df52
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Finder/Finder_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl FINDER_SVNT
+// ------------------------------
+#ifndef FINDER_SVNT_EXPORT_H
+#define FINDER_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (FINDER_SVNT_HAS_DLL)
+# define FINDER_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && FINDER_SVNT_HAS_DLL */
+
+#if !defined (FINDER_SVNT_HAS_DLL)
+# define FINDER_SVNT_HAS_DLL 1
+#endif /* ! FINDER_SVNT_HAS_DLL */
+
+#if defined (FINDER_SVNT_HAS_DLL) && (FINDER_SVNT_HAS_DLL == 1)
+# if defined (FINDER_SVNT_BUILD_DLL)
+# define FINDER_SVNT_Export ACE_Proper_Export_Flag
+# define FINDER_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define FINDER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* FINDER_SVNT_BUILD_DLL */
+# define FINDER_SVNT_Export ACE_Proper_Import_Flag
+# define FINDER_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define FINDER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* FINDER_SVNT_BUILD_DLL */
+#else /* FINDER_SVNT_HAS_DLL == 1 */
+# define FINDER_SVNT_Export
+# define FINDER_SVNT_SINGLETON_DECLARATION(T)
+# define FINDER_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* FINDER_SVNT_HAS_DLL == 1 */
+
+// Set FINDER_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (FINDER_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define FINDER_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define FINDER_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !FINDER_SVNT_NTRACE */
+
+#if (FINDER_SVNT_NTRACE == 1)
+# define FINDER_SVNT_TRACE(X)
+#else /* (FINDER_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define FINDER_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (FINDER_SVNT_NTRACE == 1) */
+
+#endif /* FINDER_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.idl b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.idl
new file mode 100644
index 00000000000..e1bce50fc2f
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.idl
@@ -0,0 +1,33 @@
+// $Id$
+/**
+ * @file Inheritance.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests the compilation of Home inheritance.
+ */
+
+#include <Components.idl>
+
+module HomeInheritance
+{
+ interface foo_interface
+ {
+ };
+
+ component Foo supports foo_interface
+ {
+ };
+
+ home FooHome manages Foo
+ {
+ };
+
+ component Bar
+ {
+ };
+
+ home BarHome : FooHome manages Bar
+ {
+ };
+
+};
diff --git a/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.mpc b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.mpc
new file mode 100644
index 00000000000..cd467329b2c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Inheritance"
+
+project(Inheritance_stub): ccm_stub {
+
+ sharedname = Inheritance_stub
+ idlflags += -Wb,stub_export_macro=INHERITANCE_STUB_Export -Wb,stub_export_include=Inheritance_stub_export.h -Wb,skel_export_macro=INHERITANCE_SVNT_Export -Wb,skel_export_include=Inheritance_svnt_export.h
+ dynamicflags = INHERITANCE_STUB_BUILD_DLL
+
+ IDL_Files {
+ Inheritance.idl
+ }
+
+ Source_Files {
+ InheritanceC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_stub_export.h b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_stub_export.h
new file mode 100644
index 00000000000..8850bb78150
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl INHERITANCE_STUB
+// ------------------------------
+#ifndef INHERITANCE_STUB_EXPORT_H
+#define INHERITANCE_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (INHERITANCE_STUB_HAS_DLL)
+# define INHERITANCE_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && INHERITANCE_STUB_HAS_DLL */
+
+#if !defined (INHERITANCE_STUB_HAS_DLL)
+# define INHERITANCE_STUB_HAS_DLL 1
+#endif /* ! INHERITANCE_STUB_HAS_DLL */
+
+#if defined (INHERITANCE_STUB_HAS_DLL) && (INHERITANCE_STUB_HAS_DLL == 1)
+# if defined (INHERITANCE_STUB_BUILD_DLL)
+# define INHERITANCE_STUB_Export ACE_Proper_Export_Flag
+# define INHERITANCE_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define INHERITANCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* INHERITANCE_STUB_BUILD_DLL */
+# define INHERITANCE_STUB_Export ACE_Proper_Import_Flag
+# define INHERITANCE_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define INHERITANCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* INHERITANCE_STUB_BUILD_DLL */
+#else /* INHERITANCE_STUB_HAS_DLL == 1 */
+# define INHERITANCE_STUB_Export
+# define INHERITANCE_STUB_SINGLETON_DECLARATION(T)
+# define INHERITANCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* INHERITANCE_STUB_HAS_DLL == 1 */
+
+// Set INHERITANCE_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (INHERITANCE_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define INHERITANCE_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define INHERITANCE_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !INHERITANCE_STUB_NTRACE */
+
+#if (INHERITANCE_STUB_NTRACE == 1)
+# define INHERITANCE_STUB_TRACE(X)
+#else /* (INHERITANCE_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define INHERITANCE_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (INHERITANCE_STUB_NTRACE == 1) */
+
+#endif /* INHERITANCE_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_svnt_export.h b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_svnt_export.h
new file mode 100644
index 00000000000..083c201538a
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Homes/Inheritance/Inheritance_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl INHERITANCE_SVNT
+// ------------------------------
+#ifndef INHERITANCE_SVNT_EXPORT_H
+#define INHERITANCE_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (INHERITANCE_SVNT_HAS_DLL)
+# define INHERITANCE_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && INHERITANCE_SVNT_HAS_DLL */
+
+#if !defined (INHERITANCE_SVNT_HAS_DLL)
+# define INHERITANCE_SVNT_HAS_DLL 1
+#endif /* ! INHERITANCE_SVNT_HAS_DLL */
+
+#if defined (INHERITANCE_SVNT_HAS_DLL) && (INHERITANCE_SVNT_HAS_DLL == 1)
+# if defined (INHERITANCE_SVNT_BUILD_DLL)
+# define INHERITANCE_SVNT_Export ACE_Proper_Export_Flag
+# define INHERITANCE_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define INHERITANCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* INHERITANCE_SVNT_BUILD_DLL */
+# define INHERITANCE_SVNT_Export ACE_Proper_Import_Flag
+# define INHERITANCE_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define INHERITANCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* INHERITANCE_SVNT_BUILD_DLL */
+#else /* INHERITANCE_SVNT_HAS_DLL == 1 */
+# define INHERITANCE_SVNT_Export
+# define INHERITANCE_SVNT_SINGLETON_DECLARATION(T)
+# define INHERITANCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* INHERITANCE_SVNT_HAS_DLL == 1 */
+
+// Set INHERITANCE_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (INHERITANCE_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define INHERITANCE_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define INHERITANCE_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !INHERITANCE_SVNT_NTRACE */
+
+#if (INHERITANCE_SVNT_NTRACE == 1)
+# define INHERITANCE_SVNT_TRACE(X)
+#else /* (INHERITANCE_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define INHERITANCE_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (INHERITANCE_SVNT_NTRACE == 1) */
+
+#endif /* INHERITANCE_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/README b/modules/CIAO/tests/IDL3/ImpliedIDL/All/README
new file mode 100644
index 00000000000..2f4e09eaf3c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/README
@@ -0,0 +1,88 @@
+ Converting IDL3 to IDL2
+ =======================
+
+Introduction
+============
+
+This directory contains a test for the executable
+tao_idl3_to_idl2, which inputs a single IDL file and
+outputs a single IDL file which has the IDL3 declarations
+from the input file converted to the corresponding 'implied
+IDL' declarations specificed by the mapping in the CCM
+document.
+
+This utility can be used in conjunction with some IDL compiler
+that does not support IDL3 keywords and syntax. The output of
+the utility can be processed by such a compiler, yielding code
+in the target programming language equivalent to that which
+would have been generated in one step by a CCM-aware IDL compiler.
+
+The tao_idl3_to_idl2 executable itself is built in
+CIAO_ROOT/tools/IDL3_to_IDL2. It uses the TAO IDL compiler
+front end parsing engine and the TAO IDL compiler driver
+files, so it depends on ACE. The IDL generation is
+accomplished by a custom backend library.
+
+Other Features Tested
+=====================
+
+The IDL file keyword_clash.idl contains many identifiers that
+are either escaped (to avoid a clash with IDL keywords) or
+are C++ keywords. Coverting this file, then generatin and
+compiling C++ from it, tests the ability of the conversion
+tool to preserve these identifiers correctly when mapping
+from IDL to IDL.
+
+The IDL file raw_include.idl is intentionaly left out of
+conversion processing. It contains no IDL with 'implied IDL'
+mapping. Since it is included in pass_through.idl, it
+must be included in pass_through_IDL2.idl, but without itself
+having the '_IDL2' suffix added. This type of 'raw' inclusion
+is necessary in some cases, and the MPC file adds a command
+line option to the processing of pass_through.idl to make
+sure the raw_include.idl is processed in this way.
+
+Running The Test
+================
+
+This test is only to determine that the generated IDL files
+are valid. So once the converted IDL file (having the
+extension _IDL2.idl) is generated by tao_idl3_to_idl2, the
+TAO IDL compiler is executed on the generated IDL file and
+the resulting C++ files compiled. If the compilation is
+successful for all such files, the test is a success.
+
+Notable Build Features
+======================
+
+Two features of the MPC file for this test are of interest:
+
+1.
+Two of the three IDL files in the test, pass_through.idl and
+include.idl, contain no IDL3 constructs, but merely test the
+executable's regeneration of IDL2 constructs. Since one IDL
+file is included in the other, there is a dependency that
+requires both IDL files to be processed before running the
+IDL compiler on pass_through_IDL2.idl. The line
+
+ pass_through_IDL2.idl << include_IDL2.idl
+
+indicates this dependency to the MPC tool, ensuring the correct
+order of execution.
+
+2.
+The -Sm option passed to the IDL compiler must be used when
+processing an IDL file resulting from the execution of
+tao_idl3_to_idl2. This option disables the action of the
+tao_idl backend 'preprocessor' (which is 'on' by default)
+that adds implied IDL nodes to the Abstract Syntax Tree
+for subsequent C++ code generation. In the case of an eventtype,
+the CCM spec requires additional code generation for a corresponding
+implied 'event consumer' IDL interface, as well as for the
+eventtype itself. The tao_idl3_to_idl2 executable adds this
+interface explicitly to the generated IDL file, along with the
+original eventtype. Without the -Sm option, the event consumer
+interface would appear redundantly in both explicit and implied
+IDL, resulting in a name clash. Since the IDL compiler cannot
+know the origin of the IDL file it is processing, the -Sm
+option encapsulates that knowledge. \ No newline at end of file
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/all.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/All/all.mpc
new file mode 100644
index 00000000000..19a43493818
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/all.mpc
@@ -0,0 +1,37 @@
+// -*- MPC -*-
+// $Id$
+
+project(ConvertIDL3) : taoidl3toidl2defaults, ciao_executor {
+ avoids += mfc
+ idlflags += -Sm
+
+ IDL3TOIDL2_Files {
+ convert.idl
+ include.idl
+ keyword_clash.idl
+ pass_through.idl
+ }
+
+ IDL_Files {
+ convert_IDL2.idl
+ include.idl
+ include_IDL2.idl
+ keyword_clash_IDL2.idl
+ pass_through_IDL2.idl << keyword_clash_IDL2C.h
+ raw_include.idl
+ }
+
+ Source_Files {
+ convert_IDL2C.cpp
+ convert_IDL2S.cpp
+ include_IDL2C.cpp
+ include_IDL2S.cpp
+ keyword_clash_IDL2C.cpp
+ keyword_clash_IDL2S.cpp
+ pass_through_IDL2C.cpp << includeC.h raw_includeC.h keyword_clash_IDL2C.h
+ pass_through_IDL2S.cpp
+ raw_includeC.cpp
+ raw_includeS.cpp
+ }
+}
+
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/convert.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/All/convert.idl
new file mode 100644
index 00000000000..68600a619b3
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/convert.idl
@@ -0,0 +1,53 @@
+// $Id$
+/**
+ * @file convert.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests all conversions of IDL3 constructs to IDL2.
+ */
+
+#include <Components.idl>
+
+eventtype eattype;
+interface sface {};
+interface pface {};
+interface uface {};
+interface umface {};
+
+valuetype pkey : Components::PrimaryKeyBase
+{
+ public string info;
+};
+
+valuetype pubtype_base {};
+eventtype pubtype : pubtype_base {};
+eventtype emitype : pubtype {};
+eventtype eattype {};
+
+component CompBase supports sface
+{
+};
+
+component CompDerived : CompBase
+{
+ provides pface pface_provider;
+ uses uface uface_user;
+ uses multiple umface umface_umuser;
+ publishes pubtype pubtype_publisher;
+ emits emitype emitype_emitter;
+ consumes eattype eattype_consumer;
+};
+
+home CompBaseHome supports sface manages CompBase
+{
+};
+
+home CompDerivedHome : CompBaseHome manages CompDerived primarykey pkey
+{
+ exception ch_except {};
+ void ch_op () raises (ch_except);
+ factory def_init ();
+ finder kitchen_sink (in string uid, in pkey key, in boolean all)
+ raises (ch_except);
+};
+
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/include.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/All/include.idl
new file mode 100644
index 00000000000..848d4128b6e
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/include.idl
@@ -0,0 +1,35 @@
+// $Id$
+/**
+ * @file include.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests tool's regeneration of IDL2 constructs, which
+ * should be basically unchanged.
+ */
+
+#ifndef INCLUDE_IDL
+#define INCLUDE_IDL
+
+module pre_mod
+{
+ typedef long longarray[3][14][7];
+
+ exception wrong
+ {
+ sequence<sequence<long> > longseqseq;
+ string reasons[4][2];
+ wstring<3> why;
+ };
+
+ enum which
+ {
+ ZERO,
+ ONE,
+ TWO
+ };
+};
+
+const pre_mod::which which_one = pre_mod::ONE;
+
+#endif /* INCLUDE_IDL */
+
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/keyword_clash.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/All/keyword_clash.idl
new file mode 100644
index 00000000000..987077bc185
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/keyword_clash.idl
@@ -0,0 +1,89 @@
+// $Id$
+/**
+ * @file keyword_clash.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests handling of C++ keywords and escaped identifiers (IDL
+ * keywords) in mapping IDL3 to IDL2, and mapping the resulting
+ * IDL2 to C++.
+ */
+
+#ifndef CONVERTIDL3_KEYWORD_CLASH_IDL
+#define CONVERTIDL3_KEYWORD_CLASH_IDL
+
+#include "Components.idl"
+
+module _interface
+{
+ interface _attribute
+ {
+ exception _inout {};
+ };
+};
+
+module static
+{
+ module _readonly
+ {
+ module protected
+ {
+ interface virtual
+ {
+ };
+
+ eventtype _eventtype
+ {
+ private virtual _public;
+ };
+ };
+ };
+};
+
+eventtype _eventtype
+{
+ factory friend (in string _wstring);
+};
+
+interface _oneway {};
+
+module _component
+{
+ component _out supports static::_readonly::protected::virtual
+ {
+ provides _interface::_attribute _local;
+ provides _oneway else;
+ provides static::_readonly::protected::virtual while;
+
+ attribute long _abstract;
+
+ uses multiple _interface::_attribute if;
+ uses multiple _oneway mutable;
+ uses multiple static::_readonly::protected::virtual register;
+
+ uses _interface::_attribute _union;
+ uses _oneway _struct;
+ uses static::_readonly::protected::virtual volatile;
+
+ publishes _eventtype _object;
+ publishes static::_readonly::protected::_eventtype do;
+
+ consumes _eventtype _const;
+ consumes static::_readonly::protected::_eventtype const_cast;
+
+ emits _eventtype class;
+ emits static::_readonly::protected::_eventtype delete;
+ };
+
+ home new manages _out
+ {
+ static::_readonly::protected::virtual
+ catch (
+ inout static::_readonly::protected::_eventtype try)
+ raises (_interface::_attribute::_inout);
+
+ finder continue (in _interface::_attribute _inout);
+ };
+};
+
+#endif /* CONVERTIDL3_KEYWORD_CLASH_IDL */
+
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/pass_through.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/All/pass_through.idl
new file mode 100644
index 00000000000..97d05edffe8
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/pass_through.idl
@@ -0,0 +1,94 @@
+// $Id$
+/**
+ * @file pass_through.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests tool's regeneration of IDL2 constructs, which
+ * should be basically unchanged.
+ */
+
+#ifndef PASS_THROUGH_IDL
+#define PASS_THROUGH_IDL
+
+#pragma prefix "glooby"
+
+#include "include.idl"
+#include "raw_include.idl"
+
+module pre_mod
+{
+ module inner
+ {
+ typedef long fork;
+ };
+
+ union uke switch (which)
+ {
+ case ONE:
+ case ZERO: string str_mem;
+ default: short s_mem;
+ };
+};
+
+module mod
+{
+ typeid mod "rama:lama/ding:dong";
+
+ interface base
+ {
+ readonly attribute unsigned long long ull_attr
+ raises (pre_mod::wrong);
+ };
+
+ interface foo
+ {
+ typeprefix foo "preefy";
+
+ exception wrongety_wrong
+ {
+ base unrelated;
+ string explanation;
+ };
+
+ attribute base base_attr
+ getraises (wrongety_wrong)
+ setraises (pre_mod::wrong, wrongety_wrong);
+ };
+
+ interface bleep;
+
+ abstract interface bar
+ {
+ base bar_op (in base inarg);
+ };
+
+ interface bleep : base, foo
+ {
+ oneway void oneway_op (in string strarg, in any anyarg);
+ bleep get_me ();
+ pre_mod::uke get_uke (out boolean success)
+ raises (pre_mod::wrong, foo::wrongety_wrong);
+ void throw_something ()
+ raises (pre_mod::wrong);
+ };
+
+ abstract valuetype vt_abase
+ {
+ };
+
+ valuetype vt_cbase
+ {
+ private bleep priv_bleep;
+ public string pub_str;
+ factory vt_init (in bleep bleeparg, in string stringarg)
+ raises (pre_mod::wrong);
+ };
+
+ valuetype vt : vt_cbase, vt_abase supports foo, bar
+ {
+ factory vt_default ();
+ };
+};
+
+#endif /* PASS_THROUGH_IDL */
+
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/All/raw_include.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/All/raw_include.idl
new file mode 100644
index 00000000000..b3aed65f2df
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/All/raw_include.idl
@@ -0,0 +1,27 @@
+// $Id$
+/**
+ * @file raw_include.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests tool's 'excluded file' feature, which allows the user
+ * to specifcy the generation of an #include for this file, in
+ * an IDL2 file corresponding to the IDL3 file this one is
+ * included in unchanged, without the '_IDL2' suffix.
+ */
+
+#ifndef RAW_INCLUDE_IDL
+#define RAW_INCLUDE_IDL
+
+module carnsarn
+{
+ typedef boolean t_or_f;
+
+ struct one
+ {
+ short shortshort;
+ string along;
+ wstring<3> trinity;
+ };
+};
+
+#endif /* RAW_INCLUDE_IDL */
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.idl
new file mode 100644
index 00000000000..a5d5897f8cc
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.idl
@@ -0,0 +1,25 @@
+// $Id$
+/**
+ * @file ICBasic.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests implied idl functionality of basic components.
+ */
+
+#include <Components.idl>
+
+module Basic
+{
+ component Foo
+ {
+ };
+
+ interface Bar
+ {
+ Foo test_op_1 ();
+ void test_op_2 (in Foo f);
+ void test_op_3 (out Foo f);
+ };
+
+
+};
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc
new file mode 100644
index 00000000000..854538563d0
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n ICBasic"
+
+project(ICBasic_stub): ccm_stub {
+
+ sharedname = ICBasic_stub
+ idlflags += -Wb,stub_export_macro=ICBASIC_STUB_Export -Wb,stub_export_include=ICBasic_stub_export.h -Wb,skel_export_macro=ICBASIC_SVNT_Export -Wb,skel_export_include=ICBasic_svnt_export.h
+ dynamicflags = ICBASIC_STUB_BUILD_DLL
+
+ IDL_Files {
+ ICBasic.idl
+ }
+
+ Source_Files {
+ ICBasicC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_stub_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_stub_export.h
new file mode 100644
index 00000000000..b58cac3acfc
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICBASIC_STUB
+// ------------------------------
+#ifndef ICBASIC_STUB_EXPORT_H
+#define ICBASIC_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ICBASIC_STUB_HAS_DLL)
+# define ICBASIC_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ICBASIC_STUB_HAS_DLL */
+
+#if !defined (ICBASIC_STUB_HAS_DLL)
+# define ICBASIC_STUB_HAS_DLL 1
+#endif /* ! ICBASIC_STUB_HAS_DLL */
+
+#if defined (ICBASIC_STUB_HAS_DLL) && (ICBASIC_STUB_HAS_DLL == 1)
+# if defined (ICBASIC_STUB_BUILD_DLL)
+# define ICBASIC_STUB_Export ACE_Proper_Export_Flag
+# define ICBASIC_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICBASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICBASIC_STUB_BUILD_DLL */
+# define ICBASIC_STUB_Export ACE_Proper_Import_Flag
+# define ICBASIC_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICBASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICBASIC_STUB_BUILD_DLL */
+#else /* ICBASIC_STUB_HAS_DLL == 1 */
+# define ICBASIC_STUB_Export
+# define ICBASIC_STUB_SINGLETON_DECLARATION(T)
+# define ICBASIC_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICBASIC_STUB_HAS_DLL == 1 */
+
+// Set ICBASIC_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICBASIC_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICBASIC_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICBASIC_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICBASIC_STUB_NTRACE */
+
+#if (ICBASIC_STUB_NTRACE == 1)
+# define ICBASIC_STUB_TRACE(X)
+#else /* (ICBASIC_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICBASIC_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICBASIC_STUB_NTRACE == 1) */
+
+#endif /* ICBASIC_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_svnt_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_svnt_export.h
new file mode 100644
index 00000000000..de3714a6c75
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Basic/ICBasic_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICBASIC_SVNT
+// ------------------------------
+#ifndef ICBASIC_SVNT_EXPORT_H
+#define ICBASIC_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ICBASIC_SVNT_HAS_DLL)
+# define ICBASIC_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ICBASIC_SVNT_HAS_DLL */
+
+#if !defined (ICBASIC_SVNT_HAS_DLL)
+# define ICBASIC_SVNT_HAS_DLL 1
+#endif /* ! ICBASIC_SVNT_HAS_DLL */
+
+#if defined (ICBASIC_SVNT_HAS_DLL) && (ICBASIC_SVNT_HAS_DLL == 1)
+# if defined (ICBASIC_SVNT_BUILD_DLL)
+# define ICBASIC_SVNT_Export ACE_Proper_Export_Flag
+# define ICBASIC_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICBASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICBASIC_SVNT_BUILD_DLL */
+# define ICBASIC_SVNT_Export ACE_Proper_Import_Flag
+# define ICBASIC_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICBASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICBASIC_SVNT_BUILD_DLL */
+#else /* ICBASIC_SVNT_HAS_DLL == 1 */
+# define ICBASIC_SVNT_Export
+# define ICBASIC_SVNT_SINGLETON_DECLARATION(T)
+# define ICBASIC_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICBASIC_SVNT_HAS_DLL == 1 */
+
+// Set ICBASIC_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICBASIC_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICBASIC_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICBASIC_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICBASIC_SVNT_NTRACE */
+
+#if (ICBASIC_SVNT_NTRACE == 1)
+# define ICBASIC_SVNT_TRACE(X)
+#else /* (ICBASIC_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICBASIC_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICBASIC_SVNT_NTRACE == 1) */
+
+#endif /* ICBASIC_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.idl
new file mode 100644
index 00000000000..7bf8f83c98c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.idl
@@ -0,0 +1,27 @@
+// $Id$
+/**
+ * @file ICEventSink.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests implied idl features of event sinks
+ */
+
+#include <Components.idl>
+
+module ImpliedEventSink
+{
+ eventtype foo_event
+ {
+ };
+
+ component Foo
+ {
+ consumes foo_event c_foo;
+ };
+ /*
+ interface test
+ {
+ ImpliedEventSink::FooEventConsumers::foo_eventConsumer test_a ();
+ };
+ */
+};
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc
new file mode 100644
index 00000000000..e9381d014b2
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n ICEventSink"
+
+project(ICEventSink_stub): ccm_stub {
+
+ sharedname = ICEventSink_stub
+ idlflags += -Wb,stub_export_macro=ICEVENTSINK_STUB_Export -Wb,stub_export_include=ICEventSink_stub_export.h -Wb,skel_export_macro=ICEVENTSINK_SVNT_Export -Wb,skel_export_include=ICEventSink_svnt_export.h
+ dynamicflags = ICEVENTSINK_STUB_BUILD_DLL
+
+ IDL_Files {
+ ICEventSink.idl
+ }
+
+ Source_Files {
+ ICEventSinkC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_stub_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_stub_export.h
new file mode 100644
index 00000000000..c773bbcf313
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICEVENTSINK_STUB
+// ------------------------------
+#ifndef ICEVENTSINK_STUB_EXPORT_H
+#define ICEVENTSINK_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ICEVENTSINK_STUB_HAS_DLL)
+# define ICEVENTSINK_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ICEVENTSINK_STUB_HAS_DLL */
+
+#if !defined (ICEVENTSINK_STUB_HAS_DLL)
+# define ICEVENTSINK_STUB_HAS_DLL 1
+#endif /* ! ICEVENTSINK_STUB_HAS_DLL */
+
+#if defined (ICEVENTSINK_STUB_HAS_DLL) && (ICEVENTSINK_STUB_HAS_DLL == 1)
+# if defined (ICEVENTSINK_STUB_BUILD_DLL)
+# define ICEVENTSINK_STUB_Export ACE_Proper_Export_Flag
+# define ICEVENTSINK_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICEVENTSINK_STUB_BUILD_DLL */
+# define ICEVENTSINK_STUB_Export ACE_Proper_Import_Flag
+# define ICEVENTSINK_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICEVENTSINK_STUB_BUILD_DLL */
+#else /* ICEVENTSINK_STUB_HAS_DLL == 1 */
+# define ICEVENTSINK_STUB_Export
+# define ICEVENTSINK_STUB_SINGLETON_DECLARATION(T)
+# define ICEVENTSINK_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICEVENTSINK_STUB_HAS_DLL == 1 */
+
+// Set ICEVENTSINK_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICEVENTSINK_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICEVENTSINK_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICEVENTSINK_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICEVENTSINK_STUB_NTRACE */
+
+#if (ICEVENTSINK_STUB_NTRACE == 1)
+# define ICEVENTSINK_STUB_TRACE(X)
+#else /* (ICEVENTSINK_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICEVENTSINK_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICEVENTSINK_STUB_NTRACE == 1) */
+
+#endif /* ICEVENTSINK_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_svnt_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_svnt_export.h
new file mode 100644
index 00000000000..10eed510dea
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSink/ICEventSink_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICEVENTSINK_SVNT
+// ------------------------------
+#ifndef ICEVENTSINK_SVNT_EXPORT_H
+#define ICEVENTSINK_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ICEVENTSINK_SVNT_HAS_DLL)
+# define ICEVENTSINK_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ICEVENTSINK_SVNT_HAS_DLL */
+
+#if !defined (ICEVENTSINK_SVNT_HAS_DLL)
+# define ICEVENTSINK_SVNT_HAS_DLL 1
+#endif /* ! ICEVENTSINK_SVNT_HAS_DLL */
+
+#if defined (ICEVENTSINK_SVNT_HAS_DLL) && (ICEVENTSINK_SVNT_HAS_DLL == 1)
+# if defined (ICEVENTSINK_SVNT_BUILD_DLL)
+# define ICEVENTSINK_SVNT_Export ACE_Proper_Export_Flag
+# define ICEVENTSINK_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICEVENTSINK_SVNT_BUILD_DLL */
+# define ICEVENTSINK_SVNT_Export ACE_Proper_Import_Flag
+# define ICEVENTSINK_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICEVENTSINK_SVNT_BUILD_DLL */
+#else /* ICEVENTSINK_SVNT_HAS_DLL == 1 */
+# define ICEVENTSINK_SVNT_Export
+# define ICEVENTSINK_SVNT_SINGLETON_DECLARATION(T)
+# define ICEVENTSINK_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICEVENTSINK_SVNT_HAS_DLL == 1 */
+
+// Set ICEVENTSINK_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICEVENTSINK_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICEVENTSINK_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICEVENTSINK_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICEVENTSINK_SVNT_NTRACE */
+
+#if (ICEVENTSINK_SVNT_NTRACE == 1)
+# define ICEVENTSINK_SVNT_TRACE(X)
+#else /* (ICEVENTSINK_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICEVENTSINK_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICEVENTSINK_SVNT_NTRACE == 1) */
+
+#endif /* ICEVENTSINK_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.idl
new file mode 100644
index 00000000000..578efbed7e4
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.idl
@@ -0,0 +1,38 @@
+// $Id$
+/**
+ * @file ICEventSource.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests implied IDL of event sources.
+ */
+
+#include <Components.idl>
+
+module ImpliedSources
+{
+ eventtype foo_event
+ {
+ };
+
+ eventtype bar_event
+ {
+ };
+
+ component Foo
+ {
+ publishes foo_event p_foo;
+ };
+
+ component Bar
+ {
+ emits bar_event e_bar;
+ };
+ /*
+ interface test
+ {
+ ImpliedSources::FooEventConsumers::foo_eventConsumer test_op ();
+ ImpliedSources::BarEventConsumers::bar_eventConsumer test_op_1 ();
+ };
+ */
+};
+
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc
new file mode 100644
index 00000000000..123083e4d3f
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n ICEventSource"
+
+project(ICEventSource_stub): ccm_stub {
+
+ sharedname = ICEventSource_stub
+ idlflags += -Wb,stub_export_macro=ICEVENTSOURCE_STUB_Export -Wb,stub_export_include=ICEventSource_stub_export.h -Wb,skel_export_macro=ICEVENTSOURCE_SVNT_Export -Wb,skel_export_include=ICEventSource_svnt_export.h
+ dynamicflags = ICEVENTSOURCE_STUB_BUILD_DLL
+
+ IDL_Files {
+ ICEventSource.idl
+ }
+
+ Source_Files {
+ ICEventSourceC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_stub_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_stub_export.h
new file mode 100644
index 00000000000..f28d2ba2d3a
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICEVENTSOURCE_STUB
+// ------------------------------
+#ifndef ICEVENTSOURCE_STUB_EXPORT_H
+#define ICEVENTSOURCE_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ICEVENTSOURCE_STUB_HAS_DLL)
+# define ICEVENTSOURCE_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ICEVENTSOURCE_STUB_HAS_DLL */
+
+#if !defined (ICEVENTSOURCE_STUB_HAS_DLL)
+# define ICEVENTSOURCE_STUB_HAS_DLL 1
+#endif /* ! ICEVENTSOURCE_STUB_HAS_DLL */
+
+#if defined (ICEVENTSOURCE_STUB_HAS_DLL) && (ICEVENTSOURCE_STUB_HAS_DLL == 1)
+# if defined (ICEVENTSOURCE_STUB_BUILD_DLL)
+# define ICEVENTSOURCE_STUB_Export ACE_Proper_Export_Flag
+# define ICEVENTSOURCE_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICEVENTSOURCE_STUB_BUILD_DLL */
+# define ICEVENTSOURCE_STUB_Export ACE_Proper_Import_Flag
+# define ICEVENTSOURCE_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICEVENTSOURCE_STUB_BUILD_DLL */
+#else /* ICEVENTSOURCE_STUB_HAS_DLL == 1 */
+# define ICEVENTSOURCE_STUB_Export
+# define ICEVENTSOURCE_STUB_SINGLETON_DECLARATION(T)
+# define ICEVENTSOURCE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICEVENTSOURCE_STUB_HAS_DLL == 1 */
+
+// Set ICEVENTSOURCE_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICEVENTSOURCE_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICEVENTSOURCE_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICEVENTSOURCE_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICEVENTSOURCE_STUB_NTRACE */
+
+#if (ICEVENTSOURCE_STUB_NTRACE == 1)
+# define ICEVENTSOURCE_STUB_TRACE(X)
+#else /* (ICEVENTSOURCE_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICEVENTSOURCE_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICEVENTSOURCE_STUB_NTRACE == 1) */
+
+#endif /* ICEVENTSOURCE_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_svnt_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_svnt_export.h
new file mode 100644
index 00000000000..b7269a38b47
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/EventSource/ICEventSource_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICEVENTSOURCE_SVNT
+// ------------------------------
+#ifndef ICEVENTSOURCE_SVNT_EXPORT_H
+#define ICEVENTSOURCE_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ICEVENTSOURCE_SVNT_HAS_DLL)
+# define ICEVENTSOURCE_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ICEVENTSOURCE_SVNT_HAS_DLL */
+
+#if !defined (ICEVENTSOURCE_SVNT_HAS_DLL)
+# define ICEVENTSOURCE_SVNT_HAS_DLL 1
+#endif /* ! ICEVENTSOURCE_SVNT_HAS_DLL */
+
+#if defined (ICEVENTSOURCE_SVNT_HAS_DLL) && (ICEVENTSOURCE_SVNT_HAS_DLL == 1)
+# if defined (ICEVENTSOURCE_SVNT_BUILD_DLL)
+# define ICEVENTSOURCE_SVNT_Export ACE_Proper_Export_Flag
+# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICEVENTSOURCE_SVNT_BUILD_DLL */
+# define ICEVENTSOURCE_SVNT_Export ACE_Proper_Import_Flag
+# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICEVENTSOURCE_SVNT_BUILD_DLL */
+#else /* ICEVENTSOURCE_SVNT_HAS_DLL == 1 */
+# define ICEVENTSOURCE_SVNT_Export
+# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARATION(T)
+# define ICEVENTSOURCE_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICEVENTSOURCE_SVNT_HAS_DLL == 1 */
+
+// Set ICEVENTSOURCE_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICEVENTSOURCE_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICEVENTSOURCE_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICEVENTSOURCE_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICEVENTSOURCE_SVNT_NTRACE */
+
+#if (ICEVENTSOURCE_SVNT_NTRACE == 1)
+# define ICEVENTSOURCE_SVNT_TRACE(X)
+#else /* (ICEVENTSOURCE_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICEVENTSOURCE_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICEVENTSOURCE_SVNT_NTRACE == 1) */
+
+#endif /* ICEVENTSOURCE_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl
new file mode 100644
index 00000000000..7af66e50e8c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.idl
@@ -0,0 +1,28 @@
+// $Id$
+/**
+ * @file ICReceptacles.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests equivalent idl for receptacles.
+ */
+#include <Components.idl>
+
+module EquivReceptacles
+{
+ interface foo_interface
+ {
+ };
+
+ component Foo
+ {
+ uses multiple foo_interface foo_recep;
+ };
+
+ /**
+ interface bar
+ {
+ Foo::foo_recepConnections get_seq ();
+ Foo::foo_recepConnection get_struct ();
+ };
+ */
+};
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc
new file mode 100644
index 00000000000..cc1f610892c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles.mpc
@@ -0,0 +1,18 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n ICReceptacles"
+
+project(ICReceptacles_stub): ccm_stub {
+
+ sharedname = ICReceptacles_stub
+ idlflags += -Wb,stub_export_macro=ICRECEPTACLES_STUB_Export -Wb,stub_export_include=ICReceptacles_stub_export.h -Wb,skel_export_macro=ICRECEPTACLES_SVNT_Export -Wb,skel_export_include=ICReceptacles_svnt_export.h
+ dynamicflags = ICRECEPTACLES_STUB_BUILD_DLL
+
+ IDL_Files {
+ ICReceptacles.idl
+ }
+
+ Source_Files {
+ ICReceptaclesC.cpp
+ }
+}
+
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_stub_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_stub_export.h
new file mode 100644
index 00000000000..2571741be01
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICRECEPTACLES_STUB
+// ------------------------------
+#ifndef ICRECEPTACLES_STUB_EXPORT_H
+#define ICRECEPTACLES_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ICRECEPTACLES_STUB_HAS_DLL)
+# define ICRECEPTACLES_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ICRECEPTACLES_STUB_HAS_DLL */
+
+#if !defined (ICRECEPTACLES_STUB_HAS_DLL)
+# define ICRECEPTACLES_STUB_HAS_DLL 1
+#endif /* ! ICRECEPTACLES_STUB_HAS_DLL */
+
+#if defined (ICRECEPTACLES_STUB_HAS_DLL) && (ICRECEPTACLES_STUB_HAS_DLL == 1)
+# if defined (ICRECEPTACLES_STUB_BUILD_DLL)
+# define ICRECEPTACLES_STUB_Export ACE_Proper_Export_Flag
+# define ICRECEPTACLES_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICRECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICRECEPTACLES_STUB_BUILD_DLL */
+# define ICRECEPTACLES_STUB_Export ACE_Proper_Import_Flag
+# define ICRECEPTACLES_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICRECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICRECEPTACLES_STUB_BUILD_DLL */
+#else /* ICRECEPTACLES_STUB_HAS_DLL == 1 */
+# define ICRECEPTACLES_STUB_Export
+# define ICRECEPTACLES_STUB_SINGLETON_DECLARATION(T)
+# define ICRECEPTACLES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICRECEPTACLES_STUB_HAS_DLL == 1 */
+
+// Set ICRECEPTACLES_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICRECEPTACLES_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICRECEPTACLES_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICRECEPTACLES_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICRECEPTACLES_STUB_NTRACE */
+
+#if (ICRECEPTACLES_STUB_NTRACE == 1)
+# define ICRECEPTACLES_STUB_TRACE(X)
+#else /* (ICRECEPTACLES_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICRECEPTACLES_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICRECEPTACLES_STUB_NTRACE == 1) */
+
+#endif /* ICRECEPTACLES_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_svnt_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_svnt_export.h
new file mode 100644
index 00000000000..d826479eeaa
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Components/Receptacles/ICReceptacles_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl ICRECEPTACLES_SVNT
+// ------------------------------
+#ifndef ICRECEPTACLES_SVNT_EXPORT_H
+#define ICRECEPTACLES_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (ICRECEPTACLES_SVNT_HAS_DLL)
+# define ICRECEPTACLES_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && ICRECEPTACLES_SVNT_HAS_DLL */
+
+#if !defined (ICRECEPTACLES_SVNT_HAS_DLL)
+# define ICRECEPTACLES_SVNT_HAS_DLL 1
+#endif /* ! ICRECEPTACLES_SVNT_HAS_DLL */
+
+#if defined (ICRECEPTACLES_SVNT_HAS_DLL) && (ICRECEPTACLES_SVNT_HAS_DLL == 1)
+# if defined (ICRECEPTACLES_SVNT_BUILD_DLL)
+# define ICRECEPTACLES_SVNT_Export ACE_Proper_Export_Flag
+# define ICRECEPTACLES_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define ICRECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* ICRECEPTACLES_SVNT_BUILD_DLL */
+# define ICRECEPTACLES_SVNT_Export ACE_Proper_Import_Flag
+# define ICRECEPTACLES_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define ICRECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* ICRECEPTACLES_SVNT_BUILD_DLL */
+#else /* ICRECEPTACLES_SVNT_HAS_DLL == 1 */
+# define ICRECEPTACLES_SVNT_Export
+# define ICRECEPTACLES_SVNT_SINGLETON_DECLARATION(T)
+# define ICRECEPTACLES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* ICRECEPTACLES_SVNT_HAS_DLL == 1 */
+
+// Set ICRECEPTACLES_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (ICRECEPTACLES_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define ICRECEPTACLES_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define ICRECEPTACLES_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !ICRECEPTACLES_SVNT_NTRACE */
+
+#if (ICRECEPTACLES_SVNT_NTRACE == 1)
+# define ICRECEPTACLES_SVNT_TRACE(X)
+#else /* (ICRECEPTACLES_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define ICRECEPTACLES_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (ICRECEPTACLES_SVNT_NTRACE == 1) */
+
+#endif /* ICRECEPTACLES_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.idl
new file mode 100644
index 00000000000..62092c9e958
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.idl
@@ -0,0 +1,22 @@
+// $Id$
+/**
+ * @file Events.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests implied IDL for event types.
+ */
+
+#include <Components.idl>
+
+module ImpliedEvent
+{
+ eventtype foo
+ {
+ };
+ /*
+ interface test_foo
+ {
+ fooConsumer test_op ();
+ };
+ */
+};
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.mpc
new file mode 100644
index 00000000000..4200e384e0a
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events.mpc
@@ -0,0 +1,17 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Events"
+
+project(Events_stub): ccm_stub {
+
+ sharedname = Events_stub
+ idlflags += -Wb,stub_export_macro=EVENTS_STUB_Export -Wb,stub_export_include=Events_stub_export.h -Wb,skel_export_macro=EVENTS_SVNT_Export -Wb,skel_export_include=Events_svnt_export.h
+ dynamicflags = EVENTS_STUB_BUILD_DLL
+
+ IDL_Files {
+ Events.idl
+ }
+
+ Source_Files {
+ EventsC.cpp
+ }
+}
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_stub_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_stub_export.h
new file mode 100644
index 00000000000..be696db1402
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl EVENTS_STUB
+// ------------------------------
+#ifndef EVENTS_STUB_EXPORT_H
+#define EVENTS_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (EVENTS_STUB_HAS_DLL)
+# define EVENTS_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && EVENTS_STUB_HAS_DLL */
+
+#if !defined (EVENTS_STUB_HAS_DLL)
+# define EVENTS_STUB_HAS_DLL 1
+#endif /* ! EVENTS_STUB_HAS_DLL */
+
+#if defined (EVENTS_STUB_HAS_DLL) && (EVENTS_STUB_HAS_DLL == 1)
+# if defined (EVENTS_STUB_BUILD_DLL)
+# define EVENTS_STUB_Export ACE_Proper_Export_Flag
+# define EVENTS_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define EVENTS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* EVENTS_STUB_BUILD_DLL */
+# define EVENTS_STUB_Export ACE_Proper_Import_Flag
+# define EVENTS_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define EVENTS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* EVENTS_STUB_BUILD_DLL */
+#else /* EVENTS_STUB_HAS_DLL == 1 */
+# define EVENTS_STUB_Export
+# define EVENTS_STUB_SINGLETON_DECLARATION(T)
+# define EVENTS_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* EVENTS_STUB_HAS_DLL == 1 */
+
+// Set EVENTS_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (EVENTS_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define EVENTS_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define EVENTS_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !EVENTS_STUB_NTRACE */
+
+#if (EVENTS_STUB_NTRACE == 1)
+# define EVENTS_STUB_TRACE(X)
+#else /* (EVENTS_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define EVENTS_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (EVENTS_STUB_NTRACE == 1) */
+
+#endif /* EVENTS_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_svnt_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_svnt_export.h
new file mode 100644
index 00000000000..bca88a9a54a
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Events/Events_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl EVENTS_SVNT
+// ------------------------------
+#ifndef EVENTS_SVNT_EXPORT_H
+#define EVENTS_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (EVENTS_SVNT_HAS_DLL)
+# define EVENTS_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && EVENTS_SVNT_HAS_DLL */
+
+#if !defined (EVENTS_SVNT_HAS_DLL)
+# define EVENTS_SVNT_HAS_DLL 1
+#endif /* ! EVENTS_SVNT_HAS_DLL */
+
+#if defined (EVENTS_SVNT_HAS_DLL) && (EVENTS_SVNT_HAS_DLL == 1)
+# if defined (EVENTS_SVNT_BUILD_DLL)
+# define EVENTS_SVNT_Export ACE_Proper_Export_Flag
+# define EVENTS_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define EVENTS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* EVENTS_SVNT_BUILD_DLL */
+# define EVENTS_SVNT_Export ACE_Proper_Import_Flag
+# define EVENTS_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define EVENTS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* EVENTS_SVNT_BUILD_DLL */
+#else /* EVENTS_SVNT_HAS_DLL == 1 */
+# define EVENTS_SVNT_Export
+# define EVENTS_SVNT_SINGLETON_DECLARATION(T)
+# define EVENTS_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* EVENTS_SVNT_HAS_DLL == 1 */
+
+// Set EVENTS_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (EVENTS_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define EVENTS_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define EVENTS_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !EVENTS_SVNT_NTRACE */
+
+#if (EVENTS_SVNT_NTRACE == 1)
+# define EVENTS_SVNT_TRACE(X)
+#else /* (EVENTS_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define EVENTS_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (EVENTS_SVNT_NTRACE == 1) */
+
+#endif /* EVENTS_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.idl b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.idl
new file mode 100644
index 00000000000..3440458b4b2
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.idl
@@ -0,0 +1,28 @@
+// $Id$
+/**
+ * @file Homes.idl
+ * @author Will Otte <wotte@dre.vanderbilt.edu>
+ *
+ * Tests equivalent IDL semantics for Homes
+ */
+
+#include <Components.idl>
+
+module ImplicitHomes
+{
+ component Foo
+ {
+ };
+
+ home FooHome manages Foo
+ {
+ };
+ /*
+ interface test
+ {
+ FooHomeExplicit test_op ();
+ FooHomeImplicit test_op_1 ();
+ FooHome test_op_2 ();
+ };
+ */
+};
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.mpc b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.mpc
new file mode 100644
index 00000000000..bb6b96ca281
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes.mpc
@@ -0,0 +1,18 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Homes"
+
+project(Homes_stub): ccm_stub {
+
+ sharedname = Homes_stub
+ idlflags += -Wb,stub_export_macro=HOMES_STUB_Export -Wb,stub_export_include=Homes_stub_export.h -Wb,skel_export_macro=HOMES_SVNT_Export -Wb,skel_export_include=Homes_svnt_export.h
+ dynamicflags = HOMES_STUB_BUILD_DLL
+
+ IDL_Files {
+ Homes.idl
+ }
+
+ Source_Files {
+ HomesC.cpp
+ }
+}
+
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_stub_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_stub_export.h
new file mode 100644
index 00000000000..e7ba466797c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl HOMES_STUB
+// ------------------------------
+#ifndef HOMES_STUB_EXPORT_H
+#define HOMES_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (HOMES_STUB_HAS_DLL)
+# define HOMES_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && HOMES_STUB_HAS_DLL */
+
+#if !defined (HOMES_STUB_HAS_DLL)
+# define HOMES_STUB_HAS_DLL 1
+#endif /* ! HOMES_STUB_HAS_DLL */
+
+#if defined (HOMES_STUB_HAS_DLL) && (HOMES_STUB_HAS_DLL == 1)
+# if defined (HOMES_STUB_BUILD_DLL)
+# define HOMES_STUB_Export ACE_Proper_Export_Flag
+# define HOMES_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define HOMES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* HOMES_STUB_BUILD_DLL */
+# define HOMES_STUB_Export ACE_Proper_Import_Flag
+# define HOMES_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define HOMES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* HOMES_STUB_BUILD_DLL */
+#else /* HOMES_STUB_HAS_DLL == 1 */
+# define HOMES_STUB_Export
+# define HOMES_STUB_SINGLETON_DECLARATION(T)
+# define HOMES_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* HOMES_STUB_HAS_DLL == 1 */
+
+// Set HOMES_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (HOMES_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define HOMES_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define HOMES_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !HOMES_STUB_NTRACE */
+
+#if (HOMES_STUB_NTRACE == 1)
+# define HOMES_STUB_TRACE(X)
+#else /* (HOMES_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define HOMES_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (HOMES_STUB_NTRACE == 1) */
+
+#endif /* HOMES_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_svnt_export.h b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_svnt_export.h
new file mode 100644
index 00000000000..16fc4127d94
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/ImpliedIDL/Homes/Homes_svnt_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl HOMES_SVNT
+// ------------------------------
+#ifndef HOMES_SVNT_EXPORT_H
+#define HOMES_SVNT_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (HOMES_SVNT_HAS_DLL)
+# define HOMES_SVNT_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && HOMES_SVNT_HAS_DLL */
+
+#if !defined (HOMES_SVNT_HAS_DLL)
+# define HOMES_SVNT_HAS_DLL 1
+#endif /* ! HOMES_SVNT_HAS_DLL */
+
+#if defined (HOMES_SVNT_HAS_DLL) && (HOMES_SVNT_HAS_DLL == 1)
+# if defined (HOMES_SVNT_BUILD_DLL)
+# define HOMES_SVNT_Export ACE_Proper_Export_Flag
+# define HOMES_SVNT_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define HOMES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* HOMES_SVNT_BUILD_DLL */
+# define HOMES_SVNT_Export ACE_Proper_Import_Flag
+# define HOMES_SVNT_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define HOMES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* HOMES_SVNT_BUILD_DLL */
+#else /* HOMES_SVNT_HAS_DLL == 1 */
+# define HOMES_SVNT_Export
+# define HOMES_SVNT_SINGLETON_DECLARATION(T)
+# define HOMES_SVNT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* HOMES_SVNT_HAS_DLL == 1 */
+
+// Set HOMES_SVNT_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (HOMES_SVNT_NTRACE)
+# if (ACE_NTRACE == 1)
+# define HOMES_SVNT_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define HOMES_SVNT_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !HOMES_SVNT_NTRACE */
+
+#if (HOMES_SVNT_NTRACE == 1)
+# define HOMES_SVNT_TRACE(X)
+#else /* (HOMES_SVNT_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define HOMES_SVNT_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (HOMES_SVNT_NTRACE == 1) */
+
+#endif /* HOMES_SVNT_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/IDL3/Lookup/README b/modules/CIAO/tests/IDL3/Lookup/README
new file mode 100644
index 00000000000..a92531070a6
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Lookup/README
@@ -0,0 +1,21 @@
+
+Lookup Test
+=======================
+
+This test is for IDL compiler handling of references using local
+names to declarations in base interfaces, components, valuetypes
+and homes, and in supported interfaces. This type of reference
+is legal IDL.
+
+The primary point of the test is that the IDL compiler outputs
+no errors in processing the IDL file, and the secondary point
+is that the generated code compiles successfully. Therefore,
+we have no need for export files, export macros, or *_BUILD_DLL
+flags.
+
+Thanks to Boris Kolpackov <boris@dre.vanderbilt.edu> for the
+original example IDL file, which has been slightly modified
+for use in this test.
+
+
+Jeff Parsons \ No newline at end of file
diff --git a/modules/CIAO/tests/IDL3/Lookup/lookup_test.idl b/modules/CIAO/tests/IDL3/Lookup/lookup_test.idl
new file mode 100644
index 00000000000..74d9b85de22
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Lookup/lookup_test.idl
@@ -0,0 +1,76 @@
+// $Id$
+/**
+ * @file lookup_test.idl
+ * @authors Boris Kolpackov <boris@dre.vanderbilt.edu>
+ * Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests IDL compiler lookup when local names are used
+ * to reference declarations in supported interfaces,
+ * base valuetypes, base components, and base homes.
+ */
+
+
+#ifndef IDL3_LOOKUP_TEST_IDL
+#define IDL3_LOOKUP_TEST_IDL
+
+#include <Components.idl>
+
+module M
+{
+ interface IB
+ {
+ exception Ex {};
+ typedef long Foo;
+ };
+
+ interface I : IB
+ {
+ void f (in Foo bar) raises (Ex);
+ };
+
+ valuetype VB
+ {
+ typedef long Bar;
+ };
+
+ valuetype V : VB supports IB
+ {
+ void f (in Bar foo) raises (Ex);
+ };
+
+ valuetype EB
+ {
+ typedef long Bar;
+ };
+
+ valuetype E : EB supports IB
+ {
+ void f (in Bar foo) raises (Ex);
+ };
+
+ interface T
+ {
+ typedef long Bar;
+ };
+
+ component CB supports T
+ {
+ };
+
+ component C : CB
+ {
+ attribute Bar baz;
+ };
+
+ home HB supports IB manages CB
+ {
+ typedef long Bar;
+ };
+
+ home H : HB manages C
+ {
+ void f (in Bar b) raises (Ex);
+ };
+};
+
+#endif /* IDL3_LOOKUP_TEST_IDL */
diff --git a/modules/CIAO/tests/IDL3/Lookup/lookup_test.mpc b/modules/CIAO/tests/IDL3/Lookup/lookup_test.mpc
new file mode 100644
index 00000000000..d257f0ccd9b
--- /dev/null
+++ b/modules/CIAO/tests/IDL3/Lookup/lookup_test.mpc
@@ -0,0 +1,18 @@
+// $Id$
+
+project(LookupTest_stub): ccm_stub {
+
+ sharedname = LookupTest_stub
+
+ IDL_Files {
+ lookup_test.idl
+ }
+
+ Source_Files {
+ lookup_testC.cpp
+ }
+
+ Header_Files {
+ lookup_testC.h
+ }
+}
diff --git a/modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl
new file mode 100755
index 00000000000..77597dae053
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/run_test.pl
@@ -0,0 +1,56 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+$status = 0;
+
+my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+
+my $idl = "test.idl";
+my $dtd = "../XMI.dtd";
+my $xmi = "generated.xmi";
+my $target_idl = $target->LocalFile ($idl);
+my $target_dtd = $target->LocalFile ($dtd);
+my $target_xmi = $target->LocalFile ($xmi);
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi",
+ "-f -xd $target_dtd -of $target_xmi $target_idl");
+
+$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
+
+if ($target_status != 0) {
+ print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n";
+ exit 1;
+}
+
+if ($target->GetFile ($xmi) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$xmi>\n";
+ exit 1;
+}
+
+# search for right tag in generated xmi
+open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!");
+@data=<DAT>;
+close (DAT);
+
+$num = grep (/<UML:Attribute/, @data);
+if ($num == 2) {
+ print "TEST OK. Correct tags in there.\n";
+} else {
+ print STDERR "ERROR: generated XMI does not contain a brace of UML:Attribute tags !\n\nXMI is:\n\n";
+ print "@data\n\n";
+ $status = 1;
+}
+
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+exit $status;
diff --git a/modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/test.idl b/modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/test.idl
new file mode 100644
index 00000000000..58c9017b595
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/Bug_3607_Regression/test.idl
@@ -0,0 +1,11 @@
+// $Id$
+
+#ifndef FOO_IDL
+#define FOO_IDL
+
+struct Foo
+{
+ long bar[5];
+};
+
+#endif
diff --git a/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/IDL2XMI_Test.mpc b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/IDL2XMI_Test.mpc
new file mode 100644
index 00000000000..4db76128d4c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/IDL2XMI_Test.mpc
@@ -0,0 +1,14 @@
+// -*- MPC -*-
+// $Id$
+
+project(*IDL2XMI_Test) : taoexe, ciao_xml_utils, xerces {
+ exename = xmlvalidator
+
+ Source_Files {
+ XML_Helper.cpp
+ xmlvalidator.cpp
+ }
+
+ IDL_Files {
+ }
+}
diff --git a/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.cpp b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.cpp
new file mode 100644
index 00000000000..8f3454e7d2c
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.cpp
@@ -0,0 +1,103 @@
+// $Id$
+
+#include "XML_Helper.h"
+#include "ace/Log_Msg.h"
+
+#include "xercesc/dom/DOM.hpp"
+#include "xercesc/parsers/XercesDOMParser.hpp"
+
+#include "XML/XercesString.h"
+
+namespace Test
+{
+ namespace XML
+ {
+ Helper::Helper (CIAO::XML::XML_Error_Handler &eh)
+ : impl_ (0)
+ , parser_ (0)
+ , e_handler_ (eh)
+ {
+ this->init_parser ();
+ }
+
+ Helper::~Helper (void)
+ {
+ this->terminate_parser ();
+ }
+
+ void
+ Helper::init_parser (void)
+ {
+ // Initialize the Xerces run-time
+ XERCES_CPP_NAMESPACE::XMLPlatformUtils::Initialize();
+
+ // Instantiate the DOM parser.
+ static const XMLCh gLS[] = { XERCES_CPP_NAMESPACE::chLatin_L,
+ XERCES_CPP_NAMESPACE::chLatin_S,
+ XERCES_CPP_NAMESPACE::chNull };
+
+ // Get an implementation of the Load-Store (LS) interface
+ // and cache it for later use
+ impl_ =
+ XERCES_CPP_NAMESPACE::DOMImplementationRegistry::getDOMImplementation(gLS);
+ }
+
+ int
+ Helper::validate_dom (const ACE_TCHAR *url)
+ {
+ if (url == 0)
+ return 0;
+
+ try
+ {
+ if (this->parser_ == 0)
+ this->parser_ = new XERCES_CPP_NAMESPACE::XercesDOMParser ();
+
+ // Discard comment nodes in the document
+ this->parser_->setCreateCommentNodes (false);
+
+ // Do not create EntityReference nodes in the DOM tree. No
+ // EntityReference nodes will be created, only the nodes
+ // corresponding to their fully expanded sustitution text will be
+ // created.
+ this->parser_->setCreateEntityReferenceNodes (false);
+
+ // Perform Validation
+ this->parser_->setValidationScheme (
+ XERCES_CPP_NAMESPACE::AbstractDOMParser::Val_Always);
+
+ // Do not include ignorable whitespace in the DOM tree.
+ this->parser_->setIncludeIgnorableWhitespace (false);
+
+ // Enable full schema constraint checking, including checking which
+ // may be time-consuming or memory intensive. Currently, particle
+ // unique attribution constraint checking and particle derivation
+ // restriction checking are controlled by this option.
+ this->parser_->setValidationSchemaFullChecking (true);
+
+ this->parser_->setErrorHandler (&e_handler_);
+
+ this->parser_->parse (ACE_TEXT_ALWAYS_CHAR (url));
+
+ if (e_handler_.getErrors ())
+ return 1;
+
+ return 0;
+ }
+ catch (...)
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ "(%P|%t) Caught an unknown exception\n"));
+ throw;
+ }
+
+ return 0;
+ }
+
+ void
+ Helper::terminate_parser (void)
+ {
+ XERCES_CPP_NAMESPACE::XMLPlatformUtils::Terminate ();
+ }
+ }
+}
diff --git a/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.h b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.h
new file mode 100644
index 00000000000..869742e2274
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/XML_Helper.h
@@ -0,0 +1,67 @@
+// $Id$
+//============================================================
+/**
+ * @file XML_Helper.h
+ *
+ * @brief Some helper functions for XML
+ *
+ * @author Bala Natarajan <bala@dre.vanderbilt.edu>
+ * @author William R. Otte <wotte@dre.vanderbilt.edu>
+ */
+//============================================================
+
+#ifndef CIAO_XML_HELPER_H
+#define CIAO_XML_HELPER_H
+#include /**/ "ace/pre.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "XML/XML_Error_Handler.h"
+
+#include "xercesc/util/XercesDefs.hpp"
+
+namespace XERCES_CPP_NAMESPACE
+{
+ class DOMImplementation;
+ class XercesDOMParser;
+}
+
+namespace Test
+{
+ namespace XML
+ {
+ /**
+ * @class Helper
+ *
+ * @brief Helper class for some routine XML stuff.
+ */
+ class Helper
+ {
+ public:
+ // Initialize the resolver we should use.
+ Helper (CIAO::XML::XML_Error_Handler &eh);
+
+ ~Helper (void);
+
+ int validate_dom (const ACE_TCHAR *uri);
+
+ protected:
+ /// Intialize the parser
+ void init_parser (void);
+
+ /// Terminate the parser
+ void terminate_parser (void);
+
+ private:
+ XERCES_CPP_NAMESPACE::DOMImplementation *impl_;
+ XERCES_CPP_NAMESPACE::XercesDOMParser *parser_;
+
+ CIAO::XML::XML_Error_Handler &e_handler_;
+ };
+ }
+}
+
+#include /**/ "ace/post.h"
+#endif/*CIAO_XML_HELPER_H*/
diff --git a/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl
new file mode 100755
index 00000000000..57b96125210
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/run_test.pl
@@ -0,0 +1,59 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::Run_Test;
+
+$status = 0;
+
+$I2X = new PerlACE::Process ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi");
+#$VAL = new PerlACE::Process ("/usr/bin/xmlstarlet");
+$VAL = new PerlACE::Process ("xmlvalidator");
+
+my $idl_tests_dir = "$ENV{'TAO_ROOT'}/tests/IDL_Test";
+opendir(DIR, $idl_tests_dir) || die "can't opendir $idl_tests_dir: $!";
+
+my @idls = grep { /\.idl$/ && -f "$idl_tests_dir/$_" } readdir(DIR);
+foreach my $idl_file (@idls) {
+ my $idl = "$idl_tests_dir/$idl_file";
+ my $dtd = "../XMI.dtd";
+ (my $xmi = $idl_file) =~ s/\.idl$/.xmi/;
+ unlink $xmi;
+
+ $I2X->Arguments ("-I$idl_tests_dir -xd $dtd -of $xmi $idl");
+
+ $target_status = $I2X->SpawnWaitKill (30);
+
+ if ($target_status != 0) {
+ print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n";
+ $status = 1;
+ }
+
+ if (! -f $xmi) {
+ print STDERR "ERROR: tao_idl3_to_xmi didn't produce XMI\n";
+ print "\n";
+ next;
+ }
+
+ #$VAL->Arguments ("val -d $dtd $xmi");
+ $VAL->Arguments ("-i $xmi");
+
+ $target_status = $VAL->SpawnWaitKill (30);
+
+ if ($target_status != 0) {
+ print STDERR "ERROR: xmlvalidator returned $target_status\n";
+ $status = 1;
+ }
+
+ unlink $xmi;
+
+ print "\n";
+}
+
+closedir DIR;
+
+exit $status;
diff --git a/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/xmlvalidator.cpp b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/xmlvalidator.cpp
new file mode 100644
index 00000000000..2603fb30403
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/IDL2XMI_Test/xmlvalidator.cpp
@@ -0,0 +1,64 @@
+// $Id$
+
+#include "ace/Get_Opt.h"
+#include "ace/OS_NS_stdio.h"
+
+#include "XML_Helper.h"
+
+ACE_RCSID (IDL2XMI_Test,
+ xmlvalidator,
+ "$Id$")
+
+const ACE_TCHAR *inp_file = ACE_TEXT ("");
+
+int
+parse_args (int argc, ACE_TCHAR *argv[])
+{
+ ACE_Get_Opt get_opts (argc, argv, ACE_TEXT("i:"));
+ int c;
+
+ while ((c = get_opts ()) != -1)
+ switch (c)
+ {
+ case 'i':
+ inp_file = get_opts.opt_arg ();
+ break;
+
+ case '?':
+ default:
+ ACE_ERROR_RETURN ((LM_ERROR,
+ ACE_TEXT ("usage: %s ")
+ ACE_TEXT ("-i <inputfile>")
+ ACE_TEXT ("\n"),
+ argv [0]),
+ -1);
+ }
+ // Indicates sucessful parsing of the command line
+ return 0;
+}
+
+int
+ACE_TMAIN(int argc, ACE_TCHAR *argv[])
+{
+ if (parse_args (argc, argv) != 0)
+ {
+ return 1;
+ }
+
+ CIAO::XML::XML_Error_Handler handler;
+ Test::XML::Helper helper (handler);
+
+ if (0 != helper.validate_dom (inp_file))
+ {
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("%s - invalid xml\n"),
+ inp_file));
+ return 1;
+ }
+
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("%s - valid xml\n"),
+ inp_file));
+
+ return 0;
+}
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI.dtd b/modules/CIAO/tests/IDL3_to_XMI/XMI.dtd
new file mode 100644
index 00000000000..c8cf164befd
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI.dtd
@@ -0,0 +1,6384 @@
+<!-- ===================================================================== -->
+<!--
+ This file is the same for all the XMI tests.
+ This is XMI 1.1 RTF UML DTD which can be found at
+ http://www.omg.org/cgi-bin/apps/doc?ad/99-10-05.dtd
+-->
+<!-- ===================================================================== -->
+<!-- Generated by: XMI Framework 1.0 -->
+<!-- Date: Fri Oct 22 14:31:09 PDT 1999 -->
+
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- This section of the DTD contains XML declarations required by -->
+<!-- XMI. -->
+<!-- _______________________________________________________________ -->
+
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI is the top-level XML element for XMI transfer text -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI (XMI.header?, XMI.content?, XMI.difference*,
+ XMI.extensions*) >
+<!ATTLIST XMI
+ xmi.version CDATA #FIXED "1.1"
+ timestamp CDATA #IMPLIED
+ verified (true | false) #IMPLIED
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.header contains documentation and identifies the model, -->
+<!-- metamodel, and metametamodel -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.header (XMI.documentation?, XMI.model*, XMI.metamodel*,
+ XMI.metametamodel*, XMI.import*) >
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- documentation for transfer data -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.documentation (#PCDATA | XMI.owner | XMI.contact |
+ XMI.longDescription | XMI.shortDescription |
+ XMI.exporter | XMI.exporterVersion |
+ XMI.notice)* >
+<!ELEMENT XMI.owner ANY >
+<!ELEMENT XMI.contact ANY >
+<!ELEMENT XMI.longDescription ANY >
+<!ELEMENT XMI.shortDescription ANY >
+<!ELEMENT XMI.exporter ANY >
+<!ELEMENT XMI.exporterVersion ANY >
+<!ELEMENT XMI.exporterID ANY >
+<!ELEMENT XMI.notice ANY >
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.element.att defines the attributes that each XML element -->
+<!-- that corresponds to a metamodel class must have to conform to -->
+<!-- the XMI specification. -->
+<!-- _______________________________________________________________ -->
+
+
+<!ENTITY % XMI.element.att
+ 'xmi.id ID #IMPLIED xmi.label CDATA #IMPLIED xmi.uuid
+ CDATA #IMPLIED ' >
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.link.att defines the attributes that each XML element that -->
+<!-- corresponds to a metamodel class must have to enable it to -->
+<!-- function as a simple XLink as well as refer to model -->
+<!-- constructs within the same XMI file. -->
+<!-- _______________________________________________________________ -->
+
+
+<!ENTITY % XMI.link.att
+ 'href CDATA #IMPLIED xmi.idref IDREF #IMPLIED xml:link
+ CDATA #IMPLIED xlink:inline (true | false) #IMPLIED
+ xlink:actuate (show | user) #IMPLIED xlink:content-role
+ CDATA #IMPLIED xlink:title CDATA #IMPLIED xlink:show
+ (embed | replace | new) #IMPLIED xlink:behavior CDATA
+ #IMPLIED' >
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.model identifies the model(s) being transferred -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.model ANY >
+<!ATTLIST XMI.model
+ %XMI.link.att;
+ xmi.name CDATA #REQUIRED
+ xmi.version CDATA #IMPLIED
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.metamodel identifies the metamodel(s) for the transferred -->
+<!-- data -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.metamodel ANY >
+<!ATTLIST XMI.metamodel
+ %XMI.link.att;
+ xmi.name CDATA #REQUIRED
+ xmi.version CDATA #IMPLIED
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.metametamodel identifies the metametamodel(s) for the -->
+<!-- transferred data -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.metametamodel ANY >
+<!ATTLIST XMI.metametamodel
+ %XMI.link.att;
+ xmi.name CDATA #REQUIRED
+ xmi.version CDATA #IMPLIED
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.metametamodel identifies other files associated with the -->
+<!-- transferred data -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.import ANY >
+<!ATTLIST XMI.import
+ %XMI.link.att;
+ xmi.name CDATA #REQUIRED
+ xmi.version CDATA #IMPLIED
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.content is the actual data being transferred -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.content ANY >
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.extensions contains data to transfer that does not conform -->
+<!-- to the metamodel(s) in the header -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.extensions ANY >
+<!ATTLIST XMI.extensions
+ xmi.extender CDATA #REQUIRED
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- extension contains information related to a specific model -->
+<!-- construct that is not defined in the metamodel(s) in the header -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.extension ANY >
+<!ATTLIST XMI.extension
+ %XMI.element.att;
+ %XMI.link.att;
+ xmi.extender CDATA #REQUIRED
+ xmi.extenderID CDATA #IMPLIED
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.difference holds XML elements representing differences to a -->
+<!-- base model -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.difference (XMI.difference | XMI.delete | XMI.add |
+ XMI.replace)* >
+<!ATTLIST XMI.difference
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.delete represents a deletion from a base model -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.delete EMPTY >
+<!ATTLIST XMI.delete
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.add represents an addition to a base model -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.add ANY >
+<!ATTLIST XMI.add
+ %XMI.element.att;
+ %XMI.link.att;
+ xmi.position CDATA "-1"
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.replace represents the replacement of a model construct -->
+<!-- with another model construct in a base model -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.replace ANY >
+<!ATTLIST XMI.replace
+ %XMI.element.att;
+ %XMI.link.att;
+ xmi.position CDATA "-1"
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- XMI.reference may be used to refer to data types not defined in -->
+<!-- the metamodel -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT XMI.reference ANY >
+<!ATTLIST XMI.reference
+ %XMI.link.att;
+>
+
+<!ATTLIST XMI
+ xmlns:UML CDATA #IMPLIED
+>
+
+
+<!ELEMENT UML:Binding.argument (UML:ModelElement | UML:Comment |
+ UML:Namespace | UML:GeneralizableElement |
+ UML:Feature | UML:Parameter |
+ UML:Constraint | UML:Dependency |
+ UML:Generalization | UML:AssociationEnd |
+ UML:Request | UML:ActionSequence |
+ UML:Action | UML:Link | UML:LinkEnd |
+ UML:Instance | UML:AttributeLink |
+ UML:MessageInstance | UML:Interaction |
+ UML:Message | UML:StateMachine |
+ UML:Guard | UML:StateVertex |
+ UML:Transition | UML:Event |
+ UML:Partition | UML:Collaboration |
+ UML:Classifier | UML:Association |
+ UML:Stereotype | UML:Package |
+ UML:Signal | UML:Node | UML:Component |
+ UML:Interface | UML:Class | UML:DataType |
+ UML:Subsystem | UML:ClassifierRole |
+ UML:Actor | UML:UseCase |
+ UML:ClassifierInState |
+ UML:AssociationClass | UML:Enumeration |
+ UML:Primitive | UML:Structure |
+ UML:AssociationRole | UML:Model |
+ UML:Exception | UML:StructuralFeature |
+ UML:BehavioralFeature | UML:Attribute |
+ UML:Operation | UML:Method |
+ UML:Reception | UML:Refinement |
+ UML:Usage | UML:Trace | UML:Binding |
+ UML:AssociationEndRole |
+ UML:CreateAction | UML:CallAction |
+ UML:LocalInvocation | UML:ReturnAction |
+ UML:SendAction | UML:UninterpretedAction |
+ UML:TerminateAction | UML:DestroyAction |
+ UML:LinkObject | UML:Object |
+ UML:DataValue | UML:UseCaseInstance |
+ UML:ActivityModel | UML:PseudoState |
+ UML:State | UML:CompositeState |
+ UML:SimpleState | UML:SubmachineState |
+ UML:ActionState | UML:ObjectFlowState |
+ UML:ActivityState | UML:SignalEvent |
+ UML:CallEvent | UML:TimeEvent |
+ UML:ChangeEvent)* >
+
+
+<!ELEMENT UML:ModelElement.taggedValue (UML:TaggedValue)* >
+
+
+<!ELEMENT UML:Namespace.ownedElement (UML:ModelElement | UML:Comment |
+ UML:Namespace |
+ UML:GeneralizableElement |
+ UML:Feature | UML:Parameter |
+ UML:Constraint | UML:Dependency |
+ UML:Generalization |
+ UML:AssociationEnd | UML:Request |
+ UML:ActionSequence | UML:Action |
+ UML:Link | UML:LinkEnd |
+ UML:Instance | UML:AttributeLink |
+ UML:MessageInstance |
+ UML:Interaction | UML:Message |
+ UML:StateMachine | UML:Guard |
+ UML:StateVertex | UML:Transition |
+ UML:Event | UML:Partition |
+ UML:Collaboration | UML:Classifier |
+ UML:Association | UML:Stereotype |
+ UML:Package | UML:Signal |
+ UML:Node | UML:Component |
+ UML:Interface | UML:Class |
+ UML:DataType | UML:Subsystem |
+ UML:ClassifierRole | UML:Actor |
+ UML:UseCase |
+ UML:ClassifierInState |
+ UML:AssociationClass |
+ UML:Enumeration | UML:Primitive |
+ UML:Structure |
+ UML:AssociationRole | UML:Model |
+ UML:Exception |
+ UML:StructuralFeature |
+ UML:BehavioralFeature |
+ UML:Attribute | UML:Operation |
+ UML:Method | UML:Reception |
+ UML:Refinement | UML:Usage |
+ UML:Trace | UML:Binding |
+ UML:AssociationEndRole |
+ UML:CreateAction | UML:CallAction |
+ UML:LocalInvocation |
+ UML:ReturnAction | UML:SendAction |
+ UML:UninterpretedAction |
+ UML:TerminateAction |
+ UML:DestroyAction | UML:LinkObject |
+ UML:Object | UML:DataValue |
+ UML:UseCaseInstance |
+ UML:ActivityModel |
+ UML:PseudoState | UML:State |
+ UML:CompositeState |
+ UML:SimpleState |
+ UML:SubmachineState |
+ UML:ActionState |
+ UML:ObjectFlowState |
+ UML:ActivityState |
+ UML:SignalEvent | UML:CallEvent |
+ UML:TimeEvent | UML:ChangeEvent)* >
+
+
+<!ELEMENT UML:Classifier.feature (UML:Feature | UML:StructuralFeature |
+ UML:BehavioralFeature | UML:Attribute |
+ UML:Operation | UML:Method |
+ UML:Reception)* >
+
+
+<!ELEMENT UML:BehavioralFeature.parameter (UML:Parameter)* >
+
+
+<!ELEMENT UML:Dependency.subDependencies (UML:Dependency |
+ UML:Refinement | UML:Usage |
+ UML:Trace | UML:Binding)* >
+
+
+<!ELEMENT UML:AssociationEnd.qualifier (UML:Attribute)* >
+
+
+<!ELEMENT UML:Association.connection (UML:AssociationEnd |
+ UML:AssociationEndRole)* >
+
+
+<!ELEMENT UML:Stereotype.requiredTag (UML:TaggedValue)* >
+
+
+<!ELEMENT UML:Enumeration.literal (UML:EnumerationLiteral)* >
+
+
+<!ELEMENT UML:Signal.parameter (UML:Parameter)* >
+
+
+<!ELEMENT UML:ActionSequence.action (UML:Action | UML:CreateAction |
+ UML:CallAction |
+ UML:LocalInvocation |
+ UML:ReturnAction | UML:SendAction |
+ UML:UninterpretedAction |
+ UML:TerminateAction |
+ UML:DestroyAction)* >
+
+
+<!ELEMENT UML:Action.actualArgument (UML:Argument)* >
+
+
+<!ELEMENT UML:Link.linkRole (UML:LinkEnd)* >
+
+
+<!ELEMENT UML:Instance.slot (UML:AttributeLink)* >
+
+
+<!ELEMENT UML:Collaboration.interaction (UML:Interaction)* >
+
+
+<!ELEMENT UML:Interaction.message (UML:Message)* >
+
+
+<!ELEMENT UML:StateMachine.top (UML:State | UML:CompositeState |
+ UML:SimpleState | UML:SubmachineState |
+ UML:ActionState | UML:ObjectFlowState |
+ UML:ActivityState)* >
+
+<!ELEMENT UML:StateMachine.transitions (UML:Transition)* >
+
+
+<!ELEMENT UML:Transition.guard (UML:Guard)* >
+
+<!ELEMENT UML:Transition.effect (UML:ActionSequence)* >
+
+
+<!ELEMENT UML:State.internalTransition (UML:Transition)* >
+
+<!ELEMENT UML:State.entry (UML:ActionSequence)* >
+
+<!ELEMENT UML:State.exit (UML:ActionSequence)* >
+
+
+<!ELEMENT UML:CompositeState.substate (UML:StateVertex |
+ UML:PseudoState | UML:State |
+ UML:CompositeState |
+ UML:SimpleState |
+ UML:SubmachineState |
+ UML:ActionState |
+ UML:ObjectFlowState |
+ UML:ActivityState)* >
+
+
+<!ELEMENT UML:ActivityModel.partition (UML:Partition)* >
+
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Refinement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Refinement.mapping (UML:Mapping) >
+
+<!ELEMENT UML:Refinement (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description |
+ UML:Refinement.mapping | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client |
+ UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Refinement
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Usage -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Usage (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client | UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Usage
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Trace -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Trace (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client | UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Trace
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Binding -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Binding (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client | UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies |
+ UML:Binding.argument)* >
+<!ATTLIST UML:Binding
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Node -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Node.component (UML:Component)* >
+
+<!ELEMENT UML:Node (UML:ModelElement.name | UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract | XMI.extension |
+ UML:ModelElement.binding | UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Node.component | UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Node
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ component IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Component -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Component.deployment (UML:Node)* >
+
+<!ELEMENT UML:Component.implements (UML:ModelElement)* >
+
+<!ELEMENT UML:Component (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Component.deployment |
+ UML:Component.implements |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Component
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ deployment IDREFS #IMPLIED
+ implements IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Comment -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Comment (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Comment
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.ViewElement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ViewElement.model (UML:ModelElement)* >
+
+<!ELEMENT UML:ViewElement.presentation (UML:Presentation)* >
+
+<!ELEMENT UML:ViewElement (XMI.extension | UML:ViewElement.model |
+ UML:ViewElement.presentation)* >
+<!ATTLIST UML:ViewElement
+ model IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Auxiliary_Elements.Presentation -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Presentation.geometry (UML:Geometry) >
+
+<!ELEMENT UML:Presentation.style (UML:GraphicMarker) >
+
+<!ELEMENT UML:Presentation.model (UML:ModelElement)* >
+
+<!ELEMENT UML:Presentation.viewElement (UML:ViewElement)* >
+
+<!ELEMENT UML:Presentation (UML:Presentation.geometry |
+ UML:Presentation.style | XMI.extension |
+ UML:Presentation.model |
+ UML:Presentation.viewElement)* >
+<!ATTLIST UML:Presentation
+ model IDREFS #IMPLIED
+ viewElement IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Element -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Element (XMI.extension)* >
+<!ATTLIST UML:Element
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.ModelElement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ModelElement.name (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:ModelElement.visibility EMPTY >
+<!ATTLIST UML:ModelElement.visibility
+ xmi.value (public | protected | private) #REQUIRED
+>
+
+<!ELEMENT UML:ModelElement.binding (UML:Binding)* >
+
+<!ELEMENT UML:ModelElement.template (UML:ModelElement)* >
+
+<!ELEMENT UML:ModelElement.templateParameter (UML:ModelElement)* >
+
+<!ELEMENT UML:ModelElement.implementation (UML:Component)* >
+
+<!ELEMENT UML:ModelElement.view (UML:ViewElement)* >
+
+<!ELEMENT UML:ModelElement.presentation (UML:Presentation)* >
+
+<!ELEMENT UML:ModelElement.namespace (UML:Namespace)* >
+
+<!ELEMENT UML:ModelElement.constraint (UML:Constraint)* >
+
+<!ELEMENT UML:ModelElement.requirement (UML:Dependency)* >
+
+<!ELEMENT UML:ModelElement.provision (UML:Dependency)* >
+
+<!ELEMENT UML:ModelElement.stereotype (UML:Stereotype)* >
+
+<!ELEMENT UML:ModelElement.elementReference (UML:ElementReference)* >
+
+<!ELEMENT UML:ModelElement.collaboration (UML:Collaboration)* >
+
+<!ELEMENT UML:ModelElement.behavior (UML:StateMachine)* >
+
+<!ELEMENT UML:ModelElement.partition (UML:Partition)* >
+
+<!ELEMENT UML:ModelElement (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:ModelElement
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Namespace -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Namespace (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:Namespace
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.GeneralizableElement -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:GeneralizableElement.isRoot EMPTY >
+<!ATTLIST UML:GeneralizableElement.isRoot
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:GeneralizableElement.isLeaf EMPTY >
+<!ATTLIST UML:GeneralizableElement.isLeaf
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:GeneralizableElement.isAbstract EMPTY >
+<!ATTLIST UML:GeneralizableElement.isAbstract
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:GeneralizableElement.generalization
+ (UML:Generalization)* >
+
+<!ELEMENT UML:GeneralizableElement.specialization
+ (UML:Generalization)* >
+
+<!ELEMENT UML:GeneralizableElement (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:GeneralizableElement
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Classifier -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Classifier.parameter (UML:Parameter)* >
+
+<!ELEMENT UML:Classifier.structuralFeature (UML:StructuralFeature)* >
+
+<!ELEMENT UML:Classifier.specification (UML:Classifier)* >
+
+<!ELEMENT UML:Classifier.realization (UML:Classifier)* >
+
+<!ELEMENT UML:Classifier.associationEnd (UML:AssociationEnd)* >
+
+<!ELEMENT UML:Classifier.participant (UML:AssociationEnd)* >
+
+<!ELEMENT UML:Classifier.createAction (UML:CreateAction)* >
+
+<!ELEMENT UML:Classifier.instance (UML:Instance)* >
+
+<!ELEMENT UML:Classifier.collaboration (UML:Collaboration)* >
+
+<!ELEMENT UML:Classifier.classifierRole (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Classifier.classifierInState (UML:ClassifierInState)* >
+
+<!ELEMENT UML:Classifier (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Classifier
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Interface -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Interface (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Interface
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Class -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Class.isActive EMPTY >
+<!ATTLIST UML:Class.isActive
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Class (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Class.isActive | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Class
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ isActive (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.DataType -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:DataType (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:DataType
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Feature -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Feature.ownerScope EMPTY >
+<!ATTLIST UML:Feature.ownerScope
+ xmi.value (classifier | instance) #REQUIRED
+>
+
+<!ELEMENT UML:Feature.owner (UML:Classifier)* >
+
+<!ELEMENT UML:Feature.classifierRole (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Feature (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Feature
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.StructuralFeature -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:StructuralFeature.multiplicity (#PCDATA |
+ XMI.reference)* >
+
+<!ELEMENT UML:StructuralFeature.changeable EMPTY >
+<!ATTLIST UML:StructuralFeature.changeable
+ xmi.value (none | frozen | addOnly) #REQUIRED
+>
+
+<!ELEMENT UML:StructuralFeature.targetScope EMPTY >
+<!ATTLIST UML:StructuralFeature.targetScope
+ xmi.value (classifier | instance) #REQUIRED
+>
+
+<!ELEMENT UML:StructuralFeature.type (UML:Classifier)* >
+
+<!ELEMENT UML:StructuralFeature (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:StructuralFeature.multiplicity |
+ UML:StructuralFeature.changeable |
+ UML:StructuralFeature.targetScope |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:StructuralFeature.type |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:StructuralFeature
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.BehavioralFeature -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:BehavioralFeature.isQuery EMPTY >
+<!ATTLIST UML:BehavioralFeature.isQuery
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:BehavioralFeature.raisedException (UML:Exception)* >
+
+<!ELEMENT UML:BehavioralFeature (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:BehavioralFeature
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Operation -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Operation.specification (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Operation.isPolymorphic EMPTY >
+<!ATTLIST UML:Operation.isPolymorphic
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Operation.concurrency EMPTY >
+<!ATTLIST UML:Operation.concurrency
+ xmi.value (sequential | guarded | concurrent) #REQUIRED
+>
+
+<!ELEMENT UML:Operation.method (UML:Method)* >
+
+<!ELEMENT UML:Operation.collaboration (UML:Collaboration)* >
+
+<!ELEMENT UML:Operation.occurrence (UML:CallEvent)* >
+
+<!ELEMENT UML:Operation (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery |
+ UML:Operation.specification |
+ UML:Operation.isPolymorphic |
+ UML:Operation.concurrency | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:Request.action |
+ UML:Request.messageInstance |
+ UML:Operation.method |
+ UML:Operation.collaboration |
+ UML:Operation.occurrence |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:Operation
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ specification CDATA #IMPLIED
+ isPolymorphic (false | true) #IMPLIED
+ concurrency (sequential | guarded | concurrent) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ method IDREFS #IMPLIED
+ Operation.collaboration IDREFS #IMPLIED
+ occurrence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Method -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Method.body (UML:ProcedureExpression) >
+
+<!ELEMENT UML:Method.specification (UML:Operation)* >
+
+<!ELEMENT UML:Method (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery | UML:Method.body |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:Method.specification |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:Method
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Parameter -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Parameter.defaultValue (UML:Expression |
+ UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Parameter.kind EMPTY >
+<!ATTLIST UML:Parameter.kind
+ xmi.value (in | inout | out | return) #REQUIRED
+>
+
+<!ELEMENT UML:Parameter.behavioralFeature (UML:BehavioralFeature)* >
+
+<!ELEMENT UML:Parameter.type (UML:Classifier)* >
+
+<!ELEMENT UML:Parameter.signal (UML:Signal)* >
+
+<!ELEMENT UML:Parameter (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Parameter.defaultValue | UML:Parameter.kind |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Parameter.behavioralFeature |
+ UML:Parameter.type | UML:Parameter.signal |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Parameter
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ kind (in | inout | out | return) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ behavioralFeature IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ signal IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Constraint -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Constraint.body (UML:BooleanExpression) >
+
+<!ELEMENT UML:Constraint.constrainedElement (UML:ModelElement)* >
+
+<!ELEMENT UML:Constraint.constrainedStereotype (UML:Stereotype)* >
+
+<!ELEMENT UML:Constraint (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Constraint.body | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Constraint.constrainedElement |
+ UML:Constraint.constrainedStereotype |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Constraint
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ constrainedElement IDREFS #IMPLIED
+ constrainedStereotype IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Dependency -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Dependency.description (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Dependency.owningDependency (UML:Dependency)* >
+
+<!ELEMENT UML:Dependency.client (UML:ModelElement)* >
+
+<!ELEMENT UML:Dependency.supplier (UML:ModelElement)* >
+
+<!ELEMENT UML:Dependency (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Dependency.description | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Dependency.owningDependency |
+ UML:Dependency.client |
+ UML:Dependency.supplier |
+ UML:ModelElement.taggedValue |
+ UML:Dependency.subDependencies)* >
+<!ATTLIST UML:Dependency
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ description CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owningDependency IDREFS #IMPLIED
+ client IDREFS #IMPLIED
+ supplier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Generalization -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Generalization.discriminator (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Generalization.subtype (UML:GeneralizableElement)* >
+
+<!ELEMENT UML:Generalization.supertype (UML:GeneralizableElement)* >
+
+<!ELEMENT UML:Generalization (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Generalization.discriminator |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Generalization.subtype |
+ UML:Generalization.supertype |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Generalization
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ discriminator CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ subtype IDREFS #IMPLIED
+ supertype IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.AssociationEnd -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationEnd.isNavigable EMPTY >
+<!ATTLIST UML:AssociationEnd.isNavigable
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.isOrdered EMPTY >
+<!ATTLIST UML:AssociationEnd.isOrdered
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.aggregation EMPTY >
+<!ATTLIST UML:AssociationEnd.aggregation
+ xmi.value (none | shared | composite) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.multiplicity (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:AssociationEnd.changeable EMPTY >
+<!ATTLIST UML:AssociationEnd.changeable
+ xmi.value (none | frozen | addOnly) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.targetScope EMPTY >
+<!ATTLIST UML:AssociationEnd.targetScope
+ xmi.value (classifier | instance) #REQUIRED
+>
+
+<!ELEMENT UML:AssociationEnd.type (UML:Classifier)* >
+
+<!ELEMENT UML:AssociationEnd.specification (UML:Classifier)* >
+
+<!ELEMENT UML:AssociationEnd.association (UML:Association)* >
+
+<!ELEMENT UML:AssociationEnd.linkEnd (UML:LinkEnd)* >
+
+<!ELEMENT UML:AssociationEnd.associationEndRole
+ (UML:AssociationEndRole)* >
+
+<!ELEMENT UML:AssociationEnd (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:AssociationEnd.isNavigable |
+ UML:AssociationEnd.isOrdered |
+ UML:AssociationEnd.aggregation |
+ UML:AssociationEnd.multiplicity |
+ UML:AssociationEnd.changeable |
+ UML:AssociationEnd.targetScope |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:AssociationEnd.type |
+ UML:AssociationEnd.specification |
+ UML:AssociationEnd.association |
+ UML:AssociationEnd.linkEnd |
+ UML:AssociationEnd.associationEndRole |
+ UML:ModelElement.taggedValue |
+ UML:AssociationEnd.qualifier)* >
+<!ATTLIST UML:AssociationEnd
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isNavigable (false | true) #IMPLIED
+ isOrdered (false | true) #IMPLIED
+ aggregation (none | shared | composite) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ associationEndRole IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Association -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Association.link (UML:Link)* >
+
+<!ELEMENT UML:Association.associationEnd (UML:AssociationRole)* >
+
+<!ELEMENT UML:Association (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Association.link |
+ UML:Association.associationEnd |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Association.connection)* >
+<!ATTLIST UML:Association
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.AssociationClass -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationClass (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Class.isActive | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Association.link |
+ UML:Association.associationEnd |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature |
+ UML:Association.connection)* >
+<!ATTLIST UML:AssociationClass
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ isActive (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ Classifier.associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ Association.associationEnd IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Core.Attribute -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Attribute.initialValue (UML:Expression |
+ UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Attribute.associationEnd (UML:AssociationEnd)* >
+
+<!ELEMENT UML:Attribute.attributeLink (UML:AttributeLink)* >
+
+<!ELEMENT UML:Attribute (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:StructuralFeature.multiplicity |
+ UML:StructuralFeature.changeable |
+ UML:StructuralFeature.targetScope |
+ UML:Attribute.initialValue | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:StructuralFeature.type |
+ UML:Attribute.associationEnd |
+ UML:Attribute.attributeLink |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Attribute
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Extension_Mechanisms.TaggedValue -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TaggedValue.tag (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:TaggedValue.value (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:TaggedValue.modelElement (UML:ModelElement)* >
+
+<!ELEMENT UML:TaggedValue.stereotype (UML:Stereotype)* >
+
+<!ELEMENT UML:TaggedValue (UML:TaggedValue.tag | UML:TaggedValue.value |
+ XMI.extension | UML:TaggedValue.modelElement |
+ UML:TaggedValue.stereotype)* >
+<!ATTLIST UML:TaggedValue
+ tag CDATA #IMPLIED
+ value CDATA #IMPLIED
+ modelElement IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Extension_Mechanisms.Stereotype -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Stereotype.icon (UML:Geometry) >
+
+<!ELEMENT UML:Stereotype.baseClass (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Stereotype.extendedElement (UML:ModelElement)* >
+
+<!ELEMENT UML:Stereotype.stereotypeConstraint (UML:Constraint)* >
+
+<!ELEMENT UML:Stereotype (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Stereotype.icon | UML:Stereotype.baseClass |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Stereotype.extendedElement |
+ UML:Stereotype.stereotypeConstraint |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Stereotype.requiredTag)* >
+<!ATTLIST UML:Stereotype
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ baseClass CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ extendedElement IDREFS #IMPLIED
+ stereotypeConstraint IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Enumeration -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Enumeration (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature |
+ UML:Enumeration.literal)* >
+<!ATTLIST UML:Enumeration
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.EnumerationLiteral -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:EnumerationLiteral.name (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:EnumerationLiteral.enumeration (UML:Enumeration)* >
+
+<!ELEMENT UML:EnumerationLiteral (UML:EnumerationLiteral.name |
+ XMI.extension |
+ UML:EnumerationLiteral.enumeration)* >
+<!ATTLIST UML:EnumerationLiteral
+ name CDATA #IMPLIED
+ enumeration IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Primitive -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Primitive (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Primitive
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Structure -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Structure (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Structure
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.MultiplicityRange -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:MultiplicityRange.lower (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:MultiplicityRange.upper (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:MultiplicityRange (UML:MultiplicityRange.lower |
+ UML:MultiplicityRange.upper |
+ XMI.extension)* >
+<!ATTLIST UML:MultiplicityRange
+ lower CDATA #IMPLIED
+ upper CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Geometry -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Geometry.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Geometry (UML:Geometry.body | XMI.extension)* >
+<!ATTLIST UML:Geometry
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.GraphicMarker -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:GraphicMarker.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:GraphicMarker (UML:GraphicMarker.body | XMI.extension)* >
+<!ATTLIST UML:GraphicMarker
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Mapping -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Mapping.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Mapping (UML:Mapping.body | XMI.extension)* >
+<!ATTLIST UML:Mapping
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.Expression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Expression.language (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Expression.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Expression (UML:Expression.language | UML:Expression.body |
+ XMI.extension)* >
+<!ATTLIST UML:Expression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.ProcedureExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ProcedureExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:ProcedureExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.ObjectSetExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ObjectSetExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:ObjectSetExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.TimeExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TimeExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:TimeExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Foundation.Data_Types.BooleanExpression -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:BooleanExpression (UML:Expression.language |
+ UML:Expression.body | XMI.extension)* >
+<!ATTLIST UML:BooleanExpression
+ language CDATA #IMPLIED
+ body CDATA #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.Package -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Package.elementReference (UML:ElementReference)* >
+
+<!ELEMENT UML:Package (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Package.elementReference |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:Package
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ ModelElement.elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ Package.elementReference IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.Subsystem -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Subsystem.isInstantiable EMPTY >
+<!ATTLIST UML:Subsystem.isInstantiable
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Subsystem (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:Subsystem.isInstantiable | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:Package.elementReference |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Subsystem
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ isInstantiable (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ ModelElement.elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ Package.elementReference IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.Model -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Model (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Package.elementReference |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement)* >
+<!ATTLIST UML:Model
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ ModelElement.elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ Package.elementReference IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Model_Management.ElementReference -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ElementReference.visibility EMPTY >
+<!ATTLIST UML:ElementReference.visibility
+ xmi.value (public | protected | private) #REQUIRED
+>
+
+<!ELEMENT UML:ElementReference.alias (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:ElementReference.referencedElement (UML:ModelElement)* >
+
+<!ELEMENT UML:ElementReference.package (UML:Package)* >
+
+<!ELEMENT UML:ElementReference (UML:ElementReference.visibility |
+ UML:ElementReference.alias |
+ XMI.extension |
+ UML:ElementReference.referencedElement |
+ UML:ElementReference.package)* >
+<!ATTLIST UML:ElementReference
+ visibility (public | protected | private) #IMPLIED
+ alias CDATA #IMPLIED
+ referencedElement IDREFS #IMPLIED
+ package IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Request -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Request.action (UML:Action)* >
+
+<!ELEMENT UML:Request.messageInstance (UML:MessageInstance)* >
+
+<!ELEMENT UML:Request (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Request.action |
+ UML:Request.messageInstance |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Request
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Signal -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Signal.reception (UML:Reception)* >
+
+<!ELEMENT UML:Signal.occurrence (UML:SignalEvent)* >
+
+<!ELEMENT UML:Signal (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Request.action | UML:Request.messageInstance |
+ UML:Signal.reception | UML:Signal.occurrence |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Signal.parameter)* >
+<!ATTLIST UML:Signal
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ reception IDREFS #IMPLIED
+ occurrence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Exception -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Exception.context (UML:BehavioralFeature)* >
+
+<!ELEMENT UML:Exception (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Request.action |
+ UML:Request.messageInstance |
+ UML:Signal.reception | UML:Signal.occurrence |
+ UML:Exception.context |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Signal.parameter)* >
+<!ATTLIST UML:Exception
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ reception IDREFS #IMPLIED
+ occurrence IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Reception -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Reception.isPolymorphic EMPTY >
+<!ATTLIST UML:Reception.isPolymorphic
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Reception.specification (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Reception.signal (UML:Signal)* >
+
+<!ELEMENT UML:Reception (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Feature.ownerScope |
+ UML:BehavioralFeature.isQuery |
+ UML:Reception.isPolymorphic |
+ UML:Reception.specification | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Feature.owner |
+ UML:Feature.classifierRole |
+ UML:BehavioralFeature.raisedException |
+ UML:Reception.signal |
+ UML:ModelElement.taggedValue |
+ UML:BehavioralFeature.parameter)* >
+<!ATTLIST UML:Reception
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ ownerScope (classifier | instance) #IMPLIED
+ isQuery (false | true) #IMPLIED
+ isPolymorphic (false | true) #IMPLIED
+ specification CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ owner IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ raisedException IDREFS #IMPLIED
+ signal IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Argument -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Argument.value (UML:Expression | UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Argument.action (UML:Action)* >
+
+<!ELEMENT UML:Argument (UML:Argument.value | XMI.extension |
+ UML:Argument.action)* >
+<!ATTLIST UML:Argument
+ action IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.ActionSequence -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActionSequence.transition (UML:Transition)* >
+
+<!ELEMENT UML:ActionSequence.state (UML:State)* >
+
+<!ELEMENT UML:ActionSequence.state2 (UML:State)* >
+
+<!ELEMENT UML:ActionSequence (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:ActionSequence.transition |
+ UML:ActionSequence.state |
+ UML:ActionSequence.state2 |
+ UML:ModelElement.taggedValue |
+ UML:ActionSequence.action)* >
+<!ATTLIST UML:ActionSequence
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ state2 IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Action -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Action.recurrence (UML:Expression |
+ UML:ProcedureExpression |
+ UML:ObjectSetExpression |
+ UML:TimeExpression |
+ UML:BooleanExpression) >
+
+<!ELEMENT UML:Action.target (UML:ObjectSetExpression) >
+
+<!ELEMENT UML:Action.isAsynchronous EMPTY >
+<!ATTLIST UML:Action.isAsynchronous
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:Action.script (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:Action.request (UML:Request)* >
+
+<!ELEMENT UML:Action.message (UML:Message)* >
+
+<!ELEMENT UML:Action.actionSequence (UML:ActionSequence)* >
+
+<!ELEMENT UML:Action (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous | UML:Action.script |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Action.request |
+ UML:Action.message | UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:Action
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.CreateAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CreateAction.instantiation (UML:Classifier)* >
+
+<!ELEMENT UML:CreateAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:CreateAction.instantiation |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:CreateAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ instantiation IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.CallAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CallAction.mode EMPTY >
+<!ATTLIST UML:CallAction.mode
+ xmi.value (synchronous | asynchronous) #REQUIRED
+>
+
+<!ELEMENT UML:CallAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous | UML:Action.script |
+ UML:CallAction.mode | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:CallAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ mode (synchronous | asynchronous) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.LocalInvocation -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:LocalInvocation (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:LocalInvocation
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.ReturnAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ReturnAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:ReturnAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.SendAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SendAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous | UML:Action.script |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:SendAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.UninterpretedAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:UninterpretedAction.body (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:UninterpretedAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence |
+ UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script |
+ UML:UninterpretedAction.body |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request |
+ UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:UninterpretedAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ body CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.TerminateAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TerminateAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:TerminateAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.DestroyAction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:DestroyAction (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:Action.recurrence | UML:Action.target |
+ UML:Action.isAsynchronous |
+ UML:Action.script | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Action.request | UML:Action.message |
+ UML:Action.actionSequence |
+ UML:ModelElement.taggedValue |
+ UML:Action.actualArgument)* >
+<!ATTLIST UML:DestroyAction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isAsynchronous (false | true) #IMPLIED
+ script CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ request IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ actionSequence IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Link -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Link.association (UML:Association)* >
+
+<!ELEMENT UML:Link (UML:ModelElement.name | UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Link.association |
+ UML:ModelElement.taggedValue | UML:Link.linkRole)* >
+<!ATTLIST UML:Link
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.LinkEnd -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:LinkEnd.link (UML:Link)* >
+
+<!ELEMENT UML:LinkEnd.associationEnd (UML:AssociationEnd)* >
+
+<!ELEMENT UML:LinkEnd.instance (UML:Instance)* >
+
+<!ELEMENT UML:LinkEnd (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:LinkEnd.link |
+ UML:LinkEnd.associationEnd | UML:LinkEnd.instance |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:LinkEnd
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Instance -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Instance.linkEnd (UML:LinkEnd)* >
+
+<!ELEMENT UML:Instance.messageInstance3 (UML:MessageInstance)* >
+
+<!ELEMENT UML:Instance.messageInstance2 (UML:MessageInstance)* >
+
+<!ELEMENT UML:Instance.messageInstance (UML:MessageInstance)* >
+
+<!ELEMENT UML:Instance.attributeLink (UML:AttributeLink)* >
+
+<!ELEMENT UML:Instance.classifier (UML:Classifier)* >
+
+<!ELEMENT UML:Instance (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot)* >
+<!ATTLIST UML:Instance
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.AttributeLink -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AttributeLink.instance (UML:Instance)* >
+
+<!ELEMENT UML:AttributeLink.attribute (UML:Attribute)* >
+
+<!ELEMENT UML:AttributeLink.value (UML:Instance)* >
+
+<!ELEMENT UML:AttributeLink (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:AttributeLink.instance |
+ UML:AttributeLink.attribute |
+ UML:AttributeLink.value |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:AttributeLink
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ attribute IDREFS #IMPLIED
+ value IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.Object -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Object (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue | UML:Instance.slot)* >
+<!ATTLIST UML:Object
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.DataValue -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:DataValue (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot)* >
+<!ATTLIST UML:DataValue
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.LinkObject -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:LinkObject (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier | UML:Link.association |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot | UML:Link.linkRole)* >
+<!ATTLIST UML:LinkObject
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Common_Behavior.MessageInstance -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:MessageInstance.specification (UML:Request)* >
+
+<!ELEMENT UML:MessageInstance.sender (UML:Instance)* >
+
+<!ELEMENT UML:MessageInstance.receiver (UML:Instance)* >
+
+<!ELEMENT UML:MessageInstance.argument (UML:Instance)* >
+
+<!ELEMENT UML:MessageInstance (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:MessageInstance.specification |
+ UML:MessageInstance.sender |
+ UML:MessageInstance.receiver |
+ UML:MessageInstance.argument |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:MessageInstance
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ sender IDREFS #IMPLIED
+ receiver IDREFS #IMPLIED
+ argument IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.Collaboration -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Collaboration.representedClassifier (UML:Classifier)* >
+
+<!ELEMENT UML:Collaboration.representedOperation (UML:Operation)* >
+
+<!ELEMENT UML:Collaboration.constrainingElement (UML:ModelElement)* >
+
+<!ELEMENT UML:Collaboration (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Collaboration.representedClassifier |
+ UML:Collaboration.representedOperation |
+ UML:Collaboration.constrainingElement |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Collaboration.interaction)* >
+<!ATTLIST UML:Collaboration
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ representedClassifier IDREFS #IMPLIED
+ representedOperation IDREFS #IMPLIED
+ constrainingElement IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.Interaction -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Interaction.context (UML:Collaboration)* >
+
+<!ELEMENT UML:Interaction (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Interaction.context |
+ UML:ModelElement.taggedValue |
+ UML:Interaction.message)* >
+<!ATTLIST UML:Interaction
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.AssociationRole -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationRole.multiplicity (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:AssociationRole.base (UML:Association)* >
+
+<!ELEMENT UML:AssociationRole.namespace (UML:Collaboration)* >
+
+<!ELEMENT UML:AssociationRole (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:AssociationRole.multiplicity |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Association.link |
+ UML:Association.associationEnd |
+ UML:AssociationRole.base |
+ UML:AssociationRole.namespace |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Association.connection)* >
+<!ATTLIST UML:AssociationRole
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ ModelElement.namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ link IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ base IDREFS #IMPLIED
+ AssociationRole.namespace IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.AssociationEndRole -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:AssociationEndRole.associationRole
+ (UML:AssociationRole)* >
+
+<!ELEMENT UML:AssociationEndRole.base (UML:AssociationEnd)* >
+
+<!ELEMENT UML:AssociationEndRole (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:AssociationEnd.isNavigable |
+ UML:AssociationEnd.isOrdered |
+ UML:AssociationEnd.aggregation |
+ UML:AssociationEnd.multiplicity |
+ UML:AssociationEnd.changeable |
+ UML:AssociationEnd.targetScope |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:AssociationEnd.type |
+ UML:AssociationEnd.specification |
+ UML:AssociationEnd.association |
+ UML:AssociationEnd.linkEnd |
+ UML:AssociationEnd.associationEndRole |
+ UML:AssociationEndRole.associationRole |
+ UML:AssociationEndRole.base |
+ UML:ModelElement.taggedValue |
+ UML:AssociationEnd.qualifier)* >
+<!ATTLIST UML:AssociationEndRole
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isNavigable (false | true) #IMPLIED
+ isOrdered (false | true) #IMPLIED
+ aggregation (none | shared | composite) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ changeable (none | frozen | addOnly) #IMPLIED
+ targetScope (classifier | instance) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ association IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ associationEndRole IDREFS #IMPLIED
+ associationRole IDREFS #IMPLIED
+ base IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.Message -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Message.interaction (UML:Interaction)* >
+
+<!ELEMENT UML:Message.predecessor (UML:Message)* >
+
+<!ELEMENT UML:Message.message2 (UML:Message)* >
+
+<!ELEMENT UML:Message.message (UML:Message)* >
+
+<!ELEMENT UML:Message.activator (UML:Message)* >
+
+<!ELEMENT UML:Message.action (UML:Action)* >
+
+<!ELEMENT UML:Message.receiver (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Message.sender (UML:ClassifierRole)* >
+
+<!ELEMENT UML:Message (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Message.interaction | UML:Message.predecessor |
+ UML:Message.message2 | UML:Message.message |
+ UML:Message.activator | UML:Message.action |
+ UML:Message.receiver | UML:Message.sender |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Message
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ interaction IDREFS #IMPLIED
+ predecessor IDREFS #IMPLIED
+ message2 IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ activator IDREFS #IMPLIED
+ action IDREFS #IMPLIED
+ receiver IDREFS #IMPLIED
+ sender IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Collaborations.ClassifierRole -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ClassifierRole.multiplicity (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:ClassifierRole.associationEndRole
+ (UML:AssociationEndRole)* >
+
+<!ELEMENT UML:ClassifierRole.namespace (UML:Collaboration)* >
+
+<!ELEMENT UML:ClassifierRole.message2 (UML:Message)* >
+
+<!ELEMENT UML:ClassifierRole.message (UML:Message)* >
+
+<!ELEMENT UML:ClassifierRole.base (UML:Classifier)* >
+
+<!ELEMENT UML:ClassifierRole.availableFeature (UML:Feature)* >
+
+<!ELEMENT UML:ClassifierRole (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:ClassifierRole.multiplicity |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ClassifierRole.associationEndRole |
+ UML:ClassifierRole.namespace |
+ UML:ClassifierRole.message2 |
+ UML:ClassifierRole.message |
+ UML:ClassifierRole.base |
+ UML:ClassifierRole.availableFeature |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:ClassifierRole
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ multiplicity CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ ModelElement.namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ associationEndRole IDREFS #IMPLIED
+ ClassifierRole.namespace IDREFS #IMPLIED
+ message2 IDREFS #IMPLIED
+ message IDREFS #IMPLIED
+ base IDREFS #IMPLIED
+ availableFeature IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Use_Cases.Actor -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Actor (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:Actor
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Use_Cases.UseCase -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:UseCase.extensionPoint (#PCDATA | XMI.reference)* >
+
+<!ELEMENT UML:UseCase (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ UML:UseCase.extensionPoint | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:UseCase
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ extensionPoint CDATA #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.Use_Cases.UseCaseInstance -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:UseCaseInstance (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Instance.linkEnd |
+ UML:Instance.messageInstance3 |
+ UML:Instance.messageInstance2 |
+ UML:Instance.messageInstance |
+ UML:Instance.attributeLink |
+ UML:Instance.classifier |
+ UML:ModelElement.taggedValue |
+ UML:Instance.slot)* >
+<!ATTLIST UML:UseCaseInstance
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ linkEnd IDREFS #IMPLIED
+ messageInstance3 IDREFS #IMPLIED
+ messageInstance2 IDREFS #IMPLIED
+ messageInstance IDREFS #IMPLIED
+ attributeLink IDREFS #IMPLIED
+ classifier IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.StateMachine -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:StateMachine.context (UML:ModelElement)* >
+
+<!ELEMENT UML:StateMachine.submachineState (UML:SubmachineState)* >
+
+<!ELEMENT UML:StateMachine (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateMachine.context |
+ UML:StateMachine.submachineState |
+ UML:ModelElement.taggedValue |
+ UML:StateMachine.top |
+ UML:StateMachine.transitions)* >
+<!ATTLIST UML:StateMachine
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ submachineState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Guard -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Guard.expression (UML:BooleanExpression) >
+
+<!ELEMENT UML:Guard.transition (UML:Transition)* >
+
+<!ELEMENT UML:Guard (UML:ModelElement.name |
+ UML:ModelElement.visibility | UML:Guard.expression |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Guard.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Guard
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.StateVertex -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:StateVertex.outgoing (UML:Transition)* >
+
+<!ELEMENT UML:StateVertex.incoming (UML:Transition)* >
+
+<!ELEMENT UML:StateVertex.parent (UML:CompositeState)* >
+
+<!ELEMENT UML:StateVertex (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:StateVertex
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Transition -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Transition.source (UML:StateVertex)* >
+
+<!ELEMENT UML:Transition.target (UML:StateVertex)* >
+
+<!ELEMENT UML:Transition.statemachine (UML:StateMachine)* >
+
+<!ELEMENT UML:Transition.state (UML:State)* >
+
+<!ELEMENT UML:Transition.trigger (UML:Event)* >
+
+<!ELEMENT UML:Transition (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Transition.source | UML:Transition.target |
+ UML:Transition.statemachine |
+ UML:Transition.state | UML:Transition.trigger |
+ UML:ModelElement.taggedValue |
+ UML:Transition.guard | UML:Transition.effect)* >
+<!ATTLIST UML:Transition
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ source IDREFS #IMPLIED
+ target IDREFS #IMPLIED
+ statemachine IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ trigger IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.PseudoState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:PseudoState.kind EMPTY >
+<!ATTLIST UML:PseudoState.kind
+ xmi.value (initial | deepHistory | shallowHistory | join | fork | branch | final) #REQUIRED
+>
+
+<!ELEMENT UML:PseudoState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:PseudoState.kind | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:PseudoState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ kind (initial | deepHistory | shallowHistory | join | fork | branch | final) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.State -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:State.stateMachine (UML:StateMachine)* >
+
+<!ELEMENT UML:State.deferredEvent (UML:Event)* >
+
+<!ELEMENT UML:State.classifierInState (UML:ClassifierInState)* >
+
+<!ELEMENT UML:State (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing | UML:StateVertex.incoming |
+ UML:StateVertex.parent | UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition | UML:State.entry |
+ UML:State.exit)* >
+<!ATTLIST UML:State
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.CompositeState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CompositeState.isConcurrent EMPTY >
+<!ATTLIST UML:CompositeState.isConcurrent
+ xmi.value (false | true) #REQUIRED
+>
+
+<!ELEMENT UML:CompositeState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:CompositeState.isConcurrent |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit |
+ UML:CompositeState.substate)* >
+<!ATTLIST UML:CompositeState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isConcurrent (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.SimpleState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SimpleState (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:SimpleState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.SubmachineState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SubmachineState.stateMachine (UML:StateMachine)* >
+
+<!ELEMENT UML:SubmachineState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:SubmachineState.stateMachine |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:SubmachineState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ State.stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ SubmachineState.stateMachine IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Event -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Event.state (UML:State)* >
+
+<!ELEMENT UML:Event.transition (UML:Transition)* >
+
+<!ELEMENT UML:Event (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Event
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.SignalEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:SignalEvent.signal (UML:Signal)* >
+
+<!ELEMENT UML:SignalEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition | UML:SignalEvent.signal |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:SignalEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ signal IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.CallEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:CallEvent.operation (UML:Operation)* >
+
+<!ELEMENT UML:CallEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition | UML:CallEvent.operation |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:CallEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ operation IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.TimeEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:TimeEvent.duration (UML:TimeExpression) >
+
+<!ELEMENT UML:TimeEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:TimeEvent.duration | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:TimeEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ChangeEvent -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ChangeEvent.changeExpression (UML:BooleanExpression) >
+
+<!ELEMENT UML:ChangeEvent (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:ChangeEvent.changeExpression |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition | UML:Event.state |
+ UML:Event.transition |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:ChangeEvent
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ state IDREFS #IMPLIED
+ transition IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ActivityModel -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActivityModel (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateMachine.context |
+ UML:StateMachine.submachineState |
+ UML:ModelElement.taggedValue |
+ UML:StateMachine.top |
+ UML:StateMachine.transitions |
+ UML:ActivityModel.partition)* >
+<!ATTLIST UML:ActivityModel
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ context IDREFS #IMPLIED
+ submachineState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.Partition -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:Partition.contents (UML:ModelElement)* >
+
+<!ELEMENT UML:Partition.activityModel (UML:ActivityModel)* >
+
+<!ELEMENT UML:Partition (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:Partition.contents |
+ UML:Partition.activityModel |
+ UML:ModelElement.taggedValue)* >
+<!ATTLIST UML:Partition
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ contents IDREFS #IMPLIED
+ activityModel IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ActionState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActionState (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:ActionState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ObjectFlowState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ObjectFlowState.typeState (UML:ClassifierInState)* >
+
+<!ELEMENT UML:ObjectFlowState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ XMI.extension | UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:ObjectFlowState.typeState |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:ObjectFlowState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ typeState IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ClassifierInState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ClassifierInState.objectFlowState (UML:ObjectFlowState)* >
+
+<!ELEMENT UML:ClassifierInState.inState (UML:State)* >
+
+<!ELEMENT UML:ClassifierInState.type (UML:Classifier)* >
+
+<!ELEMENT UML:ClassifierInState (UML:ModelElement.name |
+ UML:ModelElement.visibility |
+ UML:GeneralizableElement.isRoot |
+ UML:GeneralizableElement.isLeaf |
+ UML:GeneralizableElement.isAbstract |
+ XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:GeneralizableElement.generalization |
+ UML:GeneralizableElement.specialization |
+ UML:Classifier.parameter |
+ UML:Classifier.structuralFeature |
+ UML:Classifier.specification |
+ UML:Classifier.realization |
+ UML:Classifier.associationEnd |
+ UML:Classifier.participant |
+ UML:Classifier.createAction |
+ UML:Classifier.instance |
+ UML:Classifier.collaboration |
+ UML:Classifier.classifierRole |
+ UML:Classifier.classifierInState |
+ UML:ClassifierInState.objectFlowState |
+ UML:ClassifierInState.inState |
+ UML:ClassifierInState.type |
+ UML:ModelElement.taggedValue |
+ UML:Namespace.ownedElement |
+ UML:Classifier.feature)* >
+<!ATTLIST UML:ClassifierInState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ isRoot (false | true) #IMPLIED
+ isLeaf (false | true) #IMPLIED
+ isAbstract (false | true) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ ModelElement.collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ generalization IDREFS #IMPLIED
+ specialization IDREFS #IMPLIED
+ parameter IDREFS #IMPLIED
+ structuralFeature IDREFS #IMPLIED
+ specification IDREFS #IMPLIED
+ realization IDREFS #IMPLIED
+ associationEnd IDREFS #IMPLIED
+ participant IDREFS #IMPLIED
+ createAction IDREFS #IMPLIED
+ instance IDREFS #IMPLIED
+ Classifier.collaboration IDREFS #IMPLIED
+ classifierRole IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ objectFlowState IDREFS #IMPLIED
+ inState IDREFS #IMPLIED
+ type IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!-- _______________________________________________________________ -->
+<!-- -->
+<!-- CLASS: Behavioral_Elements.State_Machines.ActivityState -->
+<!-- _______________________________________________________________ -->
+
+<!ELEMENT UML:ActivityState (UML:ModelElement.name |
+ UML:ModelElement.visibility | XMI.extension |
+ UML:ModelElement.binding |
+ UML:ModelElement.template |
+ UML:ModelElement.templateParameter |
+ UML:ModelElement.implementation |
+ UML:ModelElement.view |
+ UML:ModelElement.presentation |
+ UML:ModelElement.namespace |
+ UML:ModelElement.constraint |
+ UML:ModelElement.requirement |
+ UML:ModelElement.provision |
+ UML:ModelElement.stereotype |
+ UML:ModelElement.elementReference |
+ UML:ModelElement.collaboration |
+ UML:ModelElement.behavior |
+ UML:ModelElement.partition |
+ UML:StateVertex.outgoing |
+ UML:StateVertex.incoming |
+ UML:StateVertex.parent |
+ UML:State.stateMachine |
+ UML:State.deferredEvent |
+ UML:State.classifierInState |
+ UML:SubmachineState.stateMachine |
+ UML:ModelElement.taggedValue |
+ UML:State.internalTransition |
+ UML:State.entry | UML:State.exit)* >
+<!ATTLIST UML:ActivityState
+ name CDATA #IMPLIED
+ visibility (public | protected | private) #IMPLIED
+ binding IDREFS #IMPLIED
+ template IDREFS #IMPLIED
+ templateParameter IDREFS #IMPLIED
+ implementation IDREFS #IMPLIED
+ view IDREFS #IMPLIED
+ presentation IDREFS #IMPLIED
+ namespace IDREFS #IMPLIED
+ constraint IDREFS #IMPLIED
+ requirement IDREFS #IMPLIED
+ provision IDREFS #IMPLIED
+ stereotype IDREFS #IMPLIED
+ elementReference IDREFS #IMPLIED
+ collaboration IDREFS #IMPLIED
+ behavior IDREFS #IMPLIED
+ partition IDREFS #IMPLIED
+ outgoing IDREFS #IMPLIED
+ incoming IDREFS #IMPLIED
+ parent IDREFS #IMPLIED
+ State.stateMachine IDREFS #IMPLIED
+ deferredEvent IDREFS #IMPLIED
+ classifierInState IDREFS #IMPLIED
+ SubmachineState.stateMachine IDREFS #IMPLIED
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Foundation (UML:Auxiliary_Elements | UML:Core |
+ UML:Extension_Mechanisms | UML:Data_Types)* >
+<!ATTLIST UML:Foundation
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Auxiliary_Elements (UML:Refinement | UML:Usage |
+ UML:Trace | UML:Binding | UML:Node |
+ UML:Component | UML:Comment |
+ UML:ViewElement | UML:Presentation)* >
+<!ATTLIST UML:Auxiliary_Elements
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Core (UML:Element | UML:ModelElement | UML:Namespace |
+ UML:GeneralizableElement | UML:Classifier |
+ UML:Interface | UML:Class | UML:DataType |
+ UML:Feature | UML:StructuralFeature |
+ UML:BehavioralFeature | UML:Operation | UML:Method |
+ UML:Parameter | UML:Constraint | UML:Dependency |
+ UML:Generalization | UML:AssociationEnd |
+ UML:Association | UML:AssociationClass |
+ UML:Attribute)* >
+<!ATTLIST UML:Core
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Extension_Mechanisms (UML:TaggedValue | UML:Stereotype)* >
+<!ATTLIST UML:Extension_Mechanisms
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Data_Types (UML:Enumeration | UML:EnumerationLiteral |
+ UML:Primitive | UML:Structure |
+ UML:MultiplicityRange | UML:Geometry |
+ UML:GraphicMarker | UML:Mapping |
+ UML:Expression | UML:ProcedureExpression |
+ UML:ObjectSetExpression | UML:TimeExpression |
+ UML:BooleanExpression)* >
+<!ATTLIST UML:Data_Types
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Model_Management (UML:Package | UML:Subsystem | UML:Model |
+ UML:ElementReference)* >
+<!ATTLIST UML:Model_Management
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Behavioral_Elements (UML:Common_Behavior |
+ UML:Collaborations | UML:Use_Cases |
+ UML:State_Machines)* >
+<!ATTLIST UML:Behavioral_Elements
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Common_Behavior (UML:Request | UML:Signal | UML:Exception |
+ UML:Reception | UML:Argument |
+ UML:ActionSequence | UML:Action |
+ UML:CreateAction | UML:CallAction |
+ UML:LocalInvocation | UML:ReturnAction |
+ UML:SendAction | UML:UninterpretedAction |
+ UML:TerminateAction | UML:DestroyAction |
+ UML:Link | UML:LinkEnd | UML:Instance |
+ UML:AttributeLink | UML:Object |
+ UML:DataValue | UML:LinkObject |
+ UML:MessageInstance)* >
+<!ATTLIST UML:Common_Behavior
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Collaborations (UML:Collaboration | UML:Interaction |
+ UML:AssociationRole |
+ UML:AssociationEndRole | UML:Message |
+ UML:ClassifierRole)* >
+<!ATTLIST UML:Collaborations
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:Use_Cases (UML:Actor | UML:UseCase |
+ UML:UseCaseInstance)* >
+<!ATTLIST UML:Use_Cases
+ %XMI.element.att;
+ %XMI.link.att;
+>
+
+<!ELEMENT UML:State_Machines (UML:StateMachine | UML:Guard |
+ UML:StateVertex | UML:Transition |
+ UML:PseudoState | UML:State |
+ UML:CompositeState | UML:SimpleState |
+ UML:SubmachineState | UML:Event |
+ UML:SignalEvent | UML:CallEvent |
+ UML:TimeEvent | UML:ChangeEvent |
+ UML:ActivityModel | UML:Partition |
+ UML:ActionState | UML:ObjectFlowState |
+ UML:ClassifierInState |
+ UML:ActivityState)* >
+<!ATTLIST UML:State_Machines
+ %XMI.element.att;
+ %XMI.link.att;
+>
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl
new file mode 100755
index 00000000000..e619e3616cd
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/run_test.pl
@@ -0,0 +1,56 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+$status = 0;
+
+my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+
+my $idl = "test.idl";
+my $dtd = "../XMI.dtd";
+my $xmi = "generated.xmi";
+my $target_idl = $target->LocalFile ($idl);
+my $target_dtd = $target->LocalFile ($dtd);
+my $target_xmi = $target->LocalFile ($xmi);
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi",
+ "-f -xd $target_dtd -of $target_xmi $target_idl");
+
+$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
+
+if ($target_status != 0) {
+ print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n";
+ exit 1;
+}
+
+if ($target->GetFile ($xmi) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$xmi>\n";
+ exit 1;
+}
+
+# search for right tag in generated xmi
+open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!");
+@data=<DAT>;
+close (DAT);
+
+$num = grep (/<UML:Attribute/, @data);
+if ($num == 6) {
+ print "TEST OK. Correct tags in there.\n";
+} else {
+ print STDERR "ERROR: generated XMI does not contain a brace of UML:Attribute tags !\n\nXMI is:\n\n";
+ print "@data\n\n";
+ $status = 1;
+}
+
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+exit $status;
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl
new file mode 100644
index 00000000000..548c7aa2073
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Array/test.idl
@@ -0,0 +1,20 @@
+// $Id$
+
+#ifndef TEST_IDL
+#define TEST_IDL
+
+module TestXMIArray {
+ typedef char CharArray [4][5];
+
+ struct A
+ {
+ CharArray bar;
+ };
+
+ struct B
+ {
+ char bar[3][2];
+ };
+};
+
+#endif // TEST_IDL
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File1.idl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File1.idl
new file mode 100644
index 00000000000..4c3659f4f48
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File1.idl
@@ -0,0 +1,15 @@
+// $Id$
+
+#ifndef File_1_
+#define File_1_
+
+module File1 {
+
+ typedef sequence <short> Seq1;
+
+ typedef string type2;
+ typedef sequence <type2> Seq2;
+
+};
+
+#endif
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File2.idl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File2.idl
new file mode 100644
index 00000000000..f8c3106e352
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/File2.idl
@@ -0,0 +1,20 @@
+// $Id$
+
+#ifndef FILE_2_
+#define FILE_2_
+
+#include <File1.idl>
+
+module File2 {
+
+ interface Test {
+
+ void op1(in File1::Seq1 s1);
+
+ void op2(in File1::Seq2 s2);
+
+ };
+
+};
+
+#endif // FILE_2_
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl
new file mode 100755
index 00000000000..73300c2ccec
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Included_File/run_test.pl
@@ -0,0 +1,56 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+$status = 0;
+
+my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+
+my $idl = "File2.idl";
+my $dtd = "../XMI.dtd";
+my $xmi = "generated.xmi";
+my $target_idl = $target->LocalFile ($idl);
+my $target_dtd = $target->LocalFile ($dtd);
+my $target_xmi = $target->LocalFile ($xmi);
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi",
+ "-f -xd $target_dtd -of $target_xmi $target_idl");
+
+$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
+
+if ($target_status != 0) {
+ print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n";
+ exit 1;
+}
+
+if ($target->GetFile ($xmi) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$xmi>\n";
+ exit 1;
+}
+
+# search for right tag in generated xmi
+open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!");
+@data=<DAT>;
+close (DAT);
+
+$num = grep (/<UML:Attribute/, @data);
+if ($num == 2) {
+ print "TEST OK. Correct tags in there.\n";
+} else {
+ print STDERR "ERROR: generated XMI does not contain a brace of UML:Attribute tags !\n\nXMI is:\n\n";
+ print "@data\n\n";
+ $status = 1;
+}
+
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+exit $status;
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl
new file mode 100755
index 00000000000..011b44803f4
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/run_test.pl
@@ -0,0 +1,79 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+$status = 0;
+
+my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+
+my $idl = "test.idl";
+my $dtd = "../XMI.dtd";
+my $xmi = "generated.xmi";
+my $target_idl = $target->LocalFile ($idl);
+my $target_dtd = $target->LocalFile ($dtd);
+my $target_xmi = $target->LocalFile ($xmi);
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi",
+ "-f -xd $target_dtd -of $target_xmi $target_idl");
+
+$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
+
+if ($target_status != 0) {
+ print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n";
+ exit 1;
+}
+
+if ($target->GetFile ($xmi) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$xmi>\n";
+ exit 1;
+}
+
+$A_occurs = 0;
+$A_indent = "";
+$A_line = "";
+$A_xmiid = "one";
+$B_occurs = 0;
+$B_indent = "";
+$B_line = "";
+$B_ns = "two";
+@data = ();
+
+# search for right tag in generated xmi
+open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!");
+while ($line = <DAT>) {
+ push @data, $line;
+ if ($line =~ /(\s*)<UML:Package name=\"A\".*xmi\.id=\"([^\"]*)\"/) {
+ ++$A_occurs;
+ $A_indent = $1;
+ $A_xmiid = $2 unless ($2 eq "");
+ $A_line = $line;
+ } elsif ($line =~ /(\s*)<UML:Package name=\"B\".*namespace=\"([^\"]*)\"/) {
+ ++$B_occurs;
+ $B_indent = $1;
+ $B_ns = $2 unless ($2 eq "");
+ $B_line = $line;
+ }
+}
+close (DAT);
+
+if ($A_occurs == 1 && $B_occurs == 1 && $A_xmiid eq $B_ns &&
+ length ($A_indent) < length ($B_indent)) {
+ print "TEST OK. Correct tags are there.\n$A_line$B_line";
+} else {
+ print STDERR "ERROR: generated XMI does is not correct!\n\nXMI is:\n\n";
+ print "@data\n\n";
+ $status = 1;
+}
+
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+exit $status;
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/test.idl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/test.idl
new file mode 100644
index 00000000000..9ec8562abb9
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Module_Reopen/test.idl
@@ -0,0 +1,43 @@
+// $Id$
+
+#ifndef TEST_IDL
+#define TEST_IDL
+
+module A {
+ module C {
+ interface B_itf {
+ };
+
+ interface C_itf {
+ };
+
+ eventtype E_evt {
+ };
+
+ eventtype F_evt {
+ };
+
+ component B_comp {
+ provides C_itf c_facet;
+ consumes E_evt e_consumer;
+ };
+ };
+};
+
+module A {
+ module B {
+ module C {
+ module D {
+ component A_comp : ::A::C::B_comp {
+ provides ::A::C::B_itf a_facet;
+ consumes ::A::C::F_evt f_consumer;
+ };
+
+ home A_home manages ::A::B::C::D::A_comp {
+ };
+ };
+ };
+ };
+};
+
+#endif // TEST_IDL
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/run_test.pl
new file mode 100755
index 00000000000..112c65967cd
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/run_test.pl
@@ -0,0 +1,63 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+$status = 0;
+
+my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+
+my $idl = "test.idl";
+my $dtd = "../XMI.dtd";
+my $xmi = "generated.xmi";
+my $target_idl = $target->LocalFile ($idl);
+my $target_dtd = $target->LocalFile ($dtd);
+my $target_xmi = $target->LocalFile ($xmi);
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi",
+ "-f -xd $target_dtd -of $target_xmi $target_idl");
+
+$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
+
+if ($target_status != 0) {
+ print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n";
+ exit 1;
+}
+
+if ($target->GetFile ($xmi) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$xmi>\n";
+ exit 1;
+}
+
+$native_correct = 0;
+@data = ();
+
+# search for right tag in generated xmi
+open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!");
+while ($line = <DAT>) {
+ push @data, $line;
+ if ($line =~ /name\s*=\s*\"CORBAnative\"/) {
+ $native_correct = 1;
+ }
+}
+close (DAT);
+
+if ($native_correct) {
+ print "TEST OK. Correct tags are there.\n";
+} else {
+ print STDERR "ERROR: generated XMI is not correct!\n\nXMI is:\n\n";
+ print "@data\n\n";
+ $status = 1;
+}
+
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+exit $status;
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/test.idl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/test.idl
new file mode 100644
index 00000000000..f3d97257e7e
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Native/test.idl
@@ -0,0 +1,6 @@
+// $Id$
+
+#ifndef TEST_IDL
+#define TEST_IDL
+
+#endif // TEST_IDL
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl
new file mode 100755
index 00000000000..0285c156fbb
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/run_test.pl
@@ -0,0 +1,56 @@
+eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}'
+ & eval 'exec perl -S $0 $argv:q'
+ if 0;
+
+# $Id$
+# -*- perl -*-
+
+use lib "$ENV{ACE_ROOT}/bin";
+use PerlACE::TestTarget;
+
+$status = 0;
+
+my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n";
+
+my $idl = "test.idl";
+my $dtd = "../XMI.dtd";
+my $xmi = "generated.xmi";
+my $target_idl = $target->LocalFile ($idl);
+my $target_dtd = $target->LocalFile ($dtd);
+my $target_xmi = $target->LocalFile ($xmi);
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+$I2X = $target->CreateProcess ("$ENV{'CIAO_ROOT'}/bin/tao_idl3_to_xmi",
+ "-f -xd $target_dtd -of $target_xmi $target_idl");
+
+$target_status = $I2X->SpawnWaitKill ($target->ProcessStartWaitInterval());
+
+if ($target_status != 0) {
+ print STDERR "ERROR: tao_idl3_to_xmi returned $target_status\n";
+ exit 1;
+}
+
+if ($target->GetFile ($xmi) == -1) {
+ print STDERR "ERROR: cannot retrieve file <$xmi>\n";
+ exit 1;
+}
+
+# search for right tag in generated xmi
+open (DAT, $xmi) || die ("ERROR: Could not open file <$xmi>!");
+@data=<DAT>;
+close (DAT);
+
+$num = grep (/<UML:Attribute/, @data);
+if ($num == 8) {
+ print "TEST OK. Correct tags in there.\n";
+} else {
+ print STDERR "ERROR: generated XMI does not contain a brace of UML:Attribute tags !\n\nXMI is:\n\n";
+ print "@data\n\n";
+ $status = 1;
+}
+
+$target->DeleteFile($xmi);
+unlink $xmi;
+
+exit $status;
diff --git a/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl
new file mode 100644
index 00000000000..1fced580bc2
--- /dev/null
+++ b/modules/CIAO/tests/IDL3_to_XMI/XMI_For_Sequence/test.idl
@@ -0,0 +1,25 @@
+// $Id$
+
+#ifndef TEST_IDL
+#define TEST_IDL
+
+module TestXMISequence {
+ typedef sequence<char> SeqChar;
+ typedef sequence<char, 10> SeqChar10;
+
+ struct A {
+ sequence<char> field;
+ };
+ struct A10 {
+ sequence<char, 10> field;
+ };
+
+ struct B {
+ SeqChar field;
+ };
+ struct B10 {
+ SeqChar10 field;
+ };
+};
+
+#endif // TEST_IDL
diff --git a/modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.idl b/modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.idl
new file mode 100644
index 00000000000..f94418f9fe7
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.idl
@@ -0,0 +1,134 @@
+// $Id$
+/**
+ * @file Cornucopia.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests TAO_IDL generation of CIAO servant, executor IDL
+ * and executor implementation stencil for a variety of
+ * IDL3 constructs.
+ */
+
+#include <Components.idl>
+
+module Supported
+{
+ interface IfacePawPaw
+ {
+ long paw_paw_op (out short spew);
+ attribute boolean inbred;
+ };
+
+ interface IfaceMom : IfacePawPaw
+ {
+ readonly attribute wchar uni_tag;
+ IfacePawPaw get_paw_paw ();
+ };
+
+ interface IfaceDad : IfacePawPaw
+ {
+ attribute string msg;
+ long long get_big_int (in IfacePawPaw genealogy);
+ };
+
+ interface Iface : IfaceMom, IfaceDad
+ {
+ attribute wstring uni_uuid;
+ void supported_op (inout unsigned long index);
+ };
+};
+
+interface pface {};
+interface uface {};
+interface umface {};
+
+abstract interface IfAb
+{
+ long op (out long value);
+};
+
+interface IfConcr : IfAb
+{
+ long concr_op (out long value);
+};
+
+valuetype pkey : Components::PrimaryKeyBase
+{
+ public string info;
+};
+
+eventtype pubtype {};
+eventtype emittype {};
+eventtype eattype {};
+
+exception BadGet {};
+exception BadSet {};
+exception Whatever {};
+
+module BaseMod
+{
+component CompBase supports Supported::Iface
+ {
+ attribute octet the_byte
+ getraises (BadGet, Whatever) setraises (BadSet);
+ };
+};
+
+enum Color
+{
+ RED,
+ WHITE,
+ BLUE
+};
+
+module DerivedMod
+{
+ porttype CombinedPort
+ {
+ provides pface pface_provider;
+ uses uface uface_user;
+ uses multiple umface umface_umuser;
+ };
+
+ component CompCombinedPort
+ {
+ port CombinedPort cc;
+ };
+
+ component MirrorCompCombinedPort
+ {
+ mirrorport CombinedPort cc;
+ };
+
+ component CompDerived : BaseMod::CompBase
+ {
+ attribute Color stripe;
+ provides pface pface_provider;
+ uses uface uface_user;
+ uses multiple umface umface_umuser;
+ publishes pubtype pubtype_publisher;
+ emits emittype emittype_emitter;
+ consumes eattype eattype_consumer;
+ };
+};
+
+module HomeMod
+{
+ home CompBaseHome supports Supported::Iface manages BaseMod::CompBase
+ {
+ readonly attribute Color shade;
+ pface fetch_managed_ports (out uface recep);
+ factory base_init (in string id, in unsigned short uni_raw)
+ raises (Whatever);
+ finder bathroom_sink ();
+ };
+
+ home CompDerivedHome : CompBaseHome manages DerivedMod::CompDerived
+ {
+ exception ch_except {};
+ void ch_op () raises (ch_except);
+ factory def_init ();
+ finder kitchen_sink (in string uid, in pkey key, in boolean all)
+ raises (ch_except);
+ };
+};
+
diff --git a/modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.mpc b/modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.mpc
new file mode 100644
index 00000000000..5053203513f
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Cornucopia/Cornucopia.mpc
@@ -0,0 +1,129 @@
+// $Id$
+
+project(Cornucopia_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=CORNUCOPIA_STUB_Export \
+ -Wb,stub_export_include=Cornucopia_stub_export.h \
+ -Wb,skel_export_macro=CORNUCOPIA_SKEL_Export \
+ -Wb,skel_export_include=Cornucopia_skel_export.h \
+ -Wb,svnt_export_macro=CORNUCOPIA_SVNT_Export \
+ -Wb,svnt_export_include=Cornucopia_svnt_export.h \
+ -Wb,exec_export_macro=CORNUCOPIA_EXEC_Export \
+ -Wb,exec_export_include=Cornucopia_exec_export.h \
+ -Gex -Gxhst -Gxhsk -Gxhsv -Gxhex
+
+ IDL_Files {
+ Cornucopia.idl >> Cornucopia_stub_export.h Cornucopia_skel_export.h Cornucopia_svnt_export.h Cornucopia_exec_export.h
+ }
+}
+
+project(Cornucopia_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Cornucopia_idl_gen
+ idlflags += -Wb,export_macro=CORNUCOPIA_EXEC_Export \
+ -Wb,export_include=Cornucopia_exec_export.h \
+ -SS
+
+ IDL_Files {
+ CornucopiaE.idl
+ }
+}
+
+project(Cornucopia_stub) : ccm_stub {
+ after += Cornucopia_idl_gen
+
+ sharedname = Cornucopia_stub
+ dynamicflags = CORNUCOPIA_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CornucopiaC.cpp
+ }
+
+ Header_Files {
+ CornucopiaC.h
+ Cornucopia_stub_export.h
+ }
+
+ Inline_Files {
+ CornucopiaC.inl
+ }
+}
+
+project(Cornucopia_exec) : ciao_executor {
+ after += Cornucopia_lem_gen Cornucopia_stub
+ sharedname = Cornucopia_exec
+ libs += Cornucopia_stub
+
+ dynamicflags = CORNUCOPIA_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CornucopiaEC.cpp
+ Cornucopia_exec.cpp
+ }
+
+ Header_Files {
+ CornucopiaEC.h
+ Cornucopia_exec.h
+ Cornucopia_exec_export.h
+ }
+
+ Inline_Files {
+ CornucopiaEC.inl
+ }
+}
+
+project(Cornucopia_skel) : ccm_svnt {
+ after += Cornucopia_stub
+ sharedname = Cornucopia_skel
+ libs += Cornucopia_stub
+
+ dynamicflags = CORNUCOPIA_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CornucopiaS.cpp
+ }
+
+ Header_Files {
+ CornucopiaS.h
+ Cornucopia_skel_export.h
+ }
+
+ Inline_Files {
+ CornucopiaS.inl
+ }
+}
+
+project(Cornucopia_svnt) : ciao_servant {
+ after += Cornucopia_exec Cornucopia_skel Cornucopia_stub
+ sharedname = Cornucopia_svnt
+ libs += Cornucopia_exec \
+ Cornucopia_skel \
+ Cornucopia_stub
+
+ dynamicflags = CORNUCOPIA_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Cornucopia_svnt.cpp
+ }
+
+ Header_Files {
+ Cornucopia_svnt.h
+ Cornucopia_svnt_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
diff --git a/modules/CIAO/tests/IDL_Test/Cornucopia/README b/modules/CIAO/tests/IDL_Test/Cornucopia/README
new file mode 100644
index 00000000000..476030cd33d
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Cornucopia/README
@@ -0,0 +1,30 @@
+
+Cornucopia Code Generation Test
+===============================
+
+This test is for correct code generation, the various
+artifacts compile and link, but there is no executable.
+
+The IDL file in this directory was put together to have
+a wide variety of IDL3 constructs, and some features
+not yet present in other CIAO tests and examples:
+
+- inheritance of operations and attributes in:
+ - facet interfaces
+ - supported interfaces
+ - homes
+ - components (attributes only)
+
+- inheritance of factory and finder operations
+
+- raises, getraises and setraises constructs
+
+- separate scoping for supported interfaces,
+ port interfaces, derived components, and homes
+
+- skeleton and servant generated files in separate
+ builds/libraries
+
+
+Jeff Parsons
+June 16, 2009
diff --git a/modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.idl b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.idl
new file mode 100644
index 00000000000..57dff3e58b0
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.idl
@@ -0,0 +1,8 @@
+// $Id$
+
+#include "IC_Foo.idl"
+#include "IC_FooE.idl"
+
+component Bar
+{
+};
diff --git a/modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.mpc b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.mpc
new file mode 100644
index 00000000000..f8ce62bac16
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Bar.mpc
@@ -0,0 +1,105 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl IC_Bar"
+
+project(IC_Bar_idl_gen) : componentidldefaults {
+ after += IC_Foo_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=IC_BAR_STUB_Export \
+ -Wb,stub_export_include=IC_Bar_stub_export.h \
+ -Wb,skel_export_macro=IC_BAR_SVNT_Export \
+ -Wb,skel_export_include=IC_Bar_svnt_export.h \
+ -Wb,exec_export_macro=IC_BAR_EXEC_Export \
+ -Wb,exec_export_include=IC_Bar_exec_export.h
+
+ IDL_Files {
+ IC_Bar.idl
+ }
+}
+
+project(IC_Bar_lem_gen) : ciaoidldefaults {
+ after += IC_Bar_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=IC_BAR_EXEC_Export \
+ -Wb,export_include=IC_Bar_exec_export.h \
+ -SS
+
+ IDL_Files {
+ IC_BarE.idl
+ }
+}
+
+project(IC_Bar_stub) : ccm_stub {
+ after += IC_Bar_idl_gen IC_Foo_lem_gen
+ libs +=
+
+ sharedname = IC_Bar_stub
+ dynamicflags = IC_BAR_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IC_BarC.cpp
+ }
+
+ Header_Files {
+ IC_BarC.h
+ IC_Bar_stub_export.h
+ }
+
+ Inline_Files {
+ IC_BarC.inl
+ }
+}
+
+project(IC_Bar_exec) : ciao_executor {
+ sharedname = IC_Bar_exec
+ after += IC_Bar_lem_gen IC_Bar_stub
+ libs += IC_Bar_stub
+
+ dynamicflags = IC_BAR_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IC_BarEC.cpp
+ }
+
+ Header_Files {
+ IC_BarEC.h
+ IC_Bar_exec_export.h
+ }
+
+ Inline_Files {
+ IC_BarEC.inl
+ }
+}
+
+project(IC_Bar_svnt) : ciao_servant {
+ sharedname = IC_Bar_svnt
+ after += IC_Bar_exec IC_Foo_exec IC_Bar_stub IC_Foo_svnt IC_Foo_stub
+ libs += IC_Bar_exec IC_Foo_exec IC_Bar_stub IC_Foo_svnt IC_Foo_stub
+
+ dynamicflags = IC_BAR_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IC_BarS.cpp
+ IC_Bar_svnt.cpp
+ }
+
+ Header_Files {
+ IC_BarS.h
+ IC_Bar_svnt.h
+ IC_Bar_svnt_export.h
+ }
+
+ Inline_Files {
+ IC_BarS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.idl b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.idl
new file mode 100644
index 00000000000..13d2785b3d2
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.idl
@@ -0,0 +1,12 @@
+// $Id$
+#ifndef IC_Foo_IDL
+#define IC_Foo_IDL
+
+#include <Components.idl>
+
+component Foo
+{
+};
+
+
+#endif
diff --git a/modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.mpc b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.mpc
new file mode 100644
index 00000000000..7ab7e183409
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Included_Component/IC_Foo.mpc
@@ -0,0 +1,104 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl IC_Foo"
+
+project(IC_Foo_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=IC_FOO_STUB_Export \
+ -Wb,stub_export_include=IC_Foo_stub_export.h \
+ -Wb,skel_export_macro=IC_FOO_SVNT_Export \
+ -Wb,skel_export_include=IC_Foo_svnt_export.h \
+ -Wb,exec_export_macro=IC_FOO_EXEC_Export \
+ -Wb,exec_export_include=IC_Foo_exec_export.h
+
+ IDL_Files {
+ IC_Foo.idl
+ }
+}
+
+project(IC_Foo_lem_gen) : ciaoidldefaults {
+ after += IC_Foo_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=IC_FOO_EXEC_Export \
+ -Wb,export_include=IC_Foo_exec_export.h \
+ -SS
+
+ IDL_Files {
+ IC_FooE.idl
+ }
+}
+
+project(IC_Foo_stub) : ccm_stub {
+ after += IC_Foo_idl_gen
+ libs +=
+
+ sharedname = IC_Foo_stub
+ dynamicflags = IC_FOO_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IC_FooC.cpp
+ }
+
+ Header_Files {
+ IC_FooC.h
+ IC_Foo_stub_export.h
+ }
+
+ Inline_Files {
+ IC_FooC.inl
+ }
+}
+
+project(IC_Foo_exec) : ciao_executor {
+ sharedname = IC_Foo_exec
+ after += IC_Foo_lem_gen IC_Foo_stub
+ libs += IC_Foo_stub
+
+ dynamicflags = IC_FOO_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IC_FooEC.cpp
+ }
+
+ Header_Files {
+ IC_FooEC.h
+ IC_Foo_exec_export.h
+ }
+
+ Inline_Files {
+ IC_FooEC.inl
+ }
+}
+
+project(IC_Foo_svnt) : ciao_servant {
+ sharedname = IC_Foo_svnt
+ after += IC_Foo_exec
+ libs += IC_Foo_stub IC_Foo_exec
+
+ dynamicflags = IC_FOO_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IC_FooS.cpp
+ IC_Foo_svnt.cpp
+ }
+
+ Header_Files {
+ IC_FooS.h
+ IC_Foo_svnt.h
+ IC_Foo_svnt_export.h
+ }
+
+ Inline_Files {
+ IC_FooS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.idl b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.idl
new file mode 100644
index 00000000000..94804cd867b
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.idl
@@ -0,0 +1,9 @@
+// $Id$
+
+#include <Components.idl>
+#include "IhC_Foo.idl"
+#include "IhC_FooE.idl"
+
+component Bar : Foo
+{
+};
diff --git a/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.mpc b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.mpc
new file mode 100644
index 00000000000..2e73abdfef6
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Bar.mpc
@@ -0,0 +1,137 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p IhC_Foo IhC_Bar"
+
+project(IhC_Foo_IhC_Bar_idl_gen) : componentidldefaults {
+ requires += dummy_label
+ custom_only = 1
+ after += IhC_Foo_idl_gen
+ idlflags += -Wb,stub_export_macro=IHC_BAR_STUB_Export \
+ -Wb,stub_export_include=IhC_Bar_stub_export.h \
+ -Wb,skel_export_macro=IHC_BAR_SVNT_Export \
+ -Wb,skel_export_include=IhC_Bar_svnt_export.h \
+ -Wb,exec_export_macro=IHC_BAR_EXEC_Export \
+ -Wb,exec_export_include=IhC_Bar_exec_export.h
+
+ IDL_Files {
+ IhC_Bar.idl
+ }
+}
+
+project(IhC_Foo_IhC_Bar_lem_gen) : ciaoidldefaults {
+ requires += dummy_label
+ after += IhC_Foo_IhC_Bar_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=IHC_BAR_LEM_STUB_Export \
+ -Wb,stub_export_include=IhC_Bar_lem_stub_export.h \
+ -SS -Gxhst
+
+ IDL_Files {
+ IhC_BarE.idl
+ }
+}
+
+project(IhC_Foo_IhC_Bar_lem_stub) : ccm_svnt {
+ requires += dummy_label
+ after += IhC_Foo_IhC_Bar_lem_gen IhC_Foo_IhC_Bar_stub IhC_Foo_stub
+ libs += IhC_Foo_stub IhC_Bar_stub
+
+ sharedname = IhC_Bar_lem_stub
+ dynamicflags = IHC_BAR_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IhC_BarEC.cpp
+ }
+
+ Header_Files {
+ IhC_BarEC.h
+ IhC_Bar_lem_stub_export.h
+ }
+
+ Inline_Files {
+ IhC_BarEC.inl
+ }
+}
+
+project(IhC_Foo_IhC_Bar_stub) : ccm_stub {
+ requires += dummy_label
+ after += IhC_Foo_IhC_Bar_idl_gen IhC_Foo_stub
+ libs += IhC_Foo_stub
+
+ sharedname = IhC_Bar_stub
+ dynamicflags = IHC_BAR_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IhC_BarC.cpp
+ }
+
+ Header_Files {
+ IhC_BarC.h
+ IhC_Bar_stub_export.h
+ }
+
+ Inline_Files {
+ IhC_BarC.inl
+ }
+}
+
+project(IhC_Foo_IhC_Bar_exec) : ciao_executor {
+ requires += dummy_label
+ after += IhC_Foo_IhC_Bar_lem_stub IhC_Foo_IhC_Bar_stub
+ sharedname = IhC_Bar_exec
+ libs += IhC_Bar_stub IhC_Bar_lem_stub IhC_Foo_stub
+
+ dynamicflags = IHC_BAR_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IhC_Bar_exec.cpp
+ }
+
+ Header_Files {
+ IhC_Bar_exec.h
+ IhC_Bar_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(IhC_Foo_IhC_Bar_svnt) : ciao_servant {
+ requires += dummy_label
+ after += IhC_Foo_skel IhC_Foo_IhC_Bar_lem_stub
+ sharedname = IhC_Bar_svnt
+ libs += IhC_Bar_stub IhC_Bar_lem_stub \
+ IhC_Foo_skel \
+ IhC_Foo_stub
+
+ dynamicflags = IHC_BAR_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IhC_BarS.cpp
+ IhC_Bar_svnt.cpp
+ }
+
+ Header_Files {
+ IhC_BarS.h
+ IhC_Bar_svnt.h
+ IhC_Bar_svnt_export.h
+ }
+
+ Inline_Files {
+ IhC_BarS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.idl b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.idl
new file mode 100644
index 00000000000..34a547ccde9
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.idl
@@ -0,0 +1,13 @@
+// $Id$
+
+#include <Components.idl>
+
+interface foo_intf
+{
+};
+
+
+component Foo
+{
+ provides foo_intf foo_port;
+};
diff --git a/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.mpc b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.mpc
new file mode 100644
index 00000000000..133b5352e00
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Inherited_Component/IhC_Foo.mpc
@@ -0,0 +1,132 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl IhC_Foo"
+
+project(IhC_Foo_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=IHC_FOO_STUB_Export \
+ -Wb,stub_export_include=IhC_Foo_stub_export.h \
+ -Wb,skel_export_macro=IHC_FOO_SVNT_Export \
+ -Wb,skel_export_include=IhC_Foo_svnt_export.h \
+ -Wb,exec_export_macro=IHC_FOO_EXEC_Export \
+ -Wb,exec_export_include=IhC_Foo_exec_export.h -Gex
+
+ IDL_Files {
+ IhC_Foo.idl
+ }
+}
+
+project(IhC_Foo_lem_gen) : ciaoidldefaults {
+ after += IhC_Foo_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=IHC_FOO_LEM_STUB_Export \
+ -Wb,stub_export_include=IhC_Foo_lem_stub_export.h \
+ -SS -Gxhst
+
+ IDL_Files {
+ IhC_FooE.idl
+ }
+}
+
+project(IhC_Foo_lem_stub) : ccm_svnt {
+ after += IhC_Foo_lem_gen IhC_Foo_stub
+ libs += IhC_Foo_stub
+
+
+ sharedname = IhC_Foo_lem_stub
+ dynamicflags = IHC_FOO_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IhC_FooEC.cpp
+ }
+
+ Header_Files {
+ IhC_FooEC.h
+ IhC_Foo_lem_stub_export.h
+ }
+
+ Inline_Files {
+ IhC_FooEC.inl
+ }
+}
+
+project(IhC_Foo_stub) : ccm_stub {
+ after += IhC_Foo_idl_gen
+ libs +=
+
+
+ sharedname = IhC_Foo_stub
+ dynamicflags = IHC_FOO_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IhC_FooC.cpp
+ }
+
+ Header_Files {
+ IhC_FooC.h
+ IhC_Foo_stub_export.h
+ }
+
+ Inline_Files {
+ IhC_FooC.inl
+ }
+}
+
+project(IhC_Foo_exec) : ciao_executor {
+ after += IhC_Foo_lem_stub IhC_Foo_stub
+ sharedname = IhC_Foo_exec
+ libs += IhC_Foo_stub IhC_Foo_lem_stub
+
+
+ dynamicflags = IHC_FOO_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IhC_Foo_exec.cpp
+ }
+
+ Header_Files {
+ IhC_Foo_exec.h
+ IhC_Foo_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(IhC_Foo_svnt) : ciao_servant {
+ after += IhC_Foo_lem_stub
+ sharedname = IhC_Foo_svnt
+ libs += IhC_Foo_stub IhC_Foo_lem_stub
+
+
+ dynamicflags = IHC_FOO_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ IhC_FooS.cpp
+ IhC_Foo_svnt.cpp
+ }
+
+ Header_Files {
+ IhC_FooS.h
+ IhC_Foo_svnt.h
+ IhC_Foo_svnt_export.h
+ }
+
+ Inline_Files {
+ IhC_FooS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/IDL_Test/Keywords/Keyword_Clash.idl b/modules/CIAO/tests/IDL_Test/Keywords/Keyword_Clash.idl
new file mode 100644
index 00000000000..d78b200cddd
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Keywords/Keyword_Clash.idl
@@ -0,0 +1,110 @@
+// $Id$
+/**
+ * @file Keyword_Clash.idl
+ * @author Jeff Parsons <j.parsons@vanderbilt.edu>
+ *
+ * Tests handling of C++ keywords and escaped identifiers (IDL
+ * keywords) in generating CIAO servant code and executor IDL.
+ */
+
+#ifndef KEYWORD_CLASH_IDL
+#define KEYWORD_CLASH_IDL
+
+#include "Components.idl"
+
+module _interface
+{
+ interface _attribute
+ {
+ exception _inout {};
+ };
+};
+
+module static
+{
+ module _readonly
+ {
+ module protected
+ {
+ interface virtual
+ {
+ };
+
+ interface _port
+ {
+ };
+
+ interface _alias
+ {
+ };
+
+ interface _mirrorport
+ {
+ };
+
+ interface _porttype
+ {
+ };
+
+ interface _connector
+ {
+ };
+
+ eventtype _eventtype
+ {
+ private virtual _public;
+ };
+ };
+ };
+};
+
+eventtype _eventtype
+{
+ public string _factory;
+ private string friend;
+ public string _wstring;
+};
+
+interface _oneway {};
+
+module _component
+{
+ component _out supports static::_readonly::protected::virtual
+ {
+ provides _interface::_attribute _local;
+ provides _oneway else;
+ provides static::_readonly::protected::virtual while;
+
+ attribute long _abstract;
+
+ uses multiple _interface::_attribute if;
+ uses multiple _oneway mutable;
+ uses multiple static::_readonly::protected::virtual register;
+
+ uses _interface::_attribute _union;
+ uses _oneway _struct;
+ uses static::_readonly::protected::virtual volatile;
+
+ publishes _eventtype _object;
+ publishes static::_readonly::protected::_eventtype do;
+
+ consumes _eventtype _const;
+ consumes static::_readonly::protected::_eventtype const_cast;
+
+ emits _eventtype class;
+ emits static::_readonly::protected::_eventtype delete;
+ };
+
+ home new manages _out
+ {
+ static::_readonly::protected::virtual
+ catch (
+ inout static::_readonly::protected::_eventtype try)
+ raises (_interface::_attribute::_inout);
+
+ finder continue (in _interface::_attribute _inout);
+ };
+};
+
+#endif /* KEYWORD_CLASH_IDL */
+
diff --git a/modules/CIAO/tests/IDL_Test/Keywords/Keywords.mpc b/modules/CIAO/tests/IDL_Test/Keywords/Keywords.mpc
new file mode 100644
index 00000000000..5778561bf53
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Keywords/Keywords.mpc
@@ -0,0 +1,109 @@
+// -*- MPC -*-
+// $Id$
+
+project(Keyword_Clash_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=KEYWORD_CLASH_STUB_Export \
+ -Wb,stub_export_include=Keyword_Clash_stub_export.h \
+ -Wb,skel_export_macro=KEYWORD_CLASH_SVNT_Export \
+ -Wb,skel_export_include=Keyword_Clash_svnt_export.h \
+ -Wb,exec_export_macro=KEYWORD_CLASH_EXEC_Export \
+ -Wb,exec_export_include=Keyword_Clash_exec_export.h \
+ -Gex -Gxhst -Gxhsk -Gxhex
+
+ IDL_Files {
+ Keyword_Clash.idl
+ }
+}
+
+project(Keyword_Clash_lem_gen) : ciaoidldefaults {
+ after += Keyword_Clash_idl_gen
+ custom_only = 1
+ idlflags += -Wb,export_macro=KEYWORD_CLASH_EXEC_Export \
+ -Wb,export_include=Keyword_Clash_exec_export.h \
+ -SS
+
+ IDL_Files {
+ Keyword_ClashE.idl
+ }
+}
+
+project(Keyword_Clash_stub) : ccm_stub {
+ avoids += mfc
+ after += Keyword_Clash_idl_gen
+ sharedname = Keyword_Clash_stub
+ dynamicflags = KEYWORD_CLASH_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Keyword_ClashC.cpp
+ }
+
+ Header_Files {
+ Keyword_ClashC.h
+ Keyword_Clash_stub_export.h
+ }
+
+ Inline_Files {
+ Keyword_ClashC.inl
+ }
+}
+
+project(Keyword_Clash_exec) : ciao_executor {
+ avoids += mfc
+ after += Keyword_Clash_lem_gen Keyword_Clash_stub
+ sharedname = Keyword_Clash_exec
+ libs += Keyword_Clash_stub
+
+ dynamicflags = KEYWORD_CLASH_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Keyword_ClashEC.cpp
+ Keyword_Clash_exec.cpp
+ }
+
+ Header_Files {
+ Keyword_ClashEC.h
+ Keyword_Clash_exec.h
+ Keyword_Clash_exec_export.h
+ }
+
+ Inline_Files {
+ Keyword_ClashEC.inl
+ }
+}
+
+project(Keyword_Clash_svnt) : ciao_servant {
+ avoids += mfc
+ after += Keyword_Clash_exec
+ sharedname = Keyword_Clash_svnt
+ libs += Keyword_Clash_exec \
+ Keyword_Clash_stub
+
+ dynamicflags = KEYWORD_CLASH_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Keyword_ClashS.cpp
+ Keyword_Clash_svnt.cpp
+ }
+
+ Header_Files {
+ Keyword_ClashS.h
+ Keyword_Clash_svnt.h
+ Keyword_Clash_svnt_export.h
+ }
+
+ Inline_Files {
+ Keyword_ClashS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.idl b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.idl
new file mode 100644
index 00000000000..28248068aff
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.idl
@@ -0,0 +1,8 @@
+
+// $Id$
+
+#include <Components.idl>
+
+component Foo
+{
+};
diff --git a/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.mpc b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.mpc
new file mode 100644
index 00000000000..a5eeaa65369
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export.mpc
@@ -0,0 +1,128 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl Lem_Export"
+
+project(Lem_Export_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=LEM_EXPORT_STUB_Export \
+ -Wb,stub_export_include=Lem_Export_stub_export.h \
+ -Wb,skel_export_macro=LEM_EXPORT_SVNT_Export \
+ -Wb,skel_export_include=Lem_Export_svnt_export.h \
+ -Wb,exec_export_macro=LEM_EXPORT_EXEC_Export \
+ -Wb,exec_export_include=Lem_Export_exec_export.h
+
+ IDL_Files {
+ Lem_Export.idl
+ }
+}
+
+project(Lem_Export_lem_gen) : ciaoidldefaults {
+ after += Lem_Export_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=LEM_EXPORT_LEM_STUB_Export \
+ -Wb,stub_export_include=Lem_Export_lem_stub_export.h \
+ -SS -Gxhst
+
+ IDL_Files {
+ Lem_ExportE.idl
+ }
+}
+
+project(Lem_Export_stub) : ccm_stub {
+ after += Lem_Export_idl_gen
+ libs +=
+
+ sharedname = Lem_Export_stub
+ dynamicflags = LEM_EXPORT_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Lem_ExportC.cpp
+ }
+
+ Header_Files {
+ Lem_ExportC.h
+ Lem_Export_stub_export.h
+ }
+
+ Inline_Files {
+ Lem_ExportC.inl
+ }
+}
+
+project(Lem_Export_lem_stub) : ccm_svnt {
+ after += Lem_Export_lem_gen
+ libs +=
+
+ sharedname = Lem_Export_lem_stub
+ dynamicflags = LEM_EXPORT_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Lem_ExportEC.cpp
+ }
+
+ Header_Files {
+ Lem_ExportEC.h
+ Lem_Export_lem_stub_export.h
+ }
+
+ Inline_Files {
+ Lem_ExportEC.inl
+ }
+}
+
+project(Lem_Export_exec) : ciao_executor {
+ after += Lem_Export_lem_stub Lem_Export_stub
+ sharedname = Lem_Export_exec
+ libs += Lem_Export_stub Lem_Export_lem_stub
+
+ dynamicflags = LEM_EXPORT_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Lem_Export_exec.cpp
+ }
+
+ Header_Files {
+ Lem_Export_exec.h
+ Lem_Export_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(Lem_Export_svnt) : ciao_servant {
+ after += Lem_Export_lem_stub Lem_Export_stub
+ sharedname = Lem_Export_svnt
+ libs += Lem_Export_stub Lem_Export_lem_stub
+
+ dynamicflags = LEM_EXPORT_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Lem_ExportS.cpp
+ Lem_Export_svnt.cpp
+ }
+
+ Header_Files {
+ Lem_ExportS.h
+ Lem_Export_svnt.h
+ Lem_Export_svnt_export.h
+ }
+
+ Inline_Files {
+ Lem_ExportS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.cpp b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.cpp
new file mode 100644
index 00000000000..d9d5eaf0928
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.cpp
@@ -0,0 +1,106 @@
+// -*- C++ -*-
+//
+// $Id$
+
+// **** Code generated by the The ACE ORB (TAO) IDL Compiler v1.6.9 ****
+// TAO and the TAO IDL Compiler have been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// and
+// Distributed Object Computing Laboratory
+// University of California at Irvine
+// Irvine, CA
+// USA
+// http://doc.ece.uci.edu/
+// and
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about TAO is available at:
+// http://www.cs.wustl.edu/~schmidt/TAO.html
+
+// TAO_IDL - Generated from
+// be/be_codegen.cpp:1278
+
+#include "Lem_Export_exec.h"
+
+namespace CIAO_Foo_Impl
+{
+ //============================================================
+ // Component Executor Implementation Class: Foo_exec_i
+ //============================================================
+
+ Foo_exec_i::Foo_exec_i (void)
+ {
+ }
+
+ Foo_exec_i::~Foo_exec_i (void)
+ {
+ }
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent.
+
+ void
+ Foo_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::CCM_Foo_Context::_narrow (ctx);
+
+ if ( ::CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Foo_exec_i::configuration_complete (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Foo_exec_i::ccm_activate (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Foo_exec_i::ccm_passivate (void)
+ {
+ /* Your code here. */
+ }
+
+ void
+ Foo_exec_i::ccm_remove (void)
+ {
+ /* Your code here. */
+ }
+
+ extern "C" LEM_EXPORT_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Foo_Impl (void)
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ Foo_exec_i,
+ ::Components::EnterpriseComponent::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.h b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.h
new file mode 100644
index 00000000000..a60906d3aa5
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Lem_Specific_Export/Lem_Export_exec.h
@@ -0,0 +1,84 @@
+// -*- C++ -*-
+//
+// $Id$
+
+// **** Code generated by the The ACE ORB (TAO) IDL Compiler v1.6.9 ****
+// TAO and the TAO IDL Compiler have been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// and
+// Distributed Object Computing Laboratory
+// University of California at Irvine
+// Irvine, CA
+// USA
+// http://doc.ece.uci.edu/
+// and
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about TAO is available at:
+// http://www.cs.wustl.edu/~schmidt/TAO.html
+
+// TAO_IDL - Generated from
+// be/be_codegen.cpp:1217
+
+#ifndef CIAO_LEM_EXPORT_EXEC_H_
+#define CIAO_LEM_EXPORT_EXEC_H_
+
+#include /**/ "ace/pre.h"
+
+#include "Lem_ExportEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include /**/ "Lem_Export_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Foo_Impl
+{
+ class LEM_EXPORT_EXEC_Export Foo_exec_i
+ : public virtual Foo_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Foo_exec_i (void);
+ virtual ~Foo_exec_i (void);
+
+ // Supported operations and attributes.
+
+ // Component attributes.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent.
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete (void);
+
+ virtual void ccm_activate (void);
+ virtual void ccm_passivate (void);
+ virtual void ccm_remove (void);
+
+ private:
+ ::CCM_Foo_Context_var context_;
+ };
+
+ extern "C" LEM_EXPORT_EXEC_Export ::Components::EnterpriseComponent_ptr
+ create_Foo_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* ifndef */
+
diff --git a/modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.idl b/modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.idl
new file mode 100644
index 00000000000..b56142dbf2d
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.idl
@@ -0,0 +1,14 @@
+// $Id$
+
+#include <Components.idl>
+#include "tao/StringSeq.pidl"
+
+interface foo_intf
+{
+ typedef sequence<string> MyStringSeq;
+};
+
+component Foo
+{
+ provides foo_intf foo_port;
+};
diff --git a/modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.mpc b/modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.mpc
new file mode 100644
index 00000000000..c790417197e
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/PIDL_Include/PIDLInclude.mpc
@@ -0,0 +1,131 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl PIDLInclude"
+
+project(PIDLInclude_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=PIDLINCLUDE_STUB_Export \
+ -Wb,stub_export_include=PIDLInclude_stub_export.h \
+ -Wb,skel_export_macro=PIDLINCLUDE_SVNT_Export \
+ -Wb,skel_export_include=PIDLInclude_svnt_export.h \
+ -Wb,exec_export_macro=PIDLINCLUDE_EXEC_Export \
+ -Wb,exec_export_include=PIDLInclude_exec_export.h -Gex
+
+ IDL_Files {
+ PIDLInclude.idl
+ }
+}
+
+project(PIDLInclude_lem_gen) : ciaoidldefaults {
+ after += PIDLInclude_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=PIDLINCLUDE_LEM_STUB_Export \
+ -Wb,stub_export_include=PIDLInclude_lem_stub_export.h \
+ -SS -Gxhst
+
+ IDL_Files {
+ PIDLIncludeE.idl
+ }
+}
+
+project(PIDLInclude_lem_stub) : ccm_svnt {
+ after += PIDLInclude_lem_gen PIDLInclude_stub
+ libs += PIDLInclude_stub
+
+ sharedname = PIDLInclude_lem_stub
+ dynamicflags = PIDLINCLUDE_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ PIDLIncludeEC.cpp
+ }
+
+ Header_Files {
+ PIDLIncludeEC.h
+ PIDLInclude_lem_stub_export.h
+ }
+
+ Inline_Files {
+ PIDLIncludeEC.inl
+ }
+}
+
+project(PIDLInclude_stub) : ccm_stub {
+ after += PIDLInclude_idl_gen
+ libs +=
+
+
+ sharedname = PIDLInclude_stub
+ dynamicflags = PIDLINCLUDE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ PIDLIncludeC.cpp
+ }
+
+ Header_Files {
+ PIDLIncludeC.h
+ PIDLInclude_stub_export.h
+ }
+
+ Inline_Files {
+ PIDLIncludeC.inl
+ }
+}
+
+project(PIDLInclude_exec) : ciao_executor {
+ after += PIDLInclude_lem_stub PIDLInclude_stub
+ sharedname = PIDLInclude_exec
+ libs += PIDLInclude_stub PIDLInclude_lem_stub
+
+
+ dynamicflags = PIDLINCLUDE_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ PIDLInclude_exec.cpp
+ }
+
+ Header_Files {
+ PIDLInclude_exec.h
+ PIDLInclude_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(PIDLInclude_svnt) : ciao_servant {
+ after += PIDLInclude_lem_stub
+ sharedname = PIDLInclude_svnt
+ libs += PIDLInclude_stub PIDLInclude_lem_stub
+
+
+ dynamicflags = PIDLINCLUDE_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ PIDLIncludeS.cpp
+ PIDLInclude_svnt.cpp
+ }
+
+ Header_Files {
+ PIDLIncludeS.h
+ PIDLInclude_svnt.h
+ PIDLInclude_svnt_export.h
+ }
+
+ Inline_Files {
+ PIDLIncludeS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.idl b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.idl
new file mode 100644
index 00000000000..4e686a47fab
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.idl
@@ -0,0 +1,54 @@
+// $Id$
+//=============================================================================
+/**
+ * @file Basic.idl
+ *
+ * Definition of events, and common interfaces used in the BasicSP module.
+ *
+ * @author Balachandran Natarajan <bala@dre.vanderbilt.edu>
+ * Jeff Parsons <j.parsons@vanderbilt.edu>
+ */
+//=============================================================================
+
+#ifndef CIAO_BASIC_IDL
+#define CIAO_BASIC_IDL
+
+#include <Components.idl>
+
+module Extra
+{
+ exception NoReason {};
+ exception NoRhyme {};
+
+ interface Superfluous
+ {
+ attribute string useless_attr;
+ long superfluous_op (in string empty_arg)
+ raises (NoReason);
+ };
+
+ interface Supernumerary
+ {
+ void supernumerary_op (out string dummy_arg)
+ raises (NoRhyme, NoReason);
+ };
+};
+
+module Basic
+{
+ interface ReadData : Extra::Superfluous
+ {
+ string get_data ();
+ };
+
+ interface AnalyzeData
+ {
+ void perform_analysis (inout string data);
+ attribute boolean fine_tooth_comb;
+ };
+
+ eventtype TimeOut {};
+ eventtype DataAvailable {};
+};
+
+#endif /* CIAO_BASIC_IDL */
diff --git a/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.mpc b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.mpc
new file mode 100644
index 00000000000..4e70cbe8ac3
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Basic.mpc
@@ -0,0 +1,82 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Basic"
+
+project(Reused_Facet_Interface_Basic_idl_gen) : ciaoidldefaults, anytypecode {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=BASIC_STUB_Export \
+ -Wb,stub_export_include=Basic_stub_export.h \
+ -Wb,skel_export_macro=BASIC_SKEL_Export \
+ -Wb,skel_export_include=Basic_skel_export.h \
+ -Gxhst -Gxhsk -Glem
+
+ IDL_Files {
+ Basic.idl
+ }
+}
+
+project(Reused_Facet_Interface_Basic_lem_gen) : ciaoidldefaults, anytypecode {
+ custom_only = 1
+ after += Reused_Facet_Interface_Basic_idl_gen
+ idlflags += -Wb,stub_export_macro=BASIC_STUB_Export \
+ -Wb,stub_export_include=Basic_stub_export.h \
+ -Wb,skel_export_macro=BASIC_SKEL_Export \
+ -Wb,skel_export_include=Basic_skel_export.h \
+ -Gxhst
+
+ IDL_Files {
+ BasicE.idl
+ }
+}
+
+project(Reused_Facet_Interface_Basic_stub) : ccm_stub {
+ after += Reused_Facet_Interface_Basic_lem_gen
+ libs +=
+
+ sharedname = Basic_stub
+ dynamicflags = BASIC_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ BasicC.cpp
+ BasicEC.cpp
+ }
+
+ Header_Files {
+ BasicC.h
+ Basic_stub_export.h
+ }
+
+ Inline_Files {
+ BasicC.inl
+ }
+}
+
+
+project(Reused_Facet_Interface_Basic_skel) : ciao_executor {
+ after += Reused_Facet_Interface_Basic_stub
+ sharedname = Basic_skel
+ libs += Basic_stub
+
+
+ dynamicflags = BASIC_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ BasicS.cpp
+ }
+
+ Header_Files {
+ BasicS.h
+ Basic_skel_export.h
+ }
+
+ Inline_Files {
+ BasicS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/CodeGen.idl b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/CodeGen.idl
new file mode 100644
index 00000000000..b55848abaa8
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/CodeGen.idl
@@ -0,0 +1,47 @@
+//$Id$
+
+#include "Basic.idl"
+#include "BasicE.idl"
+
+module Basic
+{
+ component Base supports Extra::Supernumerary, Extra::Superfluous
+ {
+ provides ReadData data_read;
+ attribute boolean is_not_necessary;
+ };
+
+ component CodeGen : Base
+ {
+ provides ReadData data_out;
+ uses ReadData data_in;
+ publishes DataAvailable out_avail;
+ consumes DataAvailable in_avail;
+ provides AnalyzeData data_crunch;
+
+ readonly attribute boolean is_necessary;
+ };
+
+ home BaseHome supports Extra::Supernumerary manages Base
+ {
+ void base_do_nothing ();
+
+ factory create_no_base (in long fake_id)
+ raises (Extra::NoRhyme);
+
+ finder find_no_base ();
+
+ readonly attribute boolean is_useful;
+ };
+
+ home CodeGenHome : BaseHome manages CodeGen
+ {
+ factory create_no_derived ();
+
+ finder find_no_derived ();
+
+ attribute boolean is_not_useful;
+
+ string do_nothing ();
+ };
+};
diff --git a/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/README b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/README
new file mode 100644
index 00000000000..b25ef8cfd1a
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/README
@@ -0,0 +1,12 @@
+
+Reused Facet Interface Test
+===========================
+
+This test uses IDL that contains a variety of port, attribute,
+operation, factory and finder definitions, some inherited. The
+main focus of the test, however, is the reuse of the same
+interface for two different facet ports. The facet servant class,
+and facet executor IDL interface must be generated only once.
+
+Jeff Parsons
+June 16, 2009 \ No newline at end of file
diff --git a/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Reused_Facet_Interface.mpc b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Reused_Facet_Interface.mpc
new file mode 100644
index 00000000000..fdb07b403ca
--- /dev/null
+++ b/modules/CIAO/tests/IDL_Test/Reused_Facet_Interface/Reused_Facet_Interface.mpc
@@ -0,0 +1,112 @@
+// $Id$
+//
+
+project(Reused_Facet_Interface_idl_gen) : componentidldefaults {
+ after += Reused_Facet_Interface_Basic_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=CODEGEN_STUB_Export \
+ -Wb,stub_export_include=CodeGen_stub_export.h \
+ -Wb,skel_export_macro=CODEGEN_SVNT_Export \
+ -Wb,skel_export_include=CodeGen_svnt_export.h \
+ -Wb,exec_export_macro=CODEGEN_EXEC_Export \
+ -Wb,exec_export_include=CodeGen_exec_export.h \
+ -Gex
+
+ IDL_Files {
+ CodeGen.idl
+ }
+}
+
+project(Reused_Facet_Interface_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Reused_Facet_Interface_idl_gen
+ idlflags += -Wb,export_macro=CODEGEN_EXEC_Export \
+ -Wb,export_include=CodeGen_exec_export.h \
+ -SS
+
+ IDL_Files {
+ CodeGenE.idl
+ }
+}
+
+project(Reused_Facet_Interface_stub) : ccm_stub {
+ after += Reused_Facet_Interface_idl_gen Reused_Facet_Interface_Basic_stub
+ libs += Basic_stub
+
+ sharedname = CodeGen_stub
+ dynamicflags = CODEGEN_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CodeGenC.cpp
+ }
+
+ Header_Files {
+ CodeGenC.h
+ CodeGen_stub_export.h
+ }
+
+ Inline_Files {
+ CodeGenC.inl
+ }
+}
+
+project(Reused_Facet_Interface_exec) : ciao_executor {
+ after += Reused_Facet_Interface_lem_gen Reused_Facet_Interface_stub
+ sharedname = CodeGen_exec
+ libs += CodeGen_stub Basic_stub
+
+ dynamicflags = CODEGEN_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CodeGenEC.cpp
+ CodeGen_exec.cpp
+ }
+
+ Header_Files {
+ CodeGenEC.h
+ CodeGen_exec.h
+ CodeGen_exec_export.h
+ }
+
+ Inline_Files {
+ CodeGenEC.inl
+ }
+}
+
+
+project(Reused_Facet_Interface_svnt) : ciao_servant {
+ after += Reused_Facet_Interface_Basic_skel Reused_Facet_Interface_exec
+ sharedname = CodeGen_svnt
+ libs += CodeGen_exec \
+ CodeGen_stub \
+ Basic_skel \
+ Basic_stub
+
+ dynamicflags = CODEGEN_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ CodeGenS.cpp
+ CodeGen_svnt.cpp
+ }
+
+ Header_Files {
+ CodeGenS.h
+ CodeGen_svnt.h
+ CodeGen_svnt_export.h
+ }
+
+ Inline_Files {
+ CodeGenS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.idl b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.idl
new file mode 100644
index 00000000000..e82cb0066a8
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.idl
@@ -0,0 +1,17 @@
+//$Id$:
+
+#ifndef CIAO_MINIMUM_IDL
+#define CIAO_MINIMUM_IDL
+
+#include <Components.idl>
+
+module Minimum
+{
+ interface ReadMessage
+ {
+ void foo ();
+ };
+
+};
+
+#endif /* CIAO_MINIMUM_IDL */
diff --git a/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.mpc b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.mpc
new file mode 100644
index 00000000000..afa77118760
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base.mpc
@@ -0,0 +1,65 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -n Minimum_Base"
+
+project(Minimum_Base_idl_gen) : ciaoidldefaults, anytypecode, ccm {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=MINIMUM_BASE_STUB_Export \
+ -Wb,stub_export_include=Minimum_Base_stub_export.h \
+ -Wb,skel_export_macro=MINIMUM_BASE_SKEL_Export \
+ -Wb,skel_export_include=Minimum_Base_skel_export.h
+
+ IDL_Files {
+ Minimum_Base.idl
+ }
+}
+
+project(Minimum_Base_stub) : ccm_stub {
+ after += Minimum_Base_idl_gen
+ libs +=
+
+ sharedname = Minimum_Base_stub
+ dynamicflags = MINIMUM_BASE_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Minimum_BaseC.cpp
+ }
+
+ Header_Files {
+ Minimum_BaseC.h
+ Minimum_Base_stub_export.h
+ }
+
+ Inline_Files {
+ Minimum_BaseC.inl
+ }
+}
+
+project(Minimum_Base_skel) : ccm_stub, portableserver {
+ after += Minimum_Base_stub
+ sharedname = Minimum_Base_skel
+ libs += Minimum_Base_stub
+
+
+ dynamicflags = MINIMUM_BASE_SKEL_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Minimum_BaseS.cpp
+ }
+
+ Header_Files {
+ Minimum_BaseS.h
+ Minimum_Base_skel_export.h
+ }
+
+ Inline_Files {
+ Minimum_BaseS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_skel_export.h b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_skel_export.h
new file mode 100644
index 00000000000..48d7cd0979b
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_skel_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl MINIMUM_BASE_SVNT
+// ------------------------------
+#ifndef MINIMUM_BASE_SKEL_EXPORT_H
+#define MINIMUM_BASE_SKEL_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (MINIMUM_BASE_SKEL_HAS_DLL)
+# define MINIMUM_BASE_SKEL_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && MINIMUM_BASE_SKEL_HAS_DLL */
+
+#if !defined (MINIMUM_BASE_SKEL_HAS_DLL)
+# define MINIMUM_BASE_SKEL_HAS_DLL 1
+#endif /* ! MINIMUM_BASE_SKEL_HAS_DLL */
+
+#if defined (MINIMUM_BASE_SKEL_HAS_DLL) && (MINIMUM_BASE_SKEL_HAS_DLL == 1)
+# if defined (MINIMUM_BASE_SKEL_BUILD_DLL)
+# define MINIMUM_BASE_SKEL_Export ACE_Proper_Export_Flag
+# define MINIMUM_BASE_SKEL_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define MINIMUM_BASE_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* MINIMUM_BASE_SKEL_BUILD_DLL */
+# define MINIMUM_BASE_SKEL_Export ACE_Proper_Import_Flag
+# define MINIMUM_BASE_SKEL_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define MINIMUM_BASE_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* MINIMUM_BASE_SKEL_BUILD_DLL */
+#else /* MINIMUM_BASE_SKEL_HAS_DLL == 1 */
+# define MINIMUM_BASE_SKEL_Export
+# define MINIMUM_BASE_SKEL_SINGLETON_DECLARATION(T)
+# define MINIMUM_BASE_SKEL_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* MINIMUM_BASE_SKEL_HAS_DLL == 1 */
+
+// Set MINIMUM_BASE_SKEL_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (MINIMUM_BASE_SKEL_NTRACE)
+# if (ACE_NTRACE == 1)
+# define MINIMUM_BASE_SKEL_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define MINIMUM_BASE_SKEL_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !MINIMUM_BASE_SKEL_NTRACE */
+
+#if (MINIMUM_BASE_SKEL_NTRACE == 1)
+# define MINIMUM_BASE_SKEL_TRACE(X)
+#else /* (MINIMUM_BASE_SKEL_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define MINIMUM_BASE_SKEL_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (MINIMUM_BASE_SKEL_NTRACE == 1) */
+
+#endif /* MINIMUM_BASE_SKEL_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_stub_export.h b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_stub_export.h
new file mode 100644
index 00000000000..99c1d64369b
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Minimum_Base/Minimum_Base_stub_export.h
@@ -0,0 +1,58 @@
+
+// -*- C++ -*-
+// $Id$
+// Definition for Win32 Export directives.
+// This file is generated automatically by generate_export_file.pl MINIMUM_BASE_STUB
+// ------------------------------
+#ifndef MINIMUM_BASE_STUB_EXPORT_H
+#define MINIMUM_BASE_STUB_EXPORT_H
+
+#include "ace/config-all.h"
+
+#if defined (ACE_AS_STATIC_LIBS) && !defined (MINIMUM_BASE_STUB_HAS_DLL)
+# define MINIMUM_BASE_STUB_HAS_DLL 0
+#endif /* ACE_AS_STATIC_LIBS && MINIMUM_BASE_STUB_HAS_DLL */
+
+#if !defined (MINIMUM_BASE_STUB_HAS_DLL)
+# define MINIMUM_BASE_STUB_HAS_DLL 1
+#endif /* ! MINIMUM_BASE_STUB_HAS_DLL */
+
+#if defined (MINIMUM_BASE_STUB_HAS_DLL) && (MINIMUM_BASE_STUB_HAS_DLL == 1)
+# if defined (MINIMUM_BASE_STUB_BUILD_DLL)
+# define MINIMUM_BASE_STUB_Export ACE_Proper_Export_Flag
+# define MINIMUM_BASE_STUB_SINGLETON_DECLARATION(T) ACE_EXPORT_SINGLETON_DECLARATION (T)
+# define MINIMUM_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# else /* MINIMUM_BASE_STUB_BUILD_DLL */
+# define MINIMUM_BASE_STUB_Export ACE_Proper_Import_Flag
+# define MINIMUM_BASE_STUB_SINGLETON_DECLARATION(T) ACE_IMPORT_SINGLETON_DECLARATION (T)
+# define MINIMUM_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+# endif /* MINIMUM_BASE_STUB_BUILD_DLL */
+#else /* MINIMUM_BASE_STUB_HAS_DLL == 1 */
+# define MINIMUM_BASE_STUB_Export
+# define MINIMUM_BASE_STUB_SINGLETON_DECLARATION(T)
+# define MINIMUM_BASE_STUB_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+#endif /* MINIMUM_BASE_STUB_HAS_DLL == 1 */
+
+// Set MINIMUM_BASE_STUB_NTRACE = 0 to turn on library specific tracing even if
+// tracing is turned off for ACE.
+#if !defined (MINIMUM_BASE_STUB_NTRACE)
+# if (ACE_NTRACE == 1)
+# define MINIMUM_BASE_STUB_NTRACE 1
+# else /* (ACE_NTRACE == 1) */
+# define MINIMUM_BASE_STUB_NTRACE 0
+# endif /* (ACE_NTRACE == 1) */
+#endif /* !MINIMUM_BASE_STUB_NTRACE */
+
+#if (MINIMUM_BASE_STUB_NTRACE == 1)
+# define MINIMUM_BASE_STUB_TRACE(X)
+#else /* (MINIMUM_BASE_STUB_NTRACE == 1) */
+# if !defined (ACE_HAS_TRACE)
+# define ACE_HAS_TRACE
+# endif /* ACE_HAS_TRACE */
+# define MINIMUM_BASE_STUB_TRACE(X) ACE_TRACE_IMPL(X)
+# include "ace/Trace.h"
+#endif /* (MINIMUM_BASE_STUB_NTRACE == 1) */
+
+#endif /* MINIMUM_BASE_STUB_EXPORT_H */
+
+// End of auto generated file.
diff --git a/modules/CIAO/tests/Minimum/Receiver/Receiver.idl b/modules/CIAO/tests/Minimum/Receiver/Receiver.idl
new file mode 100644
index 00000000000..219baec17d0
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Receiver/Receiver.idl
@@ -0,0 +1,18 @@
+//$Id$:
+
+#ifndef RECEIVER_IDL
+#define RECEIVER_IDL
+
+#include "../Minimum_Base/Minimum_Base.idl"
+
+module Minimum
+{
+ component Receiver
+ {
+ };
+
+ home ReceiverHome manages Receiver
+ {
+ };
+};
+#endif /*RECEIVER_IDL*/
diff --git a/modules/CIAO/tests/Minimum/Receiver/Receiver.mpc b/modules/CIAO/tests/Minimum/Receiver/Receiver.mpc
new file mode 100644
index 00000000000..0bd74e3971f
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Receiver/Receiver.mpc
@@ -0,0 +1,134 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Minimum_Base Receiver"
+
+project(Minimum_Base_Receiver_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=RECEIVER_STUB_Export \
+ -Wb,stub_export_include=Receiver_stub_export.h \
+ -Wb,skel_export_macro=RECEIVER_SVNT_Export \
+ -Wb,skel_export_include=Receiver_svnt_export.h \
+ -Wb,exec_export_macro=RECEIVER_EXEC_Export \
+ -Wb,exec_export_include=Receiver_exec_export.h
+
+ IDL_Files {
+ Receiver.idl
+ }
+}
+
+project(Minimum_Base_Receiver_lem_gen) : ciaoidldefaults {
+ after += Minimum_Base_Receiver_idl_gen
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=RECEIVER_LEM_STUB_Export \
+ -Wb,stub_export_include=Receiver_lem_stub_export.h \
+ -SS -Gxhst
+
+ IDL_Files {
+ ReceiverE.idl
+ }
+}
+
+project(Minimum_Base_Receiver_lem_stub) : ccm_svnt {
+ after += Minimum_Base_Receiver_lem_gen Minimum_Base_Receiver_stub Minimum_Base_stub
+ libs += Minimum_Base_stub Receiver_stub
+ libpaths += ../Minimum_Base
+
+ sharedname = Receiver_lem_stub
+ dynamicflags = RECEIVER_LEM_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverEC.cpp
+ }
+
+ Header_Files {
+ ReceiverEC.h
+ Receiver_lem_stub_export.h
+ }
+
+ Inline_Files {
+ ReceiverEC.inl
+ }
+}
+
+project(Minimum_Base_Receiver_stub) : ccm_stub {
+ after += Minimum_Base_Receiver_idl_gen Minimum_Base_stub
+ libs += Minimum_Base_stub
+ libpaths += ../Minimum_Base
+
+ sharedname = Receiver_stub
+ dynamicflags = RECEIVER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverC.cpp
+ }
+
+ Header_Files {
+ ReceiverC.h
+ Receiver_stub_export.h
+ }
+
+ Inline_Files {
+ ReceiverC.inl
+ }
+}
+
+project(Minimum_Base_Receiver_exec) : ciao_executor {
+ after += Minimum_Base_Receiver_lem_stub Minimum_Base_Receiver_stub
+ sharedname = Receiver_exec
+ libs += Receiver_stub Receiver_lem_stub Minimum_Base_stub
+ libpaths += ../Minimum_Base
+
+ dynamicflags = RECEIVER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ Receiver_exec.cpp
+ }
+
+ Header_Files {
+ Receiver_exec.h
+ Receiver_exec_export.h
+ }
+
+ Inline_Files {
+ }
+}
+
+
+project(Minimum_Base_Receiver_svnt) : ciao_servant {
+ after += Minimum_Base_skel Minimum_Base_Receiver_lem_stub
+ sharedname = Receiver_svnt
+ libs += Receiver_stub Receiver_lem_stub \
+ Minimum_Base_skel \
+ Minimum_Base_stub
+ libpaths += ../Minimum_Base
+
+ dynamicflags = RECEIVER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ ReceiverS.cpp
+ Receiver_svnt.cpp
+ }
+
+ Header_Files {
+ ReceiverS.h
+ Receiver_svnt.h
+ Receiver_svnt_export.h
+ }
+
+ Inline_Files {
+ ReceiverS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/Minimum/Receiver/Receiver_exec.cpp b/modules/CIAO/tests/Minimum/Receiver/Receiver_exec.cpp
new file mode 100644
index 00000000000..19d56a21b0b
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Receiver/Receiver_exec.cpp
@@ -0,0 +1,132 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "Receiver_exec.h"
+
+namespace CIAO_Minimum_Receiver_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: Receiver_exec_i
+ //==================================================================
+
+ Receiver_exec_i::Receiver_exec_i (void)
+ {
+ }
+
+ Receiver_exec_i::~Receiver_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ Receiver_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Minimum::CCM_Receiver_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Receiver_exec_i::configuration_complete ()
+ {
+ // Your code here.
+ }
+
+ void
+ Receiver_exec_i::ccm_activate ()
+ {
+ // Your code here.
+ }
+
+ void
+ Receiver_exec_i::ccm_passivate ()
+ {
+ // Your code here.
+ }
+
+ void
+ Receiver_exec_i::ccm_remove ()
+ {
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: ReceiverHome_exec_i
+ //==================================================================
+
+ ReceiverHome_exec_i::ReceiverHome_exec_i (void)
+ {
+ }
+
+ ReceiverHome_exec_i::~ReceiverHome_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ ReceiverHome_exec_i::create ()
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ Receiver_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Minimum_ReceiverHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ ReceiverHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/tests/Minimum/Receiver/Receiver_exec.h b/modules/CIAO/tests/Minimum/Receiver/Receiver_exec.h
new file mode 100644
index 00000000000..b8e7b3fae39
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Receiver/Receiver_exec.h
@@ -0,0 +1,98 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_RECEIVER_EXEC_H
+#define CIAO_RECEIVER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "ReceiverEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Receiver_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Minimum_Receiver_Impl
+{
+ class RECEIVER_EXEC_Export Receiver_exec_i
+ : public virtual Receiver_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Receiver_exec_i (void);
+ virtual ~Receiver_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Minimum::CCM_Receiver_Context_var context_;
+ };
+
+ class RECEIVER_EXEC_Export ReceiverHome_exec_i
+ : public virtual ReceiverHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ ReceiverHome_exec_i (void);
+ virtual ~ReceiverHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" RECEIVER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Minimum_ReceiverHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_RECEIVER_EXEC_H */
+
diff --git a/modules/CIAO/tests/Minimum/Sender/Sender.idl b/modules/CIAO/tests/Minimum/Sender/Sender.idl
new file mode 100644
index 00000000000..74b9bf76f9a
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Sender/Sender.idl
@@ -0,0 +1,28 @@
+//$Id$
+
+#ifndef CIAO_SENDER_IDL
+#define CIAO_SENDER_IDL
+
+
+#include "../Minimum_Base/Minimum_Base.idl"
+
+module Minimum
+{
+ /* This is a Sender specific interface which will be used to get the
+ * process start.
+ */
+
+ interface trigger
+ {
+ void bar ();
+ };
+
+ component Sender supports trigger
+ {
+ };
+
+ home SenderHome manages Sender
+ {
+ };
+};
+#endif /*CIAO_SENDER_IDL*/
diff --git a/modules/CIAO/tests/Minimum/Sender/Sender.mpc b/modules/CIAO/tests/Minimum/Sender/Sender.mpc
new file mode 100644
index 00000000000..3e1aea88bac
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Sender/Sender.mpc
@@ -0,0 +1,113 @@
+// $Id$
+// This file is generated with "generate_component_mpc.pl -p Minimum_Base Sender"
+
+project(Minimum_Base_Sender_idl_gen) : componentidldefaults {
+ custom_only = 1
+ idlflags += -Wb,stub_export_macro=SENDER_STUB_Export \
+ -Wb,stub_export_include=Sender_stub_export.h \
+ -Wb,skel_export_macro=SENDER_SVNT_Export \
+ -Wb,skel_export_include=Sender_svnt_export.h \
+ -Wb,exec_export_macro=SENDER_EXEC_Export \
+ -Wb,exec_export_include=Sender_exec_export.h \
+
+ IDL_Files {
+ Sender.idl
+ }
+}
+
+project(Minimum_Base_Sender_lem_gen) : ciaoidldefaults {
+ custom_only = 1
+ after += Minimum_Base_Sender_idl_gen
+ idlflags += -Wb,export_macro=SENDER_EXEC_Export \
+ -Wb,export_include=Sender_exec_export.h \
+ -SS
+
+ IDL_Files {
+ SenderE.idl
+ }
+}
+
+project(Minimum_Base_Sender_stub) : ccm_stub {
+ after += Minimum_Base_Sender_idl_gen Minimum_Base_stub
+ libs += Minimum_Base_stub
+ libpaths += ../Minimum_Base
+
+ sharedname = Sender_stub
+ dynamicflags = SENDER_STUB_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SenderC.cpp
+ }
+
+ Header_Files {
+ SenderC.h
+ Sender_stub_export.h
+ }
+
+ Inline_Files {
+ SenderC.inl
+ }
+}
+
+project(Minimum_Base_Sender_exec) : ciao_executor {
+ after += Minimum_Base_Sender_lem_gen Minimum_Base_Sender_stub
+ sharedname = Sender_exec
+ libs += Sender_stub Minimum_Base_stub
+ libpaths += ../Minimum_Base
+
+ dynamicflags = SENDER_EXEC_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SenderEC.cpp
+ Sender_exec.cpp
+ }
+
+ Header_Files {
+ SenderEC.h
+ Sender_exec.h
+ Sender_exec_export.h
+ }
+
+ Inline_Files {
+ SenderEC.inl
+ }
+}
+
+
+project(Minimum_Base_Sender_svnt) : ciao_servant {
+ after += Minimum_Base_skel Minimum_Base_Sender_exec
+ sharedname = Sender_svnt
+ libs += Sender_exec \
+ Sender_stub \
+ Minimum_Base_skel \
+ Minimum_Base_stub
+ libpaths += ../Minimum_Base
+
+ dynamicflags = SENDER_SVNT_BUILD_DLL
+
+ IDL_Files {
+ }
+
+ Source_Files {
+ SenderS.cpp
+ Sender_svnt.cpp
+ }
+
+ Header_Files {
+ SenderS.h
+ Sender_svnt.h
+ Sender_svnt_export.h
+ }
+
+ Inline_Files {
+ SenderS.inl
+ }
+}
+
+
diff --git a/modules/CIAO/tests/Minimum/Sender/Sender_exec.cpp b/modules/CIAO/tests/Minimum/Sender/Sender_exec.cpp
new file mode 100644
index 00000000000..3e05bf6987c
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Sender/Sender_exec.cpp
@@ -0,0 +1,138 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#include "Sender_exec.h"
+
+namespace CIAO_Minimum_Sender_Impl
+{
+ //==================================================================
+ // Component Executor Implementation Class: Sender_exec_i
+ //==================================================================
+
+ Sender_exec_i::Sender_exec_i (void)
+ {
+ }
+
+ Sender_exec_i::~Sender_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ void
+ Sender_exec_i::bar ()
+ {
+ // Your code here.
+ }
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ void
+ Sender_exec_i::set_session_context (
+ ::Components::SessionContext_ptr ctx)
+ {
+ this->context_ =
+ ::Minimum::CCM_Sender_Context::_narrow (ctx);
+
+ if (CORBA::is_nil (this->context_.in ()))
+ {
+ throw ::CORBA::INTERNAL ();
+ }
+ }
+
+ void
+ Sender_exec_i::configuration_complete ()
+ {
+ // Your code here.
+ }
+
+ void
+ Sender_exec_i::ccm_activate ()
+ {
+ // Your code here.
+ }
+
+ void
+ Sender_exec_i::ccm_passivate ()
+ {
+ // Your code here.
+ }
+
+ void
+ Sender_exec_i::ccm_remove ()
+ {
+ // Your code here.
+ }
+
+ //==================================================================
+ // Home Executor Implementation Class: SenderHome_exec_i
+ //==================================================================
+
+ SenderHome_exec_i::SenderHome_exec_i (void)
+ {
+ }
+
+ SenderHome_exec_i::~SenderHome_exec_i (void)
+ {
+ }
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ ::Components::EnterpriseComponent_ptr
+ SenderHome_exec_i::create ()
+ {
+ ::Components::EnterpriseComponent_ptr retval =
+ ::Components::EnterpriseComponent::_nil ();
+
+ ACE_NEW_THROW_EX (
+ retval,
+ Sender_exec_i,
+ ::CORBA::NO_MEMORY ());
+
+ return retval;
+ }
+
+ extern "C" SENDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Minimum_SenderHome_Impl (void)
+ {
+ ::Components::HomeExecutorBase_ptr retval =
+ ::Components::HomeExecutorBase::_nil ();
+
+ ACE_NEW_RETURN (
+ retval,
+ SenderHome_exec_i,
+ ::Components::HomeExecutorBase::_nil ());
+
+ return retval;
+ }
+}
+
diff --git a/modules/CIAO/tests/Minimum/Sender/Sender_exec.h b/modules/CIAO/tests/Minimum/Sender/Sender_exec.h
new file mode 100644
index 00000000000..bbabf471aae
--- /dev/null
+++ b/modules/CIAO/tests/Minimum/Sender/Sender_exec.h
@@ -0,0 +1,101 @@
+// $Id$
+//
+// **** Code generated by the ****
+// **** Component Integrated ACE ORB (CIAO) CIDL Compiler ****
+// CIAO has been developed by:
+// Center for Distributed Object Computing
+// Washington University
+// St. Louis, MO
+// USA
+// http://www.cs.wustl.edu/~schmidt/doc-center.html
+// CIDL Compiler has been developed by:
+// Institute for Software Integrated Systems
+// Vanderbilt University
+// Nashville, TN
+// USA
+// http://www.isis.vanderbilt.edu/
+//
+// Information about CIAO is available at:
+// http://www.dre.vanderbilt.edu/CIAO
+
+#ifndef CIAO_SENDER_EXEC_H
+#define CIAO_SENDER_EXEC_H
+
+#include /**/ "ace/pre.h"
+
+#include "SenderEC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "Sender_exec_export.h"
+#include "tao/LocalObject.h"
+
+namespace CIAO_Minimum_Sender_Impl
+{
+ class SENDER_EXEC_Export Sender_exec_i
+ : public virtual Sender_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ Sender_exec_i (void);
+ virtual ~Sender_exec_i (void);
+
+ // Supported or inherited operations.
+
+ virtual void
+ bar ();
+
+ // Attribute operations.
+
+ // Port operations.
+
+ // Operations from Components::SessionComponent
+
+ virtual void
+ set_session_context (
+ ::Components::SessionContext_ptr ctx);
+
+ virtual void configuration_complete ();
+
+ virtual void ccm_activate ();
+
+ virtual void ccm_passivate ();
+
+ virtual void ccm_remove ();
+
+ private:
+ ::Minimum::CCM_Sender_Context_var context_;
+ };
+
+ class SENDER_EXEC_Export SenderHome_exec_i
+ : public virtual SenderHome_Exec,
+ public virtual ::CORBA::LocalObject
+ {
+ public:
+ SenderHome_exec_i (void);
+ virtual ~SenderHome_exec_i (void);
+
+ // Supported or inherited operations.
+
+ // Home operations.
+
+ // Factory and finder operations.
+
+ // Attribute operations.
+
+ // Implicit operations.
+
+ virtual ::Components::EnterpriseComponent_ptr
+ create ();
+ };
+
+ extern "C" SENDER_EXEC_Export ::Components::HomeExecutorBase_ptr
+ create_Minimum_SenderHome_Impl (void);
+}
+
+#include /**/ "ace/post.h"
+
+#endif /* CIAO_SENDER_EXEC_H */
+
diff --git a/modules/CIAO/tests/tests.mwc b/modules/CIAO/tests/tests.mwc
new file mode 100644
index 00000000000..6479880bd23
--- /dev/null
+++ b/modules/CIAO/tests/tests.mwc
@@ -0,0 +1,9 @@
+// -*- MPC -*-
+// $Id$
+
+workspace {
+ exclude {
+ RTCCM
+ }
+
+} \ No newline at end of file