in src/main/java/org/apache/sling/maven/bundlesupport/fsresource/FsMountHelper.java [89:124]
public void addConfigurations(final URI targetUrl, Collection<FsResourceConfiguration> cfgs) throws MojoExecutionException {
final Map<String,FsResourceConfiguration> oldConfigs = getCurrentConfigurations(targetUrl);
for (FsResourceConfiguration cfg : cfgs) {
log.debug("Found mapping " + cfg.getFsRootPath() + " to " + cfg.getResourceRootPath());
// check if this is already configured
boolean found = false;
final Iterator<Map.Entry<String,FsResourceConfiguration>> entryIterator = oldConfigs.entrySet().iterator();
while ( !found && entryIterator.hasNext() ) {
final Map.Entry<String,FsResourceConfiguration> current = entryIterator.next();
final FsResourceConfiguration oldcfg = current.getValue();
log.debug("Comparing " + oldcfg.getFsRootPath() + " with " + oldcfg);
if (Objects.equals(oldcfg.getFsRootPath(), cfg.getFsRootPath())) {
if (cfg.equals(oldcfg)) {
log.info("Using existing configuration for " + cfg.getFsRootPath() + " mounted at " + cfg.getResourceRootPath());
found = true;
}
else {
// remove old config
log.info("Removing old configuration for " + oldcfg);
removeConfiguration(targetUrl, current.getKey());
}
entryIterator.remove();
}
}
if ( !found ) {
log.debug("Adding new configuration for " + cfg.getFsRootPath() + " mounted at " + cfg.getResourceRootPath());
addConfiguration(targetUrl, cfg);
log.info("Added new configuration for resource path "+ cfg.getResourceRootPath() + " to server");
}
}
// finally remove old configs
removeConfigurations(targetUrl, oldConfigs);
}