in atomos/src/main/java/org/apache/felix/atomos/impl/modules/AtomosModules.java [135:167]
AtomosLayerBase createAtomosLayer(Configuration config, String name, long id,
LoaderType loaderType, Path... paths)
{
AtomosLayerBase existing = getByConfig(config);
if (existing != null)
{
return existing;
}
existing = getById(id);
if (existing != null)
{
throw new IllegalArgumentException("The a layer already exists with the id: "
+ id + " " + existing.getName());
}
lockWrite();
try
{
List<AtomosLayer> parents = findParents(config, name);
id = id < 0 ? nextLayerId.getAndIncrement() : id;
if (Configuration.empty().equals(config))
{
name = "empty";
}
AtomosLayerModules result = new AtomosLayerModules(config, parents, id, name,
loaderType, paths);
addAtomosLayer(result);
return result;
}
finally
{
unlockWrite();
}
}