Hello Wilfried, On 04 Feb 2014, at 17:13 pm, Sibla Wilfried <[email protected]> wrote:
> I tried to prepare a default target runtime for initial installation. > My uses was: creating multiple target environments upfront and initial > startup with predeployed DP and avoiding immediate deployment after first > connection to the ACE server (efficient target replication and provisioning). > > I chose the following proceeding: > > 1.) start my target with ID: default > 2.) copied the whole osgi runtime including the bundle cache and its > configuration to new location > 3.) changed the agent.identification.agentid property to e.g. myExampleID > 4.) start the new target osgi container with ID myExampleID. > > But this does not work. > The reason is that the ACE server is writing the ID of the target into the DP > manifest as the DeploymentPackage-SymbolicName. > And on the other side this value is used by the DeploymentAdmin to enable the > installation of multiple DPs on a target. > > Using a fake value as DeploymentPackage-SymbolicName (within the > StreamGeneratorImpl) and ignoring the identification/target ID in > DeploymentHandlerImpl.getInstalledVersion() (line 212) could support this use > case. > > Could this be a valuable use case for ACE? E.g. in a configurable manner > (property "use dummy DP-BSN": true/false; as a server and target property). > > Thanks a lot in advance. So you have many different targets that all have the same initial installation? Then why not directly give those targets their correct target ID, have them connect to ACE locally once, and then ship them with bundle cache and everything? If they end up talking to the same server, at some point you will have to configure each target anyway. It should not be hard to automate the registration of each new target ID and once you've done that, you can either have a distribution that is associated to all existing targets, or use some kind of other scheme te determine what distribution should be linked to the target. Another problem with your approach is that if you have a "default" target that has for example version 5 as its latest version, and you deploy it to a new target, then rename that target and have it poll again, it will think it still has version 5 of the software installed, so if you create a new target ID whose version starts at 1, it will not update the first 5 versions because it thinks it already has a new version. In short, I would keep target IDs unique and immutable. There are just too many things in ACE that depend on that. Greetings, Marcel
