Changeset 4307
- Timestamp:
- 01/21/14 10:23:06 (11 years ago)
- Location:
- vlo/trunk/vlo_web_app/src/main/java/eu/clarin/cmdi/vlo/pages
- Files:
-
- 1 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vlo/trunk/vlo_web_app/src/main/java/eu/clarin/cmdi/vlo/pages/ShowResultPage.java
r4288 r4307 7 7 import eu.clarin.cmdi.vlo.config.VloConfig; 8 8 import eu.clarin.cmdi.vlo.dao.DaoLocator; 9 import java.io.InputStreamReader;10 import java.io.StringWriter;11 9 import java.io.UnsupportedEncodingException; 12 10 import java.net.MalformedURLException; … … 19 17 import java.util.List; 20 18 import java.util.regex.Pattern; 21 import javax.xml.transform.stream.StreamSource;22 import net.sf.saxon.s9api.Processor;23 import net.sf.saxon.s9api.Serializer;24 import net.sf.saxon.s9api.XdmNode;25 import net.sf.saxon.s9api.XsltCompiler;26 import net.sf.saxon.s9api.XsltExecutable;27 import net.sf.saxon.s9api.XsltTransformer;28 19 import org.apache.solr.common.SolrDocument; 29 20 import org.apache.wicket.Application; … … 76 67 public static final String feedbackfromURL = VloConfig.getFeedbackFromUrl(); 77 68 78 private final URL xslFile = getClass().getResource("/eu/clarin/cmdi/vlo/pages/cmdi2xhtml.xsl");79 69 private final ResourceReference XSL_CSS_REFERENCE = new PackageResourceReference(getClass(), "cmdi.css"); 80 70 … … 82 72 public ShowResultPage(final PageParameters currentParam) { 83 73 super(currentParam); 84 74 85 75 final StringValue docIdParam = getPageParameters().get(PARAM_DOC_ID); 86 76 if (docIdParam == null) { … … 92 82 Application.get().getRequestCycleSettings().getResponseRequestEncoding()); // get current character set from request cycle 93 83 SolrDocument solrDocument = DaoLocator.getSearchResultsDao().getSolrDocument(docId); 94 84 95 85 if (solrDocument != null) { 96 86 final SearchPageQuery query = new SearchPageQuery(currentParam); … … 565 555 566 556 private void createCompleteCmdiView(final SolrDocument solrDocument) { 567 StringWriter strWriter = new StringWriter(); 568 569 final Processor proc = new Processor(false); 570 final XsltCompiler comp = proc.newXsltCompiler(); 571 557 final String completeMetadataField = solrDocument.getFirstValue(FacetConstants.FIELD_COMPLETE_METADATA).toString(); 572 558 try { 573 final XsltExecutable exp = comp.compile(new StreamSource(xslFile.getFile())); 574 final XdmNode source = proc.newDocumentBuilder().build( 575 new StreamSource(new InputStreamReader(new URL(solrDocument.getFirstValue(FacetConstants.FIELD_COMPLETE_METADATA).toString()).openStream()))); 576 final Serializer out = new Serializer(); 577 out.setOutputProperty(Serializer.Property.METHOD, "html"); 578 out.setOutputProperty(Serializer.Property.INDENT, "yes"); 579 out.setOutputProperty(Serializer.Property.ENCODING, "UTF-8"); 580 out.setOutputWriter(strWriter); 581 final XsltTransformer trans = exp.load(); 582 583 trans.setInitialContextNode(source); 584 trans.setDestination(out); 585 trans.transform(); 586 } catch (Exception e) { 587 LOG.error("Couldn't create CMDI metadata: ", e); 588 strWriter = new StringWriter().append("<b>Could not load complete CMDI metadata</b>"); 589 } 590 591 completeCmdiLabel = new Label("completeCmdi", strWriter.toString()); 592 completeCmdiLabel.setEscapeModelStrings(false); 559 final CmdiXsltModel cmdiXsltModel = new CmdiXsltModel(new URL(completeMetadataField)); 560 completeCmdiLabel = new Label("completeCmdi", cmdiXsltModel); 561 completeCmdiLabel.setEscapeModelStrings(false); 562 } catch (MalformedURLException ex) { 563 LOG.error("Could not create CMDI view, malformed URL: {}", completeMetadataField, ex); 564 completeCmdiLabel = new Label("<b>Could not read metadata</b>"); 565 } 593 566 } 594 567
Note: See TracChangeset
for help on using the changeset viewer.