/** * Get the configuration * @param pid The pid of the configuration * @return The configuration or {@code null} */ public Configuration getConfiguration(final String pid) { for(final Configuration cfg : this) { if (pid.equals(cfg.getPid())) { return cfg; } } return null; } }
static void mergeConfigurations(final Configurations target, final Configurations source) { for(final Configuration cfg : source) { boolean found = false; for(final Configuration current : target) { if ( current.compareTo(cfg) == 0 ) { found = true; // merge / override properties final Enumeration<String> i = cfg.getProperties().keys(); while ( i.hasMoreElements() ) { final String key = i.nextElement(); current.getProperties().put(key, cfg.getProperties().get(key)); } break; } } if ( !found ) { final Configuration newCfg = cfg.copy(cfg.getPid()); target.add(newCfg); } } }
if (org.apache.sling.feature.Configuration.isFactoryConfiguration(cfg.getPid())) { String name = decodeRunModes(org.apache.sling.feature.Configuration.getName(cfg.getPid()), runModeList); c = new Configuration(name, org.apache.sling.feature.Configuration.getFactoryPid(cfg.getPid())); } else { String pid = decodeRunModes(cfg.getPid(), runModeList); c = new Configuration(pid, null);
result.getConfigurations().add(cfg.copy(cfg.getPid()));