   [project-dependencies]
   (let [entry-list (map library-entry project-dependencies)]
     (make-leiningen-classpath-container entry-list)))
+
+;; copied from ubersource
+(defn- find-transitive-deps
+  [deps repositories]
+  (->> (aether/resolve-dependencies
+        :coordinates deps
+        :repositories repositories)
+      keys
+      set))
+
+;; copied from ubersource
+(defn- resolve-artifact
+  [dep repositories]
+  (->> (find-transitive-deps [dep] repositories)
+      (filter #(= % dep))
+      first))
+
+;; copied from ubersource
+(defn- try-resolve-sources-artifact!
+  [dep repositories]
+  (try
+    (resolve-artifact (concat dep [:classifier "sources"]) repositories)
+    (catch DependencyResolutionException ex
+      nil)))
+
+(defn- artifacts-entry
+  [dep repositories]
+  (let [main (resolve-artifact dep repositories)
+        source (try-resolve-sources-artifact! dep repositories)]
+    (if source [(-> main meta :file)
+                (-> source meta :file)]
+               nil)))
+
+(defn get-source-map
+  "I don't do a lot."
+  [{:keys [repositories dependencies] :as project} & args]
+  (let [dep (find-transitive-deps dependencies repositories)]
+    (into {} (remove nil? (map #(artifacts-entry % repositories) dep)))))
 
 (defn resolve-dependencies
   "ADAPTED FROM LEININGEN-CORE resolve-dependencies.


(defn- library-entry
  "Wrapper for the ccw.leiningen.util/library-entry function"
  [{:keys [path native-path]}]
  (let [params {:path path}
        params (if native-path
                     (update-in params [:extra-attributes] 
                                assoc jdt/native-library (jdt/native-library-path native-path))

(defn deser-dep [dep-map]
  (-> dep-map 
    (update-in [:path] #(File. ^String %))
    (update-in [:native-path] #(File. ^String %))
    (update-in [:source-attachment-path] #(when % (File. ^String %)))))

(defn load-project-dependencies
  "Retrieve from disk (from the Plugin state directory), the deps for the project.
