Issue 4549: Missing elements of the local mapping (java-rtf) Source: Borland Software Corporation (Mr. Vijaykumar Natarajan, nobody) Nature: Uncategorized Issue Severity: Critical Summary: In the latest spec of the idl-to-java mapping, I don't see a mapping for create_local_interface_tc() on the ORB. Also missing is tk_local_interface in TCKind. These need to be fixed quickly as this leaves the local mapping incomplete in Java. Proposal: Section 1.19.9: Add tk_local_interface to TCKind enum TCKind { tk_null, tk_void, tk_short, tk_long, tk_ushort, tk_ulong, tk_float, tk_double, tk_boolean, tk_char, tk_octet, tk_any, tk_TypeCode, tk_Principal, tk_objref, tk_struct, tk_union, tk_enum, tk_string, tk_sequence, tk_array, tk_alias, tk_except, tk_longlong, tk_ulonglong, tk_longdouble, tk_wchar, tk_wstring, tk_fixed, tk_value, tk_value_box, tk_native, tk_abstract_interface, tk_local_interface }; // java (add at the appropriate location) public static final int _tk_local_interface = 33; TCKind tk_local_interface = new TCKind(_tk_local_interface); Section 1.19.10 Copy the new ORB PIDL from CORBA 2.4 spec (which basically adds) TypeCode create_local_interface_tc( in RepositoryId id, in Identifier name ); and add to the Java section: package org.omg.CORBA_2_4; import org.omg.CORBA.TypeCode; public abstract class ORB extends org.omg.CORBA_2_3.ORB { public abstract TypeCode create_local_interface_tc(String id, String name); } Resolution: Incorporate the revised text and close issue. Also make corresponding changes in the standard source Revised Text: In section 1.19.9: Add tk_local_interface to TCKind enum as follows: enum TCKind { tk_null, tk_void, tk_short, tk_long, tk_ushort, tk_ulong, tk_float, tk_double, tk_boolean, tk_char, tk_octet, tk_any, tk_TypeCode, tk_Principal, tk_objref, tk_struct, tk_union, tk_enum, tk_string, tk_sequence, tk_array, tk_alias, tk_except, tk_longlong, tk_ulonglong, tk_longdouble, tk_wchar, tk_wstring, tk_fixed, tk_value, tk_value_box, tk_native, tk_abstract_interface, tk_local_interface } ; Then near the end of the TCKind Java declaration add (after the definition of tk_abstract_interface): public static final int _tk_local_interface = 33 ; TCKind tk_local_interface = new TCKind( _tk_local_interface ) ; In section 1.19.10, update the ORB PIDL from CORBA 2.5, which adds: TypeCode create_local_interface_tc( in RepositoryId id, in Identifier name ) In section 1.19.10, in the Java section, add to org.omg.CORBA.ORB the new method public TypeCode create_local_interface_tc( String id, String name ) { throw new org.omg.CORBA.NO_IMPLEMENT() ; } Note: We do not need to create another version of the org.omg.CORBA package for this, for the following reasons: The new preferred classes mechanism allows vendors to substitute a newer standard version of APIs in packages under org.omg into their JDK implementation. Even without 1, we can evolve classes across major releases of the JDK by adding new methods. Ultimately we could consider moving the CORBA_2_3 methods into the CORBA base classes and deprecating the CORBA_2_3 classes. Actions taken: August 30, 2001: received issue May 13, 2002: closed issue Discussion: End of Annotations:===== Date: Thu, 30 Aug 2001 12:44:13 -0700 From: Vijaykumar Natarajan Subject: Missing elements of the local mapping To: java-rtf@omg.org, issues@omg.org, andrew@omg.org Message-id: <3B8E978D.3095AA6D@inprise.com> MIME-version: 1.0 X-Mailer: Mozilla 4.51 [en]C-CCK-MCD (WinNT; U) X-Accept-Language: en Content-Type: multipart/mixed; boundary="Boundary_(ID_26+3jmwYM/O1KO1FP7Rdbw)" X-UIDL: CN@e9F$h!!2"(e99LZ!! Andrew, Could this be made an urgent issue, as the mapping of local is not complete for this version of the idl-to-java spec. Hi all, In the latest spec of the idl-to-java mapping, I don't see a mapping for create_local_interface_tc() on the ORB. Also missing is tk_local_interface in TCKind. These need to be fixed quickly as this leaves the local mapping incomplete in Java. Proposal: Section 1.19.9: Add tk_local_interface to TCKind enum TCKind { tk_null, tk_void, tk_short, tk_long, tk_ushort, tk_ulong, tk_float, tk_double, tk_boolean, tk_char, tk_octet, tk_any, tk_TypeCode, tk_Principal, tk_objref, tk_struct, tk_union, tk_enum, tk_string, tk_sequence, tk_array, tk_alias, tk_except, tk_longlong, tk_ulonglong, tk_longdouble, tk_wchar, tk_wstring, tk_fixed, tk_value, tk_value_box, tk_native, tk_abstract_interface, tk_local_interface }; // java (add at the appropriate location) public static final int _tk_local_interface = 33; TCKind tk_local_interface = new TCKind(_tk_local_interface); Section 1.19.10 Copy the new ORB PIDL from CORBA 2.4 spec (which basically adds) TypeCode create_local_interface_tc( in RepositoryId id, in Identifier name ); and add to the Java section: package org.omg.CORBA_2_4; import org.omg.CORBA.TypeCode; public abstract class ORB extends org.omg.CORBA_2_3.ORB { public abstract TypeCode create_local_interface_tc(String id, String name); } Thanks, Vijay [] vnatarajan.vcf Date: Thu, 30 Aug 2001 16:47:04 -0400 From: Mary Leland X-Mailer: Mozilla 4.75 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: Vijaykumar Natarajan Cc: java-rtf@omg.org, andrew@omg.org Subject: Re: Issue 4549: Missing elements of the local mapping References: <3B8E978D.3095AA6D@inprise.com> Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii X-UIDL: ebW!!p4=e9\VXd9S9E!! Vijay and RTF members: Vijay: Could you tighten up the proposal a bit more: exactly where text is added or changed in the current spec, and exactly what that text is? what changes are needed in the Source zip file? (I'm assuming the Java parts of your proposal also need to be put in there). Also, I'd like to understand exactly how urgent this is, since I will be out of email contact all next week (starting at 5pm US EDT tomorrow, August 31). Is it necessary to get the vote started before then, or does that not give time for the RTF members (and others) to sufficiently discuss and consider the proposal? Thanks, Mary Leland Chair, OMG IDL to Java RTF phone: (973) 443-7562 Vijaykumar Natarajan wrote: > > Andrew, > > Could this be made an urgent issue, as the mapping of local is not > complete for this version of the idl-to-java spec. > > Hi all, > > In the latest spec of the idl-to-java mapping, I don't see a mapping for > create_local_interface_tc() on the ORB. Also missing is > tk_local_interface in TCKind. These need to be fixed quickly as this > leaves the local mapping incomplete in Java. > > Proposal: > > Section 1.19.9: > > Add tk_local_interface to TCKind > enum TCKind { > tk_null, tk_void, > tk_short, tk_long, tk_ushort, tk_ulong, > tk_float, tk_double, tk_boolean, tk_char, > tk_octet, tk_any, tk_TypeCode, tk_Principal, tk_objref, > tk_struct, tk_union, tk_enum, tk_string, > tk_sequence, tk_array, tk_alias, tk_except, > tk_longlong, tk_ulonglong, tk_longdouble, > tk_wchar, tk_wstring, tk_fixed, > tk_value, tk_value_box, > tk_native, > tk_abstract_interface, > tk_local_interface > }; > > // java (add at the appropriate location) > > public static final int _tk_local_interface = 33; > TCKind tk_local_interface = new TCKind(_tk_local_interface); > > Section 1.19.10 > Copy the new ORB PIDL from CORBA 2.4 spec (which basically adds) > > TypeCode create_local_interface_tc( > in RepositoryId id, > in Identifier name > ); > > and add to the Java section: > > package org.omg.CORBA_2_4; > import org.omg.CORBA.TypeCode; > public abstract class ORB extends org.omg.CORBA_2_3.ORB { > public abstract TypeCode create_local_interface_tc(String id, String > name); > } > > Thanks, > Vijay Date: Thu, 30 Aug 2001 15:06:55 -0700 From: Vijaykumar Natarajan Subject: Re: Issue 4549: Missing elements of the local mapping To: Mary Leland Cc: Vijaykumar Natarajan , java-rtf@omg.org, andrew@omg.org Message-id: <3B8EB8FF.8C964F44@inprise.com> MIME-version: 1.0 X-Mailer: Mozilla 4.51 [en]C-CCK-MCD (WinNT; U) X-Accept-Language: en References: <3B8E978D.3095AA6D@inprise.com> <3B8EA648.96BEFF67@fpk.hp.com> Content-Type: multipart/mixed; boundary="Boundary_(ID_z7cWSTO0IqDXMLZQC/E2LA)" X-UIDL: N^c!!JaF!!(bbd9(XY!! Mary, Mary Leland wrote: > Vijay and RTF members: > > Vijay: Could you tighten up the proposal a bit more: > exactly where text is added or changed in the current spec, > and exactly what that text is? > what changes are needed in the Source zip file? > (I'm assuming the Java parts of your proposal > also need to be put in there). My proposal section did include each section that needs modification. I don't think there is any extra text (as in words) needed for this. Yes, the java sections need to go into the source zip file exactly as in the specification. > Also, I'd like to understand exactly how urgent > this is, since I will be out of email contact all next > week (starting at 5pm US EDT tomorrow, August 31). > Is it necessary to get the vote started before then, or > does that not give time for the RTF members (and others) > to sufficiently discuss and consider the proposal? I believe this is urgent because the current mapping does not provide the necessary information to fully implement local support (supporting local in the IR specifically). I am hoping it's not contentious, but getting it voted on by tomorrow does appear too aggressive. I would expect the members needing more time to evaluate it (especially if others see that there is more missing information). Thanks, Vijay > > > Thanks, > Mary Leland > Chair, OMG IDL to Java RTF > phone: (973) 443-7562 > > Vijaykumar Natarajan wrote: > > > > Andrew, > > > > Could this be made an urgent issue, as the mapping of local is not > > complete for this version of the idl-to-java spec. > > > > Hi all, > > > > In the latest spec of the idl-to-java mapping, I don't see a >mapping for > > create_local_interface_tc() on the ORB. Also missing is > > tk_local_interface in TCKind. These need to be fixed quickly as >this > > leaves the local mapping incomplete in Java. > > > > Proposal: > > > > Section 1.19.9: > > > > Add tk_local_interface to TCKind > > enum TCKind { > > tk_null, tk_void, > > tk_short, tk_long, tk_ushort, tk_ulong, > > tk_float, tk_double, tk_boolean, tk_char, > > tk_octet, tk_any, tk_TypeCode, tk_Principal, tk_objref, > > tk_struct, tk_union, tk_enum, tk_string, > > tk_sequence, tk_array, tk_alias, tk_except, > > tk_longlong, tk_ulonglong, tk_longdouble, > > tk_wchar, tk_wstring, tk_fixed, > > tk_value, tk_value_box, > > tk_native, > > tk_abstract_interface, > > tk_local_interface > > }; > > > > // java (add at the appropriate location) > > > > public static final int _tk_local_interface = 33; > > TCKind tk_local_interface = new TCKind(_tk_local_interface); > > > > Section 1.19.10 > > Copy the new ORB PIDL from CORBA 2.4 spec (which basically adds) > > > > TypeCode create_local_interface_tc( > > in RepositoryId id, > > in Identifier name > > ); > > > > and add to the Java section: > > > > package org.omg.CORBA_2_4; > > import org.omg.CORBA.TypeCode; > > public abstract class ORB extends org.omg.CORBA_2_3.ORB { > > public abstract TypeCode create_local_interface_tc(String id, >String > > name); > > } > > > > Thanks, > > Vijay -- This e-mail, and any attachments thereto, is intended only for use by the addressee(s) named herein and may contain legally privileged and/or confidential information. If you are not the intended recipient of this e-mail, you are hereby notified that any dissemination, distribution or copying of this e-mail, and any attachments thereto, is strictly prohibited. If you have received this e-mail in error, please immediately and permanently delete the original and any copy of any e-mail and any printout thereof. Accelerate your Linux. application development with Kylix(TM), the RAD tool for Linux. Easily integrate web, desktop and database development to quickly deliver fast Linux applications. Kylix is the only Linux development tool that combines the world's fastest compiler with the most productive visual design environment for GUI, web and database programming. Order your copy now! http://www.borland.com/kylix/ [] vnatarajan.vcf Date: Thu, 30 Aug 2001 16:52:03 -0700 From: Vijaykumar Natarajan Subject: Re: Missing elements of the local mapping To: Mark Spruiell Cc: Vijaykumar Natarajan , java-rtf@omg.org, issues@omg.org, andrew@omg.org Message-id: <3B8ED1A3.E41A28D2@inprise.com> MIME-version: 1.0 X-Mailer: Mozilla 4.51 [en]C-CCK-MCD (WinNT; U) X-Accept-Language: en References: <5.1.0.14.2.20010830154115.034dcbc8@192.168.1.2> Content-Type: multipart/mixed; boundary="Boundary_(ID_Qw7gOgJCztCAi1XUxR05Tg)" X-UIDL: n'R!!:KUd9b&5!!5:,e9 Mark, You are right in that the TC_Kind presents a problem. The reason I didn't add a CORBA_2_4 tckind was that traditionally (for eg. when adding abstract interfaces) this was not done. The problem is this. Let's say I have client stub code for IRObject.kind(); which returns an instance of the DefinitionKind enum. The code generated for the DefinitionKindHelper would look something like: DefinitionKind.from_int(stream.read_long()); right? Now DefinitionKind.from_int will not know about the new addition in CORBA_2_4.DefinitionKind (and its associated from_int) :( Obvious question is why this is relevant here, but both of these are enums and TCKindHelper.from_int() will have the same problem. What I am not sure about is where this would have an effect. Mary, This also alerted me of another change that's needed (but only in the java source files). DefinitionKind must be updated to include dk_LocalInterface. Vijay Mark Spruiell wrote: > Hi Vijay, > > At 12:44 PM 8/30/2001, Vijaykumar Natarajan wrote: > >Hi all, > > > >In the latest spec of the idl-to-java mapping, I don't see a >mapping for > >create_local_interface_tc() on the ORB. Also missing is > >tk_local_interface in TCKind. These need to be fixed quickly as >this > >leaves the local mapping incomplete in Java. > > One problem here is that the presence of TCKind in the JDK prevents > us from simply adding a member to org.omg.CORBA.TCKind. We > probably need to add org.omg.CORBA_2_4.TCKind as a subclass of > TCKind. > > - Mark > > >Proposal: > > > >Section 1.19.9: > > > >Add tk_local_interface to TCKind > >enum TCKind { > >tk_null, tk_void, > >tk_short, tk_long, tk_ushort, tk_ulong, > >tk_float, tk_double, tk_boolean, tk_char, > >tk_octet, tk_any, tk_TypeCode, tk_Principal, tk_objref, > >tk_struct, tk_union, tk_enum, tk_string, > >tk_sequence, tk_array, tk_alias, tk_except, > >tk_longlong, tk_ulonglong, tk_longdouble, > >tk_wchar, tk_wstring, tk_fixed, > >tk_value, tk_value_box, > >tk_native, > >tk_abstract_interface, > >tk_local_interface > >}; > > > > > >// java (add at the appropriate location) > > > >public static final int _tk_local_interface = 33; > >TCKind tk_local_interface = new TCKind(_tk_local_interface); > > > >Section 1.19.10 > >Copy the new ORB PIDL from CORBA 2.4 spec (which basically adds) > > > >TypeCode create_local_interface_tc( > >in RepositoryId id, > >in Identifier name > >); > > > >and add to the Java section: > > > >package org.omg.CORBA_2_4; > >import org.omg.CORBA.TypeCode; > >public abstract class ORB extends org.omg.CORBA_2_3.ORB { > > public abstract TypeCode create_local_interface_tc(String id, >String > >name); > >} > > > >Thanks, > >Vijay -- This e-mail, and any attachments thereto, is intended only for use by the addressee(s) named herein and may contain legally privileged and/or confidential information. If you are not the intended recipient of this e-mail, you are hereby notified that any dissemination, distribution or copying of this e-mail, and any attachments thereto, is strictly prohibited. If you have received this e-mail in error, please immediately and permanently delete the original and any copy of any e-mail and any printout thereof. Accelerate your Linux Date: Fri, 31 Aug 2001 10:51:02 -0400 From: Mary Leland X-Mailer: Mozilla 4.75 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: Vijaykumar Natarajan Cc: Mark Spruiell , java-rtf@omg.org, andrew@omg.org Subject: Re: Missing elements of the local mapping References: <5.1.0.14.2.20010830154115.034dcbc8@192.168.1.2> <3B8ED1A3.E41A28D2@inprise.com> Content-Type: multipart/mixed; boundary="------------6A0FECBFE7106018798F59E8" X-UIDL: \m>!!-Ukd9QUod9"m!!! Hi All, Attached is an expansion of Vijay's proposal that "allows the changes to be mechanically applied" (I hope). The intent was to refine Vijay's proposal (including the point about DefinitionKind), not to make any changes to it - if some inadvertently crept in, yell. Let's discuss this during the next week or so, and if it seems there's a consensus, have a vote during the week of Sept. 10. Thanks, Mary Leland Chair, OMG IDL to Java RTFProposed Resolution to Issue 4549: In Section 1.19.9: In enum TCKind Add , tk_local_interface after tk_abstract_interface In public class TCKind { Add public static final int _tk_local_interface = 33; TCKind tk_local_interface = new TCKind(_tk_local_interface); After public static final int _tk_abstract_interface = 32; TCKind tk_abstract_interface = new TCKind(_tk_abstract_interface); In Section 1.19.10 In pseudo interface ORB { Add TypeCode create_local_interface_tc( in RepositoryId id, in Identifier name ); after TypeCode create_abstract_interface_tc ( in RepositoryId id, in Identifier name ); At the end of the section (just before Section 19.10.1), add package org.omg.CORBA_2_4; public abstract class ORB extends org.omg.CORBA_2_3.ORB { // typecode creation public abstract org.omg.CORBA.TypeCode create_local_interface_tc (String id, String name); } In the Java Source files: In org/omg/ CORBA/TCKind.java, Add public static final int _tk_local_interface = 33; TCKind tk_local_interface = new TCKind(_tk_local_interface); After public static final int _tk_abstract_interface = 32; TCKind tk_abstract_interface = new TCKind(_tk_abstract_interface); Add case _tk_local_interface: return tk_local_interface; After case _tk_abstract_interface: return tk_abstract_interface; In org/omg/ CORBA/DefinitionKind.java, Add public static final int _dk_LocalInterface = 24; public static final DefinitionKind dk_LocalInterface = new DefinitionKind(_dk_LocalInterface); After public static final int _dk_Native = 23; public static final DefinitionKind dk_Native = new DefinitionKind(_dk_Native); Make a new directory org/omg/CORBA_2_4. Within it, make a new file ORB.java which contains /***** Copyright (c) 2001 Object Management Group. Unlimited rights to duplicate and use this code are hereby granted provided that this copyright notice is included. *****/ /***** This class is specifed by the mapping as abstract. A "dummy" implementation is provided so that the "official" org.omg.* packages may be compiled. ORB-vendors shall provide a complete implementation of the class by extending it with a vendor-specific class which provides "real" implementations for all the methods. E.g. package com.acme_orb_vendor.CORBA_2_4; public class ORB extends org.omg.CORBA_2_4 { ... } In order to be conformant the class shall support the signatures specified here, but will have an orb-specific implementation. The class may support additional vendor specific functionality. *****/ package org.omg.CORBA_2_4; public abstract class ORB extends org.omg.CORBA_2_3.ORB { // typecode creation public abstract org.omg.CORBA.TypeCode create_local_interface_tc (String id, String name); } Date: Fri, 31 Aug 2001 17:44:47 +0100 From: Simon Nash Organization: IBM X-Mailer: Mozilla 4.72 [en] (Windows NT 5.0; I) X-Accept-Language: en MIME-Version: 1.0 To: Mary Leland CC: Vijaykumar Natarajan , Mark Spruiell , java-rtf@omg.org, andrew@omg.org Subject: Re: Missing elements of the local mapping References: <5.1.0.14.2.20010830154115.034dcbc8@192.168.1.2> <3B8ED1A3.E41A28D2@inprise.com> <3B8FA456.E6F080A3@fpk.hp.com> Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii X-UIDL: S4%e9p:i!!FJ/!!BJ\!! Mary, We can't change the org.omg.CORBA.TCKind class since it is a frozen part of the core Java API. We should add a subclass org.omg.CORBA_2_4.TCKind which has the new tk_local_interface definition. This situation was envisaged when CORBA APIs were first added to JDK 1.2, and the mapping of enum was changed to a non-final class to allow this subclassing approach to be used. Simon Mary Leland wrote: > > Hi All, > > Attached is an expansion of Vijay's proposal that > "allows the changes to be mechanically applied" > (I hope). The intent was to refine Vijay's proposal > (including the point about DefinitionKind), not > to make any changes to it - if some inadvertently > crept in, yell. > > Let's discuss this during the next week or so, and > if it seems there's a consensus, have a vote during > the week of Sept. 10. > > Thanks, > Mary Leland > Chair, OMG IDL to Java RTF > > --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > Proposed Resolution to Issue 4549: > > In Section 1.19.9: > > In enum TCKind > Add > , tk_local_interface > after > tk_abstract_interface > > In public class TCKind { > Add > public static final int _tk_local_interface = 33; > TCKind tk_local_interface = new TCKind(_tk_local_interface); > After > public static final int _tk_abstract_interface = 32; > TCKind tk_abstract_interface = new TCKind(_tk_abstract_interface); > > In Section 1.19.10 > > In pseudo interface ORB { > Add > TypeCode create_local_interface_tc( > in RepositoryId id, > in Identifier name > ); > after > TypeCode create_abstract_interface_tc ( > in RepositoryId id, > in Identifier name > ); > > At the end of the section (just before Section 19.10.1), add > package org.omg.CORBA_2_4; > public abstract class ORB extends org.omg.CORBA_2_3.ORB { > // typecode creation > public abstract org.omg.CORBA.TypeCode > create_local_interface_tc (String id, String name); > } > > In the Java Source files: > > In org/omg/ CORBA/TCKind.java, > Add > public static final int _tk_local_interface = 33; > TCKind tk_local_interface = new TCKind(_tk_local_interface); > After > public static final int _tk_abstract_interface = 32; > TCKind tk_abstract_interface = new TCKind(_tk_abstract_interface); > > Add > case _tk_local_interface: > return tk_local_interface; > After > case _tk_abstract_interface: > return tk_abstract_interface; > > In org/omg/ CORBA/DefinitionKind.java, > Add > public static final int _dk_LocalInterface = 24; > public static final DefinitionKind dk_LocalInterface = > new DefinitionKind(_dk_LocalInterface); > After > public static final int _dk_Native = 23; > public static final DefinitionKind dk_Native = new DefinitionKind(_dk_Native); > > Make a new directory org/omg/CORBA_2_4. > Within it, make a new file ORB.java which contains > > /***** Copyright (c) 2001 Object Management Group. Unlimited rights to > duplicate and use this code are hereby granted provided that this > copyright notice is included. > *****/ > > /***** This class is specifed by the mapping as abstract. > A "dummy" implementation is provided so that the "official" org.omg.* > packages may be compiled. > > ORB-vendors shall provide a complete implementation of the class > by extending it with a vendor-specific class which > provides "real" implementations for all the methods. E.g. > > package com.acme_orb_vendor.CORBA_2_4; > public class ORB extends org.omg.CORBA_2_4 { ... } > > In order to be conformant the class shall support the signatures > specified here, but will have an orb-specific implementation. > > The class may support additional vendor specific functionality. > *****/ > > package org.omg.CORBA_2_4; > public abstract class ORB extends org.omg.CORBA_2_3.ORB { > // typecode creation > public abstract org.omg.CORBA.TypeCode > create_local_interface_tc (String id, String name); > } -- Simon C Nash, Chief Technical Officer, IBM Java Technology Tel. +44-1962-815156 Fax +44-1962-818999 Hursley, England Internet: nash@hursley.ibm.com Lotus Notes: Simon Nash@ibmgb Date: Fri, 31 Aug 2001 09:51:13 -0700 From: Vijay Natarajan Subject: Re: Missing elements of the local mapping To: Simon Nash Cc: Mary Leland , Mark Spruiell , java-rtf@omg.org, andrew@omg.org Message-id: <3B8FC081.A5E35800@borland.com> MIME-version: 1.0 X-Mailer: Mozilla 4.51 [en]C-CCK-MCD (WinNT; U) Content-transfer-encoding: 7BIT X-Accept-Language: en References: <5.1.0.14.2.20010830154115.034dcbc8@192.168.1.2> <3B8ED1A3.E41A28D2@inprise.com> <3B8FA456.E6F080A3@fpk.hp.com> <3B8FBEFE.517ECB4@hursley.ibm.com> Content-Type: text/plain; charset=us-ascii X-UIDL: 9*Pe9N,(e9#G5!!m4M!! Hi Simon, I disagree. When we added abstract interface, that's exactly how it was done and this was done after TCKind was frozen into the core as well. WE added to TCKind directly rather than extend it. See my earlier mail to Mark about the problems associated with extending an enum (at least in the official mapping). Vijay Simon Nash wrote: > Mary, > We can't change the org.omg.CORBA.TCKind class since it is a frozen > part of > the core Java API. We should add a subclass > org.omg.CORBA_2_4.TCKind which > has the new tk_local_interface definition. This situation was > envisaged > when CORBA APIs were first added to JDK 1.2, and the mapping of enum > was > changed to a non-final class to allow this subclassing approach to > be used. > > Simon > > Mary Leland wrote: > > > > Hi All, > > > > Attached is an expansion of Vijay's proposal that > > "allows the changes to be mechanically applied" > > (I hope). The intent was to refine Vijay's proposal > > (including the point about DefinitionKind), not > > to make any changes to it - if some inadvertently > > crept in, yell. > > > > Let's discuss this during the next week or so, and > > if it seems there's a consensus, have a vote during > > the week of Sept. 10. > > > > Thanks, > > Mary Leland > > Chair, OMG IDL to Java RTF > > > > > --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > Proposed Resolution to Issue 4549: > > > > In Section 1.19.9: > > > > In enum TCKind > > Add > > , tk_local_interface > > after > > tk_abstract_interface > > > > In public class TCKind { > > Add > > public static final int _tk_local_interface = 33; > > TCKind tk_local_interface = new > TCKind(_tk_local_interface); > > After > > public static final int _tk_abstract_interface = 32; > > TCKind tk_abstract_interface = new > TCKind(_tk_abstract_interface); > > > > In Section 1.19.10 > > > > In pseudo interface ORB { > > Add > > TypeCode create_local_interface_tc( > > in RepositoryId id, > > in Identifier name > > ); > > after > > TypeCode create_abstract_interface_tc ( > > in RepositoryId id, > > in Identifier name > > ); > > > > At the end of the section (just before Section 19.10.1), add > > package org.omg.CORBA_2_4; > > public abstract class ORB extends org.omg.CORBA_2_3.ORB { > > // typecode creation > > public abstract org.omg.CORBA.TypeCode > > create_local_interface_tc (String id, > String name); > > } > > > > In the Java Source files: > > > > In org/omg/ CORBA/TCKind.java, > > Add > > public static final int _tk_local_interface = 33; > > TCKind tk_local_interface = new > TCKind(_tk_local_interface); > > After > > public static final int _tk_abstract_interface = 32; > > TCKind tk_abstract_interface = new > TCKind(_tk_abstract_interface); > > > > Add > > case _tk_local_interface: > > return tk_local_interface; > > After > > case _tk_abstract_interface: > > return tk_abstract_interface; > > > > In org/omg/ CORBA/DefinitionKind.java, > > Add > > public static final int _dk_LocalInterface = 24; > > public static final DefinitionKind dk_LocalInterface = > > new DefinitionKind(_dk_LocalInterface); > > After > > public static final int _dk_Native = 23; > > public static final DefinitionKind dk_Native = new > DefinitionKind(_dk_Native); > > > > Make a new directory org/omg/CORBA_2_4. > > Within it, make a new file ORB.java which contains > > > > /***** Copyright (c) 2001 Object Management Group. Unlimited > rights to > > duplicate and use this code are hereby granted provided > that this > > copyright notice is included. > > *****/ > > > > /***** This class is specifed by the mapping as abstract. > > A "dummy" implementation is provided so that the "official" > org.omg.* > > packages may be compiled. > > > > ORB-vendors shall provide a complete implementation of the > class > > by extending it with a vendor-specific class which > > provides "real" implementations for all the methods. E.g. > > > > package com.acme_orb_vendor.CORBA_2_4; > > public class ORB extends org.omg.CORBA_2_4 { ... } > > > > In order to be conformant the class shall support the > signatures > > specified here, but will have an orb-specific > implementation. > > > > The class may support additional vendor specific > functionality. > > *****/ > > > > package org.omg.CORBA_2_4; > > public abstract class ORB extends org.omg.CORBA_2_3.ORB { > > // typecode creation > > public abstract org.omg.CORBA.TypeCode > > create_local_interface_tc (String id, String name); > > } > > -- > Simon C Nash, Chief Technical Officer, IBM Java Technology > Tel. +44-1962-815156 Fax +44-1962-818999 Hursley, England > Internet: nash@hursley.ibm.com Lotus Notes: Simon Nash@ibmgb Date: Fri, 31 Aug 2001 18:21:58 +0100 From: Simon Nash Organization: IBM X-Mailer: Mozilla 4.72 [en] (Windows NT 5.0; I) X-Accept-Language: en MIME-Version: 1.0 To: Vijay Natarajan CC: Mary Leland , Mark Spruiell , java-rtf@omg.org, andrew@omg.org Subject: Re: Missing elements of the local mapping References: <5.1.0.14.2.20010830154115.034dcbc8@192.168.1.2> <3B8ED1A3.E41A28D2@inprise.com> <3B8FA456.E6F080A3@fpk.hp.com> <3B8FBEFE.517ECB4@hursley.ibm.com> <3B8FC081.A5E35800@borland.com> Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii X-UIDL: l2od9mADe9G`7e9(7?!! Vijay, Vijay Natarajan wrote: > > Hi Simon, > > I disagree. When we added abstract interface, that's exactly how it was done and this was done after TCKind was frozen into the core as well. This isn't correct. I checked back with the original sources frozen into JDK 1.2 and TCKind does contain tk_abstract_interface. WE added to TCKind directly rather than extend it. See my earlier mail to Mark about the problems associated with > extending an enum (at least in the official mapping). > This was discussed on the java-rtf list on February 7/8 this year. The conclusion (with which no-one disagreed at the time) was to do this by adding a subclass. The Feb 7/8 emails indicate how to deal with these problems. Simon > Vijay > > Simon Nash wrote: > > > Mary, > > We can't change the org.omg.CORBA.TCKind class since it is a > frozen part of > > the core Java API. We should add a subclass > org.omg.CORBA_2_4.TCKind which > > has the new tk_local_interface definition. This situation was > envisaged > > when CORBA APIs were first added to JDK 1.2, and the mapping of > enum was > > changed to a non-final class to allow this subclassing approach to > be used. > > > > Simon > > > > Mary Leland wrote: > > > > > > Hi All, > > > > > > Attached is an expansion of Vijay's proposal that > > > "allows the changes to be mechanically applied" > > > (I hope). The intent was to refine Vijay's proposal > > > (including the point about DefinitionKind), not > > > to make any changes to it - if some inadvertently > > > crept in, yell. > > > > > > Let's discuss this during the next week or so, and > > > if it seems there's a consensus, have a vote during > > > the week of Sept. 10. > > > > > > Thanks, > > > Mary Leland > > > Chair, OMG IDL to Java RTF > > > > > > > --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > > Proposed Resolution to Issue 4549: > > > > > > In Section 1.19.9: > > > > > > In enum TCKind > > > Add > > > , tk_local_interface > > > after > > > tk_abstract_interface > > > > > > In public class TCKind { > > > Add > > > public static final int _tk_local_interface = 33; > > > TCKind tk_local_interface = new > TCKind(_tk_local_interface); > > > After > > > public static final int _tk_abstract_interface = 32; > > > TCKind tk_abstract_interface = new > TCKind(_tk_abstract_interface); > > > > > > In Section 1.19.10 > > > > > > In pseudo interface ORB { > > > Add > > > TypeCode create_local_interface_tc( > > > in RepositoryId id, > > > in Identifier name > > > ); > > > after > > > TypeCode create_abstract_interface_tc ( > > > in RepositoryId id, > > > in Identifier name > > > ); > > > > > > At the end of the section (just before Section 19.10.1), add > > > package org.omg.CORBA_2_4; > > > public abstract class ORB extends org.omg.CORBA_2_3.ORB > { > > > // typecode creation > > > public abstract org.omg.CORBA.TypeCode > > > create_local_interface_tc (String id, > String name); > > > } > > > > > > In the Java Source files: > > > > > > In org/omg/ CORBA/TCKind.java, > > > Add > > > public static final int _tk_local_interface = 33; > > > TCKind tk_local_interface = new > TCKind(_tk_local_interface); > > > After > > > public static final int _tk_abstract_interface = 32; > > > TCKind tk_abstract_interface = new > TCKind(_tk_abstract_interface); > > > > > > Add > > > case _tk_local_interface: > > > return tk_local_interface; > > > After > > > case _tk_abstract_interface: > > > return tk_abstract_interface; > > > > > > In org/omg/ CORBA/DefinitionKind.java, > > > Add > > > public static final int _dk_LocalInterface = 24; > > > public static final DefinitionKind dk_LocalInterface = > > > new DefinitionKind(_dk_LocalInterface); > > > After > > > public static final int _dk_Native = 23; > > > public static final DefinitionKind dk_Native = new > DefinitionKind(_dk_Native); > > > > > > Make a new directory org/omg/CORBA_2_4. > > > Within it, make a new file ORB.java which contains > > > > > > /***** Copyright (c) 2001 Object Management Group. Unlimited > rights to > > > duplicate and use this code are hereby granted provided > that this > > > copyright notice is included. > > > *****/ > > > > > > /***** This class is specifed by the mapping as abstract. > > > A "dummy" implementation is provided so that the > "official" org.omg.* > > > packages may be compiled. > > > > > > ORB-vendors shall provide a complete implementation of > the class > > > by extending it with a vendor-specific class which > > > provides "real" implementations for all the methods. E.g. > > > > > > package com.acme_orb_vendor.CORBA_2_4; > > > public class ORB extends org.omg.CORBA_2_4 { ... } > > > > > > In order to be conformant the class shall support the > signatures > > > specified here, but will have an orb-specific > implementation. > > > > > > The class may support additional vendor specific > functionality. > > > *****/ > > > > > > package org.omg.CORBA_2_4; > > > public abstract class ORB extends org.omg.CORBA_2_3.ORB { > > > // typecode creation > > > public abstract org.omg.CORBA.TypeCode > > > create_local_interface_tc (String id, String name); > > > } > > > > -- > > Simon C Nash, Chief Technical Officer, IBM Java Technology > > Tel. +44-1962-815156 Fax +44-1962-818999 Hursley, England > > Internet: nash@hursley.ibm.com Lotus Notes: Simon Nash@ibmgb -- Simon C Nash, Chief Technical Officer, IBM Java Technology Tel. +44-1962-815156 Fax +44-1962-818999 Hursley, England Internet: nash@hursley.ibm.com Lotus Notes: Simon Nash@ibmgb Date: Fri, 31 Aug 2001 18:25:16 +0100 From: Simon Nash Organization: IBM X-Mailer: Mozilla 4.72 [en] (Windows NT 5.0; I) X-Accept-Language: en MIME-Version: 1.0 To: Andrew Watson CC: Vijaykumar Natarajan , java-rtf@omg.org Subject: Re: Missing elements of the local mapping References: Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii X-UIDL: \b$!!`BQd9m6-e9TmM!! Andrew, This subject was discussed on the java-rtf mailing list in February and an implementable (though nonstandard) way of dealing with this was described. At least one vendor is using this approach. Simon Andrew Watson wrote: > > Vijay, > > You wrote: > > > Could this be made an urgent issue, as the mapping of local is not > > complete for this version of the idl-to-java spec. > > Can you (or others on the RTF) give me some more background. Was the > mapping complete in previous versions, and just this version is broken in > this way, or has it always been incoimplete. If it's always been > incomplete, what have vendors done in their code. > > Bottom line - if implementation work cannot go ahead untilthis is resolved, > it's urgent. If, on the other hand, there's already an established (even if > non-standardised) way of doing this, then implementers aren't being held > up, and it probably shouldn't be classified as urgent. > > I'd value your opinion on this. > > Thanks, > > Andrew -- Simon C Nash, Chief Technical Officer, IBM Java Technology Tel. +44-1962-815156 Fax +44-1962-818999 Hursley, England Internet: nash@hursley.ibm.com Lotus Notes: Simon Nash@ibmgb Date: Fri, 31 Aug 2001 11:15:54 -0700 From: Vijaykumar Natarajan Subject: Re: Missing elements of the local mapping To: Simon Nash Cc: Andrew Watson , Vijaykumar Natarajan , java-rtf@omg.org Message-id: <3B8FD45A.17B6C05A@inprise.com> MIME-version: 1.0 X-Mailer: Mozilla 4.51 [en]C-CCK-MCD (WinNT; U) X-Accept-Language: en References: <3B8FC87C.337F5348@hursley.ibm.com> Content-Type: multipart/mixed; boundary="Boundary_(ID_GUdhQ3cK2pz+DBkI64cOwA)" X-UIDL: j>hd9e0Ge9-U/e9m,He9 Simon, I went back and looked at those emails. You are right in that this is probably implementable for TCKind. I guess DefinitionKind could be handled similarly (requiring another special casing :( ). I am extremely averse to special casing the compiler everytime I have to deal w/ one of these. I will accept that this is implementable but only in a proprietary way. Andrew, > > Can you (or others on the RTF) give me some more background. Was the > > mapping complete in previous versions, and just this version is broken in > > this way, or has it always been incoimplete. If it's always been > > incomplete, what have vendors done in their code. I would say this has always been incomplete. As indicated by Simon, there are ways to overcome the limitation, but that involves special casing the compiler for each enumerated type that is in the core (TCKind and DefinitionKind are the only two at this point). > > > > Bottom line - if implementation work cannot go ahead untilthis is > >resolved, > > it's urgent. If, on the other hand, there's already an established > >(even if > > non-standardised) way of doing this, then implementers aren't > >being held > > up, and it probably shouldn't be classified as urgent. I am still not clear as to what it means to have an "established" but non standardised way of doing this. If it is agreed upon by everyone, then there should be no issues in standardising it, right? The risk I see to proprietary solutions is that when standardized, the vendor is burdened with supporting both the standardised and proprietary solutions. Further, this opens the door for vendors to vehemently argue (quite naturally) that their proprietary solution should be the standard solution because it would cause them too much pain to change the proprietary solution. Notice for example if the standard solution is different from what the one vendor Simon mentions, has implemented, that vendor would most certainly be unhappy. Since local is officially part of the standard and the java mapping is incomplete w/ regards to its mapping of that, I would still encourage you to classify this as urgent, so I don't run the risk of having to change my implementation because a solution that was not my choice in approaching the problem ended up becoming standard. Thanks, Vijay > > > > I'd value your opinion on this. > > > > Thanks, > > > > Andrew > > -- > Simon C Nash, Chief Technical Officer, IBM Java Technology > Tel. +44-1962-815156 Fax +44-1962-818999 Hursley, England > Internet: nash@hursley.ibm.com Lotus Notes: Simon Nash@ibmgb -- This e-mail, and any attachments thereto, is intended only for use by the addressee(s) named herein and may contain legally privileged and/or confidential information. If you are not the intended recipient of this e-mail, you are hereby notified that any dissemination, distribution or copying of this e-mail, and any attachments thereto, is strictly prohibited. If you have received this e-mail in error, please immediately and permanently delete the original and any copy of any e-mail and any printout thereof. Accelerate your Linux Date: Tue, 18 Dec 2001 15:00:20 -0800 (PST) From: Ken Cavanaugh Reply-To: Ken Cavanaugh Subject: Joint resolution for issues 4741, 4549, 4750, 4748 To: java-rtf@omg.org MIME-Version: 1.0 Content-MD5: 8fpTAYJ3/E2Sjji2C7Oplg== X-Mailer: dtmail 1.3.0 @(#)CDE Version 1.3.5 SunOS 5.7 sun4u sparc Content-Type: TEXT/plain; charset=us-ascii X-UIDL: