import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
+import java.util.HashSet;
import java.util.Set;
import javax.xml.namespace.QName;
private CmsContentSession systemSession;
+ private Set<ContentProvider> providersToAdd = new HashSet<>();
+
// utilities
/** Should be used only to copy source and results. */
private TransformerFactory identityTransformerFactory = TransformerFactory.newInstance();
*/
public void addProvider(ContentProvider provider) {
- mountManager.addStructuralContentProvider(provider);
+ if (mountManager == null)
+ providersToAdd.add(provider);
+ else
+ mountManager.addStructuralContentProvider(provider);
}
public void registerTypes(String prefix, String namespaceURI, String schemaSystemId) {
throw new IllegalStateException("Cannot init ACR root " + path, e);
}
+ // add content providers already notified
+ for (ContentProvider contentProvider : providersToAdd)
+ addProvider(contentProvider);
+ providersToAdd.clear();
}
public void writeDom(Document document, OutputStream out) throws IOException {