Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
Signed-off-by: Jarno Elovirta <jarno@elovirta.com>
  • Loading branch information
jelovirt committed May 5, 2024
1 parent 43ff659 commit bb1b7ea
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion src/main/java/org/dita/dost/ant/ExtensibleAntInvoker.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import java.util.function.Predicate;
import java.util.stream.Collectors;
import javax.xml.transform.Source;
import javax.xml.transform.sax.SAXSource;
import javax.xml.transform.stream.StreamSource;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Location;
Expand All @@ -37,6 +38,7 @@
import org.dita.dost.module.XmlFilterModule.FilterPair;
import org.dita.dost.module.XsltModule;
import org.dita.dost.pipeline.PipelineHashIO;
import org.dita.dost.platform.FileGenerator;
import org.dita.dost.store.Store;
import org.dita.dost.store.StreamStore;
import org.dita.dost.util.Configuration.Mode;
Expand All @@ -45,6 +47,8 @@
import org.dita.dost.util.Job.FileInfo;
import org.dita.dost.util.XMLUtils;
import org.dita.dost.writer.AbstractXMLFilter;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

/**
* Ant task for executing pipeline modules.
Expand Down Expand Up @@ -225,7 +229,7 @@ private AbstractPipelineModule getPipelineModule(final ModuleElem m, final Pipel
throw new DITAOTException("Pipeline XSLT task with parallel=true cannot be used with Ant's xmlcatalog");
}
final XsltModule module = new XsltModule();
module.setStyle(toSource(xm.xslResource));
module.setStyle(toExtensibleSource(xm.xslResource));
if (xm.in != null) {
module.setSource(xm.in);
module.setResult(xm.out);
Expand Down Expand Up @@ -303,6 +307,20 @@ private Source toSource(final Resource style) {
}
}

private Source toExtensibleSource(final Resource style) {
final FileGenerator fileGenerator = new FileGenerator();
try {
fileGenerator.setParent(XMLUtils.getXMLReader());
} catch (SAXException e) {
throw new BuildException("Failed to create source: " + e.getMessage(), e);
}
if (style instanceof FileResource) {
return new SAXSource(fileGenerator, new InputSource(((FileResource) style).getFile().toURI().toString()));
} else {
throw new BuildException(String.format("%s not supported", style.getClass().toString()));
}
}

private static Predicate<FileInfo> combine(final Collection<FileInfoFilterElem> filters) {
if (filters.isEmpty()) {
return f -> true;
Expand Down

0 comments on commit bb1b7ea

Please sign in to comment.