package fr.imag.adele.apam; import java.util.Set; /** * This interface must be implemented by a manager that can dynamically update components. * * @author vega * */ public interface DeploymentManager extends ContextualManager { /** * A representation of a component deployment unit. * * Because of packaging granularity, the same deployment unit may contain * several other components, that will be updated as a side effect of * updating the component. * */ public interface Unit { /** * The list of components in this deployment unit */ public Set<String> getComponents(); /** * Updates all the components in the deployment unit */ public void update() throws Exception; } /** * Get the deployment unit associated with the given implementation. * * When an update is requested all deployment managers will be queried in turn to find the * deployment unit. The manager that actually deployed the component must respond with its * associated deployment unit, other managers must return null. * */ public Unit getDeploymentUnit(CompositeType context, Implementation component); }