Browse Source

bug fixing and optimization

Sven Kubiak 10 years ago
parent
commit
4b5705d6e2

+ 1 - 1
frameworks/Java/mangooio/benchmark_config.json

@@ -7,7 +7,7 @@
       "db_url": "/db",
       "query_url": "/queries?queries=",
       "fortune_url": "/fortunes",
-      "update_url": "/update?queries=",
+      "update_url": "/updates?queries=",
       "plaintext_url": "/plaintext",
       "port": 8080,
       "approach": "Realistic",

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

@@ -9,7 +9,7 @@
 	<packaging>jar</packaging>
 	<url>https://mangoo.io</url>
 	<properties>
-		<mangooio.version>1.0.0-Beta1-SNAPSHOT</mangooio.version>
+		<mangooio.version>1.0.0-Beta1</mangooio.version>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 	</properties>
 	<build>

+ 1 - 1
frameworks/Java/mangooio/setup.sh

@@ -3,7 +3,7 @@
 # load java environment variables
 source $IROOT/java8.installed
 
-sed -i 's|mongodb.host=.*|mongodb.host'"${DBHOST}"'|g' src/main/resources/application.conf
+sed -i 's|mongodb.host=.*|mongodb.host='"${DBHOST}"'|g' src/main/resources/application.conf
 
 mvn clean package -Dmaven.test.skip=true
 

+ 6 - 4
frameworks/Java/mangooio/src/main/java/controllers/ApplicationController.java

@@ -3,6 +3,7 @@ package controllers;
 import interfaces.Constants;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 import mangoo.io.routing.Response;
@@ -17,7 +18,7 @@ import com.google.inject.Singleton;
 
 @Singleton
 public class ApplicationController {
-
+	
 	@Inject
 	private DataService dataService;
 	
@@ -34,7 +35,7 @@ public class ApplicationController {
     	return Response.withOk().andJsonBody(world);
     }
 	
-	public Response queries(int queries) {
+	public Response queries(String queries) {
 		List<World> worlds = dataService.getWorlds(queries);
 		return Response.withOk().andJsonBody(worlds);
     }
@@ -45,12 +46,13 @@ public class ApplicationController {
 	
 	public Response fortunes() {
 		List<Fortune> fortunes = dataService.findAllFortunes();
-		fortunes.add(new Fortune(1, Constants.FORTUNE_MESSAGE));
+		fortunes.add(new Fortune(0, Constants.FORTUNE_MESSAGE));
+		Collections.sort(fortunes);
 		
     	return Response.withOk().andContent("fortunes", fortunes);
     }
 	
-	public Response updates(int queries) {
+	public Response updates(String queries) {
 		List<World> worldUpdates = new ArrayList<World>();
 		
 		List<World> worlds = dataService.getWorlds(queries);

+ 6 - 1
frameworks/Java/mangooio/src/main/java/models/Fortune.java

@@ -6,7 +6,7 @@ import org.bson.types.ObjectId;
 import org.mongodb.morphia.annotations.Id;
 import org.mongodb.morphia.annotations.Indexed;
 
-public class Fortune  implements Serializable {
+public class Fortune  implements Serializable, Comparable<Fortune> {
 	private static final long serialVersionUID = 3493429313579555024L;
 
     @Id
@@ -32,4 +32,9 @@ public class Fortune  implements Serializable {
 	public long getId() {
 		return id;
 	}
+
+	@Override
+    public int compareTo(Fortune other) {
+        return message.compareTo(other.message);
+    }
 }

+ 4 - 0
frameworks/Java/mangooio/src/main/java/models/World.java

@@ -32,4 +32,8 @@ public class World implements Serializable {
 	public void setRandomnumber(int randomNumber) {
 		this.randomNumber = randomNumber;
 	}
+	
+	public long getId() {
+		return id;
+	}
 }

+ 14 - 7
frameworks/Java/mangooio/src/main/java/services/DataService.java

@@ -6,6 +6,8 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.ThreadLocalRandom;
 
+import org.apache.commons.lang.StringUtils;
+
 import models.Fortune;
 import models.World;
 
@@ -34,15 +36,20 @@ public class DataService {
 		this.mongoDB.getDatastore().save(object);
 	}
 	
-	public List<World> getWorlds(int queries) {
-		if (queries <= 1) {
-			queries = 1;
-		} else if (queries > 500) {
-			queries = 500;
+	public List<World> getWorlds(String queries) {
+		int query = 1;
+		if (StringUtils.isNotBlank(queries) && StringUtils.isNumeric(queries)) {
+			query = Integer.valueOf(queries);
+		}
+		
+		if (query <= 1) {
+			query = 1;
+		} else if (query > 500) {
+			query = 500;
 		}
 		
 		List<World> worlds = new ArrayList<World>();
-		for (int i=0; i < queries; i++) {
+		for (int i=0; i < query; i++) {
 			int id = ThreadLocalRandom.current().nextInt(Constants.ROWS) + 1;
 			worlds.add(findById(id));
 		}
@@ -50,6 +57,6 @@ public class DataService {
 	}
 
 	public List<Fortune> findAllFortunes() {
-		return this.mongoDB.getDatastore().find(Fortune.class).order("message").asList();
+		return this.mongoDB.getDatastore().find(Fortune.class).retrievedFields(false, "_id").asList();
 	}
 }

+ 2 - 2
frameworks/Java/mangooio/src/main/resources/application.conf

@@ -31,7 +31,7 @@ smtp.username=
 smtp.password=
 smtp.ssl=false
 
-mongodb.host=localhost
+mongodb.host127.0.0.1
 mongodb.port=27017           
 mongodb.dbname=hello_world     
 mongodb.user=         
@@ -40,7 +40,7 @@ mongodb.authdb=
 morphia.package=models     
 morphia.init=true
 
-%test.mongodb.host=localhost
+%test.mongodb.host127.0.0.1
 %test.mongodb.port=29019           
 %test.mongodb.dbname=test     
 %test.mongodb.user=         

+ 4 - 1
frameworks/Java/mangooio/src/main/resources/logback.prod.xml

@@ -1,10 +1,13 @@
 <configuration>
 	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+			<level>info</level>
+		</filter>
 		<encoder>
 			<pattern>%d{dd.MM.yyyy;HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
 		</encoder>
 	</appender>
-	<root level="fatal">
+	<root level="FATAL">
 		<appender-ref ref="STDOUT" />
 	</root>
 </configuration>

+ 2 - 1
frameworks/Java/mangooio/src/main/resources/logback.xml

@@ -1,10 +1,11 @@
 <configuration>
+	<logger name="org.mongodb" level="FATAL"/>
 	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
 		<encoder>
 			<pattern>%d{dd.MM.yyyy;HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
 		</encoder>
 	</appender>
-	<root level="info">
+	<root level="FATAL">
 		<appender-ref ref="STDOUT" />
 	</root>
 </configuration>