Index: modules/dnet-mapreduce-jobs/trunk/src/test/java/eu/dnetlib/data/mapreduce/hbase/oai/OAIFeedMapperTest.java
===================================================================
--- modules/dnet-mapreduce-jobs/trunk/src/test/java/eu/dnetlib/data/mapreduce/hbase/oai/OAIFeedMapperTest.java	(revision 48891)
+++ modules/dnet-mapreduce-jobs/trunk/src/test/java/eu/dnetlib/data/mapreduce/hbase/oai/OAIFeedMapperTest.java	(revision 48892)
@@ -17,7 +17,6 @@
 import eu.dnetlib.miscutils.datetime.DateUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.hadoop.mapreduce.Counter;
-import org.apache.solr.common.util.DateUtil;
 import org.dom4j.DocumentException;
 import org.junit.Before;
 import org.junit.Test;
@@ -72,7 +71,9 @@
 
 		String feedDateString = DateUtils.now_ISO8601();
 		try {
-			feedDate = DateUtil.parseDate(feedDateString);
+			feedDate = org.apache.commons.lang.time.DateUtils.parseDate(
+					feedDateString,
+					new String[]{ "yyyy-MM-dd'T'HH:mm:ssXXX", "yyyy-MM-dd'T'HH:mm:ssZ" });
 		} catch (ParseException e) {
 			e.printStackTrace(System.err);
 			throw new RuntimeException(e);
Index: modules/dnet-mapreduce-jobs/trunk/src/main/java/eu/dnetlib/data/mapreduce/hbase/index/IndexFeedMapper.java
===================================================================
--- modules/dnet-mapreduce-jobs/trunk/src/main/java/eu/dnetlib/data/mapreduce/hbase/index/IndexFeedMapper.java	(revision 48891)
+++ modules/dnet-mapreduce-jobs/trunk/src/main/java/eu/dnetlib/data/mapreduce/hbase/index/IndexFeedMapper.java	(revision 48892)
@@ -1,9 +1,14 @@
 package eu.dnetlib.data.mapreduce.hbase.index;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.util.List;
 import java.util.Map.Entry;
+import java.util.zip.GZIPOutputStream;
 
+import eu.dnetlib.functionality.index.solr.feed.ResultTransformer;
+import eu.dnetlib.functionality.index.solr.feed.ResultTransformer.Mode;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.commons.logging.Log;
@@ -12,7 +17,7 @@
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.mapreduce.Mapper;
 import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.impl.CloudSolrServer;
+import org.apache.solr.client.solrj.impl.CloudSolrClient;
 import org.apache.solr.client.solrj.response.SolrPingResponse;
 import org.apache.solr.client.solrj.response.UpdateResponse;
 import org.apache.solr.common.SolrInputDocument;
@@ -32,7 +37,7 @@
 
 	private InputDocumentFactory documentFactory;
 
-	private CloudSolrServer solrServer;
+	private CloudSolrClient solrServer;
 
 	private String version;
 
@@ -87,7 +92,9 @@
 			try {
 				count++;
 				log.info("initializing solr server...");
-				solrServer = new CloudSolrServer(baseURL);
+				solrServer = new CloudSolrClient.Builder()
+						.withZkHost(baseURL)
+						.build();
 
 				solrServer.connect();
 
@@ -103,7 +110,7 @@
 
 			} catch (final Throwable e) {
 				if (solrServer != null) {
-					solrServer.shutdown();
+					solrServer.close();
 				}
 				context.getCounter("index init", e.getMessage()).increment(1);
 				log.error(String.format("failed to init solr client wait %dms, error:\n%s", backoffTimeMs, ExceptionUtils.getStackTrace(e)));
@@ -123,7 +130,13 @@
 
 		try {
 			indexRecord = dmfToRecord.evaluate(value.toString());
-			doc = documentFactory.parseDocument(version, indexRecord, dsId, "dnetResult");
+			doc = documentFactory.parseDocument(version, indexRecord, dsId, "dnetResult", new ResultTransformer(Mode.base64) {
+				@Override
+				public String apply(final String s) {
+
+					return org.apache.solr.common.util.Base64.byteArrayToBase64(zip(s));
+				}
+			});
 			if ((doc == null) || doc.isEmpty()) throw new EmptySolrDocumentException();
 
 		} catch (final Throwable e) {
@@ -146,6 +159,21 @@
 		}
 	}
 
+	public static byte[] zip(final String s) {
+		if ((s == null) || (s.length() == 0)) {
+			throw new IllegalArgumentException("Cannot zip null or empty string");
+		}
+
+		try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream()) {
+			try (GZIPOutputStream gzipOutputStream = new GZIPOutputStream(byteArrayOutputStream)) {
+				gzipOutputStream.write(s.getBytes(StandardCharsets.UTF_8));
+			}
+			return byteArrayOutputStream.toByteArray();
+		} catch(IOException e) {
+			throw new RuntimeException("Failed to zip content", e);
+		}
+	}
+
 	private void addDocument(final Context context, final SolrInputDocument doc) throws SolrServerException, IOException, EmptySolrDocumentException {
 		buffer.add(doc);
 		if (buffer.size() >= bufferFlushThreshold) {
@@ -182,7 +210,7 @@
 			}
 			log.info("\nwaiting " + shutdownWaitTime + "ms before shutdown");
 			Thread.sleep(shutdownWaitTime);
-			solrServer.shutdown();
+			solrServer.close();
 		} catch (final SolrServerException e) {
 			log.error("couldn't shutdown server " + e.getMessage());
 		}
Index: modules/dnet-mapreduce-jobs/trunk/src/main/java/eu/dnetlib/data/mapreduce/hbase/index/DedupIndexFeedMapper.java
===================================================================
--- modules/dnet-mapreduce-jobs/trunk/src/main/java/eu/dnetlib/data/mapreduce/hbase/index/DedupIndexFeedMapper.java	(revision 48891)
+++ modules/dnet-mapreduce-jobs/trunk/src/main/java/eu/dnetlib/data/mapreduce/hbase/index/DedupIndexFeedMapper.java	(revision 48892)
@@ -15,7 +15,7 @@
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.io.Text;
 import org.apache.solr.client.solrj.SolrServerException;
-import org.apache.solr.client.solrj.impl.CloudSolrServer;
+import org.apache.solr.client.solrj.impl.CloudSolrClient;
 import org.apache.solr.client.solrj.response.SolrPingResponse;
 import org.apache.solr.client.solrj.response.UpdateResponse;
 import org.apache.solr.common.SolrInputDocument;
@@ -35,7 +35,7 @@
 
 	private static final Log log = LogFactory.getLog(DedupIndexFeedMapper.class); // NOPMD by marko on 11/24/08 5:02 PM
 
-	private CloudSolrServer solrServer;
+	private CloudSolrClient solrServer;
 
 	private String dsId;
 
@@ -99,7 +99,9 @@
 		while (true) {
 			try {
 				log.info("initializing solr server...");
-				solrServer = new CloudSolrServer(baseURL);
+				solrServer = new CloudSolrClient.Builder()
+					.withZkHost(baseURL)
+					.build();
 
 				solrServer.connect();
 
@@ -115,7 +117,7 @@
 
 			} catch (final Throwable e) {
 				if (solrServer != null) {
-					solrServer.shutdown();
+					solrServer.close();
 				}
 				context.getCounter("index init", e.getMessage()).increment(1);
 				log.info(String.format("failed to init solr client wait %dms", backoffTimeMs));
@@ -205,7 +207,7 @@
 			}
 			log.info("\nwaiting " + shutdownWaitTime + "ms before shutdown");
 			Thread.sleep(shutdownWaitTime);
-			solrServer.shutdown();
+			solrServer.close();
 		} catch (final SolrServerException e) {
 			System.err.println("couldn't shutdown server " + e.getMessage());
 		}
Index: modules/dnet-mapreduce-jobs/trunk/src/main/java/eu/dnetlib/data/mapreduce/hbase/oai/OaiFeedMapper.java
===================================================================
--- modules/dnet-mapreduce-jobs/trunk/src/main/java/eu/dnetlib/data/mapreduce/hbase/oai/OaiFeedMapper.java	(revision 48891)
+++ modules/dnet-mapreduce-jobs/trunk/src/main/java/eu/dnetlib/data/mapreduce/hbase/oai/OaiFeedMapper.java	(revision 48892)
@@ -14,7 +14,10 @@
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Multimap;
-import com.mongodb.*;
+import com.mongodb.BasicDBObject;
+import com.mongodb.DBObject;
+import com.mongodb.MongoClient;
+import com.mongodb.WriteConcern;
 import com.mongodb.client.MongoCollection;
 import com.mongodb.client.MongoDatabase;
 import eu.dnetlib.data.mapreduce.JobParams;
@@ -29,10 +32,10 @@
 import eu.dnetlib.miscutils.functional.xml.IndentXmlString;
 import org.apache.commons.io.output.ByteArrayOutputStream;
 import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.time.DateUtils;
 import org.apache.hadoop.io.NullWritable;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.mapreduce.Mapper;
-import org.apache.solr.common.util.DateUtil;
 import org.bson.types.Binary;
 
 public class OaiFeedMapper extends Mapper<Text, Text, NullWritable, NullWritable> {
@@ -113,7 +116,7 @@
 
 		String feedDateString = context.getConfiguration().get(JobParams.OAI_FEED_DATE);
 		try {
-			feedDate = DateUtil.parseDate(feedDateString);
+			feedDate = DateUtils.parseDate(feedDateString, new String[]{"yyyy-MM-dd\'T\'hh:mm:ss\'Z\'"});
 		} catch (ParseException e) {
 			e.printStackTrace(System.err);
 			throw new RuntimeException(e);
Index: modules/dnet-mapreduce-jobs/trunk/pom.xml
===================================================================
--- modules/dnet-mapreduce-jobs/trunk/pom.xml	(revision 48891)
+++ modules/dnet-mapreduce-jobs/trunk/pom.xml	(revision 48892)
@@ -80,17 +80,6 @@
 			<version>[1.0.0,2.0.0)</version>
 		</dependency>
 		<dependency>
-			<groupId>org.apache.solr</groupId>
-			<artifactId>solr-solrj</artifactId>
-			<version>[4.10.4]</version>
-			<exclusions>
-				<exclusion>
-					<artifactId>wstx-asl</artifactId>
-					<groupId>org.codehaus.woodstox</groupId>
-				</exclusion>
-			</exclusions>
-		</dependency>
-		<dependency>
 			<groupId>com.mycila</groupId>
 			<artifactId>xmltool</artifactId>
 			<version>3.3</version>
