Browse Source

removing the linked folders

Kpacha 11 years ago
parent
commit
51df989109

+ 0 - 1
ninja-standalone/src/main/java

@@ -1 +0,0 @@
-../../../ninja/src/main/java

+ 26 - 0
ninja-standalone/src/main/java/conf/Routes.java

@@ -0,0 +1,26 @@
+package conf;
+
+import hello.controllers.HelloDbController;
+import hello.controllers.HelloFortuneController;
+import hello.controllers.HelloJsonController;
+import hello.controllers.HelloPlaintextController;
+import ninja.Router;
+import ninja.application.ApplicationRoutes;
+
+public class Routes implements ApplicationRoutes {
+
+    @Override
+    public void init(Router router) {
+
+	router.GET().route("/").with(HelloPlaintextController.class, "index");
+	router.GET().route("/plaintext")
+		.with(HelloPlaintextController.class, "index");
+	router.GET().route("/json").with(HelloJsonController.class, "index");
+	router.GET().route("/queries/{queries}")
+		.with(HelloDbController.class, "multiGet");
+	router.GET().route("/db").with(HelloDbController.class, "singleGet");
+	router.GET().route("/fortunes")
+		.with(HelloFortuneController.class, "index");
+
+    }
+}

+ 50 - 0
ninja-standalone/src/main/java/hello/controllers/HelloDbController.java

@@ -0,0 +1,50 @@
+package hello.controllers;
+
+import hello.dao.WorldDao;
+import hello.model.World;
+
+import java.util.Random;
+import java.util.concurrent.ThreadLocalRandom;
+
+import ninja.Result;
+import ninja.Results;
+import ninja.params.PathParam;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+@Singleton
+public class HelloDbController {
+
+    private static final int DB_ROWS = 10000;
+    private final Random random = ThreadLocalRandom.current();
+
+    @Inject
+    WorldDao worldDao;
+
+    public Result singleGet() {
+	return Results.json().render(getRandomWorld());
+    }
+
+    public Result multiGet(@PathParam("queries") Integer queries) {
+	if (queries == null || queries < 1) {
+	    queries = 1;
+	}
+	if (queries > 500) {
+	    queries = 500;
+	}
+
+	final World[] worlds = new World[queries];
+
+	for (int i = 0; i < queries; i++) {
+	    worlds[i] = getRandomWorld();
+	}
+
+	return Results.json().render(worlds);
+    }
+
+    private World getRandomWorld() {
+	return worldDao.get(random.nextInt(DB_ROWS) + 1);
+    }
+
+}

+ 28 - 0
ninja-standalone/src/main/java/hello/controllers/HelloFortuneController.java

@@ -0,0 +1,28 @@
+package hello.controllers;
+
+import hello.dao.FortuneDao;
+import hello.model.Fortune;
+
+import java.util.Collections;
+import java.util.List;
+
+import ninja.Result;
+import ninja.Results;
+
+import com.google.inject.Inject;
+import com.google.inject.Singleton;
+
+@Singleton
+public class HelloFortuneController {
+
+    @Inject
+    FortuneDao fortuneDao;
+
+    public Result index() {
+	List<Fortune> fortunes = fortuneDao.getAll();
+	fortunes.add(new Fortune(0, "Additional fortune added at request time."));
+	Collections.sort(fortunes);
+
+	return Results.html().render("fortunes", fortunes);
+    }
+}

+ 27 - 0
ninja-standalone/src/main/java/hello/controllers/HelloJsonController.java

@@ -0,0 +1,27 @@
+package hello.controllers;
+
+import ninja.Result;
+import ninja.Results;
+
+import com.google.inject.Singleton;
+
+@Singleton
+public class HelloJsonController {
+
+    public Result index() {
+	return Results.json().render(new Message("Hello, world"));
+    }
+
+    public static class Message {
+
+	private final String message;
+
+	public Message(String message) {
+	    this.message = message;
+	}
+
+	public String getMessage() {
+	    return message;
+	}
+    }
+}

+ 13 - 0
ninja-standalone/src/main/java/hello/controllers/HelloPlaintextController.java

@@ -0,0 +1,13 @@
+package hello.controllers;
+
+import ninja.Result;
+import ninja.Results;
+
+import com.google.inject.Singleton;
+
+@Singleton
+public class HelloPlaintextController {
+    public Result index() {
+	return Results.html().renderRaw("Hello, world!");
+    }
+}

+ 29 - 0
ninja-standalone/src/main/java/hello/dao/FortuneDao.java

@@ -0,0 +1,29 @@
+package hello.dao;
+
+import hello.model.Fortune;
+
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.persist.Transactional;
+
+public class FortuneDao {
+
+    @Inject
+    Provider<EntityManager> entitiyManagerProvider;
+
+    @Transactional
+    public List<Fortune> getAll() {
+	EntityManager entityManager = entitiyManagerProvider.get();
+
+	Query q = entityManager.createQuery("SELECT x FROM Fortune x");
+	List<Fortune> fortunes = q.getResultList();
+
+	return fortunes;
+    }
+
+}

+ 21 - 0
ninja-standalone/src/main/java/hello/dao/WorldDao.java

@@ -0,0 +1,21 @@
+package hello.dao;
+
+import hello.model.World;
+
+import javax.persistence.EntityManager;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.google.inject.persist.Transactional;
+
+public class WorldDao {
+
+    @Inject
+    Provider<EntityManager> entitiyManagerProvider;
+
+    @Transactional
+    public World get(int id) {
+	EntityManager entityManager = entitiyManagerProvider.get();
+	return entityManager.find(World.class, id);
+    }
+}

+ 36 - 0
ninja-standalone/src/main/java/hello/model/Fortune.java

@@ -0,0 +1,36 @@
+package hello.model;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+@Entity
+public class Fortune implements Comparable<Fortune> {
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    public int id;
+    public String message;
+
+    public Fortune() {
+
+    }
+
+    public Fortune(int id, String message) {
+	this.id = id;
+	this.message = message;
+    }
+
+    public int getId() {
+	return this.id;
+    }
+
+    public String getMessage() {
+	return this.message;
+    }
+
+    @Override
+    public int compareTo(Fortune other) {
+	return message.compareTo(other.message);
+    }
+}

+ 14 - 0
ninja-standalone/src/main/java/hello/model/World.java

@@ -0,0 +1,14 @@
+package hello.model;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+
+@Entity
+public class World {
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    public int id;
+    public int randomNumber;
+}

+ 20 - 0
ninja-standalone/src/main/java/hello/views/HelloFortuneController/index.ftl.html

@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Fortunes</title>
+</head>
+<body>
+	<table>
+		<tr>
+			<th>id</th>
+			<th>message</th>
+		</tr>
+		<#list fortunes as fortune>
+		<tr>
+			<td>${fortune.id}</td>
+			<td>${fortune.message?html}</td>
+		</tr>
+		</#list>
+	</table>
+</body>
+</html>

+ 0 - 1
ninja-standalone/src/main/webapp

@@ -1 +0,0 @@
-../../../ninja/src/main/webapp

+ 13 - 0
ninja-standalone/src/main/webapp/WEB-INF/resin-web.xml

@@ -0,0 +1,13 @@
+<web-app xmlns="http://caucho.com/ns/resin">
+
+<database jndi-name='jdbc/hello_world'>
+  <driver>
+    <type>com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource</type>
+    <url>jdbc:mysql://localhost:3306/hello_world?jdbcCompliantTruncation=false&amp;elideSetAutoCommits=true&amp;useLocalSessionState=true&amp;cachePrepStmts=true&amp;cacheCallableStmts=true&amp;alwaysSendSetIsolation=false&amp;prepStmtCacheSize=4096&amp;cacheServerConfiguration=true&amp;prepStmtCacheSqlLimit=2048&amp;zeroDateTimeBehavior=convertToNull&amp;traceProtocol=false&amp;useUnbufferedInput=false&amp;useReadAheadInput=false&amp;maintainTimeStats=false&amp;useServerPrepStmts&amp;cacheRSMetadata=true</url>
+    <user>benchmarkdbuser</user>
+    <password>benchmarkdbpass</password>
+    <useUnicode/>
+  </driver>
+</database>
+
+</web-app>

+ 32 - 0
ninja-standalone/src/main/webapp/WEB-INF/web.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Copyright (C) 2013 the original author or authors.
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" metadata-complete="true" version="3.0">
+  <display-name>ninja</display-name>
+  <listener>
+    <listener-class>ninja.servlet.NinjaServletListener</listener-class>
+  </listener>
+  <filter>
+    <filter-name>guiceFilter</filter-name>
+    <filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
+  </filter>
+  <filter-mapping>
+    <filter-name>guiceFilter</filter-name>
+    <url-pattern>/*</url-pattern>
+  </filter-mapping>
+</web-app>

+ 0 - 1
ninja-standalone/src/test

@@ -1 +0,0 @@
-../../ninja/src/test