I am doing some research on porting DDS from one vendor to another.
Let say I am porting my Java based DDS application from OpenSplice DDS to RTI Connext DDS. It looks like the first issue I will hit is related with package name. I noticed that in the documentation the OpenSplice JAVA API followed the DDS specification to use DDS as the package name while all packages in RTI Connext DDS begins with com.rti.dds. Is that statement true? or am I missing something?
Thanks!
Hi,
Yes there are some inconsistencies on how the packages are named which come from the fact that the the DDS PIM defined number of packages (Infrasrtucture, Domain, Topic, Publication, Subscription) that were not reflected in the IDL PSM due to concerns with what that would imply to some language mappings, like C, which do not suport well the concept of packages/modules.
As a consequence the language mapping that different vendors followed from the PIM and IDL to Java (or C++) has been different in the selection of packages and such. While not huge, these differences are definitely creating a painful portability problem.
The new Java PSM specification the OMG introduced last year should solve this issue. But it is not supported by the vendors yet. So in the meantime I think the only practical alternative is to use import statements at the begnning of each Java file so that the main code is not dependent on package names. I agree this is ugly but I am not aware of any methods that allow to alias two Java package names.
Gerardo
Thank you for your explanation.
I still don't see support for OMGs Java 5 PSM - please give an update on status.
Changing imports is not an option for me since I have an open sourced system that needs to compile (not run, obviously) on sites which don't have access to RTIs implementation
Thanks,
Peter