{"action":"created","issue":{"url":"https://api.github.com/repos/Particular/NServiceBus/issues/2788","labels_url":"https://api.github.com/repos/Particular/NServiceBus/issues/2788/labels{/name}","comments_url":"https://api.github.com/repos/Particular/NServiceBus/issues/2788/comments","events_url":"https://api.github.com/repos/Particular/NServiceBus/issues/2788/events","html_url":"https://github.com/Particular/NServiceBus/pull/2788","id":97982761,"number":2788,"title":"Expose SagaMetadata as built by TypeBasedSagaMetaModel","user":{"login":"DavidBoike","id":427110,"avatar_url":"https://avatars.githubusercontent.com/u/427110?v=3","gravatar_id":"","url":"https://api.github.com/users/DavidBoike","html_url":"https://github.com/DavidBoike","followers_url":"https://api.github.com/users/DavidBoike/followers","following_url":"https://api.github.com/users/DavidBoike/following{/other_user}","gists_url":"https://api.github.com/users/DavidBoike/gists{/gist_id}","starred_url":"https://api.github.com/users/DavidBoike/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DavidBoike/subscriptions","organizations_url":"https://api.github.com/users/DavidBoike/orgs","repos_url":"https://api.github.com/users/DavidBoike/repos","events_url":"https://api.github.com/users/DavidBoike/events{/privacy}","received_events_url":"https://api.github.com/users/DavidBoike/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-07-29T17:06:47Z","updated_at":"2015-07-30T16:24:02Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/Particular/NServiceBus/pulls/2788","html_url":"https://github.com/Particular/NServiceBus/pull/2788","diff_url":"https://github.com/Particular/NServiceBus/pull/2788.diff","patch_url":"https://github.com/Particular/NServiceBus/pull/2788.patch"},"body":"Blocker for [NHibernate Saga Metamodel refactoring](https://github.com/Particular/FeatureDevelopment/issues/324)\r\n\r\nWhether or not something is a unit test or an acceptance tests seems to me irrelevant. We have tests here and there that need, as their basis, the reference SagaMetadata from an arbitrary collection of types, to use as reference information, the same way NServiceBus proper would.\r\n\r\nTypeBasedSagaMetaModel is and should remain internal in its implementation, but its result should be publicly available knowledge. Otherwise SagaMetadata is a voodoo type.\r\n"},"comment":{"url":"https://api.github.com/repos/Particular/NServiceBus/issues/comments/126391626","html_url":"https://github.com/Particular/NServiceBus/pull/2788#issuecomment-126391626","issue_url":"https://api.github.com/repos/Particular/NServiceBus/issues/2788","id":126391626,"user":{"login":"DavidBoike","id":427110,"avatar_url":"https://avatars.githubusercontent.com/u/427110?v=3","gravatar_id":"","url":"https://api.github.com/users/DavidBoike","html_url":"https://github.com/DavidBoike","followers_url":"https://api.github.com/users/DavidBoike/followers","following_url":"https://api.github.com/users/DavidBoike/following{/other_user}","gists_url":"https://api.github.com/users/DavidBoike/gists{/gist_id}","starred_url":"https://api.github.com/users/DavidBoike/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DavidBoike/subscriptions","organizations_url":"https://api.github.com/users/DavidBoike/orgs","repos_url":"https://api.github.com/users/DavidBoike/repos","events_url":"https://api.github.com/users/DavidBoike/events{/privacy}","received_events_url":"https://api.github.com/users/DavidBoike/received_events","type":"User","site_admin":false},"created_at":"2015-07-30T16:24:02Z","updated_at":"2015-07-30T16:24:02Z","body":"Removed WIP. Refactored as Daniel and I discussed.\r\n\r\nYou can now construct a SagaMetadata from scratch for unit testing, or use static Create method to create a single SagaMetadata from a specific Saga type (or Saga Type + additional types/conventions for finding sagafinders, etc.)\r\n\r\nSagaMetaModel now initializes from a collection of Types (+ conventions) and calls into SagaMetadata's Create method to accomplish what TypeBasedSagaMetaModel used to do.\r\n\r\nPlease review @Particular/nservicebus, @Particular/engineers."}}