[SECARSP-117] *update prod profile, *change geoReader for load geolite db
authorm.dalakov <m.dalakov@samsung.com>
Mon, 5 Mar 2018 13:44:42 +0000 (15:44 +0200)
committerDmytro Lomtiev <d.lomtev@samsung.com>
Fri, 16 Mar 2018 14:17:52 +0000 (16:17 +0200)
Change-Id: If5c10f706e8ff7a2a374e35181d783854a0cc5c3

server/src/main/docker/app.yml
server/src/main/java/com/samsung/samserver/config/GeoIPConfiguration.java

index 27a8641..1eff8ac 100644 (file)
@@ -6,6 +6,8 @@ services:
             - SPRING_PROFILES_ACTIVE=prod,swagger
             - SPRING_DATASOURCE_URL=jdbc:postgresql://samserver-postgresql:5432/samserver
             - JHIPSTER_SLEEP=10 # gives time for the database to boot before the application
+        ports:
+            - 11000:11000
     samserver-postgresql:
         extends:
             file: postgresql.yml
index 6018867..b8d8327 100644 (file)
@@ -6,9 +6,11 @@
 package com.samsung.samserver.config;
 
 import com.maxmind.geoip2.DatabaseReader;
-import com.maxmind.db.CHMCache;
 import com.maxmind.db.Reader;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.*;
+import org.springframework.core.io.ResourceLoader;
+import org.slf4j.*;
 import java.io.*;
 
 /**
@@ -20,14 +22,28 @@ import java.io.*;
 @Configuration
 public class GeoIPConfiguration {
 
+    private static final Logger log = LoggerFactory.getLogger(GeoIPConfiguration.class);
+
+    @Autowired
+    private ResourceLoader resourceLoader;
+
     @Bean
-    public DatabaseReader geoReader() throws IOException {
+    public DatabaseReader geoReader() {
+        DatabaseReader databaseReader = null;
+        try {
+            log.info("trying to load geo database...");//NOSONAR
 
-        return new DatabaseReader.Builder(
-            new File(getClass().getClassLoader().getResource("geolite2/GeoLite2-City.mmdb").getFile()))
-                .withCache(new CHMCache())
+            databaseReader = new DatabaseReader
+                .Builder(resourceLoader.getResource("classpath:geolite2/GeoLite2-City.mmdb").getInputStream())
                 .fileMode(Reader.FileMode.MEMORY)
                 .build();
+
+            log.info("database was loaded successfully.");//NOSONAR
+
+        } catch (IOException | NullPointerException e) {
+            log.error("database reader cound not be initialized. ", e);
+        }
+        return databaseReader;
     }
 
 }