final FederatedRequest request = new FederatedRequest(original);
// And "fork" the original request into the first source request ...
final ReadNodeRequest projected1 = new ReadNodeRequest(location("/b/c"), "workspaceM");
projected1.setActualLocationOfNode(Location.create(projected1.at().getPath(), UUID.randomUUID()));
projected1.addProperty(property("propA", "valueA"));
projected1.addProperty(property("propB", "valueB"));
projected1.addChild(child(projected1.getActualLocationOfNode(), "child1"));
projected1.addChild(child(projected1.getActualLocationOfNode(), "child2"));
request.add(projected1, false, false, projectionA);
// And a second source request (that was cancelled)...
final ReadNodeRequest projected2 = new ReadNodeRequest(location("/a/b/c"), "workspaceM");