Project

General

Profile

1
/**
2
 * 
3
 */
4
package eu.dnetlib.data.search.web;
5

    
6
import java.io.IOException;
7
import java.io.StringReader;
8
import java.io.StringWriter;
9

    
10
import javax.servlet.ServletContext;
11
import javax.servlet.http.HttpServletRequest;
12
import javax.xml.parsers.DocumentBuilder;
13
import javax.xml.parsers.DocumentBuilderFactory;
14
import javax.xml.parsers.ParserConfigurationException;
15
import javax.xml.transform.OutputKeys;
16
import javax.xml.transform.Transformer;
17
import javax.xml.transform.TransformerConfigurationException;
18
import javax.xml.transform.TransformerException;
19
import javax.xml.transform.TransformerFactory;
20
import javax.xml.transform.TransformerFactoryConfigurationError;
21
import javax.xml.transform.dom.DOMSource;
22
import javax.xml.transform.stream.StreamResult;
23

    
24
import org.springframework.context.ApplicationContext;
25
import org.springframework.web.context.support.WebApplicationContextUtils;
26
import org.w3c.dom.Document;
27
import org.w3c.dom.Element;
28
import org.xml.sax.InputSource;
29
import org.xml.sax.SAXException;
30

    
31
import eu.dnetlib.api.data.SearchService;
32
import gr.uoa.di.driver.enabling.resultset.ResultSetFactory;
33

    
34
/**
35
 * @author stoumpos
36
 * 
37
 */
38
public class SearchServiceContextUtils {
39

    
40
	public static SearchService getSearchService(HttpServletRequest request) {
41
		ServletContext session = request.getSession().getServletContext();
42
		ApplicationContext context = WebApplicationContextUtils
43
				.getWebApplicationContext(session);
44
		SearchService search = (SearchService) context.getBean("searchService");
45

    
46
		return search;
47
	}
48

    
49
	public static ResultSetFactory getResultSetFactory(
50
			HttpServletRequest request) {
51
		ServletContext session = request.getSession().getServletContext();
52
		ApplicationContext context = WebApplicationContextUtils
53
				.getWebApplicationContext(session);
54
		ResultSetFactory rsFactory = (ResultSetFactory) context
55
				.getBean("resultSetFactory");
56

    
57
		return rsFactory;
58
	}
59

    
60
	public static final String prettyPrint(String xml)
61
			throws TransformerConfigurationException,
62
			TransformerFactoryConfigurationError, TransformerException,
63
			SAXException, IOException, ParserConfigurationException {
64

    
65
		DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
66
		dbf.setValidating(true);
67
		DocumentBuilder db = dbf.newDocumentBuilder();
68
		InputSource sourceXML = new InputSource(new StringReader(xml));
69
		Document xmlDoc = db.parse(sourceXML);
70
		Element source = xmlDoc.getDocumentElement();
71
		source.normalize();
72

    
73
		StreamResult target = new StreamResult(new StringWriter());
74

    
75
		Transformer tf = TransformerFactory.newInstance().newTransformer();
76
		tf.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
77
		tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
78
		tf.setOutputProperty(OutputKeys.INDENT, "yes");
79
		tf.transform(new DOMSource(source), target);
80

    
81
		return target.getWriter().toString();
82
	}
83

    
84
}
(2-2/2)