diff --git a/platform/core/src/capabilities/PersistenceCapability.js b/platform/core/src/capabilities/PersistenceCapability.js index 76c9c636f7..f67b8145e6 100644 --- a/platform/core/src/capabilities/PersistenceCapability.js +++ b/platform/core/src/capabilities/PersistenceCapability.js @@ -153,10 +153,11 @@ define(["objectUtils"], return this.$q.when(true); } - return this.persistenceService.readObject( - this.getSpace(), - this.getKey() - ).then(updateModel); + return this.openmct.objects.get(domainObject.getId()).then((newStyleObject) => { + let oldStyleObject = this.openmct.legacyObject(newStyleObject); + + return updateModel(oldStyleObject.getModel()); + }); }; /** diff --git a/platform/core/test/capabilities/PersistenceCapabilitySpec.js b/platform/core/test/capabilities/PersistenceCapabilitySpec.js index 84ab297f56..07733be3d2 100644 --- a/platform/core/test/capabilities/PersistenceCapabilitySpec.js +++ b/platform/core/test/capabilities/PersistenceCapabilitySpec.js @@ -37,6 +37,7 @@ define( key = "persistence key", id = "object identifier", model, + refreshModel, SPACE = "some space", persistence, mockOpenMCT, @@ -60,6 +61,7 @@ define( someKey: "some value", name: "domain object" }; + refreshModel = {someOtherKey: "some other value"}; mockPersistenceService = jasmine.createSpyObj( "persistenceService", @@ -110,8 +112,16 @@ define( } }); - mockOpenMCT = {}; - mockOpenMCT.objects = jasmine.createSpyObj('Object API', ['save']); + mockOpenMCT = { + legacyObject: function (object) { + return { + getModel: function () { + return object; + } + }; + } + }; + mockOpenMCT.objects = jasmine.createSpyObj('Object API', ['save', 'get']); mockIdentifierService.parse.and.returnValue(mockIdentifier); mockIdentifier.getSpace.and.returnValue(SPACE); @@ -131,6 +141,7 @@ define( describe("successful persistence", function () { beforeEach(function () { mockOpenMCT.objects.save.and.returnValue(Promise.resolve(true)); + mockOpenMCT.objects.get.and.returnValue(Promise.resolve(refreshModel)); }); it("creates unpersisted objects with the persistence service", function () { // Verify precondition; no call made during constructor @@ -146,11 +157,10 @@ define( }); it("refreshes the domain object model from persistence", function () { - var refreshModel = {someOtherKey: "some other value"}; model.persisted = 1; - mockPersistenceService.readObject.and.returnValue(asPromise(refreshModel)); - persistence.refresh(); - expect(model).toEqual(refreshModel); + persistence.refresh().then(() => { + expect(model).toEqual(refreshModel); + }); }); it("does not trigger error notification on successful" diff --git a/src/adapter/services/LegacyObjectAPIInterceptor.js b/src/adapter/services/LegacyObjectAPIInterceptor.js index 12209806b2..79b1315ffb 100644 --- a/src/adapter/services/LegacyObjectAPIInterceptor.js +++ b/src/adapter/services/LegacyObjectAPIInterceptor.js @@ -128,7 +128,14 @@ define([ }; ObjectServiceProvider.prototype.get = function (key) { - const keyString = utils.makeKeyString(key); + let keyString = utils.makeKeyString(key); + const space = this.getSpace(keyString); + + let identifier = utils.parseKeyString(keyString); + // We assign to the space for legacy persistence providers since they register themselves using a defaultSpace. + // This is the way to make everyone happy. + identifier.namespace = space; + keyString = utils.makeKeyString(identifier); return this.objectService.getObjects([keyString]) .then(function (results) { diff --git a/src/plugins/persistence/couch/plugin.js b/src/plugins/persistence/couch/plugin.js index 0851972e15..4b3d160739 100644 --- a/src/plugins/persistence/couch/plugin.js +++ b/src/plugins/persistence/couch/plugin.js @@ -22,7 +22,7 @@ import CouchObjectProvider from './CouchObjectProvider'; const NAMESPACE = ''; -const PERSISTENCE_SPACE = 'mct'; +const PERSISTENCE_SPACE = ''; export default function CouchPlugin(url) { return function install(openmct) { diff --git a/src/plugins/persistence/couch/pluginSpec.js b/src/plugins/persistence/couch/pluginSpec.js index 7cc60aab0a..e2fd2b6437 100644 --- a/src/plugins/persistence/couch/pluginSpec.js +++ b/src/plugins/persistence/couch/pluginSpec.js @@ -38,7 +38,7 @@ describe('the plugin', () => { beforeEach((done) => { mockDomainObject = { identifier: { - namespace: 'mct', + namespace: '', key: 'some-value' } };