Index: modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/dsm/dao/DatasourceDaoImpl.java
===================================================================
--- modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/dsm/dao/DatasourceDaoImpl.java	(revision 51139)
+++ modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/dsm/dao/DatasourceDaoImpl.java	(revision 51140)
@@ -72,12 +72,12 @@
 			throws DsmException {
 
 		final Specification<DatasourceDbEntry> spec = dsSpec(requestSortBy, order, requestFilter);
-		return dsRepository.findAll(spec, new PageRequest(page, size));
+		return dsRepository.findAll(spec, PageRequest.of(page, size));
 	}
 
 	@Override
 	public DatasourceDbEntry getDs(final String dsId) throws DsmException {
-		return dsRepository.findOne(dsId);
+		return dsRepository.getOne(dsId);
 	}
 
 	@Override
@@ -104,12 +104,12 @@
 
 	@Override
 	public void deleteApi(final String dsId, final String apiId) throws DsmException {
-		final ApiDbEntry api = apiRepository.findOne(apiId);
+		final ApiDbEntry api = apiRepository.getOne(apiId);
 		if (!api.getRemovable()) {
 			throw new DsmException(HttpStatus.SC_UNAUTHORIZED, "api is not removable");
 		}
 
-		apiRepository.delete(apiId);
+		apiRepository.deleteById(apiId);
 		log.info(String.format("deleted api '%s'", apiId));
 	}
 
@@ -119,7 +119,7 @@
 	}
 
 	public boolean existDs(final String dsId) throws DsmException {
-		return dsRepository.exists(dsId);
+		return dsRepository.existsById(dsId);
 	}
 
 	@Override
@@ -131,7 +131,7 @@
 
 	@Override
 	public void deleteDs(final String dsId) {
-		dsRepository.delete(dsId);
+		dsRepository.deleteById(dsId);
 		log.info(String.format("deleted datasource '%s'", dsId));
 	}
 
@@ -158,7 +158,7 @@
 
 	@Override
 	public List<String> findApiBaseURLs(final RequestFilter requestFilter, final int page, final int size) throws DsmException {
-		final PageRequest pageable = new PageRequest(page, size);
+		final PageRequest pageable = PageRequest.of(page, size);
 		final Specification<DatasourceApiDbEntry> spec = apiSpec(requestFilter);
 		final Set<String> set = dsApiRepository.findAll(spec, pageable).getContent().stream()
 				.map(DatasourceApiDbEntry::getBaseurl)
Index: modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/dsm/domain/DatasourceDetails.java
===================================================================
--- modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/dsm/domain/DatasourceDetails.java	(revision 51139)
+++ modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/dsm/domain/DatasourceDetails.java	(revision 51140)
@@ -3,13 +3,13 @@
 import java.sql.Date;
 import java.util.Set;
 import javax.persistence.Transient;
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotBlank;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import org.hibernate.validator.constraints.Email;
 import org.hibernate.validator.constraints.Length;
-import org.hibernate.validator.constraints.NotBlank;
 
 /**
  * Created by claudio on 12/09/16.
Index: modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/dsm/domain/DatasourceDetailsUpdate.java
===================================================================
--- modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/dsm/domain/DatasourceDetailsUpdate.java	(revision 51139)
+++ modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/dsm/domain/DatasourceDetailsUpdate.java	(revision 51140)
@@ -1,13 +1,13 @@
 package eu.dnetlib.openaire.dsm.domain;
 
 import java.util.Set;
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotBlank;
 
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import org.hibernate.validator.constraints.Email;
 import org.hibernate.validator.constraints.Length;
-import org.hibernate.validator.constraints.NotBlank;
 
 /**
  * Created by claudio on 12/09/16.
Index: modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/dsm/domain/OrganizationDetails.java
===================================================================
--- modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/dsm/domain/OrganizationDetails.java	(revision 51139)
+++ modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/dsm/domain/OrganizationDetails.java	(revision 51140)
@@ -1,10 +1,11 @@
 package eu.dnetlib.openaire.dsm.domain;
 
+import javax.validation.constraints.NotBlank;
+
 import com.fasterxml.jackson.annotation.JsonAutoDetect;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.hibernate.validator.constraints.Length;
-import org.hibernate.validator.constraints.NotBlank;
 
 @JsonAutoDetect
 @ApiModel(value = "Organization info model", description = "provides information about the organization")
Index: modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/funders/FunderDao.java
===================================================================
--- modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/funders/FunderDao.java	(revision 51139)
+++ modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/funders/FunderDao.java	(revision 51140)
@@ -25,7 +25,7 @@
 	}
 
 	public List<FunderDetails> listFunderDetails(final int page, final int size) throws FundersApiException {
-		return funderRepository.findAll(new PageRequest(page, size))
+		return funderRepository.findAll(PageRequest.of(page, size))
 				.getContent()
 				.stream()
 				.map(ConversionUtils::asFunderDetails)
@@ -33,7 +33,7 @@
 	}
 
 	public List<String> listFunderIds(final int page, final int size) throws FundersApiException {
-		return funderRepository.findAll(new PageRequest(page, size))
+		return funderRepository.findAll(PageRequest.of(page, size))
 				.getContent()
 				.stream()
 				.map(f -> f.getId())
Index: modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/common/RFC3339DateFormat.java
===================================================================
--- modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/common/RFC3339DateFormat.java	(revision 51139)
+++ modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/common/RFC3339DateFormat.java	(revision 51140)
@@ -1,19 +1,60 @@
 package eu.dnetlib.openaire.common;
 
 import java.text.FieldPosition;
-import java.util.Date;
+import java.util.*;
 
-import com.fasterxml.jackson.databind.util.ISO8601DateFormat;
-import com.fasterxml.jackson.databind.util.ISO8601Utils;
+import com.fasterxml.jackson.databind.util.StdDateFormat;
 
-public class RFC3339DateFormat extends ISO8601DateFormat {
+public class RFC3339DateFormat extends StdDateFormat {
 
-  // Same as ISO8601DateFormat but serializing milliseconds.
-  @Override
-  public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) {
-    String value = ISO8601Utils.format(date, true);
-    toAppendTo.append(value);
-    return toAppendTo;
-  }
+	private static final TimeZone TIMEZONE_Z = TimeZone.getTimeZone("UTC");
 
+	// Same as ISO8601DateFormat but serializing milliseconds.
+	@Override
+	public StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition) {
+		String value = format(date, true, TIMEZONE_Z, Locale.US);
+		toAppendTo.append(value);
+		return toAppendTo;
+	}
+
+	/**
+	 * Format date into yyyy-MM-ddThh:mm:ss[.sss][Z|[+-]hh:mm]
+	 *
+	 * @param date   the date to format
+	 * @param millis true to include millis precision otherwise false
+	 * @param tz     timezone to use for the formatting (UTC will produce 'Z')
+	 * @return the date formatted as yyyy-MM-ddThh:mm:ss[.sss][Z|[+-]hh:mm]
+	 */
+	private static String format(Date date, boolean millis, TimeZone tz, Locale loc) {
+		Calendar calendar = new GregorianCalendar(tz, loc);
+		calendar.setTime(date);
+
+		// estimate capacity of buffer as close as we can (yeah, that's pedantic ;)
+		StringBuilder sb = new StringBuilder(30);
+		sb.append(String.format(
+				"%04d-%02d-%02dT%02d:%02d:%02d",
+				calendar.get(Calendar.YEAR),
+				calendar.get(Calendar.MONTH) + 1,
+				calendar.get(Calendar.DAY_OF_MONTH),
+				calendar.get(Calendar.HOUR_OF_DAY),
+				calendar.get(Calendar.MINUTE),
+				calendar.get(Calendar.SECOND)
+		));
+		if (millis) {
+			sb.append(String.format(".%03d", calendar.get(Calendar.MILLISECOND)));
+		}
+
+		int offset = tz.getOffset(calendar.getTimeInMillis());
+		if (offset != 0) {
+			int hours = Math.abs((offset / (60 * 1000)) / 60);
+			int minutes = Math.abs((offset / (60 * 1000)) % 60);
+			sb.append(String.format("%c%02d:%02d",
+					(offset < 0 ? '-' : '+'),
+					hours, minutes));
+		} else {
+			sb.append('Z');
+		}
+		return sb.toString();
+	}
+
 }
Index: modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/common/GenericArrayUserType.java
===================================================================
--- modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/common/GenericArrayUserType.java	(revision 51139)
+++ modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/openaire/common/GenericArrayUserType.java	(revision 51140)
@@ -4,7 +4,7 @@
 import java.sql.*;
 
 import org.hibernate.HibernateException;
-import org.hibernate.engine.spi.SessionImplementor;
+import org.hibernate.engine.spi.SharedSessionContractImplementor;
 import org.hibernate.usertype.UserType;
 
 /**
@@ -47,12 +47,10 @@
 	}
 
 	@Override
-	public boolean isMutable() {
-		return true;
-	}
-
-	@Override
-	public Object nullSafeGet(ResultSet resultSet, String[] names, SessionImplementor session, Object owner)
+	public Object nullSafeGet(final ResultSet resultSet,
+			final String[] names,
+			final SharedSessionContractImplementor sharedSessionContractImplementor,
+			final Object o)
 			throws HibernateException, SQLException {
 		if (resultSet.wasNull()) {
 			return null;
@@ -68,7 +66,10 @@
 	}
 
 	@Override
-	public void nullSafeSet(PreparedStatement statement, Object value, int index, SessionImplementor session)
+	public void nullSafeSet(final PreparedStatement statement,
+			final Object value,
+			final int index,
+			final SharedSessionContractImplementor session)
 			throws HibernateException, SQLException {
 		Connection connection = statement.getConnection();
 		if (value == null) {
@@ -82,6 +83,11 @@
 	}
 
 	@Override
+	public boolean isMutable() {
+		return true;
+	}
+
+	@Override
 	public Object replace(Object original, Object target, Object owner) throws HibernateException {
 		return original;
 	}
Index: modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/metrics/WebMvcConfig.java
===================================================================
--- modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/metrics/WebMvcConfig.java	(revision 51139)
+++ modules/dnet-openaire-exporter/trunk/src/main/java/eu/dnetlib/metrics/WebMvcConfig.java	(revision 51140)
@@ -6,10 +6,10 @@
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.servlet.HandlerInterceptor;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
 @Configuration
-public class WebMvcConfig extends WebMvcConfigurerAdapter {
+public class WebMvcConfig implements WebMvcConfigurer {
 
 	@Autowired
 	private List<MetricInterceptor> interceptors;
@@ -23,4 +23,5 @@
 					registry.addInterceptor(handlerInterceptor);
 				});
 	}
+
 }
Index: modules/dnet-openaire-exporter/trunk/src/main/resources/application.properties
===================================================================
--- modules/dnet-openaire-exporter/trunk/src/main/resources/application.properties	(revision 51139)
+++ modules/dnet-openaire-exporter/trunk/src/main/resources/application.properties	(revision 51140)
@@ -1,12 +1,13 @@
 # COMMON
-server.contextPath                          =   /openaire
+server.servlet.context-path                 =   /openaire
 server.port                                 =   8080
 
 spring.datasource.driverClassName           =   org.postgresql.Driver
 spring.jpa.database-platform                =   org.hibernate.dialect.PostgreSQL9Dialect
-spring.jpa.show-sql                         =   true
+spring.jpa.show-sql                         =   false
 spring.jpa.properties.hibernate.format_sql  =   true
 spring.jpa.hibernate.ddl-auto               =   validate
+#spring.mvc.dispatch-options-request         =   true
 
 # SWAGGER
 spring.jackson.date-format                              =   eu.dnetlib.openaire.common.RFC3339DateFormat
Index: modules/dnet-openaire-exporter/trunk/pom.xml
===================================================================
--- modules/dnet-openaire-exporter/trunk/pom.xml	(revision 51139)
+++ modules/dnet-openaire-exporter/trunk/pom.xml	(revision 51140)
@@ -3,7 +3,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>eu.dnetlib</groupId>
 	<artifactId>dnet-openaire-exporter</artifactId>
-	<version>1.0.9-SNAPSHOT</version>
+	<version>1.1.0-SNAPSHOT</version>
 	<scm>
 	  <developerConnection>scm:svn:https://svn.driver.research-infrastructures.eu/driver/dnet45/modules/dnet-openaire-exporter/trunk</developerConnection>
     </scm>
@@ -24,7 +24,7 @@
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>1.5.2.RELEASE</version>
+		<version>2.0.0.RELEASE</version>
 	</parent>
 
 	<repositories>
@@ -175,7 +175,7 @@
 			<dependency>
 				<groupId>com.fasterxml.jackson.datatype</groupId>
 				<artifactId>jackson-datatype-joda</artifactId>
-				<version>2.6.6</version>
+				<version>2.9.4</version>
 			</dependency>
 			<dependency>
 				<groupId>joda-time</groupId>
@@ -405,29 +405,6 @@
 					<executable>true</executable>
 				</configuration>
 			</plugin>
-<!--
-			<plugin>
-				<groupId>com.spotify</groupId>
-				<artifactId>dockerfile-maven-plugin</artifactId>
-				<version>${dockerfile-maven-version}</version>
-				<executions>
-					<execution>
-						<id>default</id>
-						<goals>
-							<goal>build</goal>
-							<goal>push</goal>
-						</goals>
-					</execution>
-				</executions>
-				<configuration>
-					<repository>spotify/foobar</repository>
-					<tag>${project.version}</tag>
-					<buildArgs>
-						<JAR_FILE>${project.build.finalName}.jar</JAR_FILE>
-					</buildArgs>
-				</configuration>
-			</plugin>
--->
 		</plugins>
 	</build>
 
