Issues for Components RTF mailing list

To comment on any of these issues, send email to components-ftf@omg.org. (Please include the issue number in the Subject: header, thusly: [Issue ###].) To submit a new issue, send email to issues@omg.org.

List of issues (green=resolved, yellow=pending Board vote, red=unresolved)

List options: All ; Open Issues only; or Closed Issues only

Issue 2204: Locality constrained objects + externalization
Issue 2227: Versioning needed for CORBA Core
Issue 2301: Locality-constrained objects
Issue 2611: Policies not locality-constrained?
Issue 3065: CCM Issue: CIDL Syntax doesn't allow for modules
Issue 3197: Use of undefined "id" attribute
Issue 3198: Purpose of "name" element
Issue 3199: atribute not part of definition
Issue 3208: PACKAGING AND DEPLOYMENT METAMODEL
Issue 3229: Components: Relationship of CIDL and PSDL unclear
Issue 3230: Components: readonly_attr_declarator slightly ambiguous
Issue 3232: Missing Rights Combinator in Security deployment descriptor
Issue 3233: IFR backward compatibility broken
Issue 3236: destroy() for local objects
Issue 3260: EJB/CCM mappings for the IR
Issue 3299: Document orbos/99-08-13, lines 1-6, contradicts with orbos/99-07-01
Issue 3412: CCM issue chapter 69 ptc/99-10-04
Issue 3419: Bridge Interoperability of the Java mapping with the EJB-to-CCM mapping
Issue 3647: operation <string get_implementation(in string iuuid)> Why does not CCMHome include the operation create_component() ?
Issue 3648: Why does not CCMHome include the operation create_component() ?
Issue 3649: p.615-85 ToonTownImpl
Issue 3650: In example p.615-86
Issue 3651: Where is HomeExecutorBase interface defined?
Issue 3725: Issue On the use of typed home (or CCMHome subtypes)
Issue 3726: Issue on Assemblies and descriptors
Issue 3746: Pbl: Improper mapping rule from IDL3 to IDL2 when dealing with events.
Issue 3785: operation get_implementation() referenced but not declared
Issue 3786: What about valuetype factories?
Issue 3925: range description in CPF files.
Issue 3926: simple ELEMENT definition
Issue 3928: Local push() operation.
Issue 3929: ExecutablePlacement definition
Issue 3930: exception raised by Components::Events::subscribe()
Issue 3937: Channel Setup for Emits ports.
Issue 3938: Intent of Components::Events::(un)subscribe to bypass the notif. service ?
Issue 3939: An assembly is always mono-vendor ???
Issue 3954: equivalent interfaces issue
Issue 3955: push() versus push_event()
Issue 3977: Services available for a basic container
Issue 3982: Deployment Object Life Cycles
Issue 3985: description element need to be added to corbacomponent.dtd
Issue 3986: repository element needed by softpkg DTD
Issue 3987: typo in connections element definition
Issue 3993: CCM Events issue
Issue 3996: IDL question concerning CCM
Issue 3997: No user access to filterable body in CCM spec.
Issue 3998: No Access to event filter form component
Issue 4011: grammar rule for home_executor_body contradicts description
Issue 4024: Typo in assembly element paragraph heading
Issue 4025: New component issue: connection failure recovery
Issue 4073: Components, Facets, and Object References Unclear
Issue 4075: Inter-component type semantics unclear
Issue 4077: Component assemblies do not follow composition pattern
Issue 4078: Component assembly templates
Issue 4079: Component home polymorphism
Issue 4080: Component home interface inheritance
Issue 4081: Problems with the Components Notification Event Interface
Issue 4116: Extended Interface Repository
Issue 4136: ComponentIR Interface fixes
Issue 4140: Components FTF: TypeCodeFactory
Issue 4203: CCM : Session2Context and Servants
Issue 4204: CCM : Session2Context naming
Issue 4214: CCM: usage of the MOF profile
Issue 4269: IDL out parameters can't map to EJB?
Issue 4307: CCM: Chapter 66 should be removed
Issue 4329: "supports" terminology issue for CCM
Issue 4412: Component port introspection
Issue 4529: Incorrect syntax in Components::Enumeration
Issue 4540: explicit definition of CCM exceptions mapped from EJB standard exceptions
Issue 4574: Issue for Components: Missing language mapping
Issue 4576: CCM: Isolated scope tokens
Issue 4577: CCM: Definition of import declaration unclear
Issue 4578: CCM: import and re-opening of modules
Issue 4579: CCM: Meaning of "exposed" scopes unclear.
Issue 4716: Little problem with introspection API
Issue 4717: minor IDL changes required in CCM API
Issue 4983: Generic operations for subscribing/unsubscribing at publishing ports
Issue 4986: IDL3 keyword "eventtype" conflicts with struct "CosNotification::EventType
Issue 5091: components-ftf: repository id in software package descriptor
Issue 5092: components-ftf: registercomponent element
Issue 5093: components-ftf: connectevent element
Issue 5340: Issue regarding language mapping for keyless homes
Issue 5429: simple type element of the property file issue
Issue 5492: Issues related to CCM's XML descriptors: chapter 69.4.4
Issue 5493: Issues related to CCM's XML descriptors: chapter 69.4.5.4
Issue 5494: Issues related to CCM's XML descriptors: chapter 69.4.5.16
Issue 5495: Issues related to CCM's XML descriptors: chapter 69.7.2.25
Issue 5496: Issues related to CCM's XML descriptors: chapter 69.7.2.38
Issue 5497: Issues related to CCM's XML descriptors: chapter 695.4
Issue 5498: CIDL Grammar problems: Productions must be renumbered : 134 -> 1, ... paragraph 60.2.1 : There is two mistakes in keywords
Issue 5499: paragraph 60.2.1 : There is two mistakes in keywords
Issue 5500: Productions 140, 141, 142 and 143 must be removed
Issue 5506: Typo (??) in chapter 61
Issue 5507: 69.8.2 Property File XML Elements
Issue 5577: create operation of AssemblyFactory interface
Issue 5583: Remove section 4.4.1.4 in formal/02-06-65
Issue 5584: Corrections in XML DTDs for packaging
Issue 5585: Editorial issues in formal/02-06-65
Issue 5588: Update Table 5-13 in the EJB Chapter of formal/02-06-65
Issue 5683: Derived component supported interface restriction
Issue 5906: insufficient examples of component attributes
Issue 7902: sections 1, 3, 4, 5 essentially empty
Issue 7903: Section 7, Overview
Issue 7911: On Page 18 - Figure 11 Home mapping
Issue 7912: Section 7.2
Issue 7913: Minor comments re Components FTF
Issue 7914: use the proper notation for expressing Profiles
Issue 7915: Figure 1
Issue 7916: Section 7.1, line1:
Issue 7917: - Figure 2
Issue 7918: 7.2, sentence 3
Issue 7919: Section 8.1.1
Issue 7920: Sections 8.1.1, 8.2.1:

Issue 2204: Locality constrained objects + externalization (components-ftf)

Click here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: Here"s an interesting question. How do you prevent the externalization of
   an l-c object? The user can create a reference to the l-c object *before*
   the l-c object has been bound to the POA itself. This means that the     
   reference can be externalized, and calls could presumably come into      
   the POA for this l-c object. What should the result of this call be?     
   OBJECT_NOT_EXIST?   
 

Resolution: issue closed, no change
Revised Text:
Actions taken:
November 11, 1998: received issue
October 22, 1999: moved from core rtf to components FTF
October 6, 2000: close dissue, no action taken

Discussion:
The only portable mechanism to implement locality constrained objects is LocalObject, which does not involve the
POA.


Issue 2227: Versioning needed for CORBA Core (components-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: At present there is no formal mechanism or process for versioning the
 CORBA Core. Indeed, it is somewhat hard to figure out what is part of
 the CORBA Core. In Rev 2.3 we tried to at least bring all the IDL for
 the Core together in pieces at logical places, e.g. ORB interface,
 Object interface, IR Interfaces etc. In addition we also have the
 PortableServer module and the GIOP and related modules, the versions of
 all of which have to match for the resulting system to have any hope of
 working as advertized.  I guess the basis of the current state of
 affairs is that - the vendor delivers the core, and therefore one can
 trust the vendor to deliver the right things. This model tends to break
 down in situations where people can download bits and pieces of a Java
 ORB at different times and then try to make the whole thing work
 together. 
 

Resolution: rejected, see above
Revised Text:
Actions taken:
November 23, 1998: received issue
December 22, 1999: moved from Core to Components FTF
May 13, 2002: closed issue

Discussion:
The general versioning problem could not be dealt with by the Components FTF
as it is too general and out of the scope of this FTF. However this should be the
subject of a future RFP issued both in the Platform and Domain Technical
Committees.
Let's note that the changes in the CORBA Core implied by the CCM are only
related to the OMG IDL grammar (i.e. new keywords and EBNF rules), the new
CORBA::Object::get_component operation, the Interface Repository and
CORBA::TypeCode interfaces. All other CCM APIs are defined in the separate
Components module.


Issue 2301: Locality-constrained objects (components-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: something about locality-constrained objects... The spec says that LC objects
 are local, so I cannot pass reference to another process or use
 object_to_string with them. There are no other restrictions so, by
 implication, LC objects can do everything a normal object can do. In paricular,
 I can invoke operations on LC objects via the DII, I get preinvoke and
 postinvoke calls from a servant locator, and the reference for an LC object
 and its servant have independent life cycles.
 
 This seems rather strange.

Resolution: close, no change
Revised Text:
Actions taken:
January 10, 1999: received issue
October 22, 1999: moved from Core RTF to Components FTF
October 6, 2000: closed issue

Discussion:
The DII issues are covered in issue 3177.  The only portable mechanism to implement locality constrained objects is
LocalObject, so no servant locator is involved. LocalObject specifies that the reference and implementation lifecycles are
equivalent.


Issue 2611: Policies not locality-constrained? (components-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Summary: the current spec doesn"t list policy objects as locality constrained.
 This seems rather strange. In particular, at the time I create policy objects,
 there is no POA that could be responsible for them, and I have no way
 to associate a policy object with a particular POA.
 Of course, this raises the question of whether references to policy objects
 are persistent or transient, whether I can pass them to another address
 space, whether requests on them are single-threaded or not, etc, etc.
 

Resolution: Close, no change (for 2.4).
Revised Text:
Actions taken:
April 16, 1999: received issue
October 22, 1999: moved from Core RTF to Components FTF
October 6, 2000: closed issue

Discussion:
Section 11.1.5 of the components submission identifies the interfaces that are changed to local, including "all the
interfaces in the PortableServer module".  These changes will be incorporated into the CORBA 3.0 specification.


Issue 3065: CCM Issue: CIDL Syntax doesn't allow for modules (components-ftf)

Click
here for this issue's archive.
Source: Oracle (Dr. Dan Frantz, )
Nature: Uncategorized Issue
Severity:
Summary:
The FTF draft does not allow a CIDL composition to be
included in a module.

Discussion: In the FTF Draft, the CIDL BNF (Section 60.3) is not yet
tied into IDL syntax. As it stands, a composition cannot be embedded
in a module. The draft recognizes that with the note (Section 60.4):

Resolution: see below
Revised Text: All the following revisions must be applied to the Chapter 60 of the ptc/99-10-04 document. In section 60.1 page 60-10, replace The OMG Compponent Implementation Definition Language (CIDL) is the language used to describe the by The OMG Component Implementation Definition Language (CIDL) is a language used to describe the structure and state of component implementations. Component-enabled ORB products generate implementation skeletons from CIDL definitions. Component builders extend these skeletons to create complete implementations. In section 60.1 page 60-10, replace OMG CIDL obeys the same lexical rules as OMG IDL, by OMG CIDL obeys the same lexical rules as OMG Persistent State Definition Language (PSDL) and OMG IDL, In section 60.1 page 60-10, replace The OMG CIDL grammar is an extension of the OMG IDL grammar. by The OMG CIDL grammar is an extension of a combination the OMG PSDL and OMG IDL grammars, with new constructs to define component implementations. In section 60.1 page 60-10, replace A source file containing interface specifications written in OMG CIDL must have an “.cdl” extension. by A source file containing specifications written in OMG CIDL must have a “.cdl” extension. In section 60.2 page 60-11, replace In general OMG CIDL uses the same lexical conventions as OMG IDL. by In general OMG CIDL uses the same lexical conventions as OMG PSDL and OMG IDL. In section 60.2.1 page 60-11, replace These are in addition to the ones defined by IDL, by These are in addition to the ones defined by PSDL and IDL, In section 60.3 page 60-11, add the new following text and productions The CIDL grammar is a combination of the PSDL and IDL grammars plus the following productions. (1) <cidl_specification> ::= <import>* <cidl_definition>+ (2) <cidl_definition> ::= <type_dcl> ";" | <const_dcl> ";" | <except_dcl> ";" | <interface> ";" | <cidl_module> ";" | <storagehome> ";" | <abstract_storagehome> ";" | <storagetype> ";" | <abstract_storagetype> ";" | <value> ";" | <type_id_dcl> ";" | <type_prefix_dcl> ";" | <event> ";" | <component> ";" | <home_dcl> ";" | <composition> ";" (3) <cidl_module> ::= "module" <identifier> "{" <cidl_definition>+ "}" In the whole chapter 60, change all the grammar production numbers from (1) to (37) to new production numbers from (4) to (40). In section 60.4 page 60-13, replace the two notes by A CIDL specification is like a PSDL and IDL specification that could also contain composition definitions. The syntax is: (1) <cidl_specification> ::= <import>* <cidl_definition>+ (2) <cidl_definition> ::= <type_dcl> ";" | <const_dcl> ";" | <except_dcl> ";" | <interface> ";" | <cidl_module> ";" | <storagehome> ";" | <abstract_storagehome> ";" | <storagetype> ";" | <abstract_storagetype> ";" | <value> ";" | <type_id_dcl> ";" | <type_prefix_dcl> ";" | <event> ";" | <component> ";" | <home_dcl> ";" | <composition> ";" (3) <cidl_module> ::= "module" <identifier> "{" <cidl_definition>+ "}" In section 60.3 page 60-12 and section 60.15 page 60-19, replace “delagatesTo” by “delegatesTo”.
Actions taken:
December 2, 1999: received issue
May 13, 2002: closed isse

Discussion:
The CCM FTF draft document ptc/99-10-04 does not fully describe the CIDL
grammar, i.e. relationship between CIDL, PSDL, and IDL grammars,
compositions declared into modules.
CIDL is a language to describe compositions, i.e. the structure and state of
component implementations. In order to declare and refer state definitions, CIDL
is a superset of PSDL as stated in the orbos/99-07-01 document. Moreover CIDL
is also a superset of OMG IDL in order to refer home and component definitions.
Then the CIDL grammar must be a combination of the PSDL and IDL grammars
plus the composition rule.


Issue 3197: Use of undefined "id" attribute (components-ftf)

Click
here for this issue's archive.
Source: Telcordia Technologies (Mr. John-Luc Bakker, jlbakker@research.telcordia.com)
Nature: Uncategorized Issue
Severity:
Summary:
I have a number of issues with the Software Package Descriptor section of
the CCM specification (Component Spec - Volume I, orbos/99-07-01.) I have
not found answers to issues raised below in either the components-ftf
archive, or the issues list.

ISSUE - The softpkg descriptor example uses an "id" attribute, which isn't
defined in the softpkg.dtd.

>From page 10-305, 10.2.1 A softpkg Descriptor Example, CORBA Components -
orbos/99-07-01:

	<idl id="IDL:M1/Bank:1.0" ><link href="ftp://x/y/Bank.idl"/></idl>

According to the softpkg.dtd, (page B-435, B.1 softpkg.dtd, CORBA Components
- orbos/99-08-05, ) the idl element is defined as follows:

<!ELEMENT idl
	( link
	| fileinarchive
	| repository
	) >

The same definition can also found in section 10.2.2.14, The idl Element (,
page 10-311, CORBA Components - orbos/99-07-01.) There are no attributes
defined for the idl element.

Resolution: see below
Revised Text: In ptc/99-10-04 section 69.3.2.14 page 69-266, add: <!ATTLIST idl id ID #REQUIRED > The id attribute is a repository Id which uniquely identifies the IDL equivalent interface for the software component. In ptc/99-10-04 section 695.1 page 695-337, add the following attribute list after the element idl: <!ATTLIST idl id ID #REQUIRED >
Actions taken:
January 10, 2000: received issue
May 13, 2002: closed issue

Discussion:
In ptc/99-10-04 section 69.3.1 page 69-260, the following
<idl id="IDL:M1/Bank:1.0" ><link href="ftp://x/y/Bank.idl"
/></idl> describes what the repository Id is and where the IDL file is located for the
softpkg descriptor example.
Require to add "id" to the list of attributes of the "idl" element in the softpkg XML
DTD.


Issue 3198: Purpose of "name" element (components-ftf)

Click
here for this issue's archive.
Source: Telcordia Technologies (Mr. John-Luc Bakker, jlbakker@research.telcordia.com)
Nature: Uncategorized Issue
Severity:
Summary:
ISSUE - What is the purpose of the "name" element as used in the
"dependency" element?

See section 10.2.2.7, The dependency Element (, page 10-308, 10.2.1 A
softpkg Descriptor Example, CORBA Components - orbos/99-07-01.) Section
10.2.2.20, The name Element, describes the name element as an optional
element of the "author" element, and is meant to identify the author. So
does the name element identify the author of the dependency, or is it used
to identify the dependency itself?


Resolution: see below
Revised Text: In ptc/99-10-04 section 69.3.2.20 page 69-268, replace The name element, as an optional child element of author, specifies the name of the author. by The name element is an optional child element of both the author and dependency elements. When used as a child of author, it specifies the name of the author. When used as a child of dependency, it specifies the expected value of the dependency.
Actions taken:
January 10, 2000: received issue
May 13, 2002: closed issue

Discussion:
Resolution:
Require to update the text describing the name element of the softpkg XML DTD
as this element is an optional child element of both the author and dependency
elements. When used as a child of author, it specifies the name of the author.
When used as a child of dependency, it specifies the expected value of the
dependency.


Issue 3199: atribute not part of definition (components-ftf)

Click
here for this issue's archive.
Source: Telcordia Technologies (Mr. John-Luc Bakker, jlbakker@research.telcordia.com)
Nature: Uncategorized Issue
Severity:
Summary:
ISSUE - The description of the "implementation" element explains the
"variation" attribute, but the attribute is not part of the definition. 

>From page 10-32, CORBA Components - orbos/99-07-01: "The variation attribute
is used to indicate a variation from a normal implementation." But the
definition of the implementation attribute list only lists the "id"
attribute. The variation attribute is not part of the definition as given in
softpkg.dtd either (, page B-419, B.1 softpkg.dtd, CORBA Components -
orbos/99-08-05.)


Resolution: see below
Revised Text: In ptc/99-10-04 section 69.3.2.15 page 69-267, replace <!ATTLIST implementation id ID #IMPLIED > by <!ATTLIST implementation id ID #IMPLIED variation CDATA #IMPLIED > In ptc/99-10-04 section 695.1 page 695-337, replace <!ATTLIST implementation id ID #IMPLIED > by <!ATTLIST implementation id ID #IMPLIED variation CDATA #IMPLIED >
Actions taken:
January 10, 2000: received issue
May 13, 2002: closed issue

Discussion:
Require to add "variation" to the list of attributes of the "implementation" element
in the softpkg XML DTD.


Issue 3208: PACKAGING AND DEPLOYMENT METAMODEL (components-ftf)

Click
here for this issue's archive.
Source: SAP AG (Mr. David Frankel, david.frankel@sap.com)
Nature: Uncategorized Issue
Severity:
Summary:
1) Some concepts from the CORBA metamodel (component, facet, receptacle,
event publishing/emission/consumption) are also in P/D metamodel but the
definitions from the CORBA metamodel are not directly reused.  

Recommendation: Analyze where reuse is appropriate and adjust the P/D
metamodel accordingly.

2) The P/D metamodel has the notion of files (e.g. configuration property
files and some other files) where some metadata are stored.  The hand-coded
DTDs treat these files as types in their own right, i.e. they conceptualize
them as files, and some of the other types point to the file types.  This
is approach is mimicked in the metamodel.  However, it might not make sense
in the metamodel because, in a repository context, you are referencing
other information in the repository and not necessarily a file.   The way
the metamodel is now, when something references one of these files you lose
the metadata trail.  The file metaclass itself does not have structural
features pointing to metaclasses that define the contents of the file.  You
have to go elsewhere (i.e. to the property file Package) to get that
metadata and there is no reference to the property file Package.

Recommendation: It might make more sense for references to the file
metaclass to instead reference the top level element of the property file
Package so that you can "follow the metadata trail." If someone wants to
break out the properties metadata in a file, then the generated DTD should
allow that, i.e. the part that needs to go into a properties file should be
able to be self-contained without external references.

Resolution: rejected, See issue 4575.
Revised Text:
Actions taken:
January 11, 2000: received issue
May 13, 2002: closed issue

Discussion:
This issue points out only two problems of the packaging and deployment model.
There are lot of other problems and there are lots of inconsistencies between the
meta model and the deployment descriptors. For this reason, it is better to
remove the Packaging and Deployment meta model and to address this by a
future RFP process.


Issue 3229: Components: Relationship of CIDL and PSDL unclear (components-ftf)

Click
here for this issue's archive.
Source: Humboldt-Universitaet (Mr. Martin von Loewis, loewis@informatik.hu-berlin.de)
Nature: Uncategorized Issue
Severity:
Summary:
The draft component specification (ptc/99-10-04) explains that CIDL is
a superset of IDL. This is a derivation from the specification
voted-on in the PTC (orbos/99-07-01), which specified that CIDL is a
superset of PSDL.

Also, declaring CIDL not to be a superset of PSDL means that the
<catalog_use_dcl>, <abstract_storage_home_binding> etc become
meaningless, as they refer to entities from PSDL.

Proposed Resolution: Declare CIDL to be a superset of PSDL.

Resolution: See issue 3065.
Revised Text:
Actions taken:
January 17, 2000: received issue
May 13, 2002: closed issue

Issue 3230: Components: readonly_attr_declarator slightly ambiguous (components-ftf)

Click
here for this issue's archive.
Source: Humboldt-Universitaet (Mr. Martin von Loewis, loewis@informatik.hu-berlin.de)
Nature: Uncategorized Issue
Severity:
Summary:
In ptc/99-10-04, the production 104

<readonly_attr_declarator >::= 
    <simple_declarator> [ <raises_expr> ] 
  | <simple_declarator> { "," <simple_declarator> }*

is ambiguous, since a sole <simple_declarator> could either denote the
first alternative (with no <raises_expr>), or the second alternative
(with the simple-declarator-list omitted). Even though this does not
constitute a serious problem, it is also easy to fix:

<readonly_attr_declarator >::= 
    <simple_declarator> <raises_expr>
  | <simple_declarator> { "," <simple_declarator> }*

Resolution: see below
Revised Text: In ptc/99-10-03 section 3.4 page 3-17, replace (104)<readonly_attr_declarator >::= <simple_declarator> [ <raises_expr> ] | <simple_declarator> { "," <simple_declarator> }* by (104)<readonly_attr_declarator >::= <simple_declarator> <raises_expr> | <simple_declarator> { "," <simple_declarator> }* In ptc/99-10-03 section 3.14 page 3-49, replace (104)<readonly_attr_declarator >::= <simple_declarator> [ <raises_expr> ] | <simple_declarator> { "," <simple_declarator> }* by (104)<readonly_attr_declarator >::= <simple_declarator> <raises_expr> | <simple_declarator> { "," <simple_declarator> }* In ptc/99-10-04 section 64.4.1 page 64-184, replace (104)<readonly_attr_declarator >::= <simple_declarator> [ <raises_expr> ] | <simple_declarator> { "," <simple_declarator> }* by (104)<readonly_attr_declarator >::= <simple_declarator> <raises_expr> | <simple_declarator> { "," <simple_declarator> }*
Actions taken:
January 17, 2000: received issue
May 13, 2002: closed issue

Discussion:
The production 104 is ambiguous and is replaced by the rule provided by the
issue submitter.


Issue 3232: Missing Rights Combinator in Security deployment descriptor (components-ftf)

Click
here for this issue's archive.
Source: Hewlett-Packard (Dr. Jishnu Mukerji, jmukerji@hp.com jishnu@hp.com)
Nature: Uncategorized Issue
Severity:
Summary:
In section 69.4.5.45, the "rights" element is mentioned, but the "rights
combinator" elemnt is not. Given a set of "rights" it is not possible to
determine how to cobine them without the "rights combinator" as specified in
CORBAsec. Suggest we add a "rights cobminator" element, consistent with the
definition of rights combinator in CORBAsec.

Resolution: see below
Revised Text: In ptc/99-10-04 section 69.4.5.45 page 69-293, replace The security element is an optional child element of corbacomponent; it is required whenever rights are assigned to component operations within the descriptor. It specifies the rights family assumed when defining component operation rights. The optional requiredrights element may be used to document the rights available in the rights family. <!ELEMENT security ( requiredrights? ) > <!ATTLIST security rightsfamily CDATA #REQUIRED > The rightsfamily attribute defines the rights family; for example, the “CORBA” rights family. with The security element is an optional child element of corbacomponent; it is required whenever rights are assigned to component operations within the descriptor. It specifies the rights family assumed when defining component operation rights and the rights combinator required for interpretation of multiple required rights. The optional requiredrights element may be used to document the rights available in the rights family. <!ELEMENT security ( requiredrights? ) > <!ATTLIST security rightsfamily CDATA #REQUIRED > rightscombinator (secallrights | secanyrights) #REQUIRED > The rightsfamily attribute defines the rights family; for example, the “CORBA” rights family. The rightscombinator enumeration attribute defines the possible right combinators describing the interpretation of multiple rights as defined by the CORBA Security Service. In ptc/99-10-04 section 695.2 page 695-344, replace <!ELEMENT security ( requiredrights? ) > <!ATTLIST security rightsfamily CDATA #REQUIRED > with <!ELEMENT security ( requiredrights? ) > <!ATTLIST security rightsfamily CDATA #REQUIRED > rightscombinator (secallrights | secanyrights) #REQUIRED >
Actions taken:
January 18, 2000: received issue
May 13, 2002: closed issue

Discussion:
The CCM FTF draft document ptc/99-10-04 does not provide the required
information needed to set the required rights for an operation since the rights
combinator is missing. A rightscombinator attribute must be added to the
security element of the CORBA component descriptor DTD.


Issue 3233: IFR backward compatibility broken (components-ftf)

Click
here for this issue's archive.
Source: Hewlett-Packard (Dr. Jishnu Mukerji, jmukerji@hp.com jishnu@hp.com)
Nature: Revision
Severity:
Summary:
Moving existing interfaces from the CORBA module to a new IR module breaks
backward compatibility. Hence they should be moved back to the CORBA module. The
elements that are newly added can go into a new module, and interfaces
corresponding to the existing ones with the same names can be placed in the new
module, with these interfaces deriving from the existing corresponding
interfaces in the CORBA module, thus allowing all CORBA3 IR interfaces to be
accessed from a single module.

This also fixes a related problem regarding separation of the TypeCode stuff,
specifically TypeCode factory. It is broken in the current spec because certain
types used by the typecode factory were inadvertently moved to the IR module.

Resolution: see below
Revised Text: In ptc/99-10-03, replace chapter 10 by the content of the ccm/2001-08-01 document which contains vertical bars to identify changes. In ptc/99-10-03, replace all occurrences of the IR module by the CORBA module, i.e. replace all IR:: by CORBA::
Actions taken:
January 18, 2000: received issue
May 13, 2002: closed issue

Discussion:
Resolution:
The Interface Repository interfaces are moved back to the CORBA module to not
break backward compatibility. New OMG IDL constructions introduced by the
CCM, i.e. home, component and ports, are reflected by new OMG IDL interfaces
contained in the new CORBA::ComponentIR module.
The last draft of the CORBA Chapter 10 "The Interface Repository" is available in
OMG TC Document # ccm/2001-08-01 and the full OMG IDL is available in OMG
TC Document # ccm/2001-08-02.


Issue 3236: destroy() for local objects (components-ftf)

Click
here for this issue's archive.
Source: Triodia Technologies Pty Ltd (Mr. Michi Henning, michi@triodia.com)
Nature: Uncategorized Issue
Severity:
Summary:
every ORB I know of implements the various destroy() operations on
local objects (such as policies or DynAny) as a no-op and destroys the local
object on the final call to release() instead. Yet, the spec still requires
programmers to call destroy(). The problem with this is that programmers
can easily end up writing non-portable code without any visible problem.
Then, when code is moved to another ORB, it is conceivable that it will
leak objects.

This isn't very pretty. I think we should get rid of the destroy() calls
on local objects (possibly with the exception of the ORB object, although
the entire shutdown issue for that is quite a mess anyway). It doesn't
make sense to require the programmer to make a destroy() call for something
that naturally can be reference counted.

Resolution: When the interfaces identified in section 11.1.5 are updated to be local interfaces, any destroy() o
Revised Text: "The destroy operation has been deprecated. Clients of <local interface name> are not required to call destroy, and implementations of <local interface name>::destroy perform no visible function." Actions taken: Close issue and incorporate revised text into descriptions of existing interfaces when they are changed to be local for CORBA 3.0.
Actions taken:
January 19, 2000: received issue
October 6, 2000: closed issue

Discussion:
When the interfaces identified in section 11.1.5 are updated to be local interfaces, any destroy() operations should
be deprecated using the text below.  Note that this does not include CORBA::ORB.


Issue 3260: EJB/CCM mappings for the IR (components-ftf)

Click
here for this issue's archive.
Source: Oracle (Mr. Edward Cobb, eecobb@comcast.net)
Nature: Uncategorized Issue
Severity:
Summary:
The mapping between EEJB metadata and the IR is missing in the
current specification .Resolution: Define the mapping

Resolution: see above, rejected
Revised Text:
Actions taken:
January 27, 2000: received issue
May 13, 2002: closed issue

Discussion:
Given that the information needed to implement the EJBMetadata interface for a
given EJB (in particular, for one that is the mapping of a CORBA Component) is
available from the Java runtime, it is not necessary to define a mapping between
EJB metadata and the IR. That is, for the purposes of implementing
EJBMetadata, which is the only concern in this issue, a mapping between EJB
metadata and the IR is not required. An example of this implementation involves
looking up class information in the classpath for the EJBMetadata methods that
require this information (getHomeInterfaceClass, getRemoteInterfaceClass,
getPrimaryKeyClass), and caching information obtained at generation time for
the remaining EJBMetadata methods (getEJBHome, isSession and
isStatelessSession).


Issue 3299: Document orbos/99-08-13, lines 1-6, contradicts with orbos/99-07-01 (components-ftf)

Click
here for this issue's archive.
Source: Telcordia Technologies (Mr. John-Luc Bakker, jlbakker@research.telcordia.com)
Nature: Uncategorized Issue
Severity:
Summary:
Document orbos/99-08-13, line 9 and further, contradicts with
orbos/99-07-01,
Chapter 4.4. The production rules for typePrefix and typeId contain a
";",
where file orbos/99-08-13 omits them.

Document orbos/99-08-13, lines 1-6, contradicts with orbos/99-07-01,
Chapter 4.2. The production rules for import contain a ";",
where file orbos/99-08-13 omits them.

Resolution: see below
Revised Text: In orbos/99-08-13, replace the following first lines import ::CORBA import ::SecurityLevel2 import ::CosPersistentState import ::PortableServer import ::CosNotification import ::CosNotifyChannelAdmin module Components { typePrefix Components "omg.org" by import ::CORBA; import ::SecurityLevel2; import ::CosPersistentState; import ::PortableServer; import ::CosNotification; import ::CosNotifyChannelAdmin; module Components { typeprefix Components "omg.org";
Actions taken:
February 7, 2000: received issue
May 13, 2002: closed issue

Discussion:
Resolution:
Require to add ';' at the end of lines 1-6 and 9 in orbos/99-08-13 in order to be
compliant with the CCM specification (ptc/99-10-03) and to replace typePrefix by
typeprefix (see Issue 3216).


Issue 3412: CCM issue chapter 69 ptc/99-10-04 (components-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
What exactly is meant in chapter 69.7.2.3 by component archive file? It is
not defined anywhere. Is it a software package descriptor or a software
package? At least it is not a CORBA component descriptor as shown in the
example in chapter 69.7.1. The text there is like:

<componentfile id="A">
    <fileinarchive name="ca.ccd"/>
...

Is the sufix ccd right?

Resolution: see below
Revised Text: In ptc/99-10-04 section 69.7.2.3 page 69-303, replace The componentfile element refers to a component archive file containing a component and home implementation. by The componentfile element refers to a component software descriptor containing information regarding a component and home implementation. In the example in section 69.7.1 page 69-300, replace the suffixes “ccd” by “csd” in the componentfile elements.
Actions taken:
March 13, 2000: received issue
May 13, 2002: closed issue

Discussion:
Resolution:
The referred file has to contain a SoftwarePackageDescriptor in order to get
information about actual implementations. Thus the example at the beginning of
69.7.1 must be changed. The suffix ccd must change to “csd”.


Issue 3419: Bridge Interoperability of the Java mapping with the EJB-to-CCM mapping (components-ftf)

Click
here for this issue's archive.
Source: International Business Machines (Mr. Ignacio Silva-Lepe, isilval@us.ibm.com)
Nature: Uncategorized Issue
Severity:
Summary:
he following sub-issues need to be addressed to make sure that CCM/EJB
bridge implementations are interoperable. In particular, these sub-issues
have in common that the current definition of the bridge relies on the
Java-to-IDL mapping, which in certain cases does not match the requirements
of the EJB-to-CCM mapping.

Sub-issue: METHOD NAMES IN STANDARD INTERFACES

The names for some methods defined on standard interfaces, for example
<home-name>Implicit.find_by_primary_key or <home-name>Implicit.create,
differ from the names that their EJB counterparts get mapped to under
Java-to-IDL (in the example these would be
<home-name>.findByPrimaryKey and create__keytype, respectively). When
this happens, the translation from one form of the name to the other
can happen at either the client or the server side of the bridge. FOR
INTEROPERABILITY, it is necessary to eliminate this ambiguity. Choices
for doing this include requiring the client stub to always do the
translation or requiring the server skeleton to take into account both
name forms.

The actual problem we are getting hit by here is overloaded names. Methods
like remove and create in EJBHome and user-defined EJB homes can only be
mapped to remove__XXX and create__XXX under Java-to-IDL, yet the
definitions of the corresponding methods in <home-name>Implicit are remove
and create, respectively. I can understand that these implicit home names
were defined as such because <home-name>Implicit is a standard interface
(although the fact that its name is prefixed by <home-name> is a bit
troubling) and, if for no other reason, because the XXX in create_XXX
cannot be known in general. So, if we stick to the standard names, there is
a mismatch. Notice however that I said that the mapping is done under
Java-to-IDL. Perhaps I should not say that but the CCM spec is not clear
about this and in fact it states that the create methods in an EJB home are
mapped to factory names under Java-to-IDL. So we may actually be talking
about two different issues: (1) use different mapping rules for create with
no primary key, in which case we need to ammend the spec to this effect;
(2) perform a translation, in which case we have an interoperability issue.

Sub-issue: HANDLING STANDARD EXCEPTIONS

Standard exceptions thrown by EJB methods, such as
DuplicateKeyException, have a mapping specification to IDL (under the
current Java-to-IDL specification) that does not match the exceptions
that they map to under the CCM spec (in the example this would be
DuplicateKeyValue). This requires that the bridge perform a run-time
translation of exceptions from the Java-to-IDL mapping to the CCM
mapping at either the client stub or the server skeleton. FOR
INTEROPERABILITY, it is further necessary that the location of the
translation be fixed. Early prototype implementation suggests that it
is more advantageous for the client stub to perform the translation
since otherwise the server skeleton would need to know what kind of
client it is talking to: a CCM client or an EJB client. A larger issue
that this falls under is the reconciliation of the Java-to-IDL mapping
with the EJB-to-CCM mapping. If and when the larger issue is resolved,
this issue would largely disappear.

This also falls under the Java-to-IDL mismatch. Our choices seem to be: (1)
define the standard exceptions, e.g. Components::DuplicateKeyValue, as if
they had been mapped from Java under Java-to-IDL, (2) map the exceptions
from Java under rules different from those on Java-to-IDL; (3) perform a
translation. Choice (1) may be too intrusive but it could be rationalized
with a "integration with EJB" argument. Choices (2) and (3) are similar to
the above.

Sub-issue: PASSING A PRIMARY KEY PARAMETER

A number of methods defined by standard interfaces, such as remove
defined by EJBHome, include in their signature a primary key value and
define its type to be java.lang.Object, which under RMI-IIOP is mapped
to CORBA::Any. Since the primary key is actually an object passed by
value and thus mapped to an IDL value type, a run-time translation
must be performed from the value type to Any and viceversa whenever a
method that includes a primary key is called. FOR INTEROPERABILITY, it
is necessary that the location of this translation be fixed. Choices
for doing this include requiring the client stub to always do the
translation or requiring the server skeleton to take into account both
a value or an Any that could possibly be coming from any given
client. In additon, if a primary key is returned it may be more
advantageous for the client to perform this translation, since the
server skeleton may not know what form the client is expecting.

Here again the problem is that, under Java-to-IDL, java.lang.Object gets
mapped to ::java::lang::Object (not CORBA::Any actually, as per the actual
Java-to-IDL I am looking at) for methods like EJBHome.remove, whereas the
key is expected to be passed as a value type. So the choices seem to be:
(1) use rules other than those in Java-to-IDL for the mapping or (2)
perform a translation.

Resolution: see below
Revised Text: In section 64.3, page 64-182, add: 64.3.3 Interoperability of the View As stated in section 64.3.2, translation of CORBA Component requests into EJB requests can happen at either the client-side, the server-side, or a combination of the two. However, in order to provide interoperability of implementations of CORBA component views of EJBs, a minimal number of translation points must be performed and they must be performed at an explicitly defined location: either the client-side or the server-side. These translation points are, for the implementation of a CORBA component view of an EJB, and for an EJB home interface: * Translation of specific method names The following methods shall translate their names as indicated. CCM Interface Method name EJB Interface Translation CCMHome get_component_def EJBHome getEJBMetaData remove_component remove <name>Implicit find_by_primary_key <name> findByPrimaryKey remove remove__java_lang_Object create create__java_lang_Object get_primary_key EJBObject getPrimaryKey * Handling of standard exceptions The following exceptions, caught by the indicated methods, shall be translated as indicated before raising them to their CORBA clients. CCM Interface Method name Exception caught Translation CCMHome get_component_def RemoteException CORBA UNKNOWN remove_component RemoveException RemoveFailure RemoteException CORBA UNKNOWN <name>Implicit create DuplicateKeyException DuplicateKeyValue CreateException CreateFailure find_by_primary_key ObjectNotFoundException UnknownKeyValue FinderException FinderFailure remove RemoveException RemoveFailure RemoteException CORBA UNKNOWN get_primary_key RemoteException CORBA UNKNOWN Note: RemoteException is translated into CORBA UNKNOWN system exception according to rules defined in formal/01-06-07, section 1.4.7. * Handling of a primary key parameter The methods create, find_by_primary_key and remove, defined by < home >Implicit shall translate the primary key valuetype they get as input parameter to a CORBA::Any equivalent. Likewise, the method get_primary_key defined by < home >Implicit shall translate the CORBA::Any value of the primary key it gets as a result from its request into an equivalent primary key valuetype before returning it. For the implementation of a CORBA component view of an EJB, and for an EJB home interface, the translation points are: * Translation of specific method names The following methods shall translate their names as indicated. CCM Interface Method name EJB Interface Translation CCMObject get_home EJBObject getEJBHome get_primary_key getPrimaryKey * Handling of standard exceptions The following exceptions, caught by the indicated methods, shall be translated as indicated before raising them to their CORBA clients. CCM Interface Method name Exception caught Translation CCMObject get_home RemoteException CORBA UNKNOWN get_primary_key RemoteException CORBA UNKNOWN remove RemoveException RemoveFailure RemoteException CORBA UNKNOWN Note: RemoteException is translated into CORBA UNKNOWN system exception according to rules defined in formal/01-06-07, section 1.4.7. * Handling of a primary key parameter The method get_primary_key, defined by CCMObject, shall translate the CORBA::Any value of the primary key it gets as a result from its request into an equivalent Components::PrimaryKeyBase valuetype before returning it. In section 64.3 change the number of section 64.3.3 to 64.3.4 In section 64.4, page 64-189, add: 64.4.3 Interoperability of the View As stated in section 64.4.2, translation of EJB requests into CORBA Component requests can happen at either the client-side, the server-side, or a combination of the two. However, in order to provide interoperability of implementations of EJB views of CORBA components, a minimal number of translation points must be performed and they must be performed at an explicitly defined location: either the client-side or the server-side. These translation points are, for the implementation of an EJB view of a CORBA component, and for a CCMHome interface: * Translation of specific method names The following methods shall translate their names as indicated. EJB Interface Method name CCM Interface Translation EJBHome remove CCMHome remove_component <name> findByPrimaryKey <name>Implicit find_by_primary_key remove__java_lang_Object remove create__java_lang_Object create * Handling of standard exceptions The following exceptions, caught by the indicated methods, shall be translated as indicated before raising them to their EJB clients. EJB Interface Method name Exception caught Translation EJBHome remove RemoveFailure RemoveException CORBA system exception RemoteException remove__java_lang_Object RemoveFailure RemoveException CORBA system exception RemoteException <name> create CreateFailure CreateException DuplicateKeyValue DuplicateKeyException findByPrimaryKey UnknownKeyValue ObjectNotFoundException FinderFailure FinderException Note: CORBA system exception is translated into RemoteException according to rules defined in formal/01-06-07, section 1.4.8. * Handling of a primary key parameter The methods create and findByPrimaryKey, defined by < name >, and remove__java_lang_Object, defined by EJBHome shall translate the primary key valuetype they get as input parameter to a CORBA::Any equivalent. For the implementation of an EJB view of a CORBA component, and for a CCM interface, the translation points are: * Translation of specific method names The following methods shall translate their names as indicated. EJB Interface Method name CCM Interface Translation EJBObject getEJBHome CCMObject get_home getPrimaryKey get_primary_key isIdentical CORBA::Object is_equivalent * Handling of standard exceptions The following exceptions, caught by the indicated methods, shall be translated as indicated before raising them to their EJB clients. EJB Interface Method name Exception caught Translation EJBObject getEJBHome CORBA system exception RemoteException getPrimaryKey CORBA system exception RemoteException remove RemoveFailure RemoveException CORBA system exception RemoteException isIdentical CORBA system exception RemoteException Note: CORBA system exception is translated into RemoteException according to rules defined in formal/01-06-07, section 1.4.8. * Handling of a primary key parameter The method getPrimaryKey, defined by EJBObject, shall translate the CORBA::Any value of the primary key it gets as a result from its request into an equivalent Java Object valuetype before returning it. In section 64.4 change the number of section 64.4.3 to 64.4.4 In section 64, page 64-190, add: 64.5 Compliance with the Interoperability of Integration Views As stated in sections 64.3.3 and 64.4.3, request translations must happen at an explicitly defined location: either the client-side or the server side. Rather than mandate one location arbitrarily, a number of levels of compliance with the interoperability of integration views are defined. Vendors shall clearly state what level of interoperability is supported by their implementations. These levels are: NONE: Integration view implementations that comply with this level actually perform no request translations. These implementations can still interoperate with other implementations that understand non-translated requests, e.g., implementations compliant with levels SERVER-SIDE and FULL. CLIENT-SIDE: Translation occurs either in the address space of a client stub or in a separate address space downstream from the client stub but before the resulting GIOP request gets sent to the server. SERVER-SIDE: Translation occurs either in the address space of a server skeleton or in a separate address space upstream from the server skeleton but after the GIOP request has been received from the client. The presence of a server-side view must not prevent native (i.e., non-translated) access to the component. FULL: Integration view implementations that comply with this level comply with both the CLIENT-SIDE and SERVER-SIDE levels. Note that a stand-alone bridge in a separate address space complies at this level since it is both upstream of the client (SERVER-SIDE) and downstream of the server (CLIENT-SIDE) FULL: Integration view implementations that comply with this level comply with both the CLIENT and the SERVER levels. The following table illustrates the possible combinations of level compliance that are implied by the previous definitions. Rows in the table denote implementations compliant with a given level that send a request. Columns denote implementations compliant with a given level that receive a request. So, for example, a SERVER-SIDE implementation cannot interoperate with a CLIENT-SIDE implementation because the SERVER-SIDE implementation does not translate on send and the CLIENT-SIDE implementation does not translate on receive. NONE CLIENT-SIDE SERVER-SIDE FULL NONE no no yes yes CLIENT-SIDE no yes yes yes SERVER-SIDE no no yes yes FULL yes yes yes yes In section 64 change the number of section 64.5 to 64.6
Actions taken:
March 14, 2000: received issue
May 13, 2002: closed issue

Discussion:
Require that client or server stubs of home and remote interfaces for both
CORBA Component views of EJBs as well as EJB views of CORBA Components
include the necessary code to perform the translations outlined in the summary.


Issue 3647: operation <string get_implementation(in string iuuid)> Why does not CCMHome include the operation create_component() ? (components-ftf)

Click
here for this issue's archive.
Source: Laboratoire d`Informatique Fondamentale de Lille (Mr. Raphael G. Marvie, marvie@lifl.fr)
Nature: Uncategorized Issue
Severity:
Summary:
3. Why isn't the operation <string get_implementation(in string iuuid)>
   defined in the interface ComponentInstallation while being used in
   ptc/99-10-04 p.69-329 item 9? (Where Installation should be
   replaced by ComponentInstallation don't you think?) Moreover, this
   operation is required for an Assembly to find the location of a
   component implementation in order to load it in a container.

Resolution: see below
Revised Text: In ptc/99-10-04, replace the section 69.9 between pages 69-327 and 69-334 by the content of the ccm/2001-10-03 document. In ptc/99-10-04 section 69.3.2.10 page 69-264, set the cross reference “See section 69.9.5 on page 332” to the section number 69.9.8 and the new related page.
Actions taken:
May 23, 2000: received issue
May 13, 2002: closed issue

Discussion:
The section 69.9 of the ptc/99-10-04 document does not define the signature of
the required get_implementation operation. Moreover this section refers to the
Installation interface instead of the ComponentInstallation interface.
The section 69.9 of the ptc/99-10-04 document must be replaced by the content
of the ccm/2001-10-03 document defining the signature of the
get_implementation operation and replacing all occurrences of the Installation
interface by the ComponentInstallation interface.


Issue 3648: Why does not CCMHome include the operation create_component() ? (components-ftf)

Click
here for this issue's archive.
Source: Laboratoire d`Informatique Fondamentale de Lille (Mr. Raphael G. Marvie, marvie@lifl.fr)
Nature: Uncategorized Issue
Severity:
Summary:
4. Why does not CCMHome include the operation create_component() ? I
   understand that a component created by a home with keys should not
   offer this interface, however according to the exemple in the spec
   Container operation install_home() returns a CCMHome, thus how
   could a component be created in this context? Does it imply that
   you know if the home is keyless or not, thus narrowing it before
   use? Don't you find strange to have the remove operation but not a
   default create in the CCMHome interface?

Resolution: rejected
Revised Text:
Actions taken:
May 23, 2000: received issue
May 13, 2002: closed issue

Discussion:
Clients could invoke the remove_component operation of the CCMHome
interface without requiring to know if the home has or has not an associate
primary key.
In order to create a component from a CCMHome instance, the caller must know
if the home has or has not a primary key. Moreover for keyed homes, the caller
must know what the home’s primary key type is, in order to create a primary key
value. This knowledge is obtained statically if the caller knows explicitly the
concrete home interface, or dynamically via the Interface Repository for instance.
If the home has no primary key, the caller could invoke the
Components::KeylessCCM Home::create_component operation to create a
component. If the home has a primary key, the caller should create a primary key
value according to the home’s primary key type, and should invoke the create
operation of the equivalent implicit interface of the called home. A dynamic caller
could invoke this latter operation via the DII.
Adding a generic create_component operation for keyed homes could only
resolve a part of the problem for dynamic clients: They always need to obtain
dynamically the primary key type in order to create a primary key value. As these
two knowledge could already be obtained simultaneously by introspecting the
associate CORBA::ComponentIR::HomeDef object, this issue should be closed
with no change.


Issue 3649: p.615-85 ToonTownImpl (components-ftf)

Click
here for this issue's archive.
Source: Laboratoire d`Informatique Fondamentale de Lille (Mr. Raphael G. Marvie, marvie@lifl.fr)
Nature: Uncategorized Issue
Severity:
Summary:
5. Even if it is _only_ an example, p.615-85 ToonTownImpl implements
   ExecutorSegmentBase, shouldn't it be HomeExecutorBase?

Resolution: see below
Revised Text: In ptc/99-10-04 page 615-85, replace ExecutorSegmentBase by HomeExecutorBase. In ptc/99-10-04 page 615-83, add the following in the example 1 user-specified IDL: home ToonTown manages Toon {};
Actions taken:
May 23, 2000: received issue
May 13, 2002: closed issue

Discussion:
In ptc/99-10-04 chapter 615 example 1, ToonTownImpl is the skeleton executor
implementation class for the home ToonTown. Then this class must implement
the HomeExecutorBase interface instead of the ExecutorSegmentBase interface.


Issue 3650: In example p.615-86 (components-ftf)

Click
here for this issue's archive.
Source: Laboratoire d`Informatique Fondamentale de Lille (Mr. Raphael G. Marvie, marvie@lifl.fr)
Nature: Uncategorized Issue
Severity:
Summary:
6. In example p.615-86, shouldn't myToonImpl extends ToonSessionImpl
   (presented in the previous pages) instead of ToonImpl (which is not
   defined)? The same classname is used in pages 96-98, but it seems
   correct in this case. 

Resolution: see below
Revised Text: In ptc/99-10-04 page 615-86, replace ToonImpl by ToonSessionImpl.
Actions taken:
May 23, 2000: received issue
May 13, 2002: closed issue

Discussion:
In ptc/99-10-04 chapter 615 example 1, myToonImpl is the user-provided
executor implementation class for the component executor ToonSessionImpl.
Then this class must inherit from the generated ToonSessionImpl class instead
of the non defined ToonImpl class.


Issue 3651: Where is HomeExecutorBase interface defined? (components-ftf)

Click
here for this issue's archive.
Source: Laboratoire d`Informatique Fondamentale de Lille (Mr. Raphael G. Marvie, marvie@lifl.fr)
Nature: Uncategorized Issue
Severity:
Summary:
7. Where is HomeExecutorBase interface defined? I only saw it used in 
   the packaging and deployment model. If it is a standard interface
   which is returned (how could it be non standard), shouldn't it be
   defined somewhere? (Same remark for ExecutorSegmentBase
   interfaces. It may be defined in the last Components.idl, but I did  
   not find one more recent than orbos/99-08-13.)

Resolution: See the resolution for issue 4574.
Revised Text:
Actions taken:
May 23, 2000: received issue
May 13, 2002: closed issue

Discussion:
The interface HomeExecutorBase is defined in the Language Mapping Chapter.
See the resolution for issue 4574.


Issue 3725: Issue On the use of typed home (or CCMHome subtypes) (components-ftf)

Click
here for this issue's archive.
Source: Laboratoire d`Informatique Fondamentale de Lille (Mr. Raphael G. Marvie, marvie@lifl.fr)
Nature: Uncategorized Issue
Severity:
Summary:
When a component type is implemented, it inherits a specialized
interface for callback functions, for example SessionComponent. In
this context, why should home implementations be unspecialized? Using
a specific home type, deployment could be improved when performed in a 
multi-actor context. As the cooperation between containers and homes
is unspecified, using multi-actors components seems unreachable. One
particular aspect is how the container <Context> interface si provided 
to the component instance. Using a well defined specialized home
interface would solve this problem easily. Thus, avoiding the use of 
wrappers for example which are another solution, but far more complex.
Such an interface should be defined for each component type category. 

As an example the following interface could be a basis for session
component homes. (there must be other operations to add here, but I
have not foudn them yet.)

interface SessionCCMHome : CCMHome { // or CCMHomeKeyless

    void set_session_context ( in SessionContext sc ) ;

};

Resolution: rejected
Revised Text:
Actions taken:
June 26, 2000: received issue
May 13, 2002: closed issue

Discussion:
A home has no use for a SessionContext reference. It is the container’s
responsibility to set the context value on component executor segments that
implement the SessionComponent interface. Adding a HomeContext interface
that provides useful information to a home (e.g. the home’s reference) is out of
the scope of this issue.


Issue 3726: Issue on Assemblies and descriptors (components-ftf)

Click
here for this issue's archive.
Source: Laboratoire d`Informatique Fondamentale de Lille (Mr. Raphael G. Marvie, marvie@lifl.fr)
Nature: Uncategorized Issue
Severity:
Summary:
Looking a the <Assembly> interface, a question arises. When providing
the assembly descriptor location, a logic description of the
application to deploy is provided. But, how are set the pysical hosts
to be used for the deployemnt of the logic configuration? No hooks is
provided to the deployment tool (as there are no interfaces for the
tool) in order to provide these information, and no operation is
available on the assembly interface to do so. Is there an extension of 
the <Assembly> interface in order to contain this information?
Otherwise, how could the application be deployed?

Thinking about what should be provided, it is necessary to assign a
logical name contained in the assembly descriptor to a physical host
name. Maybe an extension to the assembly descriptor filled at
deployment time is the solution? The second possible choice crossing
my mind is an IDL structure (in fact sequence of structure) that could 
be provided to the assembly object.

Resolution: rejected
Revised Text:
Actions taken:
June 26, 2000: received issue
May 13, 2002: closed issue

Discussion:
In the Component Assembly Descriptor XML DTD, the destination element
should be used to fix the physical placement of homeplacement, executable
placement, hostcollocation, or processcollocation elements (see
section 69.7.2.18 page 69-309). To deploy a component assembly, a deployment
tool must provide to an Assembly object a copy of the logical assembly
descriptor where all destination elements are set with the expected physical
placement (see the note in ptc/99-10-04 section 69.7.2.1 page 69-303).


Issue 3746: Pbl: Improper mapping rule from IDL3 to IDL2 when dealing with events. (components-ftf)

Click
here for this issue's archive.
Source: Laboratoire d`Informatique Fondamentale de Lille (Mr. Raphael G. Marvie, marvie@lifl.fr)
Nature: Uncategorized Issue
Severity:
Summary:
Dealing with the following IDL3 definition, a problem arises when
generating the IDL2 definitions (complete IDL2 mapping is enclosed at
the end of this mail).

    module example {
      valuetype AnEvent : Components::EventBase {
        public string value;
      };

      component Producer {
        publishes AnEvent output;
      };
    
      component Consumer {
        consumes AnEvent input;
      };
    };

According to the chapter 5 of the CCM specification, the publishes
definition of the Producer component is mapped to the following
definition (excerpt).

    interface Producer : Components::CCMObject {

      Components::Cookie 
      subscribe_output(in ::example::ProducerEventConsumers::AnEventConsumer consumer)
        raises (Components::ExceededConnectionLimit);

    };	

In the mean time, the consumes definition of the Consumer component is 
mapped to the following definition.

    interface Consumer : Components::CCMObject {

      ::example::ConsumerEventConsumers::AnEventConsumer 
      get_consumer_input();

    };

We can see that two versions of the "AnEventConsumer" interface have
been defined in two distincts modules. Thus the following Java
lines are not correct:


    example.Producer p = ...;
    example.Consumer c = ...;

    p.subscribe_output(c.get_consumer_input());

The Java compiler will refuse to compile the last one, producing an
error like "BadTypeCoerce". However, in the IDL3 definitions, both
components have been defined in order to be used together. (sic!)

Thus, we think that the mapping for a Consumer should not be based on
the component definitions, but on the event definition itself. It
would then avoid multiple (incompatible) definitions of the consumers.
This mapping could be defined in two distinct ways.

Resolution: see below
Revised Text: In ptc/99-10-03 page 3-2, add the entry "Event Declaration" in the table of "Section Title" before the entry "Component Declaration". In ptc/99-10-03 section 3.2.4 page 3-8, add 'eventtype' in the table 3-6 "Keywords" between keywords 'enum' and 'factory'. In ptc/99-10-03 section 3.4 page 3-12, insert the new production < event > in the OMG IDL grammar rule (2) (2) < definition > ::= < type_dcl > ";" | < const_dcl > ";" | < except_dcl > ";" | < interface > ";" | < module > ";" | < value > ";" | < type_id_dcl > ";" | < type_prefix_dcl > ";" | | < event > ";" | < component > ";" | < home_dcl > ";" In ptc/99-10-03 section 3.4 page 3-18, add (134) < event > ::= ( < event_dcl > | < event_abs_dcl > | < event_forward_dcl >) (135) < event_forward_dcl > ::= [ "abstract" ] "eventtype" < identifier > (136) < event_abs_dcl > ::= "abstract" "eventtype" < identifier > [ < value_inheritance_spec > ] "{" < export >* "}" (137) < event_dcl > ::= < event_header > "{" < value_element >* "}" (138) < event_header > ::= [ "custom" ] "eventtype" < identifier > [ < value_inheritance_spec > ] In ptc/99-10-03 section 3.5 page 3-19, insert the new production < event > in the OMG IDL grammar rule (2) (2) < definition > ::= < type_dcl > ";" | < const_dcl > ";" | < except_dcl > ";" | < interface > ";" | < module > ";" | < value > ";" | < type_id_dcl > ";" | < type_prefix_dcl > ";" | | < event > ";" | < component > ";" | < home_dcl > ";" In ptc/99-10-03 section 3.5 page 3-19, add the text See Section 3.16, "Event Declaration," on page 3-52, for specification of < event >. In ptc/99-10-03 section 3.5 page 3-19, change the number of sections 3.16 to 3.17 and 3.17 to 3.18 In ptc/99-10-03 section 3.6 page 3-20, add 'eventypes' in bullet 7: . For the purposes of this specification, name scopes that can be imported (i.e., specified in an import statement) include the following: modules, interfaces, valuetypes, and eventypes. In ptc/99-10-03 section 3.15.1 page 3-51, add the bullet "event type" before the bullet "value type". In ptc/99-10-03 section 3.15.2 page 3-51, add a new bullet 4 by replacing . value type (including abstract, custom, and box value types) . specification scope ( :: ) by . value type (including abstract, custom, and box value types) . event type (including abstract and custom event types) . specification scope ( :: ) In ptc/99-10-03 page 3-52 before the section "Component Declaration", add the following new section: 3.16 Event Declaration Event type is a specialization of value type dedicated to asynchronous component communication. There are several kinds of event type declarations: "regular" event types, abstract event types, and forward declarations. An event declaration satisfies the following syntax: (134) < event > ::= ( < event_dcl > | < event_abs_dcl > | < event_forward_dcl >) 3.16.1 Regular Event Type A regular event type satisfies the following syntax: (137) < event_dcl > ::= < event_header > "{" < value_element >* "}" (138) < event_header > ::= [ "custom" ] "eventtype" < identifier > [ < value_inheritance_spec > ] 3.16.1.1 Event Header The event header consists of two elements: . The event type's name and optional modifier specifying whether the event type uses custom marshaling. . An optional value inheritance specification described in Section 3.9.1.3, "Value Inheritance Specification," on page 3-28. 3.16.1.2 Event Element An event can contain all the elements that a value can as described in Section 3.9.1.2, "Value Element," on page 3-28 (i.e. attributes, operations, initializers, state members). 3.16.2 Abstract Event Type (136) < event_abs_dcl > ::= "abstract" "eventtype" < identifier > [ < value_inheritance_spec > ] "{" < export >* "}" Event types may also be abstract. They are called abstract because an abstract event type may not be instantiated. No < state_member > or < initializers > may be specified. However, local operations may be specified. Essentially they are a bundle of operation signatures with a purely local implementation. Note that a concrete event type with an empty state is not an abstract event type. 3.16.3 Event Forward Declaration (135) < event_forward_dcl > ::= [ "abstract" ] "eventtype" < identifier > A forward declaration declares the name of an event type without defining it. This permits the definition of types that refer to each other. The syntax consists simply of the keyword eventtype followed by an < identifier > that names the event type. Multiple forward declarations of the same event type name are legal. It is illegal to inherit from a forward-declared event type whose definition has not yet been seen. 3.16.4 Eventtype Inheritance As event type is a specialization of value type then event type inheritance is directly analogous to value inheritance (see Section 3.9.1.3, "Value Inheritance Specification," on page 3-28 for a detailed description of the analogous properties for valuetypes). In addition, an event type could inherit from a single immediate base concrete event type which must be the first element specified in the inheritance list of the event declaration's IDL. It may be followed by other abstract values or events from which it inherits. In ptc/99-10-03 section 3.16.4.1.3 page 3-56, replace . a <scoped_name> that denotes a previously-defined value type derived from Components::EventBase by . a <scoped_name> that denotes a previously-defined event type In ptc/99-10-03 section 3.16.4.2.4 page 3-56, replace . a <scoped_name> that denotes a previously-defined value type derived from Components::EventBase by . a <scoped_name> that denotes a previously-defined event type In ptc/99-10-03 section 3.16.5.1 page 3-57, replace . a <scoped_name> that denotes a previously-defined value type that is derived from the Components::EventBase abstract value type. by . a <scoped_name> that denotes a previously-defined event type. In ptc/99-10-03 section 3.19.2 page 3-63, add the bullet "eventtype" before the bullet "component". In ptc/99-10-03, change the number of sections 3.16 to 3.17, 3.17 to 3.18, 3.18 to 3.19, 3.19 to 3.20, 3.20 to 3.21, and 3.21 to 3.22 In ptc/99-10-03, replace chapter 10 "Interface Repository" by the content of the ccm/2001-08-01 document which contains the CORBA::ComponentIR::EventDef interface, the associated CORBA::ComponentIR::Container::create_event operation, the tk_event element added to the CORBA::TCKind enumeration, and the associated CORBA::ORB::create_event_tc operation. In ptc/99-10-04 section 61.6.1 page 61-45, replace Event types in the CORBA Component event model are value types derived from the abstract value type Components::EventBase, which is defined as follows: module Components { abstract valuetype EventBase { }; }; Applications derive specific concrete event types from this base type. by IDL contains event type declarations, which are a restricted form of value type declarations. They are for the use in the CORBA Component event model. In ptc/99-10-04 section 61.6.1 page 61-45, add 61.6.1.1 Equivalent IDL For the declaration of event types of the following form: module < module_name > { valuetype A { < A_state_members > }; eventtype B : A { < B_state_members > }; eventtype C : B { < C_state_members > }; }; The following equivalent IDL is implied: module < module_name > { valuetype A { < A_state_members > }; valuetype B : A, ::Components::EventBase { < B_state_members > }; interface BConsumer : ::Components::EventConsumerBase { void push_B ( in B the_b ); }; valuetype C : B { < C_state_members > }; interface CConsumer : BConsumer { void push_C ( in C the_c ); }; }; As shown above the first event type in the inheritance chain introduces the inheritance from Components::EventBase into the inheritance chain for the equivalent value types. The same rule applies for the equivalent consumer interfaces and Components::EventConsumerBase. Consumer interfaces are in the same inheritance relation as the event types, where they origin. 61.6.1.2 EventBase The module Components contains the following abstract value type definition: module Components { abstract valuetype EventBase { }; }; It serves as base type for value types derived via the Equivalent IDL mapping for event types. In ptc/99-10-04 section 61.6.6.1 page 61-48, replace module < module_name > { module < component_name >EventConsumers { interface < event_type >Consumer; }; interface < component_name >: Components::CCMObject { Components::Cookie subscribe_< source_name >( in < component_name >EventConsumers::< event_type >Consumer consumer) raises (Components::ExceededConnectionLimit); < component_name >EventConsumers:: < event_type >Consumer unsubscribe_< source_name >(in Components::Cookie ck) raises (Components::InvalidConnection); }; module < component_name >EventConsumers { interface < event_type >Consumer : Components::EventConsumerBase { void push (in < event_type >evt); }; }; }; by module < module_name > { interface < component_name > : Components::CCMObject { Components::Cookie subscribe_< source_name >( in < event_type >Consumer consumer) raises (Components::ExceededConnectionLimit); < event_type >Consumer unsubscribe_< source_name >( in Components::Cookie ck) raises (Components::InvalidConnection); }; }; In ptc/99-10-04 section 61.6.7.1 page 61-49, replace module < module_name > { module < component_name >EventConsumers { interface < event_type >Consumer; }; interface < component_name > : Components::CCMObject { void connect_< source_name >( in < component_name >EventConsumers::< event_type >Consumer consumer ) raises (Components::AlreadyConnected); < component_name >EventConsumers::< event_type >Consumer disconnect_< source_name >() raises (Components::NoConnection); }; module < component_name >EventConsumers { interface < event_type >Consumer : Components::EventConsumerBase { void push (in < event_type >evt); }; }; }; by module < module_name > { interface < component_name > : Components::CCMObject { void connect_< source_name >( in < event_type >Consumer consumer ) raises (Components::AlreadyConnected); < event_type >Consumer disconnect_< source_name >() raises (Components::NoConnection); }; }; In ptc/99-10-04 page 61-50, remove the section 61.6.8, i.e. "Module scope of generated event consumer interfaces", as this is not appropriate anymore. In ptc/99-10-04 section 61.6.9.1 page 61-51, replace module < module_name > { module < component_name >EventConsumers { interface < event_type >Consumer; }; interface < component_name >: Components::CCMObject { < component_name >EventConsumers:: < event_type >Consumer get_consumer_< sink_name >(); }; module < component_name >EventConsumers { interface < event_type >Consumer : Components::EventConsumerBase { void push (in < event_type >evt); }; }; }; by module < module_name > { interface < component_name > : Components::CCMObject { < event_type >Consumer get_consumer_< sink_name >(); }; };
Actions taken:
July 18, 2000: received issue
May 13, 2002: closed issue

Discussion:
Add the new eventtype keyword in OMG IDL to define event types.
. Add the CORBA::ComponentIR::EventDef interface to reflect eventtype
definitions into the Interface Repository.
. Add the new EventDef metatype in the OMG IDL metamodel. This metatype
only inherits from the ValueDef metatype.
. Define component client view mapping rules to translate IDL3 eventtype
definitions to IDL2 valuetype definitions.
. Change component client view mapping rules for event port definitions to
IDL2 event consumer interfaces. The new mapping rules are event type
oriented instead of event port oriented.


Issue 3785: operation get_implementation() referenced but not declared (components-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
In chapter 69.9.1.2 Deployment Scenario on page 329 of ptc/99-10-04.pdf the
operation get_implementation() is refered as if it belongs to the
ComponentInstallation interface (called only "Installation"), but the
specification of that interface lacks it.

Resolution: Duplicate, close
Revised Text:
Actions taken:
August 17, 2000: received issue
May 13, 2002: closed issue

Issue 3786: What about valuetype factories? (components-ftf)

Click
here for this issue's archive.
Source: Laboratoire d`Informatique Fondamentale de Lille (Mr. Raphael G. Marvie, marvie@lifl.fr)
Nature: Uncategorized Issue
Severity:
Summary:
What about <i>valuetype factories</i>?

<p>In the context of a component dealing with events, the aspect of 
<i>valuetype</i> factories has not been really mentionned in the spec, 
especially in the deploiement process. 
If I am right, dealing with <i>valuetypes</i> in a program means to 
instantiate and to register a factory for this <i>valuetype</i> to the 
ORB. In the context of the CCM, a component and its home is installed
into a generic container which may not know the <i>valuetype</i>. 
Thus, the <i>valuetype factory</i> may have to be installed at
deployment time. </p>
<p> According
to the similarity in the <i>home</i> and <i>valuetype factory</i>
concepts, it may be a good solution to add an entry in the CORBA
Component Descriptor OSD file to define the <i>valuetype factory</i>
(which would have to be included in the component package) required by
the component as well as to define a standard name scheme for their
entry points. Here is an draft example of what it could look
like. Relationships / dependencies between components and <i>valuetype 
factories</i> also have to be introduced.</p>  

<!--
<softpkg>
  ...
  <implementation id="...">
    ... all the environment stuff ...
    <descriptor type="Event Factory">
      <fileinarchive>...</fileinarchive>
    </descriptor>
    <code type="DLL">
      <fileinarchive name="bank.dll" />
      <entrypoint>createEventFactory</entrypoint>
    </code>
  </implementation>
  ...
</softpkg>
-->

<p><tt>&lt;softpkg>
<br>&nbsp; ...
<br>&nbsp; &lt;implementation id="...">
<br>&nbsp;&nbsp;&nbsp; ... all the environment stuff ...
<br>&nbsp;&nbsp;&nbsp; &lt;descriptor type="Event Factory">
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fileinarchive>...&lt;/fileinarchive>
<br>&nbsp;&nbsp;&nbsp; &lt;/descriptor>
<br>&nbsp;&nbsp;&nbsp; &lt;code type="DLL">
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;fileinarchive name="bank.dll" />
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;entrypoint>createEventFactory&lt;/entrypoint>
<br>&nbsp;&nbsp;&nbsp; &lt;/code>
<br>&nbsp; &lt;/implementation>
<br>&nbsp; ...
<br>&lt;/softpkg></tt></p>

<p>The second solution could be to include the code for <i>valuetype
factory</i> creation in the <i>home</i> implementation, which mean
less specification: "The home has to install any valuetype factory
required by the component." would be enough. However, this second
approach may not be as much portable as the first one (as long as a 
<i>home</i> may be portable between containers, which IMHO should be
possible).</p> 

Resolution: see below
Revised Text: In ptc/99-10-04 section 69.3.2.7 page 69-263, replace The dependency element is used to specify environmental or other dependencies. The type of dependency is specified by the type attribute. The dependency element is a child element of both the softpkg element and implementation elements. When used as a child of softpkg, it specifies general dependencies applicable to all implementations. When used as a child of implementation, it specifies implementation specific dependencies. <!ELEMENT dependency ( softpkgref | codebase | fileinarchive | localfile | name )> <!ATTLIST dependency type CDATA #IMPLIED action (assert | install)"assert"> The type attribute specifies the type of the resource required. This may be set to, for example, “DLL”, “.so”, or “.class”. with The dependency element is used to specify environmental or other dependencies. The type of dependency is specified by the type attribute. The dependency element is a child element of both the softpkg element and implementation elements. When used as a child of softpkg, it specifies general dependencies applicable to all implementations. When used as a child of implementation, it specifies implementation specific dependencies. <!ELEMENT dependency ( softpkgref | codebase | fileinarchive | localfile | name | valuetypefactory )> <!ATTLIST dependency type CDATA #IMPLIED action (assert | install)"assert"> The type attribute specifies the type of the resource required. The types “DLL”, “Executable”, and “Java Class” shall be recognized as valid types. In ptc/99-10-04 section 69.3.2 page 69-272, insert 69.3.2.32 The valuetypefactory Element The valuetypefactory element contains information needed to register and utilize a valuetype factory. The valuetypefactory element is a child element of the dependency element. <!ELEMENT valuetypefactory ( codebase | fileinarchive | link )> <!ATTLIST valuetypefactory repid CDATA #REQUIRED valueentrypoint CDATA #IMPLIED factoryentrypoint CDATA #IMPLIED> The repid attribute specifies the repository id of the valuetype created by the valuetype factory. The factoryentrypoint attribute specifies an operation or function that can be used to create an instance of a valuetype factory associated to the repository id given by repid. The valueentrypoint attribute specifies an operation or function that can be used to create an instance of a valuetype using a factory instance created with factoryentrypoint. In ptc/99-10-04 section 69.3.2 page 69-272, replace 69.3.2.32 The webpage Element with 69.3.2.33 The webpage Element In ptc/99-10-04 section 695.1 page 695-336, replace <!ELEMENT dependency ( softpkgref | codebase | fileinarchive | localfile | name )> with <!ELEMENT dependency ( softpkgref | codebase | fileinarchive | localfile | name | valuetypefactory )> In ptc/99-10-04 section 695.1 page 695-339, insert <!ELEMENT valuetypefactory ( codebase | fileinarchive | link )> <!ATTLIST valuetypefactory repid CDATA #REQUIRED valueentrypoint CDATA #IMPLIED factoryentrypoint CDATA #IMPLIED> In ptc/99-10-04 section 69.8.2.1 page 69-323, replace The properties element is the root element of the properties document. It contains an optional description and any combination of simple, sequence, and struct elements. <!ELEMENT properties ( description? , ( simple | sequence | struct )* )> with The properties element is the root element of the properties document. It contains an optional description and any combination of simple, sequence, struct, and valuetype elements. <!ELEMENT properties ( description? , ( simple | sequence | struct | valuetype )* )> In ptc/99-10-04 section 69.8.1 page 69-322, replace The properties document has 3 major elements: simple, sequence and struct. The simple element describes a single primitive idl type. The sequence element corresponds to an IDL sequence, and the struct element corresponds to an IDL struct. with The properties document has 4 major elements: simple, sequence, struct, and valuetype. The simple element describes a single primitive idl type. The sequence element corresponds to an IDL sequence, the struct element corresponds to an IDL struct, and the valuetype element corresponds to an IDL valuetype. In ptc/99-10-04 section 69.8.2.8 page 69-325, replace The sequence element is used to represent a sequence of similar types. It may be a sequence of simple types, a sequence of structs, or a sequence of sequences. The order of the sequence elements in the property file is preserved in the constructed sequence. An optional description may be used to describe the sequence property. <!ELEMENT sequence ( description? , ( simple* | struct* | sequence* ) )> with The sequence element is used to represent a sequence of similar types. It may be a sequence of simple types, a sequence of structs, a sequence of valuetypes, or a sequence of sequences. The order of the sequence elements in the property file is preserved in the constructed sequence. An optional description may be used to describe the sequence property. <!ELEMENT sequence ( description? , ( simple* | struct* | sequence* | valuetype* ) )> In ptc/99-10-04 section 69.8.2.9 page 69-325, replace The struct element corresponds to an IDL structure. It may be composed of simple properties, sequences, or other structs. <!ELEMENT struct ( description? , ( simple | sequence | struct )* )> with The struct element corresponds to an IDL structure. It may be composed of simple properties, sequences, structs, or other valuetypes. <!ELEMENT struct ( description? , ( simple | sequence | struct | valuetype )* )> In ptc/99-10-04 section 69.8.2 page 69-326, insert 69.8.2.11 The valuetype Element The valuetype element is used to specify an IDL valuetype. It may be composed of simple properties, sequences, structs, or other valuetypes. <!ELEMENT valuetype ( description? , ( simple | sequence | struct | valuetype )* )> <!ATTLIST valuetype name CDATA #IMPLIED type CDATA #REQUIRED primarykey (true | false) “false” > name The name attribute specifies the name of the valuetype attribute as it appears in IDL. The name attribute is required, except when the valuetype property is used in a sequence. type The type attribute specifies the repository id of the corresponding IDL valuetype. primarykey The primarykey attribute indicates whether or not the valuetype property provides the state information for an entity component primary key with a repository id given by the type attribute. In ptc/99-10-04 section 695.3 page 695-345, replace <!ELEMENT properties ( description? , ( simple | sequence | struct )* )> with <!ELEMENT properties ( description? , ( simple | sequence | struct | valuetype )* )> In ptc/99-10-04 section 695.3 page 695-346, replace <!ELEMENT sequence ( description? , ( simple* | struct* | sequence* ) )> with <!ELEMENT sequence ( description? , ( simple* | struct* | sequence* | valuetype* ) )> In ptc/99-10-04 section 695.3 page 695-346, replace <!ELEMENT struct ( description? , ( simple | sequence | struct )* )> with <!ELEMENT struct ( description? , ( simple | sequence | struct | valuetype )* )> In ptc/99-10-04 section 695.1 page 695-346, insert <!ELEMENT valuetype ( description? , ( simple | sequence | struct | valuetype )* )> <!ATTLIST valuetype name CDATA #IMPLIED type CDATA #REQUIRED primarykey (true | false) “false” >
Actions taken:
August 24, 2000: received issue
May 13, 2002: closed issue

Discussion:
There are two problems involving valuetype factories. The first is in connection
with events as identified by the author in that there is no straightforward way to
register valuetype factories for events in a generic container. The second
problem is similar to the first in that there is no straightforward way to register
primary key valuetype factories for entity component homes nor is there a
mechanism to specify the state for a primary key that is required to create an
entity component. The solution to the first problem (and part of the solution for
the second problem) is to add a valuetypefactory ELEMENT in the software
package DTD and modify the description of the dependency ELEMENT in the
description of the software package descriptor to explicitly include handling of
valuetype factories. The solution to the second problem requires the addition of a
valuetype ELEMENT in the properties DTD so that the state for the primary key
of an entity component can be specified and identified.


Issue 3925: range description in CPF files. (components-ftf)

Click
here for this issue's archive.
Source: Open Networks Engineering (Mr. Jean-Christophe Dubois, jcd@one.com)
Nature: Uncategorized Issue
Severity:
Summary:
The definition for "choices"  is as follow in the properties.dtd file:

<!ELEMENT choice ( #PCDATA ) >
<!ELEMENT choices ( choice+ )

knowing that the PCDATA for choice is supposed to hold one possible value
for the "simple" if I am right

I believe this is missing a bit of descriptive power. In case you want to
specify a range of 100 values you will have to give the 100 different values
each in its own "choice" element. It is very verbose !!!

We could add a range ELEMENT to the DTD as follow:

<!ELEMENT range (value, value)>

We could then change the choices ELEMENT as follow:

<!ELEMENT choices ( range | choice )+>

Any thought.

Resolution: see below
Revised Text: In ptc/99-10-04 section 69.8.2.3 page 69-323, replace <!ELEMENT choices ( choice+ ) > The choices element is a list of one or more choice elements. with <!ELEMENT choices ( choice | range )+ > The choices element is a list of one or more choice or range elements. In ptc/99-10-04 section 69.8.2.3 page 69-324, insert 69.8.2.7 The range Element <!ELEMENT range (value, value) > The range element is a set of two value elements that define a specific range of valid simple property values. The order of the range limits (i.e. (min, max) or (max, min)) is not implied. In ptc/99-10-04 section 69.8.2.3 page 69-324, replace 69.8.2.7 The simple Element with 69.8.2.8 The simple Element In ptc/99-10-04 section 69.8.2.3 page 69-325, replace 69.8.2.8 The sequence Element with 69.8.2.9 The sequence Element In ptc/99-10-04 section 69.8.2.3 page 69-325, replace 69.8.2.9 The struct Element with 69.8.2.10 The struct Element In ptc/99-10-04 section 69.8.2.3 page 69-326, replace 69.8.2.10 The value Element with 69.8.2.11 The value Element In ptc/99-10-04 section 695.3 page 695-345, replace <!ELEMENT choices ( choice+ ) > with <!ELEMENT choices ( choice | range )+ > In ptc/99-10-04 section 695.3 page 695-345 before ELEMENT simple, insert <!ELEMENT range (value, value) >
Actions taken:
October 2, 2000: received issue
May 13, 2002: closed issue

Discussion:
The choices ELEMENT in the properties DTD is restrictive and may result in
verbose properties descriptors and ultimately affect efficiency and performance.
Therefore, a range ELEMENT should be added to the properties DTD to allow a
choice between a single simple property value or a range of simple property
values.


Issue 3926: simple ELEMENT definition (components-ftf)

Click
here for this issue's archive.
Source: Open Networks Engineering (Mr. Jean-Christophe Dubois, jcd@one.com)
Nature:
Severity:
Summary:
I have a question about the property.dtd file provided with the CCM spec.

in this file "simple" is described as follow:

<!ELEMENT simple
( description?
, value
, choices?
, defaultvalue?
) >

This seems to indicate that a "simple" element has to have a value in the
file. Therefore it is not clear how usefull is the optional "defaultvalue"
field. It also means that if the component or assembly provider wants to
provide the CPF files with the CCD and CAD files it has to put values into
them instead of just setting the default value. Obviously the best thing to
do would be to repeat the default value into the value but it seems strange
to me. The point is that if there is a default value provided the value
doesn't seem to be mandatory.

Also, in a way similar to the CAD file, whe