summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkitty <kitty@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-12-01 05:53:06 +0000
committerkitty <kitty@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-12-01 05:53:06 +0000
commit8ec2f7d6281c69b6dc3554f861f6bb1e4d1bea5b (patch)
tree790ef9138801a080177a56f9ff39c141a5c50507
parentfb2cdb3a6221ac91461e126f0e8555b9a872ec54 (diff)
downloadATCD-8ec2f7d6281c69b6dc3554f861f6bb1e4d1bea5b.tar.gz
ChangeLogTag: Mon Nov 25 04:25:15 2002 Krishnakumar B <kitty@cs.wustl.edu>
-rw-r--r--ACEXML/compass/ComponentInstallation.cpp38
-rw-r--r--ACEXML/compass/Container.cpp2
-rw-r--r--ACEXML/compass/Deployment.cpp89
-rw-r--r--ACEXML/compass/Deployment.h43
-rw-r--r--ACEXML/compass/EC_Property.cpp80
-rw-r--r--ACEXML/compass/EC_Property.h36
-rw-r--r--ACEXML/compass/Property.h26
-rw-r--r--ACEXML/compass/PropertyFile_Handler.cpp206
-rw-r--r--ACEXML/compass/PropertyFile_Handler.h62
-rw-r--r--ACEXML/compass/SoftPkg.cpp56
-rw-r--r--ACEXML/compass/SoftPkg.h78
-rw-r--r--ACEXML/compass/component.xml88
-rw-r--r--ACEXML/compass/componentassembly.dtd326
-rw-r--r--ACEXML/compass/componentassembly.xml138
-rw-r--r--ACEXML/compass/corbacomponent.dtd302
-rw-r--r--ACEXML/compass/eventchannel.cpf34
-rw-r--r--ACEXML/compass/meta-inf44
-rw-r--r--ACEXML/compass/properties.dtd82
-rw-r--r--ACEXML/compass/properties.xml34
-rw-r--r--ACEXML/compass/softpkg.dtd187
-rw-r--r--ACEXML/compass/softpkg.xml44
-rw-r--r--ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp7
22 files changed, 1843 insertions, 159 deletions
diff --git a/ACEXML/compass/ComponentInstallation.cpp b/ACEXML/compass/ComponentInstallation.cpp
index 4b169ef5e46..76d72df5745 100644
--- a/ACEXML/compass/ComponentInstallation.cpp
+++ b/ACEXML/compass/ComponentInstallation.cpp
@@ -1,6 +1,7 @@
// $Id$
#include "ACEXML/compass/ComponentInstallation.h"
+#include "ACEXML/common/ZipCharStream.h"
using namespace Deployment;
@@ -19,11 +20,44 @@ ComponentInstallation::install (const UUID& implUUID,
ACE_THROW_SPEC ((InvalidLocation,InstallationFailure))
{
if (implUUID == empty_string)
- ACE_THROW (InstallationFailure());
+ {
+ ACE_ERROR ((LM_ERROR, "Implementation id is an Empty string\n"));
+ ACE_THROW (InstallationFailure());
+ }
else if (component_loc == empty_string)
- ACE_THROW (InvalidLocation());
+ {
+ ACE_ERROR ((LM_ERROR, "Component Location is an Empty string\n"));
+ ACE_THROW (InvalidLocation());
+ }
else if (this->packages_->bind (implUUID, component_loc) != 0)
+ {
+ ACE_ERROR ((LM_ERROR, "Component %s already installed\n",
+ implUUID.c_str()));
+ ACE_THROW (InstallationFailure());
+ }
+ ACEXML_StreamFactory factory;
+ ACEXML_CharStream* stream = factory.create_stream (component_loc.c_str());
+ if (!stream)
+ {
+ ACE_ERROR ((LM_ERROR, "Unable to create a stream for the Component"
+ "location %s\n", component_loc.c_str()));
+ ACE_THROW (InstallationFailure());
+ }
+ ACEXML_Char temp[MAXNAMLEN + 1] = "acefileXXXXXX";
+ if (mkdtemp (temp) == 0)
+ {
+ ACE_ERROR ((LM_ERROR, "Unable to create safe temporary directory\n"));
+ ACE_THROW (InstallationFailure());
+ }
+ ACEXML_String dsoname = temp +
+ FILE* dso = ACE_OS::fopen (temp, "w");
+ if (dso == 0)
+ {
+
ACE_THROW (InstallationFailure());
+
+
+
}
void
diff --git a/ACEXML/compass/Container.cpp b/ACEXML/compass/Container.cpp
index ab15c08d0a8..8be3fb6cd5e 100644
--- a/ACEXML/compass/Container.cpp
+++ b/ACEXML/compass/Container.cpp
@@ -21,4 +21,4 @@ Container::install_home (const UUID& id, const string& entrypt,
ACE_THROW_SPEC ((UnknownImplId, ImplEntryPointNotFound,
InstallationFailure, InvalidConfiguration))
{
- if (COMP
+ if (COMP_SER
diff --git a/ACEXML/compass/Deployment.cpp b/ACEXML/compass/Deployment.cpp
new file mode 100644
index 00000000000..9bf839fd0b3
--- /dev/null
+++ b/ACEXML/compass/Deployment.cpp
@@ -0,0 +1,89 @@
+// $Id$
+
+#include "ACEXML/common/XML_Types.h"
+#include "ACEXML/common/StreamFactory.h"
+#include "ACEXML/parser/parser/Parser.h"
+#include "ACEXML/compass/SoftPkgHandler.h"
+#include "ace/Get_Opt.h"
+
+static void
+usage (const ACE_TCHAR* program)
+{
+ ACE_ERROR ((LM_ERROR,
+ ACE_TEXT ("Usage: %s [-l <filename>]")
+ ACE_TEXT (" -l: Install components from filename")
+ program));
+}
+
+int
+ACE_TMAIN (int argc, char* argv[])
+{
+ ACEXML_Char* filename = 0;
+ ACE_Get_Opt get_opt (argc, argv, ACE_TEXT ("l:"));
+ int c;
+
+ while ((c = get_opt ()) != EOF)
+ {
+ switch (c)
+ {
+ case 'l':
+ filename = get_opt.opt_arg ();
+ break;
+ default:
+ usage(argv[0]);
+ return -1;
+ }
+ }
+ if (filename == 0)
+ {
+ usage(argv[0]);
+ return -1;
+ }
+ const ACEXML_Char meta-inf[] = {'m', 'e', 't', 'a', '-', 'i', 'n', 'f'};
+ const ACEXML_Char* path = 0;
+ size_t pos = ACE_OS::strlen (filename);
+ if ((ACEXML_Char* temp = ACE_OS::strrchr (filename, '.')) != 0)
+ pos = temp - filename + 1;
+ size_t len = pos + sizeof (meta-inf) +
+ sizeof (ACE_DIRECTORY_SEPARATOR_CHAR) + sizeof (ACE_TCHAR);
+ ACE_NEW_RETURN (path, ACEXML_Char[len], -1);
+ ACE_Auto_Basic_Array_Ptr<ACEXML_Char> cleanup_path (path);
+
+ ACE_OS::strncpy (path, filename, pos);
+ path[pos++] = ACE_DIRECTORY_SEPARATOR_CHAR;
+ ACE_OS::strcpy (path + pos, meta-inf);
+
+ ACEXML_StreamFactory factory;
+ ACEXML_CharStream* stream = factory.create_stream (path);
+ if (!stream)
+ {
+ ACE_ERROR ((LM_ERROR, "Failed to create input stream from %s\n",
+ path));
+ return -1;
+ }
+
+ ACEXML_DefaultHandler* handler = 0;
+ ACE_NEW_RETURN (handler, SoftPkgHandler (name), -1);
+ auto_ptr<ACEXML_DefaultHandler> cleanup_handler (handler);
+
+ ACEXML_Parser parser;
+ ACEXML_InputSource input (stm);
+
+ parser.setContentHandler (handler);
+ parser.setDTDHandler (handler);
+ parser.setErrorHandler (handler);
+ parser.setEntityResolver (handler);
+
+ ACEXML_TRY_NEW_ENV
+ {
+ parser.parse (&input ACEXML_ENV_ARG_PARAMETER);
+ ACEXML_TRY_CHECK;
+ }
+ ACEXML_CATCH (ACEXML_SAXException, ex)
+ {
+ ACE_UNUSED_ARG (ex);
+ ACE_DEBUG ((LM_ERROR, ACE_TEXT ("Exception occurred. Exiting...\n")));
+ }
+ ACEXML_ENDTRY;
+ return 0;
+}
diff --git a/ACEXML/compass/Deployment.h b/ACEXML/compass/Deployment.h
deleted file mode 100644
index 8c8473fffcb..00000000000
--- a/ACEXML/compass/Deployment.h
+++ /dev/null
@@ -1,43 +0,0 @@
-// $Id$
-
-#ifndef COMPASS_DEPLOYMENT_H
-#define COMPASS_DEPLOYMENT_H
-
-#include "ace/OS_String.h"
-#include <vector>
-
-// *************** Packaging and Deployment ***************
-
-namespace Deployment
-{
- typedef string UUID;
- typedef string Location;
- typedef unsigned long FailureReason;
- typedef string Cookie;
-
- enum AssemblyState
- {
- INACTIVE,
- INSERVICE
- };
-
- typedef string FeatureName;
-
- struct ConfigValue
- {
- FeatureName name;
- string value;
- };
- typedef vector<ConfigValue*> ConfigValues;
-
- struct UnknownImplId {};
- struct InvalidLocation {};
- struct InstallationFailure { FailureReason reason; };
- struct InvalidAssembly {};
- struct RemoveFailure { FailureReason reason; };
-
- struct ImplEntryPointNotFound {};
-
-};
-
-#endif /* COMPASS_DEPLOYMENT_H */
diff --git a/ACEXML/compass/EC_Property.cpp b/ACEXML/compass/EC_Property.cpp
new file mode 100644
index 00000000000..181956a8bf8
--- /dev/null
+++ b/ACEXML/compass/EC_Property.cpp
@@ -0,0 +1,80 @@
+// $Id$
+
+#include "ACEXML/compass/EC_Property.h"
+#include "ace/OS_String.h"
+
+ACEXML_EC_Property::ACEXML_EC_Property()
+ : ec_consumer_control_period_ (0), ec_supplier_control_period_ (0)
+{}
+
+ACEXML_EC_Property::~ACEXML_EC_Property()
+{}
+
+int
+ACEXML_EC_Property::set (const ACEXML_String& property,
+ const ACEXML_String& value)
+{
+ const ACEXML_Char* prop = property.c_str();
+ if (ACE_OS::strcmp (prop, "ECDispatching") == 0)
+ this->ec_dispatching_ = value;
+ else if (ACE_OS::strcmp (prop, "ECFiltering") == 0)
+ this->ec_filtering_ = value;
+ else if (ACE_OS::strcmp (prop, "ECSupplierFiltering") == 0)
+ this->ec_supplier_filtering_ = value;
+ else if (ACE_OS::strcmp (prop, "ECProxyConsumerLock") == 0)
+ this->ec_proxy_consumer_lock_ = value;
+ else if (ACE_OS::strcmp (prop, "ECProxySupplierLock") == 0)
+ this->ec_proxy_supplier_lock_ = value;
+ else if (ACE_OS::strcmp (prop, "ECConsumerControl") == 0)
+ this->ec_consumer_control_ = value;
+ else if (ACE_OS::strcmp (prop, "ECSupplierControl") == 0)
+ this->ec_supplier_control_ = value;
+ else
+ {
+ ACE_ERROR ((LM_ERROR, "Unknown property %s in property file", prop));
+ return -1;
+ }
+ return 0;
+}
+
+int
+ACEXML_EC_Property::set (const ACEXML_String& property, const long value)
+{
+ const ACEXML_Char* prop = property.c_str();
+ if (ACE_OS::strcmp (prop, "ECConsumerControlPeriod") == 0)
+ this->ec_consumer_control_period_ = value;
+ else if (ACE_OS::strcmp (prop, "ECSupplierControlPeriod") == 0)
+ this->ec_supplier_control_period_ = value;
+ else
+ {
+ ACE_ERROR ((LM_ERROR, "Unknown property %s in property file", prop));
+ return -1;
+ }
+ return 0;
+}
+
+ACEXML_Char*
+ACEXML_EC_Property::dump()
+{
+ ACEXML_String argv ("-ECDispatching");
+ argv += this->ec_dispatching_ + '\x20';
+ argv += "-ECFiltering";
+ argv += this->ec_filtering_ + '\x20';
+ argv += "-ECSupplierFiltering";
+ argv += this->ec_supplier_filtering_ + '\x20';
+ argv += "-ECProxyConsumerLock";
+ argv += this->ec_proxy_consumer_lock_+ '\x20';
+ argv += "-ECProxySupplierLock";
+ argv += this->ec_proxy_supplier_lock_ + '\x20';
+ argv += "-ECConsumerControl";
+ argv += this->ec_consumer_control_ + '\x20';
+ argv += "-ECSupplierControl";
+ argv += this->ec_supplier_control_ + '\x20';
+ argv += "-ECConsumerControlPeriod";
+ char temp[20] = {0};
+ ACE_OS::sprintf (temp, "%ld", this->ec_consumer_control_period_);
+ argv += temp + '\x20';
+ ACE_OS::sprintf (temp, "%ld", this->ec_supplier_control_period_);
+ argv += temp + '\x20';
+ return argv.rep();
+}
diff --git a/ACEXML/compass/EC_Property.h b/ACEXML/compass/EC_Property.h
new file mode 100644
index 00000000000..7fc158ff73d
--- /dev/null
+++ b/ACEXML/compass/EC_Property.h
@@ -0,0 +1,36 @@
+// $Id$
+
+#ifndef ACEXML_EC_PROPERTY_H
+#define ACEXML_EC_PROPERTY_H
+
+#include "ace/pre.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ACEXML/common/XML_Types.h"
+
+class ACEXML_EC_Property : public ACEXML_Property
+{
+public:
+ ACEXML_EC_Property();
+ virtual ~ACEXML_EC_Property();
+ virtual int set (const ACEXML_String& property, const ACEXML_String& value);
+ virtual int set (const ACEXML_String& property, const long value);
+ virtual ACE_ARGV* dump() const;
+private:
+ ACEXML_String ec_dispatching_;
+ ACEXML_String ec_filtering_;
+ ACEXML_String ec_supplier_filtering_;
+ ACEXML_String ec_proxy_consumer_lock_;
+ ACEXML_String ec_proxy_supplier_lock_;
+ ACEXML_String ec_consumer_control_;
+ ACEXML_String ec_supplier_control_;
+ long ec_consumer_control_period_;
+ long ec_supplier_control_period_;
+};
+
+#include "ace/post.h"
+
+#endif /* ACEXML_EC_PROPERTY_H */
diff --git a/ACEXML/compass/Property.h b/ACEXML/compass/Property.h
new file mode 100644
index 00000000000..b9bcd7a0970
--- /dev/null
+++ b/ACEXML/compass/Property.h
@@ -0,0 +1,26 @@
+// $Id$
+
+#ifndef ACEXML_PROPERTY_H
+#define ACEXML_PROPERTY_H
+
+#include "ace/pre.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ACEXML/common/XML_Types.h"
+#include "ace/ARGV.h"
+
+class ACEXML_Property
+{
+public:
+ ACEXML_Property(void);
+ virtual ~ACEXML_Property();
+ virtual set (const ACEXML_String& property, const ACEXML_String& value) = 0;
+ virtual ACE_ARGV* dump() const = 0;
+}
+
+#include "ace/post.h"
+
+#endif /* ACEXML_PROPERTY_H */
diff --git a/ACEXML/compass/PropertyFile_Handler.cpp b/ACEXML/compass/PropertyFile_Handler.cpp
index f556450d18e..febeed540c7 100644
--- a/ACEXML/compass/PropertyFile_Handler.cpp
+++ b/ACEXML/compass/PropertyFile_Handler.cpp
@@ -1,4 +1,4 @@
-// -*- C++ -*- $Id$
+// $Id$
#include "PropertyFile_Handler.h"
#include "ace/ACE.h"
@@ -8,8 +8,10 @@
# include "PropertyFile_Handler.inl"
#endif /* __ACEXML_INLINE__ */
+static const ACEXML_Char empty_string[] = {0};
+
ACEXML_PropertyFile_Handler::ACEXML_PropertyFile_Handler (const ACEXML_Char* filename)
- : fileName_(ACE::strnew (filename)), locator_ (0)
+ : fileName_(ACE::strnew (filename)), locator_ (0), property_ (0)
{
// no-op
}
@@ -17,148 +19,174 @@ ACEXML_PropertyFile_Handler::ACEXML_PropertyFile_Handler (const ACEXML_Char* fil
ACEXML_PropertyFile_Handler::~ACEXML_PropertyFile_Handler (void)
{
delete [] this->fileName_;
+ delete this->property_;
+}
+
+const ACEXML_Property*
+ACEXML_PropertyFile_Handler::get_property (void) const
+{
+ return this->property_;
}
void
-ACEXML_PropertyFile_Handler::characters (const ACEXML_Char *cdata,
- int start,
- int length
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_PropertyFile_Handler::startDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((ACEXML_SAXException))
{
-
- ACE_UNUSED_ARG (start);
- ACE_UNUSED_ARG (length);
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("%s"),
- cdata));
}
void
-ACEXML_PropertyFile_Handler::endDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED)
+ACEXML_PropertyFile_Handler::startElement (const ACEXML_Char *,
+ const ACEXML_Char *,
+ const ACEXML_Char *qName,
+ ACEXML_Attributes *alist
+ ACEXML_ENV_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((ACEXML_SAXException))
{
-
-
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\n")));
+ this->name_ = qName;
+ if (ACE_OS::strcmp (qName, "properties") == 0 ||
+ ACE_OS::strcmp (qName, "description") == 0)
+ return;
+ else if (ACE_OS::strcmp (qName, "struct") == 0 ||
+ ACE_OS::strcmp (qName, "simple") == 0)
+ {
+ this->attname_.clear();
+ this->atttype_.clear();
+ for (size_t i = 0; i < alist->getLength (); ++i)
+ {
+ if (ACE_OS::strcmp (alist->getQName (i), "name") == 0)
+ this->attname_ = alist->getValue (i);
+ else if (ACE_OS::strcmp (alist->getQName (i), "type") == 0)
+ this->atttype_ = alist->getValue (i);
+ }
+ if (!this->property_ && this->atttype_ == "ACEXML_EC_Property")
+ ACE_NEW (this->property_, ACEXML_EC_Property);
+ }
+ else if (ACE_OS::strcmp (qName, "value") == 0)
+ this->cdata_.clear();
+ else
+ {
+ ACE_ERROR ((LM_ERROR, "Unknown element %s encountered\n", qName));
+ ACEXML_SAXParseException* exception = 0;
+ ACE_NEW_NORETURN (exception,
+ ACEXML_SAXParseException ("Unknown Element"));
+ ACEXML_ENV_RAISE (exception);
+ }
+ return;
}
void
ACEXML_PropertyFile_Handler::endElement (const ACEXML_Char *,
const ACEXML_Char *,
const ACEXML_Char *qName
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ ACEXML_ENV_ARG_DECL)
ACE_THROW_SPEC ((ACEXML_SAXException))
{
-
-
- this->dec_indent ();
- this->print_indent ();
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("</%s>"),
- qName));
+ if (this->name_ != qName)
+ {
+ ACE_ERROR ((LM_ERROR, "Mismatched element %s encountered\n", qName));
+ ACEXML_SAXParseException* exception = 0;
+ ACE_NEW_NORETURN (exception,
+ ACEXML_SAXParseException ("Mismatched Element"));
+ ACEXML_ENV_RAISE (exception);
+ }
+ if (this->name_ == "description")
+ this->cdata_.clear();
+ else if (this->name_ == "value")
+ this->value_ = this->cdata_;
+ else if (this->name_ == "simple")
+ {
+ if (this->atttype_ == "string")
+ {
+ if (this->property_->set (this->attname_, this->value_) != 0)
+ {
+ ACE_ERROR ((LM_ERROR, "Property %s = %s invalid\n",
+ this->attname_.c_str(), this->value.c_str()));
+ ACEXML_SAXParseException* exception = 0;
+ ACE_NEW_NORETURN (exception,
+ ACEXML_SAXParseException ("Invalid Property"));
+ ACEXML_ENV_RAISE (exception);
+ }
+ }
+ else if (this->atttype_ == "long")
+ {
+ long value = ACE_OS::strtol (this->value_.c_str(), 10);
+ if (this->property_->set (this->attname_, value) != 0)
+ ACE_ERROR ((LM_ERROR, "Property %s = %ld invalid\n",
+ this->attname_.c_str(), value));
+ ACEXML_SAXParseException* exception = 0;
+ ACE_NEW_NORETURN (exception,
+ ACEXML_SAXParseException ("Invalid Property"));
+ ACEXML_ENV_RAISE (exception);
+ }
+ this->value_.clear();
+ this->cdata_.clear();
+ }
+ return;
}
void
-ACEXML_PropertyFile_Handler::endPrefixMapping (const ACEXML_Char *prefix
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_PropertyFile_Handler::characters (const ACEXML_Char *cdata,
+ int, int
+ ACEXML_ENV_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((ACEXML_SAXException))
{
-
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("* Event endPrefixMapping (%s) ***************\n"),
- prefix));
+ if (this->cdata_.length())
+ this->cdata_ += cdata;
+ this->cdata_ = cdata;
}
void
-ACEXML_PropertyFile_Handler::ignorableWhitespace (const ACEXML_Char *,
- int,
- int ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_PropertyFile_Handler::endDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((ACEXML_SAXException))
{
- // ACE_DEBUG ((LM_DEBUG,
- // ACE_TEXT ("* Event ignorableWhitespace () ***************\n")));
+
}
void
-ACEXML_PropertyFile_Handler::processingInstruction (const ACEXML_Char *target,
- const ACEXML_Char *data
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_PropertyFile_Handler::endPrefixMapping (const ACEXML_Char *
+ ACEXML_ENV_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((ACEXML_SAXException))
{
-
-
- this->print_indent ();
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("<?%s %s>\n"),
- target, data));
}
void
-ACEXML_PropertyFile_Handler::setDocumentLocator (ACEXML_Locator * locator)
+ACEXML_PropertyFile_Handler::ignorableWhitespace (const ACEXML_Char *,
+ int,
+ int
+ ACEXML_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((ACEXML_SAXException))
{
- this->locator_ = locator;
- //ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("* Event setDocumentLocator () ***************\n")));
}
void
-ACEXML_PropertyFile_Handler::skippedEntity (const ACEXML_Char *name
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_PropertyFile_Handler::processingInstruction (const ACEXML_Char *,
+ const ACEXML_Char *
+ ACEXML_ENV_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((ACEXML_SAXException))
{
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("* Event skippedEntity (%s) ***************\n"),
- name));
}
void
-ACEXML_PropertyFile_Handler::startDocument (ACEXML_ENV_SINGLE_ARG_DECL_NOT_USED)
- ACE_THROW_SPEC ((ACEXML_SAXException))
+ACEXML_PropertyFile_Handler::setDocumentLocator (ACEXML_Locator * locator)
{
-
-
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("* Event startDocument () ***************\n")));
+ this->locator_ = locator;
}
void
-ACEXML_PropertyFile_Handler::startElement (const ACEXML_Char *,
- const ACEXML_Char *,
- const ACEXML_Char *qName,
- ACEXML_Attributes *alist
- ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_PropertyFile_Handler::skippedEntity (const ACEXML_Char *
+ ACEXML_ENV_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((ACEXML_SAXException))
{
-
-
- this->print_indent ();
-
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("<%s"),
- qName));
- if (alist != 0)
- for (size_t i = 0; i < alist->getLength (); ++i)
- {
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT (" %s = \"%s\""),
- alist->getQName (i), alist->getValue (i)));
- }
- ACE_DEBUG ((LM_DEBUG, ACE_TEXT (">")));
- this->inc_indent ();
}
void
-ACEXML_PropertyFile_Handler::startPrefixMapping (const ACEXML_Char * prefix,
- const ACEXML_Char * uri ACEXML_ENV_ARG_DECL_NOT_USED)
+ACEXML_PropertyFile_Handler::startPrefixMapping (const ACEXML_Char *,
+ const ACEXML_Char *
+ ACEXML_ENV_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((ACEXML_SAXException))
{
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("* Event startPrefixMapping () ***************\n")));
- ACE_DEBUG ((LM_DEBUG,
- ACE_TEXT ("Prefix = %s, URI = %s\n"), prefix, uri));
}
@@ -167,7 +195,8 @@ ACEXML_PropertyFile_Handler::startPrefixMapping (const ACEXML_Char * prefix,
void
ACEXML_PropertyFile_Handler::notationDecl (const ACEXML_Char *,
const ACEXML_Char *,
- const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *
+ ACEXML_ENV_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((ACEXML_SAXException))
{
// No-op.
@@ -177,7 +206,8 @@ void
ACEXML_PropertyFile_Handler::unparsedEntityDecl (const ACEXML_Char *,
const ACEXML_Char *,
const ACEXML_Char *,
- const ACEXML_Char * ACEXML_ENV_ARG_DECL_NOT_USED)
+ const ACEXML_Char *
+ ACEXML_ENV_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((ACEXML_SAXException))
{
// No-op.
diff --git a/ACEXML/compass/PropertyFile_Handler.h b/ACEXML/compass/PropertyFile_Handler.h
index 6772dd1e047..aed7d03e5d1 100644
--- a/ACEXML/compass/PropertyFile_Handler.h
+++ b/ACEXML/compass/PropertyFile_Handler.h
@@ -13,7 +13,14 @@
#ifndef ACEXML_PROPERTYFILE_HANDLER_H
#define ACEXML_PROPERTYFILE_HANDLER_H
+#include "ace/pre.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
#include "ACEXML/common/DefaultHandler.h"
+#include "ACEXML/compass/Property.h"
/**
* @class ACEXML_PropertyFile_Handler
@@ -36,20 +43,20 @@ public:
*/
virtual ~ACEXML_PropertyFile_Handler (void);
- // Methods inherit from ACEXML_ContentHandler.
+ // Methods inherited from ACEXML_ContentHandler.
/*
* Receive notification of character data.
*/
virtual void characters (const ACEXML_Char *ch, int start,
int length ACEXML_ENV_ARG_DECL)
- ACE_THROW_SPEC ((ACEXML_SAXException));
+ ACE_THROW_SPEC ((ACEXML_SAXException));
/*
* Receive notification of the end of a document.
*/
virtual void endDocument (ACEXML_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((ACEXML_SAXException));
+ ACE_THROW_SPEC ((ACEXML_SAXException));
/*
* Receive notification of the end of an element.
@@ -57,20 +64,20 @@ public:
virtual void endElement (const ACEXML_Char *namespaceURI,
const ACEXML_Char *localName,
const ACEXML_Char *qName ACEXML_ENV_ARG_DECL)
- ACE_THROW_SPEC ((ACEXML_SAXException));
+ ACE_THROW_SPEC ((ACEXML_SAXException));
/*
* End the scope of a prefix-URI mapping.
*/
virtual void endPrefixMapping (const ACEXML_Char *prefix ACEXML_ENV_ARG_DECL)
- ACE_THROW_SPEC ((ACEXML_SAXException));
+ ACE_THROW_SPEC ((ACEXML_SAXException));
/*
* Receive notification of ignorable whitespace in element content.
*/
virtual void ignorableWhitespace (const ACEXML_Char *ch, int start,
int length ACEXML_ENV_ARG_DECL)
- ACE_THROW_SPEC ((ACEXML_SAXException));
+ ACE_THROW_SPEC ((ACEXML_SAXException));
/*
* Receive notification of a processing instruction.
@@ -78,7 +85,7 @@ public:
virtual void processingInstruction (const ACEXML_Char *target,
const ACEXML_Char *data
ACEXML_ENV_ARG_DECL)
- ACE_THROW_SPEC ((ACEXML_SAXException));
+ ACE_THROW_SPEC ((ACEXML_SAXException));
/*
* Receive an object for locating the origin of SAX document events.
@@ -89,14 +96,14 @@ public:
* Receive notification of a skipped entity.
*/
virtual void skippedEntity (const ACEXML_Char *name ACEXML_ENV_ARG_DECL)
- ACE_THROW_SPEC ((ACEXML_SAXException))
+ ACE_THROW_SPEC ((ACEXML_SAXException))
;
/*
* Receive notification of the beginning of a document.
*/
virtual void startDocument (ACEXML_ENV_SINGLE_ARG_DECL)
- ACE_THROW_SPEC ((ACEXML_SAXException));
+ ACE_THROW_SPEC ((ACEXML_SAXException));
/*
* Receive notification of the beginning of an element.
@@ -105,16 +112,16 @@ public:
const ACEXML_Char *localName,
const ACEXML_Char *qName,
ACEXML_Attributes *atts ACEXML_ENV_ARG_DECL)
- ACE_THROW_SPEC ((ACEXML_SAXException));
+ ACE_THROW_SPEC ((ACEXML_SAXException));
/*
* Begin the scope of a prefix-URI Namespace mapping.
*/
virtual void startPrefixMapping (const ACEXML_Char *prefix,
const ACEXML_Char *uri ACEXML_ENV_ARG_DECL)
- ACE_THROW_SPEC ((ACEXML_SAXException));
+ ACE_THROW_SPEC ((ACEXML_SAXException));
- // *** Methods inherit from ACEXML_DTDHandler.
+ // *** Methods inherited from ACEXML_DTDHandler.
/*
* Receive notification of a notation declaration event.
@@ -122,7 +129,7 @@ public:
virtual void notationDecl (const ACEXML_Char *name,
const ACEXML_Char *publicId,
const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL)
- ACE_THROW_SPEC ((ACEXML_SAXException));
+ ACE_THROW_SPEC ((ACEXML_SAXException));
/*
* Receive notification of an unparsed entity declaration event.
@@ -130,43 +137,52 @@ public:
virtual void unparsedEntityDecl (const ACEXML_Char *name,
const ACEXML_Char *publicId,
const ACEXML_Char *systemId,
- const ACEXML_Char *notationName ACEXML_ENV_ARG_DECL)
- ACE_THROW_SPEC ((ACEXML_SAXException));
+ const ACEXML_Char *notationName
+ ACEXML_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((ACEXML_SAXException));
- // Methods inherit from ACEXML_EnitityResolver.
+ // Methods inherited from ACEXML_EnitityResolver.
/*
* Allow the application to resolve external entities.
*/
virtual ACEXML_InputSource *resolveEntity (const ACEXML_Char *publicId,
- const ACEXML_Char *systemId ACEXML_ENV_ARG_DECL)
- ACE_THROW_SPEC ((ACEXML_SAXException));
+ const ACEXML_Char *systemId
+ ACEXML_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((ACEXML_SAXException));
- // Methods inherit from ACEXML_ErrorHandler.
+ // Methods inherited from ACEXML_ErrorHandler.
/*
* Receive notification of a recoverable error.
*/
virtual void error (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL)
- ACE_THROW_SPEC ((ACEXML_SAXException));
+ ACE_THROW_SPEC ((ACEXML_SAXException));
/*
* Receive notification of a non-recoverable error.
*/
virtual void fatalError (ACEXML_SAXParseException &exception ACEXML_ENV_ARG_DECL)
- ACE_THROW_SPEC ((ACEXML_SAXException));
+ ACE_THROW_SPEC ((ACEXML_SAXException));
/*
* Receive notification of a warning.
*/
virtual void warning (ACEXML_SAXParseException &exception
ACEXML_ENV_ARG_DECL)
- ACE_THROW_SPEC ((ACEXML_SAXException));
+ ACE_THROW_SPEC ((ACEXML_SAXException));
-private:
+ virtual const ACEXML_Property* get_property(void) const;
+private:
ACEXML_Char* fileName_;
ACEXML_Locator* locator_;
+ ACEXML_Property* property_;
+ ACEXML_String cdata_;
+ ACEXML_String name_;
+ ACEXML_String attname_;
+ ACEXML_String atttype_;
+ ACEXML_String value_;
};
#if defined (__ACEXML_INLINE__)
diff --git a/ACEXML/compass/SoftPkg.cpp b/ACEXML/compass/SoftPkg.cpp
new file mode 100644
index 00000000000..56c6033c582
--- /dev/null
+++ b/ACEXML/compass/SoftPkg.cpp
@@ -0,0 +1,56 @@
+// $Id$
+
+#include "ACEXML/compass/SoftPkg.h"
+
+ACEXML_SoftPkg::ACEXML_SoftPkg()
+ : current_dep_ (0), current_impl_ (0)
+{}
+
+ACEXML_SoftPkg::~ACEXML_SoftPkg()
+{
+ Dependency* dep = 0;
+ Dependencies::iterator dep_iter (this->deps_);
+ for (; dep_iter.next (dep); dep_iter.advance())
+ delete dep;
+ Implementation* impl = 0;
+ Implementations::iterator impl_iter (this->impls_);
+ for (; impl_iter.next (impl); impl_iter.advance())
+ delete impl;
+}
+
+int
+ACEXML_SoftPkg::add_impl (const ACEXML_String& id)
+{
+ Implementation* impl = 0;
+ ACE_NEW_RETURN (impl, Implementation, -1);
+ impl.id_ = id;
+ if (this->impls_.insert (impl) < 0)
+ {
+ ACE_ERROR ((LM_ERROR, "Implementation already exists\n"));
+ return -1;
+ }
+
+
+
+
+ int add_dep (const ACEXML_String& type);
+ Implementation* get_current_impl (void);
+ const ACE_Unbouded_Set<Implementation*>& get_all_impl (void) const;
+private:
+ ACEXML_String name_;
+ ACEXML_String version_;
+ ACEXML_String pkgtype_;
+ ACEXML_String title_;
+ ACEXML_String author_;
+ ACEXML_String company_;
+ ACEXML_String webpage_;
+ ACEXML_String description_;
+ Dependency* current_dep_;
+ Implementation* current_impl_;
+ ACE_Unbouded_Set<Dependency*> deps_;
+ ACE_Unbouded_Set<Implementation*> impls_;
+};
+
+#include "ace/post.h"
+
+#endif /* ACEXML_SOFTPKG_H */
diff --git a/ACEXML/compass/SoftPkg.h b/ACEXML/compass/SoftPkg.h
new file mode 100644
index 00000000000..c16eb54f719
--- /dev/null
+++ b/ACEXML/compass/SoftPkg.h
@@ -0,0 +1,78 @@
+// $Id$
+
+#ifndef ACEXML_SOFTPKG_H
+#define ACEXML_SOFTPKG_H
+
+#include "ace/pre.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+#pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+#include "ACEXML/common/XML_Types.h"
+#include "ace/Unbounded_Set.h"
+
+class ACEXML_SoftPkg
+{
+public:
+ typedef ACEXML_String Localfile;
+ typedef ACEXML_String Fileinarchive;
+ typedef ACEXML_String EntryPoint;
+ typedef ACEXML_String Processor;
+ typedef ACEXML_String Compiler;
+ typedef ACEXML_String ProgLang;
+ typedef PropertyFile Fileinarchive;
+
+ struct Dependency
+ {
+ ACEXML_String type_;
+ localfile localfile_;
+ };
+ struct OperSys
+ {
+ ACEXML_String name_;
+ ACEXML_String version_;
+ };
+ struct Code
+ {
+ ACEXML_String type_;
+ Fileinarchive file_;
+ EntryPoint func_;
+ };
+ struct Implementation
+ {
+ ACEXML_String id_;
+ OperSys os_;
+ Processor cpu_;
+ Compiler compiler_;
+ ProgLang lang_;
+ PropertyFile propfile_;
+ Code code_;
+ };
+ typedef ACE_Unbouded_Set<Dependency*> Dependencies;
+ typedef ACE_Unbouded_Set<Implementation*> Implementations;
+
+ ACEXML_SoftPkg();
+ ~ACEXML_SoftPkg();
+ int add_impl (const ACEXML_String& id);
+ int add_dep (const ACEXML_String& type);
+ Implementation* get_current_impl (void);
+ const ACE_Unbouded_Set<Implementation*>& get_all_impl (void) const;
+private:
+ ACEXML_String name_;
+ ACEXML_String version_;
+ ACEXML_String pkgtype_;
+ ACEXML_String title_;
+ ACEXML_String author_;
+ ACEXML_String company_;
+ ACEXML_String webpage_;
+ ACEXML_String description_;
+ Dependency* current_dep_;
+ Implementation* current_impl_;
+ Implementations deps_;
+ Dependencies impls_;
+};
+
+#include "ace/post.h"
+
+#endif /* ACEXML_SOFTPKG_H */
diff --git a/ACEXML/compass/component.xml b/ACEXML/compass/component.xml
new file mode 100644
index 00000000000..4d7fe61424b
--- /dev/null
+++ b/ACEXML/compass/component.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0"?>
+ <!DOCTYPE corbacomponent SYSTEM "corbacomponent.dtd">
+<corbacomponent>
+ <corbaversion> 3.0 </corbaversion>
+ <componentrepid repid="IDL:BookStore:1.0" />
+ <homerepid repid="IDL:BookStoreHome:1.0" />
+ <componentkind>
+ <entity> <servant lifetime="component" /> </entity>
+ </componentkind>
+ <security rightsfamily="corba" rightscombinator="secallrights"> </security>
+ <threading policy="multithread" />
+ <configurationcomplete set="true" />
+ <segment name="bookseg" segmenttag="1">
+ <segmentmember facettag="1" />
+ <segmentmember facettag="2" />
+ <containermanagedpersistence>
+ <storagehome id="PSDL:BookHome:1.0" />
+ <pssimplementation id="ACME-PSS" />
+ <catalog type="PSDL:BookCatalog:1.0" />
+ <accessmode mode="READ_ONLY" />
+ <psstransaction policy="TRANSACTIONAL" >
+ <psstransactionisolationlevel level="SERIALIZABLE" />
+ </psstransaction>
+ <params> <param name="x" value="1" /> </params>
+ </containermanagedpersistence>
+ </segment>
+ <homefeatures name="BookStoreHome" repid="IDL:BookStoreHome:1.0">
+ <operationpolicies>
+ <operation name="*"> <transaction use="never" /> </operation>
+ </operationpolicies>
+ </homefeatures>
+ <componentfeatures name="BookStore" repid="IDL:BookStore:1.0">
+ <inheritscomponent repid="IDL:Acme/Store:1.0" />
+ <ports>
+ <provides providesname="book_search" repid="IDL:BookSearch:1.0"
+ facettag="1">
+ <operationpolicies>
+ <operation name="getByAuthor">
+ <requiredrights> <right name="get"/> </requiredrights>
+ </operation>
+ <operation name="getByTitle">
+ <requiredrights> <right name="get"/> </requiredrights>
+ </operation>
+ <operation name="getByISBN">
+ <requiredrights> <right name="get"/> </requiredrights>
+ </operation>
+ </operationpolicies>
+ </provides>
+ <provides providesname="shopping_cart" repid="IDL:CartFactory:1.0"
+ facettag="2" />
+ <uses usesname="ups_rates" repid="IDL:ShippingRates:1.0" />
+ <uses usesname="fedex_rates" repid="IDL:ShippingRates:1.0" />
+ <emits emitsname="low_stock" eventtype="StockRecord">
+ <eventpolicy policy="normal" />
+ </emits>
+ <publishes publishesname="offer_alert" eventtype="SpecialOffer">
+ <eventpolicy policy="normal" />
+ </publishes>
+ </ports>
+ </componentfeatures>
+ <componentfeatures name="Store" repid="IDL:Acme/Store">
+ <supportsinterface repid="IDL:Acme/GeneralStore">
+ <operationpolicies>
+ <operation name="*"> <transaction use="required" /> </operation>
+ </operationpolicies>
+ </supportsinterface>
+ <ports> <provides providesname="admin" repid="IDL:Acme/StoreAdmin:1.0"
+ facettag="3" />
+ </ports>
+ </componentfeatures>
+ <interface name="BookSearch" repid="IDL:BookSearch:1.0">
+ <inheritsinterface repid="IDL:SearchEngine:1.0" />
+ </interface>
+ <interface name="SearchEngine" repid="IDL:SearchEngine:1.0"/>
+ <interface name="CartFactory" repid="IDL:CartFactory:1.0"/>
+ <interface name="ShippingRates" repid="IDL:ShippingRates:1.0"/>
+ <interface name="StoreAdmin" repid="IDL:Acme/StoreAdmin:1.0">
+ <operationpolicies>
+ <operation name="*">
+ <transaction use="required" />
+ <requiredrights>
+ <right name="manage"/> <right name="set"/>
+ </requiredrights>
+ </operation>
+ </operationpolicies>
+ </interface>
+ <interface name="GeneralStore" repid="IDL:Acme/GeneralStore:1.0"/>
+</corbacomponent>
diff --git a/ACEXML/compass/componentassembly.dtd b/ACEXML/compass/componentassembly.dtd
new file mode 100644
index 00000000000..92c819d9b9b
--- /dev/null
+++ b/ACEXML/compass/componentassembly.dtd
@@ -0,0 +1,326 @@
+<!-- DTD for Component Assembly Descriptor. The root element is
+ <componentassembly>. Elements are listed alphabetically. -->
+
+<!-- Simple xml link attributes based on W3C WD-xlink-19980303. May change
+ slightly when XLL is finalized. -->
+<!ENTITY % simple-link-attributes "
+ xml:link CDATA #FIXED 'SIMPLE'
+ href CDATA #REQUIRED " >
+
+<!-- If file not available locally, then download via codebase link -->
+<!ELEMENT codebase EMPTY >
+<!ATTLIST codebase filename CDATA #IMPLIED
+ %simple-link-attributes; >
+
+<!ELEMENT componentassembly
+ ( description?
+ , componentfiles
+ , partitioning
+ , connections?
+ , extension* ) >
+<!ATTLIST componentassembly
+ id ID #REQUIRED
+ derivedfrom CDATA #IMPLIED >
+
+<!ELEMENT componentfile
+ ( fileinarchive
+ | codebase
+ | link ) >
+<!ATTLIST componentfile
+ id ID #REQUIRED
+ type CDATA #IMPLIED >
+
+<!ELEMENT componentfileref EMPTY >
+<!ATTLIST componentfileref
+ idref CDATA #REQUIRED >
+
+<!ELEMENT componentfiles ( componentfile+ ) >
+
+<!ELEMENT componentimplref EMPTY >
+<!ATTLIST componentimplref
+ idref CDATA #REQUIRED >
+
+<!ELEMENT componentinstantiation
+ ( usagename?
+ , componentproperties?
+ , registercomponent*
+ , extension* ) >
+<!ATTLIST componentinstantiation
+ id ID #REQUIRED >
+
+<!ELEMENT componentinstantiationref EMPTY >
+<!ATTLIST componentinstantiationref
+ idref CDATA #REQUIRED >
+
+<!ELEMENT componentproperties
+ ( fileinarchive
+ | codebase) >
+
+<!ELEMENT componentsupportedinterface
+ ( componentinstantiationref
+ | findby )>
+
+<!ELEMENT connectevent
+ ( consumesport
+ , ( emitsport
+ | publishesport
+ )
+ ) >
+<!ATTLIST connectevent
+ id ID #IMPLIED >
+
+<!ELEMENT connecthomes
+ ( proxyhome
+ , destinationhome ) >
+<!ATTLIST connecthomes
+ id ID #IMPLIED >
+
+<!ELEMENT connectinterface
+ ( usesport
+ , ( providesport
+ | componentsupportedinterface
+ | existinginterface
+ | homeinterface
+ )
+ ) >
+<!ATTLIST connectinterface
+ id ID #IMPLIED >
+
+<!ELEMENT connections
+ ( connectinterface
+ | connectevent
+ | connecthomes
+ | extension )* >
+
+<!ELEMENT consumesidentifier ( #PCDATA ) >
+
+<!ELEMENT consumesport
+ ( consumesidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ )>
+
+<!ELEMENT description ( #PCDATA ) >
+
+<!ELEMENT destination ( #PCDATA ) >
+
+<!ELEMENT destinationhome
+ ( homeplacementref
+ | findby ) >
+
+<!ELEMENT emitsidentifier (#PCDATA ) >
+
+<!ELEMENT emitsport
+ ( emitsidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ )>
+
+<!ELEMENT executableplacement
+ ( usagename?
+ , componentfileref
+ , componentimplref?
+ , invocation?
+ , destination?
+ , extension* ) >
+<!ATTLIST executableplacement
+ id ID #REQUIRED
+ cardinality CDATA "1" >
+
+<!ELEMENT existinginterface ( findby )>
+
+<!-- The "extension" element is used for vendor-specific extensions -->
+
+<!ELEMENT extension (#PCDATA) >
+<!ATTLIST extension
+ class CDATA #REQUIRED
+ origin CDATA #REQUIRED
+ id ID #IMPLIED
+ extra CDATA #IMPLIED
+ html-form CDATA #IMPLIED >
+
+<!-- The "fileinarchive" element is used to specify a file in the archive.
+ If the file is independent of an archive then link is used to point to
+ the archive in which the file may be found. -->
+
+<!ELEMENT fileinarchive ( link? ) >
+<!ATTLIST fileinarchive
+ name CDATA #REQUIRED >
+
+<!ELEMENT findby
+ ( namingservice
+ | stringifiedobjectref
+ | traderquery
+ | homefinder
+ | extension
+ ) >
+
+<!ELEMENT homefinder EMPTY >
+<!ATTLIST homefinder name CDATA #REQUIRED >
+
+<!ELEMENT homeinterface ( homeplacementref | findby )>
+
+<!ELEMENT homeplacement
+ ( usagename?
+ , componentfileref
+ , componentimplref?
+ , homeproperties?
+ , componentproperties?
+ , registerwithhomefinder*
+ , registerwithnaming*
+ , registerwithtrader*
+ , componentinstantiation*
+ , destination?
+ , extension* ) >
+<!ATTLIST homeplacement
+ id ID #REQUIRED
+ cardinality CDATA "1"
+ >
+
+<!ELEMENT homeplacementref EMPTY >
+<!ATTLIST homeplacementref idref CDATA #REQUIRED >
+
+<!ELEMENT homeproperties
+ ( fileinarchive
+ | codebase ) >
+
+<!ELEMENT hostcollocation
+ ( usagename?
+ , impltype?
+ , ( homeplacement
+ | executableplacement
+ | processcollocation
+ | extension )+
+ , destination? ) >
+<!ATTLIST hostcollocation
+ id ID #IMPLIED
+ cardinality CDATA "1" >
+
+<!ELEMENT impltype EMPTY >
+<!ATTLIST impltype
+ language CDATA #REQUIRED
+ version CDATA #IMPLIED >
+
+<!ELEMENT invocation EMPTY >
+<!ATTLIST invocation
+ args CDATA #REQUIRED >
+
+<!ELEMENT link ( #PCDATA ) >
+<!ATTLIST link
+ %simple-link-attributes; >
+
+<!ELEMENT namingservice EMPTY >
+<!ATTLIST namingservice name CDATA #REQUIRED >
+
+<!ELEMENT partitioning
+ ( homeplacement
+ | executableplacement
+ | processcollocation
+ | hostcollocation
+ | extension
+ )* >
+
+<!ELEMENT processcollocation
+ ( usagename?
+ , impltype?
+ , ( homeplacement
+ | extension
+ )+
+ , destination?
+ ) >
+<!ATTLIST processcollocation
+ id ID #IMPLIED
+ cardinality CDATA "1" >
+
+<!ELEMENT providesidentifier ( #PCDATA ) >
+
+<!ELEMENT providesport
+ ( providesidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ )>
+
+<!ELEMENT publishesidentifier ( #PCDATA ) >
+
+<!ELEMENT publishesport
+ ( publishesidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ )>
+
+<!ELEMENT registercomponent
+ ( ( emitsidentifier
+ | providesidentifier
+ | publishesidentifier
+ )?
+ , ( registerwithnaming
+ | registerwithtrader )+
+ ) >
+
+<!ELEMENT registerwithhomefinder EMPTY >
+<!ATTLIST registerwithhomefinder
+ name CDATA #REQUIRED >
+
+<!ELEMENT registerwithnaming EMPTY >
+<!ATTLIST registerwithnaming
+ name CDATA #IMPLIED >
+
+<!ELEMENT registerwithtrader ( traderproperties ) >
+<!ATTLIST registerwithtrader
+ tradername CDATA #IMPLIED >
+
+<!-- DEVNOTE: is tradername necessary? -->
+
+<!-- DEVNOTE: Should trader properties be specified in component file? And
+ in assembly file? -->
+
+<!ELEMENT proxyhome ( homeplacementref | findby ) >
+
+<!ELEMENT stringifiedobjectref ( #PCDATA ) >
+
+<!ELEMENT traderconstraint ( #PCDATA ) >
+
+<!ELEMENT traderexport ( traderservicetypename , traderproperties ) >
+
+<!ELEMENT traderpolicy ( traderpolicyname , traderpolicyvalue ) >
+
+<!ELEMENT traderpolicyname ( #PCDATA ) >
+
+<!ELEMENT traderpolicyvalue ( #PCDATA ) >
+
+<!ELEMENT traderpreference ( #PCDATA ) >
+
+<!ELEMENT traderproperties ( traderproperty+ ) >
+
+<!ELEMENT traderproperty ( traderpropertyname , traderpropertyvalue ) >
+
+<!ELEMENT traderpropertyname ( #PCDATA ) >
+
+<!ELEMENT traderpropertyvalue ( #PCDATA ) >
+
+<!ELEMENT traderquery
+ ( traderservicetypename
+ , traderconstraint
+ , traderpreference?
+ , traderpolicy*
+ , traderspecifiedprop*
+ ) >
+
+<!ELEMENT traderservicetypename ( #PCDATA ) >
+
+<!ELEMENT traderspecifiedprop ( #PCDATA ) >
+
+<!ELEMENT usagename ( #PCDATA ) >
+
+<!ELEMENT usesidentifier ( #PCDATA ) >
+
+<!ELEMENT usesport
+ ( usesidentifier
+ , ( componentinstantiationref
+ | findby
+ )
+ ) >
diff --git a/ACEXML/compass/componentassembly.xml b/ACEXML/compass/componentassembly.xml
new file mode 100644
index 00000000000..247c11c01a7
--- /dev/null
+++ b/ACEXML/compass/componentassembly.xml
@@ -0,0 +1,138 @@
+<!DOCTYPE componentassembly SYSTEM "componentassembly.dtd">
+<componentassembly id="ZZZ123">
+ <description>Example assembly"</description>
+
+ <componentfiles>
+ <componentfile id="A"> <fileinarchive name="ca.ccsd"/> </componentfile>
+ <componentfile id="B"> <fileinarchive name="cb.ccsd"/> </componentfile>
+ <componentfile id="C">
+ <fileinarchive name="cc.ccsd">
+ <link href="ftp://www.xyz.com/car/cc.car"/>
+ </fileinarchive>
+ </componentfile>
+ <componentfile id="D"> <fileinarchive name="cd.ccsd"/> </componentfile>
+ <componentfile id="E"> <fileinarchive name="ce.ccsd"/> </componentfile>
+ <componentfile id="F"> <fileinarchive name="cf.ccsd"/> </componentfile>
+ </componentfiles>
+
+ <partitioning>
+ <homeplacement id="AaHome">
+ <componentfileref idref="A"/> <componentinstantiation id="Aa"/>
+ </homeplacement>
+
+ <processcollocation cardinality="*">
+ <usagename>Example process collocation</usagename>
+ <impltype language="C++" />
+ <!-- optional -->
+ <homeplacement id="BbHome">
+ <componentfileref idref="B"/> <componentinstantiation id="Bb"/>
+ </homeplacement>
+ <homeplacement id="CcHome">
+ <componentfileref idref="C"/>
+ <componentinstantiation id="Cc"/>
+ </homeplacement>
+ </processcollocation>
+
+ <hostcollocation cardinality="1">
+ <usagename>Example host collocation</usagename>
+
+ <processcollocation cardinality="*">
+
+ <homeplacement id="DdHome">
+ <componentfileref idref="D"/>
+ <componentinstantiation id="Dd"/>
+ </homeplacement>
+
+ <homeplacement id="EdHome">
+ <componentfileref idref="E"/>
+ <componentinstantiation id="Ee"/>
+ </homeplacement>
+
+ </processcollocation>
+
+ <homeplacement id="FfHome">
+ <componentfileref idref="F"/>
+ <componentinstantiation id="Ff"/>
+ </homeplacement>
+
+ </hostcollocation>
+
+ <homeplacement id="AaaHome">
+
+ <usagename>Example home for A components</usagename>
+ <componentfileref idref="A"/>
+ <componentimplref idref="an A impl"/>
+
+ <homeproperties>
+ <fileinarchive name="AHomeProperties.cpf"/>
+ </homeproperties>
+
+ <componentproperties>
+ <fileinarchive name="defaultAProperties.cpf"/>
+ </componentproperties>
+
+ <registerwithhomefinder name="AaHome"/>
+
+ <componentinstantiation id="Aaa">
+ <usagename>Example component instantiation </usagename>
+
+ <componentproperties>
+ <fileinarchive name="AaaProperties.cpf"/>
+ </componentproperties>
+
+ <registercomponent>
+ <registerwithnaming name="sink"/>
+
+ <registerwithtrader>
+
+ <traderproperties>
+
+ <traderproperty>
+ <traderpropertyname>ppm</traderpropertyname>
+ <traderpropertyvalue>10</traderpropertyvalue>
+ </traderproperty>
+
+ <traderproperty>
+ <traderpropertyname>weight</traderpropertyname>
+ <traderpropertyvalue>333</traderpropertyvalue>
+ </traderproperty>
+
+ </traderproperties>
+
+ </registerwithtrader>
+
+ </registercomponent>
+
+ </componentinstantiation>
+
+ </homeplacement>
+
+ </partitioning>
+
+ <connections>
+
+ <connectinterface>
+ <usesport>
+ <usesidentifier>abc</usesidentifier>
+ <componentinstantiationref idref="Aa"/>
+ </usesport>
+ <providesport>
+ <providesidentifier>abc</providesidentifier>
+ <componentinstantiationref idref="Bb"/>
+ </providesport>
+ </connectinterface>
+
+ <connectevent>
+ <consumesport>
+ <consumesidentifier>pqr</consumesidentifier>
+ <componentinstantiationref idref="Aaa"/>
+ </consumesport>
+ <emitsport>
+ <emitsidentifier>mno</emitsidentifier>
+ <componentinstantiationref idref="Ee"/>
+ </emitsport>
+ </connectevent>
+
+ </connections>
+
+</componentassembly>
diff --git a/ACEXML/compass/corbacomponent.dtd b/ACEXML/compass/corbacomponent.dtd
new file mode 100644
index 00000000000..8b8963b85c9
--- /dev/null
+++ b/ACEXML/compass/corbacomponent.dtd
@@ -0,0 +1,302 @@
+<!-- DTD for CORBA Component Descriptor. The root element is
+ <corbacomponent>. Elements are listed alphabetically. -->
+
+<!-- Simple xml link attributes based on W3C WD-xlink-19980303. May change
+ when XLL is finalized. -->
+
+<!ENTITY % simple-link-attributes "
+ xml:link CDATA #FIXED 'SIMPLE'
+ href CDATA #REQUIRED ">
+
+<!ELEMENT accessmode EMPTY>
+<!ATTLIST accessmode
+ mode (READ_ONLY|READ_WRITE) #REQUIRED >
+
+<!ELEMENT catalog EMPTY>
+<!ATTLIST catalog
+ type CDATA #REQUIRED >
+
+<!ELEMENT componentfeatures
+ ( inheritscomponent?
+ , supportsinterface*
+ , ports
+ , operationpolicies?
+ , extension* ) >
+<!ATTLIST componentfeatures
+ name CDATA #REQUIRED
+ repid CDATA #REQUIRED >
+
+<!ELEMENT componentkind
+ ( service
+ | session
+ | process
+ | entity
+ | unclassified ) >
+
+<!ELEMENT componentproperties ( fileinarchive ) >
+
+<!ELEMENT componentrepid EMPTY >
+<!ATTLIST componentrepid
+ repid CDATA #IMPLIED >
+
+<!ELEMENT containermanagedpersistence
+ ( storagehome
+ , pssimplementation?
+ , catalog?
+ , accessmode
+ , psstransaction
+ , params? ) >
+
+<!ELEMENT configurationcomplete EMPTY >
+<!ATTLIST configurationcomplete
+ set ( true | false ) #REQUIRED >
+
+<!ELEMENT consumes
+ ( eventpolicy
+ , extension*
+ ) >
+<!ATTLIST consumes
+ consumesname CDATA #REQUIRED
+ eventtype CDATA #REQUIRED >
+
+<!ELEMENT corbacomponent
+ ( corbaversion
+ , componentrepid
+ , homerepid
+ , componentkind
+ , interop?
+ , transaction?
+ , security?
+ , threading
+ , configurationcomplete
+ , extendedpoapolicy*
+ , repository?
+ , segment*
+ , componentproperties?
+ , homeproperties?
+ , homefeatures+
+ , componentfeatures+
+ , interface*
+ , extension*
+ ) >
+
+<!ELEMENT corbaversion (#PCDATA) >
+
+<!ELEMENT description ( #PCDATA ) >
+
+<!ELEMENT emits ( eventpolicy , extension* ) >
+<!ATTLIST emits
+ emitsname CDATA #REQUIRED
+ eventtype CDATA #REQUIRED >
+
+<!ELEMENT entity ( servant ) >
+
+<!ELEMENT eventpolicy EMPTY>
+<!ATTLIST eventpolicy
+ policy ( normal | default | transaction ) #IMPLIED>
+
+<!ELEMENT extendedpoapolicy EMPTY>
+<!ATTLIST extendedpoapolicy
+ name CDATA #REQUIRED
+ value CDATA #REQUIRED >
+
+<!-- The "extension" element is used for vendor-specific extensions -->
+<!ELEMENT extension (#PCDATA) >
+<!ATTLIST extension
+ class CDATA #REQUIRED
+ origin CDATA #REQUIRED
+ id ID #IMPLIED
+ extra CDATA #IMPLIED
+ html-form CDATA #IMPLIED >
+
+<!-- The "fileinarchive" element is used to specify a file in the archive.
+ If the file is in another archive then link is used to point to the
+ archive in which the file may be found. -->
+
+<!ELEMENT fileinarchive ( link? ) >
+<!ATTLIST fileinarchive
+ name CDATA #REQUIRED >
+
+<!ELEMENT homefeatures
+ ( inheritshome?
+ , operationpolicies?
+ , extension*
+ ) >
+<!ATTLIST homefeatures
+ name CDATA #REQUIRED
+ repid CDATA #REQUIRED >
+
+<!ELEMENT homeproperties ( fileinarchive ) >
+
+<!ELEMENT homerepid EMPTY >
+<!ATTLIST homerepid
+ repid CDATA #IMPLIED >
+
+<!ELEMENT inheritscomponent EMPTY>
+<!ATTLIST inheritscomponent
+ repid CDATA #REQUIRED>
+
+<!ELEMENT inheritshome EMPTY>
+<!ATTLIST inheritshome
+ repid CDATA #REQUIRED>
+
+<!ELEMENT inheritsinterface EMPTY>
+<!ATTLIST inheritsinterface
+ repid CDATA #REQUIRED>
+
+<!ELEMENT ins EMPTY>
+<!ATTLIST ins
+ name CDATA #REQUIRED >
+
+<!ELEMENT interface
+ ( inheritsinterface*
+ , operationpolicies? ) >
+<!ATTLIST interface
+ name CDATA #REQUIRED
+ repid CDATA #REQUIRED >
+
+<!ELEMENT interop EMPTY>
+<!ATTLIST interop
+ type CDATA #REQUIRED
+ direction ( hasview | isview) #REQUIRED
+ descriptor CDATA #REQUIRED >
+
+<!ELEMENT link ( #PCDATA ) >
+<!ATTLIST link
+ %simple-link-attributes; >
+
+<!ELEMENT objref EMPTY>
+<!ATTLIST objref
+ string CDATA #REQUIRED >
+
+<!ELEMENT operation
+ ( transaction?
+ , requiredrights? ) >
+<!ATTLIST operation
+ name CDATA #REQUIRED >
+<!-- an operation name of "*" specifies all operations in the current
+ scope -->
+
+<!ELEMENT operationpolicies ( operation+ ) >
+
+<!ELEMENT param EMPTY >
+<!ATTLIST param
+ name CDATA #REQUIRED
+ value CDATA #REQUIRED >
+
+<!ELEMENT params (param+) >
+
+<!ELEMENT poapolicies EMPTY>
+<!ATTLIST poapolicies
+ thread ( ORB_CTRL_MODEL | SINGLE_THREAD_SAFE ) #REQUIRED
+ lifespan ( TRANSIENT | PERSISTENT ) #REQUIRED
+ iduniqueness ( UNIQUE_ID | MULTIPLE_ID ) #REQUIRED
+ idassignment ( USER_ID | SYSTEM_ID ) #REQUIRED
+ servantretention ( RETAIN | NON_RETAIN ) #REQUIRED
+ requestprocessing ( USE_ACTIVE_OBJECT_MAP_ONLY
+ | USE_DEFAULT_SERVANT
+ | USE_SERVANT_MANAGER) #REQUIRED
+ implicitactivation ( IMPLICIT_ACTIVATION
+ | NON_IMPLICIT_ACTIVATION ) #REQUIRED>
+
+<!ELEMENT ports
+ ( uses
+ | provides
+ | emits
+ | publishes
+ | consumes
+ )* >
+
+<!ELEMENT process (servant ) >
+
+<!ELEMENT provides ( operationpolicies? , extension* ) >
+<!ATTLIST provides
+ providesname CDATA #REQUIRED
+ repid CDATA #REQUIRED
+ facettag CDATA #REQUIRED >
+
+<!ELEMENT pssimplementation EMPTY>
+<!ATTLIST pssimplementation
+ id CDATA #REQUIRED >
+
+<!ELEMENT psstransaction (psstransactionisolationlevel?) >
+<!ATTLIST psstransaction
+ policy (TRANSACTIONAL|NON_TRANSACTIONAL) #REQUIRED >
+
+<!ELEMENT psstransactionisolationlevel EMPTY>
+<!ATTLIST psstransactionisolationlevel
+ level ( READ_UNCOMMITTED
+ | READ_COMMITTED
+ | REPEATABLE_READ
+ | SERIALIZABLE ) #REQUIRED >
+
+<!ELEMENT publishes ( eventpolicy , extension* ) >
+<!ATTLIST publishes
+ publishesname CDATA #REQUIRED
+ eventtype CDATA #REQUIRED >
+
+<!ELEMENT repository ( ins | objref | link ) >
+<!ATTLIST repository
+ type CDATA #IMPLIED >
+
+<!ELEMENT requiredrights ( right* ) >
+
+<!ELEMENT right (description? ) >
+<!ATTLIST right
+ name CDATA #REQUIRED >
+
+<!ELEMENT security ( requiredrights? ) >
+<!ATTLIST security
+ rightsfamily CDATA #REQUIRED
+ rightscombinator (secallrights | secanyrights) #REQUIRED >
+
+<!ELEMENT segment
+ ( segmentmember+
+ , containermanagedpersistence?
+ , extension*
+ ) >
+<!ATTLIST segment
+ name CDATA #REQUIRED
+ segmenttag CDATA #REQUIRED >
+
+<!ELEMENT segmentmember EMPTY>
+<!ATTLIST segmentmember
+ facettag CDATA #REQUIRED >
+
+<!ELEMENT servant EMPTY >
+<!ATTLIST servant
+ lifetime (component|method|transaction|container) #REQUIRED >
+
+<!ELEMENT service EMPTY >
+
+<!ELEMENT session ( servant ) >
+
+<!ELEMENT storagehome EMPTY>
+<!ATTLIST storagehome
+ id CDATA #REQUIRED >
+
+<!ELEMENT supportsinterface (operationpolicies? , extension* ) >
+<!ATTLIST supportsinterface
+ repid CDATA #REQUIRED >
+
+<!ELEMENT threading EMPTY>
+<!ATTLIST threading
+ policy (serialize | multithread ) #REQUIRED >
+
+<!ELEMENT transaction EMPTY >
+<!ATTLIST transaction
+ use ( self-managed
+ | not-supported
+ | required
+ | supports
+ | requiresnew
+ | mandatory
+ | never
+ ) #REQUIRED >
+
+<!ELEMENT unclassified ( poapolicies ) >
+
+<!ELEMENT uses (extension* ) >
+<!ATTLIST uses
+ usesname CDATA #REQUIRED
+ repid CDATA #REQUIRED >
diff --git a/ACEXML/compass/eventchannel.cpf b/ACEXML/compass/eventchannel.cpf
new file mode 100644
index 00000000000..4a88992bfa5
--- /dev/null
+++ b/ACEXML/compass/eventchannel.cpf
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE properties SYSTEM "properties.dtd">
+<properties>
+ <struct name="ECProperties" type="ACEXML_EC_Property">
+ <description>Configuration for a Simple Event Channel</description>
+ <simple name="ECDispatching" type="string">
+ <value>reactive</value>
+ </simple>
+ <simple name="ECFiltering" type="string">
+ <value>basic</value>
+ </simple>
+ <simple name="ECSupplierFiltering" type="string">
+ <value>per-supplier</value>
+ </simple>
+ <simple name="ECProxyConsumerLock" type="string">
+ <value>thread</value>
+ </simple>
+ <simple name="ECProxySupplierLock" type="string">
+ <value>thread</value>
+ </simple>
+ <simple name="ECConsumerControl" type="string">
+ <value>reactive</value>
+ </simple>
+ <simple name="ECSupplierControl" type="string">
+ <value>reactive</value>
+ </simple>
+ <simple name="ECConsumerControlPeriod" type="long">
+ <value>50000</value>
+ </simple>
+ <simple name="ECSupplierControlPeriod" type="long">
+ <value>50000</value>
+ </simple>
+ </struct>
+</properties>
diff --git a/ACEXML/compass/meta-inf b/ACEXML/compass/meta-inf
new file mode 100644
index 00000000000..f52a318b2ef
--- /dev/null
+++ b/ACEXML/compass/meta-inf
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE softpkg SYSTEM "softpkg.dtd">
+<softpkg name="EventChannelPkg" version="0.1">
+ <pkgtype>CORBA Component</pkgtype>
+ <title>EventChannel</title>
+ <author> <company>DOC group </company>
+ <webpage href="http://www.cs.wustl.edu/~doc"/>
+ </author>
+ <description>A simple Event Channel test </description>
+ <dependency type="DSO" >
+ <localfile name="libTAO.so"/>
+ </dependency>
+ <implementation id="EventChannel" >
+ <os name="Linux" version="2,4,0,0" />
+ <processor name="x86" />
+ <compiler name="gcc" />
+ <programminglanguage name="C++" />
+ <propertyfile> <fileinarchive name="eventchannel.cpf"/></propertyfile>
+ <code type="DSO" >
+ <fileinarchive name="libService.so"/>
+ <entrypoint>createEventChannel</entrypoint>
+ </code>
+ </implementation>
+ <implementation id="Supplier" >
+ <os name="Linux" version="2,4,0,0" />
+ <processor name="x86" />
+ <compiler name="gcc" />
+ <programminglanguage name="C++" />
+ <code type="DSO">
+ <fileinarchive name="libSupplier.so"/>
+ <entrypoint>createSupplier</entrypoint>
+ </code>
+ </implementation>
+ <implementation id="Consumer" >
+ <os name="Linux" version="2,4,0,0" />
+ <processor name="x86" />
+ <compiler name="gcc" />
+ <programminglanguage name="C++" />
+ <code type="DSO" >
+ <fileinarchive name="libConsumer.so"/>
+ <entrypoint>createConsumer</entrypoint>
+ </code>
+ </implementation>
+</softpkg>
diff --git a/ACEXML/compass/properties.dtd b/ACEXML/compass/properties.dtd
new file mode 100644
index 00000000000..2dd070fb8ec
--- /dev/null
+++ b/ACEXML/compass/properties.dtd
@@ -0,0 +1,82 @@
+<!-- DTD for CORBA Component property file. The root element is
+ <properties>. Elements are listed alphabetically. -->
+
+<!ELEMENT choice (#PCDATA ) >
+
+<!ELEMENT choices ( choice | range )+ >
+
+<!ELEMENT defaultvalue ( #PCDATA ) >
+
+<!ELEMENT description ( #PCDATA ) >
+
+<!ELEMENT value ( #PCDATA) >
+
+<!ELEMENT properties
+ ( description?
+ , ( simple
+ | sequence
+ | struct
+ | valuetype
+ )*
+ ) >
+
+<!ELEMENT range (value, value) >
+
+<!ELEMENT simple
+ ( description?
+ , value
+ , choices?
+ , defaultvalue?
+ ) >
+<!ATTLIST simple
+ name CDATA #IMPLIED
+ type ( boolean
+ | char
+ | double
+ | float
+ | short
+ | long
+ | objref
+ | octet
+ | short
+ | string
+ | ulong
+ | ushort
+ ) #REQUIRED >
+
+<!ELEMENT sequence
+ ( description?
+ , ( simple*
+ | struct*
+ | sequence*
+ | valuetype*
+ )
+ ) >
+<!ATTLIST sequence
+ name CDATA #IMPLIED
+ type CDATA #REQUIRED >
+
+<!ELEMENT struct
+ ( description?
+ , ( simple
+ | sequence
+ | struct
+ | valuetype
+ )*
+ ) >
+<!ATTLIST struct
+ name CDATA #IMPLIED
+ type CDATA #REQUIRED >
+
+<!ELEMENT valuetype
+ ( description?
+ , ( simple
+ | sequence
+ | struct
+ | valuetype
+ )*
+ ) >
+<!ATTLIST valuetype
+ name CDATA #IMPLIED
+ type CDATA #REQUIRED
+ primarykey (true | false) "false" >
diff --git a/ACEXML/compass/properties.xml b/ACEXML/compass/properties.xml
new file mode 100644
index 00000000000..06a0da9bc15
--- /dev/null
+++ b/ACEXML/compass/properties.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE properties SYSTEM "properties.dtd">
+<properties>
+ <struct name="ECProperties" type="EC_Properties">
+ <description>Configuration for a Simple Event Channel</description>
+ <simple name="ECDispactching" type="string">
+ <value>reactive</value>
+ </simple>
+ <simple name="ECFiltering" type="string">
+ <value>basic</value>
+ </simple>
+ <simple name="ECSupplierFiltering" type="string">
+ <value>per-supplier</value>
+ </simple>
+ <simple name="ECProxyConsumerLock" type="string">
+ <value>thread</value>
+ </simple>
+ <simple name="ECProxySupplierLock" type="string">
+ <value>thread</value>
+ </simple>
+ <simple name="ECConsumerControl" type="string">
+ <value>reactive</value>
+ </simple>
+ <simple name="ECSupplierControl" type="string">
+ <value>reactive</value>
+ </simple>
+ <simple name="ECConsumerControlPeriod" type="long">
+ <value>50000</value>
+ </simple>
+ <simple name="ECSupplierControlPeriod" type="long">
+ <value>50000</value>
+ </simple>
+ </struct>
+</properties>
diff --git a/ACEXML/compass/softpkg.dtd b/ACEXML/compass/softpkg.dtd
new file mode 100644
index 00000000000..feab0f69da8
--- /dev/null
+++ b/ACEXML/compass/softpkg.dtd
@@ -0,0 +1,187 @@
+<!-- DTD for softpkg. Used to describe CORBA Component implementations. The
+ root element is <softpkg>. Elements are listed alphabetically. -->
+
+<!-- Simple xml link attributes based on W3C WD-xlink-19980303. May change
+ when XLL is finalized. -->
+
+<!ENTITY % simple-link-attributes
+ " xml:link CDATA #FIXED 'SIMPLE'
+ href CDATA #REQUIRED ">
+
+<!ELEMENT author ( name | company | webpage)* >
+
+<!ELEMENT code ( ( codebase
+ | fileinarchive
+ | link
+ )
+ , entrypoint?
+ , usage?
+ ) >
+<!ATTLIST code type CDATA #IMPLIED >
+
+<!-- If file not available locally, then download via codebase link -->
+<!ELEMENT codebase EMPTY >
+<!ATTLIST codebase
+ filename CDATA #IMPLIED
+ %simple-link-attributes; >
+
+<!ELEMENT compiler EMPTY >
+<!ATTLIST compiler
+ name CDATA #REQUIRED
+ version CDATA #IMPLIED >
+
+<!ELEMENT company ( #PCDATA ) >
+
+<!ELEMENT dependency
+ ( softpkgref
+ | codebase
+ | fileinarchive
+ | localfile
+ | name
+ | valuetypefactory ) >
+<!ATTLIST dependency
+ type CDATA #IMPLIED
+ action (assert | install) "assert">
+
+<!ELEMENT description ( #PCDATA ) >
+
+<!ELEMENT descriptor ( link | fileinarchive ) >
+<!ATTLIST descriptor
+ type CDATA #IMPLIED>
+
+<!ELEMENT entrypoint ( #PCDATA) >
+
+<!-- The "extension" element is used for vendor-specific extensions -->
+<!ELEMENT extension (#PCDATA) >
+<!ATTLIST extension
+ class CDATA #REQUIRED
+ origin CDATA #REQUIRED
+ id ID #IMPLIED
+ extra CDATA #IMPLIED
+ html-form CDATA #IMPLIED >
+
+<!-- The "fileinarchive" element is used to specify a file in the archive.
+ If the file is in another archive then link is used to point to the
+ archive in which the file may be found. -->
+
+<!ELEMENT fileinarchive ( link? ) >
+<!ATTLIST fileinarchive
+ name CDATA #REQUIRED >
+
+<!ELEMENT idl ( link | fileinarchive | repository ) >
+<!ATTLIST idl
+ id CDATA #REQUIRED >
+
+<!ELEMENT implementation
+ ( description
+ | code
+ | compiler
+ | dependency
+ | descriptor
+ | extension
+ | programminglanguage
+ | humanlanguage
+ | os
+ | propertyfile
+ | processor
+ | runtime
+ )* >
+<!ATTLIST implementation
+ id ID #IMPLIED
+ variation CDATA #IMPLIED >
+
+<!ELEMENT implref EMPTY >
+<!ATTLIST implref
+ idref CDATA #REQUIRED >
+
+<!ELEMENT humanlanguage EMPTY >
+<!ATTLIST humanlanguage
+ name CDATA #REQUIRED >
+
+<!ELEMENT license ( #PCDATA ) >
+<!ATTLIST license
+ %simple-link-attributes; >
+
+<!ELEMENT link ( #PCDATA ) >
+<!ATTLIST link
+ %simple-link-attributes; >
+
+<!-- A file that should be available in the local environment -->
+
+<!ELEMENT localfile EMPTY >
+<!ATTLIST localfile
+ name CDATA #REQUIRED >
+
+<!ELEMENT name ( #PCDATA ) >
+
+<!ELEMENT os EMPTY >
+<!ATTLIST os
+ name CDATA #REQUIRED
+ version CDATA #IMPLIED>
+
+<!ELEMENT pkgtype ( #PCDATA ) >
+<!ATTLIST pkgtype
+ version CDATA #IMPLIED >
+
+<!ELEMENT processor EMPTY >
+<!ATTLIST processor
+ name CDATA #REQUIRED >
+
+<!ELEMENT programminglanguage EMPTY>
+<!ATTLIST programminglanguage
+ name CDATA #REQUIRED
+ version CDATA #IMPLIED >
+
+<!ELEMENT propertyfile
+ ( fileinarchive
+ | link
+ ) >
+<!ATTLIST propertyfile
+ type CDATA #IMPLIED >
+
+<!ELEMENT repository ( ins | objref | link ) >
+<!ATTLIST repository
+ type CDATA #IMPLIED >
+
+<!ELEMENT runtime EMPTY >
+<!ATTLIST runtime
+ name CDATA #REQUIRED
+ version CDATA #IMPLIED>
+
+<!ELEMENT softpkg
+ ( title
+ | pkgtype
+ | author
+ | description?
+ | license
+ | idl
+ | propertyfile
+ | dependency
+ | descriptor
+ | implementation
+ | extension
+ )* >
+<!ATTLIST softpkg
+ name ID #REQUIRED
+ version CDATA #IMPLIED >
+
+<!ELEMENT softpkgref
+ ( ( fileinarchive
+ | link )
+ , implref? ) >
+
+<!ELEMENT title ( #PCDATA ) >
+
+<!ELEMENT usage ( #PCDATA ) >
+
+<!ELEMENT valuetypefactory
+ ( codebase
+ | fileinarchive
+ | link ) >
+<!ATTLIST valuetypefactory
+ repid CDATA #REQUIRED
+ valueentrypoint CDATA #IMPLIED
+ factoryentrypoint CDATA #IMPLIED >
+
+<!ELEMENT webpage ( #PCDATA ) >
+<!ATTLIST webpage %simple-link-attributes; >
diff --git a/ACEXML/compass/softpkg.xml b/ACEXML/compass/softpkg.xml
new file mode 100644
index 00000000000..e61cb4f4a6d
--- /dev/null
+++ b/ACEXML/compass/softpkg.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE softpkg SYSTEM "softpkg.dtd">
+<softpkg name="EventChannelPkg" version="0.1">
+ <pkgtype>CORBA Component</pkgtype>
+ <title>EventChannel</title>
+ <author> <company>DOC group </company>
+ <webpage href="http://www.cs.wustl.edu/~doc"/>
+ </author>
+ <description>A simple Event Channel test </description>
+ <dependency type="DSO" >
+ <localfile name="libTAO.so"/>
+ </dependency>
+ <implementation id="EventChannel" >
+ <os name="Linux" version="4,0,0,0" />
+ <processor name="x86" />
+ <compiler name="gcc" />
+ <programminglanguage name="C++" />
+ <propertyfile> <fileinarchive name="eventchannel.cpf"/></propertyfile>
+ <code type="DSO" >
+ <fileinarchive name="libService.so"/>
+ <entrypoint>createEventChannel</entrypoint>
+ </code>
+ </implementation>
+ <implementation id="Supplier" >
+ <os name="Linux" version="4,0,0,0" />
+ <processor name="x86" />
+ <compiler name="gcc" />
+ <programminglanguage name="C++" />
+ <code type="DSO">
+ <fileinarchive name="libSupplier.so"/>
+ <entrypoint>createSupplier</entrypoint>
+ </code>
+ </implementation>
+ <implementation id="Consumer" >
+ <os name="Linux" version="4,0,0,0" />
+ <processor name="x86" />
+ <compiler name="gcc" />
+ <programminglanguage name="C++" />
+ <code type="DSO" >
+ <fileinarchive name="libConsumer.so"/>
+ <entrypoint>createConsumer</entrypoint>
+ </code>
+ </implementation>
+</softpkg>
diff --git a/ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp b/ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp
index d3df75a3766..dd09a189647 100644
--- a/ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp
+++ b/ACEXML/examples/SAXPrint/SAXPrint_Handler.cpp
@@ -69,12 +69,15 @@ ACEXML_SAXPrint_Handler::endPrefixMapping (const ACEXML_Char *prefix
}
void
-ACEXML_SAXPrint_Handler::ignorableWhitespace (const ACEXML_Char *,
+ACEXML_SAXPrint_Handler::ignorableWhitespace (const ACEXML_Char * cdata,
int,
int ACEXML_ENV_ARG_DECL_NOT_USED)
ACE_THROW_SPEC ((ACEXML_SAXException))
{
- // ACE_DEBUG ((LM_DEBUG,
+ ACE_DEBUG ((LM_DEBUG,
+ ACE_TEXT ("%s"),
+ cdata));
+// ACE_DEBUG ((LM_DEBUG,
// ACE_TEXT ("* Event ignorableWhitespace () ***************\n")));
}