Logo of CO-LaN smallAvailable for download from here, CO-LaN makes available today a maintenance release of COBIA 1.2.0, the version which was distributed at the end of Phase II of COBIA development project. This release is referenced as version 1.2.0.11.

CO-LaN recommends that COBIA based applications are shipped with the latest COBIA Runtime. Release 1.2.0.11 contains several fixes/enhancements to the COBIA run-time and to the COBIA client headers. COBIA is targeting multiple platforms and fixes apply to issues found both on Linux and Windows platforms.

The distribution is made of three elements:

COBIA Runtime can be freely used and redistributed. COBIA Runtime consists of middleware components that will be installed on the end-user’s computer during installation of COBIA-based Process Modelling Environments (PMEs) and Process Modelling Components (PMCs) developed by a software provider. The COBIA Runtime is intended to be distributed with and utilized by third-party software.

The COBIA Software Development Kit (SDK) is provided for free as a stand-alone installation package which distributes a set of components and tools that are used by a software developer to create software that utilizes COBIA as the middleware for CAPE-OPEN interoperability. The SDK includes code generators to help create the source code of interfaces developed from the CAPE-OPEN Interface Definition Language (IDL) specifically adapted to COBIA. The SDK installer installs COBIA Runtime as well.

Development and maintenance of COBIA is conducted by AmsterCHEM for CO-LaN.

Please refer to the list of tickets fixed by version 1.2.0.11. Find hereafter explanations for the most relevant support tickets that are resolved by this release:

  • Ticket 97: COBIA_SmartPointer::outputArgument was implemented by means of an addReference. It is now implemented as a detach operation (saves an addReference and a release call).
  • Ticket 138: compilation issue on Linux. Some system header files were not declared as included in the main COBIA header file.
  • Ticket 139: COBIA code generator did not work on Linux platforms because std::regex searches did not work as expected.
  • Ticket 143: release 1.2.0.10 broke the C++ parsing for the code generators, causing code generation on existing C++ classes to yield incorrect results.
  • Ticket 145: Support dropped for CapeArrayInterface type since CAPE-OPEN supports collections. Therefore passing an array of objects is not required under any circumstance.
  • Ticket 149: interface adapters forwarded non-CAPE-OPEN errors (e.g. COBIAERR_NullPointer, COBIAERR_InvalidArgument) as CAPE-OPEN errors with scope, interface name, etc and default error text. Error messages become shorter and cleaner if non-CAPE-OPEN errors are simply forwarded as non-CAPE-OPEN errors. As COBIA-based implementations have the interface wrapper code embedded in their binaries, a recompilation against new client headers is needed to benefit from the change made.
  • Ticket 150: COBIA Registry (XML file) reading on Windows failed to exit loop in case of read error.
  • Ticket 152: thermodynamic COBIA-based PMCs (Property Package Managers, Property Packages, Equilibrium Calculators, Physical Property Calculators) were sometimes incorrectly COM registered with “1.0” instead of “1.1” for the capeVersion field.
  • Ticket 154: COBIA SDK provides a Property Package and a Property Package Manager as examples of COBIA-based PMCs. They were both registered with only a version indepedendent progID. In COM, progID and versionIndependentProgID are fully optional. For generality, both PMCs are now registered also with progIDs.
  • Ticket 156: COBIA namespace was missing in generated code for CapeUUID and CapeWindowID types.
  • Ticket 163: the wrappers for CapeRegistryWriter and CapeRegistryKeyReader added a reference too many to the
    constructed object, causing their memory not to be released (memory leak). Any COBIA-based application code that uses CapeRegistryWriter and CapeRegistryKeyReader types directly should be rebuilt against the modified COBIA client headers.
  • Ticket 166: if a COBIA object was asked to return an object, and it returned itself, or another already existing object (example: a unit operation implements a port collection in the Unit Operation object and is asked for its port collection), COMBIA failed to recognize the object is the same, and created a second COM wrapper around the same COBIA object.
  • Ticket 168: Start menu for COBIA SDK was changed to “CAPE-OPEN COBIA Software Development Kit” to be consistent with other software developed and distributed by CO-LaN.
  • Ticket 169: several causes of memory leaks were found in IDL parser. Since part of the necessary fixes are in the client header files, applications that explicitly refer to the IDL type library interfaces should recompile (this is typically not PMCs, but could be code wizards).

CO-LaN encourages all software developers to use version 1.2.0.11.

Previous release was version 1.2.0.10 released on November 12, 2022. Version 1.2.0.10 was downloaded 32 times for the SDK installer, 32 times for the archive of runtime merge modules, and 33 times for the runtime installer since it was made available.

Questions on COBIA 1.2 can be posted on the CAPE-OPEN forum dedicated to COBIA.