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 2973: implementing import for C++
Issue 3060: Components Issues - Chapter 61 ptc/99-10-04
Issue 3062: Components Issues - Chapter 69 ptc/99-10-04
Issue 3063: Components Issues - Interface Repository ptc/99-10-03
Issue 3064: CCM Issue: Basic Level doesn't mention homes
Issue 3065: CCM Issue: CIDL Syntax doesn't allow for modules
Issue 3066: CCM Issue: Is a home needed?
Issue 3099: Should Components::Enumeration be an IDL interface or an IDL abstract value
Issue 3182: CCM Issue: How are standard EJB exceptions mapped into the CCM View
Issue 3183: CCM Issue: Is CCMObject::remove intended to be available to the CCM client?
Issue 3187: Do EJB-mapped attributes go to the ComponentDefault interface?
Issue 3189: What's the return type of CCM mappings of EJB finder and creator methods?
Issue 3190: How is CCMHome::get_home_def mapped to EJB operations?
Issue 3191: Is the ccm_home method shown in Table 8-1 a typo?
Issue 3197: Use of undefined "id" attribute
Issue 3198: Purpose of "name" element
Issue 3199: atribute not part of definition
Issue 3207: CORBA IR METAMODEL
Issue 3208: PACKAGING AND DEPLOYMENT METAMODEL
Issue 3212: 1. Should a session component have a way to save and restore its private st
Issue 3213: Implementation of get_component
Issue 3214: Registering homes outside of the container
Issue 3215: Federation of HomeFinders?
Issue 3216: New IDL keywords
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 3418: USING Components::Enumeration
Issue 3419: Bridge Interoperability of the Java mapping with the EJB-to-CCM mapping
Issue 3645: Use of the type ComponentHome
Issue 3646: Document OMG ptc/99-10-04 p.615-87
Issue 3647: operation <string get_implementation(in string iuuid)>
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 3652: CCM specification terms
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 3873: Implementation of extended CCM features
Issue 3925: range description in CPF files.
Issue 3926: simple ELEMENT definition
Issue 3927: Attribute exception 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 3940: INS name ? where do we get them from ?
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 4575: Issue for components: No meta model for CIDL ?
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, ...
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 2973: implementing import for C++ (components-ftf)

Click
here for this issue's archive.
Source: Progress Software (Mr. Steve Vinoski, steve.vinoski(at)iona.com)
Nature: Uncategorized Issue
Severity:
Summary:
I'm concerned that for C++, implementing "import" as currently specified in
the Components spec will be extremely difficult.

Imagine how you might implement this: your IDL compiler generates a C++
header file for all imported name scopes and creates #include directives
for these files in the C++ code generated for the main IDL file. The main
problem is that importable name scopes are modules, interfaces, valuetypes,
structures, unions, and exceptions. To import an exception, for example,
the import mechanism would have to keep a dependency graph for that
exception type and make sure that all dependencies are generated into the
header file so the C++ compilation won't fail. This seems way too complex,
and I don't see the value of being able to import individual structs and such.

Resolution: Remove structure, union and exception from the list of name scopes (and repository ids) that can be
Revised Text: Replace the seventh bullet on page 3-20 of ptc/99-10-03 by: • For the purposes of this specification, the name scopes that can be imported (i.e., specified in an import statement) are modules, interfaces and valuetypes.
Actions taken:
October 29, 1999: received issue
May 18, 2001: close issue

Discussion:
In Java the import feature is nothing more than a convenience (it allows types from other packages to be referred to using simple names, rather than fully scoped names); it is very similar to 'using namespace' in C++. The CCM import is indeed the same kind of beast: a convenience to avoid the use of fully scoped names when referencing types from other modules. 

A potential issue with the import specification in the Components specification is that it suggests that a CORBA3-compliant ORB should provide an interface-repository based IDL compiler, e.g.: (from ptc/99-10-03 p 3-19)) 

The definition of import obviates the need to define the meaning of IDL constructs in terms of "file scopes". 
[...] 
A specification that imports name scopes must be interpreted in the context of a well-defined set of IDL specifications whose union constitutes the space from within which name scopes are  imported. By "a well-defined set of IDL specifications", we mean  any identifiable representation of IDL specifications, such as an interface repository. The specific representation from which name scopes are imported is not specified, nor is the means by which importing is  implemented, nor is the means by which a particular set of IDL specifications (such as an interface repository) is associated with the context in which the importing specification is to be interpreted. 

Generating usable C++ code with such an IR-based IDL compiler would be a real challenge. But since CCM import does not specify that a compliant ORB implementation needs to provide such a tool, this is not an issue. 

A minor error in the CCM import spec is that import can refer to constructs that do not create scopes (struct, union and exception). This resolution fixes this bug. 

Now, regarding language mappings, the CCM-IDL import does not need to be mapped to anything (remember, it's just a convenience). 
For example if we have: 

module A 
{ 
   interface X {}; 
}; 

import A; 

interface B 
{ 
    void op(in X p); 
}; 

The C++ mapping for operation op could be 

virtual void op(A::X_ptr p); 

Another possibility in C++ is to map import <module_name> to using namespace <module_name>. And in Java, import <module_name> can be mapped to import <module_name>.*. Each language-mapping RTF will have to decide. 



Issue 3060: Components Issues - Chapter 61 ptc/99-10-04 (components-ftf)

Click
here for this issue's archive.
Source: Oracle (Mr. Edward Cobb, eecobb(at)comcast.net)
Nature: Uncategorized Issue
Severity:
Summary:
	The following errors in the component model chapter 61 need to be fixed as
follows to align the IDL in the text with the final IDL published in
Appendix A (orbos/99-08-08).
	1. In IDL on page 46, section 61.6.3 add a “;” after 		expected_event_type.
	2. In IDL on page 43, section 61.5.3 replace 
		ConnectionList get_connections (in FeatureName name) 
				raises (InvalidName);
		with
		ConnectedDescriptions get_connections (in FeatureName name) 
				raises (InvalidName);
	3. In IDL on page 68, section 61.10.1.2 replace				
		valuetype ConfigValue {
			FeatureName name;
			any value;
		};
with
		valuetype ConfigValue {
			public FeatureName name;
			public any value;
		};

Resolution: resolved
Revised Text: 1. In IDL on page 46, section 61.6.3 add a “;” after expected_event_type. 2. In IDL on page 43, section 61.5.3 replace ConnectionList get_connections (in FeatureName name) raises (InvalidName); with ConnectedDescriptions get_connections (in FeatureName name) raises (InvalidName); 3. In IDL on page 68, section 61.10.1.2 replace valuetype ConfigValue { FeatureName name; any value; }; with valuetype ConfigValue { public FeatureName name; public any value; };
Actions taken:
November 22, 1999: received issue
May 18, 2001: closed issue

Issue 3062: Components Issues - Chapter 69 ptc/99-10-04 (components-ftf)

Click
here for this issue's archive.
Source: Oracle (Mr. Edward Cobb, eecobb(at)comcast.net)
Nature: Uncategorized Issue
Severity:
Summary:
	The following errors in the deployment chapter 69 need to be fixed as
follows to align the IDL in the text with the final IDL published in
Appendix A (orbos/99-08-08).

	1. In IDL on page 330, section 69.9.2 replace two occurences of
		raises InvalidLocation;
		with
		raises (InvalidLocation);
		and one occurence of
		raises UnknownImplId;
		with
		raises (UnknownImplId);
	2. In IDL on page 331, section 69.9.3 replace one occurence of
		raises InvalidLocation;
		with
		raises (InvalidLocation);
		and two occurences of 
		raises InvalidAssembly;
		with
		raises (InvalidAssembly);
	3. In section 69.9.1.2 on pages 328 and 329, items 2 and 9 change
Installation to ComponentInstallation

Resolution: Change text as indicated below
Revised Text: 1. In IDL on page 330, section 69.9.2 replace two occurences of raises InvalidLocation; with raises (InvalidLocation); and one occurence of raises UnknownImplId; with raises (UnknownImplId); 2. In IDL on page 331, section 69.9.3 replace one occurence of raises InvalidLocation; with raises (InvalidLocation); and two occurences of raises InvalidAssembly; with raises (InvalidAssembly); 3. In section 69.9.1.2 on pages 328 and 329, items 2 and 9 change Installation to ComponentInstallation
Actions taken:
November 22, 1999: received issue
May 18, 2001: closed issue
April 26, 2010: closed issue

Discussion:


Issue 3063: Components Issues - Interface Repository ptc/99-10-03 (components-ftf)

Click
here for this issue's archive.
Source: Oracle (Mr. Edward Cobb, eecobb(at)comcast.net)
Nature: Uncategorized Issue
Severity:
Summary:
The following errors in the interface repository chapter 10 need to be fixed.

	1. In IDL for interface HomeDef on Page 52 and Page 88: 
	   Remove the line: readonly attribute boolean is_basic; 
	2. In IDL for struct HomeDescription on Page 52 and Page 88: 
    	   Remove the line:  boolean is_basic; 
	3. In section 10.5.38.1 on page 53: Remove the paragraph that begins with: 
          "The is_basic attribute is TRUE if this is a basic home......."

Resolution: Since there is no basic and extended distinction for homes as there is for components, change text a
Revised Text: 1. In IDL for interface HomeDef on Page 52 and Page 88: Remove the line: readonly attribute boolean is_basic; 2. In IDL for struct HomeDescription on Page 52 and Page 88: Remove the line: boolean is_basic; 3. In section 10.5.38.1 on page 53: Remove the paragraph that begins with: "The is_basic attribute is TRUE if this is a basic home......."
Actions taken:
November 22, 1999: received issue
May 18, 2001: closed issue

Issue 3064: CCM Issue: Basic Level doesn't mention homes (components-ftf)

Click
here for this issue's archive.
Source: Oracle (Dr. Dan Frantz, )
Nature: Uncategorized Issue
Severity:
Summary:
 There is nothing in the FTF documents about leveling with
respect to homes. Basic CCM does not allow components to inherit from
other components. Why is there no similar restriction for homes?

Resolution: There is no basic and extended distinction for homes as there is for components.
Revised Text:
Actions taken:
December 2, 1999: received issue
April 26, 2010: closed issue

Discussion:


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 3066: CCM Issue: Is a home needed? (components-ftf)

Click
here for this issue's archive.
Source: Oracle (Dr. Dan Frantz, )
Nature: Uncategorized Issue
Severity:
Summary:
Summary: The CCM FTF IDL chapter does not state whether a home must be
declared for a component. A home must have a component, but must a
component have a home?

Resolution: A component must have a home
Revised Text: In section 61.1.5, pg 61-29 para 1 add the following text, "A home must be declared for every component declaration."
Actions taken:
December 2, 1999: received issue
May 18, 2001: closed issue

Issue 3099: Should Components::Enumeration be an IDL interface or an IDL abstract value (components-ftf)

Click
here for this issue's archive.
Source: International Business Machines (Mr. Ignacio Silva-Lepe, isilval(at)us.ibm.com)
Nature: Uncategorized Issue
Severity:
Summary:
Summary: Section 8.2.1.2 of the spec defines Components::Enumeration as an
IDL interface, with the implication
that it is intended as a remote type.

Issue: It has been noted that java.util.Enumeration is usually implemented
as a java.io.Serializable and that making
Components::Enumeration an IDL interface would prevent this from happening
for collections of primary keys returned
from EJB Homes that are mapped to CCM Homes.

Proposal: Define Components::Enumeration as an IDL abstract valuetype.

Resolution: Define Components::Enumeration as an IDL abstract valuetype
Revised Text: 1. In section 64.3.1.2, page 64-179, last bullet, replace "Finder EJB operations that return a Java Enumeration are mapped into CORBA component operations which return an IDL Object Reference to an interface of type Enumeration. This interface is declared as:" with "Finder EJB operations that return a Java Enumeration are mapped into CORBA component operations which return a value of type Enumeration. This value type is declared as:" 2. In section 64.3.1.2, page 64-179, replace module Components { interface Enumeration { boolean has_more_elements(); CCMObject next_element(); }; }; with module Components { abstract valuetype Enumeration { boolean has_more_elements(); CCMObject next_element(); }; }; 3. In section 64.3.1.2, page 64-179, add At least one concrete implementation of this abstract value type must be provided. Concrete implementations derive from Enumeration by providing a state variable that aggregates objects of type CCMObject. For example, the following value type MyEnumeration would be an implementation of Enumeration: valuetype MyEnumeration : Components::Enumeration { state { private sequence< Components::CCMObject > objects; }; };
Actions taken:
December 8, 1999: received sisue
May 18, 2001: closed issue

Discussion:
It has been noted that java.util.Enumeration is usually implemented as a java.io.Serializable and that making Components::Enumeration an IDL interface would prevent this from happening for collections of primary keys returned from EJB Homes that are mapped to CCM Homes.


Issue 3182: CCM Issue: How are standard EJB exceptions mapped into the CCM View (components-ftf)

Click
here for this issue's archive.
Source: International Business Machines (Mr. Ignacio Silva-Lepe, isilval(at)us.ibm.com)
Nature: Uncategorized Issue
Severity:
Summary:
Chapter 8 of the spec specifies mappings between EJB operations and their
equivalents in the CCM view, but it leaves the mappings of standard EJB
exceptions unclear.


Issue:
Create methods on an EJB home interface all throw the standard
javax.ejb.CreateException; finder methods on the EJB home interface all
throw the javax.ejb.FinderException; and remove methods on both home and
remote interfaces all throw the javax.ejb.RemoveException.  In a few cases
chapter 8 gives an implied mapping: for example, the FinderException on the
findByPrimaryKey method seems to map to either the
Components.UnknownKeyValue exception or to the Components.InvalidKey
exception on the equivalent find_by_primary_key CCM method.  Even in these
cases the names are sometimes inappropriate.  In the majority of cases,
however, there is simply no CCM equivalent to the EJB exception, and bridge
implementors are left to wonder whether they should attempt a non-standard
mapping.


Proposal:
     (a) Add the new CCM standard exceptions Components.CreationFailure,
Components.NotFound, and Components.RemovalFailure
     (b) Add Components.CreationFailure to the raises clause of all create
methods on implicit and explicit home interfaces
     (c) Add Components.NotFound to the raises clause of
find_by_primary_key on implicit home interfaces, and to the raises clause
of all finder methods on explicit home interfaces
     (d) Add Components.RemovalFailure to the raises clause on the remove
operation on implicit home interfaces, to the CCMObject.remove operation,
and to the CCMHome.remove_component operation
     (e) Specify in chapter 8 that the EJB Finder exception is always
mapped to Components.CreationFailure; that the EJB CreateException is
always mapped to Components.CreationFailure; and that the EJB
RemoveException is always mapped to Components.RemovalFailure.
     (f) Make explicit in chapter 8 the already implied mapping bewteen the
EJB DuplicateKeyException and the Components.DuplicateKeyValue exception

Resolution:
Revised Text: Resolution: (a) Add the new CCM standard exceptions Components::CreateFailure, Components::FinderFailure, and Components::RemoveFailure (b) Add Components::CreateFailure to the raises clause of all create methods on implicit and explicit home interfaces (c) Add Components::FinderFailure to the raises clause of find_by_primary_key on implicit home interfaces, and to the raises clause of all finder methods on explicit home interfaces (d) Add Components::RemoveFailure to the raises clause on the remove operation on implicit home interfaces, to the CCMObject::remove operation, and to the CCMHome::remove_component operation (e) Specify in chapter 8 that the EJB FinderException is always mapped to Components::FinderFailure, that the EJB CreateException is always mapped to Components::CreateFailure, and that the EJB RemoveException is always mapped to Components::RemoveFailure. (f) Make explicit in chapter 64 the already implied mapping bewteen the EJB DuplicateKeyException and the Components::DuplicateKeyValue exception. Revised Text: 1. In section 61.1.7.1, page 54 replace interface <home_name>Implicit : Components::KeylessCCMHome { <component_type>create(); }; with interface <home_name>Implicit : Components::KeylessCCMHome { <component_type>create() raises (CreateFailure); }; On page 55 add to the description of the create operation. The CreateFailure is raised if any application errors are encountered in home creation. 2. In section 61.7.1.2, page 55 replace raises (Components::DuplicateKeyValue, Components::InvalidKey); with raises (Components::CreateFailure, Components::DuplicateKeyValue, Components::InvalidKey); 3. In section 61.7.1.2, page 55 replace raises (Components::UnknownKeyValue, Components::InvalidKey); on find_by_primary_key with raises (Components::FinderFailure, Components::DuplicateKeyValue, Components::InvalidKey); 4. In section 61.7.1.2, page 55 replace raises (Components::DuplicateKeyValue, Components::InvalidKey); on remove with raises (Components::RemoveFailure, Components::DuplicateKeyValue, Components::InvalidKey); On page 55 add to the description of the create operation. All other error conditions may raise the CreateFailure. On page 56 add to the description of the find_by_primary_key operation. All other error conditions may raise the FinderFailure. On page 55 add to the description of the remove operation. All other error conditions may raise the RemoveFailure. 5. In section 61.7.3.1, page 57 replace <component_type> <factory_operation_name>( <parameters>) raises ( <exceptions>); with <component_type> <factory_operation_name>( <parameters>) raises ( Components::CreateFailure, <exceptions>); and add the following text following the description. Factory operations are required to raise CreateFailure and may raise other exceptions. 6. In section 61.7.3.2, page 58 replace <<component_type> <finder_operation_name>( <parameters>) raises ( <exceptions>); with <component_type> <finder_operation_name>( <parameters>) raises ( Components::FinderFailure, <exceptions>); and add the following text following the description. Finder operations are required to raise FinderFailure and may raise other exceptions. 7. In section 61.7.6, page 61 replace void remove_component ( in CCMObject comp); with void remove_component ( in CCMObject comp) raises (RemoveFailure); and add the following text following the description of the remove_component operation:. All other application errors raise the RemoveFailure exception. 8. In section 61.7.7, page 62 replace: CCMObject create_component(); with CCMObject create_component() raises (CreateFailure); and add the following text following the description. All other failures raise the CreateFailure exception. 9. In section 61.11.1 page 72 replace void remove(); with void remove() raises (RemoveFailure); on page 73 add the following to the description of remove: Application failures during remove may raise the RemoveFailure. 10. In table 64-1, page 180, replace raises (DuplicateKeyValue, InvalidKey) with raises (CreateFailure, DuplicateKeyValue, InvalidKey) in the specification of createXXX and create in the rows indicated by < home-name >Explicit and < home-name >Implicit and the column indicated by Operation called by client In table 64-2, page 187, replace raises (DuplicateKeyValue, InvalidKey) with raises (CreateFailure, DuplicateKeyValue, InvalidKey) in the specification of createXXX and create in the rows indicated by < home-name >Explicit and < home-name >Implicit and the column indicated by Operation called by bridge In section 64.4.1, page 185, last bullet, replace < component-type > create (in < key_type > key ) raises (Components::DuplicateKeyValue, Components::InvalidKey) with < component-type > create (in < key_type > key ) raises (Components::CreateFailure, Components::DuplicateKeyValue, Components::InvalidKey) 11. In table 64-1, page 180, replace raises (< exceptions >) with raises (FinderFailure, < exceptions >) in the specification of findXXX and find_by_primary_key in the rows indicated by < home-name >Explicit and < home-name >Implicit and the column indicated by Operation called by client In table 64-2, page 187, replace raises (< exceptions >) with raises (FinderFailure, < exceptions >) in the specification of findXXX and find_by_primary_key in the rows indicated by < home-name >Explicit and < home-name >Implicit and the column indicated by Operation called by bridge In section 64.4.1, page 186, first bullet, replace < component-type > find_by_primary_key (in < key_type > key ) raises (Components::UnknownKeyValue, Components::InvalidKey) with < component-type > find_by_primary_key (in < key_type > key ) raises (Components::FinderFailure, Components::UnknownKeyValue, Components::InvalidKey) 12. In table 64-1, page 180, replace raises (UnknownKeyValue, InvalidKey) with raises (RemoveFailure, UnknownKeyValue, InvalidKey) in the specification of remove in the row indicated by < home-name >Implicit and the column indicated by Operation called by client In table 64-1, page 180, replace raises (CCMException) with raises (RemoveFailure, CCMException) in the specification of remove_component in the row indicated by CCMHome and the column indicated by Operation called by client In table 64-1, page 181, add raises (RemoveFailure) to the specification of remove in the row indicated by CCMObject and the column indicated by Operation called by client In table 64-2, page 187, replace raises (UnknownKeyValue, InvalidKey) with raises (RemoveFailure, UnknownKeyValue, InvalidKey) in the specification of remove in the row indicated by < home-name >Implicit and the column indicated by Operation called by bridge In table 64-2, page 187, replace raises (CCMException) with raises (RemoveFailure, CCMException) in the specification of remove_component in the row indicated by CCMHome and the column indicated by Operation called by bridge In table 64-2, page 187, add raises (RemoveFailure) to the specification of remove in the row indicated by CCMObject and the column indicated by Operation called by bridge In section 64.4.1, page 186, second bullet, replace < component-type > remove (in < key_type > key ) raises (Components::UnknownKeyValue, Components::InvalidKey) with < component-type > remove (in < key_type > key ) raises (Components::RemoveFailure, Components::UnknownKeyValue, Components::InvalidKey) 13. In section 64.3.1.2, page 179, add the following subsection Mapping standard exceptions The EJB exceptions FinderException, CreateException, DuplicateKeyException and RemoveException thrown by methods to find, create and remove an EJB, are always mapped to the CCM exceptions Components::FinderFailure, Components::CreateFailure, Components::DuplicateKeyValue and Components::RemoveFailure, respectively. In section 64.4.1, page 186, add the following subsection Mapping standard exceptions The CCM exceptions Components::FinderFailure, Components::CreateFailure, Components::DuplicateKeyValue and Components::RemoveFailure raised by methods to find, create and remove a CORBA component, are always mapped to the EJB exceptions FinderException, CreateException, DuplicateKeyException and RemoveException, respectively. Actions taken:
Actions taken:
January 7, 2000: received issue
May 18, 2001: closed issue

Discussion:
 Create methods on an EJB home interface all throw the standard javax.ejb.CreateException; finder methods on the EJB home interface all throw the javax.ejb.FinderException; and remove methods on both home and remote interfaces all throw the javax.ejb.RemoveException. In a few cases chapter 8 gives an implied mapping: for example, the FinderException on the findByPrimaryKey method seems to map to either the Components::UnknownKeyValue exception or to the Components::InvalidKey exception on the equivalent find_by_primary_key CCM method. Even in these cases the names are sometimes inappropriate. In the majority of cases, however, there is simply no CCM equivalent to the EJB exception, and bridge implementors are left to wonder whether they should attempt a non-standard mapping. 


Issue 3183: CCM Issue: Is CCMObject::remove intended to be available to the CCM client? (components-ftf)

Click
here for this issue's archive.
Source: International Business Machines (Mr. Ignacio Silva-Lepe, isilval(at)us.ibm.com)
Nature: Uncategorized Issue
Severity:
Summary:
Section 5.12.1 of the spec can be interpreted to mean that the
CCMObject::remove call is not intended for use by CCM clients; but this is
inconsistent with the EJB/CCM mapping given in chapter 8.


Issue:
The explanation given for the CCMObject::remove call in section 5.12.1 is:
     "This operation is called when a component is about to be destroyed.
The component
     can perform any cleanup processing required (e.g. releasing resources)
 prior to its
     destruction."
This explanation can be interpreted to mean that the call is a private call
 from a CCM container to one of its components; if it has this internal
purpose then it might not be
intended for use by CCM clients wanting delete the component.  However,
table 8-1 shows that the CCM view of an EJB maps this call to the
EJBObject.remove()
method. This implies that the method is intended for client use as the
EJBObject.remove() is.  If so, then it also makes more sense to implement
the
CCMHome::remove() method in terms of the EJBObject.remove() method, rather
than the current mapping which requires an EJB Handle.


Proposal: (a) Change the text for remove() in 5.12.1 to say: "This
operation is used to delete a component".
     (b) Change the mapping in table 8-1 for CCMHome::remove to use
EJBObject.remove

Resolution: Change the text for remove() in 5.12.1 to say: "This operation is used to delete a component".
Revised Text: In section 61.11.1, page 73, replace "This operation is called when a component is about to be destroyed. The component can perform any cleanup processing required (e.g. releasing resources) prior to its destruction." with "This operation is used to delete a component" in the subsection titled remove
Actions taken:
January 7, 2000: received issue
May 18, 2001: closed issue

Discussion:
: The explanation given for the CCMObject::remove call in section 5.12.1 is: "This operation is called when a component is about to be destroyed. The component can perform any cleanup processing required (e.g. releasing resources) prior to its destruction." This explanation can be interpreted to mean that the call is a private call from a CCM container to one of its components; if it has this internal purpose then it might not be intended for use by CCM clients wanting delete the component. However, table 8-1 shows that the CCM view of an EJB maps this call to the EJBObject.remove() method. This implies that the method is intended for client use as the EJBObject.remove() is. 


Issue 3187: Do EJB-mapped attributes go to the ComponentDefault interface? (components-ftf)

Click
here for this issue's archive.
Source: International Business Machines (Mr. Ignacio Silva-Lepe, isilval(at)us.ibm.com)
Nature: Uncategorized Issue
Severity:
Summary:
When mapping EJB set/get methods to a CCM view, it is not clear whether the
resulting IDL attributes belong on the ComponentDefault interface or on the
component definition itself


Issue:
Set/get method pairs on the EJB remote interface map to IDL attributes, but
do these attributes end up in the XXXDefault interface or in the XXX
component definition?  Section 8.2.1.2 of the specification seems to imply
they belong in the XXXDefault interface, but section 5.3.2 says the
component definition for a basic CCM "shall only contain zero or more
attribute declarations", which suggests that attributes of a CORBA
Component belong in the component definition.   Also, the mapping in the
other direction (EJB view of a CCM), described in 8.3.1, suggests that CCM
attributes are always found in the component definition itself.  It appears
that both versions will work, but this point is worth clarifying.


Proposal:
Change 8.2.1.2 to say that all EJB set/get method pairs are mapped to IDL
attributes on the component definition itself.

Resolution: resolved
Revised Text: Change 8.2.1.2 to say that all EJB set/get method pairs are mapped to IDL attributes on the component definition itself. Revised Text: In section 64.3.1.2, page 178, remove the following text from the first bullet: "Note that pairs of getXXX and setXXX methods in the EJB remote interface will be mapped to IDL attributes. Any exceptions thrown by a getXXX method is mapped to an exception in the getRaises clause of the mapped IDL attribute. Likewise, any exception thrown by a setXXX method is mapped to an exception in the setRaises clause of the mapped IDL attribute. The actual definitions of the exceptions thrown are mapped following the Java to IDL rules." In that same section and page, add a second bullet containing the following text: "Each pair of getXXX and setXXX methods in the EJB remote interface will be mapped to IDL attributes in the component definition itself. Any exceptions thrown by a getXXX method is mapped to an exception in the getRaises clause of the mapped IDL attribute. Likewise, any exception thrown by a setXXX method is mapped to an exception in the setRaises clause of the mapped IDL attribute. The actual definitions of the exceptions thrown are mapped following the Java to IDL rules."
Actions taken:
January 7, 2000: received issue
May 18, 2001: closed issue

Discussion:
Set/get method pairs on the EJB remote interface map to IDL attributes, but do these attributes end up in the XXXDefault interface or in the XXX component definition? Section 8.2.1.2 of the specification seems to imply they belong in the XXXDefault interface, but section 5.3.2 says the component definition for a basic CCM "shall only contain zero or more attribute declarations", which suggests that attributes of a CORBA Component belong in the component definition. Also, the mapping in the other direction (EJB view of a CCM), described in 8.3.1, suggests that CCM attributes are always found in the component definition itself. It appears that both versions will work, but this point is worth clarifying. 


Issue 3189: What's the return type of CCM mappings of EJB finder and creator methods? (components-ftf)

Click
here for this issue's archive.
Source: International Business Machines (Mr. Ignacio Silva-Lepe, isilval(at)us.ibm.com)
Nature: Uncategorized Issue
Severity:
Summary:
Summary:

8.2.1.2 of the CCM specification says that EJB finder and creator methods
which return an RMI object reference are mapped to methods which return a
Components::CCMObject reference.  It is unclear whether the actual base
class CCMObject is intended or whether the specific component subclass
(e.g., Widget) is intended.   The specific subclass seems more sensible,
and is consistent with the equivalent IDL mappings shown in section 5.8.4.

Proposal:

Change 8.2.1.2 to make it clear that the specific subclass (e.g., Widget)
is the return type.

Resolution: Change 8.2.1.2 to make it clear that the specific subclass (e.g., Widget) is the return type
Revised Text: In section 64.3.1.2, page 178, change the fifth bullet under "Mapping the Home Interface" to read: "Finder and Creator EJB operations that return an RMI style object reference are mapped into Component IDL operations which return a CORBA Component Object Reference to XXX."
Actions taken:
January 7, 2000: received issue
May 18, 2001: closed issue

Discussion:


Issue 3190: How is CCMHome::get_home_def mapped to EJB operations? (components-ftf)

Click
here for this issue's archive.
Source: International Business Machines (Mr. Ignacio Silva-Lepe, isilval(at)us.ibm.com)
Nature: Uncategorized Issue
Severity:
Summary:
Chapter 8 omits to mention how the CCMHome::get_home_def call is mapped by
the bridge at runtime to an EJB operation.


Issue:
The very similar call CCMHome::get_component_def is shown as mapped to the
EJBHome.getEJBMetaData operation, but there is no mapping shown for
CCMHome::get_home_def.  It appears that get_home_def could be also be
implemented using the EJBHome.getEJBMetaData operation, and if necessary,
with the help of Java introspection.


Proposal:
Add a line in Table 8-1 to show CCMHome::get_home_def mapped at runtime to
EJBHome.getEJBMetaData.


Resolution: Add a line in Table 8-1 to show CCMHome::get_home_def mapped at runtime to EJBHome.getEJBMetaData
Revised Text: In table 64-1, page 180, add a sub-row to the row indicated by CCMHome with the entry CORBA::IRObject get_home_def(); in the column indicated by Operation called by client and the entry EJBMetaData getEJBMetaData() throws RemoteException; in the column indicated by Method invoked by bridge
Actions taken:
January 7, 2000: received issue
May 18, 2001: closed issue

Discussion:
The very similar call CCMHome::get_component_def is shown as mapped to the EJBHome.getEJBMetaData operation, but there is no mapping shown for CCMHome::get_home_def. It appears that get_home_def could be also be implemented using the EJBHome.getEJBMetaData operation, and if necessary, with the help of Java introspection. 


Issue 3191: Is the ccm_home method shown in Table 8-1 a typo? (components-ftf)

Click
here for this issue's archive.
Source: International Business Machines (Mr. Ignacio Silva-Lepe, isilval(at)us.ibm.com)
Nature: Uncategorized Issue
Severity:
Summary:
Table 8-1 shows a mapping for CCMObject::get_home.  It looks like it should
say CCMObject::get_ccm_home


Proposal:

Change "CCMObject::get_home" to "CCMObject::get_ccm_home" in Table 8-1.

Resolution:
Revised Text: Change CCMObject::get_home to CCMObject::get_ccm_home in Table 64-4 on page 193.
Actions taken:
January 7, 2000: received issue
May 18, 2001: closed issue

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

Click
here for this issue's archive.
Source: Ericsson (Mr. John-Luc Bakker, nobody)
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: Ericsson (Mr. John-Luc Bakker, nobody)
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: Ericsson (Mr. John-Luc Bakker, nobody)
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 3207: CORBA IR METAMODEL (components-ftf)

Click
here for this issue's archive.
Source: David Frankel Consulting (Mr. David Frankel, david(at)dfrankelconsulting.com)
Nature: Uncategorized Issue
Severity:
Summary:
1) The isBasic Attribute needs to be removed from HomeDef to synchronize
with the regular CORBA IR.

Resolution: resolved
Revised Text: Change the existing specification as follows: 1) Figure 2-13 (p. 2-25): Remove the isBasic attribute from the HomeDef metaclass. 2) The title of section 2.1.2.5 (p. 2-34) should be changed to remove language about the notion of a basic home. The revised title should read as follows: "Constraints on Basic Components" 3) The first paragraph of section 2.1.2.5 should be changed to remove references to isBasic as an attribute of HomeDef. The revised paragraph should read as follows: "The CORBA Component Model defines the notion of basic components. The ComponentDef metaclass has an attribute named isBasic. The fact that a component is basic can actually be computed from the component declaration--if the component observes certain constraints, it is basic. Thus, strictly speaking, the isBasic attribute is not necessary. However, the attribute greatly simplifies the process of determining whether a component definition is basic." (note: original italics here and in all revised text below are to be retained) 4) The last sentence of the second paragraph of section 2.1.2.5 (p. 2-35) should be changed to remove references to isBasic as an attribute of HomeDef. The revised sentence should read as follows: "The submitters have therefore decided not to mark the isBasic attribute of ComponentDef as derived." 5) The third paragraph of section 2.1.2.5 (p. 2-35) should be changed to remove references to isBasic as an attribute of HomeDef. The revised paragraph should read as follows: "The constraints on basic components are modeled formally as follows:" 6) Figure 2-21 (p. 2-35): -Remove the isBasic attribute from the HomeDef metaclass. -Change caption to Constraints on Basic Components -Constraint [34] should be rewritten as follows: "*English* [34] Homes of basic Components have only factories and finders, do not inherit from other homes, and manage only basic components. "*OCL* [34] manages->isBasic implies (key->isEmpty and base->isEmpty and manages.isBasic)" 7) The generated XMI and IDL for the ComponentIDL package (section 4, p. 4-37) should be completely replaced by newly generated XMI and IDL that uses the MOF and IDL algorithms for generating XML DTDs and IDL from a metamodel. 8)The section 4.1 heading (p. 4-37) is superfluous. It should be removed. The contained subsection headings should be downleveled so that the section entitled "XMI DTD" (p. 4-37) becomes section 4.1, the section entitled "IDL for the BaseIDL Package" (p. 4-61) becomes section 4.2, and the section entitled "IDL for the ComponentIDL Package" (p. 4-86) becomes section 4.3.
Actions taken:
January 11, 2000: received issue
May 18, 2001: closed issue

Discussion:
Resolution: Remove isBasic attribute from HomeDef in the metamodel and regenerate the XMI and IDL for the metamodel.  Theoretically the generated code can be hand-modified to remove artifacts generated from the isBasic attribute of HomeDef, but this is a dangerous practice and is not recommended. 


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

Click
here for this issue's archive.
Source: David Frankel Consulting (Mr. David Frankel, david(at)dfrankelconsulting.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 3212: 1. Should a session component have a way to save and restore its private st (components-ftf)

Click
here for this issue's archive.
Source: Oracle (Mr. Edward Cobb, eecobb(at)comcast.net)
Nature: Uncategorized Issue
Severity:
Summary:
1. Should a session component have a way to save and restore its private state? 
	Problem: The current component specification provides no way for the component programmer to explicitly save and restore its private state for session components.

Resolution: closed issue, no change
Revised Text:
Actions taken:
January 12, 2000: received issue
April 26, 2010: closed issue

Discussion:
Since basic components do not participate in creating references, there is no way for them to control saving and restoring of their state. Extended components already have the required operations. No change is required. 
Revised Text: No change. 


Issue 3213: Implementation of get_component (components-ftf)

Click
here for this issue's archive.
Source: Oracle (Mr. Edward Cobb, eecobb(at)comcast.net)
Nature: Uncategorized Issue
Severity:
Summary:
2. Implementation of get_component with separate ORB and component vendors 
	Problem: A design goal of the components specification was to permit the component container to be provided by a different vendor than the ORB vendor. When this is true, how does the implementation of get_component work?

Resolution: closed issue, resolved
Revised Text: In section 61.4.3.1 page 61-33 add the following text to the paragraph Implementation of get_component, "An implementation of get_component is a required element of the CORBA core, even if the ORB does not provide an implementation of CORBA components. Thus component vendors that are not also ORB vendors can rely on the availability of this capability in a compliant ORB."
Actions taken:
January 12, 2000: receive dissue
May 18, 2001: closed issue

Discussion:
Resolution: A CORBA 3.0 ORB must implement get_component even if it does not provide an implemention of CORBA components and therefore, a CCM implementation from any other vendor can rely on a get_component implementation being available. 


Issue 3214: Registering homes outside of the container (components-ftf)

Click
here for this issue's archive.
Source: Oracle (Mr. Edward Cobb, eecobb(at)comcast.net)
Nature: Uncategorized Issue
Severity:
Summary:
Problem: The current specification does not provide an interface for registering homes that can be used outside of the container. Should it?

Resolution: close, no change
Revised Text:
Actions taken:
January 12, 2000: received issue
April 26, 2010: closed issue

Discussion:
Homes cannot be registered outside the container, since HomeFinder are not federated (see resolution of issue 3215). This means that the scope of a HomeFinder is a single CCM implemementation. Clients may use the Naming Service instead, which is federated. 


Issue 3215: Federation of HomeFinders? (components-ftf)

Click
here for this issue's archive.
Source: Oracle (Mr. Edward Cobb, eecobb(at)comcast.net)
Nature: Uncategorized Issue
Severity:
Summary:
Problem: Can home finders be federated?

Resolution: No, HomeFinder cannot be federated. Clients can use the Naming Service instead, which is federated.
Revised Text:
Actions taken:
January 12, 2000: received issue
May 18, 2001: close issue, no change
April 26, 2010: closed issue

Issue 3216: New IDL keywords (components-ftf)

Click
here for this issue's archive.
Source: Oracle (Mr. Edward Cobb, eecobb(at)comcast.net)
Nature: Uncategorized Issue
Severity:
Summary:
Problem: The new IDL keywords use mixed case, rather than the lower case style used by current keywords. Should the new keywords be changed to comply with the existing style?

Resolution: Yes, new IDL keywords should be changed to conform to existing style guide.
Revised Text: In ptc/99-10-03 change all occurrences of typeId to typeid; change all occurrences of typePrefix to typeprefix; change all occurences of getRaises to getraises; change all occurrences of setRaises to setraises
Actions taken:
January 12, 2000: received issue
May 18, 2001: closed issue

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(at)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(at)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, jishnu(at)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, jishnu(at)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(at)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(at)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: Ericsson (Mr. John-Luc Bakker, nobody)
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 3418: USING Components::Enumeration (components-ftf)

Click
here for this issue's archive.
Source: International Business Machines (Mr. Ignacio Silva-Lepe, isilval(at)us.ibm.com)
Nature: Uncategorized Issue
Severity:
Summary:
It is probably not a good idea to mandate an implementation for
Enumeration, since there may be different options for implementing.
For example, it may be desirable for
performance reasons to implement a form of lazy Enumeration that does
not carry with it every element that it can contain, but requiring
this kind of implementation can be overkill for some
applications. Given this, Enumeration is defined as an abstract
valuetype and at least one concrete specialization of it is
required. In addition, FOR INTEROPERABILITY, at least one STANDARD
implementation must also be provided so that client stubs and server
skeletons know how to marshal and unmarshal Enumeration values.

Resolution: resolution see above
Revised Text: In section 64.3.1.2, page 64-179, replace At least one concrete implementation of this abstract value type must be provided. Concrete implementations derive from Enumeration by providing a state variable that aggregates objects of type CCMObject. For example, the following value type MyEnumeration would be an implementation of Enumeration: valuetype MyEnumeration : Components::Enumeration { state { private sequence< Components::CCMObject > objects; }; }; with A concrete specialization of this abstract value type must be provided. This specialization has the form: module Components { valuetype DefaultEnumeration : Enumeration { state { private sequence< CCMObject > objects; }; }; }; Any implementation of DefaultEnumeration, in any language, must provide implementations for the two Enumeration methods. Any client ORB that supports the interoperable bridge has to provide an implementation that knows how to read DefaultEnumeration from the wire and to use that information to provide a local implementation of these two methods. Any EJB container that supports the CCM-EJB bridge has to provide an implementation that knows how to construct itself from a java.util.Enumeration and then write itself to the wire as a DefaultEnumeration.
Actions taken:
March 14, 2000: received issue
May 18, 2001: closed issue

Discussion:
Resolution: Require that one standard concrete implementation of Components::Enumeration be included. This implementation shall specialize Components::Enumeration by defining a sequence of CCMObject as its private state, and by implementing the methods has_more_elements and next_element in terms of this sequence. 


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(at)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 3645: Use of the type ComponentHome (components-ftf)

Click
here for this issue's archive.
Source: Laboratoire d`Informatique Fondamentale de Lille (Mr. Raphael G. Marvie, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
1. In the document OMG ptc/99-10-04 p.69-329 there is in item 5 a use
   of the type ComponentHome, shouldn't it be CCMHome? If I do recall
   correctly, ComponentHome was used in the first versions of the
   specification proposal.

Resolution: You are correct. ComponentHome should be CCMHome
Revised Text: Change ComponentHome in list item 5 on page 69-329 to CCMHome
Actions taken:
May 23, 2000: received issue
May 18, 2001: closed issue

Discussion:
. 


Issue 3646: Document OMG ptc/99-10-04 p.615-87 (components-ftf)

Click
here for this issue's archive.
Source: Laboratoire d`Informatique Fondamentale de Lille (Mr. Raphael G. Marvie, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
2. Document OMG ptc/99-10-04 p.615-87. In the last paragraph of the
   illustrative example, it is said that: "The implementations of
   operations for navigation, executor activation, object reference
   creation and management, and other mechanical functions are either
   generated or supplied by the container." 
   Don't you think this is dangerous in a multi vendor context? Let say 
   a component implementation rely on the container to provide these 
   operations. What will happend if this component is deployed in a
   container which considers that component implementations include
   the generated code providing these operations? (Same feeling as in
   remark 2.)

Resolution: close issue, no change
Revised Text:
Actions taken:
May 23, 2000: received issue
May 18, 2001: close no change
April 26, 2010: closed issue

Discussion:
 Since we don't guarantee portability for non-Java languages, component binaries will need to be tailored to hardware platform, compiler, and ORB/container provider. To be deployed in a different container, a new binary is likely to be required, which will take care of the difference between provided and generated code


Issue 3647: operation <string get_implementation(in string iuuid)> (components-ftf)

Click
here for this issue's archive.
Source: Laboratoire d`Informatique Fondamentale de Lille (Mr. Raphael G. Marvie, nobody)
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, nobody)
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, nobody)
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, nobody)
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, nobody)
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 3652: CCM specification terms (components-ftf)

Click
here for this issue's archive.
Source: Laboratoire d`Informatique Fondamentale de Lille (Mr. Raphael G. Marvie, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
In the first versions of the CCM specification terms such as
ComponentBAse, ComponentHome, ... have been used. More recently these
terms have been changed to CCMObject, CCMHome... Shouldn't all the
interfaces of the ccm module be changed this way in order to be
homogeneous in their naming?

Why is there CCMContext (with CCM prefix) and SessionContext without
CCM prefix ?  

Thus SessionComponent, EnterpriseComponent, SessionContext, ... would
become CCMSessionObject, CCMEnterpriseObject, CCMSessionContext ...

Resolution: close, no change
Revised Text:
Actions taken:
May 23, 2000: received issue
May 18, 2001: close no change
April 26, 2010: closed issue

Discussion:
: No, interface names were changed to conform to the style used by EJB. E.g. CCMObject is analgous to EJBObject, CCMHome is analogous to EJBHome, SessionComponent is analagous to SessionBean, not EJBSessionBean. 


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, nobody)
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, nobody)
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, nobody)
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, nobody)
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 3873: Implementation of extended CCM features (components-ftf)

Click
here for this issue's archive.
Nature: Clarification
Severity: Minor
Summary:
This section indicates that the Language Mappings are to be provided as errata. I have searched high and low in the OMG web site to find these mappings and have not found a single bit of info on them. I need these mappings to accurately design and implement the extended CCM features.

Resolution: close no change
Revised Text:
Actions taken:
September 19, 2000: received issue
May 18, 2001: close issue
April 26, 2010: closed issue
April 26, 2010: closed issue

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(at)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(at)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, where placement information are
added at deployment time, we may want to enable the component/assembly
provider to provide CPF skeleton files together with the CCD files and
skeleton CAD files. In this case the "simple" element may not contain any
"value".

I propose to replace this definition with:

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

Any thought

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

Discussion:
In ptc/99-10-04, section 69.8.2.7 page 69-324 says " simple contains a
mandatory value element ", "If the value element is empty, the value is deemed unspecified. If the value is unspecified, and there is a defaultvalue defined, then
the default value will be used " (rule 1), and " The description, choices and
defaultvalue child elements may be used to provide guidance to the end user in
deciding how to set the attributes " (rule 2).
As described, the mandatory "value" element could be empty then it is not
required to repeat the default value into the value. Here is a valid property file
example:
<properties>
<simple name="size" type="long">
<value></value>
<defaultvalue>100</defaultvalue>
</properties>
This file describes that the value 100 must be affected to the "size" attribute at
deployment time according to the rule 1.
However a component or assembly provider could provide this file as a skeleton
completed by the end user at deployment time according to the rule 2.


Issue 3927: Attribute exception definition (components-ftf)

Click
here for this issue's archive.
Source: Open Networks Engineering (Mr. Jean-Christophe Dubois, jcd(at)one.com)
Nature: Uncategorized Issue
Severity:
Summary:
In 99-07-01 there was a extention of the atribute definition to enable users
to define specific exceptions on GET/SET operations. This extension has
disappear from 99-10-04. What is the reason for it? This extension seems to
be quite usefull in particular if you consider component configuration
phase.

Resolution: The attribute changes are contained in the core chapter ptc/99-10-03.
Revised Text:
Actions taken:
October 3, 2000: received issue
May 18, 2001: close issue
April 26, 2010: closed issue
April 26, 2010: closed issue

Issue 3928: Local push() operation. (components-ftf)

Click
here for this issue's archive.
Source: Open Networks Engineering (Mr. Jean-Christophe Dubois, jcd(at)one.com)
Nature: Uncategorized Issue
Severity:
Summary:
When the component implementor wants to emits an event it has to use the
push() operation from the local Event interface.

It is not clear how the container will manage to discriminate the event and
select the channel this event need to be send to.

Nothing prevent a component to define several publisher and several emitters
and nothing force the events to be of different types on all of these
channels.

So either the spec is not clear enough on this process or the local push
method is missing some a parameter (like the emitter/publisher port name) to
help the container do his job.

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

Discussion:
The component specific context will contain send operations for each named
port. The local interface Event is removed, see issue 3937.


Issue 3929: ExecutablePlacement definition (components-ftf)

Click
here for this issue's archive.
Source: Open Networks Engineering (Mr. Jean-Christophe Dubois, jcd(at)one.com)
Nature: Uncategorized Issue
Severity:
Summary:
In the componentAssembly DTD the executablePlacement is defined as follow:

<!ELEMENT executableplacement
( usagename?
, componentfileref
, componentimplref
, invocation?
, destination?
, extension*
)>
<!ATTLIST executableplacement
id ID #REQUIRED
cardinality CDATA "1" >

It seems to me that the DTD should not enforce the componentimplref as this
might depend on the deployment And there is no reason the assembler should
know where the executable is going to be deployed. For example the
componentimplref should be different between a Solaris, a Linux or an NT
placement.

Therefore I would propose to make componentimplref  optional (as it is in
homePlacement) and change the executablePlacement definition to:

<!ELEMENT executableplacement
( usagename?
, componentfileref
, componentimplref?
, invocation?
, destination?
, extension*
)>
<!ATTLIST executableplacement
id ID #REQUIRED
cardinality CDATA "1" >

Resolution: see below
Revised Text: In ptc/99-10-04 section 69.7.2.22 page 69-311, replace <!ELEMENT executableplacement ( usagename? , componentfileref , componentimplref , invocation? , destination? , extension* )> by <!ELEMENT executableplacement ( usagename? , componentfileref , componentimplref? , invocation? , destination? , extension* )> In ptc/99-10-04 section 695.4 page 695-349, replace <!ELEMENT executableplacement ( usagename? , componentfileref , componentimplref , invocation? , destination? , extension* , invocation? , destination? , extension* )> )> by <!ELEMENT executableplacement ( usagename? , componentfileref , componentimplref?
Actions taken:
October 3, 2000: received issue
May 13, 2002: closed issue

Discussion:
When the assembler describes an executable placement, he/she could not
always know what the executable implementation is because this implementation
could be dependent of the physical placement selected at deployment time.
Require to change the mandatory "componentimplref" child element to an
optional child element of the "executableplacement" element in the component
assembly XML DTD in order to apply the same rule defined in the
"homeplacement" element.


Issue 3930: exception raised by Components::Events::subscribe() (components-ftf)

Click
here for this issue's archive.
Source: Open Networks Engineering (Mr. Jean-Christophe Dubois, jcd(at)one.com)
Nature: Uncategorized Issue
Severity:
Summary:
The exception raised by Components::Events::subscribe() doesn't include the
Components::ExceededConnectionLimit exception raised by the
subscribe_source_name() 2.3 equivalent interface.

It should be added.

Resolution: see below
Revised Text: In ptc/99-10-04 section 61.6.10 at page 61-52 replace the operation declaration: Cookie subscribe (in FeatureName publisher_name, in EventConsumerBase subscriber) raises (InvalidName); by Cookie subscribe (in FeatureName publisher_name, in EventConsumerBase subscriber) raises (InvalidName,InvalidConnection, ExceededConnectionLimit); In section 61.6.10 page 61-52, add the following text at the end of the description of the subscribe operation: If the object reference in the subscriber parameter does not support the consumer interface of the eventtype declared in the publishes statement, the InvalidConnection exception is raised. If the implementation-defined limit to the number of subscribers is exceeded, the ExceededConnectionLimit exception is raised.
Actions taken:
October 3, 2000: received issue
May 13, 2002: closed issue

Discussion:
Yes this exception and the InvalidConnection exception are really missing here,
we add them.


Issue 3937: Channel Setup for Emits ports. (components-ftf)

Click
here for this issue's archive.
Source: Open Networks Engineering (Mr. Jean-Christophe Dubois, jcd(at)one.com)
Nature: Uncategorized Issue
Severity:
Summary:
I found 2 (possibly) contradictory statement in 99-10-04 for "emits" ports.

1) in 62.4.1.2 The Event Interface

EventConsumerBase obtain_channel (in string supp_name, in EventHeader hdr)
raises (InvalidName);

The obtain_channel operation is used by the component to obtain an
EventConsumerBase which it can use to push events. This operation
corresponds to an emits declaration in component IDL. The supp_name string
identifies an Interoperable Naming Service (INS) name which is used to
identify the SupplierAdmin to be used by CORBA notification. The name is
associated with the SupplierAdmin thorough container specific configuration
data. The obtain_channel operation may optionally specify the EventHeader
required by CORBA notification which will be used for all events pushed to
this channel. If hdr is present, it is prefixed to all events pushed to this
channel. If not, it is defaulted as described in Section 66.4, "Event
Management Integration," on page 66-252. If the supp_name is not recognized,
the InvalidName exception shall be raised.

2) in 66.4.2 Transmitting an event

. channel lookup - for emitted events, this is the channel configured for
general use at container start-up, for published events, this is the channel
established by the container for the purpose of pushing this event type.

Section 62.4.1.2 seems to imply that there can be a different event channels
for each emit port while 66.4.2 seems to imply that there is only one event
channel shared by all emits ports.

What means "general use"?

What is the truth/intent?.

Could you make things clear?

I certainly preffer 1)

Resolution: see below
Revised Text: In ptc/99-10-04 section 62.4.1.4 is removed.
Actions taken:
October 5, 2000: received issue
May 13, 2002: closed issue

Discussion:
The internal interface Events will be removed. Access for sending events will be
provided by the component’s specific context. The whole section about the local
Event interface is removed. The connection setup between event producer and
consumer is handle outside of the component via management functionality of
the container and assembly.


Issue 3938: Intent of Components::Events::(un)subscribe to bypass the notif. service ? (components-ftf)

Click
here for this issue's archive.
Source: Open Networks Engineering (Mr. Jean-Christophe Dubois, jcd(at)one.com)
Nature: Uncategorized Issue
Severity:
Summary:
a component wants to publish an event. So, it calls
Components::Notification::Event::create_channel(). The container contact the
(remote) Notification service, create a dedicated channel, connect to it and
return an EventConsumerBase to be used by the component to push any event to
the channel. Each time the push() method is called on the EventConsumerBase
it will create a structured_event and push it to the notification channel.

Now, another component (in another container/memory space/system) wants to
receive these events. So it calls Components::Event::subscribe() on the
first component passing a reference to an EventConsumerBase. The component
internally calls Components::Notification::Event::subscribe() passing the
remote EventConsumerBase reference. So now the container has to create a
(local) strutured_push_consumer and connect it to the channel it has
created. By doing this any event that it send to the channel will be bounced
back to it so that it can then push them to the (remote) EventConsumerBase
that have subscribed to the publish port.

This scenario doesn't seem right to me because the notification service is
then useless as all events are bounced back to the publisher. The container
could just call the push() method on each registered EventConsumerBase.

What seems to be really needed is a way to pass the reference to the
NotificationAdmin back to the second component so that the second component
can then subscribe through its own container to the Notification channel.

Another possiblity would be that the subscribe call accept a (remote)
strutured_push_consumer as parameter instead of the EventConsumerBase.

The last solution is that the publisher port is not designed to work with
the notification service but on its own.

I am certaimly missing something!!!!!

Could you explain how it is supposed to work?

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

Discussion:
Through major change of equivalent IDL mapping consumer interfaces are
declared at the same scope as the eventtypes. Connection setup of event
producer and consumer is a management activity, which should be handled from the container/assembly not from the component. It is not stated, that event
transmission is realized with the notification service.
So any change here would be a restriction for the implementation conforming to
the specification.


Issue 3939: An assembly is always mono-vendor ??? (components-ftf)

Click
here for this issue's archive.
Source: Open Networks Engineering (Mr. Jean-Christophe Dubois, jcd(at)one.com)
Nature: Uncategorized Issue
Severity:
Summary:
Because the interfaces between the Assembly and the
container/componentServer/servantActivator is not defined, these ones have
to be vendor specific.

Because the ExecutorSegmentBase and the HomeExecutorBase are not specified a
component is always container specific.

As a result an assembly provided by one vendor can only speak to
container/componentServer/servantActivator provided by the same vendor and
the container can only run (even in Java???) components that have
specifically ported to it.

The conclusion is that it is not possble to build an asembly that combine
components build on different CCM platform. All of the component have to be
ported to a single CCM platform.

Is it what is intended?

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:
October 5, 2000: received issue
May 13, 2002: closed issue

Discussion:
The section 69.9 of the ptc/99-10-04 document does not define the ServerActiva-
tor, ComponentServer, Container, ExecutorSegmentBase and HomeExecutorBa-
se interfaces. Then, deployment could only be done in a vendor specific manner.
In order to allow the deployment of applications on different CCM platforms,
these interfaces must be defined in the CORBA Component Model specification.
The section 69.9 of the ptc/99-10-04 document must be replaced by the content
of the ccm/2001-10-03 document which defines the ServerActivator, Component-
Server, and Container interfaces. These interfaces are defined in a generic and
portable way allowing interoperability between deployment middleware provi-ded
by various vendors. As each creation operation takes a sequence of ConfigValue
objects as parameter, each vendor could add its own configuration values
without breaking the specification. However standard configuration values should
be collected and defined in a new RFP dedicated to advanced CORBA
component deployment. The definition of the ExecutorSegmentBase and HomeExecutorBase interfaces
must be resolved according to the Issue 3651.


Issue 3940: INS name ? where do we get them from ? (components-ftf)

Click
here for this issue's archive.
Source: Open Networks Engineering (Mr. Jean-Christophe Dubois, jcd(at)one.com)
Nature: Uncategorized Issue
Severity:
Summary:
In 99-10-04 chapter 62.4.1.4 (The Event Interface) in the paragraph
describing obtain_channel() and listen() the name passed to these methods
are supposed to be an INS name. Where do we get them from?

It seems to me that it should be the port name that should be passed and the
container job would be to link it with an INS name (that it gets through
container specific configuration) and then get the corresponding Admin
interface.

If this is what is intended we might want to make it more clear in the text.

Resolution: Same as issue 3937.
Revised Text: Same as issue 3937.
Actions taken:
October 4, 2000: received issue
October 5, 2000: received issue
May 13, 2002: closed issue
April 26, 2010: closed issue
April 26, 2010: closed issue
April 26, 2010: closed issue

Issue 3954: equivalent interfaces issue (components-ftf)

Click
here for this issue's archive.
Nature: Revision
Severity: Critical
Summary:
The equivalent interfaces as described within the document result in type mismatches when code is built to implement the functions generated from the CIDL component specification. That is, you cannot assign a consumer to a subscriber because the interfaces are parallel derivations and not an inheritance compatible derivations. The code prototypes must be changed to overcome this problem. We have tried three different approaches, but the one that seems to work best has the most impact to the IDL revisions. 

Resolution: Resolved by reference/clarification to 3746/ duplicate
Revised Text:
Actions taken:
October 16, 2000: received issue
May 13, 2002: closed issue

Issue 3955: push() versus push_event() (components-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
See the CORBA Components Model specification, orbos/99-07-01, section
5.6, pages 5-84 through 5-89, approximately.
Could someone clarify the push() and push_event() operations, their
purposes, and their interaction, if any. There is no description
whatsoever of the relationship between the push() and push_event()
operations, even though push_event() is declared in the
inherited Components::EventConsumerBase.  The producing component
invokes its push() operation, which then performs any peculiar
formatting to the event before transmission to the underlying channel
through its container. It is unclear when, if ever, the push_event()
operation will be invoked. A text search of the document reveals the
operation appears only in the interface definition and its immediate
descriptive paragraphs.

Would a better model be to use push_event() as the interface to and from
the container?  (Perhaps this should be independent operations,
produce_event() and consume_event()?)  On the producer side, let push()
perform any component specific formatting of the event before passing
the [now modified] event on to push_event(). This latter interacts with
the container to send the event to the event channel, as
described. (Most push() implementations will do nothing to the event. 
This could be provided as a default generated implementation.) On the
consumer side, push_event() will be invoked by the container as part of
event delivery. The push_event() operation performs type checks, as
described, before it invokes the consumer agent’s push() operation. This
process correctly handles the semantics and permits suitable places to
intercept or override event processing.

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

Discussion:
EventConsumerBase is part of the client-side interface of a component. Clients
can equivalently use either the push_event() operation on the
EventConsumerBase interface or the push() operation on the consumer interface
associated to the used eventtype. The push_event() operation is described on
page 61-46 and must be used by clients having no static knowledge of the
concrete consumer interface associated to the used eventtype. The push()
operation is described in the text for equivalent eventtype consumer interfaces
and could be used by clients having static knowledge of the concrete consumer interface associated to the used eventtype. Neither interface is used on the
server side. No further clarification is necessary.


Issue 3977: Services available for a basic container (components-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
The CCM describes the services available for a basic container as being
one of two sets: security, transactions, and naming or security,
transactions, and persistence. Could someone please describe the exact
services available to basic containers and the particular semantics for
each? Are these differences related to one set for the component home
and the second set for the instance?

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

Discussion:
The text that noted this distinction was part of the removed chapter 66 (see issue
4307). However it is difficult to tell what services a container will need to provide
its functionality to the component instances. It is implementation dependant what
services are available for a container. The container could make use of any of
the CORBA services. It is transparent for components and for homes.
Furthermore there is no distinction between the functionality provided by a
container for a home or for a component. They use the same internal interface
type of the container i.e. the context interface. The context interface provides
also an interface to the orb object. Using this orb object a component or a home
can get access to all of the CORBA Services.


Issue 3982: Deployment Object Life Cycles (components-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
The description of the life cycle and system dynamics of the various
objects that contribute to component deployment and execution is
incomplete. From an implementation perspective, there are many run-time
objects involved that contribute to, or are required for, the overall
operation of a component. But the CCM does not adequately show the
interrelationships among such objects. Even the most rudimentary
implementation depends on the assumptions hidden behind these
interrelationships.

The following questions need to be addressed in order to build a
portable implementation:

1.    Deployment support services:

*  What is the life cycle of the support services needed to create an
   Assembly object?
*  Do these already need to be executing in, known to, or exposed by one
   or more servers?
*  How are these services contacted in a dynamic environment?
*  Is this structure equivalent to the TINA DPE concepts?
*  What is the life cycle of the Assembly object itself?
*  When and how is an Assembly object deleted?

2.    Application servers, containers, homes, components:

*  What is the exact life cycle of these various objects?
*  The specification identifies how component instances are created. How
   are they deleted?
*  When and how is a home removed from a container?
*  When and how is a container removed from an application server?
*  When and how is an application server terminated?

3.    Related or referenced objects:

*  What is the life cycle of event channels?
*  Does the life cycle of objects vary if they are "private" to an
   assembly?
*  When and how are event subscriptions released from their publisher or
   emitter?
*  When and how are objects "registered" with the naming service or
   trader unregistered?

A full and representative life cycle description of the run-time objects
denoted above is necessary to understand the dynamic system model and
its inherent limitations. This will be critical for systems that must
exhibit very high reliability and availability. There appear to be many
assumptions, particularly with respect to the deployment tools, that
affect recovery operations from fault conditions. These must all be made
explicit. Thus, the CCM description should include a comprehensive state
transition model. This may be documented as cooperating or nested state
machines for the various pieces.

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:
October 23, 2000: received issue
May 13, 2002: closed issue

Discussion:
The ptc/99-10-04 document does not define the whole life cycle of all objects
involved in the deployment process.
The section 69.9 of the ptc/99-10-04 document must be replaced by the content
of the ccm/2001-10-03 defining the life cycle of all objects involved in the
deployment process.
Comments about the questions:
1.1. Assembly objects are created by AssemblyFactory objects. These
AssemblyFactory objects are part of CCM middleware which must be
deployed on each host before any CCM application deployment.
1.2. There is at most one AssemblyFactory on each host. Then several
AssemblyFactory objects could run in a network. To create an Assembly
object, the AssemblyFactory object is selected by the user according to its
preferences or automatically according to a vendor specific load balancing
policy. When created, an Assembly object is hosted by one physical host
but its components can be distributed on several physical hosts.
1.3. As any CORBA object references, AssemblyFactory references could be
obtained by stringified IORs, CORBA Object Reference URLs, Name
Services, or Trader Services. This choice is vendor specific but is fully
portable and interoperable. 1.4. Here Name Services and Trader Services are adequate.
1.5. When an application must be deployed, the deployment tool invokes the
create operation of one AssemblyFactory object in order to create an
Assembly object. When the application must be destroyed, the
deployment tool invokes the destroy operation of the AssemblyFactory
object.
1.6. An Assembly object is destroyed when its associate application must be
removed by invoking the destroy operation of the AssemblyFactory used
to create the Assembly object.
2.1. When the build operation of an Assembly object is invoked, and according
to information contained into the component assembly descriptor, the
Assembly object invokes the ServerActivator::create_component_server
operation in order to create each required ComponentServer instance,
invokes the ComponentServer::create_container operation in order to
create each required Container instance, invokes the
Container::install_home operation in order to create each required
CCMHome instance, invokes one of the create operations of homes in
order to create the required CCMObject instances. Then components are
interconnected and configured according to information contained in the
component assembly descriptor. When the application should be stopped,
the Assembly object invokes the remove operation of each created
component, home, container, and component server instances.
2.2. A CCMObject instance could be removed by invoking its
CCMObject::remove operation or by invoking the
CCMHome::remove_component operation of its home. Implicitly, a
component is removed by its owner Assembly instance when the
Assembly::tear_down operation is invoked.
2.3. A CCMHome instance is removed from its container by invoking the
Container::remove_home operation. This operation is invoked by the
implementation of the Assembly::tear_down operation.
2.4. A Container instance is removed from its component server by invoking
the Container::remove or ComponentServer::remove_container
operations. This is implicitly invoked by the implementation of the
Assembly::tear_down operation.
2.5. A ComponentServer is terminated by invoking the
ComponentServer::remove or
ServerActivator::remove_component_server operations. This is implicitly
invoked by the implementation of the Assembly::tear_down operation. 3.1. Event channels are implicitly created by the deployment middleware. They
are implicitly destroyed when the associate assembly is removed. This is
done in a vendor specific manner.
3.2. Objects created during a deployment process - e.g. component servers,
containers, homes, event channels, etc - are private (owned) by the
Assembly instance which created them.
3.3. When tearing down an Assembly object, this object must remove all
interconnections between components by invoking the operations
provided by the Receptacles and Events interfaces, e.g.
Receptacles::disconnect, Events::unsubscribe, and
Events::disconnect_consumer operations.
3.4. Components are implicitly (un)registered from/to the name service or
trader service by the owner Assembly object if these registrations are
explicitly described into the component assembly descriptor.


Issue 3985: description element need to be added to corbacomponent.dtd (components-ftf)

Click
here for this issue's archive.
Source: Open Networks Engineering (Mr. Jean-Christophe Dubois, jcd(at)one.com)
Nature: Uncategorized Issue
Severity:
Summary:
in 99-08-05, the corbacomponent DTD is missing the "description" element
specification. It should be the same as the other DTDs and can be copied
from them

<!ELEMENT description ( #PCDATA ) >

Resolution: see below
Revised Text: In ptc/99-10-04 page 69-283, add the new section 69.4.5.13 The description Element See section 69.3.2.8 page 69-264. and change the number of sections between 69.4.5.13 to 69.4.5.57 to 69.4.5.14 to 69.4.5.58 In ptc/99-10-04 section 695.2 page 695-341 after the "corbaversion" element, add <!ELEMENT description ( #PCDATA ) >
Actions taken:
October 23, 2000: received issue
May 13, 2002: closed issue

Discussion:
Require to add the "description" element to the CORBA Component Descriptor
XML DTD as this is a child element of the "right" element described in ptc/99-10-04
section 69.4.5.44 page 69-293.


Issue 3986: repository element needed by softpkg DTD (components-ftf)

Click
here for this issue's archive.
Source: Open Networks Engineering (Mr. Jean-Christophe Dubois, jcd(at)one.com)
Nature: Uncategorized Issue
Severity:
Summary:
in 99-08-05 the softpkg DTD is missing the "repository" element
specification. It could be copied from corbacomponent DTD.

<!ELEMENT repository
( ins
| objref
| link
) >
<!ATTLIST repository
type CDATA #IMPLIED >

Resolution: see below
Revised Text: In ptc/99-10-04 page 69-271, add the new section 69.3.2.26 The repository Element The repository element is a child element of the idl element used to point to a repository, such as the interface repository. <!ELEMENT repository ( ins | objref | link ) > <!ATTLIST repository type CDATA #IMPLIED > The type attribute specifies the type of repository. Currently, the only predefined value for type is "CORBA Interface Repository". and change the number of sections between 69.3.2.26 to 69.3.2.32 to 69.3.2.27 to 69.3.2.33 In ptc/99-10-04 section 695.1 page 695-338 before the "runtime" element, add <!ELEMENT repository ( ins | objref | link ) > <!ATTLIST repository type CDATA #IMPLIED > In ptc/99-10-04 section 695.1 page 695-338, remove the "resource" element and its attribute list as this element is never used.
Actions taken:
October 23, 2000: received issue
May 13, 2002: closed issue

Discussion:
Require to add the "repository" element to the softpkg XML DTD as this is a child
element of the "idl" element described in ptc/99-10-04 section 69.3.2.14 page 69-266.


Issue 3987: typo in connections element definition (components-ftf)

Click
here for this issue's archive.
Source: Open Networks Engineering (Mr. Jean-Christophe Dubois, jcd(at)one.com)
Nature: Uncategorized Issue
Severity:
Summary:
in 99-08-05 the componentassembly DTD has a typo in the "connections"
element definition. "connecthome" should be spelled "connecthomes"

<!ELEMENT connections
( connectinterface
| connectevent
| connecthomes
| extension
)* >

Resolution: see below
Revised Text: In ptc/99-10-04 section 69.7.2.12 page 69-307, replace "connecthome" by "connecthomes". In ptc/99-10-04 section 69.7.2.14 page 69-308, replace the two "connecthome" occurrences by "connecthomes". In ptc/99-10-04 section 695.4 page 695-348, replace "connecthome" by "connecthomes".
Actions taken:
October 24, 2000: received issue
May 13, 2002: closed issue

Discussion:
Require to replace "connecthome" by "connecthomes" in the chapter 69 of
ptc/99-10-04 in order to correct this typo.


Issue 3993: CCM Events issue (components-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
I was researching the CCM Event Corba 3 to Corba 2.3 mappings in 
chapter 5 of Volume I, and found that the resulting interfaces did not 
permit a consumer to subscribe to a publisher because the interface 
type returned by the get_consumer_<name>() does not match the 
subscribe_<name)() parameter.  I am not sure if I made a mistake when 
mapping the 3.0 to 2.3 idl or if it is a problem in the standard.  I 
also provide an alternative that might work, though I'm sure it will 
need some work.

Resolution: Resolved by reference/clarification to 3746
Revised Text:
Actions taken:
October 24, 2000: recived issue
May 13, 2002: closed issue

Issue 3996: IDL question concerning CCM (components-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
I have the following question (problem). The Corba Component Model Spec
(volume 1)  defines the following :
module CORBA_3 {
   module Components {
       interface Events {
          ...
       };
       ...
       module Events {
           ...
       };
   };
};

So the word 'Events' is used for defining an interface and a module!! Is
this correct IDL, because ther JavaORB idl-compiler nor the ORBACUS
idl-compiler is able to compile such idl.

Resolution: see below
Revised Text: In ptc/99-10-04 section 62.4.1.1 page 62-150, replace Events::Event get_event(); by Notification::Event get_event(); In ptc/99-10-04 section 62.4.1.4 page 62-152, replace Components::Events by Components::Notification.
Actions taken:
October 21, 2000: received issue
May 13, 2002: closed issue

Discussion:
This issue was already resolved by the revised text of Issue 3061, i.e.
7. In IDL on page 150, section 62.4.1.1 change
Events::Event get_event(); to Notification::Event get_event();
8. On page 152, section 62.4.1.4, change Components::Events to
Components::Notification


Issue 3997: No user access to filterable body in CCM spec. (components-ftf)

Click
here for this issue's archive.
Source: Open Networks Engineering (Mr. Jean-Christophe Dubois, jcd(at)one.com)
Nature: Uncategorized Issue
Severity:
Summary:
The CCM spec seems to have make the choice to prevent the component
implementor to fill in the filterable body part of a structured event sent
to the a notification channel.

What are the reasons of this choice?

2 remarks:
- The filtrable body part of a structured event seems to be the most usefull
part of the event. Not using it (or leaving it to the container to fill in
from obscure sources) doesn't seem to make a lot of sense.
- Other standard bodies (like T1M1.5) are using the filterable body part of
the event and are making the remainder of the boby (where the EventBase
derived value type should be put) optional and unnecessary.

Any comment/explanation of the choice is welcome.

Resolution: See issue 3938. rejected
Revised Text:
Actions taken:
October 25, 2000: received issue
May 13, 2002: closed issue

Issue 3998: No Access to event filter form component (components-ftf)

Click
here for this issue's archive.
Source: Open Networks Engineering (Mr. Jean-Christophe Dubois, jcd(at)one.com)
Nature: Uncategorized Issue
Severity:
Summary:
As the CCM spec is not giving any mean (or very little) to fill in the
filterable body part, no services are provided for a component to set its
event filters when sending or receiving events.

This seems to be a very usefull service to me for application such as:

- limiting the number of events emitted by a component based on a config
parameter (like messages with priority > config value can go out, other are
discarded. when the config value change at runtime the filter could also
change.
- filtering events received from a notification channel.

I agree that these 2 function could be achieve by user code in the component
but it means that unecessary events are passed between components and the
netwok load and CPU load is higher than necessary.

I guess the point I am trying to make is that using the notification service
without using filters and/or filterable body doesn't seem to make a lot of
sense.

What is the intend of the sepc on this issue?

Resolution: See issue 3938. rejected
Revised Text:
Actions taken:
October 25, 2000: received issue
May 13, 2002: closed issue

Issue 4011: grammar rule for home_executor_body contradicts description (components-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
In ptc/99-10-04 on page 15 the grammar rule of home_executor_body in chapter
60.7 "Home Executor Definition" contains bars implying alternatives. These
bars have to be removed to match the subsequent description.

Resolution: see below
Revised Text: In ptc/99-10-04 section 60.3 page 60-12 and section 60.7 page 60-15, replace (9) < home_executor_body > ::= < home_impl_dcl > | [ < abstract_storage_home_binding > ] | [ < stored_on_dcl > ] | < executor_def > | [ < abstract_storage_home_delegation_spec > ] | [ < executor_delegation_spec > ] | [ < abstract_spec > ] by (9) < home_executor_body > ::= < home_impl_dcl > [ < abstract_storage_home_binding > ] [ < stored_on_dcl > ] < executor_def > [ < abstract_storage_home_delegation_spec > ] [ < executor_delegation_spec > ] [ < abstract_spec > ]
Actions taken:
November 1, 2000: received issue
May 13, 2002: closed issue

Discussion:
The alternatives in the OMG CIDL grammar rule home_executor_body (9) must
be removed to match the expected semantics described in section 60.7.


Issue 4024: Typo in assembly element paragraph heading (components-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
See the CORBA Components Model specification, orbos/99-07-01, paragraph
10.6.2.52, page 10-365.  See also the DTD appendices document, orbos/99-08-05.

The title of this paragraph heading is incorrect.  The element is "usesport",
not "usingcomponent".  It has occasionally been hard to find the description
because of this textual error.

Resolution: see below
Revised Text: In ptc/99-10-04 section 69.7.2.51 page 69-321, replace "usingcomponent" by "usesport". In ptc/99-10-04 section 69.7.2.52 page 69-321, replace the title "The usingcomponent Element" by "The usesport Element".
Actions taken:
November 7, 2000: received issue
May 13, 2002: closed issue

Discussion:
Require to replace "usingcomponent" by "usesport" in the chapter 69 of ptc/99-10-
04 in order to correct this typo.


Issue 4025: New component issue: connection failure recovery (components-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
The CCM does not describe the behavior of the system in case of various fault situations. In particular, this issue only concerns itself with the recovery mechanisms of event subscriptions or facet receptacles that were automatically established through an assembly. While it is outside the scope of the CCM to describe general fault behavior, it is felt that recovery mechanisms (or their absence) should be explicitly identified for connections automatically built between ports. Otherwise, why go to the trouble of building them, since error detection and recovery wrappers would be needed around any use of them? 

The following scenario highlights the various situations. It assumes that the components are deployed in separate processes on different platforms so that one of the two components remains operational despite failure or inaccessibility of the other. The scenario primarily deals with the recovery of an interface provided by Component X and used by Component Y. Appropriate questions related to event channels are also given where applicable. Event channels are themselves more difficult because the notification services adds yet another object to the set that may fail during the scenario. 

Scenario: Component X declares that it provides an interface A. Likewise, Component Y declares that it uses interface A. (Or, X emits or publishes event A to which Y subscribes.) Instances of the components are combined through an assembly. Now, the assembly description indicates that a connection is to be built between X and Y. That is, the descriptor defines connections in which a connection element defines the association. Said element’s providesport acquires X’s facet A and assigns that through the usesport to Y’s interface receptacle. (For events, read these as emitsport or publishesport and subscribesport.) 

The following questions arise: 

When does the connection take place, during assembly construction or on reference to the port’s receptacle inside Y? That is, is this immediate or lazy initialization? When are event channels created or attached? Can the producer delay creation or attachment until a push() operation? Can the consumer accomplish the creation? Can an m:n emitter to consumer notification matrix be built? (The specification is unclear on this.) 
What happens if the interface reference to A cannot be acquired because (1) X has failed or is inaccessible, (2) X fails during the get operation, or (3) X returns a nil reference? 
What happens during run-time when Y invokes an operation on A and: 
The application server process containing X has terminated (COMM_FAILURE returned)? 
Derived valuetype arguments cannot be marshalled (MARSHALL/BAD_PARAM returned)? 
The underlying object supporting A in X has been deleted (INV_OBJREF returned)? 
An unexpected application error occurs (UNKNOWN returned)? 
With respect to error detection and recovery: 
How does one indicate the set of objects that can detect the error? Possible objects are Y, Y’s home, Y’s container, X’s container, X’s home, the assembly, an independent third party. 
How does one indicate the set of objects that can recover the error? 
How does one indicate whether the error should be detected? 
How does one indicate whether recovery should be attempted? 
How does one indicate the recovery strategy, especially if there are several objects that can recover the error? 
If the strategy has multiple fallback conditions, should this logic be placed into a single object or should it be given as a precedence-ordered list? 
Where should this information be specified: IDL, CIDL, or XML? 
What are the implications when the components have different type and container semantics? 
Let component X be transient and component Y be an entity. If component X fails, can a new X be safely created for its corresponding Y? 
Assume a new X was created and the old X still exists but became inaccessible. Can the old X be detected and one of the X’s be deleted [dismissed] after the old X is again accessible? 
Assume a request to X completes successfully in X but fails during the reply to Y. Can the operation be retried or the previous results retransmitted, either on the old X after recovery or on a new X? 
In these questions, what happens if X is an entity and Y is transient? 
In these questions, what happens if Y aborts rather than X? 

Ideally, it would be nice if either the IDL extensions or the CIDL constructions permitted specification of an error recovery wrapper around access to a receptacle (or event channel). This could actually work as a general mechanism for any component and not just components grouped in an assembly. The wrapper would be a specialized object implemented specifically in the context of the component or assembly that provided the desired error detection and recovery behavior. It would be a proxy similar to a stub: it would have the same interface as the target object to which it delegates. Errors would be caught (as described) and recovered automatically, if possible. This includes the initial reference to an object, which would now be built or acquired dynamically at run-time rather than semi-statically at assembly instantiation. Multiple inheritance, in languages that support it, would be very useful in standardizing proxy behavior. The component DTD could be used to specify desirable run-time operation and associated characteristics.

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

Discussion:
The CORBA Component Model Specification does not address fault tolerance
problems in general. However, a CCM implementation is free to use for instance
the OMG Object Transaction Service (OTS) and the OMG Fault Tolerance
Service defined in CORBA 2.5 in order to address any failure and recovery
problems during the deployment and execution of CCM applications. If a
standard for a Fault Tolerant CORBA Component Model is strongly required by
the industry, then this would be addressed by a future RFP.


Issue 4073: Components, Facets, and Object References Unclear (components-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
See the CORBA Components specification, orbos/99-07-01, chapters 5, 6,
7, and 9.  The semantics, life cycle, and mechanisms behind components,
facets, "regular" objects, and their related object references is weakly
specified.  In particular, it is not clear how a component interacts
with a container to generate an object reference to a facet, especially
a facet in a secondary segment.  The description of component
identifiers indicates that the component object id, the facet number,
and the segment number are used to generate the facet's object reference
(or perhaps only the ObjectId), but the sequence of operations is not
given.  It appears that not all the necessary methods have been formally
specified, nor are the code generation examples adequate for this
siutation.
 
Consider the following IDL:

   interface A {};
   component C
   {
       provides A a_facet;
       A get_another_A();
   };

What is the life-cycle of the A object returned as the provided facet? 
Is it limited to the life-cycle of the component?  Is the member
operation returning an object of the same type as a provided facet
permitted?  Should this return the same object as the facet?  If not, is
the life-cycle of this extra object limited to the life-cycle of the
component?  Should such objects be considered facets, even if not
explicitly declared such (which, please note, provides the equivalent of
the deprecated "provides multiple" capability)?  What information needs
to be encoded in its object reference, especially for component
dependency?  How will the context for this be established, and are any
additional interfaces or operations required to accomplish this?

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

Discussion:
The example of this issue is not valid because a component can’t have
operations. But if this operation is in one of the supported interfaces than the
statement of this issue remains.
An operation can return an object reference i.e. an interface of course. If this
interface should be one of the facets of the component than it is not appropriate to use such an operation to get a reference to it. Instead of this it is better to use
the provide operation of the component interface itself.
The concrete values of the object reference (e.g. ObjectID) are implementation
specific and hidden by the container. A component should not create object
references of its facets by its own.
However it is possible for a component to get an object reference of one of its
interfaces. This can be achieved for instance via the get_CCM_object() method
of the context interface. And this reference can be returned by an operation as
shown above.
Regarding the issue questions, the lifecycle of the object reference returned by
such an operation is decoupled from the object that is referenced by this
reference. The object that is referenced by this reference could be any of this
proposed ones. It can be a facet or it can be another interface implementation.
There are no constraints about this.


Issue 4075: Inter-component type semantics unclear (components-ftf)

Click
here for this issue's archive.
Source: Iconixx (Mr. Thomas S. Hawker, )
Nature: Uncategorized Issue
Severity:
Summary:
The semantics of components of a particular type (session, entity)
residing in a compatible container type that access components of a
different type residing in a corresponding but different compatible
container type are unclear. Are there any expected or preferred
combinations? Are any disallowed or discouraged? See, for example, the
discussion under issue 4025 on automated recovery. In his replies, Mr.
Dubois seems to assume that entity components create transient (service
or session) components but not the reverse. In the telecommunications
domain, however, a session object may share access to an entity, and
then create additional entities based on external events, even though
the session itself is not persistent. Could someone please articulate
the possibilities and their utility (or lack thereof)?

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

Discussion:
It is not intended to disallow some of the combinations of the component
categories. As long as two components of any category are connected they can
interact.
As long as a component can get access to the Home Finder (i.e. using
resolve_initial_references()) it is possible for a component to get access to a
home of a particular type and to use the create() operation of that home.


Issue 4077: Component assemblies do not follow composition pattern (components-ftf)

Click
here for this issue's archive.
Source: Iconixx (Mr. Thomas S. Hawker, )
Nature: Uncategorized Issue
Severity:
Summary:
I have noticed that assemblies do not follow the composition pattern. 
Thus, assemblies cannot themselves be used as building blocks for other
assemblies.  I think part of this comes from the fact that installation
and management of assemblies is mostly "magic" done behind the scenes by
various installation and support utilities.  In order to "reuse" an
existing assembly, one must copy an existing assembly definition (I
guess constructed completely by hand) to a new definition, which must
then be tailored to incorporate the new strategy and pieces.  This seems
counter-intuitive, besides being manually intensive, for if an assembly
does useful work, why would I want to expose its internal details just
to take advantage of that usefulness?  As pointed out by Mr. Dubois in
issue 3939, because all of that "magic" is not specified by various
formal interfaces, it is highly likely approaching certainty that
assemblies will only work for the particular vendor on which they were
built.  Since I believe the intention was to promote interoperability in
general and as much code automation as possible for components in
particular, it would seem that we want to restrict the "magic" by taking
the formalisms behind assemblies to another level.<p>
 
I suggest that, just as a <i>composition</i> exists to tie a component,
its home, and various configuration properties together, we can create
for the CIDL grammar productions for an <i>assembly</i> to tie multiple
compositions together.  Subsequently, an assembly could be treated as a
composition, to be used by other assemblies, only exposing selected
facets or events from its constituent entities.  I think there are a
number of advantages to this approach:  (1) It solves certain semantic
ambiguities with assemblies, for instance whether facets, receptacles,
and events are private or public to the assembly.  (2) The assembly
implementation, its XML, and its relation to its constituents and home,
can be generated automatically from the CIDL description [we have been
working on this extensively].  Our approach is to use an assembly
exactly like a composition, as the realization of a component and home
definition.  Our research efforts imply that all of the assembly
component and home code can be automatically generated - no user
tailoring will be needed. (3) Because the assembly now acts as a
component (composition), it can be reused by other assemblies without
knowledge of its internal structure.  (4) Activation of an assembly
appears the same as for any other component;  it merely requires formal
specification of previously undefined interfaces to accomplish it, thus
promoting portability and interoperability.  (5) The assembly
"deployment magic" becomes exposed through the interfaces above, thus
removing several of the deployment tools and servers/services identified
in the specification. The only real drawbacks I see are the complexity of the assembly
productions (we can really get out of control with this) and that
assemblies now have an actual code base rather than being "magical
creatures" managed by the deployment tools.  I guess these are both
two-edged swords.  There might be a run-time footprint change for all of
these extra interfaces, but those had to be lying around in other places
anyway.

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

Discussion:
In order to reuse an existing assembly, one must copy the associate component
assembly descriptor to create a new component assembly descriptor. Here,
specific vendor tools could provide a composition pattern in order to simplify the
reuse of component assembly descriptors.
The CORBA Component Model specification does not address the composition
of assemblies, i.e. assemblies are not components. If a standard for assembly
composition is strongly required by the industry, then this would be addressed by
a future RFP.


Issue 4078: Component assembly templates (components-ftf)

Click
here for this issue's archive.
Source: Iconixx (Mr. Thomas S. Hawker, )
Nature: Uncategorized Issue
Severity:
Summary:
In a complex distributed environment, the implementation of highly
available and highly reliable services requires redundant placement of
software components in all their manifestations.  Assemblies provide a
nice, convenient way of specifying the deployment and activation of
components and the connections that relate them for a particular
purpose. Now, for various reasons and Fault Tolerant CORBA
notwithstanding, in corporate reality this sequence and specification
will occur in multiple places in basically identical fashion.  About the
only thing that changes are the host names and their network addresses; 
everything else from the hardware configuration to the size of the disk
drives and file systems is (and inherently must be) exactly the same
among all deployments.  This, for example, is one technique to support
geographic site failover.
 
My question is, has anyone thought of a two or more stage XML process,
one in which the package or assembly composition and deployment XML is
specified as a template or configurable, parameterized entity, and
another where the parameters have been substituted for "finalization"? 
This can occur at two distinct points in the life-cycle:  one set of
substitutions occurring when an artifact is deployed (installed?) on the
various computer systems involved, and another when the home [and
possibly individual instances] of the artifacts are activated
(instantiated?) to run on those computer systems.  My work in the
telecom and defense industries has show that deployment of anything is
rarely a singleton event;  there are always redundancies, replications,
and backups to take into account.  Templates seem to provide a nice
solution to all of the manual editing required.

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

Discussion:
The CORBA Component Model specification does not define a standard for
dealing with assembly templates. However, specific vendor tools could always
deal with assembly templates. If a standard for assembly templates is strongly
required by the industry, then this would be addressed by a future RFP.


Issue 4079: Component home polymorphism (components-ftf)

Click
here for this issue's archive.
Source: Iconixx (Mr. Thomas S. Hawker, )
Nature: Uncategorized Issue
Severity:
Summary:
See the CORBA Component Specification, orbos/99-07-01, and Persistent
State Service issue #4074.  Is there any reason why homes cannot support
(manage) multiple component types?  This seems like a perfect case for
polymorphism;  the only time you really need a new home type is when you
change the behavior or have some other incompatibility.  Is it possible
to do instances of homes, one per component type (perhaps instances of
components acting as managers for other components)?  I simply do not
understand why these are one-to-one with parallel but distinct
derivations.  I realize the requirements were to maximize code
generation, but I don't see that this is a conflict.

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

Discussion:
The CORBA Component model explicitly separates the component and home
concepts, i.e. a component could not be a home and a home could not be a
component. In the CCM, a home type manages only one component type and a
component type could be managed by several home types. However the CCM
does not avoid a home implementation to manage several component
implementations. In this use case, these component implementations must
implement at least the component type managed by the home type. But these
component implementations could also implement derived component types as
shown in the following IDL example:
component C1 { ... };
component C2 : C1 { ... };
valuetype K : ::Components::PrimaryKeyBase { ... };
home H1 manages C1 primarykey K { ... };
and
. CI1 is an implementation of the C1 type;
. CI2 is an implementation of the C2 type but also of the C1 type transitively as
C2 inherits from C1; and HI1 is an implementation of the H1 type and must manage at least C1
instances.
As both CI1 and CI2 implement C1 then HI1 could manage both CI1 and CI2
instances. Then it is not required to define a specific home type to manage C2
components.
Defining a home type H2 managing C2 components is only required if the IDL
designer wants to for instance:
. identity its components with a primary key completely different from K (or a
sub-type of K),
. define new explicit operations like factory and finder ones, and/or
. provide to clients a resulting H2Implicit interface, i.e. an interface that
provides standard create, finder and remove operations dedicated to the C2
type.


Issue 4080: Component home interface inheritance (components-ftf)

Click
here for this issue's archive.
Source: Iconixx (Mr. Thomas S. Hawker, )
Nature: Uncategorized Issue
Severity:
Summary:
The definition of homes does not permit interface inheritance.  It
appears this is an oversight as the omission seems unreasonable and
counter-intuitive, especially since homes must follow a parallel
derivation hierarchy with their component types.  I have found cases in
which a home would expose the same interface as its component in which
the home subsequently delegates to a specific component instance (even a
persistent instance) however selected. (The component instance may or
may not be hidden from the client.)  Interfaces are a perfect mechanism
whereby the operational signatures could be standardized, thus
eliminating potential errors caused by changing one but not the other.
This could be accomplished using a supports clause in the inheritance
specification similar to that of valuetypes.

Resolution: see below
Revised Text: In ptc/99-10-03 section 3.4 page 3-18, insert the new production for <supported_interface_spec> into <home_header>: (126) < home_header > ::= "home" < identifier > [ < home_inheritance_spec > ] | [ < supported_interface_spec > ] "manages" < scoped_name > [ < primary_key_spec > ] In ptc/99-10-03 section 3.17.1 page 3-58, add the new bullet 6: . Home declarations may specify a list of interfaces that the home supports. In ptc/99-10-03 section 3.17.2.1 page 3-58, insert the new production for <supported_interface_spec> into <home_header>: (126) < home_header > ::= "home" < identifier > [ < home_inheritance_spec > ] | [ < supported_interface_spec > ] "manages" < scoped_name > [ < primary_key_spec > ] In ptc/99-10-03 section 3.17.2.1 page 3-58, replace . an < inheritance_spec >, consisting of a colon ':' and a < scoped_name > that denotes a previously defined home type. by . an optional < home_inheritance_spec >, consisting of a colon ':' and a single < scoped_name > that denotes a previously defined home type. In ptc/99-10-03 section 3.17.2.1 page 3-58, add the bullet 4: . an optional < supported_interface_spec > that must denote one or more previously defined IDL interfaces. In ptc/99-10-03, replace chapter 10 "Interface Repository" by the content of the ccm/2001-08-01 document which contains the new CORBA::ComponentIR::HomeDef interface, and the associated CORBA::ComponentIR::Container::create_home operation. In ptc/99-10-04 page 61-56, add the new section: 61.7.1.3 Supported interfaces A home definition may optionally support one or more interfaces. When a home definition header includes a supports clause as follows: home < home_name > supports < interface_name > manages < component_name > { < explicit_operations > }; the resulting explicit interface inherits both CCMHome and any supported interfaces, as follows: interface < home_name >Explicit : Components::CCMHome, < interface_name > { < equivalent_explicit_operations > }; The home implementation shall supply implementations of operations defined on supported interfaces. Clients shall be able to widen a reference of the home's resulting explicit or equivalent interface type to the type of any of the supported interfaces. Clients shall also be able to narrow a reference of type CCMHome to the type of any of the home's supported interfaces. In ptc/99-10-04 section 61.7.4 page 61-58, add: Given a derived home definition supporting one or more interfaces, as follows: home < home_name > : < base_home_name > supports < interface_name > manages < component_type > { < explicit_operations > }; The resulting explicit interface has the following form: interface < home_name >Explicit : < base_home_name >Explicit, < interface_name > { < equivalent_explicit_operations > };
Actions taken:
November 24, 2000: received issue
May 13, 2002: closed issue

Discussion:
Allow homes to support multiple interfaces as components support multiple
interfaces. Require to update OMG IDL Grammar, the Interface Repository, and
IDL equivalent mapping for homes to explicit home interfaces.


Issue 4081: Problems with the Components Notification Event Interface (components-ftf)

Click
here for this issue's archive.
Source: Iconixx (Mr. Thomas S. Hawker, )
Nature: Uncategorized Issue
Severity:
Summary:
The CCM standard indicates that all CCM Event functions will delegate to
the container. Chapter 7 of the CCM Volume 1 further dictates the
interface the container will provide to the component, called
Components::Notification::Event, referred to as the "Event Interface"
hereafter. This interface contains many problems and does not address
all the required functionality. The problems are listed below:<p>

*  The create_channel() method returns an EventConsumerBase for the
   publisher to use to publish events to the channel. It is not possible
   for the Event Interface to construct a concrete EventConsumerBase,
   specifically the interface defined as
   &lt;publishing_component&gt;EventConsumers::
   &lt;event_type&gt;Consumer (per section 5.6.6 and 5.6.7 giving the
   publisher and emitter IDL expansion). The Event::obtain_channel()
   method has the same problem
*  The subscribe() method implies that the container supplying events
   will hold the supplier proxy that will be used to send events to the
   subscriber’s EventConsumerBase. This is an inefficient model. Also,
   this model is in direct conflict with the listen() method, which
   supports a more efficient model (see next bullet).
*  The standard does not provide any documentation on when a consumer
   would call the listen() method. The standard also does not provide a
   means for the consumer’s component to realise the "csmr_name", the
   name used to find the ConsumerAdmin from the Naming Service [see
   possibly related issue #3940]. Nor does the standard indicate when
   the ConsumerAdmin would have ever been added to the Naming Service.
   It might be possible that this would work for emitters, but it does
   not work for publishers (the standard dictates that a consumer cannot
   distinguish between being connected to an emitter or a publisher).
   This method does imply that the consuming component will have a proxy
   local to its container, separate from the publishing component’s
   container (contradictory to the subscribe() method, see previous
   bullet).
*  The push() method does not provide a means to indicate which channel
   the event should be pushed to [see possibly related issue #3928].<p>

The Event Interface is a local interface ­ that is, the client will
never see this interface, and so it is possible to hide the use of this
interface inside the generated code and thus replace the interface.
Internally we have added a PortManager interface to be used in place of
the Event Interface. This interface provides better management of the
Event Channels and it also manages receptacle connections. Two
interfaces will derive from the PortManager, a TransientPortManager and
a PersistentPortManager. These two derived interfaces will permit
connections between components to be managed as defined by the type of
the container. Where meaningful, this permits the port connections to be
made persistent as part of the overall state so that connections
(specifically, notification channels) can be more reliably and robustly
managed. The CCM2Context::get_event() operation is replaced by
get_port_manager()

Resolution: See issue 3937. rejected
Revised Text:
Actions taken:
November 24, 2000: received issue
May 13, 2002: closed issue

Issue 4116: Extended Interface Repository (components-ftf)

Click
here for this issue's archive.
Source: Zuehlke Engineering (Mr. Frank Pilhofer, fpilhofer2008(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
 I am somewhat surprised over the ExtendedIR interface in 00-11-01.
I am very aware of problems with extensibility in the Interface Repo-
sitory. In the past, a lot of problems have been caused because modi-
fications like InterfaceDef::is_abstract have been worked in and out.
We certainly desperately need a backwards-compatible Interface Repo-
sitory.

 This is unachievable with version pragmas, because then a client's
is_a inquiries with "old" Repository Ids will fail, and the client
will refuse to talk any further.

 Backward compatibility is instead achieved by not changing data types
(such as InterfaceDescription) and by not changing the signature of
existing attributes and operations.

 Adding new types that are used by new operations on existing interfaces
does not break compatibility, because the client will simply be unaware
that there are more operations than it knows of (such as describe_inter-
face_2_3).

 Whether changing interfaces sensible is debatable, surely it's more
consistent to use derived interfaces instead -- this has the least im-
pact on compatiblity.

 In that light, I wonder whether the proposal in 00-11-01 gets us any
further. It adds more fixed interfaces in another module, and this new
ExtendedIR module is just as static as the old ones have been. If any
further changes were necessary, backwards-incompatible changes were
just as necessary.

 The proposal in 00-11-01 also adds a lot of unnecessary verbose baggage
with its use of "_extended_" everywhere, and its usage of multiple inheri-
tance from the original interfaces is confusing.

 Yet there is one item from 00-11-01 that I like much better than the
proposal in 99-10-03, and that is the usage of AbstractInterfaceDef and
LocalInterfaceDef. I think that's the way to go.

 Therefore, I tend to vote against issue 3233 and its proposed resolution
in 00-11-01.

 Rather, I propose to go back to the original version instead, and

  - to add AbstractInterfaceDef, LocalInterfaceDef and the related
    container operations
  - to add an AttributeWithExceptionsDef and InterfaceDef::create_
    attribute_with_exceptions and ValueDef::* operations.

 Whether the Interface Repository should be moved to a different module
should be a separate discussion. I support the idea, but I don't think
that the implementation should be forced to offer access to the IFR
using both the CORBA:: and IR:: modules.
 Note that vendors could still offer the old interfaces in their imple-
mentation.

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:
December 19, 2000: received issue
May 13, 2002: closed issue

Discussion:
orbos/00-11-01 is an old working draft document which is replaced by ccm/2001-08-
01. All sub-issues listed by this issue are resolved by the ccm/2001-08-01
document.


Issue 4136: ComponentIR Interface fixes (components-ftf)

Click
here for this issue's archive.
Source: Zuehlke Engineering (Mr. Frank Pilhofer, fpilhofer2008(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
While reviewing the ComponentIR interfaces in 00-11-01, I have found
some problems with it. (These are unrelated to the current discussion
about the Interface Repository itself.)

Many interfaces inherit Contained::describe(), which is supposed to
return information about the element. In the basic IFR, this data is
designed to contain all possible information about that type. This
is very convenient, since then a map mapping RepositoryIds to
Contained::Description contains all of the IFR's information.

By referring to InterfaceDefs rather than RepositoryIds, the client
will need to store that association elsewhere, or repeatedly invoke
the Interface Repository.


Suggested resolution:
- In ProvidesDescription, replace
    InterfaceDef interface_type
  with
    RepositoryId interface_type

- Ditto for UsesDescription

- In EventDescription, replace
    ValueDef event
  with
    RepositoryId event

- In ComponentDescription, replace
    ProvidesDefSeq provides_interfaces
    UsesDefSeq uses_interfaces
    EmitsDefSeq emits_events
    PublishesDefSeq publishes_events
    ConsumesDefSeq consumes_events
  with
    ProvidesDescriptionSeq provides_interfaces
    UsesDescriptionSeq uses_interfaces
    EmitsDescriptionSeq emits_events
    PublishesDescriptionSeq publishes_events
    ConsumesDescriptionSeq consumes_events

- In PrimaryKeyDescription, replace
    ValueDef primary_key
  with
    RepositoryId primary_key

- In HomeDescription, replace
    PrimaryKeyDef primary_key_def
    FactoryDefSeq factories
    FinderDefSeq finders
  with
    PrimaryKeyDescription primary_key
    OpDescriptionSeq factories
    OpDescriptionSeq finders


Next, all parts of the "basic" Interface Repository are mutable, but
most attributes of the Components interfaces are declared as readonly.
I propose to remove the readonly modifier from

- ProvidesDef::interface_type
- UsesDef::interface_type
- UsesDef::is_multiple
- EventDef::event
- ComponentDef::supported_interfaces
- ComponentDef::base_component
- ComponentDef::provides_interfaces
- ComponentDef::uses_interfaces
- ComponentDef::emits_events
- ComponentDef::publishes_events
- ComponentDef::consumes_events
- PrimaryKeyDef::primary_key
- HomeDef::base_home
- HomeDef::managed_component
- HomeDef::primary_key
- HomeDef::factories
- HomeDef::finders


Last but not least, there seems to be some confusion about Primary Keys.
When a Home is created with Repository::create_home, a ValueDef should
be passed, while the terminology seems to dictate a PrimaryKeyDef instead.
You can get a PrimaryKeyDef using HomeDef::create_primary_key, but that
would be a chicken-egg scenario.

Proposed resolution:

- Change the ValueDef in Repository::create_home to PrimaryKeyDef
- Move the create_primary_key() operation from HomeDef to Repository

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 5, 2001: received issue
May 13, 2002: closed issue

Discussion:
orbos/00-11-01 is an old working draft document which is replaced by ccm/2001-08-
01. All sub-issues listed by this issue are resolved by the ccm/2001-08-01
document.


Issue 4140: Components FTF: TypeCodeFactory (components-ftf)

Click
here for this issue's archive.
Source: ZeroC (Mr. Bernard Normier, bernard(at)zeroc.com)
Nature: Uncategorized Issue
Severity:
Summary:
The third part of the adopted CCM submission (orbos/99-07-03)
moves all the create_..._tc operations from the ORB interface
to a new PIDL interface, CORBA::TypeCodeFactory.

This change breaks source-compatibility: source code that creates
typecodes with a pre-CORBA 3.0 ORB will need to be updated to use
a CORBA 3.0 ORB with such a TypeCodeFactory interface.

And there is no clear benefit from this update:
 - ORB is still PIDL -- it even creates an additional PIDL
   interface.
 - type code kinds are not more extensible (TCKind is still an
   enum)

I suggest to undo this update, i.e. keep the create_..._tc
operations on the CORBA::ORB interface.

Resolution: see below
Revised Text: In ptc/99-10-03 section 4.5.2 page 4-19, remove TypeCodeFactory from the list of reserved ObjectIds for the CORBA::ORB::resolve_initial_references operation. In ptc/99-10-03 section 4.5.2 page 4-20 table 4-1, remove TypeCodeFactory from the list of reserved ObjectIds for the CORBA::ORB::resolve_initial_references operation. In ptc/99-10-03 section 10.7.1 page 10-67, replace TypeCodeFactory by CORBA::ORB. In ptc/99-10-03 section 10.7.3 page 10-69, replace TypeCodeFactory by CORBA::ORB. In ptc/99-10-03 section 10.7.3 page 10-69, replace interface TypeCodeFactory { by interface ORB { In ptc/99-10-03 section 10.7.3 page 10-69, remove the text A reference to this interface can be obtained from the resolve_initial_references operation by using the argument "TypeCodeFactory" In ptc/99-10-03 section page 10-91, remove the text // The TypeCode related part of interface ORB moved to // the TypeCodeFactory interface. // A reference to this interface can be obtained from // resolve_initial_references with argument "TypeCodeFactory". In ptc/99-10-03 section page 10-91, replace interface TypeCodeFactory { // PIDL by interface ORB { // PIDL
Actions taken:
January 9, 2001: received issue
May 13, 2002: closed issue

Discussion:
All create_..._tc operations are moved back to their original CORBA::ORB
interface. The CORBA::TypeCodeFactory interface is removed to not break
source-compatibility, i.e. exciting CORBA 2.4.2 source code creating TypeCodes.
This also allows one to implement CCM without modifying existing CORBA 2.4.2
ORBs.


Issue 4203: CCM : Session2Context and Servants (components-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
How to activate servants by only using the Session2Context interface from
the Extended module? It only offers operations to create references like
create_ref() and create_ref_from_id() similar to those from the POA but no
means to activate servants are available in the whole container API!

Resolution: see below
Revised Text: In ptc/99-10-04, insert the following paragraph after the description of the create_ref() operation in section 62.4.2.1, page 62-156: “Invocations on the new object reference are delivered to the appropriate segment of the component that invokes this operation. The Repository Id must match the Repository Id of the component itself, one of its bases, one of its supported interfaces, or one of its facets.” In ptc/99-10-04, section 62.4.2.1, page 62-155, replace all occurences of PortableServer::ObjectId with CORBA::OctetSeq in the Session2Context interface.
Actions taken:
February 16, 2001: received issue
May 13, 2002: closed issue

Discussion:
Object references and active components are managed by the container only.
This interface is not supposed to allow activation of servants or components.
Invocations on object references created through this interface are delivered by
the container to the current component that invokes this operation. A clarifying
paragraph is added.
Also, using the ObjectId type of the PortableServer module is inappropriate.
Replace with CORBA::OctetSeq.


Issue 4204: CCM : Session2Context naming (components-ftf)

Nature: Uncategorized Issue
Severity:
Summary:
Is there any reason to name the context interface for extended session
components as Session2Context in module Components::Extended? Why not simply
SessionContext like in the Basic module?

Resolution: see below
Revised Text: In ptc/99-10-04, section 62.3, page 62-137, change the paragraph “Unless otherwise indicated, all of these interfaces are defined within the Basic module embedded within the Components module.” to read “Unless otherwise indicated, all of these interfaces are defined in the Components module.” In ptc/99-10-04, section 62.4, page 62-148, change the sentence “Unless otherwise indicated, all of these interfaces are defined within the Extended module embedded within the Components module.” to read “Unless otherwise indicated, all of these interfaces are defined in the Components module.”
Actions taken:
February 16, 2001: received issue
May 13, 2002: closed issue

Discussion:
The intent was to remove the nested Basic and Extended modules. However,
references to the Basic and Extended modules have not been removed from the
document. This needs to be done.


Issue 4214: CCM: usage of the MOF profile (components-ftf)

Click
here for this issue's archive.
Source: Humboldt-Universitaet (Mr. Martin von Loewis, loewis(at)informatik.hu-berlin.de)
Nature: Uncategorized Issue
Severity:
Summary:
The CCM MOF IR draft (ptc/99-10-05) uses UML to denote the MOF model
of the IR. Without missing elaboration, it is not possible to mentally
construct the metamodel. For example, the enumeration, primitive, and
unchangeable stereotypes don't have a well-defined relationship to MOF
concepts. It seems that the MOF chapter should use the UML MOF profile
(ad/01-02-29). In addition, it would be desirable if a normative XML
document that defines the metamodel (following the MOF DTD) is
provided.

Resolution: see below
Revised Text: see pages 126 - 136 of FTF report for figures. Paste this paragraphs after figure 2-14. An instance of ComponentDef describes a CORBA component in an abstract manner. The definition contains a description of all features of a component which are visible from the outside. More precise, it defines all interfaces including interfaces which are implicit or used for event communication. In detail, the features of component which are visible to the outside are: · The component equivalent interface, containing all implicit operations, operations and attributes which are inherited by a component (also from supported interfaces) and attributes defined inside the component, · The facets of a component, i.e. all interfaces which are provided by the component to the outside, · The receptacles of a component, i.e. all interfaces which are used by a component, · The events, which a component can emit, publish or consume. If a component is going to be implemented, all these features must be handled by the component implementation. To provide a common basis for defining the related implementation definitions (as part of CIF) the abstract metaclass ComponentFeature is defined. The metaclasess ComponentDef, HomeDef, ProvidesDef, UsesDef and EventPortDef are defined as subclasses of the metaclass ComponentFeature. Also see pages 137 to 141 of the report
Actions taken:
March 1, 2001: received issue
May 13, 2002: closed issue

Discussion:
The metamodel was updated to resolve the issue. Enumeration is
used to denote an UML enumeration type which is allowed according to the
MOF profile. Unchangeable and ordered have been removed. Primitive is
used to refer to CORBA base types.


Issue 4269: IDL out parameters can't map to EJB? (components-ftf)

Click
here for this issue's archive.
Source: Progress Software (Mr. Alan Conway, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
Section 8.3.1 says "The signatures of the CORBA component operations are mapped to signatures of EJB remote interface methods following the IDL to Java mapping rules."

As far as I can see, this only works if the IDL signature has no out or inout parameters. The Holder classes for out and inout parameters cannot be used in an EJB interface signature because they need not be Serializable, which breaks the rules for an RMI compliant class. Even if they could the EJB stubs and skeletons would not implement their special return value behavior without modifications to the EJB spec.

Someone please tell me I've missed something!

Resolution: see below
Revised Text: In section 64.4, page 64-183, first bullet, add: Notice that "The home and remote interfaces of the enterprise bean's client view are defined as Java RMI interfaces. This allows the Container to implement the home and remote interfaces as distributed objects." One implication of this is that the signatures on methods on an EJB's remote interface can only include parameters with "in" semantics. That is, "out" and "inout" semantics for parameters is not allowed. As a consequence, the out and inout qualifiers for parameters in IDL interface method definitions are not included in the portion of Component IDL that can be mapped to an EJB definition. Note however that a Java client does not have to use an EJB view in order to access a CCM. Any Java client can access a CCM directly via its IDL interface using a standard Java ORB, such as the one built in to the JDK. This provides full access to all aspects of the CCM. Since the EJB view is derived using the IDL to Java mapping rules, the Java IDL interface is identical to the EJB view for all business operations. The only differences are in the operations mentioned in [##reference to the table of re-mapped functions for the EJB view] have slightly different names and signatures. In section 64.4.1, page 64-185, Mapping the component definition, fourth bullet, add: Only signatures whose parameters have an in qualifier are allowed. Signatures that include parameters with out or inout qualifiers shall be signaled as an error.
Actions taken:
April 12, 2001: received issue
May 13, 2002: closed issue

Discussion:
The fundamental problem appears to be that EJB/RMI is not able to express the
mapping of a Component IDL signature with out or inout parameters (given RMI's
pass by value semantics). Restrict the set of Component IDL signatures to be
included in the portion of Component IDL that is to be considered by the
specification to those that do not include out or inout parameters.


Issue 4307: CCM: Chapter 66 should be removed (components-ftf)

Click
here for this issue's archive.
Source: Humboldt-Universitaet (Mr. Martin von Loewis, loewis(at)informatik.hu-berlin.de)
Nature: Uncategorized Issue
Severity:
Summary:
Looking at ptc/99-10-04, it is not clear to me which parts of this
document are intended as normative.

For example, the introduction to chapter 66, "Component Container
Architecture", states that the presented design "is not the only
possible design choice." Consequently, it appears that the entire
chapter 66 is not intended as normative. However, looking at the
actual text, a reader might be easily confused into taking aspects of
the design as normative.

While this text was helpful in the submission to give readers an
insight how the submitters might design their implementations, it
should be removed from the specification, to really give implementors
the freedom of design choice that was apparently intended with the
submission.

Resolution: see below
Revised Text: In ptc/99-10-04 section 61.6.1 page 61-45, remove the text and is described in Section 66.4, "Event Management Integration," on page 66-252 In ptc/99-10-04 section 61.6.4 page 61-46, remove the text More detail is defined in Chapter 66, "Component Container Architecture", specifically Section 66.4, "Event Management Integration," on page 66-252. In ptc/99-10-04 section 62.4.1.4 page 62-154, remove the text If not, it is defaulted as described in Section 66.4, "Event Management Integration," on page 66-252. In ptc/99-10-04, remove the chapter 66.
Actions taken:
May 15, 2001: received issue
May 13, 2002: closed issue

Discussion:
The chapter 66 in ptc/99-10-04 is described in terms of "an exemplary design"
which "is not the only possible design choice" (see page 66-200). As this chapter
is not a normative part of the CCM, it is removed to allow implementors to select
their own appropriate design choices.


Issue 4329: "supports" terminology issue for CCM (components-ftf)

Click
here for this issue's archive.
Source: Object Management Group (Mr. Jon M. Siegel, siegel(at)omg.org)
Nature: Uncategorized Issue
Severity:
Summary:
. I don't 
think OMG specifications should use a single term in two distinctly 
different ways. The text of the issue starts with the sentence, 
"the Components spec and valuetype spec treat "supports" exactly 
**OPPOSITE** in semantics regarding widening/narrowing." and continues 
for about 3 or 4 paragraphs. Ed's comment should go in there too.

Resolution: rejected
Revised Text:
Actions taken:
May 18, 2001: received issue
May 13, 2002: closed issue

Discussion:
It seems to be agreed that the issue is not a technical one, as the usage of
"supports" for components is, in syntax and semantics, the same as for
valuetypes: the component/valuetype will offer all operations and attributes from
the supported interface. In both cases, "true" inheritance is not used because
inheritance should only be used within the same type hierarchy.
The difference with respect to widening is a side effect of using interface
inheritance for supported interfaces in equivalent IDL, and this is not easy to
avoid. The CCM FTF strongly opposes introducing a new keyword instead of
"supports" here.


Issue 4412: Component port introspection (components-ftf)

Click
here for this issue's archive.
Source: Zuehlke Engineering (Mr. Frank Pilhofer, fpilhofer2008(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
The Components::Navigation interface that is implemented by all
components provides introspection ("generic navigation") capabilities.
There are lots of use cases for introspection, so I wonder why there
is introspection for facets, but not for receptacles or event ports.
I suggest to add such introspection capabilities. All introspection
features should be alike as much as possible for ease of usage.

Resolution: see below
Revised Text: All the following revisions must be applied to the Chapter 61 of the document ptc/99-10-04. In section 61.4.3.3 page 61-34, replace valuetype FacetDescription { public CORBA::RepositoryId InterfaceID; public FeatureName Name; }; valuetype Facet : FacetDescription { public Object ref; }; typedef sequence<Facet> Facets; typedef sequence<FacetDescription> FacetDescriptions; by valuetype PortDescription { public FeatureName name; public CORBA::RepositoryId type_id; }; valuetype FacetDescription : PortDescription { public Object ref; }; typedef sequence<FacetDescription> FacetDescriptions; In the interface Navigation at page 61-34, replace FacetDescriptions describe_facets(); Facets provide_all_facets(); Facets provide_named_facets (in NameList names) raises (InvalidName); by FacetDescriptions get_all_facets(); FacetDescriptions get_named_facets (in NameList names) raises (InvalidName); At page 61-35, remove the description of the describe_facets operation. In the whole document ptc/99-10-04, remove all occurrences to the describe_facets operations. In the whole document ptc/99-10-04, replace all occurrences of provide_all_facets and provide_named_facets by respectively get_all_facets and get_named_facets. In section 61.5.3 page 61-43, add the following IDL definitions valuetype ReceptacleDescription : PortDescription { public boolean is_multiplex; public ConnectedDescriptions connections; }; typedef sequence<ReceptacleDescription> ReceptacleDescriptions; In the interface Receptacles page 61-43, add the following operations ReceptacleDescriptions get_all_receptacles (); ReceptacleDescriptions get_named_receptacles (in NameList names) raises(InvalidName); Before section 61.6 page 61-44, add the following operation descriptions get_all_receptacles The get_all_receptacles operation returns information about all receptacle ports in the component's inheritance hierarchy as a sequence of ReceptacleDescription values. The order in which these values occur in the sequence is not specified. For components that do not have any receptacles (e.g., a basic component), this operation returns a sequence of length zero. get_named_receptacles The get_named_receptacles operation returns information about all receptacle ports denoted by the names parameter as a sequence of ReceptacleDescription values. The order in which these values occur in the sequence is not specified. If any name in the names parameter is not a valid name for a receptacle in the component's inheritance hierarchy, the operation raises the InvalidName exception. A component that does not provide any receptacles (e.g., a basic component) will have no valid name parameter to this operation and thus shall always raise the InvalidName exception. In section 61.6.10 page 61-52, add the following IDL definitions valuetype ConsumerDescription : PortDescription { public EventConsumerBase consumer; }; typedef sequence<ConsumerDescription> ConsumerDescriptions; valuetype EmitterDescription : PortDescription { public EventConsumerBase consumer; }; typedef sequence<EmitterDescription> EmitterDescriptions; valuetype SubscriberDescription { public Cookie ck; public EventConsumerBase consumer; }; typedef sequence<SubscriberDescription> SubscriberDescriptions; valuetype PublisherDescription : PortDescription { public SubscriberDescriptions consumers; }; typedef sequence<PublisherDescription> PublisherDescriptions; In the Events interface page 61-52, add the following operations ConsumerDescriptions get_all_consumers (); ConsumerDescriptions get_named_consumers (in NameList names) raises (InvalidName); EmitterDescriptions get_all_emitters (); EmitterDescriptions get_named_emitters (in NameList names) raises (InvalidName); PublisherDescriptions get_all_publishers (); PublisherDescriptions get_named_publishers (in NameList names) raises (InvalidName); Before section 61.7 page 61-53, add the following operation descriptions get_all_consumers The get_all_consumers operation returns information about all consumer ports in the component's inheritance hierarchy as a sequence of ConsumerDescription values. The order in which these values occur in the sequence is not specified. For components that do not consume any events (e.g., a basic component), this operation returns a sequence of length zero. get_named_consumers The get_named_consumers operation returns information about all consumer ports denoted by the names parameter as a sequence of ConsumerDescription values. The order in which these values occur in the sequence is not specified. If any name in the names parameter is not a valid name for an event sink in the component's inheritance hierarchy, the operation raises the InvalidName exception. A component that does not provide any consumers (e.g., a basic component) will have no valid name parameter to this operation and thus shall always raise the InvalidName exception. get_all_emitters The get_all_emitters operation returns information about all emitter ports in the component's inheritance hierarchy as a sequence of EmitterDescription values. The order in which these values occur in the sequence is not specified. For components that do not emit any events (e.g., a basic component), this operation returns a sequence of length zero. get_named_emitters The get_named_emitters operation returns information about all emitter ports denoted by the names parameter as a sequence of EmitterDescription values. The order in which these values occur in the sequence is not specified. If any name in the names parameter is not a valid name for an emitter port in the component's inheritance hierarchy, the operation raises the InvalidName exception. A component that does not provide any emitters (e.g., a basic component) will have no valid name parameter to this operation and thus shall always raise the InvalidName exception. get_all_publishers The get_all_publishers operation returns information about all publisher ports in the component's inheritance hierarchy as a sequence of PublisherDescription values. The order in which these values occur in the sequence is not specified. For components that do not publish any events (e.g., a basic component), this operation returns a sequence of length zero. get_named_publishers The get_named_publishers operation returns information about all publisher ports denoted by the names parameter as a sequence of PublisherDescription values. The order in which these values occur in the sequence is not specified. If any name in the names parameter is not a valid name for a publisher port in the component's inheritance hierarchy, the operation raises the InvalidName exception. A component that does not provide any publishers (e.g., a basic component) will have no valid name parameter to this operation and thus shall always raise the InvalidName exception. In section 61.11.1 page 61-72, add the following IDL definition valuetype ComponentPortDescription { public FacetDescriptions facets; public ReceptacleDescriptions receptacles; public ConsumerDescriptions consumers; public EmitterDescriptions emitters; public PublisherDescriptions publishers; }; In the CCMObject interface page 61-72, add the following operation ComponentPortDescription get_all_ports (); In section 61.11.1 page 61-73, add the following description before the description of the get_component_def operation get_all_ports The get_all_ports operation returns a value of type ComponentPortDescription containing information about all facets, receptacles, event sinks, emitted events and published events in the component's inheritance hierarchy. The order in which the information occurs in these sequences is not specified. If a component does not offer a port of any type, the associated sequence will have length zero.
Actions taken:
July 16, 2001: received issue
May 13, 2002: closed issue

Discussion:
The issue is concerned with the limited and incomplete introspection support for
components (ref document ptc/99-10-04). While the CCMObject interface inherits
from the Navigation interface for introspecting facets (e.g. to get a listing of all
available facets) and the Receptacles interface for introspection and
manipulation of receptacles, there is no equivalent for event ports.
Introspection and type-generic port handling operations are required for dynamic
tools. Using information returned from the introspection operations, these tools
will be able to manipulate components (e.g. interconnect them) in a generic
manner.
This resolution describes a set of changes to the Events interface to support
generic introspection features for event ports. The types used for facet and
receptacle introspection are also updated in order to achieve a consistent
interface for all types of ports.
(1) Base type
A valuetype is added that will serve as base for all port descriptions. This is the
same as FacetDescription in the original document, containing the port name and
the Repository Id of the port type (i.e. an InterfaceDef for facets and receptacles
and an EventDef for emitters, publishers and consumers).
valuetype PortDescription
{
public FeatureName name;
public CORBA::RepositoryId type_id;
}; (2) Navigation
The Facet valuetype is renamed to FacetDescription for consistency. The
inheritance from PortDescription is adjusted.
valuetype FacetDescription : PortDescription
{
public Object ref;
};
In the Navigation interface, the superfluous operation describe_facets is
removed, types are adjusted for consistency, and also for consistency, the
provide_ prefix is changed to get_.
interface Navigation {
Object provide_facet (in FeatureName name)
raises (InvalidName);
FacetDescriptions get_all_facets ();
FacetDescriptions get_named_facets (in NameList names)
raises (InvalidName);
boolean same_component (in Object ref);
};
The semantics of all operations remain the same.
(3) Receptacles
A new valuetype ReceptacleDescription is introduced to carry information about
a receptacle port.
valuetype ReceptacleDescription : PortDescription
{
public boolean is_multiplex;
public ConnectedDescriptions connections;
};
typedef sequence<ReceptacleDescription> ReceptacleDescriptions;
The boolean value is_multiplex is TRUE if the port is a multiplex receptacle (uses
multiple), and FALSE otherwise. The connections variable holds a sequence of
ConnectionDescription values as already defined.
In the Receptacles interface, two operations are added to introspect receptacle
ports.
interface Receptacles {
ReceptacleDescriptions get_all_receptacles (); ReceptacleDescriptions get_named_receptacles (in
NameList names)
raises(InvalidName);
// other operations as before
};
The get_all_receptacles operation returns information about all receptacle ports
in the component's inheritance hierarchy as a sequence of
ReceptacleDescription values. The order in which these values occur in the
sequence is not specified. For components that do not have any receptacles
(e.g., a basic component), this operation returns a sequence of length zero.
The get_named_receptacles operation returns information about all receptacle
ports denoted by the names parameter as a sequence of ReceptacleDescription
values. The order in which these values occur in the sequence is not specified. If
any name in the names parameter is not a valid name for a receptacle in the
component's inheritance hierarchy, the operation raises the InvalidName
exception. A component that does not provide any receptacles (e.g., a basic
component) will have no valid name parameter to this operation and thus shall
always raise the InvalidName exception.
(4) Consumers
A new valuetype ConsumerDescription is introduced to carry information about a
consumer port.
valuetype ConsumerDescription : PortDescription
{
public EventConsumerBase consumer;
};
typedef sequence<ConsumerDescription> ConsumerDescriptions;
The consumer variable holds the object reference to the interface of the event
sink.
In the Events interface, two operations are added to introspect consumes ports.
interface Events {
ConsumerDescriptions get_all_consumers ();
ConsumerDescriptions get_named_consumers (in
NameList names)
raises (InvalidName);
// other operations as before
}; The get_all_consumers operation returns information about all consumer ports in
the component's inheritance hierarchy as a sequence of ConsumerDescription
values. The order in which these values occur in the sequence is not specified.
For components that do not consume any events (e.g., a basic component), this
operation returns a sequence of length zero.
The get_named_consumers operation returns information about all consumer
ports denoted by the names parameter as a sequence of ConsumerDescription
values. The order in which these values occur in the sequence is not specified. If
any name in the names parameter is not a valid name for an event sink in the
component's inheritance hierarchy, the operation raises the InvalidName
exception. A component that does not provide any consumers (e.g., a basic
component) will have no valid name parameter to this operation and thus shall
always raise the InvalidName exception.
(5) Emitters
A new valuetype EmitterDescription is introduced to carry information about an
emits port.
valuetype EmitterDescription : PortDescription
{
public EventConsumerBase consumer;
};
typedef sequence<EmitterDescription> EmitterDescriptions;
The consumer variable holds the object reference that is currently connected to
the event source, or a nil reference if there is no connection.
In the Events interface, two operations are added to introspect emits ports.
interface Events {
EmitterDescriptions get_all_emitters ();
EmitterDescriptions get_named_emitters (in
NameList names)
raises (InvalidName);
// other operations as before
};
The get_all_emitters operation returns information about all emitter ports in the
component's inheritance hierarchy as a sequence of EmitterDescription values.
The order in which these values occur in the sequence is not specified. For
components that do not emit any events (e.g., a basic component), this operation
returns a sequence of length zero.
The get_named_emitters operation returns information about all emitter ports
denoted by the names parameter as a sequence of EmitterDescription values. The order in which these values occur in the sequence is not specified. If any
name in the names parameter is not a valid name for an emitter port in the
component's inheritance hierarchy, the operation raises the InvalidName
exception. A component that does not provide any emitters (e.g., a basic
component) will have no valid name parameter to this operation and thus shall
always raise the InvalidName exception.
(6) Publishers
A new valuetype PublisherDescription is introduced to carry information about a
publishes port. Information about a subscriber is held in a new valuetype
SubscriberDescription.
valuetype SubscriberDescription
{
public Cookie ck;
public EventConsumerBase consumer;
};
typedef sequence<SubscriberDescription> SubscriberDescriptions;
valuetype PublisherDescription : PortDescription
{
public SubscriberDescriptions consumers;
};
typedef sequence<PublisherDescription> PublisherDescriptions;
The consumer variable in SubscriberDescription holds one object reference that
is currently connected to the event source, and the Cookie identifying the
subscription.
In the Events interface, two operations are added to introspect publishes ports.
interface Events {
PublisherDescriptions get_all_publishers ();
PublisherDescriptions get_named_publishers (in
NameList names)
raises (InvalidName);
// other operations as before
};
The get_all_publishers operation returns information about all publisher ports in
the component's inheritance hierarchy as a sequence of PublisherDescription
values. The order in which these values occur in the sequence is not specified.
For components that do not publish any events (e.g., a basic component), this
operation returns a sequence of length zero. The get_named_publishers operation returns information about all publisher
ports denoted by the names parameter as a sequence of PublisherDescription
values. The order in which these values occur in the sequence is not specified. If
any name in the names parameter is not a valid name for a publisher port in the
component's inheritance hierarchy, the operation raises the InvalidName
exception. A component that does not provide any publishers (e.g., a basic
component) will have no valid name parameter to this operation and thus shall
always raise the InvalidName exception.
(7) Introspecting all ports
A new valuetype ComponentPortDescription is introduced to describe all ports of
a component.
valuetype ComponentPortDescription
{
public FacetDescriptions facets;
public ReceptacleDescriptions receptacles;
public ConsumerDescriptions consumers;
public EmitterDescriptions emitters;
public PublisherDescriptions publishers;
};
A new operation is introduced on the CCMObject interface to retrieve all port
descriptions.
interface CCMObject : Navigation, Receptacles, Events
{
ComponentPortDescription get_all_ports ();
// other operations as before
};
The get_all_ports operation returns a value of type ComponentPortDescription
containing information about all facets, receptacles, event sinks, emitted events
and published events in the component's inheritance hierarchy. The order in
which the information occurs in these sequences is not specified. If a component
does not offer a port of any type, the associated sequence will have length zero.


Issue 4529: Incorrect syntax in Components::Enumeration (components-ftf)

Click
here for this issue's archive.
Source: International Business Machines (Mr. Ignacio Silva-Lepe, isilval(at)us.ibm.com)
Nature: Uncategorized Issue
Severity:
Summary:
The use of the state keyword in the Components::Enumeration valuetype,
introduced by issue 3099 and extended in issue 3418, is not correct
syntactically. Also, anonymous sequences have been deprecated, so the
definition of the Components::Enumeration state is incorrect in this sense
as well.

Resolution: see below
Revised Text: In section 64.3.1.2, page 64-179, replace At least one concrete implementation of this abstract value type must be provided. Concrete implementations derive from Enumeration by providing a state variable that aggregates objects of type CCMObject. For example, the following value type MyEnumeration would be an implementation of Enumeration: typedef sequence< Components::CCMObject > CCMObjectSeq; valuetype MyEnumeration : Components::Enumeration { state { private CCMObjectSeq objects; }; }; with A concrete specialization of this abstract value type must be provided. This specialization has the form: module Components { typedef sequence< Components::CCMObject > CCMObjectSeq; valuetype DefaultEnumeration : Enumeration { private CCMObjectSeq objects; }; }; Any implementation of DefaultEnumeration, in any language, must provide implementations for the two Enumeration methods. Any client ORB that supports the interoperable bridge has to provide an implementation that knows how to read DefaultEnumeration from the wire and to use that information to provide a local implementation of these two methods. Any EJB container that supports the CCM-EJB bridge has to provide an implementation that knows how to construct itself from a java.util.Enumeration and then write itself to the wire as a DefaultEnumeration.
Actions taken:
July 13, 2001: received issue
May 13, 2002: closed issue

Discussion:
Amend the definition of Components::Enumeration given by both issues
3099 and 3418.


Issue 4540: explicit definition of CCM exceptions mapped from EJB standard exceptions (components-ftf)

Click
here for this issue's archive.
Source: International Business Machines (Mr. Ignacio Silva-Lepe, isilval(at)us.ibm.com)
Nature: Uncategorized Issue
Severity:
Summary:
The CCM exceptions mapped from EJB standard exceptions need to be defined
explicitly in OMG IDL. The resolution to issue 3182 introduces new CCM
standard exceptions Components::CreateFailure, Components::FinderFailure
and Components::RemoveFailure but it does not define them explicitly.

Resolution: see below
Revised Text: In ptc/99-10-04 section 61.7.6 page 61-61, add the following IDL definitions typedef unsigned long FailureReason; exception CreateFailure { FailureReason reason; }; exception FinderFailure { FailureReason reason; }; exception RemoveFailure { FailureReason reason; }; In ptc/99-10-04 section 61.7.6 page 61-61, add the following note “ This specification does not define explicitly what the FailureReason values are for the CreateFailure, FinderFailure, and RemoveFailure exceptions. These values are currently vendor specific and will be standardized once consensus among vendors will be established. “
Actions taken:
August 29, 2001: received issue
May 13, 2002: closed issue

Discussion:
Require to explicitly define the Components::CreateFailure,
Components::FinderFailure and Components::RemoveFailure exceptions.


Issue 4574: Issue for Components: Missing language mapping (components-ftf)

Click
here for this issue's archive.
Source: Humboldt-Universitaet (Mr. Harald Boehme, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
in both documents orbos/99-07-01/6.3 and ptc/99-10-40/615.3 the language
mapping is noted as open issue.
Where are the language mappings for components ?

Resolution: see below
Revised Text: Insert the above-mentioned document as chapter 615.3.
Actions taken:
September 17, 2001: received issue
May 13, 2002: closed issue

Discussion:
Use document http://www.omg.org/cgi-bin/doc?ccm/2001-11-01 as “Components
Language Mapping”.


Issue 4575: Issue for components: No meta model for CIDL ? (components-ftf)

Click
here for this issue's archive.
Source: Humboldt-Universitaet (Mr. Harald Boehme, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
There is no meta model for the CIDL language from orbos/99-07-01 in
orbos/99-07-02.

Resolution: see below
Revised Text: This revised text includes also the revised text of issue 3208. Replace last paragraph of 1.2 in orbos/99-07-02 (ptc/99-10-05) “Appendix A contains ...” with the following paragraph: Appendix A contains the IDL for the MOF metamodels of the Interface Repository, including the component extensions, and the component packaging and deployment metamodel as well as the XML generated using the XMI standard for metadata interchange. Replace the Chapter 2.5 “Packaging/Deployment Metamodel” with the following chapter to orbos/99-07-02 (ptc/99-10-05) 2.5 CIF Metamodel CIF Package In addition to the packages BaseIDL and ComponentIDL, a new package CIF is introduced which contains the metamodel for the Component Implementation Framework. This package obviously depends on the ComponentIDL package since its main purpose is to enable the modeling of implementations for components specified using the ComponentIDL definitions. This situation is depicted in the following diagram: --DIAGRAMS-- ComponentImplDef This metaclass is used to model an implementation definition for a given component definition. It specifies an association to ComponentDef to allow instances to point exactly to the component the instance is going to implement. A ComponentImplDef always has exactly one ComponentDef associated while each ComponentDef might be implemented by different ComponentImplDefs. ComponentImplDef is specified as being a Container, by doing so, instances are able to contain other definitions. The only definition which are allowed to be contained by a ComponentImplDef are instances of SegmentDef. Currently, there is no inheritance specification for instances of ComponentImplDef. SegmentDef Instances of SegmentDef are used to model a segmented implementation structure for a component implementation. This means, that the behavior for each component feature can be provided by a separate segment of the component implementation (most likely a separate programming language class in the code generated by the CIF tools) if necessary. It is also possible to specify that a segment provides the behavior for a number of component features including the extreme that only one segment implements all component features. Instances of SegmentDef are always contained in instances of ComponentImplDef and therefore are derived from Contained. SegmentDef has an association to ComponentFeature so that instances can point to all features of a component which the segment is going to implement. SegmentDef has in addition an association to ArtifactDef which are models of programming language constructs (classes) used to actually implement the behaviour for component features. There is always exactly one artifact for each segment. However, artefacts may be shared between component implementations whereas segments cannot. That’s why the distinction between artefacts and segments has been modeled in the CIF. The attribute isSerialized is used to indicate, that the access to segment is required to be serialized or not. ArtifactDef ArtifactDef is used to model abstractions from programming language constructs like classes. Instances from ArtifactDef in a model represent the elements which provide the behavior for features of a component. Since these can be shared across component implementations the distinctions between artefacts and segments have been made in the metamodel. ArtifactDef is a specialisation of the metaclass Contained, which means that artefacts are identifiable and contained in other definitions. The only allowed Container for ArtifactDef is ModuleDef . Policy Segment definitions modeled as instances of the metaclass SegmentDef may contain a set of policies which have to be applied to realizations of the segment in the implementation code. These policies include for example activation policies for the artifact associated to a segment. The complete set of required policies is not known yet and the metamodel is designed to be flexible. Policy is introduced as an abstract metaclass and concrete policies are expected to be define as specializations of that class. SegmentDef aggregates a set of policies. The metamodel for component implementations is shown in Figure . HomeImplDef Home interfaces have to be implemented and their implementation is not part of a component implementation. However, for a home implementation it has to be specified, which component implementation the home implementation manages. For that reason, the CIF metamodel contains a metaclass HomeImplDef. Each instance of HomeImplDef in a model implements exactly one instance of HomeDef. This relation is modeled by the association implements between both metaclasses. HomeImplDef inherits from the abstract metaclass Container. This is to allow a home implementation to be identifiable within a model and to contain other model elements. (For the time being, no such elements have been identified). Each home implementation manages exactly one component implementation, this relation is modeled by the association manages. It is required, that for each instance x of HomeImplDef the instance of ComponentDef which is associated to the instance of HomeDef associated to x is the same instance as the instance of ComponentDef associated to the instance of ComponentImplDef which is associated to x. In orbos/99-07-02 (ptc/99-10-05) Replace 3.1 bullet 2 with Chapter 2 defines the metamodel for component implementation framework (CIF). The XMI format for exchange of CIF metadata is defined along with MOF- compliant IDL for CIF repository. Support for the generation and consumption of the XMI metadata and the MOF-compliant IDL is optional. Add Appendix with the following XML and IDL XML
Actions taken:
September 17, 2001: received issue
April 26, 2010: closed issue
April 26, 2010: closed issue

Discussion:
A metamodel for CIDL is defined.


Issue 4576: CCM: Isolated scope tokens (components-ftf)

Click
here for this issue's archive.
Source: Humboldt-Universitaet (Mr. Martin von Loewis, loewis(at)informatik.hu-berlin.de)
Nature: Uncategorized Issue
Severity:
Summary:
In ccm/01-08-03, section 3.6, there is a sentence

"In isolation, the scope token represents the scope of the
specification in which it occurs."

It is not clear what an "isolated scope token" is, since the scope
token is allowed only as part of a <scoped_name>, but never appears in
isolation. The intended meaning of this sentence should be clarified.

Resolution: see below
Revised Text: In ccm/01-08-03 section 3.6 page 3-20 replace Any scoped name that begins with the scope token (“::”) is resolved relative to the global scope of the specification in which it is defined. In isolation, the scope token represents the scope of the specification in which it occurs. with The scope token (“::”) delimits the scope(s) of the specification in which it occurs. Any scoped name that begins with the scope token is resolved relative to the global scope of the specification in which it is defined.
Actions taken:
September 17, 2001: received issue
May 13, 2002: closed issue

Discussion:
It is apparent that the author intended “in isolation” to mean “if one considers the
significance of the scope token independently from the specification in which it
occurs” since “::” in isolation with no suffixed part of a specification has no
meaning. Since the scope token by the nature of its definition delimits the
scope(s) of the specification in which it occurs there is little need to reiterate what
is meant by the definition of “::” as a “scope token”. However, it may be helpful to
some readers to stress that the scope token is simply a scope delimiter.


Issue 4577: CCM: Definition of import declaration unclear (components-ftf)

Click
here for this issue's archive.
Source: Humboldt-Universitaet (Mr. Martin von Loewis, loewis(at)informatik.hu-berlin.de)
Nature: Uncategorized Issue
Severity:
Summary:
After reading the definition of the import declaration, it is not at
all clear what its effect is.

Suppose the "well-known set of IDL specifications" consists of

module A {
	module B {
		interface C {
				struct S {long a;};
			};
	};
};

Now consider the import statement

import A::B;

According to the draft, "Names that occur in IDL declarations within
the importing specification may be resolved to definitions in imported
scopes." What is a "Name" in this context? Is it an <identifier>, or
is it a "<scoped_name>"?

It is unclear whether in this context, the definition

interface D : C {};

would be correct or not. The spec may be interpreted that name "C"
resolves to ::A::B::C, i.e. that the name "C" is appended to the
imported scopes, forming a fully-scoped name. If that is the intended
meaning, the text should explain how to deal with conflicts.

Alternatively, given the text "Imported IDL name scopes exist in the
same space as names defined in subsequent declarations in the
importing specification." would suggest that

interface D : B::C {};

is well-formed: "B" would be the name of the imported scope, so it
exists in the same space "D", and can thus be used for qualifications.

Furthermore, the text could be understand to mean that

interface D : ::A::B::C {};

is allowed. The "definition in the imported scope" has the name
"A::B::C", so this is the name to be used in the importing
specification.

Resolution: see below
Revised Text: In ccm/01-08-03 section 3.6 page 3-21 replace • The contents of the specified name scope are visible in the context of the importing specification. Names that occur in IDL declarations within the importing specification may be resolved to definitions in imported scopes. with • The contents of the specified name scope are visible in the context of the importing specification. Identifier names that occur in IDL declarations within the importing specification may be resolved to definitions in imported scopes. In ccm/01-08-03 section 3.6 page 3-21 replace • Imported IDL name scopes exist in the same space as names defined in subsequent declarations in the importing specification. with • The contents of imported IDL name scopes exist in the same space as names defined in subsequent declarations in the importing specification. In ccm/01-08-03 section 3.20.1 page 3-70 before the last sentence, add the following: Consider the IDL specification: module A { module B { interface C { struct S { long a; }; }; }; }; Use of an import statement corresponding to the specification above has additional implications as demonstrated in the following example: import A::B; module D { interface E : C {}; }; In this example, the import of A::B exposes the contents of B and the contents of B are visible in the context of the importing specification. Therefore, interface C may be resolved to the definition in the imported scope. Note that the statement import A; id IDL is similar to the Java statement import A.*; in that the contents of the Java package A are visible to the importing specification. There is a subtle difference however since Java does not import recursively so that references to B::C would be legal in an IDL importing specification but not legal in Java. In ccm/01-08-03 at the end of section 3.20.1 page 3-71, add the following: Ambiguity can also arise between imported scopes as well as imported scopes and the global scope. For example, if a specification contains: module A { module B { interface C {}; }; }; module B { interface C {}; }; module X { module Y { interface C {}; }; }; consider an importing specification: import A; import B; import X; interface C {}; // OK: global scope interface D : C {}; // Error: Ambiguous interface E : B::C {}; // Error: Ambiguous interface F : ::C {}; // OK interface G : ::B::C {}; // OK interface H : A::B::C {}; // OK interface I : ::A::B::C {}; // OK interface J : Y::C {}; // OK Since interface C is defined within the global scope it is distinct from interfaces ::A::B::C, ::B::C, and X::Y::C. However, it cannot be used without qualification since its full scope would be ambiguous. In any case, ambiguous declarations will yield compilation errors. In ccm/01-08-03 section 3.20.2 at the beginning of page 3-72, add the following: IDL module definitions may re-open modules defined in imported name scopes. For example, if a specification contains: module Y { }; module A { module Y { }; }; module B { module Y { }; }; then imported modules can be reopened in other specifications import A; import B; module Y { // OK: defines new global module ::Y interface C {}; // The global module Y in the // imported specification is not // imported. }; module A { module Y { // OK: reopen module A::Y interface C {}; }; }; Alternatively, adding an import Y; statement results in a reopening of the imported Y module rather than defining a new module scope. For example: import A; import B; import Y; module Y { // OK: reopens imported module ::Y interface C {}; }; In ccm/01-08-03 section 3.20.2 page 3-73 before the module M declaration, add the following: given the specification interface K { typedef double DblType; }; and the importing specification import K; In ccm/01-08-03 section 3.20.2 page 3-73 in the module N declaration, replace void opy(in ArgType I); // line l5 with void opy( // line l5 in ArgType I, in DblType dbl); In ccm/01-08-03 section 3.20.2 page 3-73, add the following item: 5. Imported scopes before the definition of M. In ccm/01-08-03 at the end of section 3.20.2 page 3-74, add the following sentence: DblType in line l5 is found in step 5. In ccm/01-08-03 section 3.20.3 page 3-74, replace the first M module declaration by the following: given the specification interface A { typedef string ArgType; }; consider the importing specification import A; module M { typedef long ArgType; // OK, redefined in nested scope interface A { typedef string ArgType; // OK, redefined in nested scope struct S { ArgType x; // x is a string }; }; typedef double ArgType; // Error: redefinition in same // scope }; In ccm/01-08-03 section 3.20.3 at the beginning of the page 3-75, add the following: imported specification: module K { valuetype Y { }; }; importing specification: import K; valuetype Y { // OK: different scope than imported scope };
Actions taken:
September 17, 2001: received issue
May 13, 2002: closed issue

Discussion:
“Name” here is meant to be an identifier name (part of the form <scoped-name>::<
identifier>). Interpretations and corresponding examples of statements
made regarding names and scopes should be discussed fully in ccm/01-08-03
section 3.20 “Names and Scoping” starting on page 3-69.


Issue 4578: CCM: import and re-opening of modules (components-ftf)

Click
here for this issue's archive.
Source: Humboldt-Universitaet (Mr. Martin von Loewis, loewis(at)informatik.hu-berlin.de)
Nature: Uncategorized Issue
Severity:
Summary:
In ccm/01-08-03, a sentence says "IDL module definitions may re-open
modules defined in imported name scopes."

Now, consider the following "well-defined set of IDL definitions":

module Y{};
module A{
  module Y{};
};
module B{
  module Y{};
};

and the import statements

import A;
import B;

Clearly, A::Y and B::Y are "modules defined in imported name
scopes". Does that mean that specifying

module Y{
  interface another_interface{};
};

is now valid? If so, which namespace is extended?

It may be that this is meant to be an error (if so, where does it say
that?). In that case, consider the case that there was only a single
import:

import A;

Then, if this means that A::Y is extended, how could I specify a
re-opening of ::Y?

Alternatively, it may be that the authors thought of re-opening Y in
the form of

module A::Y{
  interface another_interface{};
};

That, of course, is illegal syntax. Yet another interpretation is that
the draft intended to allow

module A{
  module Y{
    interface another_interface{};
  };
};

However, this appears to be possible even without any import
statement.

Resolution: See issue 4577.
Revised Text: See issue 4577.
Actions taken:
September 17, 2001: received issue
May 13, 2002: closed issue

Issue 4579: CCM: Meaning of "exposed" scopes unclear. (components-ftf)

Click
here for this issue's archive.
Source: Humboldt-Universitaet (Mr. Martin von Loewis, loewis(at)informatik.hu-berlin.de)
Nature: Uncategorized Issue
Severity:
Summary:
ccm/01-08-04 says

"When a name scope is imported, the names of the enclosing scopes in
the fully-qualified pathname of the enclosing scope are exposed within
the context of the importing specification, but their contents are not
imported.  An importing specification may not re-define or re-open a
name scope which has been exposed (but not imported) by an import
statement."

Now consider the following "well-defined set of IDL specs":

module X {
	module Y {
           module Z{};
	};
};

and the following import statement

import X::Y;

Now, it appears that this declaration would make it ill-formed to
specify

module X{
   interface another_interface{};
};

since "X" is an exposed scope. That appears to be inconsistent, since
clearly, reopening "X" is allowed without the import statement.

Resolution: see below
Revised Text: In ccm/01-08-03 section 3.6 page 3-21 replace • When a name scope is imported, the names of the enclosing scopes in the fully-qualified pathname of the enclosing scope are exposed within the context of the importing specification, but their contents are not imported. An importing specification may not re-define or re-open a name scope which has been exposed (but not imported) by an import statement. with • An import statement makes the contents of the imported scope accessible without qualification, but has no effect on the contents of the enclosing scopes.
Actions taken:
September 17, 2001: received issue
May 13, 2002: closed issue

Discussion:
As indicated by the author of the issue, denying the reopening of visible name
scopes is inconsistent with the behavior of a similar non-importing specification.
Conceptually, there is no issue in defining or opening name scopes that are
identical to visible name scopes since only imported scopes can be directly
referenced or reopened (in the case of modules).


Issue 4716: Little problem with introspection API (components-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
I wanted to point out that the use of the name "ref" or "Ref" in
> the introspection API may be a problem because "ref" is a
> reserved word in PSDL and therefore any PSDL file that
> includes the CCM IDL file will cause compiler errors (this has
> happened to me when using the OpenORB PSDL compiler).  If at
> all possible we should change the use of "ref" to "reference"
> or something else in the final version of the spec.

Resolution: see below
Revised Text: See Issue 4717.
Actions taken:
November 27, 2001: received issue
May 13, 2002: closed issue

Discussion:
All the OMG IDL definitions specified by the “CORBA 3.0 New Components
Chapters” document ptc/2001-11-03 are provided into the ptc/2001-11-03/
OMG_IDL/Components.idl file and are been correctly compiled on various
IDL2, IDL3, CIDL, and PSDL compilers.


Issue 4717: minor IDL changes required in CCM API (components-ftf)

Click
here for this issue's archive.
Source: INRIA (Dr. Philippe Merle, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
In order to compile the Components.idl file with a compiler
compliant with OMG IDL2/IDL3/CIDL/PSDL grammars simultaneously,
it is required to apply some changes in CCM APIs:

* In ptc/2001-11-03 draft chapter 61 page 61-225, the following IDL

  valuetype FacetDescription : PortDescription { public Object facet; };

  should be replaced by

  valuetype FacetDescription : PortDescription { public Object facet_ref; };

  because 'facet' is a CIDL keyword.

* In ptc/99-10-04 chapter 62 page 62-141, the following IDL is defined

  exception Rollback { };
  // ...
  local interface Transaction {
    // ...
    void commit () raises (Rollback, NoTransaction, HeuristicMixed,
                           HeuristicRollback, Security, SystemError);
    void rollback () raises (NoTransaction, Security, SystemError);
    // ...
  };

  Here there is a conflit name between the exception Rollback
  and the operation rollback.

  In order to avoid this, the exception Rollback should be renamed
  RollbackError. Then the previous IDL should be replaced by:

  exception RollbackError { };
  // ...
  local interface Transaction {
    // ...
    void commit () raises (RollbackError, NoTransaction, HeuristicMixed,
                           HeuristicRollback, Security, SystemError);
    void rollback () raises (NoTransaction, Security, SystemError);
    // ...
  };

  In the commit operation description page 62-142, the Rollback exception
  should be replaced by RollbackError.

  In table 64-7 page 64-197, the Rollback exception of the commit operation
  should be replaced by RollbackError.

* In ptc/99-10-04 chapter 62 page 62-151, the 1st 'home' parameter
  of the HomeRegistration::register_home and unregister_home operations
  implies a parser error with a CCM IDL compiler as 'home' is a keyword.

  The 'home' parameters should be replaced by 'home_ref'
  Ditto in the following 'register_home' and 'unregister_home' 
  operation descriptions.

* In ptc/99-10-04 chapter 62 page 62-155, the following IDL

    get_oid_from_ref (in Object ref)

  should be replaced by

    get_oid_from_ref (in Object objref)

  because 'ref' is a PSDL keyword.

  In the 'get_oid_from_ref' operation description page 62-156,
  replace 'The ref parameter' by 'The objref parameter'.

* In ptc/99-10-04 chapter 62 page 62-162, the following IDL

    get_cid_from_ref (in Object ref)

  should be replaced by

    get_cid_from_ref (in Object objref)

  because 'ref' is a PSDL keyword.

  In the 'get_cid_from_ref' operation description page 62-163,
  replace '(ref)' by '(objref)'.

* In ptc/2001-11-03 draft chapter 69 page 69-551, the following IDL

    void remove_container(in Container ref) raises (RemoveFailure);

  should be read as

    void remove_container(in Container cref) raises (RemoveFailure);

  because 'ref' is a PSDL keyword.

* In ptc/2001-11-03 draft chapter 69 page 69-553, the following IDL

    void remove_home(in CCMHome ref) raises (RemoveFailure);

  should be read as

    void remove_home(in CCMHome href) raises (RemoveFailure);

  because 'ref' is a PSDL keyword.

Resolution: Accept the previous required changes.
Revised Text: Apply the changes listed in the issue summary.
Actions taken:
November 27, 2001: received issue
May 13, 2002: closed issue

Discussion:
Accept the previous required changes.


Issue 4983: Generic operations for subscribing/unsubscribing at publishing ports (components-ftf)

Click
here for this issue's archive.
Nature: Revision
Severity: Significant
Summary:
generic operations for subscribing and unsubscribing at publishing ports of components should have the same funtionality as the specific ones. Therefore the generic unsubscribe operation should return the unsubscribed consumer reference like the specific operation does. proposal: change 

void unsubscribe (in FeatureName publisher_name, in Cookie ck) raises (InvalidName, InvalidConnection); 

to 

EventConsumerBase unsubscribe (in FeatureName publisher_name, in Cookie ck) raises (InvalidName, InvalidConnection); 

Resolution: see above
Revised Text: In formal/02-06-65, page 1-29, replace void unsubscribe ( . . . ); by EventConsumerBase unsubscribe ( . . . ); In formal/02-06-65, page 1-30, add at the end of the first sentence of the unsubscribe description , and returns the reference of the subscriber In formal/02-06-65, page 1-19, replace void disconnect ( . . . ); by Object disconnect ( . . . ); In formal/02-06-65, page 1-20, add after the 3rd sentence of the disconnect description the following sentence In both cases, the disconnect operation returns the previously connected object reference.
Actions taken:
March 15, 2002: received issue
December 11, 2002: closed issue

Discussion:
Resolution:
In order to be consistent, the generic operation for unsubscribing to publisher ports of components must return the unsubscribed consumer reference like the specific generated operations do.
Moreover, the generic operation for disconnecting from receptacle ports of components must return the previously connected object reference like the specific generated operations do


Issue 4986: IDL3 keyword "eventtype" conflicts with struct "CosNotification::EventType (components-ftf)

Click
here for this issue's archive.
Source: Tech-X (Dr. Nanbor Wang, nanbor(at)txcorp.com)
Nature: Uncategorized Issue
Severity:
Summary:
The "eventtype" keyword defined in Section 3.2.4 of the "CORBA 3.0 New
Components Chapters" (ptc/2001-11-03) will make the Notification
Service IDL un-compilable because Notification Service defines a
struct called "EventType" in Section 3.1 of formal/00-06-20.

I guess one of the specs will have to change.

Resolution: see above
Revised Text: Change all occurrences of EventType by _EventType in the latest Notification Service Specification.
Actions taken:
March 18, 2002: received issue
December 11, 2002: closed issue

Discussion:
Resolution:
The Notification Service IDL defined in formal/00-06-20 could not be compiled with a CORBA 3.0 IDL compiler because the identifier EventType is now interpreted as the eventtype keyword. 
In OMG IDL, the only way to escape from the keyword interpretation is to put an underscore in front of identifiers. The generated code will remain the same.


Issue 5091: components-ftf: repository id in software package descriptor (components-ftf)

Click
here for this issue's archive.
Source: Zuehlke Engineering (Mr. Frank Pilhofer, fpilhofer2008(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
The id attribute of the idl element in a
Software Package Descriptor currently
contains the Repository Id of the component.

I suggest to change this to the Repository
Id of the home, as the home implies the
component, but not vice versa. This makes
it easier for the deployment application to
find out about the home interface, e.g. for
the purpose of configuring properties.

Resolution: The Repository Id of the home should be added as an attribute of the idl element
Revised Text: In formal/02-06-65, section 6.3.1, page 6-3, replace <idl id="IDL:M1/Bank:1.0"> by <idl id="IDL:M1/Bank:1.0" homeid="IDL:M1/BankHome:1.0"> In formal/02-06-65, section 6.3.2.14, page 6-9, replace The idl element points to file or repository containing an idl definition. <!ELEMENT idl ( link | fileinarchive | repository ) > <!ATTLIST idl id CDATA #REQUIRED > The id attribute is a repository Id which uniquely identifies the IDL equivalent interface for the software component. by The idl element points to a file or repository containing IDL definitions. If a component and its home are defined in different files or repositories, then the idl element refers to the file or repository where the home is defined. <!ELEMENT idl ( link | fileinarchive | repository ) > <!ATTLIST idl id CDATA #REQUIRED homeid CDATA #REQUIRED > The id attribute is a repository Id that uniquely identifies the IDL equivalent interface for the software component. The homeid attribute is a repository Id that uniquely identifies the IDL equivalent interface for the home of the software component. In formal/02-06-65, section 6.3.2.14, page 6-9, replace <!ATTLIST idl id CDATA #REQUIRED > by <!ATTLIST idl id CDATA #REQUIRED homeid CDATA #REQUIRED >
Actions taken:
March 26, 2002: received issue
December 11, 2002: closed issue

Issue 5092: components-ftf: registercomponent element (components-ftf)

Click
here for this issue's archive.
Source: Zuehlke Engineering (Mr. Frank Pilhofer, fpilhofer2008(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
On page 69-532 (ptc/01-11-03), the
registercomponent element of an Assembly
Descriptor is defined to optionally
contain an emitsidentifier and publishes-
identifier element, in order to register
an event source in the Naming or Trading
Service. There is also a note saying, "In
the case of events, what gets registered?"

I suggest to replace the emitsidentifier
and publishesidentifier elements with the
consumesidentifier element, and to change
the first two paragraphs to read:

"The registercomponent element is to specify
that a component, a provided interface, or
an event consumer interface should be regis-
tered with a naming service or trader.

If a consumesidentifier or publishesidentifier
is specified, then that element is registered.
If none of the above are specified, then it is
implied that the component itself is to be
registered."

Resolution: see above
Revised Text: In formal/02-06-65, page 6-57, replace The registercomponent element is used to specify that a component, a provided interface, or a published event should be registered with a naming service or trader. If an emitsidentifier, providesidentifier, or publishesidentifier is specified, then that element is registered. If none of the above are specified, then it is implied that the component itself is to be registered. by The registercomponent element is used to specify that a component, a provided interface, or an event consumer interface should be registered with a naming service or trader. If a providesidentifier or consumesidentifier is specified, then that element is registered. If none of the above are specified, then it is implied that the component itself is to be registered. In formal/02-06-65, page 6-57 and page 7-18, replace <!ELEMENT registercomponent ( ( emitsidentifier | providesidentifier | publishesidentifier )? , ( registerwithnaming | registerwithtrader )+ ) > by <!ELEMENT registercomponent ( ( providesidentifier | consumesidentifier )? , ( registerwithnaming | registerwithtrader )+ ) > In formal/02-06-65, page 6-58 and 7-18, replace <!ELEMENT registerwithtrader ( traderproperties ) > by <!ELEMENT registerwithtrader ( traderexport ) > In formal/02-06-65, page 6-42, replace <registerwithtrader> <traderproperties> . . . </traderproperties> </registerwithtrader> by <registerwithtrader> <traderexport> <traderservicetypename> aTraderServiceTypeName </traderservicetypename> <traderproperties> . . . </traderproperties> </traderexport> </registerwithtrader>
Actions taken:
March 26, 2002: received issue
December 11, 2002: closed issue

Discussion:
Emitter or publisher ports could not be registered with the Naming or Trader services because these ports have no associated object references. In fact, only components, facets, and  event consumers have an associated object reference and could be registered with these two services. Then the description of the registercomponent element must be updated to be consistent.
Moreover, registering an object reference with the Trader Service requires to provide a trader service type name and a set of trader properties. This is reflected by the traderexport element. But the registerwithtrader only contains a set of trader properties and no trader service type name. Then the description of the registerwithtrader must be updated to be consistent


Issue 5093: components-ftf: connectevent element (components-ftf)

Click
here for this issue's archive.
Source: Zuehlke Engineering (Mr. Frank Pilhofer, fpilhofer2008(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
On page 69-521 (ptc/01-11-03), the connectevent
element of an Assembly Descriptor is defined as

<!ELEMENT connectevent (consumesport,
                        (emitsport |
                         publishesport))>

This does not allow for emits and publishes
ports to be connected to existing consumer
interfaces that are registered in the naming
or trading service. I suggest to change that
element in the spirit of connectinterface to

<!ELEMENT connectevent (emitsport |
                        publishesport) ,
                       (consumesport |
                        existinginterface)>

Resolution: see above
Revised Text: In formal/02-06-65, section 6.7.2.11, first paragraph, page 6-47, add after "of one component," or an existing interface In formal/02-06-65, page 6-47 and page 7-14, replace <!ELEMENT connectevent ( consumesport , ( emitsport | publishesport ) )> by <!ELEMENT connectevent ( ( consumesport | existinginterface ) , ( emitsport | publishesport ) )> In formal/02-06-65, section 6.7.2.23, page 6-51, add at the end of the first sentence , or to an emits or publishes port within a connectevent element
Actions taken:
March 26, 2002: received issue
December 11, 2002: closed issue

Discussion:
Apply the proposed change allowing for emits and publishes ports to be connected to existing consumer interfaces.
However, do not reverse consumesport and emits/publishesport to be compatible with already existing and used XML descriptors


Issue 5340: Issue regarding language mapping for keyless homes (components-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
In 01-11-03.pdf page 61-255


Given a base home definition with a primary key (H, T, K), and a derived home
definition with no primary key (H', T'), such that H' is derived from H, then the
definition of H' implicitly includes a primary key specification of type K, becoming
(H', T', K). The implicit interface for H' shall have the form specified for an
implicit interface of a home with primary key K and component type T'.


In same document section 615.3.3.6 Home I see no mention that a keyless
home that inherits from a keyed home is implicitly a keyed home and thus
the Home Implicit Executor Interface must be constructed for a keyed home
using the key type declared for the base keyed home.  Everyone agree?

Resolution: see above
Revised Text: In formal/02-06-65, section 3.3.3.6, page 3-46, replace Implicit Executor Interface for Keyed Homes For a keyed home <home name> with a key of <key type>, by Implicit Executor Interface for Explicitly or Implicitly Keyed Homes For a keyed home <home name> with a key of <key type> or a keyless home <home name> that derives from a keyed home with a key of <key type>,
Actions taken:
June 7, 2002: received issue
December 11, 2002: closed issue

Discussion:
A keyless home that inherits from a keyed home is implicitly a keyed home and thus the Home Implicit Executor interface must be constructed as a keyed home using the key type declared for the base keyed home.


Issue 5429: simple type element of the property file issue (components-ftf)

Click
here for this issue's archive.
Source: Computational Physics, Inc. (Mr. J. Scott Evans, evans(at)cpi.com)
Nature: Uncategorized Issue
Severity:
Summary:
In document 01-11-03.pdf section 69.8.2.8 the simple type element
of the property file descriptor excludes the types:


long long
unsigned long long
long double
wchar


Is there any reason why we can't add these types to the simple element?


Resolution: see above
Revised Text: In formal/02-06-65, page 6-63 and page 7-12, replace <!ATTLIST simple name CDATA #IMPLIED type ( boolean | char | double | float | short | long | objref | octet | short | string | ulong | ushort ) #REQUIRED > by <!ATTLIST simple name CDATA #IMPLIED type ( boolean | char | double | float | short | long | objref | octet | string | ulong | ushort | longlong | ulonglong | longdouble | wchar | wstring | fixed ) #REQUIRED >
Actions taken:
June 13, 2002: receive dissue
December 11, 2002: closed issue

Discussion:
Add long long, unsigned long long, long double, wchar, wstring, and fixed to the type attribute of the simple element in order to allow configuration of component and home attributes of these types.
Moreover remove the second occurrence of the short type.


Issue 5492: Issues related to CCM's XML descriptors: chapter 69.4.4 (components-ftf)

Click
here for this issue's archive.
Source: INRIA (Dr. Philippe Merle, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
chapter 69.4.4
        the sample componentkind definition given as an entity with
"process" lifetime seems
        unadapted as described in 69.4.5.49, we can give a best lifetime
with "container"

Resolution: see above
Revised Text: In formal/02-06-65, page 6-18, replace <servant lifetime="process"/> by <servant lifetime="container"/>
Actions taken:
July 15, 2002: received issue
December 11, 2002: closed issue

Discussion:
"process" is not a possible value for the lifetime attribute of the servant element (see formal/02-06-65 page 6-37). Possible values are component, method, transaction, or container. Then the example must be updated in order to be coherent.


Issue 5493: Issues related to CCM's XML descriptors: chapter 69.4.5.4 (components-ftf)

Click
here for this issue's archive.
Source: INRIA (Dr. Philippe Merle, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
chapter 69.4.5.4
        "The information obtained by (...) it allows component assembly
tools to decide WHAT ports
        on a component are capable (...)"
        it seems that the word "which" would be better than "what" in
this sentence

Resolution: Replace "what" by "which".
Revised Text: In formal/02-06-65, page 6-23, section 6.4.5.4, 3rd paragraph, replace "what" by "which".
Actions taken:
July 15, 2002:
December 11, 2002: closed issue

Discussion:


Issue 5494: Issues related to CCM's XML descriptors: chapter 69.4.5.16 (components-ftf)

Click
here for this issue's archive.
Source: INRIA (Dr. Philippe Merle, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
chapter 69.4.5.16
        this eventpolicy element is said to be child element of
corbacomponent
        in fact it can be child element of: consumes, emits, publishes
        but it's NOT a child element of corbacomponent

Resolution: see above
Revised Text: In formal/02-06-65, page 6-26, replace Child element of corbacomponent. by Child element of consumes, emits, publishes
Actions taken:
July 23, 2002: received issue
December 11, 2002: closed issue

Discussion:
Correct the false sentence as eventpolicy is a child element of consumes, emits, publishes and not a child element of corbacomponent.


Issue 5495: Issues related to CCM's XML descriptors: chapter 69.7.2.25 (components-ftf)

Click
here for this issue's archive.
Source: INRIA (Dr. Philippe Merle, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
chapter 69.7.2.25
        the given reference to the fileinarchive element is wrong
(69.3.2.11);
        the right one is 69.3.2.12



Resolution: Correct the false cross-reference
Revised Text: In formal/02-06-65, page 6-51, replace See Section 6.3.2.11, "The extension Element," on page 6-8. by See Section 6.3.2.12, "The fileinarchive Element," on page 6-8.
Actions taken:
July 15, 2002: received issue
December 11, 2002: closed issue

Issue 5496: Issues related to CCM's XML descriptors: chapter 69.7.2.38 (components-ftf)

Click
here for this issue's archive.
Source: INRIA (Dr. Philippe Merle, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
chapter 69.7.2.38
        the processcollocation element given in this chapter lacks a
DESTINATION child element
        right one:
<!ELEMENT processcollocation
                        (usagename?
                        , impltype?
                        ,       (homeplacement
                                | extension
                                )+
                        ,destination?
                        )>
<!ATTLIST processcollocation
                        id      ID      #IMPLIED
                        cardinality CDATA "1">

Resolution: see above
Revised Text: In formal/02-06-65, page 6-56, replace <!ELEMENT processcollocation ( usagename? , impltype? , ( homeplacement | extension )+ )> by <!ELEMENT processcollocation ( usagename? , impltype? , ( homeplacement | extension )+ , destination? )>
Actions taken:
July 15, 2002: received issue
December 11, 2002: closed issue

Discussion:
As described in formal/02-06-65, page 6-49 and page 7-17, destination is a child element of processcollocation. Then the processcollocation element must be updated to be coherent.


Issue 5497: Issues related to CCM's XML descriptors: chapter 695.4 (components-ftf)

Click
here for this issue's archive.
Source: INRIA (Dr. Philippe Merle, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
chapter 695.4
        the elements aren't in the alphabetical order
        proxyhome must be placed before publishesidentifier

Resolution: see above
Revised Text: In formal/02-06-65, page 6-58, replace <!ELEMENT remotehome by <!ELEMENT proxyhome In formal/02-06-65, page 6-58, move the whole section 6.7.2.47 before section 6.7.2.41 page 6-57. In formal/02-06-65, page 7-18, move the proxyhome element before the publishesidentifier element.
Actions taken:
July 15, 2002: received issue
December 11, 2002: closed issue

Discussion:
Apply the alphabetical order on the proxyhome element defined in the chapters 6 and 7 of the formal/02-06-65 document.


Issue 5498: CIDL Grammar problems: Productions must be renumbered : 134 -> 1, ... (components-ftf)

Click
here for this issue's archive.
Source: INRIA (Dr. Philippe Merle, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
Productions must be renumbered : 134 -> 1, ...


In all productions, replace ...storage_home... by ...storagehome... and
...storage_type...
by storagetype...

Resolution: see above
Revised Text: In formal/02-06-65, page 2-3, replace storage_home by storagehome in production 2. In the whole chapter 2 of formal/02-06-65, replace all occurrences of …storage_home… by …storagehome… in all CIDL productions. In formal/02-06-65, page 2-5, section 2-4, replace (41), (42) and (43) by (1), (2) and (3). In formal/02-06-65, page 2-5, section 2-4, replace storage_home by storagehome in production 2. In formal/02-06-65, page 2-5, section 2-5, replace (44), (45) and (46) by (4), (5) and (6). In formal/02-06-65, page 2-8, section 2-7, replace (51) and (52) by (11) and (12). In formal/02-06-65, page 2-9, section 2-8, replace (53) and (54) by (13) and (14). In formal/02-06-65, page 2-9, section 2-9, replace (55), (56) and (57) by (15), (16) and (17). In formal/02-06-65, page 2-10, section 2-10, replace (58) by (18). In formal/02-06-65, page 2-10, section 2-11, replace (59), (60) and (61) by (19), (20) and (21). In formal/02-06-65, page 2-10, section 2-12, replace (62) and (63) by (22) and (23). In formal/02-06-65, page 2-11, section 2-13, replace (64) by (24). In formal/02-06-65, page 2-12, section 2-14, replace (65) by (25). In formal/02-06-65, page 2-12, section 2-15, replace (66) to (70) by (26) to (30). In formal/02-06-65, page 2-13, section 2-16, replace (71) to (74) by (31), (33), (34), and (35). In formal/02-06-65, page 2-15, section 2-17, replace (75) by (32). In formal/02-06-65, page 2-16, section 2-18, replace (76) and (77) by (36) and (37). In formal/02-06-65, page 2-16, section 2-19, replace (78), (79) and (80) by (38), (39) and (40).
Actions taken:
July 15, 2002: received issue
December 11, 2002: closed issue

Discussion:
Require to update the numbering of CIDL productions in the chapter 2 of the Adopted CORBA Components Specification (formal/02-06-65).
Require to replace all occurrences of storage_home by storagehome in CIDL productions (chapter 2 in formal/02-06-65).
Moreover, there is no occurrence of storage_type in formal/02-06-65.


Issue 5499: paragraph 60.2.1 : There is two mistakes in keywords (components-ftf)

Click
here for this issue's archive.
Source: INRIA (Dr. Philippe Merle, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
 - Capital letters are not appropriated. Correct "storageHome" with
"storagehome".
    - The keyword "catalog" must be removed as it was removed from PSDL.

Resolution: see above
Revised Text: All the following changes must be applied to the formal/02-06-65 document. At page 2-1, remove "Catalog Usage Declaration" from the table. At page 2-3, remove the catalog keyword from table 2-2. At page 2-3, table 2-2, replace storageHome by storagehome. At page 2-4, production 6, remove " [<catalog_use_dcl>] " At page 2-4, remove productions 7, 8, 9, and 10. At page 2-4, remove <catalog_label> "." from production 16. At page 2-6, production 6, remove " [<catalog_use_dcl>] " At page 2-6, remove the item An optional catalog usage declaration, At page 2-7 and 2-8, remove the section 2.6. At page 2-9, remove <catalog_label> "." from production 16. At page 2-9, remove the 3rd paragraph in section 2.9. At page 3-11, section 3.2.7, remove the first item o One or more catalogs that provide the storage homes to the composition implementation. Each specified catalog is assigned an alias, or label, that identifies the catalog within the context of the composition. At page 3-12, replace composition <category> <composition_name> { uses catalog { <catalog_type> <catalog_label>; }; home executor <home_executor_name> { implements < home_type> ; bindsTo <catalog_label. abstract_storage_home>; manages <executor_name>; }; }; where the additional elements are as follows: <catalog_type> identifies the type of a catalog previously defined in PSDL, <catalog_label> is an alias by which the catalog can be identified in the composition definition, and <catalog_label.abstract_storage_home> denotes a particular abstract storage home provided by the catalog. by composition <category> <composition_name> { home executor <home_executor_name> { implements < home_type> ; bindsTo <abstract_storage_home>; manages <executor_name>; }; }; where the additional element is as follows: < abstract_storage_home> denotes a particular abstract storage home. At page 3-13, in Figure 3-2, remove uses catalog { <catalog_type> <catalog_label>; }; At page 3-13, in Figure 3-2, replace bindsTo <catalog_label.storage_home>; by bindsTo <storage_home>; At page 3-13, in Figure 3-2, remove the box named "catalog", the arrow to this box, and the arrow to the box named "storage home". At page 3-16, replace The CIDL now defines abstract storage types, abstract storage homes, and a catalog. by The CIDL now defines an abstract storage type and an abstract storage home. At page 3-16, remove catalog ToonCatalog { provides ToonStateHome TSHome; }; and uses catalog { ToonCatalog store; }; At page 3-16, replace bindsTo store.TSHome; by bindsTo ToonStateHome; At page 3-17, remove The interface for the catalog ToonCatalog. At page 3-23, replace The CIDL now defines abstract storage types, abstract storage homes, and a catalog. by The CIDL now defines abstract storage types and abstract storage homes. At page 3-17, remove uses catalog { ToonCatalog store; }; At page 3-17, replace bindsTo store.TSHome; by bindsTo ToonStateHome; At page 3-27, replace storedOn <catalog_label. abstract_storage_home>; by storedOn <abstract_storage_home>; At page 3-30, replace The CIDL now defines abstract storage types, abstract storage homes, and a catalog. by The CIDL now defines abstract storage types and abstract storage homes. At page 3-30, remove catalog ToonCatalog { provides ToonStateHome TSHome; provides BirdSegStateHome BSSHome; }; and uses Catalog { ToonCatalog store; }; At page 3-30, replace bindsTo store.TSHome; . . . storedOn ToonPS.BSSHome; by bindsTo ToonStateHome; . . . storedOn BirdSegStateHome; At page 3-31, replace The storage home BSSHome on the ToonCatalog catalog is bound to the . . . by The storage home BirdSegStateHome is bound to the . . . At page 3-31, replace The mappings of the CIDL abstract storage types, abstract storage homes, and the catalog are not presented, . . . by The mappings of the CIDL abstract storage types and abstract storage homes are not presented, . . . At page 3-35, replace bindsTo <catalog_label.abstract_ storage_home>; by bindsTo <abstract_ storage_home>; At page 6-18, remove <catalog type="PSDL:BookCatalog:1.0" /> At pages 6-22 and 6-23, remove the whole section 6.4.5.3. At page 6-25, section 6.4.5.10, remove the item o catalog specifies the catalog type. and in the XML DTD , catalog? At page 7-5, remove <!ELEMENT catalog EMPTY> <!ATTLIST catalog type CDATA #REQUIRED > At page 7-6, remove in the containermanagedpersistence element , catalog? At page Index-1, remove catalog Element 6-22 Catalog usage declaration 2-7
Actions taken:
July 15, 2002: received issue
December 11, 2002: closed issue

Discussion:
Replace storageHome by storagehome in Table 2-2, page 2-3, formal/02-06-65.
As the catalog keyword was removed from the Persistent State Definition Language, remove all references to the catalog concept in the Adopted CORBA Components Specification (formal/02-06-65). 


Issue 5500: Productions 140, 141, 142 and 143 must be removed (components-ftf)

Click
here for this issue's archive.
Source: INRIA (Dr. Philippe Merle, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
Productions 140, 141, 142 and 143 must be removed. Catalog has been
removed
 from the PSS specification.
Production 145 : <home_executor_body> refers to <stored_on_dcl> which is
defined in production 151
 as <home_persistence_dcl>. Pick one or the other and changes references
as required ...
Productions 149 and 150 are not valid any more. Remove them and add a
new production :
    <abstract_storage_home_name> ::= <identifier>
    identifier must be the name of an abstract storagehome previously
declared

Resolution: see above
Revised Text: Apply revised text of issue 5499 in order to remove all references to the catalog concept. In formal/02-06-65, page 2-4, replace stored_on_dcl by home_persistence_dcl in production 12. In formal/02-06-65, page 2-4, remove CIDL productions 16 and 17. In formal/02-06-65, page 2-8, replace stored_on_dcl by home_persistence_dcl in production 12. In formal/02-06-65, page 2-9, remove CIDL productions 16 and 17.
Actions taken:
July 15, 2002: received issue
December 11, 2002: closed issue

Discussion:
As the catalog keyword was removed from the Persistent State Definition Language, remove all references to the catalog concept in the Adopted CORBA Components Specification (formal/02-06-65). 
Replace stored_on_dcl by home_persistence_dcl in the CIDL production 12 in order to be consistent.
Remove the CIDL abstract_storage_home_name and abstract_storage_home_label productions as the PSDL already defines the abstract_storagehome_name production. Replace all occurrences of the abstract_storage_home_name production by the abstract_storagehome_name production


Issue 5506: Typo (??) in chapter 61 (components-ftf)

Click
here for this issue's archive.
Source: INRIA (Dr. Philippe Merle, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
In the CCM specification document ptc/2001-11-03 page 61-227
the 'session' word should be removed from the OMG IDL 3.0 
example, i.e.:


 component baz session {


should be replaced by:


 component baz {

Resolution: Correct the typo by removing the 'session' word
Revised Text: Correct the typo by removing the 'session' word
Actions taken:
July 15, 2002: received issue
December 11, 2002: closed issue

Issue 5507: 69.8.2 Property File XML Elements (components-ftf)

Click
here for this issue's archive.
Source: Raytheon (Mr. Gerald Lee Bickle, Gerald.L.Bickle(at)raytheon.com)
Nature: Uncategorized Issue
Severity:
Summary:
1.   69.8.2.1 The properties Root Element, page 69-537
Properties Element Cardinality. Suggested change is to replace "*" with "
+".
Why does it make sense to have an empty properties file, since the
properties are
optional references in the Software Package DTD, CORBA Component DTD, and
Component Assembly DTD?


Current Format


<!ELEMENT properties
( description?
, ( simple
| sequence
| struct
| valuetype
)*
) >


Suggested New Format


<!ELEMENT properties
( description?
, ( simple
| sequence
| struct
| valuetype
)+
) >

Resolution:
Revised Text:
Actions taken:
July 15, 2002: received issue
December 11, 2002: closed issue

Discussion:
None as this is deferred to the final report of the Components 1.1 RTF.
Revised Text:
None as this is deferred to the final report of the Components 1.1 RTF.


Issue 5577: create operation of AssemblyFactory interface (components-ftf)

Click
here for this issue's archive.
Source: Fraunhofer FOKUS (Mr. Tom Ritter, tom.ritter(at)fokus.fraunhofer.de)
Nature: Uncategorized Issue
Severity:
Summary:
The name of the create operation in the AssemblyFactory Interface shall
be renamed to a more specific identifier. Create is often used in other
interfaces and this may lead to problems e.g. in inheritance relationships.


suggested change:


create -> create_assembly

Resolution: see below
Revised Text: The name of the create operation in the AssemblyFactory interface must be renamed to a more specific identifier, i.e. create_assembly, as the create identifier is often used in other interfaces and this may lead to problems e.g. in inheritance relationships. Revised Text: In formal/02-06-65, page 6-72, section 6.9.3, replace Cookie create( . . . ); by Cookie create_assembly( . . . ); In formal/02-06-65, page 6-73, replace create by create_assembly two times.
Actions taken:
August 13, 2002: received issue
December 11, 2002: closed issue

Issue 5583: Remove section 4.4.1.4 in formal/02-06-65 (components-ftf)

Click
here for this issue's archive.
Source: INRIA (Dr. Philippe Merle, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
Proposed resolution:


The Adopted CORBA Components Specification (formal/02-06-65)
always contains the section 4.4.1.4 at page 4-36.


However, this section was removed in the ptc/01-11-03 document
by the resolution of the issue 3937 of the Final Report of
Components December 2000 FTF (ptc/01-11-02).


Proposed revised text:


In formal/02-06-65 page 4-36, remove the section 4.4.1.4.


Resolution: see above
Revised Text: In formal/02-06-65 page 4-33, remove the 3rd item named " Event ". In formal/02-06-65 page 4-33, remove the get_event operation in the CCM2Context interface. In formal/02-06-65 page 4-36, remove the section 4.4.1.4.
Actions taken:
August 20, 2002: received issue
December 11, 2002: closed issue

Discussion:
The Adopted CORBA Components Specification (formal/02-06-65) always contains the section 4.4.1.4 at page 4-36.
However, this section was removed in the ptc/01-11-03 document by the resolution of the issue 3937 of the Final Report of Components December 2000 FTF (ptc/01-11-02).
Moreover, the CCM2Context interface in section 4.4.1.1 page 4-33 always contains the get_event operation which was removed in document ptc/01-11-03 page 62-358.


Issue 5584: Corrections in XML DTDs for packaging (components-ftf)

Click
here for this issue's archive.
Source: INRIA (Dr. Philippe Merle, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
In the Adopted CORBA Components Specification (formal/02-06-65),
page 6-4, section 6.3.2.1, the version attribute of the softpkg
element is tagged as #OPTIONAL and is tagged as #IMPLIED at page 7-5.
As #OPTIONAL is not valid in XML, then replace it by #IMPLIED.


In chapter 7, the softpkg XML DTD does not contain the
ins and objref elements which they are used by the repository
element described at page 7-4. Add them.


Proposed revised text:


In formal/02-06-65:


At page 6-4, section 6.3.2.1, replace #OPTIONAL
by #IMPLIED for the version attribute of the softpkg element.


At page 7-3, add before the humanlanguage element


    <!ELEMENT ins EMPTY >
    <!ATTLIST ins
        name CDATA #REQUIRED >


At page 7-4, add before the os element


    <!ELEMENT objref EMPTY >
    <!ATTLIST objref
        string CDATA #REQUIRED >

Resolution: see above
Revised Text: In formal/02-06-65: At page 6-4, section 6.3.2.1, replace #OPTIONAL by #IMPLIED for the version attribute of the softpkg element. At page 7-3, add before the humanlanguage element <!ELEMENT ins EMPTY > <!ATTLIST ins name CDATA #REQUIRED > At page 7-4, add before the os element <!ELEMENT objref EMPTY > <!ATTLIST objref string CDATA #REQUIRED
Actions taken:
August 21, 2002: received issue
December 11, 2002: closed issue

Discussion:
In the Adopted CORBA Components Specification (formal/02-06-65), page 6-4, section 6.3.2.1, the version attribute of the softpkg element is tagged as #OPTIONAL and is tagged as #IMPLIED at page 7-5.
As #OPTIONAL is not valid in XML, then replace it by #IMPLIED.
In chapter 7, the softpkg XML DTD does not contain the ins and objref elements which they are used by the repository element described at page 7-4. Add them.


Issue 5585: Editorial issues in formal/02-06-65 (components-ftf)

Click
here for this issue's archive.
Source: INRIA (Dr. Philippe Merle, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
The Adopted CORBA Components Specification (formal/02-06-65)
always contains some texts removed by the Components December
2000 RTF (ptc/01-11-02 and ptc/01-11-03). See at


   formal/02-06-65              ptc/01-11-03


   page 1-24 and 25             page 61-241
   page 1-26                    page 61-243
   page 1-28                    page 61-245
   page 4-37                    page 62-363
   page 6-67                    page 69-542
   page 6-72                    page 69-548
   page 8-23                    page 70-601


Remove these old texts once again.


Proposed revised text:


Following must be applied on formal/02-06-65.


At pages 1-24 and 1-25, remove


    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);
            };
        };
    };


At page 1-26, remove


    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);
            };
        };
    };


At page 1-28, remove


    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);
            };
        };
    };


At page 4-37, remove in Session2Context interface 
the two occurrences of PortableServer::ObjectId.


At page 6-67, remove


    Note   Of the interfaces described below, only
ComponentInstallation,
    AssemblyFactory, and Assembly are required by this specification;
the other
    interfaces are included for illustrative purposes and to support an
end-to-end scenario.


At page 6-72, remove


    exception InvalidLocation { };


At page 8-23, remove Figure 8-20.


Resolution: see above
Revised Text: Apply the proposed removals listed in the summary body.
Actions taken:
August 22, 2002: received issue
December 11, 2002: closed issue

Discussion:
The Adopted CORBA Components Specification (formal/02-06-65) always contains some texts removed by the Components December 2000 RTF (ptc/01-11-02 and ptc/01-11-03). See at
formal/02-06-65	ptc/01-11-03
page 1-24 and 25	page 61-241
page 1-26		page 61-243
page 1-28		page 61-245
page 4-37		page 62-363
page 6-67		page 69-542
page 6-72		page 69-548
page 8-23		page 70-601
Remove these old texts once again.



Issue 5588: Update Table 5-13 in the EJB Chapter of formal/02-06-65 (components-ftf)

Click
here for this issue's archive.
Source: INRIA (Dr. Philippe Merle, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
In ptc/01-11-03, page 64-410, there is the following note


    Issue   This table will be completed after the Interface Repository
chapter is ready.


Then Table 5-13 in formal/02-06-65 would be completed.


Resolution:
Revised Text:
Actions taken:
August 22, 2002: received issue
December 11, 2002: closed issue

Discussion:
Resolution:
None as this is deferred to the final report of the Components 1.1 RTF.
Revised Text:
None as this is deferred to the final report of the Components 1.1 RTF


Issue 5683: Derived component supported interface restriction (components-ftf)

Click
here for this issue's archive.
Nature: Uncategorized Issue
Severity:
Summary:
Both the CORBA spec (formal/02-06-01 page 3-61) and the CCM spec (formal/02-06-65 page 1-51) state that "A derived component type may not directly support an interface." Moreover the sentence you depicted is a contradiction with the formal/02-06-65 section 1.3.2.4 page 1-7.
Resolution:


In formal/02-06-65 page 1-51 and formal/02-06-01 page 3-61 replace the sentence


"A derived component type may not directly support an interface."


with


"If a derived component type directly supports one or more IDL interfaces, the component interface is derived from both  the interface of its base component type and the supported interfaces."

Resolution:
Revised Text:
Actions taken:
October 10, 2002: received issue
October 16, 2002: issue closed and split into separte issues for components and c

Issue 5906: insufficient examples of component attributes (components-ftf)

Click
here for this issue's archive.
Source: Raytheon (Mr. Craig Rodrigues, nobody)
Nature: Uncategorized Issue
Severity:
Summary:
In OMG document formal/02-06-65, in section "1.3.3 Component Body", there
is this text:


   "Declarations for facets, receptacles, event sources, event sinks,
    and attributes all map onto operations on the component's equivalent
    interface.  These declarations and their meanings are described in
    detail below."


In the following sections, I see facets, receptacles, event sources,
and event sinks described, but I see no mention of attributes.
It would be usefult to have an example of attributes in an appropriate
place, as outlined by section 1.3.3.


In section "1.10 Configuration with Attributes", I see that configurators
are described, but I see no example of using attributes directly
to configure a component.


It would be very useful to include a small example to illustrate
how to configure a component directly by using attributes.


Diego Sevilla Ruiz <dsevilla@ditec.um.es> gave this
C++ example on the CCM mailing list ( http://moriarty.dif.um.es/mailman/listinfo/ccm ):


======================================================


component Whatever
{
        attribute long cacheMaxKb;
};


home WhateverHome manages Whatever
{
};


// C++
WhateverHome_var weh = // obtain ref
Whatever_var we = weh->create();


we->cacheMaxKb(200);


we->configuration_complete();


======================================================


I don't suggest that this example be used verbatim,
but a similar example would be useful to have in the
CCM spec.

Resolution: duplicate of issue 5898
Revised Text:
Actions taken:
April 10, 2003: received issue
April 24, 2003: closed issue, duplicate of 5898

Issue 7902: sections 1, 3, 4, 5 essentially empty (components-ftf)

Click
here for this issue's archive.
Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com)
Nature: Uncategorized Issue
Severity:
Summary:
The Convenience Document has sections 1, 3, 4, 5 essentially empty except for 'Editorial Comment: Needs to be completed'. They do need to be completed!
Even worse, section 2, Conformance, also has a similar 'needs to be completed': though it does contain some text it is nothing like a conformance statement.
I found it unclear whether the spec was providing a normative metamodel or just a normative profile: the text to be added to Section 1 (Scope)  and Section 2 (Conformance) should clarify.

Resolution: see below
Revised Text: Resolution: o Sections 1, 3, 4, 5 have to be completed (or changed) o Section 2 has to be changed Discussion: o Section 1 "Scope", page 1: replace the sentence "Editorial Comment: Needs to be completed" with the following text: "The CORBA Component Model (CCM) is a comprehensive component architecture based on the reliable and well-proven CORBA middleware. It contains concepts that allow multi-interface components, event based communication, port based configuration and flexible implementation structures. These concepts are specified in the CCM metamodel defined in the OMG CORBA Components Specification, formal/02-06-65. This specification provides the normative UML Profile for CORBA Components. The Profile defines a set of UML 1.5 extensions to represent CCM concepts like CORBA Component or CORBA Home. It is based on the UML Profile for CORBA, formal/02-04-01 and extends this Profile to allow the modeling of additional concepts of ComponentIDL and Component Implementation Framework (CIF) according to the CCM metamodel. UML Profile for CORBA Components FTF2 Disposition: Resolved OMG Issue No: 7902 Document ptc/2004-05-14 9 This specification is compliant with the Model Driven Architecture (MDA) defined by the OMG and provides a standard means for expressing CCMbased applications (PSMs) using UML notation and thus to support all kind of MDA model transformations such PIM?PSM or PSM?PSM and also work with MOF repositories." o Section 2 "Conformance", page 1: replace the text: "This specification is compliant with the Model Driven Architecture (MDA) defined by the OMG. The UML Profile for CORBA Components specification was designed to provide a standard means for expressing CCM-based applications (PSMs) using UML notation and thus to support all kind of MDA model transformations such PIM?PSM or PSM?PSM and also work with MOF repositories." with the following text: "This specification defines three conformance points. Implementations must support all these conformance points: o Implementation of the UML Profile for CORBA defined in formal/02-04-01. o Implementation of the ComponentIDL Profile defined in section 8.1. o Implementation of the CIF Profile defined in section 8.2." o Section 3 "Normative References", page 1: add the text: "The following normative documents contain provisions which, through reference in this text, constitute provisions of this specification. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. o Unified Modeling Language (UML) Specification, Version 1.5 o CORBA Components Specification, Version 3.0 o The UML Profile for CORBA, Version 1.0 o MOF Specification, Version 1.4" and add in References, page 37 the reference to the UML Profile for CORBA: "[7] The UML Profile for CORBA, OMG TC Document formal/02-04-01" o Section 4 "Terms and Definitions", page 1: replace the text: "Editorial Comment: Needs to be completed (or possibly eliminated)." with UML Profile for CORBA Components FTF2 Disposition: Resolved OMG Issue No: 7902 Document ptc/2004-05-14 10 "artifact An element which descibes abstractions from programming language constructs like classes. component A basic metatype in CORBA which is a specialization and extension of an interface definition. component type A specific, named collection of features that can be described by an IDL component definition or a corresponding structure in an Interface Repository. facet A distinct named interface provided by the component for client interaction. factory A home operation which supports creation semantics. finder A home operation which supports search semantics. home A metatype that acts as a manager for instances of a specified component type. port A surface feature through which clients and other elements of an application environment may interact with a component. receptacle A named connection point that describes the component's ability to use a reference supplied by some external agent. segment An element which describes a segmented implementation structure for a component implementation." Section 5 "Symbols", page 1: replace the text: "Editorial Comment: Needs to be completed (or possibly eliminated)." with "CCM CORBA Component Model CIF Component Implementation Framework IDL Interface Definition Language MDA Model Driven Architecture UML Profile for CORBA Components FTF2 Disposition: Resolved OMG Issue No: 7902 Document ptc/2004-05-14 11 PIM Platform Independent Model PSM Platform Specific Model UML Unified Modeling Language"
Actions taken:
November 4, 2004: received issue
May 9, 2005: closed issue\

Discussion:
OMG Issue No: 7902
The Convenience Document has sections 1, 3, 4, 5 essentially empty except for
'Editorial Comment: Needs to be completed'. They do need to be completed!
Even worse, section 2, Conformance, also has a similar 'needs to be completed':
though it does contain some text it is nothing like a conformance statement.
I found it unclear whether the spec was providing a normative metamodel or just
a normative profile: the text to be added to Section 1 (Scope) and Section 2
Section 1 “Scope”, page 1: replace the sentence “Editorial Comment:
Needs to be completed” with the following text:
”The CORBA Component Model (CCM) is a comprehensive component
architecture based on the reliable and well-proven CORBA middleware. It
contains concepts that allow multi-interface components, event based
communication, port based configuration and flexible implementation
structures. These concepts are specified in the CCM metamodel defined
in the OMG CORBA Components Specification, formal/02-06-65.
This specification provides the normative UML Profile for CORBA
Components. The Profile defines a set of UML 1.5 extensions to represent
CCM concepts like CORBA Component or CORBA Home. It is based on
the UML Profile for CORBA, formal/02-04-01 and extends this Profile to
allow the modeling of additional concepts of ComponentIDL and
Component Implementation Framework (CIF) according to the CCM OMG Issue No: 7902
This specification is compliant with the Model Driven Architecture (MDA)
defined by the OMG and provides a standard means for expressing CCM-based
applications (PSMs) using UML notation and thus to support all
kind of MDA model transformations such PIM ¡÷PSM or PSM ¡÷PSM and
also work with MOF repositories.¡¨
¡E Section 2 ¡§Conformance¡¨, page 1: replace the text:
¡§This specification is compliant with the Model Driven Architecture (MDA)
defined by the OMG. The UML Profile for CORBA Components
specification was designed to provide a standard means for expressing
CCM-based applications (PSMs) using UML notation and thus to support
all kind of MDA model transformations such PIM ¡÷PSM or PSM ¡÷PSM
and also work with MOF repositories.¡¨ with the following text:
¡§This specification defines three conformance points. Implementations
must support all these conformance points:
¡E Implementation of the UML Profile for CORBA defined in
formal/02-04-01.
¡E Implementation of the ComponentIDL Profile defined in section
8.1.
¡E
Implementation of the CIF Profile defined in section 8.2.¡¨
¡E Section 3 ¡§Normative References¡¨, page 1: add the text:
¡§The following normative documents contain provisions which, through
reference in this text, constitute provisions of this specification. For dated
references, subsequent amendments to, or revisions of, any of these
publications do not apply.
¡E Unified Modeling Language (UML) Specification, Version 1.5
¡E CORBA Components Specification, Version 3.0
¡E The UML Profile for CORBA, Version 1.0
¡E MOF Specification, Version 1.4¡¨
and add in References, page 37 the reference to the UML Profile for
CORBA:
¡§[7] The UML Profile for CORBA, OMG TC Document formal/02-04-01¡¨
¡E Section 4 ¡§Terms and Definitions¡¨, page 1: replace the text:
"Editorial Comment: Needs to be completed (or possibly eliminated).¡¨ with “artifact
An element which descibes abstractions from programming language
constructs like classes.
component
A basic metatype in CORBA which is a specialization and extension of an
interface definition.
component type
A specific, named collection of features that can be described by an IDL
component definition or a corresponding structure in an Interface
Repository.
facet
A distinct named interface provided by the component for client
interaction.
factory
A home operation which supports creation semantics.
finder
A home operation which supports search semantics.
home
A metatype that acts as a manager for instances of a specified component
type.
port
A surface feature through which clients and other elements of an
application environment may interact with a component.
receptacle
A named connection point that describes the component’s ability to use a
reference supplied by some external agent.
segment
An element which describes a segmented implementation structure for a
component implementation.”
Section 5 “Symbols”, page 1: replace the text: "Editorial Comment: Needs
to be completed (or possibly eliminated).” with
”CCM CORBA Component Model
CIF Component Implementation Framework
IDL Interface Definition Language
MDA Model Driven Architecture  PIM Platform Independent Model
PSM Platform Specific Model
UML Unified Modeling Language”


Issue 7903: Section 7, Overview (components-ftf)

Click
here for this issue's archive.
Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com)
Nature: Uncategorized Issue
Severity:
Summary:
Section 7, Overview consists only of 3 bullets that are instructions to an author rather than an overview e.g. "Explain relations to BaseIDL package"

Resolution:
Revised Text: Resolution: o Complete the section Discussion: o Delete the bullets in the section 7 "Overview", page 3: o Add the text in the section 7 "Overview", page 3: "The UML Profile for CORBA Components specification was designed to provide a standard means for expressing the semantics of CORBA Component Model (CCM) using UML notation and thus to support expressing these semantics with UML tools. The Profile described in this manual are aimed at software designers and developers who want to design component-based CORBA applications. There is already an OMG Standard that defines how to model pure CORBA applications using UML: The UML Profile for CORBA (or CORBA Profile, formal/02-04-01). The UML Profile for CORBA Components (or CCM Profile) is considered as an extension to the pure CORBA Profile and strictly based on its definition exactly like the CORBA Components Standard (formal/02-06-65) is considered as an extension to the Common Object Request Broker Architecture and Specification that contains the architecture and specifications for base CORBA Interface Definition Language (IDL). The dependencies between UML, CORBA Profile and CCM Profile are shown in the Figure 1." Replace the text in the section 7.1 on the page 3: "The CCM metamodel is defined on top of the CORBA 2 metamodel. We have the same relationship at the profile level. The CCM profile uses the CORBA2 profile. It directly specializes the following stereotypes:" UML Profile for CORBA Components FTF2 Disposition: Resolved OMG Issue No: 7903 Document ptc/2004-05-14 13 with "The CCM metamodel is defined on top of the CORBA metamodel (BaseIDL Package, see Figure 2). We have the same relationship at the profile level, it means that the CCM Profile is defined on top of the CORBA Profile. The CCM Profile uses the definition of all CORBA data types and specializes the following stereotypes defined in the CORBA Profile:".
Actions taken:
November 4, 2004: received issue
May 9, 2005: closed issue

Issue 7911: On Page 18 - Figure 11 Home mapping (components-ftf)

Click
here for this issue's archive.
Nature: Clarification
Severity: Significant
Summary:
On Page 18 - Figure 11 Home mapping. To me, it doesn't seems properly that CORBAValue inherits from AssociationClass. Perhaps it make sense that the HomeDef gets an attribute with name 'primary key'. 

Resolution:
Revised Text:
Actions taken:
November 16, 2004: received issue
May 9, 2005: closed issue

Discussion:
Resolution:
o The CORBAValue doesn't extend the metaclass AssociationClass, but
Class. Define a new stereotype <<CORBAPrimaryKey >> that extends the
metaclass Association.
o Add new relationship between CORBAHome and CORBAValue: an
Association with defined stereotype << CORBAPrimaryKey >>.
Discussion:
o Update the Table 7, page 12-13: add the stereotype
<<CORBAPrimaryKey>> for Association (see Issue 7914, page 21 (Table
5) )
o Update the following text on the page 12:
"A "CORBAHome" can be associated with a primary key (necessary for
persistent components). There is exactly one key instance for each
(persistent component, home) instance couple. To enforce this constraint,
the primary key is represented using a "CORBAValue" stereotyped
AssociationClass. The "CORBAValue" stereotype was defined in the UML
Profile for CORBA [4]." to
"A "CORBAHome" can be associated with a primary key (necessary for
persistent components). There is exactly one key instance for each
(persistent component, home) instance couple. To enforce this constraint,
the primary key is represented using a "CORBAValue" stereotyped Class.
The "CORBAValue" stereotype was defined in the UML Profile for CORBA
[7]. The relationship between home and primary key is represented by an
Association with defined stereotype "CORBAPrimaryKey".
UML Profile for CORBA Components FTF2 Disposition: Resolved
OMG Issue No: 7911
Document ptc/2004-05-14 15
o Update the example Figure 7, page 15: delete the relationship between
Key and C1Home classes and add the stereotyped with
<<CORBAPrimaryKey>> association between these both classes as
shown below:
<<CORBAComponent>>
C1
<<CORBAComponent>>
C2
<<CORBAHome>>
C1Home
<<CORBAHome>>
C2Home
<<CORBAValue>>
Key
<<CORBAInterface>>
I1 <<CORBAInterface>>
I2
<<CORBAHome>>
myHome
<<CORBAManages>>
1 *
<<CORBAManages>>
1 *
<<CORBAFinder>>
+findByName(in name:string)
<<CORBAFactory>>
+create(in name:string)
<<CORBAManages>>
1
*
<<CORBASupports>> <<CORBASupports>>
<<CORBAValue>>
PrimaryKeyBase _key : string
Components
1 <<CORBAPrimaryKey>>
1
o Update the Figure 11, page 18: according to the Issue 7914 change all
dependency stereotypes <<BaseElement>> into <<stereotype>>, add the
graphical relation "represents" between ValueDef and CORBAValue,
delete the metaclass AssociationClass and add the dependency
relationship between CORBAValue and Class. Add the new metaclass
CORBAPrimaryKey (ComponentIDLProfile package), add the graphical
relation "represents" between the association Key_Home and
CORBAPrimaryKey and add the stereotyped with <<stereotype>>
dependency relationship between CORBAPrimaryKey and Association
metaclass. The updated figure is shown below.
ComponentIDL
<<metaclass>>
ComponentDef
ComponentIDLProfile
UML
{represents}
{represents}
{represents}
{represents}
{represents}
HomeDef
FinderDef
FactoryDef
ValueDef
<<stereotype>>
CORBAHome
<<stereotype>>
CORBAManages
<<stereotype>>
CORBAFactory
<<stereotype>>
CORBAFinder
<<stereotype>>
CORBAValue
<<metaclass>>
Class
<<metaclass>>
Association
Operation
1
primary_key
*
0..1
factory *
1
finder
* homeEnd 1
components *
<< stereotype >>
<< stereotype >>
<< stereotype >>
<< stereotype >>
<< stereotype >>
homeEnd
Key_Home
<<metaclass>>
CORBAProfile
BaseIDL
<<stereotype>>
CORBAPrimaryKey
{represents}
<< stereotype >>
o Delete in section 7.1, page 3 the bullet "AssociationClass".


Issue 7912: Section 7.2 (components-ftf)

Click
here for this issue's archive.
Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com)
Nature: Uncategorized Issue
Severity:
Summary:
Section 7.2 states says that "BaseIDL that is a MOF-compliant
description of the pre-existing CORBA Interface Repository that is
already specified in the UML Profile for CORBA" - however in the
document referred to for the latter (ptc/00-10-01) there is no mention
of BaseIDL - in fact there is no metamodel only a pure profile. BTW a
more up-to-date reference would be formal/02-04-01. This spec is clearly
dependent on BaseIDL and so it's important to have a proper reference
(and this should be in Section 3). In fact the appropriate reference for
BaseIDL seems to be the CORBA components spec.
 
The front page of convenience document, and document footer, still refer
to it as a (Final) Adopted Specification

Resolution:
Revised Text:
Actions taken:
November 16, 2004: received issue
May 9, 2005: closed issue

Discussion:
Resolution:
o Replace the text on the page 4
o Replace the document number in section 7.1 "ptc/00-10-01" with
"formal/02-04-01" and add the bullet "The UML Profile for CORBA,
Version 1.0" in the Section 3.
o Replace the the front page of convenience document and document footer
with "UML Profile for CORBA Components Specification, v1"
Discussion:
o Replace the text in section 7.2 on the page 4:
o "The first ComponentIDL Package expresses the Component Model
extensions. This package is related to the reference metamodel BaseIDL
that is a MOF-compliant description of the pre-existing CORBA Interface
Repository that is already specified in the UML Profile for CORBA (see
Import dependencies between UML, CORBA and CCM packages). The
CIF Package contains metaclasses and associations for definition the
programming model for constructing component implementations, and is
based on the reference ComponentIDL metamodel." with
"This package is dependent upon the BaseIDL Package which is a MOFcompliant
metamodel of the base CORBA IDL. Since these extensions are
derived from the previously-existing IDL base, it was not possible to define
UML Profile for CORBA Components FTF2 Disposition: Resolved
OMG Issue No: 7912
Document ptc/2004-05-14 17
a MOF-compliant metamodel for the extensions without defining a MOFcompliant
metamodel for the IDL base. Therefore, the BaseIDL
metamodel was specified and explained in the CORBA Components
Specification, section 8.1.1 "BaseIDL Package". The UML Profile for
CORBA is based on this metamodel. The ComponentIDL metamodel
concepts are specified and explained in the CORBA Components
Specification, section 8.1.2 "ComponentIDL Package". This document
gives only the short introduction of the ComponentIDL Package in section
8.1.1.
The CIF Package contains metaclasses and associations for definition the
programming model for constructing component implementations. This
CIF Package depends on the ComponentIDL Package since its
main purpose is to enable the modeling of implementations for
components specified using the ComponentIDL definitions. The
short introduction of the CIF Package content is given in section 8.2.1
this document.
The XMI format for the exchange of CCM metadata is provided in the
CORBA Components Specification, sections 8.3.1 and 9.4.1."


Issue 7913: Minor comments re Components FTF (components-ftf)

Click
here for this issue's archive.
Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com)
Nature: Uncategorized Issue
Severity:
Summary:
The Report should reference the document number of the Final Adopted
Spec as the base document.
 
 - Issue 7628: the final line of the resolution is too vague "add the
package...and update relations"
 
 - There should be accompanying MOF XMI (for the metamodel) and UML XMI
(for the profile).

Resolution:
Revised Text:
Actions taken:
November 16, 2004: receive dissue
May 9, 2005: closed issue

Discussion:
Resolution:
o This report references the document number ptc/04-10-07 as the base
document
o MOF XMI is included in the CORBA Components Specification (formal/02-
06-65), sections 8.3.1 and 9.4.1.
Generate UML XMI and provide it to OMG.
Discussion:
o Add the sentence to the section 7.2, page: "The XMI format for the
exchange of CCM metadata is already defined in the CORBA
Components Specification, sections 8.3.1 and 9.4.1."
Add the sentence to the section 8 "CCM Profile Definition", page 5: "The
UML "virtual" metamodel of all stereotype and tagged value declarations
for the CCM Profile is provided in the OMG documents ptc/2005-01-02
(Rose model file) or ptc/2005-01-03 (XML file)".


Issue 7914: use the proper notation for expressing Profiles (components-ftf)

Click
here for this issue's archive.
Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com)
Nature: Uncategorized Issue
Severity:
Summary:
Should use the proper notation for expressing Profiles.  The
presentation of the Profile (e.g. in Table 1) is confusing in mixing
references to the equivalent metamodel with references to the reference
metamodel (UML) being extended by the Profile. Though the diagrams in
the separate section 8.1.3 make things a lot clearer.

Resolution:
Revised Text: Resolution: o Complete section 8 "CCM Profile Definition" with new text for more understanding how this Profile has been defined. o Replace tables (1-14) and add the UML representation corresponding to the new tables o Change the Mapping Figures 9, 10, 11, 15 (<<BaseElement>> in <<stereotype>>) Discussion: o Add the new text in the section 8 "CCM Profile Definition" on page 5: "The general definition of a UML Profile can be found in the UML Profile for CORBA specification in the section 2.1 "General Definition of a UML Profile". The CCM Profile specifies a set of UML extensions like stereotypes, tagged values and constraints. The concept of stereotype is the most important and provides a way of classifying elements so that they behave in some respects as if they were instances of new "virtual" metamodel constructs. The classified element properties can be expressed via tagged values. For the graphical representation of the "virtual" metamodel we use the following approach: o the model is expressed via UML class diagrams o each stereotype is expressed via a stereotyped with <<stereotype>> Classifier box UML Profile for CORBA Components FTF2 Disposition: Resolved OMG Issue No: 7914 Document ptc/2004-05-14 20 o each tagged value is expressed via commadelimited sequence of property specifications inside a pair of braces ( { } ) by a stereotype o each stereotype is a client in a UML Dependency relationship with the UML metaclass that it extends. These Dependencies are stereotyped with <<stereotype>> o Generalization Relationships among stereotypes are expressed in the standard UML manner. An alternative and usually more compact way of specifying stereotypes and tags is using tables. The columns of the stereotype specification table are defined as follows: o Stereotype: the name of the stereotype. o Base Class: the UML metamodel element that serves as the base for the stereotype. o Parent: the direct parent of the stereotype being defined (NB: if one exists, otherwise the symbol "NA" is used). o Tags: a list of all tags of the tagged values that may be associated with this stereotype (or N/A if none are defined). o Description: an informal description with possible explanatory comments. The columns of the tag specification table are defined as follows: o Tag: the name of the tag. o Stereotype: the name of the stereotype that owns this tag, or "NA" if it is a stand alone tag. o Type: the name of the type of the values that can be associated with the tag. o Multiplicity: the maximum number of values that may be associated with one tag instance. o Description: an informal description with possible explanatory comments. This specification provides both forms of specifying stereotypes and tagged values: tabular and graphical. UML Profile for CORBA Components FTF2 Disposition: Resolved OMG Issue No: 7914 Document ptc/2004-05-14 21 Constraints represent semantic information attached to an element. A list of constraints associated with a stereotype is expressed in English and OCL separately from the stereotypes and tags specification. The following OCL convenience operation is used in the UML Profile for CCM, it is defined in [7] for the metaclass ModelElement in order to produce more compact and readable OCL: The operation isStereotyped determines whether the ModelElement has a Stereotype whose name is equal to the input name. isStereotyped : (stereotypeName : String) : Boolean; self.stereotype.name = stereotypeName" o Replace the following tables: o Table 1 (page 6) with the following Table 1: Stereotype Base Class Parent Tags Description CORBAComponent <<CORBAComponent>> Class CORBAInterface NA A CORBA Component is a class with specific, named collection of features like attributes or ports. An instance of the component has state and identity. CORBASupports <<CORBASupports>> Generalization NA NA CORBASupports is a generalization relationship between component and its inherit interface(s). Table 1: CORBAComponent and CORBASupports Stereotypes o Table (page 7) has no information, and thus it has been completely deleted. o Add the following UML Notation: UML Profile for CORBA Components FTF2 Disposition: Resolved OMG Issue No: 7914 Document ptc/2004-05-14 22 Figure 4: Explicit Modeling of CORBAComponent and CORBASupports stereotypes o Replace Table 3 (page 8) with the following Table 2 (Table 3 becomes Table 2): Stereotype Base Class Parent Tags Description CORBAProvides << CORBAProvides >> Association NA NA A CORBAProvides is an association between component and its provided interfaces that represents the component port called facet. CORBAUses << CORBAUses >> Association NA multiple A CORBAUses is an association between component and interfaces that component uses. The association represents the component port called receptacle. Table 2: CORBAProvides and CORBAUses Stereotypes o Replace Table 4 (page 8) with the following Table 3 (Table 4 becomes Table 3): Generalization << metaclass>> Class <<metaclass>> CORBAComponent <<stereotype>> CORBAInterface (from CORBAProfile) <<stereotype>> <<stereotype>> CORBASupports <<stereotype>> <<stereotype>> UML Profile for CORBA Components FTF2 Disposition: Resolved OMG Issue No: 7914 Document ptc/2004-05-14 23 Tag Stereotype Type Multiplicity Description multiple CORBAUses Boolean 1 Indicates whether the multiple connections to the receptacle may exist simultaneously or not. Table 3: Tag definition for CORBAUses stereotype o Add the following UML Notation: Figure 6: Explicit Modeling of CORBAUses and CORBAProvides Stereotypes o Replace Table 5 (page 10) with the following Table 4 (Table 5 becomes Table 4): Stereotype Base Class Parent Tags Description CORBAEvent << CORBAEvent >> Class CORBAValue NA A CORBAEvent class represents an event type (data type for component current state) that one component wishes to notify (event source) another component about (event sink). Association <<metaclass>> CORBAUses <<stereotype>> CORBAProvides <<stereotype>> <<stereotype>> <<stereotype>> { "taggedValue" multiple : Boolean [1] } UML Profile for CORBA Components FTF2 Disposition: Resolved OMG Issue No: 7914 Document ptc/2004-05-14 24 CORBAEventPort << CORBAEventPort >> Association NA NA A CORBAEventPort is an association between a component and an event. CORBAEventPort is an abstract class and can not be instantiated directly. CORBAEmits << CORBAEmits >> Association CORBAEventPort NA A CORBAEmits is an association between component and events that this component emits. CORBAPublishes << CORBAPublishes >> Association CORBAEventPort NA A CORBAPublishes is an association between component and events that this component publishes. CORBAConsumes << CORBAConsumes >> Association CORBAEventPort NA A CORBAConsumes is an association between component and events that this component consumes. Table 4: CORBAEvent, CORBAEventPort, CORBAEmits, CORBAPublishes and CORBAConsumes stereotypes o Add the following UML Notation: Figure 8: Explicit Modeling of CORBAEvent, CORBAEventPort, CORBAEmits, CORBAPublishes and CORBAConsumes stereotypes o Delete the Table 6 (page 10): it contains no information. Class <<metaclass>> Association <<metaclass>> CORBAValue (from CORBAProfile) <<stereotype>> <<stereotype>> CORBAEvent <<stereotype>> CORBAEmits <<stereotype>> CORBAPublishes <<stereotype>> CORBAEventPort <<stereotype>> CORBAConsumes <<stereotype>> <<stereotype>> UML Profile for CORBA Components FTF2 Disposition: Resolved OMG Issue No: 7914 Document ptc/2004-05-14 25 o Replace Table 7 (page 12) with the following Table (Table 7 becomes Table 5): Stereotype Base Class Parent Tags Description CORBAHome << CORBAHome >> Class CORBAInterface NA A CORBAHome is a class that acts as a manager for instances of a specified component. CORBA Home inherits from CORBA Interface and provides operations (factory and finder) to manage component life cycles, and optionally, to manage associations between component instances and primary key values. A home must be declared for every component declaration. CORBAFactory << CORBAFactory >> Operation NA NA CORBAFactory is an operation that creates a new instance of the component associated with the home object. CORBAFinder << CORBAFinder >> Operation NA NA CORBAFinder is an operation that obtains homes for particular component e.g. CORBAManages << CORBAManages >> Association NA NA CORBAManages is an association between components and their homes. CORBAPrimaryKey << CORBAPrimaryKey>> Association NA NA CORBAPrimaryKey is an association between home and its primary key. Table 5: CORBAHome, CORBAFactory, CORBAFinder, CORBAManages and CORBAPrimaryKey stereotypes o Add the following UML Notation: UML Profile for CORBA Components FTF2 Disposition: Resolved OMG Issue No: 7914 Document ptc/2004-05-14 26 Figure 10: Explicit Modeling of CORBAHome, CORBAFactory, CORBAFinder, CORBAManages and CORBAPrimaryKey stereotypes o Replace Table 9 (page 20) with the following Table (Table 9 becomes Table 6): Stereotype Base Class Parent Tags Description CORBAComponentImpl <<CORBAComponentImpl> > Class NA category A CORBAComponentImpl is a class for implementation definition for a given component definition. CORBAImplements << CORBAImplements >> Association NA CORBAImplements is an association between components and component implementations and between homes and home implementations. Table 6: CORBAComponentImpl and CORBAImplements stereotypes o Replace Table 10 (page20) (Table 10 becomes Table 7): Association <<metaclass>> Class <<metaclass>> CORBAHome <<stereotype>> CORBAManages <<stereotype>> CORBAPrimaryKey <<stereotype>> Operation CORBAInterface <<metaclass>> (from CORBAProfile) <<stereotype>> <<stereotype>> CORBAFinder <<stereotype>> CORBAFactory <<stereotype>> <<stereotype>> <<stereotype>> <<stereotype>> <<stereotype>> UML Profile for CORBA Components FTF2 Disposition: Resolved OMG Issue No: 7914 Document ptc/2004-05-14 27 Tag Stereotype Type Multiplicity Description category CORBAComponentImpl ComponentCategory 1 Indicates the life cycle category of the component implementation. CCM specifies four categories of the component implementation: session, entity, process and service. Table 7: Tag definition for CORBAComponentImpl stereotype o Add the following UML Notation: Figure 17: Explicit Modeling of CORBAComponentImpl and CORBAImplements stereotypes o Replace Table 11 (page 21) with the following Table (Table 11 becomes Table 8): Stereotype Base Class Parent Tags Description CORBAHomeImpl <<CORBAHomeImpl>> Class NA NA A CORBAHomeImpl is a class for implementation definition for a given home definition. CORBAComponentImpl { "taggedValue" category:ComponentCategory[1] } <<stereotype>> CORBAImplements <<stereotype>> Class <<metaclass>> <<stereotype>> Association <<metaclass>> ComponentCategory session entity process sevice <<enumeration>> <<stereotype>> UML Profile for CORBA Components FTF2 Disposition: Resolved OMG Issue No: 7914 Document ptc/2004-05-14 28 CORBAManages << CORBAManages >> Association NA NA CORBAManages is an association between components and their homes (see Table 5) and also between component implementations and their home implementations. Table 8: CORBAHomeImpl and CORBAManages stereotypes o Delete the Table 12 (page 22): it contains no information. o Replace Table 13 (page 23) with the following Table (Table 13 becomes Table 9): Stereotype Base Class Parent Tags Description CORBASegment << CORBASegment>> Class NA isSerialized features A CORBASegment is a class that is used to model a segmented implementation structure for a component implementation. This means that the behaviour for each component feature can be provided by a separate segment of the component implementation. . CORBAArtifact << CORBAArtifact >> Class NA NA A CORBAArtifact is a class that represents the abstractions from programming language constructs like Classes. . Table 9: CORBASegment and CORBAArtifact stereotypes o Update Table 14 (page 23) Table 14 becomes Table 10: Tag Stereotype Type Multipl icity Description isSerialized CORBASegment Boolean 1 Indicates that the access to segment is required to be serialized or not. features CORBASegment String 1..n Indicates which component feature is provided by the segment. Table 10: Tag definitions for CORBASegment stereotype UML Profile for CORBA Components FTF2 Disposition: Resolved OMG Issue No: 7914 Document ptc/2004-05-14 29 o Add the following UML Notation: Figure 20: Explicit Modeling of CORBASegment and CORBAArtifact stereotypes o Update the Mapping Figures 9, 10, 11, 15: replace each <<BaseElement>> stereotype with <<stereotype>> stereotype. Disposition: Resolved Class <<metaclass>> CORBASegment <<stereotype>> <<stereotype>> CORBAArtifact <<stereotype>> <<stereotype>> { "taggedValue" features:String[1..n] } { "taggedValue" isSerialized:Boolean[1] } UML Profile for CORBA Components FTF2 Disposition: Resolved OMG Issue No: 7915 Document ptc/2004-05-14 30
Actions taken:
November 16, 2004: received issue
May 9, 2005: closed issue

Issue 7915: Figure 1 (components-ftf)

Click
here for this issue's archive.
Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com)
Nature: Uncategorized Issue
Severity:
Summary:
 Figure 1 - the import dependencies should be shown with an 'import'
stereotype

Resolution:
Revised Text:
Actions taken:
November 16, 2004: received issue
May 9, 2005: closed issue

Discussion:
Resolution:
o Add the <<import>> stereotype.
Discussion:
o Add <<import>> stereotypes for all three Dependencies Figure 1, page 3
as follows


Issue 7916: Section 7.1, line1: (components-ftf)

Click
here for this issue's archive.
Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com)
Nature: Uncategorized Issue
Severity:
Summary:
7.1, line1:  It's not strictly true to say that the CCM Profile
'specializes' the UML Core package: the latter is the reference
metamodel for the former.

Resolution:
Revised Text:
Actions taken:
November 16, 2004: received issue
May 9, 2005: closed issue

Discussion:
Resolution:
o The expression is not correct: change the text
Discussion:
o Replace the word "specializes" with "depends on" in the section 7.1, first
sentence, page 3.


Issue 7917: - Figure 2 (components-ftf)

Click
here for this issue's archive.
Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com)
Nature: Uncategorized Issue
Severity:
Summary:
 - Figure 2: the arrows are not correct: they should represent a valid
MOF 1.4 Package relationship (one of clustering, generalization,
nesting, import). More seriously, since ComponentIDL is nested within
metamodel CCM it is not allowed to have an import/cluster relationship
with an external metamodel (BaseIDL in this case): MOF constraint [C49]
states that "Nested Packages cannot import or cluster other Packages or
Classes.".

Resolution:
Revised Text:
Actions taken:
November 16, 2004: received issue
May 9, 2005: closed issue

Discussion:
Resolution:
o Update the Figure 2: delete the stereotyped with <<metamodel>> CCM
package
o The arrows should be changed in dependency arrows: the ComponentIDL
Package is dependent upon the BaseIDL Package, the CIF Package is
dependent upon the ComponentIDL Package.
o Change the Figure 2 caption
Discussion:
o Update the Figure 2 and figure caption as follows:
BaseIDL
<<metamodel>>
ComponentIDL
<<metamodel>>
CIF
<<metamodel>>
Figure 2: Package structure of CCM metamodels
o Update the text in section 7.2, page 4
"As shown in Figure 2 the whole CCM concept space represented by the
package CCM with the stereotype <<metamodel>> consists of further
packages ComponentIDL and CIF (Component Implementation
Framework). The first Package ComponentIDL expresses the Component
Model extensions. This package is related to the reference metamodel
BaseIDL that is a MOF-compliant description of the pre-existing CORBA
UML Profile for CORBA Components FTF2 Disposition: Resolved
OMG Issue No: 7917
Document ptc/2004-05-14 33
Interface Repository that is already specified in the UML Profile for
CORBA (see Import dependencies between UML, CORBA and CCM
packages). The CIF Package contains metaclasses and associations for
definition the programming model for constructing component
implementations, and is based on the reference ComponentIDL
metamodel." with the following text:
"As shown in Figure 2 the whole CCM concept space is represented by
three metamodel Packages: BaseIDL, ComponentIDL and CIF
(Component Implementation Framework).
The ComponentIDL Package expresses the Component Model extensions
to CORBA IDL. This package is dependent upon the BaseIDL Package
which is a MOF-compliant metamodel of the base CORBA IDL. Since
these extensions are derived from the previously-existing IDL base, it was
not possible to define a MOF-compliant metamodel for the extensions
without defining a MOF-compliant metamodel for the IDL base. Therefore,
the BaseIDL metamodel was specified and explained in the CORBA
Components Specification, section 8.1.1 "BaseIDL Package". The UML
Profile for CORBA is based on this metamodel. The ComponentIDL
metamodel concepts are specified and explained in the CORBA
Components Specification, section 8.1.2 "ComponentIDL Package". This
document gives only the short introduction of the ComponentIDL Package
in section 8.1.1.
The CIF Package contains metaclasses and associations for definition the
programming model for constructing component implementations. This
CIF Package depends on the ComponentIDL Package since its main
purpose is to enable the modeling of implementations for components
specified using the ComponentIDL definitions. The short introduction of
the CIF Package content is given in section 8.2.1 this document.
The XMI format for the exchange of CCM metadata is provided in the
CORBA Components Specification, sections 8.3.1 and 9.4.1.".


Issue 7918: 7.2, sentence 3 (components-ftf)

Click
here for this issue's archive.
Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com)
Nature: Uncategorized Issue
Severity:
Summary:
7.2, sentence 3: it is confusing to refer to BaseIDL as the
'reference metamodel' since that terminology has a specific meaning for
Profiles which does not apply here.

Resolution:
Revised Text:
Actions taken:
November 16, 2004: received issue
May 9, 2005: closed issue

Discussion:
Resolution:
o Change the sentence: "This package is related to the reference
metamodel BaseIDL" to "This package is dependent upon the BaseIDL
Package".
Discussion:
o Already covered by Issue 7912.


Issue 7919: Section 8.1.1 (components-ftf)

Click
here for this issue's archive.
Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com)
Nature: Uncategorized Issue
Severity:
Summary:
8.1.1 the heading is 'IDL metamodel' but the caption is 'IDL3
Metamodel', and in 7.2 it is 'ComponentIDL'.

Resolution:
Revised Text:
Actions taken:
November 16, 2004: received issue
May 9, 2005: closed issue

Discussion:
Resolution:
o change the 8.1.1 heading
o change the figure caption
o change the second sentence on the page 6 "The IDL3 language has…" in
"The ComponentIDL (known also as IDL3) language has…"
Discussion:
o Update the heading 8.1.1 (page 5) "IDL metamodel" with "ComponentIDL
metamodel"
o Update the figure caption (Figure 3, page 5) "IDL3 Metamodel" with
"ComponentIDL metamodel"
o Replace the second sentence, page 6 "The IDL3 language has…" with
"The ComponentIDL (known also as IDL3) language has…"
Disposition: Resolved


Issue 7920: Sections 8.1.1, 8.2.1: (components-ftf)

Click
here for this issue's archive.
Source: Adaptive (Mr. Pete Rivett, pete.rivett(at)adaptive.com)
Nature: Uncategorized Issue
Severity:
Summary:
 8.1.1, 8.2.1: the description of the metamodel is very skimpy: for
example there is no description anywhere about what FinderDef is. There
should be a separate section for each class with a description of each
attribute/reference. Conversely the text also talks about 'component
types' which have 'attributes' (and ports) - this has no obvious
correspondence with the metamodel (are the attributes in the BaseIDL
package?). Likewise the text refers to a component being able to inherit
from one other interface - this is not depicted.
 
 - most of the OCL constraints make use of 'isStereotyped()' which is
not OCL, UML nor defined in this specification.
 
 - Table 10: most of the Tags seem to have no correspondence in the
metamodel e.g. containerType.

Resolution:
Revised Text:
Actions taken:
November 16, 2004: received issue
May 9, 2005: closed issue

Discussion:
Resolution:
o This specification defines the UML Profile for CCM and not the CCM
metamodel. The CCM Metamodel was already defined and detailed
expressed in the CORBA Components Specification, OMG document
formal/02-06-65.
o The CORBA component (see ComponentIDL metamodel, class
ComponentDef) inherits from the CORBA interface (see ComponentIDL
metamodel, class InterfaceDef), and the interface has attributes and
operations (see BaseIDL metamodel in formal/02-06-65)
o A component definition may optionally support one or more interfaces, or
in the case of extended components, inherit from a component that
supports one or more interfaces. This is shown in the ComponentIDL
metamodel by the association "supportsItf" between ComponentDef and
InterfaceDef metaclasses (see page 331 in formal/02-06-65).
o The OCL constraint 'isStereotyped()' is already covered by the Issue 7914:
UML Profile for CORBA Components FTF2 Disposition: Resolved
OMG Issue No: 7920
Document ptc/2004-05-14 37
The operation isStereotyped determines whether the ModelElement has
a Stereotype whose name is equal to the input name.
isStereotyped : (stereotypeName : String) : Boolean;
self.stereotype.name = stereotypeName"
o Delete the tags that are not in the metamodel: to use these tags the CCM
metamodel has to be extended.
Discussion:
o Update the Table 10 ( page 20): delete the following tags from the table:
containerType, containerImplType, servantLifetimePolicy,
transactionPolicy, securityPolicy, eventPolicy and persistenceMechanism