Index: modules/dnet-shadow-functionality-services/branches/beta/pom.xml
===================================================================
--- modules/dnet-shadow-functionality-services/branches/beta/pom.xml	(nonexistent)
+++ modules/dnet-shadow-functionality-services/branches/beta/pom.xml	(revision 48511)
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<parent>
+		<groupId>eu.dnetlib</groupId>
+		<artifactId>dnet45-container-parent</artifactId>
+		<version>1.0.0-SNAPSHOT</version>
+	</parent>
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>eu.dnetlib</groupId>
+	<artifactId>dnet-shadow-functionality-services</artifactId>
+	<packaging>war</packaging>
+	<version>2.0.0-SNAPSHOT</version>
+  	<scm>
+                <developerConnection>scm:svn:https://svn.driver.research-infrastructures.eu/driver/dnet45/modules/dnet-shadow-functionality-services/trunk</developerConnection>
+        </scm>
+	<dependencies>
+		<dependency>
+			<groupId>eu.dnetlib</groupId>
+			<artifactId>uoa-search</artifactId>
+			<version>[3.0.0-SNAPSHOT, 4.0.0)</version>
+		</dependency>
+		<dependency>
+			<groupId>eu.dnetlib</groupId>
+			<artifactId>uoa-clients</artifactId>
+			<version>[2.0.0, 3.0.0)</version>
+			<exclusions>
+				<exclusion>
+					<groupId>cglib</groupId>
+					<artifactId>cglib</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+		<dependency>
+			<groupId>eu.dnetlib</groupId>
+			<artifactId>uoa-hcm</artifactId>
+			<version>[2.0.0, 3.0.0)</version>
+		</dependency>
+		<dependency>
+			<groupId>eu.dnetlib</groupId>
+			<artifactId>dnet-runtime</artifactId>
+			<version>[1.0.0,2.0.0)</version>
+		</dependency>
+		<dependency>
+			<groupId>cglib</groupId>
+			<artifactId>cglib-nodep</artifactId>
+			<version>2.2</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.cxf</groupId>
+			<artifactId>cxf-rt-transports-http</artifactId>
+			<version>${cxf.version}</version>
+		</dependency>
+        <dependency>
+            <groupId>jstl</groupId>
+            <artifactId>jstl</artifactId>
+            <version>1.2</version>
+        </dependency>
+		<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-nop -->
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-nop</artifactId>
+			<version>1.7.21</version>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-log4j12</artifactId>
+			<version>1.7.5</version>
+        </dependency>
+		<dependency>
+			<groupId>eu.dnetlib</groupId>
+			<artifactId>cnr-service-common</artifactId>
+			<version>[2.1.6-SNAPSHOT, 3.0.0)</version>
+			<exclusions>
+				<exclusion>
+					<groupId>xml-apis</groupId>
+					<artifactId>xml-apis</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+
+		<!-- https://mvnrepository.com/artifact/xml-apis/xml-apis -->
+		<dependency>
+			<groupId>xml-apis</groupId>
+			<artifactId>xml-apis</artifactId>
+			<version>1.4.01</version>
+		</dependency>
+
+    </dependencies>
+
+<build>
+    <finalName>shadowSearch</finalName>
+</build>
+</project>
Index: modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/applicationContext.xml
===================================================================
--- modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/applicationContext.xml	(nonexistent)
+++ modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/applicationContext.xml	(revision 48511)
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:context="http://www.springframework.org/schema/context"
+	xmlns="http://www.springframework.org/schema/beans"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
+	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
+
+	<import resource="classpath:META-INF/cxf/cxf.xml" />
+	
+	<import resource="classpath*:/gr/uoa/di/driver/app/springContext-commons.xml" />
+	<import resource="classpath*:/gr/uoa/di/driver/util/springContext-locators.xml" />
+	<import resource="classpath*:/gr/uoa/di/driver/app/springContext-registrator.xml" />
+	<import resource="classpath*:/eu/dnetlib/clients/ws/springContext-locatorFactory.xml" />
+	<import resource="classpath*:/eu/dnetlib/soap/cxf/applicationContext-eprbuilders.xml"/>
+	<import resource="classpath*:/gr/uoa/di/driver/app/springContext-lookupFactory.xml" />
+	<import resource="classpath*:/gr/uoa/di/driver/app/springContext-lookupClients.xml" />
+
+	<import resource="classpath*:/eu/dnetlib/enabling/hcm/springContext-hcmService.xml" />
+	<import resource="classpath*:/eu/dnetlib/data/search/solr/springContext-searchService-solr.xml" />
+	<import resource="classpath*:/eu/dnetlib/data/search/springContext-transformation.xml" />
+	<import resource="classpath*:/eu/dnetlib/data/search/springContext-searchService.xml" />
+
+	<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+		<property name="order" value="2" />
+		<property name="ignoreUnresolvablePlaceholders" value="true" />
+		<property name="properties">
+			<bean class="eu.dnetlib.conf.WebappContextProperyFactory">
+				<property name="propertyFetcher">
+					<bean class="eu.dnetlib.conf.PropertyFetcher" />
+				</property>
+			</bean>
+		</property>
+		<property name="locations">
+			<list>
+				<value>classpath*:/eu/**/applicationContext*.properties</value>
+				<value>classpath*:/eu/dnetlib/applicationContext-defaultProperties.properties</value>
+				<value>classpath*:/gr/**/springContext-commons.properties</value>
+				<value>classpath*:/gr/**/springContext-registrator.properties</value> 
+				<value>classpath*:/gr/**/springContext-locators.properties</value>
+				<value>classpath*:/gr/uoa/di/driver/app/springContext-lookupFactory.properties</value>
+				<value>classpath*:/eu/dnetlib/enabling/hcm/springContext-hcmService.properties</value>
+				<value>classpath*:/eu/**/springContext-searchService-solr.properties</value>
+				<value>classpath*:/eu/**/springContext-searchService.properties</value>
+				<value>classpath*:/eu/**/springContext-transformation.properties</value>
+				<value>classpath*:/uoa-override.properties</value>
+				<value>classpath*:/dnet-override.properties</value>
+				<value>classpath*:/uoa-shadow-override.properties</value>
+</list>
+</property>
+	</bean>
+
+	<context:annotation-config />
+	<context:component-scan base-package="eu.dnetlib.data.search.web.api" />
+	<import resource="./cxf.xml" />
+</beans>
Index: modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/web.xml
===================================================================
--- modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/web.xml	(nonexistent)
+++ modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/web.xml	(revision 48511)
@@ -0,0 +1,103 @@
+<!DOCTYPE web-app PUBLIC
+ "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd" >
+<web-app>
+	<display-name>uoa-shadow-search</display-name>
+	<context-param>
+		<param-name>webAppRootKey</param-name>
+		<param-value>uoa-shadow-search</param-value>
+	</context-param>
+	<context-param>
+		<param-name>contextConfigLocation</param-name>
+		<param-value>/WEB-INF/applicationContext.xml</param-value>
+	</context-param>
+	<context-param>
+		<param-name>log4jConfigLocation</param-name>
+		<param-value>/WEB-INF/log4j.properties</param-value>
+	</context-param>
+
+	<listener>
+		<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
+	</listener>
+	<listener>
+		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+	</listener>
+	<servlet>
+		<servlet-name>CXFServlet</servlet-name>
+		<display-name>CXF Servlet</display-name>
+		<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
+		<load-on-startup>1</load-on-startup>
+	</servlet>
+
+	<servlet>
+		<servlet-name>dispatcher</servlet-name>
+		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
+		<load-on-startup>1</load-on-startup>
+	</servlet>
+
+	<servlet-mapping>
+		<servlet-name>CXFServlet</servlet-name>
+		<url-pattern>/services/*</url-pattern>
+	</servlet-mapping>
+	
+	<servlet-mapping>
+		<servlet-name>dispatcher</servlet-name>
+		<url-pattern>/</url-pattern>
+	</servlet-mapping>
+	<servlet>
+		<servlet-name>jersey-serlvet</servlet-name>
+		<servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
+		<init-param>
+			<param-name>com.sun.jersey.config.property.packages</param-name>
+			<param-value>eu.dnetlib.data.search.web.api</param-value>
+		</init-param>
+		<load-on-startup>1</load-on-startup>
+	</servlet>
+	<servlet-mapping>
+		<servlet-name>jersey-serlvet</servlet-name>
+		<url-pattern>/rest/*</url-pattern>
+	</servlet-mapping>
+
+	<filter>
+		<filter-name>CorsFilter</filter-name>
+		<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
+		<init-param>
+			<param-name>cors.allowed.origins</param-name>
+			<param-value>*</param-value>
+		</init-param>
+		<init-param>
+			<param-name>cors.allowed.methods</param-name>
+			<param-value>GET,POST,HEAD,OPTIONS,DELETE</param-value>
+		</init-param>
+		<init-param>
+			<param-name>cors.exposed.headers</param-name>
+			<param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials,Access-Control-Allow-Methods</param-value>
+		</init-param>
+		<init-param>
+			<param-name>cors.support.credentials</param-name>
+			<param-value>true</param-value>
+		</init-param>
+	</filter>
+
+	<filter-mapping>
+		<filter-name>CorsFilter</filter-name>
+		<url-pattern>/*</url-pattern>
+	</filter-mapping>
+	<filter>
+                <filter-name>encodingFilter</filter-name>
+                <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
+                <init-param>
+                        <param-name>encoding</param-name>
+                        <param-value>UTF-8</param-value>
+                </init-param>
+                <init-param>
+                        <param-name>forceEncoding</param-name>
+                        <param-value>true</param-value>
+                </init-param>
+        </filter>
+
+        <filter-mapping>
+                <filter-name>encodingFilter</filter-name>
+                <url-pattern>/*</url-pattern>
+        </filter-mapping>
+</web-app>
Index: modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/log4j.properties
===================================================================
--- modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/log4j.properties	(nonexistent)
+++ modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/log4j.properties	(revision 48511)
@@ -0,0 +1,22 @@
+log4j.rootLogger = WARN, R
+
+log4j.logger.eu.dnetlib = INFO
+log4j.logger.gr.uoa = INFO, S
+log4j.logger.org.apache.cxf.interceptor = FATAL, stdout
+
+log4j.additivity.org.springframework = false
+
+log4j.appender.R=org.apache.log4j.RollingFileAppender
+log4j.appender.R.File=/var/log/dnet/shadowSearch/shadowSearch.log
+log4j.appender.R.MaxFileSize=10MB
+log4j.appender.R.MaxBackupIndex=10
+log4j.appender.R.layout=org.apache.log4j.PatternLayout
+log4j.appender.R.layout.ConversionPattern= %d %p %t [%c] - %m%n
+
+log4j.appender.S=org.apache.log4j.RollingFileAppender
+log4j.appender.S.File=/var/log/dnet/shadowSearch/shadowSearch-spring.log
+log4j.appender.S.MaxFileSize=10MB
+log4j.appender.S.MaxBackupIndex=10
+log4j.appender.S.layout=org.apache.log4j.PatternLayout
+log4j.appender.S.layout.ConversionPattern= %d %p %t [%c] - %m%n
+
Index: modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/cxf.xml
===================================================================
--- modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/cxf.xml	(nonexistent)
+++ modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/cxf.xml	(revision 48511)
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cxf="http://cxf.apache.org/core"
+	xmlns:http="http://cxf.apache.org/transports/http/configuration"
+	xmlns:wsa="http://cxf.apache.org/ws/addressing" xmlns:p="http://www.springframework.org/schema/p"
+	xmlns:pol="http://cxf.apache.org/policy" xmlns:condbean="http://dnetlib.eu/springbeans/condbean"
+	xsi:schemaLocation="
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+http://cxf.apache.org/ws/addressing http://cxf.apache.org/schemas/ws-addr-conf.xsd
+http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd
+http://cxf.apache.org/policy http://cxf.apache.org/schemas/policy.xsd
+http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
+http://dnetlib.eu/springbeans/condbean http://dnetlib.eu/springbeans/condbean.xsd">
+
+	<cxf:bus>
+		<cxf:inInterceptors>
+<!--			<bean id="logInbound" class="org.apache.cxf.interceptor.LoggingInInterceptor" />-->
+<!--			<bean id="logOutbound" class="org.apache.cxf.interceptor.LoggingOutInterceptor" />-->
+		</cxf:inInterceptors>
+		<cxf:features>
+<!--			<wsa:addressing />-->
+<!--			<cxf:logging />-->
+<!--			<pol:policies ignoreUnknownAssertions="true" />-->
+		</cxf:features>
+	</cxf:bus>
+
+
+	<http:conduit name="*.http-conduit">
+		<http:client AllowChunking="true" Connection="Keep-Alive" />
+	</http:conduit>
+</beans>
Index: modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/pages/search.jsp
===================================================================
--- modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/pages/search.jsp	(nonexistent)
+++ modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/pages/search.jsp	(revision 48511)
@@ -0,0 +1,92 @@
+<%@page import="java.util.List"%>
+<%@page import="eu.dnetlib.domain.EPR"%>
+<%@page import="gr.uoa.di.driver.enabling.resultset.ResultSet"%>
+<%@page import="org.apache.commons.lang.StringEscapeUtils"%>
+
+<jsp:useBean id="query" class="eu.dnetlib.data.search.web.Query" scope="request">
+<jsp:setProperty name="query" property="*"/>
+</jsp:useBean>
+
+<%
+if (query == null) {
+%>
+    <jsp:forward page="/"/>
+<%
+}
+%>
+
+
+<%@page import="eu.dnetlib.api.data.SearchService"%>
+<%@page import="org.springframework.web.context.support.WebApplicationContextUtils"%>
+<%@page import="org.springframework.context.ApplicationContext"%>
+<%@page import="eu.dnetlib.data.search.web.SearchServiceContextUtils"%>
+<%@page import="gr.uoa.di.driver.enabling.resultset.ResultSetFactory"%>
+<html>
+	<head>
+		<title>Index Lookup</title>
+	</head>
+	<body>
+		<h1>Index Lookup</h1>
+		Search for <b>
+		<%
+		if (query.getQuery() == null || query.getQuery().length() == 0 ) {
+		%>
+			(empty query)
+		<%
+		} else {
+		%>
+			<%=query.getQuery()%>
+		<%
+		}
+		%>
+		</b> in <a href="services/searchWebService">local search service</a>...<br>
+
+<%
+	long time = System.currentTimeMillis();
+	SearchService searchService = SearchServiceContextUtils.getSearchService(request);
+%>
+	Created index endpoint in <%=System.currentTimeMillis()-time%> ms.<br>
+
+<%
+	time = System.currentTimeMillis();
+	EPR epr = searchService.search(query.getQuery());
+%>
+	Index lookup lasted <%=System.currentTimeMillis()-time%> ms.<br>
+	Returned EPR: <pre><%=StringEscapeUtils.escapeHtml(epr.toString())%></pre><br>
+<%
+	time = System.currentTimeMillis();
+	ResultSet<String> rs = SearchServiceContextUtils.getResultSetFactory(request).createResultSet(epr);
+	int count = rs.size();
+%>
+	Total documents in result set: <%=count%><br>
+	Query Numof Documents lasted <%=System.currentTimeMillis()-time%> ms.<br>
+
+<%
+	time = System.currentTimeMillis();
+	List<String> list = null;
+	int MAX = 50;
+	if (count > 0) {
+		list = rs.getElements(1, Math.min(MAX, count));
+	}
+%>
+	Retrieve top-<%=MAX%> docs lasted <%=System.currentTimeMillis()-time%> ms.<br>
+
+	Top-<%=MAX%> results:
+	<table>
+		<tr><th>Count</th><th>Record</th></tr>
+	<% for (int i = 0 ; i < MAX && i < count; i++ ) { %>
+		<tr>
+			<td><%=i+1%></td>
+			<!--
+			<td><pre><%=StringEscapeUtils.escapeHtml(list.get(i))%></pre></td>
+			-->
+			<td><pre><%=StringEscapeUtils.escapeHtml(
+					SearchServiceContextUtils.prettyPrint(list.get(i)))%>
+			</pre></td>
+		</tr>
+	<% } %>
+	</table>
+	
+	</body>
+</html>
+
Index: modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/pages/openSearchDescriptor.jsp
===================================================================
--- modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/pages/openSearchDescriptor.jsp	(nonexistent)
+++ modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/pages/openSearchDescriptor.jsp	(revision 48511)
@@ -0,0 +1,9 @@
+<%@page contentType="application/xml" %><%@ page isELIgnored="false" %><?xml version="1.0" encoding="UTF-8"?>
+ <OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
+	<ShortName>OpenAIRE Search</ShortName>
+	<Description>Use OpenAIRE to search for research results</Description>
+	<Tags>OpenAIRE</Tags>
+	<Contact>https://www.openaire.eu/support/helpdesk</Contact>
+	<Url type="application/rss+xml"
+		template="${baseUrl}/api/publications?keywords={searchTerms}&amp;page={startPage}&amp;size={count}&amp;format=rss"/>
+</OpenSearchDescription>
\ No newline at end of file
Index: modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/pages/index.jsp
===================================================================
--- modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/pages/index.jsp	(nonexistent)
+++ modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/pages/index.jsp	(revision 48511)
@@ -0,0 +1,83 @@
+<html>
+	<head>
+		<title>XFire</title>
+	</head>
+	<body>
+		<h1>Ubuntu Rockz!!!</h1>
+		<p/>
+		
+		<H2>
+		<a href="services/">Search Service</a>
+		[<a href="services/searchWebService?wsdl">WSDL</a>]
+		</H2>
+	
+		<p>
+		<hr>
+		<p>
+		
+		<H2>Index Lookup</H2>
+		<form action="search.jsp" method="post">
+			<table border="0" cellpadding="0" cellspacing="0">
+				<tr><td>
+					<center>
+					<input type="text" name="query" size="40"/>
+					</center>
+				</td></tr>
+				<tr><td>
+					<center>
+					<input type="submit" name="submit"/>
+					<input type="reset" name="reset"/>
+					</center>
+				</td></tr>
+			</table>
+		</form>
+
+		<p>
+		<hr>
+		<p>
+		
+		<H2>Index Refine</H2>
+		<form action="refine.jsp" method="post">
+			<table border="0" cellpadding="0" cellspacing="0">
+				<tr><td>query</td><td>
+					<input type="text" name="query" size="40"/>
+				</td></tr>
+				<tr><td>fields</td><td>
+					<input type="text" name="fields" size="30"/><br>
+					<small>(comma or white space separated)</small>
+				</td></tr>
+				<tr><td>
+					<center>
+					<input type="submit" name="submit"/>
+					<input type="reset" name="reset"/>
+					</center>
+				</td></tr>
+			</table>
+		</form>
+		
+		<p>
+		<hr>
+		<p>
+		
+		<H2>Index Browse</H2>
+		<form action="browse.jsp" method="post">
+			<table border="0" cellpadding="0" cellspacing="0">
+				<tr><td>prefix</td><td>
+					<input type="text" name="query" size="30"/><br>
+					<small>(prefix query)</small>
+				</td></tr>
+				<tr><td>fields</td><td>
+					<input type="text" name="fields" size="30"/><br>
+					<small>(only first is used)</small>
+				</td></tr>
+				<tr><td>
+					<center>
+					<input type="submit" name="submit"/>
+					<input type="reset" name="reset"/>
+					</center>
+				</td></tr>
+			</table>
+		</form>
+		
+	</body>
+</html>
Index: modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/pages/refine.jsp
===================================================================
--- modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/pages/refine.jsp	(nonexistent)
+++ modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/pages/refine.jsp	(revision 48511)
@@ -0,0 +1,79 @@
+<%@page import="java.util.List"%>
+<%@page import="eu.dnetlib.domain.EPR"%>
+<%@page import="gr.uoa.di.driver.enabling.resultset.ResultSet"%>
+<%@page import="eu.dnetlib.api.data.SearchService"%>
+
+<jsp:useBean id="query" class="eu.dnetlib.data.search.web.Query" scope="request">
+<jsp:setProperty name="query" property="*"/>
+</jsp:useBean>
+
+<% if (query == null) { %>
+    <jsp:forward page="/"/>
+<% } %>
+
+
+<%@page import="org.apache.commons.lang.StringEscapeUtils"%>
+<%@page import="eu.dnetlib.data.search.web.SearchServiceContextUtils"%>
+<%@page import="gr.uoa.di.driver.enabling.resultset.ResultSetFactory"%>
+<html>
+	<head>
+		<title>Index Refine</title>
+	</head>
+	<body>
+		<h1>Index Refine</h1>
+		Refine for <b>
+		<% if (query.getQuery() == null || query.getQuery().length() == 0 ) { %>
+			(empty query)
+		<% } else { %>
+			<%=query.getQuery()%>
+		<% } %>
+		</b>
+		<% List<String> fields = query.parseFields(); %>
+		using <%=(fields==null)?0:fields.size()%>fields: <b><%=fields%></b>
+		in <a href="services/searchWebService">local search service</a>...<br>
+		
+<%
+	long time = System.currentTimeMillis();
+	SearchService search = SearchServiceContextUtils.getSearchService(request);
+%>
+	Created index endpoint in <%=System.currentTimeMillis()-time%> ms.<br>
+
+<%
+	time = System.currentTimeMillis();
+	EPR epr = search.refine(query.getQuery(), fields);
+%>
+	Index lookup lasted <%=System.currentTimeMillis()-time%> ms.<br>
+	Returned EPR: <pre><%=StringEscapeUtils.escapeHtml(epr.toString())%></pre><br>
+	
+<%
+	time = System.currentTimeMillis();
+	ResultSet<String> rs = SearchServiceContextUtils.getResultSetFactory(request).createResultSet(epr);
+	int count = rs.size();
+%>
+	Total records in result set: <%=count%><br>
+	Query Numof records lasted <%=System.currentTimeMillis()-time%> ms.<br>
+
+<%
+	time = System.currentTimeMillis();
+	List<String> list = null;
+	int MAX = 50;
+	if (count > 0) {
+		list = rs.getElements(1, Math.min(MAX, count));
+	}
+%>
+	Retrieve top-<%=MAX%> records lasted <%=System.currentTimeMillis()-time%> ms.<br>
+
+	Top-<%=MAX%> results:
+	<table>
+		<tr><th>Count</th><th>Record</th></tr>
+	<% for (int i = 0 ; i < MAX && i < count; i++ ) { %>
+		<tr>
+			<td><%=i+1%></td>
+			<td><pre><%=StringEscapeUtils.escapeHtml(list.get(i))%></pre></td>
+		</tr>
+	<% } %>
+	</table>
+	
+	</body>
+</html>
+
Index: modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/pages/error.jsp
===================================================================
--- modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/pages/error.jsp	(nonexistent)
+++ modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/pages/error.jsp	(revision 48511)
@@ -0,0 +1,36 @@
+<%@ page contentType="text/html; charset=utf-8" %>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+
+
+	<head>
+	<title>Error Page</title>
+
+		<%
+		  Throwable exception = (Throwable)
+		  		request.getAttribute("javax.servlet.error.exception");
+		  String message = (String)
+		  		request.getAttribute("javax.servlet.error.message");
+		  Integer statusCode = (Integer)
+		  		request.getAttribute("javax.servlet.error.status_code");
+		%>
+  		<b>Status Code : </b> <%=statusCode%> <br/>
+  		<b>Message : </b> <%=message%> <br/>
+  		
+  		<% while (exception != null) { %>
+			<!-- Caught Exception -->
+	  		<b>Exception : <%=exception.getMessage() %></b> <br/>
+	  		<%
+	  			StackTraceElement[] trace = exception.getStackTrace();
+				for (int i = 0; i < trace.length; i++) {
+			%>
+					<i>&nbsp;&nbsp; <%=trace[i]%></i><br/>	
+	  		<%
+				}
+				exception = exception.getCause();
+			}
+  			%>
+  		  		
+</body>
+</html>
Index: modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/pages/browse.jsp
===================================================================
--- modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/pages/browse.jsp	(nonexistent)
+++ modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/pages/browse.jsp	(revision 48511)
@@ -0,0 +1,79 @@
+<%@page import="java.util.List"%>
+<%@page import="eu.dnetlib.domain.EPR"%>
+<%@page import="gr.uoa.di.driver.enabling.resultset.ResultSet"%>
+<%@page import="eu.dnetlib.api.data.SearchService"%>
+
+<jsp:useBean id="query" class="eu.dnetlib.data.search.web.Query" scope="request">
+<jsp:setProperty name="query" property="*"/>
+</jsp:useBean>
+
+<% if (query == null) { %>
+    <jsp:forward page="/"/>
+<% } %>
+
+<%@page import="org.apache.commons.lang.StringEscapeUtils"%>
+<%@page import="eu.dnetlib.data.search.web.SearchServiceContextUtils"%>
+<%@page import="eu.dnetlib.domain.data.BrowseData"%>
+<%@page import="eu.dnetlib.api.data.BrowseDataNotAvailableException"%>
+<html>
+	<head>
+		<title>Index Browse</title>
+	</head>
+	<body>
+		<h1>Index Browse</h1>
+		Browse for <b>
+		<% if (query.getQuery() == null || query.getQuery().length() == 0 ) { %>
+			(empty query)
+		<% } else { %>
+			<%=query.getQuery()%>
+		<% } %>
+		</b>
+		<% List<String> fields = query.parseFields(); %>
+		<% String field = (fields==null)?null:fields.get(0); %>
+		<% if (field == null) { %>
+		<b>using no field</b>
+		<% } else { %>
+		<b>using field: <%=field %></b>
+		<% } %>
+		in <a href="services/searchWebService">local search service</a>...<br>
+		
+
+<%
+	long time = System.currentTimeMillis();
+	SearchService search = SearchServiceContextUtils.getSearchService(request);
+%>
+	Created index endpoint in <%=System.currentTimeMillis()-time%> ms.<br>
+
+<%
+	time = System.currentTimeMillis();
+	BrowseData data = null;
+	try {
+		data = search.browse(query.getQuery(), field);
+	} catch (BrowseDataNotAvailableException bdna) {
+		data = null;
+	}
+%>
+	Index lookup lasted <%=System.currentTimeMillis()-time%> ms.<br>
+	
+	<% if (data == null) { %>
+	<i>Browse results are currently being updated...</i>
+	<% } else { %>
+	Browse results:
+	<table>
+		<tr><th>Field</th><th>Value</th><th>Count</th></tr>
+		<%
+		for (String f : data.getFields()) {
+			List<Integer> counts = data.getFieldCounts(f);
+			List<String> values = data.getFieldValues(f);
+			for (int i=0; i<counts.size(); i++) {
+		%>
+		<tr>
+			<td><%=f%></td>
+			<td><%=values.get(i)%></td>
+			<td><%=counts.get(i)%></td>
+		</tr>
+		<% }} %>
+	</table>
+	<% } %>
+	</body>
+</html>
\ No newline at end of file
Index: modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/uoa-shadow-override.properties
===================================================================
--- modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/uoa-shadow-override.properties	(nonexistent)
+++ modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/uoa-shadow-override.properties	(revision 48511)
@@ -0,0 +1,10 @@
+services.search.mdFormat = DMF
+# just to make sure that it keeps the  default value
+
+services.search.infrastructure = shadow
+services.search.indexMode = solr
+services.search.mdFormat = TMF
+services.search.vocabulariesPath = /tmp/vocabularies/
+services.search.infrastructure = shadow
+services.registration.default.removeRegistration=false
+
Index: modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/dispatcher-servlet.xml
===================================================================
--- modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/dispatcher-servlet.xml	(nonexistent)
+++ modules/dnet-shadow-functionality-services/branches/beta/src/main/webapp/WEB-INF/dispatcher-servlet.xml	(revision 48511)
@@ -0,0 +1,17 @@
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+	xmlns:context="http://www.springframework.org/schema/context"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans
+	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+	http://www.springframework.org/schema/context
+	http://www.springframework.org/schema/context/spring-context-2.5.xsd">
+	
+	<import resource="classpath*:/eu/dnetlib/data/search/web/api/dispatcher-servlet.xml"/>
+
+    <bean id="viewResolver"
+          class="org.springframework.web.servlet.view.UrlBasedViewResolver">
+        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
+        <property name="prefix" value="/WEB-INF/pages/"/>
+        <property name="suffix" value=".jsp"/>
+    </bean>
+</beans>
Index: modules/dnet-shadow-functionality-services/branches/beta/src/main/resources/META-INF/services/javax.xml.transform.TransformerFactory
===================================================================
--- modules/dnet-shadow-functionality-services/branches/beta/src/main/resources/META-INF/services/javax.xml.transform.TransformerFactory	(nonexistent)
+++ modules/dnet-shadow-functionality-services/branches/beta/src/main/resources/META-INF/services/javax.xml.transform.TransformerFactory	(revision 48511)
@@ -0,0 +1 @@
+net.sf.saxon.TransformerFactoryImpl
\ No newline at end of file
