From 568675c75f842af7a8e81d6ed81025f1333d2f08 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cam=20Sa=C3=BCl?= <cammsaul@gmail.com>
Date: Wed, 30 Sep 2015 14:33:15 -0700
Subject: [PATCH] Fix loading `version.properties` from uberjar. Fixes #1057

---
 src/metabase/config.clj | 2 +-
 src/metabase/core.clj   | 9 ++++-----
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/src/metabase/config.clj b/src/metabase/config.clj
index 45aa07d2275..519455c6401 100644
--- a/src/metabase/config.clj
+++ b/src/metabase/config.clj
@@ -81,7 +81,7 @@
    :short (-> (shell/sh "./version" "--short") :out s/trim)})
 
 (defn- version-info-from-properties-file []
-  (with-open [reader (io/reader "resources/version.properties")]
+  (with-open [reader (io/reader (io/resource "version.properties"))]
     (let [props (java.util.Properties.)]
       (.load props reader)
       (into {} (for [[k v] props]
diff --git a/src/metabase/core.clj b/src/metabase/core.clj
index 61e8b5e1ea5..c068c4d4a47 100644
--- a/src/metabase/core.clj
+++ b/src/metabase/core.clj
@@ -1,7 +1,8 @@
 ;; -*- comment-column: 35; -*-
 (ns metabase.core
   (:gen-class)
-  (:require [clojure.string :as s]
+  (:require [clojure.java.io :as io]
+            [clojure.string :as s]
             [clojure.tools.logging :as log]
             [colorize.core :as color]
             [ring.adapter.jetty :as ring-jetty]
@@ -160,11 +161,9 @@
   (when-not (sample-dataset-id)
     (try
       (log/info "Loading sample dataset...")
-      (let [resource (-> (Thread/currentThread) ; hunt down the sample dataset DB file inside the current JAR
-                         .getContextClassLoader
-                         (.getResource sample-dataset-filename))]
+      (let [resource (io/resource sample-dataset-filename)]
         (if-not resource
-          (log/error (format "Can't load sample dataset: the DB file '%s' can't be found by the ClassLoader." sample-dataset-filename))
+          (log/error (format "Can't load sample dataset: the DB file '%s' can't be found." sample-dataset-filename))
           (let [h2-file (-> (.getPath resource)
                             (s/replace #"^file:" "zip:")        ; to connect to an H2 DB inside a JAR just replace file: with zip:
                             (s/replace #"\.mv\.db$" "")         ; strip the .mv.db suffix from the path
-- 
GitLab