@startuml
title Provider Deployment
hide footbox
autonumber
participant "Gateway\nServer" as GW
participant "Gateway\nConfig\n(gc)" as GC
participant "Topology\n(td)" as TD
participant "Deployment\nFactory" as DF
participant "Deployment\nContext\n(dc)" as DC
participant "Web\nArchive\n(wa)" as WA
participant "Gateway\nDescriptor\n(gd)" as GD
participant "Provider\nDeployment\nContributor" as PDC
participant "Service\nDeployment\nContributor" as SDC
create GC
GW -> GC: load
create TD
GW -> TD: load
GW -> DF: createDeployment( gc, td ): wa
activate DF
create GD
DF -> GD: create
create WA
DF -> WA: create( gd )
create DC
DF -> DC: create( gc, td, wa )
loop Provider p in Topology dc.td
DF -> PDC:initializeContribution( dc, p )
activate PDC
PDC -> WA: createDescriptors
deactivate PDC
end
loop Provider p in Topology dc.td
DF -> PDC:contributeProvider( dc, p )
activate PDC
PDC -> WA: populateDescriptors
deactivate PDC
end
loop Service s in Topology dc.td
DF -> SDC:contributeService( dc, s )
activate SDC
SDC -> DC: contributeFilter( s, resource, role, name, params )
activate DC
DC -> PDC: contributeFilter( s, resource, role, name, params )
activate PDC
PDC -> WA: modifyDescriptors
deactivate PDC
'DC --> SDC
deactivate DC
'DF <-- SDC
deactivate SDC
end
loop Provider p in Topology dc.td
DF -> PDC:finalizeContribution( dc, P )
activate PDC
PDC -> WA: finalizeDescriptors
deactivate PDC
end
GW <-- DF: WebArchive wa
deactivate DF
@enduml