Explorar o código

Resolve #2589 (#2601)

* Update dependency mongojack to latest (2.6.1)

* Remove exception handling arount MongoClient()

MongoClient(String, int) constructor no more throws UnknownHostException

* Change findAndModify() for rules conformance

The violation is pointed out here:  #2589
Disclaimer: Please note the possibility better implementations to exits. I don't have experience with MongoDB.

* Add missing closing bracket

* Add missing import

* Call correct name of the method
Radoslav Petrov %!s(int64=8) %!d(string=hai) anos
pai
achega
cc6768c351

+ 1 - 1
frameworks/Java/dropwizard/pom.xml

@@ -12,7 +12,7 @@
 
         <dropwizard.version>1.0.3</dropwizard.version>
         <mysql-connector-java.version>5.1.38</mysql-connector-java.version>
-        <mongojack.version>2.3.0</mongojack.version>
+        <mongojack.version>2.6.1</mongojack.version>
         <postgres-jdbc.version>9.4.1208</postgres-jdbc.version>
 
         <main.class>com.example.helloworld.HelloWorldService</main.class>

+ 1 - 5
frameworks/Java/dropwizard/src/main/java/com/example/helloworld/config/MongoClientFactory.java

@@ -35,10 +35,6 @@ public class MongoClientFactory {
     }
 
     public MongoClient build() {
-        try {
-            return new MongoClient(host, port);
-        } catch (UnknownHostException e) {
-            throw new RuntimeException(e);
-        }
+        return new MongoClient(host, port);
     }
 }

+ 5 - 8
frameworks/Java/dropwizard/src/main/java/com/example/helloworld/db/mongo/WorldMongoImpl.java

@@ -3,6 +3,7 @@ package com.example.helloworld.db.mongo;
 import com.example.helloworld.db.WorldDAO;
 import com.example.helloworld.db.model.World;
 import com.example.helloworld.resources.Helper;
+import org.mongojack.DBUpdate;
 import org.mongojack.DBProjection;
 import org.mongojack.DBQuery;
 import org.mongojack.DBUpdate;
@@ -23,14 +24,10 @@ public class WorldMongoImpl implements WorldDAO {
 
     @Override
     public World findAndModify(int worldId, int newRandomNumber) {
-        return worldCollection.findAndModify(
-                DBQuery.is("_id", worldId),
-                DBProjection.include("_id", "randomNumber"),
-                null,
-                false,
-                DBUpdate.set("randomNumber", newRandomNumber),
-                true,
-                false);
+        World theOne = findById(worldId);
+        theOne.setRandomNumber(newRandomNumber);
+        worldCollection.updateById(theOne.getId(), DBUpdate.set("randomNumber", theOne.getRandomNumber()));
+        return theOne;
 
     }