CIMPLE 2.0.0 Release Notes

Table of Contents

1 Introduction

This document introduces CIMPLE 2.0.0 and explains what has changed since the last public release (CIMPLE 1.2.0). If you are unfamiliar with the major changes introduced by CIMPLE 1.2.0, you might want to review them by clicking here: http://www.cimple.org/downloads.html.

NOTE: This release note covers all of the version 2.0x releases. Any difference between these releases are documented.

To date there have been two public releases:

Chapter 2 describes what is new in this release. Chapter 3 discusses bugs fixed by this release. Chapter 4 explains how to migrate providers developed with earlier versions.

2 What's New?

This chapter covers new capabilities introduced by CIMPLE 2.0.0. Note that the release notes were not originally attached to the 2.0.0 release but were available with the 2.0.6 update to this release.

2.1 WMI Providers

CIMPLE now provides support for Microsoft WMI providers that attach to the Microsoft cim server in Windows XP, Windows Server 2003, Windows Vista platforms.

Except for a few minor details, provider developement for WMI is similar to developing providers for other servers.

The development and installation process for WMI providers is documented in:

There are working examples of WMI providers in the distribution at cimpl/src/wmi.

2.2 New Support for IBM Small Footprint CIM Broker (SFCB)

CIMPLE providers have been tested with SFCB (CMPI interface) and registered against this CIM Server. While this support was actually available late in the 1.x.x releases, it was not formally announced. There are sample providers that include the registration setup for SFCB and the registration and installation process is documented in the Using CIMPLE documentation.

2.3 Platform Support

CIMPLE 2.0.0 now supports the following platforms.

The following were added in this release:

2.4 New Scheduler Class Experimental (2.0.6)

The multi-programming capability has been expanded by adding a scheduler class that allows the provider to schedule periodic time-based functions. See the UsingCIMPLE manual and the file cimple/src/cimple/Scheduler.h for more information on this class.

NOTE: New functions like this are listed as experimental in at least the first release pending user comment that might demand changes to the API.

2.5 New List Class Experimental (2.0.6)

The multi-programming capability has been expanded by adding a thread-safe List class. See the UsingCIMPLE manual and the file cimple/src/cimple/List.h for more information on this class.

2.6 New Method Upcalls

The upcall generation has been extended to allow generation of extrinsic methods for upcall to other providers in addition to the enumerateInstance, getInstance, modifyInstance, etc. that already existed. There is a working example of this in the provider cimple/src/providers/upcall provider.

2.7 New Function get_username Access Operation User Name (2.0.6)

A new upcall was added to allow the user access to the username for an operation if that information is available from the CIM Server. See the header file cimple/src/cimple/cimom.h for details of this call.

2.8 Update using CIMPLE manual (2.0.6)

The "Using CIMPLE" documentation has been updated to reflect all of the functions available. It is available with the distribution and will be available directly on the web siteat http://simplewbem.org/Using_CIMPLE.pdf.

3 Bug Fixes

This release fixes the bugs described below (all critical bugs were addressed by earlier maintenance releases).

3.1 DMTF Operation Error codes (2.0.6)

Added new Error codes to the CIMPLE error code set for ACCESS_DENIED and INVALID_PARAMETER bringing these codes into alignment with the DMTF specification

3.2 Memory Leaks

Corrected some memory leaks in the adapters. Note that at least some of these in the CMPI adapter were actually introduced in 2.0.0 and fixed in 2.0.6

4 Migration Notes

Always regenerate classes, providers, and modules when using a new version of CIMPLE. This is a trivial matter of running genrpoj as follows:

     $ genproj MODULE-NAME CLASS-1 CLASS-2 ... CLASS-N

This regenerates the classes and module and will patch your providers if necessary. This operation will not require any rework on your part. Just regnerate, clean, and remake.