Merge "[openweave] Fix incorrect usage of TSM singleton"
diff --git a/src/adaptations/device-layer/TraitManager.cpp b/src/adaptations/device-layer/TraitManager.cpp
index dfd1493..d82a8fe 100644
--- a/src/adaptations/device-layer/TraitManager.cpp
+++ b/src/adaptations/device-layer/TraitManager.cpp
@@ -99,7 +99,6 @@
 DeviceIdentityTraitDataSource DeviceIdTraitDataSource;
 #else
 LocaleSettingsTraitDataSink LocaleSettings;
-DeviceIdentityTraitDataSource DeviceIdTraitDataSource;
 #endif
 } // unnamed namespace
 
@@ -200,8 +199,6 @@
         TraitDataHandle handle;
         err = SubscribedServiceTraits.Add(nl::Weave::FabricState.LocalNodeId, 0, kRootPropertyPathHandle, &LocaleSettings, handle);
         SuccessOrExit(err);
-        err = PublishedTraits.Add(nl::Weave::FabricState.LocalNodeId, 0, kRootPropertyPathHandle, &DeviceIdTraitDataSource, handle);
-        SuccessOrExit(err);
     }
 #endif
 
diff --git a/src/adaptations/device-layer/include/Weave/DeviceLayer/TraitManager.h b/src/adaptations/device-layer/include/Weave/DeviceLayer/TraitManager.h
index 3e28fdf..8771fcf 100644
--- a/src/adaptations/device-layer/include/Weave/DeviceLayer/TraitManager.h
+++ b/src/adaptations/device-layer/include/Weave/DeviceLayer/TraitManager.h
@@ -45,7 +45,7 @@
 /**
  * Manages publication and subscription of Weave Data Management traits for a Weave device.
  */
-class TraitManager final
+class NL_DLL_EXPORT TraitManager final
 {
     typedef ::nl::Weave::Profiles::DataManagement_Current::SubscriptionClient SubscriptionClient;
     typedef ::nl::Weave::Profiles::DataManagement_Current::SubscriptionEngine SubscriptionEngine;
diff --git a/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceIdentityTraitDataSource.h b/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceIdentityTraitDataSource.h
index 85e2e6e..6f074ea 100644
--- a/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceIdentityTraitDataSource.h
+++ b/src/adaptations/device-layer/include/Weave/DeviceLayer/internal/DeviceIdentityTraitDataSource.h
@@ -39,7 +39,7 @@
  *    Implements a data source for the Weave DeviceIdentityTrait.
  *
  */
-class DeviceIdentityTraitDataSource final
+class NL_DLL_EXPORT DeviceIdentityTraitDataSource final
     : public ::nl::Weave::Profiles::DataManagement_Current::TraitDataSource
 {
 public:
diff --git a/src/lib/profiles/data-management/Current/NotificationEngine.h b/src/lib/profiles/data-management/Current/NotificationEngine.h
index 792b89a..1ed21c7 100644
--- a/src/lib/profiles/data-management/Current/NotificationEngine.h
+++ b/src/lib/profiles/data-management/Current/NotificationEngine.h
@@ -99,7 +99,7 @@
  *           gracefully by generating sub-optimal notify messages that have more data in them while still being protocol correct.
  *
  */
-class NotificationEngine
+class NL_DLL_EXPORT NotificationEngine
 {
 public:
     /**
diff --git a/src/lib/profiles/data-management/Current/ResourceIdentifier.h b/src/lib/profiles/data-management/Current/ResourceIdentifier.h
index e333a0b..b34ffb7 100644
--- a/src/lib/profiles/data-management/Current/ResourceIdentifier.h
+++ b/src/lib/profiles/data-management/Current/ResourceIdentifier.h
@@ -64,7 +64,7 @@
  * ID of the DEVICE, and constructors are provided for the most common
  * usecases.
  */
-class ResourceIdentifier
+class NL_DLL_EXPORT ResourceIdentifier
 {
 public:
     /**
diff --git a/src/lib/profiles/data-management/Current/TraitData.h b/src/lib/profiles/data-management/Current/TraitData.h
index 2b1b0dd..13396cc 100644
--- a/src/lib/profiles/data-management/Current/TraitData.h
+++ b/src/lib/profiles/data-management/Current/TraitData.h
@@ -851,7 +851,7 @@
 
 class Command;
 
-class TraitDataSource : private TraitSchemaEngine::IGetDataDelegate
+class NL_DLL_EXPORT TraitDataSource : private TraitSchemaEngine::IGetDataDelegate
 {
 public:
     TraitDataSource(const TraitSchemaEngine * aEngine);