Skip to content
Snippets Groups Projects
Commit 6b27719e authored by Thorsten Vitt's avatar Thorsten Vitt
Browse files

Explicitely use JDK's Xalan, fixes TEIHeaderStack

parent 78bdf2b5
No related branches found
No related tags found
No related merge requests found
...@@ -47,27 +47,27 @@ ...@@ -47,27 +47,27 @@
* *
*/ */
public class TEIHeaderStack { public class TEIHeaderStack {
private final List<ObjectType> parents = Lists.newLinkedList(); private final List<ObjectType> parents = Lists.newLinkedList();
private final ITextGridRep repository = TextGridRepProvider.getInstance(); private final ITextGridRep repository = TextGridRepProvider.getInstance();
private Templates stylesheet; private Templates stylesheet;
public TEIHeaderStack(final ObjectType object) throws ObjectNotFoundFault, public TEIHeaderStack(final ObjectType object) throws ObjectNotFoundFault,
MetadataParseFault, IoFault, AuthFault { MetadataParseFault, IoFault, AuthFault {
String uri = object.getGeneric().getGenerated().getTextgridUri() final String uri = object.getGeneric().getGenerated().getTextgridUri()
.getValue(); .getValue();
parents.add(object); parents.add(object);
PathResponse pathResponse = repository.getPublicSearchClient().getPath( final PathResponse pathResponse = repository.getPublicSearchClient().getPath(
uri); uri);
for (PathGroupType pathGroup : pathResponse.getPathGroup()) for (final PathGroupType pathGroup : pathResponse.getPathGroup())
for (PathType path : pathGroup.getPath()) for (final PathType path : pathGroup.getPath())
for (EntryType entry : path.getEntry()) for (final EntryType entry : path.getEntry())
if (!entry.getTextgridUri().equals(uri)) { if (!entry.getTextgridUri().equals(uri)) {
MetadataContainerType container = repository.getCRUDService().readMetadata(null, "", entry.getTextgridUri()); final MetadataContainerType container = repository.getCRUDService().readMetadata(null, "", entry.getTextgridUri());
parents.add(0, container.getObject()); parents.add(0, container.getObject());
} }
} }
public void push(final ObjectType object) { public void push(final ObjectType object) {
parents.add(0, object); parents.add(0, object);
} }
...@@ -75,37 +75,37 @@ public void push(final ObjectType object) { ...@@ -75,37 +75,37 @@ public void push(final ObjectType object) {
public ObjectType pop() { public ObjectType pop() {
return parents.remove(0); return parents.remove(0);
} }
public Document generateCommonDOM() { public Document generateCommonDOM() {
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); final DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true); domFactory.setNamespaceAware(true);
DocumentBuilder builder; DocumentBuilder builder;
try { try {
builder = domFactory.newDocumentBuilder(); builder = domFactory.newDocumentBuilder();
Document document = builder.newDocument(); final Document document = builder.newDocument();
Element rootElement = document.createElement("root"); final Element rootElement = document.createElement("root");
document.appendChild(rootElement); document.appendChild(rootElement);
JAXBContext context = null; JAXBContext context = null;
try { try {
CachedContextAndSchemas cachedContextAndSchemas = JAXBContextCache final CachedContextAndSchemas cachedContextAndSchemas = JAXBContextCache
.getCachedContextAndSchemas(ObjectType.class); .getCachedContextAndSchemas(ObjectType.class);
if (cachedContextAndSchemas != null) if (cachedContextAndSchemas != null)
context = cachedContextAndSchemas.getContext(); context = cachedContextAndSchemas.getContext();
} catch (JAXBException e) { } catch (final JAXBException e) {
// TODO Auto-generated catch block // TODO Auto-generated catch block
e.printStackTrace(); e.printStackTrace();
} }
if (context == null) if (context == null)
context = JAXBContext.newInstance(ObjectType.class); context = JAXBContext.newInstance(ObjectType.class);
Marshaller marshaller = context.createMarshaller(); final Marshaller marshaller = context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true); marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
for (ObjectType object : parents) for (final ObjectType object : parents)
marshaller.marshal(object, rootElement); marshaller.marshal(object, rootElement);
return document; return document;
} catch (ParserConfigurationException e) { } catch (final ParserConfigurationException e) {
throw new IllegalStateException(e); throw new IllegalStateException(e);
} catch (JAXBException e) { } catch (final JAXBException e) {
throw new IllegalStateException(e); throw new IllegalStateException(e);
} }
} }
...@@ -113,11 +113,11 @@ public Document generateCommonDOM() { ...@@ -113,11 +113,11 @@ public Document generateCommonDOM() {
protected Templates getStylesheet() protected Templates getStylesheet()
throws TransformerConfigurationException { throws TransformerConfigurationException {
if (stylesheet == null) { if (stylesheet == null) {
InputStream xslStream = getClass().getClassLoader() final InputStream xslStream = getClass().getClassLoader()
.getResourceAsStream("md2tei.xsl"); .getResourceAsStream("md2tei.xsl");
StreamSource xslSource = new StreamSource(xslStream); final StreamSource xslSource = new StreamSource(xslStream);
TransformerFactory factory = TransformerFactory.newInstance(); final TransformerFactory factory = TransformerFactory.newInstance("com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl", getClass().getClassLoader());
stylesheet = factory.newTemplates(xslSource); stylesheet = factory.newTemplates(xslSource);
} }
return stylesheet; return stylesheet;
...@@ -127,11 +127,11 @@ public void writeHeader(final Result result) { ...@@ -127,11 +127,11 @@ public void writeHeader(final Result result) {
DOMSource domSource; DOMSource domSource;
try { try {
domSource = new DOMSource(generateCommonDOM()); domSource = new DOMSource(generateCommonDOM());
Transformer transformer = getStylesheet().newTransformer(); final Transformer transformer = getStylesheet().newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION,
"yes"); "yes");
transformer.transform(domSource, result); transformer.transform(domSource, result);
} catch (TransformerException e) { } catch (final TransformerException e) {
throw new IllegalStateException(e); throw new IllegalStateException(e);
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment