The IMM model modifyer tool is move from existing locally in SMF
to osaf tool it becomes a global tool.
---
 opensaf.spec.in                               |  88 +++----
 src/osaf/Makefile.am                          | 132 ++++++++++-
 .../immtools}/imm_modify_config/README        |   0
 .../imm_modify_config/add_operation_to_ccb.cc |  20 +-
 .../imm_modify_config/add_operation_to_ccb.h  |   8 +-
 .../immtools}/imm_modify_config/attribute.cc  |  12 +-
 .../immtools}/imm_modify_config/attribute.h   |  17 +-
 .../immtools}/imm_modify_config/immccb.cc     |  26 +--
 .../immtools}/imm_modify_config/immccb.h      |  31 ++-
 .../immtools}/imm_modify_demo/Makefile        |   0
 .../immtools}/imm_modify_demo/README          |   0
 .../imm_modify_demo/ccbdemo_create.cc         |  22 +-
 .../imm_modify_demo/ccbdemo_delete.cc         |  28 +--
 .../imm_modify_demo/ccbdemo_modify.cc         |  72 +-----
 .../immtools}/imm_modify_demo/common.cc       |   2 +-
 .../immtools}/imm_modify_demo/common.h        |   6 +-
 .../immtools}/imm_modify_demo/democlass.xml   |   0
 .../immtools}/imm_modify_demo/test_ccbhdl.cc  |  26 +--
 .../immtools}/imm_om_ccapi/common/common.cc   |   0
 .../immtools}/imm_om_ccapi/common/common.h    |   6 +-
 .../imm_om_ccapi/common/imm_attribute.cc      |   0
 .../imm_om_ccapi/common/imm_attribute.h       |   8 +-
 .../imm_om_ccapi/om_admin_owner_clear.cc      |   0
 .../imm_om_ccapi/om_admin_owner_clear.h       |   6 +-
 .../imm_om_ccapi/om_admin_owner_handle.cc     |   0
 .../imm_om_ccapi/om_admin_owner_handle.h      |   6 +-
 .../imm_om_ccapi/om_admin_owner_set.cc        |   0
 .../imm_om_ccapi/om_admin_owner_set.h         |   6 +-
 .../immtools}/imm_om_ccapi/om_ccb_handle.cc   |   0
 .../immtools}/imm_om_ccapi/om_ccb_handle.h    |   6 +-
 .../imm_om_ccapi/om_ccb_object_create.cc      |   0
 .../imm_om_ccapi/om_ccb_object_create.h       |   6 +-
 .../imm_om_ccapi/om_ccb_object_delete.cc      |   0
 .../imm_om_ccapi/om_ccb_object_delete.h       |   6 +-
 .../imm_om_ccapi/om_ccb_object_modify.cc      |   0
 .../imm_om_ccapi/om_ccb_object_modify.h       |   6 +-
 .../immtools}/imm_om_ccapi/om_handle.cc       |   0
 .../immtools}/imm_om_ccapi/om_handle.h        |   6 +-
 src/smf/Makefile.am                           | 221 +-----------------
 src/smf/smfd/SmfAdminState.cc                 |   2 +-
 src/smf/smfd/SmfExecControlHdl.cc             |   2 +-
 src/smf/smfd/SmfImmOperation.h                |  31 +--
 src/smf/smfd/SmfUpgradeStep.cc                |   7 +-
 src/smf/smfd/SmfUtils.cc                      |   2 +-
 src/smf/smfd/SmfUtils_ObjExist.cc             |   3 +-
 src/smf/smfd/SmfUtils_ObjExist.h              |   2 +-
 src/smf/smfd/imm_modify_demo/test_objexist.cc | 127 ----------
 47 files changed, 341 insertions(+), 608 deletions(-)
 rename src/{smf/smfd => osaf/immtools}/imm_modify_config/README (100%)
 rename src/{smf/smfd => 
osaf/immtools}/imm_modify_config/add_operation_to_ccb.cc (94%)
 rename src/{smf/smfd => 
osaf/immtools}/imm_modify_config/add_operation_to_ccb.h (92%)
 rename src/{smf/smfd => osaf/immtools}/imm_modify_config/attribute.cc (98%)
 rename src/{smf/smfd => osaf/immtools}/imm_modify_config/attribute.h (94%)
 rename src/{smf/smfd => osaf/immtools}/imm_modify_config/immccb.cc (96%)
 rename src/{smf/smfd => osaf/immtools}/imm_modify_config/immccb.h (96%)
 rename src/{smf/smfd => osaf/immtools}/imm_modify_demo/Makefile (100%)
 rename src/{smf/smfd => osaf/immtools}/imm_modify_demo/README (100%)
 rename src/{smf/smfd => osaf/immtools}/imm_modify_demo/ccbdemo_create.cc (95%)
 rename src/{smf/smfd => osaf/immtools}/imm_modify_demo/ccbdemo_delete.cc (87%)
 rename src/{smf/smfd => osaf/immtools}/imm_modify_demo/ccbdemo_modify.cc (78%)
 rename src/{smf/smfd => osaf/immtools}/imm_modify_demo/common.cc (97%)
 rename src/{smf/smfd => osaf/immtools}/imm_modify_demo/common.h (89%)
 rename src/{smf/smfd => osaf/immtools}/imm_modify_demo/democlass.xml (100%)
 rename src/{smf/smfd => osaf/immtools}/imm_modify_demo/test_ccbhdl.cc (97%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/common/common.cc (100%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/common/common.h (97%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/common/imm_attribute.cc 
(100%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/common/imm_attribute.h 
(97%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/om_admin_owner_clear.cc 
(100%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/om_admin_owner_clear.h 
(92%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/om_admin_owner_handle.cc 
(100%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/om_admin_owner_handle.h 
(94%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/om_admin_owner_set.cc 
(100%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/om_admin_owner_set.h (94%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/om_ccb_handle.cc (100%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/om_ccb_handle.h (94%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/om_ccb_object_create.cc 
(100%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/om_ccb_object_create.h 
(97%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/om_ccb_object_delete.cc 
(100%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/om_ccb_object_delete.h 
(92%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/om_ccb_object_modify.cc 
(100%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/om_ccb_object_modify.h 
(97%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/om_handle.cc (100%)
 rename src/{smf/smfd => osaf/immtools}/imm_om_ccapi/om_handle.h (95%)
 delete mode 100644 src/smf/smfd/imm_modify_demo/test_objexist.cc

diff --git a/opensaf.spec.in b/opensaf.spec.in
index f19e17aec..2a8842671 100644
--- a/opensaf.spec.in
+++ b/opensaf.spec.in
@@ -93,14 +93,14 @@ Obsoletes: %{name}-amf-libs < %{version}-%{release}
 
 %description amf-libs
 The Availability Management Framework provides a set of APIs to enable highly
-available applications. In addition to component registration and life cycle 
-management, it includes functions for error reporting and health monitoring. 
-The Availability Management Framework also assigns active or standby workloads 
-to the components of an application as a function of component state and 
system 
-configuration. The Availability Management Framework configuration allows 
-prioritization of resources and provides for a variety of redundancy models. 
-The Availability Management Framework also provides APIs for components to 
-track the assignment of work or so-called component service instances among 
the 
+available applications. In addition to component registration and life cycle
+management, it includes functions for error reporting and health monitoring.
+The Availability Management Framework also assigns active or standby workloads
+to the components of an application as a function of component state and system
+configuration. The Availability Management Framework configuration allows
+prioritization of resources and provides for a variety of redundancy models.
+The Availability Management Framework also provides APIs for components to
+track the assignment of work or so-called component service instances among the
 set of components protecting the same component service instance.
 
 %package amf-director
@@ -152,10 +152,10 @@ Requires: %{name}-libs = %{version}-%{release}
 Obsoletes: %{name}-ckpt-libs < %{version}-%{release}
 
 %description ckpt-libs
-The Checkpoint Service provides a facility for processes to record checkpoint 
-data incrementally, which can be used to protect an application against 
-failures. When recovering from fail-over or switch-over situations, the 
-checkpoint data can be retrieved, and execution can be resumed from the state 
+The Checkpoint Service provides a facility for processes to record checkpoint
+data incrementally, which can be used to protect an application against
+failures. When recovering from fail-over or switch-over situations, the
+checkpoint data can be retrieved, and execution can be resumed from the state
 recorded before the failure.
 
 %package ckpt-director
@@ -197,9 +197,9 @@ Obsoletes: %{name}-clm-libs < %{version}-%{release}
 
 %description clm-libs
 The Cluster Membership Service provides applications with membership 
information
-about the nodes that have been administratively configured in the cluster 
-configuration (these nodes are also called cluster nodes or configured nodes), 
-and it is core to any clustered system. A cluster consists of this set of 
+about the nodes that have been administratively configured in the cluster
+configuration (these nodes are also called cluster nodes or configured nodes),
+and it is core to any clustered system. A cluster consists of this set of
 configured nodes, each with a unique node name.
 
 %package clm-server
@@ -272,9 +272,9 @@ Requires: %{name}-libs = %{version}-%{release}
 Obsoletes: %{name}-imm-libs < %{version}-%{release}
 
 %description imm-libs
-The different entities of an SA Forum cluster, such as components provided by 
-the Availability Management Framework, checkpoints provided by the Checkpoint 
-Service, or message queues provided by the Message Service are represented by 
+The different entities of an SA Forum cluster, such as components provided by
+the Availability Management Framework, checkpoints provided by the Checkpoint
+Service, or message queues provided by the Message Service are represented by
 various objects of the SA Forum Information Model.
 
 %package imm-director
@@ -314,8 +314,8 @@ Requires: %{name}-libs = %{version}-%{release}
 Obsoletes: %{name}-lck-libs < %{version}-%{release}
 
 %description lck-libs
-The Lock Service is a distributed lock service, which is intended for use in a 
-cluster where processes in different nodes might compete with each other for 
+The Lock Service is a distributed lock service, which is intended for use in a
+cluster where processes in different nodes might compete with each other for
 access to a shared resource.
 
 %package lck-director
@@ -354,10 +354,10 @@ Requires: %{name}-libs = %{version}-%{release}
 Obsoletes: %{name}-log-libs < %{version}-%{release}
 
 %description log-libs
-Logging information is a high-level cluster-significant, function-based (as 
-opposed to implementation-particular) information suited primarily for network 
-or system administrators, or automated tools to review current and historical 
-logged information to trouble shoot issues such as misconfigurations, network 
+Logging information is a high-level cluster-significant, function-based (as
+opposed to implementation-particular) information suited primarily for network
+or system administrators, or automated tools to review current and historical
+logged information to trouble shoot issues such as misconfigurations, network
 disconnects and unavailable resources.
 
 %package log-server
@@ -451,10 +451,10 @@ Obsoletes: %{name}-msg-libs < %{version}-%{release}
 
 %description msg-libs
 The Message Service specifies a buffered message-passing system based on the
-concept of a message queue for processes on the same or on different nodes. 
-Messages are written to message queues and read from them. A single message 
-queue permits a multipoint-to-point communication. Message queues are 
-persistent or non-persistent. The Message Service must preserve messages that 
+concept of a message queue for processes on the same or on different nodes.
+Messages are written to message queues and read from them. A single message
+queue permits a multipoint-to-point communication. Message queues are
+persistent or non-persistent. The Message Service must preserve messages that
 have not yet been consumed when the message queue is closed.
 
 %package msg-director
@@ -496,13 +496,13 @@ Obsoletes: %{name}-ntf-libs < %{version}-%{release}
 
 %description ntf-libs
 ITU-T recommendations X.700 - X.799 deal with the area of system management,
-and how it may be applied to a communications system. ITU-T broadly classifies 
-the management domain into the famous FCAPS model that segregates the overall 
-management into five areas, with the "F" standing for Fault Management. The 
-Notification Service is based on these fault management recommendations to a 
-great degree, but also needs many other supportive recommendations that 
include, 
-for example, the concepts of managed objects, which are covered in Structure 
-of Management Information. Normative references to ITU-T-defined agents and 
+and how it may be applied to a communications system. ITU-T broadly classifies
+the management domain into the famous FCAPS model that segregates the overall
+management into five areas, with the "F" standing for Fault Management. The
+Notification Service is based on these fault management recommendations to a
+great degree, but also needs many other supportive recommendations that 
include,
+for example, the concepts of managed objects, which are covered in Structure
+of Management Information. Normative references to ITU-T-defined agents and
 managers are used in the definition of the current notification standard.
 
 %package ntf-server
@@ -528,11 +528,11 @@ Requires(postun): /sbin/ldconfig
 Obsoletes: %{name}-smf-libs < %{version}-%{release}
 
 %description smf-libs
-SA Forum systems are required to provide highly available services to their 
-users over a long period of time during which the systems may undergo changes 
-due to growth and evolution, bug fixes, or enhancement of services. These 
-changes may require addition, removal, replacement, or reconfiguration of 
-hardware or software elements. High service availability requires that such 
+SA Forum systems are required to provide highly available services to their
+users over a long period of time during which the systems may undergo changes
+due to growth and evolution, bug fixes, or enhancement of services. These
+changes may require addition, removal, replacement, or reconfiguration of
+hardware or software elements. High service availability requires that such
 changes cause no (or only minimal) loss of service.
 
 %package smf-director
@@ -1153,8 +1153,8 @@ fi
 %{_pkglibdir}/osafimmloadd
 %{_pkglibdir}/osafimmpbed
 %{_pkgclcclidir}/osaf-immnd
- 
- 
+
+
 %if %is_ais_plm
 
 %files plm-libs
@@ -1534,12 +1534,12 @@ fi
 %{_bindir}/amftest
 %{_bindir}/evttest
 %if %is_ais_smf
-#SMF: Demo and test of CCB handling
+#Demo and test of IMM CCB handling
 %{_bindir}/ccbdemo_create
 %{_bindir}/ccbdemo_delete
 %{_bindir}/ccbdemo_modify
 %{_bindir}/test_ccbhdl
-%{_bindir}/test_objexist
+#%{_bindir}/test_objexist
 %endif
 %if %is_ais_ckpt
 %{_bindir}/ckpttest
diff --git a/src/osaf/Makefile.am b/src/osaf/Makefile.am
index f7e784755..9d334b4a4 100644
--- a/src/osaf/Makefile.am
+++ b/src/osaf/Makefile.am
@@ -30,6 +30,26 @@ noinst_HEADERS += \
        src/osaf/consensus/key_value.h \
        src/osaf/consensus/consensus.h
 
+# immtools headers
+# IMM configuration modifier
+noinst_HEADERS += \
+       src/osaf/immtools/imm_modify_config/attribute.h \
+       src/osaf/immtools/imm_modify_config/add_operation_to_ccb.h \
+       src/osaf/immtools/imm_modify_config/immccb.h
+
+# IMM OM C++ APIs
+noinst_HEADERS += \
+       src/osaf/immtools/imm_om_ccapi/common/common.h \
+       src/osaf/immtools/imm_om_ccapi/common/imm_attribute.h \
+       src/osaf/immtools/imm_om_ccapi/om_admin_owner_clear.h \
+       src/osaf/immtools/imm_om_ccapi/om_admin_owner_handle.h \
+       src/osaf/immtools/imm_om_ccapi/om_admin_owner_set.h \
+       src/osaf/immtools/imm_om_ccapi/om_ccb_handle.h \
+       src/osaf/immtools/imm_om_ccapi/om_ccb_object_create.h \
+       src/osaf/immtools/imm_om_ccapi/om_ccb_object_delete.h \
+       src/osaf/immtools/imm_om_ccapi/om_ccb_object_modify.h \
+       src/osaf/immtools/imm_om_ccapi/om_handle.h
+
 pkglib_LTLIBRARIES += lib/libosaf_common.la
 
 lib_libosaf_common_la_CFLAGS = $(OSAF_LIB_FLAGS) $(AM_CFLAGS)
@@ -49,12 +69,33 @@ lib_libosaf_common_la_SOURCES = \
        src/osaf/consensus/key_value.cc \
        src/osaf/consensus/consensus.cc
 
+# immtools code
+# IMM configuration modifier
+lib_libosaf_common_la_SOURCES += \
+       src/osaf/immtools/imm_modify_config/attribute.cc \
+       src/osaf/immtools/imm_modify_config/add_operation_to_ccb.cc \
+       src/osaf/immtools/imm_modify_config/immccb.cc
+
+# IMM OM C++ APIs
+lib_libosaf_common_la_SOURCES += \
+       src/osaf/immtools/imm_om_ccapi/common/common.cc \
+       src/osaf/immtools/imm_om_ccapi/common/imm_attribute.cc \
+       src/osaf/immtools/imm_om_ccapi/om_admin_owner_clear.cc \
+       src/osaf/immtools/imm_om_ccapi/om_admin_owner_handle.cc \
+       src/osaf/immtools/imm_om_ccapi/om_admin_owner_set.cc \
+       src/osaf/immtools/imm_om_ccapi/om_ccb_handle.cc \
+       src/osaf/immtools/imm_om_ccapi/om_ccb_object_create.cc \
+       src/osaf/immtools/imm_om_ccapi/om_ccb_object_delete.cc \
+       src/osaf/immtools/imm_om_ccapi/om_ccb_object_modify.cc \
+       src/osaf/immtools/imm_om_ccapi/om_handle.cc
+
 nodist_EXTRA_lib_libosaf_common_la_SOURCES = dummy.cc
 
 lib_libosaf_common_la_LIBADD = \
        lib/libSaLog.la \
        lib/libSaImmOi.la \
-       lib/libSaImmOm.la
+       lib/libSaImmOm.la \
+       lib/libopensaf_core.la
 
 if ENABLE_IMMXML
 
@@ -87,3 +128,92 @@ lib_libapitest_la_SOURCES = \
 nodist_EXTRA_lib_libapitest_la_SOURCES = dummy.cc
 
 endif
+
+# immtools test and demo. Built if configured with --enable-test
+# These tests and demos has to be run manually. Not part of any other test 
package
+# Should probably be changed to include in osaf test
+if ENABLE_TESTS
+
+bin_PROGRAMS += \
+       bin/ccbdemo_create \
+       bin/ccbdemo_delete \
+       bin/ccbdemo_modify \
+       bin/test_ccbhdl
+
+# Installed if configured with --enable-immxml
+if ENABLE_IMMXML
+
+dist_pkgimmxml_svc_DATA += \
+       src/osaf/immtools/imm_modify_demo/democlass.xml
+
+endif
+
+noinst_HEADERS += \
+       src/osaf/immtools/imm_modify_demo/common.h
+
+# DEMO Create
+# -----------
+bin_ccbdemo_create_CFLAGS = $(AM_CFLAGS) -Wformat=1
+
+bin_ccbdemo_create_CPPFLAGS = \
+       -DSA_EXTENDED_NAME_SOURCE \
+       $(AM_CPPFLAGS)
+
+bin_ccbdemo_create_SOURCES = \
+       src/osaf/immtools/imm_modify_demo/common.cc \
+       src/osaf/immtools/imm_modify_demo/ccbdemo_create.cc
+
+bin_ccbdemo_create_LDADD = \
+       lib/libosaf_common.la \
+       lib/libopensaf_core.la
+
+# DEMO Delete
+# -----------
+bin_ccbdemo_delete_CFLAGS = $(AM_CFLAGS) -Wformat=1
+
+bin_ccbdemo_delete_CPPFLAGS = \
+       -DSA_EXTENDED_NAME_SOURCE \
+       $(AM_CPPFLAGS)
+
+bin_ccbdemo_delete_SOURCES = \
+       src/osaf/immtools/imm_modify_demo/common.cc \
+       src/osaf/immtools/imm_modify_demo/ccbdemo_delete.cc
+
+bin_ccbdemo_delete_LDADD = \
+       lib/libosaf_common.la \
+       lib/libopensaf_core.la
+
+# DEMO Modify
+# -----------
+bin_ccbdemo_modify_CFLAGS = $(AM_CFLAGS) -Wformat=1
+
+bin_ccbdemo_modify_CPPFLAGS = \
+       -DSA_EXTENDED_NAME_SOURCE \
+       $(AM_CPPFLAGS)
+
+bin_ccbdemo_modify_SOURCES = \
+       src/osaf/immtools/imm_modify_demo/common.cc \
+       src/osaf/immtools/imm_modify_demo/ccbdemo_modify.cc
+
+bin_ccbdemo_modify_LDADD = \
+       lib/libosaf_common.la \
+       lib/libopensaf_core.la
+
+# Test CCBHDL
+# -----------
+bin_test_ccbhdl_CFLAGS = $(AM_CFLAGS) -Wformat=1
+
+bin_test_ccbhdl_CPPFLAGS = \
+       -DSA_EXTENDED_NAME_SOURCE \
+       $(AM_CPPFLAGS)
+
+bin_test_ccbhdl_SOURCES = \
+       src/osaf/immtools/imm_modify_demo/common.cc \
+       src/osaf/immtools/imm_modify_demo/test_ccbhdl.cc
+
+bin_test_ccbhdl_LDADD = \
+       lib/libosaf_common.la \
+       lib/libopensaf_core.la
+
+# ENABLE_TESTS
+endif
diff --git a/src/smf/smfd/imm_modify_config/README 
b/src/osaf/immtools/imm_modify_config/README
similarity index 100%
rename from src/smf/smfd/imm_modify_config/README
rename to src/osaf/immtools/imm_modify_config/README
diff --git a/src/smf/smfd/imm_modify_config/add_operation_to_ccb.cc 
b/src/osaf/immtools/imm_modify_config/add_operation_to_ccb.cc
similarity index 94%
rename from src/smf/smfd/imm_modify_config/add_operation_to_ccb.cc
rename to src/osaf/immtools/imm_modify_config/add_operation_to_ccb.cc
index 9273b7739..27d1517bf 100644
--- a/src/smf/smfd/imm_modify_config/add_operation_to_ccb.cc
+++ b/src/osaf/immtools/imm_modify_config/add_operation_to_ccb.cc
@@ -16,7 +16,7 @@
  *
  */
 
-#include "smf/smfd/imm_modify_config/add_operation_to_ccb.h"
+#include "osaf/immtools/imm_modify_config/add_operation_to_ccb.h"
 
 #include <limits.h>
 
@@ -31,18 +31,18 @@
 #include "ais/include/saImm.h"
 #include "ais/include/saAis.h"
 
-#include "smf/smfd/imm_modify_config/immccb.h"
-#include "smf/smfd/imm_modify_config/attribute.h"
+#include "osaf/immtools/imm_modify_config/immccb.h"
+#include "osaf/immtools/imm_modify_config/attribute.h"
 
-#include "smf/smfd/imm_om_ccapi/common/common.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_create.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_delete.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_modify.h"
+#include "osaf/immtools/imm_om_ccapi/common/common.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_create.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_delete.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_modify.h"
 
 namespace modelmodify {
 
 // Error information. See immccb.h
-static std::string api_name_;
+std::string api_name_;
 static SaAisErrorT ais_error_ = SA_AIS_OK;
 
 void GetAddToCbbErrorInfo(ErrorInformation *error_info) {
@@ -91,7 +91,7 @@ int AddCreateToCcb(const SaImmCcbHandleT& ccb_handle,
   //        attribute values. This vector  must have the same scope as the
   //        creator.
   AttributeHandler attributes(&creator);
-  if(attributes.AddAttributesForObjectCreate(create_descriptor) == false) {
+  if (attributes.AddAttributesForObjectCreate(create_descriptor) == false) {
     LOG_NO("%s: SetAttributeValues() Fail", __FUNCTION__);
     recovery_info = kFail;
     api_name_.clear();
@@ -238,7 +238,7 @@ int AddModifyToCcb(const SaImmCcbHandleT& ccb_handle,
   //        modifier. Each modify descriptor contains a value and a
   //        modification type
   AttributeHandler modifications(&modifier);
-  if(modifications.AddAttributesForModification(modify_descriptor) == false) {
+  if (modifications.AddAttributesForModification(modify_descriptor) == false) {
     LOG_NO("%s: SetAttributeValues() Fail", __FUNCTION__);
     recovery_info = kFail;
     api_name_ = "";
diff --git a/src/smf/smfd/imm_modify_config/add_operation_to_ccb.h 
b/src/osaf/immtools/imm_modify_config/add_operation_to_ccb.h
similarity index 92%
rename from src/smf/smfd/imm_modify_config/add_operation_to_ccb.h
rename to src/osaf/immtools/imm_modify_config/add_operation_to_ccb.h
index 7cfabdd93..e1b7a3974 100644
--- a/src/smf/smfd/imm_modify_config/add_operation_to_ccb.h
+++ b/src/osaf/immtools/imm_modify_config/add_operation_to_ccb.h
@@ -19,7 +19,7 @@
 #include <string>
 #include <vector>
 
-#include "smf/smfd/imm_modify_config/immccb.h"
+#include "osaf/immtools/imm_modify_config/immccb.h"
 
 #include "ais/include/saImm.h"
 #include "ais/include/saAis.h"
@@ -28,8 +28,8 @@
 // in imm_om_ccapi directory adapting them to how the input data for CCBs are
 // handled in the ObjectModification class
 
-#ifndef SMF_SMFD_IMM_MODIFY_CONFIG_ADD_OPERATION_TO_CCB_H_
-#define SMF_SMFD_IMM_MODIFY_CONFIG_ADD_OPERATION_TO_CCB_H_
+#ifndef OSAF_IMMTOOLS_IMM_MODIFY_CONFIG_ADD_OPERATION_TO_CCB_H_
+#define OSAF_IMMTOOLS_IMM_MODIFY_CONFIG_ADD_OPERATION_TO_CCB_H_
 
 namespace modelmodify {
 
@@ -78,4 +78,4 @@ int AddModifyToCcb(const SaImmCcbHandleT& ccb_handle,
 
 }  // namespace modelmodify
 
-#endif /* SMF_SMFD_IMM_MODIFY_CONFIG_ADD_OPERATION_TO_CCB_H_ */
+#endif // OSAF_IMMTOOLS_IMM_MODIFY_CONFIG_ADD_OPERATION_TO_CCB_H_
diff --git a/src/smf/smfd/imm_modify_config/attribute.cc 
b/src/osaf/immtools/imm_modify_config/attribute.cc
similarity index 98%
rename from src/smf/smfd/imm_modify_config/attribute.cc
rename to src/osaf/immtools/imm_modify_config/attribute.cc
index d31524f67..6e8bd83c5 100644
--- a/src/smf/smfd/imm_modify_config/attribute.cc
+++ b/src/osaf/immtools/imm_modify_config/attribute.cc
@@ -15,7 +15,7 @@
  * Author(s): Ericsson AB
  *
  */
-#include "smf/smfd/imm_modify_config/attribute.h"
+#include "osaf/immtools/imm_modify_config/attribute.h"
 
 #include <limits.h>
 
@@ -30,11 +30,11 @@
 #include "ais/include/saImm.h"
 #include "ais/include/saAis.h"
 
-#include "smf/smfd/imm_modify_config/immccb.h"
+#include "osaf/immtools/imm_modify_config/immccb.h"
 
-#include "smf/smfd/imm_om_ccapi/common/common.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_create.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_modify.h"
+#include "osaf/immtools/imm_om_ccapi/common/common.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_create.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_modify.h"
 
 namespace modelmodify {
 
@@ -47,7 +47,7 @@ namespace modelmodify {
 // return false on error. Type of error is logged in syslog
 template<typename T>
 static bool StringToNumericValue(const std::string& str_value,
-                          T& num_value, const SaImmValueTypeT imm_type) {
+                          T& num_value, SaImmValueTypeT imm_type) {
   bool rc = true;
 
   try {
diff --git a/src/smf/smfd/imm_modify_config/attribute.h 
b/src/osaf/immtools/imm_modify_config/attribute.h
similarity index 94%
rename from src/smf/smfd/imm_modify_config/attribute.h
rename to src/osaf/immtools/imm_modify_config/attribute.h
index 91aebcde3..2a4a993cd 100644
--- a/src/smf/smfd/imm_modify_config/attribute.h
+++ b/src/osaf/immtools/imm_modify_config/attribute.h
@@ -23,14 +23,14 @@
 #include "ais/include/saImm.h"
 #include "ais/include/saAis.h"
 
-#include "smf/smfd/imm_modify_config/immccb.h"
+#include "osaf/immtools/imm_modify_config/immccb.h"
 
-#include "smf/smfd/imm_om_ccapi/common/common.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_create.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_modify.h"
+#include "osaf/immtools/imm_om_ccapi/common/common.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_create.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_modify.h"
 
-#ifndef SMF_SMFD_IMM_MODIFY_CONFIG_ATTRIBUTE_H_
-#define SMF_SMFD_IMM_MODIFY_CONFIG_ATTRIBUTE_H_
+#ifndef OSAF_IMMTOOLS_IMM_MODIFY_CONFIG_ATTRIBUTE_H_
+#define OSAF_IMMTOOLS_IMM_MODIFY_CONFIG_ATTRIBUTE_H_
 
 // Convert std::string to SaNameT or SaAnyT.
 // Shall be used with AttributeDescriptor object where SaNametToString or
@@ -46,7 +46,8 @@ static inline void StringToSaNameT(const std::string& 
str_namet,
 //       the string and writes the address in the SaAnyT buffer pointer.
 //       This means that this memory must be freed after usage using:
 //       free(<my_anyt>.bufferAddr);
-static inline void StringToSaAnyT(const std::string& str_anyt, SaAnyT* 
anyt_value) {
+static inline void StringToSaAnyT(const std::string& str_anyt,
+                                  SaAnyT* anyt_value) {
   size_t anyt_size = str_anyt.size();
   SaUint8T* anyt_buffer = static_cast<SaUint8T*>(malloc(anyt_size));
   if (anyt_buffer == nullptr) {
@@ -267,4 +268,4 @@ class AttributeHandler {
 };
 
 }  // namespace modelmodify
-#endif /* SMF_SMFD_IMM_MODIFY_CONFIG_ATTRIBUTE_H_ */
+#endif // OSAF_IMMTOOLS_IMM_MODIFY_CONFIG_ATTRIBUTE_H_
diff --git a/src/smf/smfd/imm_modify_config/immccb.cc 
b/src/osaf/immtools/imm_modify_config/immccb.cc
similarity index 96%
rename from src/smf/smfd/imm_modify_config/immccb.cc
rename to src/osaf/immtools/imm_modify_config/immccb.cc
index 63392759e..490f5242c 100644
--- a/src/smf/smfd/imm_modify_config/immccb.cc
+++ b/src/osaf/immtools/imm_modify_config/immccb.cc
@@ -19,9 +19,9 @@
 // Note:
 // IMM C++ "wrappers" for CCB handling IMM AOIs are copied from
 // experimental/immcpp and used slightly modified here. The "wrapper" copies
-// can be found in the smfd/imm_om_ccapi directory.
+// can be found in the base/immtools/imm_om_ccapi directory.
 
-#include "smf/smfd/imm_modify_config/immccb.h"
+#include "osaf/immtools/imm_modify_config/immccb.h"
 
 #include <string>
 #include <vector>
@@ -35,17 +35,17 @@
 #include "base/time.h"
 #include "base/saf_error.h"
 
-#include "smf/smfd/imm_modify_config/add_operation_to_ccb.h"
+#include "osaf/immtools/imm_modify_config/add_operation_to_ccb.h"
 
-#include "smf/smfd/imm_om_ccapi/common/common.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_clear.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_handle.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_set.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_handle.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_create.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_delete.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_modify.h"
-#include "smf/smfd/imm_om_ccapi/om_handle.h"
+#include "osaf/immtools/imm_om_ccapi/common/common.h"
+#include "osaf/immtools/imm_om_ccapi/om_admin_owner_clear.h"
+#include "osaf/immtools/imm_om_ccapi/om_admin_owner_handle.h"
+#include "osaf/immtools/imm_om_ccapi/om_admin_owner_set.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_handle.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_create.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_delete.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_modify.h"
+#include "osaf/immtools/imm_om_ccapi/om_handle.h"
 
 namespace modelmodify {
 
@@ -68,7 +68,7 @@ ModelModification::ModelModification()
     TRACE_ENTER();
     // Create a unique admin owner name for this ObjectModification object
     instance_number_ = next_instance_number_++;
-    admin_owner_name_ = "SmfObjectModification" +
+    admin_owner_name_ = "ObjectModification" +
         std::to_string(instance_number_);
     TRACE_LEAVE();
   }
diff --git a/src/smf/smfd/imm_modify_config/immccb.h 
b/src/osaf/immtools/imm_modify_config/immccb.h
similarity index 96%
rename from src/smf/smfd/imm_modify_config/immccb.h
rename to src/osaf/immtools/imm_modify_config/immccb.h
index 9fd36765e..215c08997 100644
--- a/src/smf/smfd/imm_modify_config/immccb.h
+++ b/src/osaf/immtools/imm_modify_config/immccb.h
@@ -26,15 +26,15 @@
 #include "ais/include/saAis.h"
 #include "base/osaf_extended_name.h"
 
-#include "smf/smfd/imm_om_ccapi/common/common.h"
-#include "smf/smfd/imm_om_ccapi/om_handle.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_handle.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_handle.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_create.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_set.h"
+#include "osaf/immtools/imm_om_ccapi/common/common.h"
+#include "osaf/immtools/imm_om_ccapi/om_handle.h"
+#include "osaf/immtools/imm_om_ccapi/om_admin_owner_handle.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_handle.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_create.h"
+#include "osaf/immtools/imm_om_ccapi/om_admin_owner_set.h"
 
-#ifndef SMF_SMFD_IMM_MODIFY_CONFIG_IMMCCB_H_
-#define SMF_SMFD_IMM_MODIFY_CONFIG_IMMCCB_H_
+#ifndef OSAF_IMMTOOLS_IMM_MODIFY_CONFIG_IMMCCB_H_
+#define OSAF_IMMTOOLS_IMM_MODIFY_CONFIG_IMMCCB_H_
 
 /* Handle modifications in the IMM model
  *
@@ -114,7 +114,7 @@ static inline SaImmValueTypeT StringToSaImmValueType(const 
std::string&
 // enum name.
 // Example: SA_IMM_ATTR_VALUES_ADD corresponds with "SA_IMM_ATTR_VALUES_ADD"
 
-static inline SaImmAttrModificationTypeT StringToImmAttrModType(const
+static inline SaImmAttrModificationTypeT StringToImmAttrModType(
                                           std::string& modification_type);
 
 // AttributeDescriptor: Describes one attribute
@@ -375,7 +375,7 @@ inline static const char* RecoveryTxt(int recovery_info) {
 //
 // Example: Create an IMM object Obj1 based on IMM class Class1. The rdn
 //          attribute name is obj1Name and the object name (rdn) shall be
-//          obj1=1. Parent is safApp=safSmfService. No other attributes will be
+//          obj1=1. Parent is safApp=safXxxService. No other attributes will be
 //          set at creation time
 //
 //  // 1. Fill in an attribute descriptor for the object name:
@@ -385,7 +385,7 @@ inline static const char* RecoveryTxt(int recovery_info) {
 //  // 2. Fill in a create descriptor:
 //  modelmodify::CreateDescriptor create_obj1;
 //  create_obj1.class_name = "Class1";
-//  create_obj1.parent_name = "safApp=safSmfService";
+//  create_obj1.parent_name = "safApp=safXxxService";
 //  create_obj1.AddAttribute(object_name);
 //
 //  // 3. Fill in a CCB descriptor:
@@ -407,8 +407,7 @@ class ModelModification {
   // Set CCB Flags
   // If flag SA_IMM_CCB_REGISTERED_OI is set then an Object Implementer must
   // validate the requested modifications, for more info see IMM AIS.
-  // For SMF this is normally not the case so the default setting is to not
-  // set this flag.
+  // The default setting is to not set this flag.
   void SetCcbFlags(SaImmCcbFlagsT ccb_flags) { ccb_flags_ = ccb_flags; }
 
   // Returns False if an unrecoverable problem occurs. This may for example be
@@ -426,7 +425,7 @@ class ModelModification {
   void FinalizeHandles(void);
   int CreateHandles(void);
   int CreateObjectManager(void);
-  int CreateAdminOwner(void); // Create a handle
+  int CreateAdminOwner(void);  // Create a handle
   int CreateCcb(void);
 
   int AdminOwnerSet(const std::vector<std::string>& objects,
@@ -542,7 +541,7 @@ static inline SaImmValueTypeT StringToSaImmValueType(const 
std::string&
   }
 }
 
-static inline SaImmAttrModificationTypeT StringToImmAttrModType(const
+static inline SaImmAttrModificationTypeT StringToImmAttrModType(
                                           std::string& modification_type) {
   if (modification_type.compare("SA_IMM_ATTR_VALUES_ADD") == 0)
     return SA_IMM_ATTR_VALUES_ADD;
@@ -559,4 +558,4 @@ static inline SaImmAttrModificationTypeT 
StringToImmAttrModType(const
 
 }  // namespace modelmodify
 
-#endif  // SMF_SMFD_IMM_MODIFY_CONFIG_IMMCCB_H_
+#endif  // OSAF_IMMTOOLS_IMM_MODIFY_CONFIG_IMMCCB_H_
diff --git a/src/smf/smfd/imm_modify_demo/Makefile 
b/src/osaf/immtools/imm_modify_demo/Makefile
similarity index 100%
rename from src/smf/smfd/imm_modify_demo/Makefile
rename to src/osaf/immtools/imm_modify_demo/Makefile
diff --git a/src/smf/smfd/imm_modify_demo/README 
b/src/osaf/immtools/imm_modify_demo/README
similarity index 100%
rename from src/smf/smfd/imm_modify_demo/README
rename to src/osaf/immtools/imm_modify_demo/README
diff --git a/src/smf/smfd/imm_modify_demo/ccbdemo_create.cc 
b/src/osaf/immtools/imm_modify_demo/ccbdemo_create.cc
similarity index 95%
rename from src/smf/smfd/imm_modify_demo/ccbdemo_create.cc
rename to src/osaf/immtools/imm_modify_demo/ccbdemo_create.cc
index 835256dba..8f3891ca0 100644
--- a/src/smf/smfd/imm_modify_demo/ccbdemo_create.cc
+++ b/src/osaf/immtools/imm_modify_demo/ccbdemo_create.cc
@@ -29,22 +29,22 @@
 #include "base/osaf_extended_name.h"
 #include "osaf/configmake.h"
 
-#include "smf/smfd/imm_modify_demo/common.h"
+#include "osaf/immtools/imm_modify_demo/common.h"
 
-#include "smf/smfd/imm_modify_config/immccb.h"
+#include "osaf/immtools/imm_modify_config/immccb.h"
 
 using namespace std;
 
 #if 1  // Low level OM interface
-#include "smf/smfd/imm_om_ccapi/common/common.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_clear.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_handle.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_set.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_handle.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_create.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_delete.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_modify.h"
-#include "smf/smfd/imm_om_ccapi/om_handle.h"
+#include "osaf/immtools/imm_om_ccapi/common/common.h"
+#include "osaf/immtools/imm_om_ccapi/om_admin_owner_clear.h"
+#include "osaf/immtools/imm_om_ccapi/om_admin_owner_handle.h"
+#include "osaf/immtools/imm_om_ccapi/om_admin_owner_set.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_handle.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_create.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_delete.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_modify.h"
+#include "osaf/immtools/imm_om_ccapi/om_handle.h"
 #endif
 
 void PrintSaAnyT(SaAnyT *value) {
diff --git a/src/smf/smfd/imm_modify_demo/ccbdemo_delete.cc 
b/src/osaf/immtools/imm_modify_demo/ccbdemo_delete.cc
similarity index 87%
rename from src/smf/smfd/imm_modify_demo/ccbdemo_delete.cc
rename to src/osaf/immtools/imm_modify_demo/ccbdemo_delete.cc
index c200cf2cc..b5e7950e9 100644
--- a/src/smf/smfd/imm_modify_demo/ccbdemo_delete.cc
+++ b/src/osaf/immtools/imm_modify_demo/ccbdemo_delete.cc
@@ -29,20 +29,20 @@
 #include "base/osaf_extended_name.h"
 #include "osaf/configmake.h"
 
-#include "smf/smfd/imm_modify_demo/common.h"
-
-#include "smf/smfd/imm_modify_config/immccb.h"
-
-#if 1  // Low level OM interface
-#include "smf/smfd/imm_om_ccapi/common/common.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_clear.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_handle.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_set.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_handle.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_create.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_delete.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_modify.h"
-#include "smf/smfd/imm_om_ccapi/om_handle.h"
+#include "osaf/immtools/imm_modify_demo/common.h"
+
+#include "osaf/immtools/imm_modify_config/immccb.h"
+
+#if 0  // Low level OM interface
+#include "osaf/immtools/imm_om_ccapi/common/common.h"
+#include "osaf/immtools/imm_om_ccapi/om_admin_owner_clear.h"
+#include "osaf/immtools/imm_om_ccapi/om_admin_owner_handle.h"
+#include "osaf/immtools/imm_om_ccapi/om_admin_owner_set.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_handle.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_create.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_delete.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_modify.h"
+#include "osaf/immtools/imm_om_ccapi/om_handle.h"
 #endif
 
 using namespace std;
diff --git a/src/smf/smfd/imm_modify_demo/ccbdemo_modify.cc 
b/src/osaf/immtools/imm_modify_demo/ccbdemo_modify.cc
similarity index 78%
rename from src/smf/smfd/imm_modify_demo/ccbdemo_modify.cc
rename to src/osaf/immtools/imm_modify_demo/ccbdemo_modify.cc
index ba2482f7c..1a6d8aac2 100644
--- a/src/smf/smfd/imm_modify_demo/ccbdemo_modify.cc
+++ b/src/osaf/immtools/imm_modify_demo/ccbdemo_modify.cc
@@ -29,73 +29,23 @@
 #include "base/osaf_extended_name.h"
 #include "osaf/configmake.h"
 
-#include "smf/smfd/imm_modify_demo/common.h"
+#include "osaf/immtools/imm_modify_demo/common.h"
 
-#include "smf/smfd/imm_modify_config/immccb.h"
+#include "osaf/immtools/imm_modify_config/immccb.h"
 
 #if 1  // Low level OM interface
-#include "smf/smfd/imm_om_ccapi/common/common.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_clear.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_handle.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_set.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_handle.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_create.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_delete.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_modify.h"
-#include "smf/smfd/imm_om_ccapi/om_handle.h"
+#include "osaf/immtools/imm_om_ccapi/common/common.h"
+#include "osaf/immtools/imm_om_ccapi/om_admin_owner_clear.h"
+#include "osaf/immtools/imm_om_ccapi/om_admin_owner_handle.h"
+#include "osaf/immtools/imm_om_ccapi/om_admin_owner_set.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_handle.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_create.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_delete.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_modify.h"
+#include "osaf/immtools/imm_om_ccapi/om_handle.h"
 #endif
 
 using namespace std;
-
-/*      -*- OpenSAF  -*-
- *
- * (C) Copyright 2008 The OpenSAF Foundation
- * Copyright Ericsson AB 2018 - All Rights Reserved.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. This file and program are licensed
- * under the GNU Lesser General Public License Version 2.1, February 1999.
- * The complete license can be accessed from the following location:
- * http://opensource.org/licenses/lgpl-license.php
- * See the Copying file included with the OpenSAF distribution for full
- * licensing terms.
- *
- * Author(s): Ericsson AB
- *
- */
-
-#if 0
-#include <limits.h>
-
-#include <string>
-#include <vector>
-#include <memory>
-#include <utility>
-#include <iostream>
-
-#include "ais/include/saImm.h"
-#include "ais/include/saAis.h"
-#include "base/osaf_extended_name.h"
-#include "osaf/configmake.h"
-
-#include "smf/smfd/imm_modify_config/immccb.h"
-
-#if 1 // Low level OM interface
-#include "smf/smfd/imm_om_ccapi/common/common.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_clear.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_handle.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_set.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_handle.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_create.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_delete.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_modify.h"
-#include "smf/smfd/imm_om_ccapi/om_handle.h"
-#endif
-#endif
-
-using namespace std;
-
 #if 0  // Working code using om API directly
 // Note: Before running this code an object to modify must have been created
 //       This can be done by running ccbdemo_create
diff --git a/src/smf/smfd/imm_modify_demo/common.cc 
b/src/osaf/immtools/imm_modify_demo/common.cc
similarity index 97%
rename from src/smf/smfd/imm_modify_demo/common.cc
rename to src/osaf/immtools/imm_modify_demo/common.cc
index 7c3ab8e91..2a590b4bc 100644
--- a/src/smf/smfd/imm_modify_demo/common.cc
+++ b/src/osaf/immtools/imm_modify_demo/common.cc
@@ -16,7 +16,7 @@
  *
  */
 
-#include "smf/smfd/imm_modify_demo/common.h"
+#include "osaf/immtools/imm_modify_demo/common.h"
 
 #include <stdlib.h>
 
diff --git a/src/smf/smfd/imm_modify_demo/common.h 
b/src/osaf/immtools/imm_modify_demo/common.h
similarity index 89%
rename from src/smf/smfd/imm_modify_demo/common.h
rename to src/osaf/immtools/imm_modify_demo/common.h
index 4493dd7fe..c17e926cd 100644
--- a/src/smf/smfd/imm_modify_demo/common.h
+++ b/src/osaf/immtools/imm_modify_demo/common.h
@@ -19,8 +19,8 @@
 // This file is a place to put functions etc. used in more than one program in
 // this directory
 
-#ifndef COMMON_H
-#define COMMON_H
+#ifndef OSAF_IMMTOOLS_IMM_MODIFY_DEMO_COMMON_H_
+#define OSAF_IMMTOOLS_IMM_MODIFY_DEMO_COMMON_H_
 
 // Execute a shell command using system
 bool ExecuteCommand(const char* command);
@@ -36,5 +36,5 @@ bool EnableImmLongDn(void);
 bool InstallDemoClass(void);
 
 
-#endif /* COMMON_H */
+#endif  // OSAF_IMMTOOLS_IMM_MODIFY_DEMO_COMMON_H_
 
diff --git a/src/smf/smfd/imm_modify_demo/democlass.xml 
b/src/osaf/immtools/imm_modify_demo/democlass.xml
similarity index 100%
rename from src/smf/smfd/imm_modify_demo/democlass.xml
rename to src/osaf/immtools/imm_modify_demo/democlass.xml
diff --git a/src/smf/smfd/imm_modify_demo/test_ccbhdl.cc 
b/src/osaf/immtools/imm_modify_demo/test_ccbhdl.cc
similarity index 97%
rename from src/smf/smfd/imm_modify_demo/test_ccbhdl.cc
rename to src/osaf/immtools/imm_modify_demo/test_ccbhdl.cc
index 727953edd..d782fdfb4 100644
--- a/src/smf/smfd/imm_modify_demo/test_ccbhdl.cc
+++ b/src/osaf/immtools/imm_modify_demo/test_ccbhdl.cc
@@ -30,19 +30,19 @@
 #include "base/saf_error.h"
 #include "osaf/configmake.h"
 
-#include "smf/smfd/imm_modify_demo/common.h"
+#include "osaf/immtools/imm_modify_demo/common.h"
 
-#include "smf/smfd/imm_modify_config/immccb.h"
+#include "osaf/immtools/imm_modify_config/immccb.h"
 
-#include "smf/smfd/imm_om_ccapi/common/common.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_clear.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_handle.h"
-#include "smf/smfd/imm_om_ccapi/om_admin_owner_set.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_handle.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_create.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_delete.h"
-#include "smf/smfd/imm_om_ccapi/om_ccb_object_modify.h"
-#include "smf/smfd/imm_om_ccapi/om_handle.h"
+#include "osaf/immtools/imm_om_ccapi/common/common.h"
+#include "osaf/immtools/imm_om_ccapi/om_admin_owner_clear.h"
+#include "osaf/immtools/imm_om_ccapi/om_admin_owner_handle.h"
+#include "osaf/immtools/imm_om_ccapi/om_admin_owner_set.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_handle.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_create.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_delete.h"
+#include "osaf/immtools/imm_om_ccapi/om_ccb_object_modify.h"
+#include "osaf/immtools/imm_om_ccapi/om_handle.h"
 
 using namespace std;
 
@@ -208,7 +208,7 @@ int main() {
   cout << "test_ccbhdl" << endl;
   cout << "IMM class used for test: ImmTestValuesConfig" << endl;
 
-#if 0 //  Enable trace
+#if 0  //  Enable trace
   unsigned int category_mask = 0xffffffff;
   const char* logPath = PKGLOGDIR "/osafccbdemo1";
   if (logtrace_init("ccbdemo1", logPath, category_mask) == -1) {
@@ -230,7 +230,7 @@ int main() {
   // Prepare/enable extended name
   // ----------------------------
   setenv("SA_ENABLE_EXTENDED_NAMES", "1", 1);
-  
+
   if (EnableImmLongDn() == false) return -1;
 
   // Note: Long DN must be configured in IMM configuration object before
diff --git a/src/smf/smfd/imm_om_ccapi/common/common.cc 
b/src/osaf/immtools/imm_om_ccapi/common/common.cc
similarity index 100%
rename from src/smf/smfd/imm_om_ccapi/common/common.cc
rename to src/osaf/immtools/imm_om_ccapi/common/common.cc
diff --git a/src/smf/smfd/imm_om_ccapi/common/common.h 
b/src/osaf/immtools/imm_om_ccapi/common/common.h
similarity index 97%
rename from src/smf/smfd/imm_om_ccapi/common/common.h
rename to src/osaf/immtools/imm_om_ccapi/common/common.h
index b9c87cb06..235f5aef8 100644
--- a/src/smf/smfd/imm_om_ccapi/common/common.h
+++ b/src/osaf/immtools/imm_om_ccapi/common/common.h
@@ -15,8 +15,8 @@
  *
  */
 
-#ifndef SMF_SMFD_IMM_OM_CCAPI_COMMON_COMMON_H_
-#define SMF_SMFD_IMM_OM_CCAPI_COMMON_COMMON_H_
+#ifndef OSAF_IMMTOOLS_IMM_OM_CCAPI_COMMON_COMMON_H_
+#define OSAF_IMMTOOLS_IMM_OM_CCAPI_COMMON_COMMON_H_
 
 #include <string>
 #include "ais/include/saImm.h"
@@ -186,4 +186,4 @@ SaImmValueTypeT ImmBase::GetAttributeValueType() {
       std::is_same<T, SaAnyT>::value,           \
       "typename T is not supported");
 
-#endif  // SMF_SMFD_IMM_OM_CCAPI_COMMON_COMMON_H_
+#endif  // OSAF_IMMTOOLS_IMM_OM_CCAPI_COMMON_COMMON_H_
diff --git a/src/smf/smfd/imm_om_ccapi/common/imm_attribute.cc 
b/src/osaf/immtools/imm_om_ccapi/common/imm_attribute.cc
similarity index 100%
rename from src/smf/smfd/imm_om_ccapi/common/imm_attribute.cc
rename to src/osaf/immtools/imm_om_ccapi/common/imm_attribute.cc
diff --git a/src/smf/smfd/imm_om_ccapi/common/imm_attribute.h 
b/src/osaf/immtools/imm_om_ccapi/common/imm_attribute.h
similarity index 97%
rename from src/smf/smfd/imm_om_ccapi/common/imm_attribute.h
rename to src/osaf/immtools/imm_om_ccapi/common/imm_attribute.h
index d4794eb84..7a6cccbb8 100644
--- a/src/smf/smfd/imm_om_ccapi/common/imm_attribute.h
+++ b/src/osaf/immtools/imm_om_ccapi/common/imm_attribute.h
@@ -15,14 +15,14 @@
  *
  */
 
-#ifndef SMF_SMFD_IMM_OM_CCAPI_COMMON_IMM_ATTRIBUTE_H_
-#define SMF_SMFD_IMM_OM_CCAPI_COMMON_IMM_ATTRIBUTE_H_
+#ifndef OSAF_IMMTOOLS_IMM_OM_CCAPI_COMMON_IMM_ATTRIBUTE_H_
+#define OSAF_IMMTOOLS_IMM_OM_CCAPI_COMMON_IMM_ATTRIBUTE_H_
 
 #include <string.h>
 #include <string>
 #include <vector>
 #include "ais/include/saImm.h"
-#include "smf/smfd/imm_om_ccapi/common/common.h"
+#include "osaf/immtools/imm_om_ccapi/common/common.h"
 
 //>
 // These below 03 classes represent C IMM data structures
@@ -231,4 +231,4 @@ using ListOfAttributePropertyPtr     = 
std::vector<AttributeProperty*>;
 using ListOfAttributeModificationPtr = std::vector<AttributeModification*>;
 using ListOfAttributeDefinitionPtr   = std::vector<AttributeDefinition*>;
 
-#endif  // SMF_SMFD_IMM_OM_CCAPI_COMMON_IMM_ATTRIBUTE_H_
+#endif  // OSAF_IMMTOOLS_IMM_OM_CCAPI_COMMON_IMM_ATTRIBUTE_H_
diff --git a/src/smf/smfd/imm_om_ccapi/om_admin_owner_clear.cc 
b/src/osaf/immtools/imm_om_ccapi/om_admin_owner_clear.cc
similarity index 100%
rename from src/smf/smfd/imm_om_ccapi/om_admin_owner_clear.cc
rename to src/osaf/immtools/imm_om_ccapi/om_admin_owner_clear.cc
diff --git a/src/smf/smfd/imm_om_ccapi/om_admin_owner_clear.h 
b/src/osaf/immtools/imm_om_ccapi/om_admin_owner_clear.h
similarity index 92%
rename from src/smf/smfd/imm_om_ccapi/om_admin_owner_clear.h
rename to src/osaf/immtools/imm_om_ccapi/om_admin_owner_clear.h
index 2bbff8429..5343ffccf 100644
--- a/src/smf/smfd/imm_om_ccapi/om_admin_owner_clear.h
+++ b/src/osaf/immtools/imm_om_ccapi/om_admin_owner_clear.h
@@ -15,8 +15,8 @@
  *
  */
 
-#ifndef SMF_SMFD_IMM_OM_CCAPI_OM_ADMIN_OWNER_CLEAR_H_
-#define SMF_SMFD_IMM_OM_CCAPI_OM_ADMIN_OWNER_CLEAR_H_
+#ifndef OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_ADMIN_OWNER_CLEAR_H_
+#define OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_ADMIN_OWNER_CLEAR_H_
 
 #include <vector>
 #include <string>
@@ -79,4 +79,4 @@ class ImmOmAdminOwnerClear : public ImmBase {
 
 }  // namespace immom
 
-#endif  // SMF_SMFD_IMM_OM_CCAPI_OM_ADMIN_OWNER_CLEAR_H_
+#endif  // OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_ADMIN_OWNER_CLEAR_H_
diff --git a/src/smf/smfd/imm_om_ccapi/om_admin_owner_handle.cc 
b/src/osaf/immtools/imm_om_ccapi/om_admin_owner_handle.cc
similarity index 100%
rename from src/smf/smfd/imm_om_ccapi/om_admin_owner_handle.cc
rename to src/osaf/immtools/imm_om_ccapi/om_admin_owner_handle.cc
diff --git a/src/smf/smfd/imm_om_ccapi/om_admin_owner_handle.h 
b/src/osaf/immtools/imm_om_ccapi/om_admin_owner_handle.h
similarity index 94%
rename from src/smf/smfd/imm_om_ccapi/om_admin_owner_handle.h
rename to src/osaf/immtools/imm_om_ccapi/om_admin_owner_handle.h
index 299e2d288..6588cb04b 100644
--- a/src/smf/smfd/imm_om_ccapi/om_admin_owner_handle.h
+++ b/src/osaf/immtools/imm_om_ccapi/om_admin_owner_handle.h
@@ -15,8 +15,8 @@
  *
  */
 
-#ifndef SMF_SMFD_IMM_OM_CCAPI_OM_ADMIN_OWNER_HANDLE_H_
-#define SMF_SMFD_IMM_OM_CCAPI_OM_ADMIN_OWNER_HANDLE_H_
+#ifndef OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_ADMIN_OWNER_HANDLE_H_
+#define OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_ADMIN_OWNER_HANDLE_H_
 
 #include <string>
 #include "ais/include/saImmOm.h"
@@ -99,4 +99,4 @@ class ImmOmAdminOwnerHandle : public ImmBase {
 
 }  // namespace immom
 
-#endif  // SMF_SMFD_IMM_OM_CCAPI_OM_ADMIN_OWNER_HANDLE_H_
+#endif  // OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_ADMIN_OWNER_HANDLE_H_
diff --git a/src/smf/smfd/imm_om_ccapi/om_admin_owner_set.cc 
b/src/osaf/immtools/imm_om_ccapi/om_admin_owner_set.cc
similarity index 100%
rename from src/smf/smfd/imm_om_ccapi/om_admin_owner_set.cc
rename to src/osaf/immtools/imm_om_ccapi/om_admin_owner_set.cc
diff --git a/src/smf/smfd/imm_om_ccapi/om_admin_owner_set.h 
b/src/osaf/immtools/imm_om_ccapi/om_admin_owner_set.h
similarity index 94%
rename from src/smf/smfd/imm_om_ccapi/om_admin_owner_set.h
rename to src/osaf/immtools/imm_om_ccapi/om_admin_owner_set.h
index a351832b6..05ceca313 100644
--- a/src/smf/smfd/imm_om_ccapi/om_admin_owner_set.h
+++ b/src/osaf/immtools/imm_om_ccapi/om_admin_owner_set.h
@@ -15,8 +15,8 @@
  *
  */
 
-#ifndef SMF_SMFD_IMM_OM_CCAPI_OM_ADMIN_OWNER_SET_H_
-#define SMF_SMFD_IMM_OM_CCAPI_OM_ADMIN_OWNER_SET_H_
+#ifndef OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_ADMIN_OWNER_SET_H_
+#define OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_ADMIN_OWNER_SET_H_
 
 #include <vector>
 #include <string>
@@ -94,4 +94,4 @@ class ImmOmAdminOwnerSet : public ImmBase {
 
 }  // namespace immom
 
-#endif  // SMF_SMFD_IMM_OM_CCAPI_OM_ADMIN_OWNER_SET_H_
+#endif  // OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_ADMIN_OWNER_SET_H_
diff --git a/src/smf/smfd/imm_om_ccapi/om_ccb_handle.cc 
b/src/osaf/immtools/imm_om_ccapi/om_ccb_handle.cc
similarity index 100%
rename from src/smf/smfd/imm_om_ccapi/om_ccb_handle.cc
rename to src/osaf/immtools/imm_om_ccapi/om_ccb_handle.cc
diff --git a/src/smf/smfd/imm_om_ccapi/om_ccb_handle.h 
b/src/osaf/immtools/imm_om_ccapi/om_ccb_handle.h
similarity index 94%
rename from src/smf/smfd/imm_om_ccapi/om_ccb_handle.h
rename to src/osaf/immtools/imm_om_ccapi/om_ccb_handle.h
index a16e264e3..ad00ccd47 100644
--- a/src/smf/smfd/imm_om_ccapi/om_ccb_handle.h
+++ b/src/osaf/immtools/imm_om_ccapi/om_ccb_handle.h
@@ -15,8 +15,8 @@
  *
  */
 
-#ifndef SMF_SMFD_IMM_OM_CCAPI_OM_CCB_HANDLE_H_
-#define SMF_SMFD_IMM_OM_CCAPI_OM_CCB_HANDLE_H_
+#ifndef OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_CCB_HANDLE_H_
+#define OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_CCB_HANDLE_H_
 
 #include "ais/include/saImmOm.h"
 #include "common/common.h"
@@ -86,4 +86,4 @@ class ImmOmCcbHandle : public ImmBase {
 
 }  // namespace immom
 
-#endif  // SMF_SMFD_IMM_OM_CCAPI_OM_CCB_HANDLE_H_
+#endif  // OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_CCB_HANDLE_H_
diff --git a/src/smf/smfd/imm_om_ccapi/om_ccb_object_create.cc 
b/src/osaf/immtools/imm_om_ccapi/om_ccb_object_create.cc
similarity index 100%
rename from src/smf/smfd/imm_om_ccapi/om_ccb_object_create.cc
rename to src/osaf/immtools/imm_om_ccapi/om_ccb_object_create.cc
diff --git a/src/smf/smfd/imm_om_ccapi/om_ccb_object_create.h 
b/src/osaf/immtools/imm_om_ccapi/om_ccb_object_create.h
similarity index 97%
rename from src/smf/smfd/imm_om_ccapi/om_ccb_object_create.h
rename to src/osaf/immtools/imm_om_ccapi/om_ccb_object_create.h
index b5f856bf4..5f7722d66 100644
--- a/src/smf/smfd/imm_om_ccapi/om_ccb_object_create.h
+++ b/src/osaf/immtools/imm_om_ccapi/om_ccb_object_create.h
@@ -15,8 +15,8 @@
  *
  */
 
-#ifndef SMF_SMFD_IMM_OM_CCAPI_OM_CCB_OBJECT_CREATE_H_
-#define SMF_SMFD_IMM_OM_CCAPI_OM_CCB_OBJECT_CREATE_H_
+#ifndef OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_CCB_OBJECT_CREATE_H_
+#define OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_CCB_OBJECT_CREATE_H_
 
 #include <string.h>
 #include <string>
@@ -168,4 +168,4 @@ ImmOmCcbObjectCreate::SetAttributeValue(
 
 }  // namespace immom
 
-#endif  // SMF_SMFD_IMM_OM_CCAPI_OM_CCB_OBJECT_CREATE_H_
+#endif  // OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_CCB_OBJECT_CREATE_H_
diff --git a/src/smf/smfd/imm_om_ccapi/om_ccb_object_delete.cc 
b/src/osaf/immtools/imm_om_ccapi/om_ccb_object_delete.cc
similarity index 100%
rename from src/smf/smfd/imm_om_ccapi/om_ccb_object_delete.cc
rename to src/osaf/immtools/imm_om_ccapi/om_ccb_object_delete.cc
diff --git a/src/smf/smfd/imm_om_ccapi/om_ccb_object_delete.h 
b/src/osaf/immtools/imm_om_ccapi/om_ccb_object_delete.h
similarity index 92%
rename from src/smf/smfd/imm_om_ccapi/om_ccb_object_delete.h
rename to src/osaf/immtools/imm_om_ccapi/om_ccb_object_delete.h
index 32cd676e9..2e7347abe 100644
--- a/src/smf/smfd/imm_om_ccapi/om_ccb_object_delete.h
+++ b/src/osaf/immtools/imm_om_ccapi/om_ccb_object_delete.h
@@ -15,8 +15,8 @@
  *
  */
 
-#ifndef SMF_SMFD_IMM_OM_CCAPI_OM_CCB_OBJECT_DELETE_H_
-#define SMF_SMFD_IMM_OM_CCAPI_OM_CCB_OBJECT_DELETE_H_
+#ifndef OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_CCB_OBJECT_DELETE_H_
+#define OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_CCB_OBJECT_DELETE_H_
 
 
 #include <string>
@@ -76,4 +76,4 @@ class ImmOmCcbObjectDelete : public ImmBase {
 
 }  // namespace immom
 
-#endif  // SMF_SMFD_IMM_OM_CCAPI_OM_CCB_OBJECT_DELETE_H_
+#endif  // OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_CCB_OBJECT_DELETE_H_
diff --git a/src/smf/smfd/imm_om_ccapi/om_ccb_object_modify.cc 
b/src/osaf/immtools/imm_om_ccapi/om_ccb_object_modify.cc
similarity index 100%
rename from src/smf/smfd/imm_om_ccapi/om_ccb_object_modify.cc
rename to src/osaf/immtools/imm_om_ccapi/om_ccb_object_modify.cc
diff --git a/src/smf/smfd/imm_om_ccapi/om_ccb_object_modify.h 
b/src/osaf/immtools/imm_om_ccapi/om_ccb_object_modify.h
similarity index 97%
rename from src/smf/smfd/imm_om_ccapi/om_ccb_object_modify.h
rename to src/osaf/immtools/imm_om_ccapi/om_ccb_object_modify.h
index e059d3481..23f9af9e1 100644
--- a/src/smf/smfd/imm_om_ccapi/om_ccb_object_modify.h
+++ b/src/osaf/immtools/imm_om_ccapi/om_ccb_object_modify.h
@@ -15,8 +15,8 @@
  *
  */
 
-#ifndef SMF_SMFD_IMM_OM_CCAPI_OM_CCB_OBJECT_MODIFY_H_
-#define SMF_SMFD_IMM_OM_CCAPI_OM_CCB_OBJECT_MODIFY_H_
+#ifndef OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_CCB_OBJECT_MODIFY_H_
+#define OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_CCB_OBJECT_MODIFY_H_
 
 
 #include <string>
@@ -189,4 +189,4 @@ ImmOmCcbObjectModify& 
ImmOmCcbObjectModify::DeleteAttributeValue(
 
 }  // namespace immom
 
-#endif  // SMF_SMFD_IMM_OM_CCAPI_OM_CCB_OBJECT_MODIFY_H_
+#endif  // OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_CCB_OBJECT_MODIFY_H_
diff --git a/src/smf/smfd/imm_om_ccapi/om_handle.cc 
b/src/osaf/immtools/imm_om_ccapi/om_handle.cc
similarity index 100%
rename from src/smf/smfd/imm_om_ccapi/om_handle.cc
rename to src/osaf/immtools/imm_om_ccapi/om_handle.cc
diff --git a/src/smf/smfd/imm_om_ccapi/om_handle.h 
b/src/osaf/immtools/imm_om_ccapi/om_handle.h
similarity index 95%
rename from src/smf/smfd/imm_om_ccapi/om_handle.h
rename to src/osaf/immtools/imm_om_ccapi/om_handle.h
index 94028deb0..1929688a9 100644
--- a/src/smf/smfd/imm_om_ccapi/om_handle.h
+++ b/src/osaf/immtools/imm_om_ccapi/om_handle.h
@@ -15,8 +15,8 @@
  *
  */
 
-#ifndef SMF_SMFD_IMM_OM_CCAPI_OM_HANDLE_H_
-#define SMF_SMFD_IMM_OM_CCAPI_OM_HANDLE_H_
+#ifndef OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_HANDLE_H_
+#define OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_HANDLE_H_
 
 #include "ais/include/saImmOm.h"
 #include "common/common.h"
@@ -101,4 +101,4 @@ class ImmOmHandle : public ImmBase {
 
 }  // namespace immom
 
-#endif  // SMF_SMFD_IMM_OM_CCAPI_OM_HANDLE_H_
+#endif  // OSAF_IMMTOOLS_IMM_OM_CCAPI_OM_HANDLE_H_
diff --git a/src/smf/Makefile.am b/src/smf/Makefile.am
index 5eed2e683..03c9c3f7b 100644
--- a/src/smf/Makefile.am
+++ b/src/smf/Makefile.am
@@ -18,9 +18,7 @@
 EXTRA_DIST += \
        src/smf/README \
        src/smf/README.doxygen \
-       src/smf/README.schema \
-       src/smf/smfd/imm_modify_config/README \
-       src/smf/smfd/imm_modify_demo/README
+       src/smf/README.schema
 
 if ENABLE_AIS_SMF
 
@@ -115,25 +113,6 @@ noinst_HEADERS += \
        src/smf/smfnd/smfnd.h \
        src/smf/smfnd/smfnd_evt.h
 
-# IMM configuration modifier
-noinst_HEADERS += \
-       src/smf/smfd/imm_modify_config/attribute.h \
-       src/smf/smfd/imm_modify_config/add_operation_to_ccb.h \
-       src/smf/smfd/imm_modify_config/immccb.h
-
-# IMM OM C++ APIs
-noinst_HEADERS += \
-       src/smf/smfd/imm_om_ccapi/common/common.h \
-       src/smf/smfd/imm_om_ccapi/common/imm_attribute.h \
-       src/smf/smfd/imm_om_ccapi/om_admin_owner_clear.h \
-       src/smf/smfd/imm_om_ccapi/om_admin_owner_handle.h \
-       src/smf/smfd/imm_om_ccapi/om_admin_owner_set.h \
-       src/smf/smfd/imm_om_ccapi/om_ccb_handle.h \
-       src/smf/smfd/imm_om_ccapi/om_ccb_object_create.h \
-       src/smf/smfd/imm_om_ccapi/om_ccb_object_delete.h \
-       src/smf/smfd/imm_om_ccapi/om_ccb_object_modify.h \
-       src/smf/smfd/imm_om_ccapi/om_handle.h
-
 osaf_execbin_PROGRAMS += bin/osafsmfd bin/osafsmfnd
 
 nodist_pkgclccli_SCRIPTS += \
@@ -207,25 +186,6 @@ bin_osafsmfd_SOURCES = \
        src/smf/smfd/smfd_mds.c \
        src/smf/smfd/smfd_smfnd.c
 
-# IMM configuration modifier
-bin_osafsmfd_SOURCES += \
-       src/smf/smfd/imm_modify_config/attribute.cc \
-       src/smf/smfd/imm_modify_config/add_operation_to_ccb.cc \
-       src/smf/smfd/imm_modify_config/immccb.cc
-
-# IMM OM C++ APIs
-bin_osafsmfd_SOURCES += \
-       src/smf/smfd/imm_om_ccapi/common/common.cc \
-       src/smf/smfd/imm_om_ccapi/common/imm_attribute.cc \
-       src/smf/smfd/imm_om_ccapi/om_admin_owner_clear.cc \
-       src/smf/smfd/imm_om_ccapi/om_admin_owner_handle.cc \
-       src/smf/smfd/imm_om_ccapi/om_admin_owner_set.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_handle.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_object_create.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_object_delete.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_object_modify.cc \
-       src/smf/smfd/imm_om_ccapi/om_handle.cc
-
 bin_osafsmfd_LDFLAGS = \
        $(AM_LDFLAGS) \
        @XML2_LIBS@
@@ -259,182 +219,3 @@ bin_osafsmfnd_LDADD = \
        lib/libopensaf_core.la
 
 endif
-
-# Demos and test
-if ENABLE_TESTS
-
-bin_PROGRAMS += \
-       bin/ccbdemo_create \
-       bin/ccbdemo_delete \
-       bin/ccbdemo_modify \
-       bin/test_ccbhdl \
-       bin/test_objexist
-
-dist_pkgimmxml_svc_DATA += \
-       src/smf/smfd/imm_modify_demo/democlass.xml
-
-noinst_HEADERS += \
-       src/smf/smfd/imm_modify_demo/common.h
-
-# DEMO Create
-# -----------
-bin_ccbdemo_create_CFLAGS = $(AM_CFLAGS) -Wformat=1
-
-bin_ccbdemo_create_CPPFLAGS = \
-       -DSA_EXTENDED_NAME_SOURCE \
-       $(AM_CPPFLAGS)
-
-bin_ccbdemo_create_SOURCES = \
-       src/smf/smfd/imm_modify_demo/common.cc \
-       src/smf/smfd/imm_modify_demo/ccbdemo_create.cc
-
-# IMM configuration modifier
-bin_ccbdemo_create_SOURCES += \
-       src/smf/smfd/imm_modify_config/attribute.cc \
-       src/smf/smfd/imm_modify_config/add_operation_to_ccb.cc \
-       src/smf/smfd/imm_modify_config/immccb.cc
-
-# IMM OM C++ APIs
-bin_ccbdemo_create_SOURCES += \
-       src/smf/smfd/imm_om_ccapi/common/common.cc \
-       src/smf/smfd/imm_om_ccapi/common/imm_attribute.cc \
-       src/smf/smfd/imm_om_ccapi/om_admin_owner_clear.cc \
-       src/smf/smfd/imm_om_ccapi/om_admin_owner_handle.cc \
-       src/smf/smfd/imm_om_ccapi/om_admin_owner_set.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_handle.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_object_create.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_object_delete.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_object_modify.cc \
-       src/smf/smfd/imm_om_ccapi/om_handle.cc
-
-bin_ccbdemo_create_LDADD = \
-       lib/libosaf_common.la \
-       lib/libSaImmOm.la \
-       lib/libopensaf_core.la
-
-# DEMO Delete
-# -----------
-bin_ccbdemo_delete_CFLAGS = $(AM_CFLAGS) -Wformat=1
-
-bin_ccbdemo_delete_CPPFLAGS = \
-       -DSA_EXTENDED_NAME_SOURCE \
-       $(AM_CPPFLAGS)
-
-bin_ccbdemo_delete_SOURCES = \
-       src/smf/smfd/imm_modify_demo/common.cc \
-       src/smf/smfd/imm_modify_demo/ccbdemo_delete.cc
-
-# IMM configuration modifier
-bin_ccbdemo_delete_SOURCES += \
-       src/smf/smfd/imm_modify_config/attribute.cc \
-       src/smf/smfd/imm_modify_config/add_operation_to_ccb.cc \
-       src/smf/smfd/imm_modify_config/immccb.cc
-
-# IMM OM C++ APIs
-bin_ccbdemo_delete_SOURCES += \
-       src/smf/smfd/imm_om_ccapi/common/common.cc \
-       src/smf/smfd/imm_om_ccapi/common/imm_attribute.cc \
-       src/smf/smfd/imm_om_ccapi/om_admin_owner_clear.cc \
-       src/smf/smfd/imm_om_ccapi/om_admin_owner_handle.cc \
-       src/smf/smfd/imm_om_ccapi/om_admin_owner_set.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_handle.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_object_create.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_object_delete.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_object_modify.cc \
-       src/smf/smfd/imm_om_ccapi/om_handle.cc
-
-bin_ccbdemo_delete_LDADD = \
-       lib/libosaf_common.la \
-       lib/libSaImmOm.la \
-       lib/libopensaf_core.la
-
-# DEMO Modify
-# -----------
-bin_ccbdemo_modify_CFLAGS = $(AM_CFLAGS) -Wformat=1
-
-bin_ccbdemo_modify_CPPFLAGS = \
-       -DSA_EXTENDED_NAME_SOURCE \
-       $(AM_CPPFLAGS)
-
-bin_ccbdemo_modify_SOURCES = \
-       src/smf/smfd/imm_modify_demo/common.cc \
-       src/smf/smfd/imm_modify_demo/ccbdemo_modify.cc
-
-# IMM configuration modifier
-bin_ccbdemo_modify_SOURCES += \
-       src/smf/smfd/imm_modify_config/attribute.cc \
-       src/smf/smfd/imm_modify_config/add_operation_to_ccb.cc \
-       src/smf/smfd/imm_modify_config/immccb.cc
-
-# IMM OM C++ APIs
-bin_ccbdemo_modify_SOURCES += \
-       src/smf/smfd/imm_om_ccapi/common/common.cc \
-       src/smf/smfd/imm_om_ccapi/common/imm_attribute.cc \
-       src/smf/smfd/imm_om_ccapi/om_admin_owner_clear.cc \
-       src/smf/smfd/imm_om_ccapi/om_admin_owner_handle.cc \
-       src/smf/smfd/imm_om_ccapi/om_admin_owner_set.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_handle.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_object_create.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_object_delete.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_object_modify.cc \
-       src/smf/smfd/imm_om_ccapi/om_handle.cc
-
-bin_ccbdemo_modify_LDADD = \
-       lib/libosaf_common.la \
-       lib/libSaImmOm.la \
-       lib/libopensaf_core.la
-
-# Test CCBHDL
-# -----------
-bin_test_ccbhdl_CFLAGS = $(AM_CFLAGS) -Wformat=1
-
-bin_test_ccbhdl_CPPFLAGS = \
-       -DSA_EXTENDED_NAME_SOURCE \
-       $(AM_CPPFLAGS)
-
-bin_test_ccbhdl_SOURCES = \
-       src/smf/smfd/imm_modify_demo/common.cc \
-       src/smf/smfd/imm_modify_demo/test_ccbhdl.cc
-
-# IMM configuration modifier
-bin_test_ccbhdl_SOURCES += \
-       src/smf/smfd/imm_modify_config/attribute.cc \
-       src/smf/smfd/imm_modify_config/add_operation_to_ccb.cc \
-       src/smf/smfd/imm_modify_config/immccb.cc
-
-# IMM OM C++ APIs
-bin_test_ccbhdl_SOURCES += \
-       src/smf/smfd/imm_om_ccapi/common/common.cc \
-       src/smf/smfd/imm_om_ccapi/common/imm_attribute.cc \
-       src/smf/smfd/imm_om_ccapi/om_admin_owner_clear.cc \
-       src/smf/smfd/imm_om_ccapi/om_admin_owner_handle.cc \
-       src/smf/smfd/imm_om_ccapi/om_admin_owner_set.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_handle.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_object_create.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_object_delete.cc \
-       src/smf/smfd/imm_om_ccapi/om_ccb_object_modify.cc \
-       src/smf/smfd/imm_om_ccapi/om_handle.cc
-
-bin_test_ccbhdl_LDADD = \
-       lib/libosaf_common.la \
-       lib/libSaImmOm.la \
-       lib/libopensaf_core.la
-
-# Test OBJEXIST
-# -------------
-bin_test_objexist_CFLAGS = $(AM_CFLAGS) -Wformat=1
-
-bin_test_objexist_CPPFLAGS = \
-       -DSA_EXTENDED_NAME_SOURCE \
-       $(AM_CPPFLAGS)
-
-bin_test_objexist_SOURCES = \
-       src/smf/smfd/SmfUtils_ObjExist.cc \
-       src/smf/smfd/imm_modify_demo/test_objexist.cc
-
-bin_test_objexist_LDADD = \
-       lib/libosaf_common.la \
-       lib/libSaImmOm.la \
-       lib/libopensaf_core.la
-
-endif
diff --git a/src/smf/smfd/SmfAdminState.cc b/src/smf/smfd/SmfAdminState.cc
index bc2bb1b85..90ae093c4 100755
--- a/src/smf/smfd/SmfAdminState.cc
+++ b/src/smf/smfd/SmfAdminState.cc
@@ -28,12 +28,12 @@
 #include "base/osaf_extended_name.h"
 #include "base/saf_error.h"
 #include "base/time.h"
+#include "osaf/immtools/imm_modify_config/immccb.h"
 
 #include "osaf/immutil/immutil.h"
 #include "smf/smfd/smfd.h"
 #include "smf/smfd/SmfUtils.h"
 
-#include "smf/smfd/imm_modify_config/immccb.h"
 #include "smf/smfd/SmfUpgradeStep.h"
 
 
//==============================================================================
diff --git a/src/smf/smfd/SmfExecControlHdl.cc 
b/src/smf/smfd/SmfExecControlHdl.cc
index 715dd071f..d48341fc8 100644
--- a/src/smf/smfd/SmfExecControlHdl.cc
+++ b/src/smf/smfd/SmfExecControlHdl.cc
@@ -21,12 +21,12 @@
 #include <vector>
 
 #include "base/osaf_extended_name.h"
+#include "osaf/immtools/imm_modify_config/immccb.h"
 #include <saAis.h>
 #include "base/saf_error.h"
 #include "osaf/immutil/immutil.h"
 #include "smf/smfd/SmfUtils.h"
 #include "smf/smfd/SmfCampaign.h"
-#include "smf/smfd/imm_modify_config/immccb.h"
 
 // Note: Info about public methods can be found in .h file
 
diff --git a/src/smf/smfd/SmfImmOperation.h b/src/smf/smfd/SmfImmOperation.h
index 04b445566..ae537b820 100644
--- a/src/smf/smfd/SmfImmOperation.h
+++ b/src/smf/smfd/SmfImmOperation.h
@@ -24,15 +24,16 @@
 #include "ais/include/saImmOm.h"
 #include "ais/include/saImmOi.h"
 
+#include "osaf/immtools/imm_modify_config/immccb.h"
+
 #include "smf/smfd/SmfRollback.h"
-#include "smf/smfd/imm_modify_config/immccb.h"
 
 // =========================================
 // Holds information about one IMM attribute
 class SmfImmAttribute {
  public:
-  SmfImmAttribute() {};
-  ~SmfImmAttribute() {};
+  SmfImmAttribute() {}
+  ~SmfImmAttribute() {}
 
   void SetAttributeName(const std::string& i_name) {
     m_name = i_name;
@@ -66,12 +67,12 @@ class SmfImmAttribute {
   // Note: Should be refactored. Use GetAttributeDescriptor instead.
   // Must be kept until further refactoring is done
   friend class SmfImmOperation;
-  friend class SmfImmCreateOperation; // Using m_values, m_name, m_type
-  friend class SmfImmModifyOperation; // Using m_values, m_name, m_type
+  friend class SmfImmCreateOperation;  // Using m_values, m_name, m_type
+  friend class SmfImmModifyOperation;  // Using m_values, m_name, m_type
   friend class SmfImmDeleteOperation;
 #endif
-  friend class SmfImmRTCreateOperation; // Using m_values, m_name, m_type
-  friend class SmfImmRTUpdateOperation; // Using m_values, m_name, m_type
+  friend class SmfImmRTCreateOperation;  // Using m_values, m_name, m_type
+  friend class SmfImmRTUpdateOperation;  // Using m_values, m_name, m_type
 
  private:
   // Note: Used directly by (friend) SmfImmRT operations
@@ -150,7 +151,6 @@ class SmfImmOperation {
   modelmodify::CreateDescriptor object_create_;
   modelmodify::DeleteDescriptor object_delete_;
   modelmodify::ModifyDescriptor object_modify_;
-
 };
 
 // Create an IMM object.
@@ -163,9 +163,9 @@ class SmfImmCreateOperation : public SmfImmOperation {
       class_name_(""),
       parent_dn_(""),
       attributes_(0) { imm_operation_ = Create; }
-      //m_immAttrValues(0) { imm_operation_ = Create; }
+      // m_immAttrValues(0) { imm_operation_ = Create; }
 
-  ~SmfImmCreateOperation() {};
+  ~SmfImmCreateOperation() {}
 
   // Verifies parameters in a create descriptor and adds the attributes to
   // the create descriptor
@@ -302,7 +302,7 @@ class SmfImmModifyOperation : public SmfImmOperation {
     object_name_(""),
     modification_type_(""),
     attributes_(0),
-    //m_immAttrMods(0)
+    // m_immAttrMods(0)
     m_rdn("")  { imm_operation_ = Modify; }
 
   ~SmfImmModifyOperation() {}
@@ -341,8 +341,9 @@ class SmfImmModifyOperation : public SmfImmOperation {
     attributes_.push_back(i_value);
   }
 
-  void AddOrUpdateAttribute(const std::string& i_name, const std::string& 
i_type,
-                    const std::string& i_value);
+  void AddOrUpdateAttribute(const std::string& i_name,
+                            const std::string& i_type,
+                            const std::string& i_value);
 
  private:
   ///
@@ -489,7 +490,9 @@ class SmfImmRTUpdateOperation {
   ///
   /// Purpose: Set the type of modification operation.
   /// @param   i_op The name of the operation
-  /// 
(SA_IMM_ATTR_VALUES_ADD/SA_IMM_ATTR_VALUES_DELETE/SA_IMM_ATTR_VALUES_REPLACE).
+  /// (SA_IMM_ATTR_VALUES_ADD/
+  ///  SA_IMM_ATTR_VALUES_DELETE/
+  ///  SA_IMM_ATTR_VALUES_REPLACE).
   /// @return  None.
   ///
   void SetOp(const std::string& i_op);
diff --git a/src/smf/smfd/SmfUpgradeStep.cc b/src/smf/smfd/SmfUpgradeStep.cc
index a029a63e1..e012ef913 100644
--- a/src/smf/smfd/SmfUpgradeStep.cc
+++ b/src/smf/smfd/SmfUpgradeStep.cc
@@ -37,8 +37,7 @@
 #include "base/osaf_time.h"
 #include "base/osaf_extended_name.h"
 #include "base/saf_error.h"
-
-#include "smf/smfd/imm_modify_config/immccb.h"
+#include "osaf/immtools/imm_modify_config/immccb.h"
 
 #include "smf/smfd/SmfAdminState.h"
 #include "smf/smfd/SmfUpgradeStep.h"
@@ -58,7 +57,6 @@
 #include "osaf/configmake.h"
 #include "smf/smfd/smfd_smfnd.h"
 #include "smfd.h"
-#include "base/osaf_time.h"
 #include "base/time.h"
 
 /* ========================================================================
@@ -129,7 +127,7 @@ SaAisErrorT SmfUpgradeStep::init(const SaImmAttrValuesT_2 
**attrValues) {
     value = (*attribute)->attrValues[0];
 
     if (strcmp((*attribute)->attrName, "safSmfStep") == 0) {
-      char *rdn = *((char **)value);
+      char *rdn = *(reinterpret_cast<char **>(value));
       m_rdn = rdn;
       TRACE("init safSmfStep = %s", rdn);
     } else if (strcmp((*attribute)->attrName, "saSmfStepMaxRetry") == 0) {
@@ -1463,7 +1461,6 @@ SaAisErrorT SmfUpgradeStep::calculateStepType() {
 
         if (smfd_cb->smfClusterControllers[0] !=
             NULL) {  // Controller is configured
-
           // Count the number of controllers configured
           int noOfConfControllers = 0;
           for (int ix = 0; ix <= 1; ix++) {
diff --git a/src/smf/smfd/SmfUtils.cc b/src/smf/smfd/SmfUtils.cc
index 45da44256..75c933078 100644
--- a/src/smf/smfd/SmfUtils.cc
+++ b/src/smf/smfd/SmfUtils.cc
@@ -37,10 +37,10 @@
 #include "base/osaf_extended_name.h"
 #include "base/osaf_time.h"
 #include "base/time.h"
+#include "osaf/immtools/imm_modify_config/immccb.h"
 
 #include "osaf/immutil/immutil.h"
 
-#include "smf/smfd/imm_modify_config/immccb.h"
 #include "smf/smfd/smfd_long_dn.h"
 #include "smf/smfd/smfd_smfnd.h"
 #include "smf/smfd/SmfImmOperation.h"
diff --git a/src/smf/smfd/SmfUtils_ObjExist.cc 
b/src/smf/smfd/SmfUtils_ObjExist.cc
index dc9be0323..f89317a08 100644
--- a/src/smf/smfd/SmfUtils_ObjExist.cc
+++ b/src/smf/smfd/SmfUtils_ObjExist.cc
@@ -25,8 +25,7 @@
 #include "base/saf_error.h"
 #include "base/osaf_extended_name.h"
 #include "base/time.h"
-
-#include "smf/smfd/imm_modify_config/immccb.h"
+#include "osaf/immtools/imm_modify_config/immccb.h"
 
   // Check if the object exist. If fail use recovery possibilities
   // The Object DN is created from class and parent name
diff --git a/src/smf/smfd/SmfUtils_ObjExist.h b/src/smf/smfd/SmfUtils_ObjExist.h
index cbcd5f5d5..0e4d9f1c4 100644
--- a/src/smf/smfd/SmfUtils_ObjExist.h
+++ b/src/smf/smfd/SmfUtils_ObjExist.h
@@ -23,7 +23,7 @@
 #include "ais/include/saAis.h"
 #include "ais/include/saImmOm.h"
 
-#include "smf/smfd/imm_modify_config/immccb.h"
+#include "osaf/immtools/imm_modify_config/immccb.h"
 
 // Check if an IMM object exists.
 // Return: kOk if object exist, kNotExist if not exist and kFail if failing to
diff --git a/src/smf/smfd/imm_modify_demo/test_objexist.cc 
b/src/smf/smfd/imm_modify_demo/test_objexist.cc
deleted file mode 100644
index 3fb23e3c2..000000000
--- a/src/smf/smfd/imm_modify_demo/test_objexist.cc
+++ /dev/null
@@ -1,127 +0,0 @@
-/*      -*- OpenSAF  -*-
- *
- * Copyright Ericsson AB 2018 - All Rights Reserved.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
- * or FITNESS FOR A PARTICULAR PURPOSE. This file and program are licensed
- * under the GNU Lesser General Public License Version 2.1, February 1999.
- * The complete license can be accessed from the following location:
- * http://opensource.org/licenses/lgpl-license.php
- * See the Copying file included with the OpenSAF distribution for full
- * licensing terms.
- *
- * Author(s): Ericsson AB
- *
- */
-
-#include <limits.h>
-
-#include <string>
-#include <vector>
-#include <memory>
-#include <utility>
-#include <iostream>
-
-#include "ais/include/saImm.h"
-#include "ais/include/saAis.h"
-#include "base/osaf_extended_name.h"
-
-#include "smf/smfd/SmfUtils_ObjExist.h"
-
-#include "smf/smfd/imm_modify_config/immccb.h"
-
-using namespace std;
-
-int main() {
-  CheckObjectExist e_check;
-  CheckObjectExist::ReturnCode exist_rc;
-
-  printf("Testing");
-
-  cout << "Find an object test:" << endl;
-  modelmodify::CreateDescriptor existing_object;
-  modelmodify::AttributeDescriptor log_config;
-  log_config.attribute_name = "logConfig";
-  log_config.value_type = SA_IMM_ATTR_SASTRINGT;
-  log_config.AddValue("logConfig=1");
-  existing_object.class_name = "OpenSafLogConfig";
-  existing_object.parent_name = "safApp=safLogService";
-  existing_object.AddAttribute(log_config);
-
-  std::string object_dn = "logConfig=1,safApp=safLogService";
-  cout << "Object to check '" << object_dn << "'" << endl;
-  exist_rc = e_check.IsExisting(existing_object);
-  if (exist_rc == e_check.kFail) {
-    cout << "Check failed" << endl;
-  } else if (exist_rc == e_check.kOk) {
-    cout << "Object exist" << endl;
-  } else if (exist_rc == e_check.kNotExist) {
-    cout << "Object does not exist" << endl;
-  } else {
-    cout << "Fail, unknown return code" << endl;
-  }
-  cout << endl;
-
-
-  object_dn = "Kalle";
-  cout << "Object to check '" << object_dn << "'" << endl;
-  log_config.values_as_strings.clear();
-  log_config.AddValue("Kalle");
-  existing_object.attributes.clear();
-  existing_object.AddAttribute(log_config);
-  exist_rc = e_check.IsExisting(existing_object);
-  if (exist_rc == e_check.kFail) {
-    cout << "Check failed" << endl;
-  } else if (exist_rc == e_check.kOk) {
-    cout << "Object exist" << endl;
-  } else if (exist_rc == e_check.kNotExist) {
-    cout << "Object does not exist" << endl;
-  } else {
-    cout << "Fail, unknown return code" << endl;
-  }
-  cout << endl;
-
-
-  object_dn = "logConfig=1";
-  cout << "Object to check '" << object_dn << "'" << endl;
-  log_config.values_as_strings.clear();
-  log_config.AddValue("logConfig=1");
-  existing_object.attributes.clear();
-  existing_object.parent_name.clear();
-  existing_object.AddAttribute(log_config);
-  exist_rc = e_check.IsExisting(existing_object);
-  if (exist_rc == e_check.kFail) {
-    cout << "Check failed" << endl;
-  } else if (exist_rc == e_check.kOk) {
-    cout << "Object exist" << endl;
-  } else if (exist_rc == e_check.kNotExist) {
-    cout << "Object does not exist" << endl;
-  } else {
-    cout << "Fail, unknown return code" << endl;
-  }
-  cout << endl;
-
-
-  object_dn = "";
-  cout << "Object to check '" << object_dn << "'" << endl;
-  log_config.values_as_strings.clear();
-  //log_config.AddValue("logConfig=1");
-  existing_object.attributes.clear();
-  existing_object.parent_name.clear();
-  existing_object.AddAttribute(log_config);
-  exist_rc = e_check.IsExisting(existing_object);
-  if (exist_rc == e_check.kFail) {
-    cout << "Check failed" << endl;
-  } else if (exist_rc == e_check.kOk) {
-    cout << "Object exist" << endl;
-  } else if (exist_rc == e_check.kNotExist) {
-    cout << "Object does not exist" << endl;
-  } else {
-    cout << "Fail, unknown return code" << endl;
-  }
-  cout << endl;
-
-
-  return 0;
-}
-- 
2.25.1



_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to