Hovedendringen for 5.0 er støtte for arv av køsett fra virksomheten slik at flere kommunikasjonsparter kan dele det samme settet med køer fra virksomheten. I tillegg er det fjernet ubrukte metoder og egenskaper som hadde relevans for MS ServiceBus og gjort visse navneendringer. Alle endringer er dokumentert i dette migreringsdokumentet.
Alle async
metoder har nå endelsen Async. F.eks MessagingServer.Start
er nå endret til MessagingServer.StartAsync
.
Støtte for BinaryFormatter
er nå fullstendig fjernet. NB: Dersom du har en fysisk cache (database) vil denne cachen
måtte slettes før man deployer Helsenorge.Messaging 5.0.
MessagingSettings.MyHerId
→MessagingSettings.MyHerIds
- Datatypen er endret fra
int
tilList<int>
- Datatypen er endret fra
CollaborationProtocolRegistrySettings.MyHerId
er fjernetMessagingSettings.ServiceBus
→MessagingSettings.AmqpSettings
- Standardverdien tilhørende
MessagingSettings.AmqpSettings.MessageBrokerDialect
er endret fraMessageBrokerDialect.ServiceBus
tilMessageBrokerDialect.RabbitMQ
For å avhjelpe oppbygging av Connection String fra kode har klassen AmqpConnectionString blitt lagt til.
Egenskapen EnqueuedTimeUtc
var en AMQP MessageAnnotation som ble satt av ServiceBus. Denne settes nå på klientside
rett før utsending av melding og er flyttet AMQP ApplicationProperties.
Egenskapen MyHerId
på klassen MessagingSettings
har endret navn til MyHerIds
, i tillegg har datatypen blitt endret
fra int
til List<int>
.
Egenskapen MyHerId
på klassen CollaborationProtocolRegistrySettings
er fjernet. Internt benytter biblioteket nå
egenskapene IncomingMessage.ToHerId
og OutgoingMessage.FromHerId
for å resolve egen HerId.
ILogger argumentet har blitt fjernet fra metodene og er flyttet som en avhengighet til konstruktøren på
CollaborationProtocolRegistry
. Metodene har blitt utvidet med parameteret myHerId
av type int
(uthevet i fet
kursiv tekst) og ILogger
argumentet er fjernet:
- FindAgreementByIdAsync(ILogger, Guid) → FindAgreementByIdAsync(Guid, int)
- FindAgreementByIdAsync(ILogger, Guid, bool) → FindAgreementByIdAsync(Guid, int, bool)
- FindAgreementForCounterpartyAsync(ILogger, int) → FindAgreementForCounterpartyAsync(int, int)
- FindAgreementForCounterpartyAsync(ILogger, int, bool) → FindAgreementForCounterpartyAsync(ILogger, int, int, bool)
- GetCollaborationProtocolProfileAsync(ILogger, Guid, bool) → GetCollaborationProtocolProfileAsync(Guid, bool)
ILogger argumentet har blitt fjernet fra metodene og er flyttet som en avhengighet til konstruktøren på AddressRegistry
.
- FindCommunicationPartyDetailsAsync(ILogger, int herId) → FindCommunicationPartyDetailsAsync(int herId)
- FindCommunicationPartyDetailsAsync(ILogger, int herId, bool forceUpdate) → FindCommunicationPartyDetailsAsync(int herId, bool forceUpdate)
- GetCertificateDetailsForEncryptionAsync(ILogger, int herId) → GetCertificateDetailsForEncryptionAsync(int herId)
- GetCertificateDetailsForEncryptionAsync(ILogger, int herId, bool forceUpdate) → GetCertificateDetailsForEncryptionAsync(int herId, bool forceUpdate)
- GetCertificateDetailsForValidatingSignatureAsync(ILogger, int herId) → GetCertificateDetailsForValidatingSignatureAsync(int herId)
- GetCertificateDetailsForValidatingSignatureAsync(ILogger, int herId, bool forceUpdate) → GetCertificateDetailsForValidatingSignatureAsync(int herId, bool forceUpdate)
- PingAsync(ILogger) → PingAsync()
To nye metoder er lagt til:
- SearchByIdAsync(string id, bool forceUpdate = false)
- GetOrganizationDetailsAsync(int herId, bool forceUpdate = false)
Fire nye egenskaper er lagt til:
- ParentOrganizationNumber: Forelderen sitt organisasjonsnummer.
- Active: Satt til true om kommunikasjonsparten er aktiv, ellers false.
- IsValidCommunicationParty: Satt til true dersom kommunikasjonsparten kan motta EDI meldinger.
- Type: Angir hva slags type kommunikasjonspart dette er, Service, Person, Organization, Department, eller alle.
ServiceBusHttpClient har vært merket som Obsolete
i gjennom versjon 4.0 av biblioteket og fjernes nå i forbindelse med
at støtte for produktet Microsoft ServiceBus fases ut. Lignende funksjonalitet eksisterer ikke over AMQP 1.0 for
RabbitMQ.
Følgende namespace er endret:
Helsenorge.Messaging.ServiceBus
→Helsenorge.Messaging.Amqp
Følgende klasser og interfacer har navneendringer på klasser og interfacer:
IMessagingMessage
→IAmqpMessage
IMessagingFactory
→IAmqpFactory
IMessagingReceiver
→IAmqpReceiver
IMessagingSender
→IAmqpSender
ICachedMessagingEntity
→ICachedAmqpEntity
MessagingEntityCache
→AmqpEntityCache
ServiceBusSettings
→AmqpSettings
ServiceBusConnection
→AmqpConnection
ServiceBusCore
→AmqpCore
ServiceBusException
→AmqpException
ServiceBusCommunicationException
→AmqpCommunicationException
ServiceBusException
→AmqpException
ServiceBusTimeoutException
→AmqpTimeoutException
RecoverableServiceBusException
→RecoverableAmqpException
UncategorizedServiceBusException
→UncategorizedAmqpException
IServiceBusManager
→IBusManager
ServiceBusManager
→BusManager
ServiceBusManagerSettings
→BusManagerSettings
IServiceBusFactoryPool
→IAmqpFactoryPool
Følgende egenskaper har navneendringer:
MessagingCore.Core
→MessagingCore.AmqpCore
MessagingSettings.MyHerId
→MessagingSettings.MyHerIds
MessagingSettings.ServiceBus
→MessagingSettings.AmqpSettings
Disse var avhengig av funksjonalitet som lå i klassen ServiceBusHttpClient og hadde kun relevans mot en MS ServiceBus instans, i tillegg var funksjonaliteten svært ustabil.
Følgende metoder er fjernet:
IAmqpMessage.RenewLock()
IAmqpMessage.RenewLockAsync()
IAmqpMessage.ScheduledEnqueTimeUtc
IncomingMessage.RenewLock()
IncomingMessage.RenewLockAsync()
Følgende metoder har navneendringer:
IAmqpMessage.GetValue()
→IAmqpMessage.GetApplicationPropertyValue()
IAmqpMessage.SetApplicationProperty()
→IAmqpMessage.SetApplicationPropertyValue()
Helsenorge.Messaging 5.0 er fortsatt kompatibel med MS ServiceBus i tillegg til RabbitMQ, og benytter AMQP1.0 protokollene for både MS ServiceBus og RabbitMQ.