Skip to content

Commit 0e07c06

Browse files
committed
fix 2.12 cross build issues
1 parent 306693a commit 0e07c06

File tree

3 files changed

+29
-16
lines changed

3 files changed

+29
-16
lines changed

src/main/scala/com/sfxcode/nosql/mongo/bson/BsonConverter.scala

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import java.util.Date
66

77
import org.mongodb.scala.Document
88
import org.mongodb.scala.bson.BsonArray.fromIterable
9-
import org.mongodb.scala.bson._
109
import org.mongodb.scala.bson.{ObjectId, _}
1110

1211
import scala.collection.JavaConverters._
@@ -29,10 +28,14 @@ object BsonConverter {
2928
val newKey = newKeyFromRelation(key)
3029
val relation = relationKey(key)
3130

32-
if (document.contains(relation) && documentValueOption(document, relation)
33-
.isInstanceOf[Option[Document]]) {
34-
val relatedDocument = documentValueOption(document, relation).asInstanceOf[Option[Document]].get
35-
documentValueOption(relatedDocument, newKey)
31+
if (document.contains(relation) && documentValueOption(document, relation).isDefined) {
32+
val value = documentValueOption(document, relation).get
33+
value match {
34+
case document: Document =>
35+
documentValueOption(document, newKey)
36+
case _ =>
37+
None
38+
}
3639
}
3740
else {
3841
None
@@ -48,9 +51,9 @@ object BsonConverter {
4851
}
4952

5053
def updateDocumentValue(document: Document, key: String, value: Any): Document = {
51-
val doc = org.mongodb.scala.bson.collection.mutable.Document(document)
54+
val doc = org.mongodb.scala.bson.collection.mutable.Document(document.toJson())
5255
val result = updateDocumentValueInternal(doc, key, value)
53-
Document(result)
56+
Document(result.toJson())
5457
}
5558

5659
private def updateDocumentValueInternal(
@@ -64,11 +67,16 @@ object BsonConverter {
6467
val relation = relationKey(key)
6568

6669
var relatedDocument = Document()
67-
val relationValue = documentValueOption(Document(document), relation)
68-
if (relationValue.isDefined && relationValue.isInstanceOf[Option[Document]]) {
69-
relatedDocument = relationValue.asInstanceOf[Option[Document]].get
70+
val relationValue = documentValueOption(Document(document.toJson()), relation)
71+
if (relationValue.isDefined) {
72+
val value = relationValue.get
73+
value match {
74+
case document: Document =>
75+
relatedDocument = document
76+
case _ =>
77+
}
7078
}
71-
val mutableDoc = org.mongodb.scala.bson.collection.mutable.Document(relatedDocument)
79+
val mutableDoc = org.mongodb.scala.bson.collection.mutable.Document.apply(relatedDocument.toJson())
7280
document.put(relation, mutableDoc)
7381
if (root.isEmpty)
7482
updateDocumentValueInternal(mutableDoc, newKey, value, Some(document))

src/main/scala/com/sfxcode/nosql/mongo/database/MongoIndex.scala

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.sfxcode.nosql.mongo.database
33
import java.util.Date
44

55
import com.sfxcode.nosql.mongo.operation.ObservableIncludes
6+
import com.typesafe.scalalogging.LazyLogging
67
import org.mongodb.scala.ListIndexesObservable
78
import org.mongodb.scala.model.IndexOptions
89

@@ -21,7 +22,7 @@ case class MongoIndex(
2122
map: Map[String, Any]
2223
)
2324

24-
object MongoIndex extends ObservableIncludes {
25+
object MongoIndex extends ObservableIncludes with LazyLogging {
2526

2627
def indexOptionsWithName(name: Option[String]): IndexOptions =
2728
if (name.isDefined) {
@@ -68,6 +69,10 @@ object MongoIndex extends ObservableIncludes {
6869
indexOptions
6970
)
7071
)
72+
catch {
73+
case e: Exception => logger.error(e.getMessage, e)
74+
}
75+
7176
result
7277
}
7378

src/test/scala/com/sfxcode/nosql/mongo/bson/BsonConverterSpec.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ class BsonConverterSpec extends Specification {
6262
}
6363

6464
"evaluate dot notation" in {
65-
val document: mutable.Document = mutable.Document(Document())
65+
val document: mutable.Document = mutable.Document()
6666
val secondLevelDocument = mutable.Document()
6767
secondLevelDocument.put("test", 42)
6868
document.put("secondLevelDocument", secondLevelDocument)
@@ -71,13 +71,13 @@ class BsonConverterSpec extends Specification {
7171

7272
document.get("secondLevelDocument.test") must beNone
7373

74-
val v = BsonConverter.documentValueOption(Document(document), "secondLevelDocument.test")
74+
val v = BsonConverter.documentValueOption(Document(document.toJson()), "secondLevelDocument.test")
7575

7676
true must beTrue
7777
}
7878

7979
"evaluate get with dot notation" in {
80-
val document: mutable.Document = mutable.Document(Document())
80+
val document: mutable.Document = mutable.Document()
8181
val secondLevelDocument = mutable.Document()
8282
secondLevelDocument.put("test", 42)
8383
document.put("secondLevelDocument", secondLevelDocument)
@@ -86,7 +86,7 @@ class BsonConverterSpec extends Specification {
8686

8787
document.get("secondLevelDocument.test") must beNone
8888

89-
val v = BsonConverter.documentValueOption(Document(document), "secondLevelDocument.test")
89+
val v = BsonConverter.documentValueOption(Document(document.toJson()), "secondLevelDocument.test")
9090

9191
true must beTrue
9292
}

0 commit comments

Comments
 (0)