} else {
// The add/change/remove is either at or below a source, so try to create a new source for it ...
Path sourcePath = changedNodeIsPotentiallySource ? changedPath : changedPath.subpath(0, configPath.size() + 1);
Problems problems = new SimpleProblems();
// Now read the node and create the source ...
Graph graph = Graph.create(getConfigurationSourceName(), getRepositoryLibrary(), getExecutionEnvironment());
try {
String workspaceName = getConfigurationWorkspaceName();
if (workspaceName != null) graph.useWorkspace(workspaceName);
Map<Name, Property> properties = graph.getPropertiesByName().on(sourcePath);
RepositorySource source = createRepositorySource(sourcePath, properties, problems);
if (source != null) {
// It was the config for a source, so try to add or replace an existing source ...
getRepositoryLibrary().addSource(source, true);
}