Package controllers

Source Code of controllers.Application

package controllers;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.concurrent.ExecutionException;

import models.World;
import play.jobs.Job;
import play.mvc.Controller;

public class Application extends Controller {

  private static final int TEST_DATABASE_ROWS = 10000;

  // FIXME: should this test be consistent - ie set seed or not?
  private static Random random = new Random();

  public static void index() {
    render();
  }

  public static void json() {
    Map<String, String> result = new HashMap<String, String>();
    result.put("message", "Hello, World!");
    renderJSON(result);
  }

  public static void setup() {
   
    //JPAPlugin plugin = play.Play.plugin(JPAPlugin.class);
    //plugin.startTx(true);
    World w = new World() ;
    w.getPersistenceManager().beginTransaction();

    // clean out the old
    World.deleteAll();
    System.out.println("DELETED");
    // in with the new
    List<World> worlds = new ArrayList<World>() ;
    for (long i = 0; i <= TEST_DATABASE_ROWS; i++) {
      int randomNumber = random.nextInt(TEST_DATABASE_ROWS) + 1;
      worlds.add(new World(i, randomNumber));
      if (i % 100 == 0) {
       

        World.batch().insert(worlds) ;
        System.out.println("FLUSHED : " + i + "/" + TEST_DATABASE_ROWS);
        worlds.clear() ;
      }
    }
    System.out.println("ADDED");
    //plugin.closeTx(false);
    w.getPersistenceManager().commitTransaction();

  }

  public static void db(int queries) throws InterruptedException,
      ExecutionException {
    if (queries == 0)
      queries = 1;
    final int queryCount = queries;
    final List<World> worlds = new ArrayList<World>();
    Job<List<World>> job = new Job<List<World>>() {
      public java.util.List<World> doJobWithResult() throws Exception {
        for (int i = 0; i < queryCount; ++i) {
          Long id = Long
              .valueOf(random.nextInt(TEST_DATABASE_ROWS) + 1);
          World result = World.findById(id);
          worlds.add(result);
        }
        return worlds;
      };
    };
    List<World> result = job.now().get();
    renderJSON(result);
  }

  public static void dbSync(int queries) {
    if (queries == 0)
      queries = 1;
    final List<World> worlds = new ArrayList<World>();
    for (int i = 0; i < queries; ++i) {
      Long id = Long.valueOf(random.nextInt(TEST_DATABASE_ROWS) + 1);
      World result = World.findById(id);
      worlds.add(result);
    }
    renderJSON(worlds);
  }
}
TOP

Related Classes of controllers.Application

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.