Commit 4bff2226 authored by rungrurdee wandee's avatar rungrurdee wandee

add

parents
logs
target
build
/.idea
/.idea_modules
/.classpath
/.project
/.settings
/.gradle
/RUNNING_PID
License
-------
Written in 2016 by Lightbend <info@lightbend.com>
To the extent possible under law, the author(s) have dedicated all copyright and related and neighboring rights to this software to the public domain worldwide. This software is distributed without any warranty.
You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
[<img src="https://img.shields.io/travis/playframework/play-java-starter-example.svg"/>](https://travis-ci.org/playframework/play-java-starter-example)
# play-java-starter-example
This is a starter application that shows how Play works. Please see the documentation at https://www.playframework.com/documentation/latest/Home for more details.
## Running
Run this using [sbt](http://www.scala-sbt.org/). If you downloaded this project from http://www.playframework.com/download then you'll find a prepackaged version of sbt in the project directory:
```
sbt run
```
And then go to http://localhost:9000 to see the running web application.
## Controllers
There are several demonstration files available in this template.
- HomeController.java:
Shows how to handle simple HTTP requests.
- AsyncController.java:
Shows how to do asynchronous programming when handling a request.
- CountController.java:
Shows how to inject a component into a controller and use the component when
handling requests.
## Components
- Module.java:
Shows how to use Guice to bind all the components needed by your application.
- Counter.java:
An example of a component that contains state, in this case a simple counter.
- ApplicationTimer.java:
An example of a component that starts when the application starts and stops
when the application stops.
## Filters
- ExampleFilter.java
A simple filter that adds a header to every response.
\ No newline at end of file
import com.google.inject.AbstractModule;
import java.time.Clock;
import services.ApplicationTimer;
import services.AtomicCounter;
import services.Counter;
/**
* This class is a Guice module that tells Guice how to bind several
* different types. This Guice module is created when the Play
* application starts.
*
* Play will automatically use any class called `Module` that is in
* the root package. You can create modules in other locations by
* adding `play.modules.enabled` settings to the `application.conf`
* configuration file.
*/
public class Module extends AbstractModule {
@Override
public void configure() {
// Use the system clock as the default implementation of Clock
bind(Clock.class).toInstance(Clock.systemDefaultZone());
// Ask Guice to create an instance of ApplicationTimer when the
// application starts.
bind(ApplicationTimer.class).asEagerSingleton();
// Set AtomicCounter as the implementation for Counter.
bind(Counter.class).to(AtomicCounter.class);
}
}
package controllers;
import akka.actor.ActorSystem;
import javax.inject.*;
import akka.actor.Scheduler;
import play.*;
import play.mvc.*;
import java.util.concurrent.Executor;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.CompletionStage;
import java.util.concurrent.TimeUnit;
import scala.concurrent.ExecutionContext;
import scala.concurrent.duration.Duration;
import scala.concurrent.ExecutionContextExecutor;
/**
* This controller contains an action that demonstrates how to write
* simple asynchronous code in a controller. It uses a timer to
* asynchronously delay sending a response for 1 second.
*/
@Singleton
public class AsyncController extends Controller {
private final ActorSystem actorSystem;
private final ExecutionContextExecutor exec;
/**
* @param actorSystem We need the {@link ActorSystem}'s
* {@link Scheduler} to run code after a delay.
* @param exec We need a Java {@link Executor} to apply the result
* of the {@link CompletableFuture} and a Scala
* {@link ExecutionContext} so we can use the Akka {@link Scheduler}.
* An {@link ExecutionContextExecutor} implements both interfaces.
*/
@Inject
public AsyncController(ActorSystem actorSystem, ExecutionContextExecutor exec) {
this.actorSystem = actorSystem;
this.exec = exec;
}
/**
* An action that returns a plain text message after a delay
* of 1 second.
*
* The configuration in the <code>routes</code> file means that this method
* will be called when the application receives a <code>GET</code> request with
* a path of <code>/message</code>.
*/
public CompletionStage<Result> message() {
return getFutureMessage(1, TimeUnit.SECONDS).thenApplyAsync(Results::ok, exec);
}
private CompletionStage<String> getFutureMessage(long time, TimeUnit timeUnit) {
CompletableFuture<String> future = new CompletableFuture<>();
actorSystem.scheduler().scheduleOnce(
Duration.create(time, timeUnit),
() -> future.complete("Hi!"),
exec
);
return future;
}
}
package controllers;
import play.mvc.Controller;
import play.mvc.Result;
import services.Counter;
import javax.inject.Inject;
import javax.inject.Singleton;
/**
* This controller demonstrates how to use dependency injection to
* bind a component into a controller class. The class contains an
* action that shows an incrementing count to users. The {@link Counter}
* object is injected by the Guice dependency injection system.
*/
@Singleton
public class CountController extends Controller {
private final Counter counter;
@Inject
public CountController(Counter counter) {
this.counter = counter;
}
/**
* An action that responds with the {@link Counter}'s current
* count. The result is plain text. This action is mapped to
* <code>GET</code> requests with a path of <code>/count</code>
* requests by an entry in the <code>routes</code> config file.
*/
public Result count() {
return ok(Integer.toString(counter.nextCount()));
}
}
package controllers;
import play.mvc.*;
import play.i18n.*;
import play.Logger;
import views.html.*;
/**
* This controller contains an action to handle HTTP requests
* to the application's home page.
*/
public class HomeController extends Controller {
public Result login() {
Messages messages = Http.Context.current().messages();
String e = messages.at("Email");
String p = messages.at("Password");
String l = messages.at("Login");
return ok(login.render(e,p,l));
}
}
package filters;
import play.mvc.EssentialAction;
import play.mvc.EssentialFilter;
import javax.inject.Inject;
import javax.inject.Singleton;
import java.util.concurrent.Executor;
/**
* This is a simple filter that adds a header to all requests.
*/
@Singleton
public class ExampleFilter extends EssentialFilter {
private final Executor exec;
/**
* @param exec This class is needed to execute code asynchronously.
*/
@Inject
public ExampleFilter(Executor exec) {
this.exec = exec;
}
@Override
public EssentialAction apply(EssentialAction next) {
return EssentialAction.of(request ->
next.apply(request).map(result ->
result.withHeader("X-ExampleFilter", "foo"), exec)
);
}
}
package services;
import java.time.Clock;
import java.time.Instant;
import java.util.concurrent.CompletableFuture;
import javax.inject.*;
import play.Logger;
import play.inject.ApplicationLifecycle;
/**
* This class demonstrates how to run code when the
* application starts and stops. It starts a timer when the
* application starts. When the application stops it prints out how
* long the application was running for.
*
* This class is registered for Guice dependency injection in the
* {@link Module} class. We want the class to start when the application
* starts, so it is registered as an "eager singleton". See the code
* in the {@link Module} class to see how this happens.
*
* This class needs to run code when the server stops. It uses the
* application's {@link ApplicationLifecycle} to register a stop hook.
*/
@Singleton
public class ApplicationTimer {
private final Clock clock;
private final ApplicationLifecycle appLifecycle;
private final Instant start;
private final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger("application");
@Inject
public ApplicationTimer(Clock clock, ApplicationLifecycle appLifecycle) {
this.clock = clock;
this.appLifecycle = appLifecycle;
// This code is called when the application starts.
start = clock.instant();
logger.info("ApplicationTimer demo: Starting application at " + start);
// When the application starts, register a stop hook with the
// ApplicationLifecycle object. The code inside the stop hook will
// be run when the application stops.
appLifecycle.addStopHook(() -> {
Instant stop = clock.instant();
Long runningTime = stop.getEpochSecond() - start.getEpochSecond();
logger.info("ApplicationTimer demo: Stopping application at " + clock.instant() + " after " + runningTime + "s.");
return CompletableFuture.completedFuture(null);
});
}
}
package services;
import java.util.concurrent.atomic.AtomicInteger;
import javax.inject.*;
/**
* This class is a concrete implementation of the {@link Counter} trait.
* It is configured for Guice dependency injection in the {@link Module}
* class.
*
* This class has a {@link Singleton} annotation because we need to make
* sure we only use one counter per application. Without this
* annotation we would get a new instance every time a {@link Counter} is
* injected.
*/
@Singleton
public class AtomicCounter implements Counter {
private final AtomicInteger atomicCounter = new AtomicInteger();
@Override
public int nextCount() {
return atomicCounter.getAndIncrement();
}
}
package services;
/**
* This interface demonstrates how to create a component that is injected
* into a controller. The interface represents a counter that returns a
* incremented number each time it is called.
*
* The {@link Modules} class binds this interface to the
* {@link AtomicCounter} implementation.
*/
public interface Counter {
int nextCount();
}
@(header:String)
<!DOCTYPE html>
<html>
<head>
<title> 55555 </title>
</head>
<body background= "/assets/images/1.jpg">
<h1>@header หลา</h1>
</body>
</html>
\ No newline at end of file
@(e:String,p:String,l:String)
<!DOCTYPE html>
<html lang="en">
<html lang="th">
<h1>I Miss Lha</h1>
</body>
<head>
<title>เว็บของหลา</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<link href="https://fonts.googleapis.com/css?family=Mitr" rel="stylesheet">
<link rel="stylesheet" href="/assets/stylesheets/main.css">
</head>
<b> เว็บของหลาหลา </b>
<body id="page-top" class="bg-info">
<div class="container">
<div class="card card-login mx-auto mt-5">
<div class="card-header">@l</div>
<div class="card-body">
<form>
<div class="form-group">
<label for="email">@e </label>
<input class="form-control" id="email" type="email" aria-describedby="emailHelp" placeholder="Email">
</div>
<div class="form-group">
<label for="password">@p </label>
<input class="form-control" id="password" type="password" placeholder="Password">
</div>
<div class="form-group">
<div class="form-check">
<label class="form-check-label">
<input class="form-check-input" type="checkbox"> จำรหัสผ่าน </label>
</div>
</div>
<a class="btn btn-primary btn-block" href="#">@l</a>
</form>
<div class="text-center">
<a class="d-block small mt-3" href="#">ลงทะเบียนใหม่</a>
<a class="d-block small" href="#">ลืมรหัสผ่าน</a>
<a class="d-block small" href="/">กลับไปหน้าหลัก</a>
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</body>
<a href="http://www.your-domain.com/about.html">EN</a> | <a href="http://www.your-domain.com/zh/about-cn.html">中文</a> || <a href="http://www.your-domain.com/zh/about-cn.html">TH</a>
</html>
@*
* This template is called from the `index` template. This template
* handles the rendering of the page header and body tags. It takes
* two arguments, a `String` for the title of the page and an `Html`
* object to insert into the body of the page.
*@
@(title: String)(content: Html)
<!DOCTYPE html>
<html lang="en">
<head>
@* Here's where we render the page title `String`. *@
<title>@title</title>
<link rel="stylesheet" media="screen" href="@routes.Assets.versioned("stylesheets/main.css")">
<link rel="shortcut icon" type="image/png" href="@routes.Assets.versioned("images/favicon.png")">
<script src="@routes.Assets.versioned("javascripts/hello.js")" type="text/javascript"></script>
</head>
<body>
@* And here's where we render the `Html` object containing
* the page content. *@
@content
</body>
</html>
@(message: String, style: String = "java")
@defining(play.core.PlayVersion.current) { version =>
<section id="top">
<div class="wrapper">
<h1><a href="https://playframework.com/documentation/@version/Home">@message</a></h1>
</div>
</section>
<div id="content" class="wrapper doc">
<article>
<h1>Welcome to Play</h1>
<p>
Congratulations, you’ve just created a new Play application. This page will help you with the next few steps.
</p>
<blockquote>
<p>
You’re using Play @version
</p>
</blockquote>
<h2>Why do you see this page?</h2>
<p>
The <code>conf/routes</code> file defines a route that tells Play to invoke the <code>HomeController.index</code> action
whenever a browser requests the <code>/</code> URI using the GET method:
</p>
<pre><code># Home page
GET / controllers.HomeController.index</code></pre>
<p>
Play has invoked the <code>controllers.HomeController.index</code> method:
</p>
<pre><code>public Result index() {
return ok(index.render("Your new application is ready."));
}</code></pre>
<p>
An action method handles the incoming HTTP request, and returns the HTTP result to send back to the web client.
Here we send a <code>200 OK</code> response, using a template to fill its content.
</p>
<p>
The template is defined in the <code>app/views/index.scala.html</code> file and compiled as a standard Java class.
</p>
<pre><code>@@(message: String)
@@main("Welcome to Play") {
@@play20.welcome(message, style = "Java")
}</code></pre>
<p>
The first line of the template defines the function signature. Here it just takes a single <code>String</code> parameter.
Then this template calls another function defined in <code>app/views/main.scala.html</code> which displays the HTML layout, and another
function that displays this welcome message. You can freely add any HTML fragment mixed with Scala code in this file.
</p>
<blockquote>
<p>
<strong>Note</strong> that Scala is fully compatible with Java, so if you don’t know Scala don’t panic, a Scala statement is very similar to a Java one.
</p>
</blockquote>
<p>You can read more about <a href="https://www.playframework.com/documentation/@version/ScalaTemplates">Twirl</a>, the template language used by Play, and how Play handles <a href="https://www.playframework.com/documentation/@version/JavaActions">actions</a>.</p>
<h2>Async Controller</h2>
Now that you've seen how Play renders a page, take a look at <code>AsyncController.java</code>, which shows how to do asynchronous programming when handling a request. The code is almost exactly the same as <code>HomeController.java</code>, but instead of returning <code>Result</code>, the action returns <code>CompletionStage&lt;Result&gt;</code> to Play. When the execution completes, Play can use a thread to render the result without blocking the thread in the mean time.
<p>
<a href="@routes.AsyncController.message">Click here for the AsyncController action!</a>
</p>
<p>
You can read more about <a href="https://www.playframework.com/documentation/@version/JavaAsync">asynchronous actions</a> in the documentation.
</p>
<h2>Count Controller</h2>
<p>
Both the HomeController and AsyncController are very simple, and typically controllers present the results of the interaction of several services. As an example, see the <code>CountController</code>, which shows how to inject a component into a controller and use the component when handling requests. The count controller increments every time you click on it, so keep clicking to see the numbers go up.
</p>
<p>
<a href="@routes.CountController.count">Click here for the CountController action!</a>
</p>
<p>
You can read more about <a href="https://www.playframework.com/documentation/@version/JavaDependencyInjection">dependency injection</a> in the documentation.
</p>
<h2>Need more info on the console?</h2>
<p>
For more information on the various commands you can run on Play, i.e. running tests and packaging applications for production, see <a href="https://playframework.com/documentation/@version/PlayConsole">Using the Play console</a>.
</p>
<h2>Need to set up an IDE?</h2>
<p>
You can start hacking your application right now using any text editor. Any changes will be automatically reloaded at each page refresh,
including modifications made to Scala source files.
</p>
<p>
If you want to set-up your application in <strong>IntelliJ IDEA</strong> or any other Java IDE, check the
<a href="https://www.playframework.com/documentation/@version/IDE">Setting up your preferred IDE</a> page.
</p>
<h2>Need more documentation?</h2>
<p>
Play documentation is available at <a href="https://www.playframework.com/documentation/@version">https://www.playframework.com/documentation</a>.
</p>
<p>
Play comes with lots of example templates showcasing various bits of Play functionality at <a href="https://www.playframework.com/download#examples">https://www.playframework.com/download#examples</a>.
</p>
<h2>Need more help?</h2>
<p>
Play questions are asked and answered on Stackoverflow using the "playframework" tag: <a href="https://stackoverflow.com/questions/tagged/playframework">https://stackoverflow.com/questions/tagged/playframework</a>
</p>
<p>
The <a href="https://discuss.playframework.com">Discuss Play Forum</a> is where Play users come to seek help,
announce projects, and discuss issues and new features.
</p>
<p>
Gitter is a real time chat channel, like IRC. The <a href="https://gitter.im/playframework/playframework">playframework/playframework</a> channel is used by Play users to discuss the ins and outs of writing great Play applications.
</p>
</article>
<aside>
<h3>Browse</h3>
<ul>
<li><a href="https://playframework.com/documentation/@version">Documentation</a></li>
<li><a href="https://playframework.com/documentation/@version/api/@style/index.html">Browse the @{style.capitalize} API</a></li>
</ul>
<h3>Start here</h3>
<ul>
<li><a href="https://playframework.com/documentation/@version/PlayConsole">Using the Play console</a></li>
<li><a href="https://playframework.com/documentation/@version/IDE">Setting up your preferred IDE</a></li>
<li><a href="https://playframework.com/download#examples">Example Projects</a>
</ul>
<h3>Help here</h3>
<ul>
<li><a href="https://stackoverflow.com/questions/tagged/playframework">Stack Overflow</a></li>
<li><a href="https://discuss.playframework.com">Discuss Play Forum</a> </li>
<li><a href="https://gitter.im/playframework/playframework">Gitter Channel</a></li>
</ul>
</aside>
</div>
}
plugins {
id 'play'
id 'idea'
}
def playVersion = "2.6.12"
def scalaVersion = System.getProperty("scala.binary.version", /* default = */ "2.12")
model {
components {
play {
platform play: playVersion, scala: scalaVersion, java: '1.8'
injectedRoutesGenerator = true
sources {
twirlTemplates {
defaultImports = TwirlImports.JAVA
}
}
}
}
}
dependencies {
play "com.typesafe.play:play-guice_$scalaVersion:$playVersion"
play "com.typesafe.play:play-logback_$scalaVersion:$playVersion"
play "com.h2database:h2:1.4.196"
playTest "org.assertj:assertj-core:3.6.2"
playTest "org.awaitility:awaitility:2.0.0"
}
repositories {
jcenter()
maven {
name "lightbend-maven-releases"
url "https://repo.lightbend.com/lightbend/maven-release"
}
ivy {
name "lightbend-ivy-release"
url "https://repo.lightbend.com/lightbend/ivy-releases"
layout "ivy"
}
}
name := """play-java-starter-example"""
version := "1.0-SNAPSHOT"
lazy val root = (project in file(".")).enablePlugins(PlayJava)
scalaVersion := "2.12.4"
crossScalaVersions := Seq("2.11.12", "2.12.4")
libraryDependencies += guice
// Test Database
libraryDependencies += "com.h2database" % "h2" % "1.4.196"
// Testing libraries for dealing with CompletionStage...
libraryDependencies += "org.assertj" % "assertj-core" % "3.6.2" % Test
libraryDependencies += "org.awaitility" % "awaitility" % "2.0.0" % Test
// Make verbose tests
testOptions in Test := Seq(Tests.Argument(TestFrameworks.JUnit, "-a", "-v"))
# This is the main configuration file for the application.
# https://www.playframework.com/documentation/latest/ConfigFile
# ~~~~~
# Play uses HOCON as its configuration file format. HOCON has a number
# of advantages over other config formats, but there are two things that
# can be used when modifying settings.
#
# You can include other configuration files in this main application.conf file:
#include "extra-config.conf"
#
# You can declare variables and substitute for them:
#mykey = ${some.value}
#
# And if an environment variable exists when there is no other subsitution, then
# HOCON will fall back to substituting environment variable:
#mykey = ${JAVA_HOME}
## Akka
# https://www.playframework.com/documentation/latest/ScalaAkka#Configuration
# https://www.playframework.com/documentation/latest/JavaAkka#Configuration
# ~~~~~
# Play uses Akka internally and exposes Akka Streams and actors in Websockets and
# other streaming HTTP responses.
akka {
# "akka.log-config-on-start" is extraordinarly useful because it log the complete
# configuration at INFO level, including defaults and overrides, so it s worth
# putting at the very top.
#
# Put the following in your conf/logback.xml file:
#
# <logger name="akka.actor" level="INFO" />
#
# And then uncomment this line to debug the configuration.
#
#log-config-on-start = true
}
## Secret key
# http://www.playframework.com/documentation/latest/ApplicationSecret
# ~~~~~
# The secret key is used to sign Play's session cookie.
# This must be changed for production, but we don't recommend you change it in this file.
play.http.secret.key = "changeme"
## Modules
# https://www.playframework.com/documentation/latest/Modules
# ~~~~~
# Control which modules are loaded when Play starts. Note that modules are
# the replacement for "GlobalSettings", which are deprecated in 2.5.x.
# Please see https://www.playframework.com/documentation/latest/GlobalSettings
# for more information.
#
# You can also extend Play functionality by using one of the publically available
# Play modules: https://playframework.com/documentation/latest/ModuleDirectory
play.modules {
# By default, Play will load any class called Module that is defined
# in the root package (the "app" directory), or you can define them
# explicitly below.
# If there are any built-in modules that you want to disable, you can list them here.
#enabled += my.application.Module
# If there are any built-in modules that you want to disable, you can list them here.
#disabled += ""
}
## IDE
# https://www.playframework.com/documentation/latest/IDE
# ~~~~~
# Depending on your IDE, you can add a hyperlink for errors that will jump you
# directly to the code location in the IDE in dev mode. The following line makes
# use of the IntelliJ IDEA REST interface:
#play.editor="http://localhost:63342/api/file/?file=%s&line=%s"
## Internationalisation
# https://www.playframework.com/documentation/latest/JavaI18N
# https://www.playframework.com/documentation/latest/ScalaI18N
# ~~~~~
# Play comes with its own i18n settings, which allow the user's preferred language
# to map through to internal messages, or allow the language to be stored in a cookie.
play.i18n {
# The application languages
langs = [ "en" ]
langs = [ "th" ]
# Whether the language cookie should be secure or not
#langCookieSecure = true
# Whether the HTTP only attribute of the cookie should be set to true
#langCookieHttpOnly = true
}
## Play HTTP settings
# ~~~~~
play.http {
## Router
# https://www.playframework.com/documentation/latest/JavaRouting
# https://www.playframework.com/documentation/latest/ScalaRouting
# ~~~~~
# Define the Router object to use for this application.
# This router will be looked up first when the application is starting up,
# so make sure this is the entry point.
# Furthermore, it's assumed your route file is named properly.
# So for an application router like `my.application.Router`,
# you may need to define a router file `conf/my.application.routes`.
# Default to Routes in the root package (aka "apps" folder) (and conf/routes)
#router = my.application.Router
## Action Creator
# https://www.playframework.com/documentation/latest/JavaActionCreator
# ~~~~~
#actionCreator = null
## ErrorHandler
# https://www.playframework.com/documentation/latest/JavaRouting
# https://www.playframework.com/documentation/latest/ScalaRouting
# ~~~~~
# If null, will attempt to load a class called ErrorHandler in the root package,
#errorHandler = null
## Session & Flash
# https://www.playframework.com/documentation/latest/JavaSessionFlash
# https://www.playframework.com/documentation/latest/ScalaSessionFlash
# ~~~~~
session {
# Sets the cookie to be sent only over HTTPS.
#secure = true
# Sets the cookie to be accessed only by the server.
#httpOnly = true
# Sets the max-age field of the cookie to 5 minutes.
# NOTE: this only sets when the browser will discard the cookie. Play will consider any
# cookie value with a valid signature to be a valid session forever. To implement a server side session timeout,
# you need to put a timestamp in the session and check it at regular intervals to possibly expire it.
#maxAge = 300
# Sets the domain on the session cookie.
#domain = "example.com"
}
flash {
# Sets the cookie to be sent only over HTTPS.
#secure = true
# Sets the cookie to be accessed only by the server.
#httpOnly = true
}
}
## Netty Provider
# https://www.playframework.com/documentation/latest/SettingsNetty
# ~~~~~
play.server.netty {
# Whether the Netty wire should be logged
#log.wire = true
# If you run Play on Linux, you can use Netty's native socket transport
# for higher performance with less garbage.
#transport = "native"
}
## WS (HTTP Client)
# https://www.playframework.com/documentation/latest/ScalaWS#Configuring-WS
# ~~~~~
# The HTTP client primarily used for REST APIs. The default client can be
# configured directly, but you can also create different client instances
# with customized settings. You must enable this by adding to build.sbt:
#
# libraryDependencies += ws // or javaWs if using java
#
play.ws {
# Sets HTTP requests not to follow 302 requests
#followRedirects = false
# Sets the maximum number of open HTTP connections for the client.
#ahc.maxConnectionsTotal = 50
## WS SSL
# https://www.playframework.com/documentation/latest/WsSSL
# ~~~~~
ssl {
# Configuring HTTPS with Play WS does not require programming. You can
# set up both trustManager and keyManager for mutual authentication, and
# turn on JSSE debugging in development with a reload.
#debug.handshake = true
#trustManager = {
# stores = [
# { type = "JKS", path = "exampletrust.jks" }
# ]
#}
}
}
## Cache
# https://www.playframework.com/documentation/latest/JavaCache
# https://www.playframework.com/documentation/latest/ScalaCache
# ~~~~~
# Play comes with an integrated cache API that can reduce the operational
# overhead of repeated requests. You must enable this by adding to build.sbt:
#
# libraryDependencies += cache
#
play.cache {
# If you want to bind several caches, you can bind the individually
#bindCaches = ["db-cache", "user-cache", "session-cache"]
}
## Filter Configuration
# https://www.playframework.com/documentation/latest/Filters
# ~~~~~
# There are a number of built-in filters that can be enabled and configured
# to give Play greater security.
#
play.filters {
# Enabled filters are run automatically against Play.
# CSRFFilter, AllowedHostFilters, and SecurityHeadersFilters are enabled by default.
enabled += filters.ExampleFilter
# Disabled filters remove elements from the enabled list.
#disabled += filters.ExampleFilter
## CORS filter configuration
# https://www.playframework.com/documentation/latest/CorsFilter
# ~~~~~
# CORS is a protocol that allows web applications to make requests from the browser
# across different domains.
# NOTE: You MUST apply the CORS configuration before the CSRF filter, as CSRF has
# dependencies on CORS settings.
cors {
# Filter paths by a whitelist of path prefixes
#pathPrefixes = ["/some/path", ...]
# The allowed origins. If null, all origins are allowed.
#allowedOrigins = ["http://www.example.com"]
# The allowed HTTP methods. If null, all methods are allowed
#allowedHttpMethods = ["GET", "POST"]
}
## CSRF Filter
# https://www.playframework.com/documentation/latest/ScalaCsrf#Applying-a-global-CSRF-filter
# https://www.playframework.com/documentation/latest/JavaCsrf#Applying-a-global-CSRF-filter
# ~~~~~
# Play supports multiple methods for verifying that a request is not a CSRF request.
# The primary mechanism is a CSRF token. This token gets placed either in the query string
# or body of every form submitted, and also gets placed in the users session.
# Play then verifies that both tokens are present and match.
csrf {
# Sets the cookie to be sent only over HTTPS
#cookie.secure = true
# Defaults to CSRFErrorHandler in the root package.
#errorHandler = MyCSRFErrorHandler
}
## Security headers filter configuration
# https://www.playframework.com/documentation/latest/SecurityHeaders
# ~~~~~
# Defines security headers that prevent XSS attacks.
# If enabled, then all options are set to the below configuration by default:
headers {
# The X-Frame-Options header. If null, the header is not set.
#frameOptions = "DENY"
# The X-XSS-Protection header. If null, the header is not set.
#xssProtection = "1; mode=block"
# The X-Content-Type-Options header. If null, the header is not set.
#contentTypeOptions = "nosniff"
# The X-Permitted-Cross-Domain-Policies header. If null, the header is not set.
#permittedCrossDomainPolicies = "master-only"
# The Content-Security-Policy header. If null, the header is not set.
#contentSecurityPolicy = "default-src 'self'"
}
## Allowed hosts filter configuration
# https://www.playframework.com/documentation/latest/AllowedHostsFilter
# ~~~~~
# Play provides a filter that lets you configure which hosts can access your application.
# This is useful to prevent cache poisoning attacks.
hosts {
# Allow requests to localhost on ports 9000 (dev) and 19001 (default test) ports
allowed = ["localhost:9000", "localhost:19001"]
}
}
## Evolutions
# https://www.playframework.com/documentation/latest/Evolutions
# ~~~~~
# Evolutions allows database scripts to be automatically run on startup in dev mode
# for database migrations. You must enable this by adding to build.sbt:
#
# libraryDependencies += evolutions
#
play.evolutions {
# You can disable evolutions for a specific datasource if necessary
#db.default.enabled = false
}
## Database Connection Pool
# https://www.playframework.com/documentation/latest/SettingsJDBC
# ~~~~~
# Play doesn't require a JDBC database to run, but you can easily enable one.
#
# libraryDependencies += jdbc
#
play.db {
# The combination of these two settings results in "db.default" as the
# default JDBC pool:
#config = "db"
#default = "default"
# Play uses HikariCP as the default connection pool. You can override
# settings by changing the prototype:
prototype {
# Sets a fixed JDBC connection pool size of 50
#hikaricp.minimumIdle = 50
#hikaricp.maximumPoolSize = 50
}
}
## JDBC Datasource
# https://www.playframework.com/documentation/latest/JavaDatabase
# https://www.playframework.com/documentation/latest/ScalaDatabase
# ~~~~~
# Once JDBC datasource is set up, you can work with several different
# database options:
#
# Slick (Scala preferred option): https://www.playframework.com/documentation/latest/PlaySlick
# JPA (Java preferred option): https://playframework.com/documentation/latest/JavaJPA
# EBean: https://playframework.com/documentation/latest/JavaEbean
# Anorm: https://www.playframework.com/documentation/latest/ScalaAnorm
#
db {
# You can declare as many datasources as you want.
# By convention, the default datasource is named `default`
# https://www.playframework.com/documentation/latest/Developing-with-the-H2-Database
#default.driver = org.h2.Driver
#default.url = "jdbc:h2:mem:play"
#default.username = sa
#default.password = ""
# You can turn on SQL logging for any datasource
# https://www.playframework.com/documentation/latest/Highlights25#Logging-SQL-statements
#default.logSql=true
}
<!-- https://www.playframework.com/documentation/latest/SettingsLogger -->
<configuration>
<conversionRule conversionWord="coloredLevel" converterClass="play.api.libs.logback.ColoredLevel" />
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${application.home:-.}/logs/application.log</file>
<encoder>
<pattern>%date [%level] from %logger in %thread - %message%n%xException</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%coloredLevel %logger{15} - %message%n%xException{10}</pattern>
</encoder>
</appender>
<appender name="ASYNCFILE" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="FILE" />
</appender>
<appender name="ASYNCSTDOUT" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="STDOUT" />
</appender>
<logger name="play" level="INFO" />
<logger name="application" level="DEBUG" />
<!-- Off these ones as they are annoying, and anyway we manage configuration ourselves -->
<logger name="com.gargoylesoftware.htmlunit.javascript" level="OFF" />
<root level="WARN">
<appender-ref ref="ASYNCFILE" />
<appender-ref ref="ASYNCSTDOUT" />
</root>
</configuration>
Hello=สวัสดี
Email=อีเมล์
Password=รหัสผ่าน
Login=เข้าสู่ระบบ
\ No newline at end of file
# Routes
# This file defines all application routes (Higher priority routes first)
# ~~~~
GET /login controllers.HomeController.login
# GET /index controllers.HomeController.index
# An example controller showing how to use dependency injection
GET /count controllers.CountController.count
# An example controller showing how to write asynchronous code
GET /message controllers.AsyncController.message
# Map static resources from the /public folder to the /assets URL path
GET /assets/*file controllers.Assets.versioned(path="/public", file: Asset)
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-bin.zip
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
#!/usr/bin/env sh
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn () {
echo "$*"
}
die () {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Escape application args
save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=$(save "$@")
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi
exec "$JAVACMD" "$@"
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 716177408 bytes for committing reserved memory.
# Possible reasons:
# The system is out of physical RAM or swap space
# In 32 bit mode, the process size limit was hit
# Possible solutions:
# Reduce memory load on the system
# Increase physical memory or swap space
# Check if swap backing store is full
# Use 64 bit Java on a 64 bit OS
# Decrease Java heap size (-Xmx/-Xms)
# Decrease number of Java threads
# Decrease Java thread stack sizes (-Xss)
# Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.
#
# Out of Memory Error (os_linux.cpp:2640), pid=8908, tid=0x00007f81de6ab700
#
# JRE version: (8.0_161-b12) (build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.161-b12 mixed mode linux-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
--------------- T H R E A D ---------------
Current thread (0x00007f81d800a800): JavaThread "Unknown thread" [_thread_in_vm, id=8909, stack(0x00007f81de5ab000,0x00007f81de6ac000)]
Stack: [0x00007f81de5ab000,0x00007f81de6ac000], sp=0x00007f81de6aa3c0, free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xacf94a] VMError::report_and_die()+0x2ba
V [libjvm.so+0x50050b] report_vm_out_of_memory(char const*, int, unsigned long, VMErrorType, char const*)+0x8b
V [libjvm.so+0x92b133] os::Linux::commit_memory_impl(char*, unsigned long, bool)+0x103
V [libjvm.so+0x92b5c9] os::pd_commit_memory(char*, unsigned long, unsigned long, bool)+0x29
V [libjvm.so+0x924c0a] os::commit_memory(char*, unsigned long, unsigned long, bool)+0x2a
V [libjvm.so+0x99ab53] PSVirtualSpace::expand_by(unsigned long)+0x53
V [libjvm.so+0x98ac67] PSOldGen::initialize(ReservedSpace, unsigned long, char const*, int)+0xb7
V [libjvm.so+0x2db30a] AdjoiningGenerations::AdjoiningGenerations(ReservedSpace, GenerationSizer*, unsigned long)+0x39a
V [libjvm.so+0x94ec56] ParallelScavengeHeap::initialize()+0x1d6
V [libjvm.so+0xa979f3] Universe::initialize_heap()+0xf3
V [libjvm.so+0xa97f5e] universe_init()+0x3e
V [libjvm.so+0x641fb5] init_globals()+0x65
V [libjvm.so+0xa7c5ae] Threads::create_vm(JavaVMInitArgs*, bool*)+0x23e
V [libjvm.so+0x6d6c24] JNI_CreateJavaVM+0x74
C [libjli.so+0x797e] JavaMain+0x9e
C [libpthread.so.0+0x76ba] start_thread+0xca
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
Other Threads:
=>0x00007f81d800a800 (exited) JavaThread "Unknown thread" [_thread_in_vm, id=8909, stack(0x00007f81de5ab000,0x00007f81de6ac000)]
VM state:not at safepoint (not fully initialized)
VM Mutex/Monitor currently owned by a thread: None
GC Heap History (0 events):
No events
Deoptimization events (0 events):
No events
Classes redefined (0 events):
No events
Internal exceptions (0 events):
No events
Events (0 events):
No events
Dynamic libraries:
00400000-00401000 r-xp 00000000 08:07 4855361 /usr/lib/jvm/java-8-oracle/jre/bin/java
00600000-00601000 rw-p 00000000 08:07 4855361 /usr/lib/jvm/java-8-oracle/jre/bin/java
0128f000-012b0000 rw-p 00000000 00:00 0 [heap]
eab00000-100000000 rw-p 00000000 00:00 0
7f81cf00b000-7f81cf1a3000 rw-p 00000000 00:00 0
7f81cf1a3000-7f81cf2f8000 ---p 00000000 00:00 0
7f81cf2f8000-7f81cf3ae000 rw-p 00000000 00:00 0
7f81cf3ae000-7f81cf5a4000 ---p 00000000 00:00 0
7f81cf5a4000-7f81cf814000 rwxp 00000000 00:00 0
7f81cf814000-7f81d75a4000 ---p 00000000 00:00 0
7f81d75a4000-7f81d75bf000 r-xp 00000000 08:07 4855683 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libzip.so
7f81d75bf000-7f81d77bf000 ---p 0001b000 08:07 4855683 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libzip.so
7f81d77bf000-7f81d77c0000 rw-p 0001b000 08:07 4855683 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libzip.so
7f81d77c0000-7f81d77cb000 r-xp 00000000 08:07 1573052 /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f81d77cb000-7f81d79ca000 ---p 0000b000 08:07 1573052 /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f81d79ca000-7f81d79cb000 r--p 0000a000 08:07 1573052 /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f81d79cb000-7f81d79cc000 rw-p 0000b000 08:07 1573052 /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f81d79cc000-7f81d79d2000 rw-p 00000000 00:00 0
7f81d79d2000-7f81d79dd000 r-xp 00000000 08:07 1573056 /lib/x86_64-linux-gnu/libnss_nis-2.23.so
7f81d79dd000-7f81d7bdc000 ---p 0000b000 08:07 1573056 /lib/x86_64-linux-gnu/libnss_nis-2.23.so
7f81d7bdc000-7f81d7bdd000 r--p 0000a000 08:07 1573056 /lib/x86_64-linux-gnu/libnss_nis-2.23.so
7f81d7bdd000-7f81d7bde000 rw-p 0000b000 08:07 1573056 /lib/x86_64-linux-gnu/libnss_nis-2.23.so
7f81d7bde000-7f81d7bf4000 r-xp 00000000 08:07 1573036 /lib/x86_64-linux-gnu/libnsl-2.23.so
7f81d7bf4000-7f81d7df3000 ---p 00016000 08:07 1573036 /lib/x86_64-linux-gnu/libnsl-2.23.so
7f81d7df3000-7f81d7df4000 r--p 00015000 08:07 1573036 /lib/x86_64-linux-gnu/libnsl-2.23.so
7f81d7df4000-7f81d7df5000 rw-p 00016000 08:07 1573036 /lib/x86_64-linux-gnu/libnsl-2.23.so
7f81d7df5000-7f81d7df7000 rw-p 00000000 00:00 0
7f81d7df7000-7f81d7dff000 r-xp 00000000 08:07 1573047 /lib/x86_64-linux-gnu/libnss_compat-2.23.so
7f81d7dff000-7f81d7ffe000 ---p 00008000 08:07 1573047 /lib/x86_64-linux-gnu/libnss_compat-2.23.so
7f81d7ffe000-7f81d7fff000 r--p 00007000 08:07 1573047 /lib/x86_64-linux-gnu/libnss_compat-2.23.so
7f81d7fff000-7f81d8000000 rw-p 00008000 08:07 1573047 /lib/x86_64-linux-gnu/libnss_compat-2.23.so
7f81d8000000-7f81d8035000 rw-p 00000000 00:00 0
7f81d8035000-7f81dc000000 ---p 00000000 00:00 0
7f81dc06c000-7f81dc15c000 rw-p 00000000 00:00 0
7f81dc15c000-7f81dc187000 r-xp 00000000 08:07 4855677 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libjava.so
7f81dc187000-7f81dc386000 ---p 0002b000 08:07 4855677 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libjava.so
7f81dc386000-7f81dc388000 rw-p 0002a000 08:07 4855677 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libjava.so
7f81dc388000-7f81dc395000 r-xp 00000000 08:07 4855682 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libverify.so
7f81dc395000-7f81dc595000 ---p 0000d000 08:07 4855682 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libverify.so
7f81dc595000-7f81dc597000 rw-p 0000d000 08:07 4855682 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libverify.so
7f81dc597000-7f81dc59e000 r-xp 00000000 08:07 1573057 /lib/x86_64-linux-gnu/librt-2.23.so
7f81dc59e000-7f81dc79d000 ---p 00007000 08:07 1573057 /lib/x86_64-linux-gnu/librt-2.23.so
7f81dc79d000-7f81dc79e000 r--p 00006000 08:07 1573057 /lib/x86_64-linux-gnu/librt-2.23.so
7f81dc79e000-7f81dc79f000 rw-p 00007000 08:07 1573057 /lib/x86_64-linux-gnu/librt-2.23.so
7f81dc79f000-7f81dc8a7000 r-xp 00000000 08:07 1573035 /lib/x86_64-linux-gnu/libm-2.23.so
7f81dc8a7000-7f81dcaa6000 ---p 00108000 08:07 1573035 /lib/x86_64-linux-gnu/libm-2.23.so
7f81dcaa6000-7f81dcaa7000 r--p 00107000 08:07 1573035 /lib/x86_64-linux-gnu/libm-2.23.so
7f81dcaa7000-7f81dcaa8000 rw-p 00108000 08:07 1573035 /lib/x86_64-linux-gnu/libm-2.23.so
7f81dcaa8000-7f81dd781000 r-xp 00000000 08:07 4855660 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so
7f81dd781000-7f81dd980000 ---p 00cd9000 08:07 4855660 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so
7f81dd980000-7f81dda59000 rw-p 00cd8000 08:07 4855660 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so
7f81dda59000-7f81ddaa5000 rw-p 00000000 00:00 0
7f81ddaa5000-7f81ddc65000 r-xp 00000000 08:07 1573039 /lib/x86_64-linux-gnu/libc-2.23.so
7f81ddc65000-7f81dde65000 ---p 001c0000 08:07 1573039 /lib/x86_64-linux-gnu/libc-2.23.so
7f81dde65000-7f81dde69000 r--p 001c0000 08:07 1573039 /lib/x86_64-linux-gnu/libc-2.23.so
7f81dde69000-7f81dde6b000 rw-p 001c4000 08:07 1573039 /lib/x86_64-linux-gnu/libc-2.23.so
7f81dde6b000-7f81dde6f000 rw-p 00000000 00:00 0
7f81dde6f000-7f81dde72000 r-xp 00000000 08:07 1573041 /lib/x86_64-linux-gnu/libdl-2.23.so
7f81dde72000-7f81de071000 ---p 00003000 08:07 1573041 /lib/x86_64-linux-gnu/libdl-2.23.so
7f81de071000-7f81de072000 r--p 00002000 08:07 1573041 /lib/x86_64-linux-gnu/libdl-2.23.so
7f81de072000-7f81de073000 rw-p 00003000 08:07 1573041 /lib/x86_64-linux-gnu/libdl-2.23.so
7f81de073000-7f81de089000 r-xp 00000000 08:07 4855655 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/jli/libjli.so
7f81de089000-7f81de288000 ---p 00016000 08:07 4855655 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/jli/libjli.so
7f81de288000-7f81de289000 rw-p 00015000 08:07 4855655 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/jli/libjli.so
7f81de289000-7f81de2a1000 r-xp 00000000 08:07 1573038 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f81de2a1000-7f81de4a0000 ---p 00018000 08:07 1573038 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f81de4a0000-7f81de4a1000 r--p 00017000 08:07 1573038 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f81de4a1000-7f81de4a2000 rw-p 00018000 08:07 1573038 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f81de4a2000-7f81de4a6000 rw-p 00000000 00:00 0
7f81de4a6000-7f81de4cc000 r-xp 00000000 08:07 1573037 /lib/x86_64-linux-gnu/ld-2.23.so
7f81de5ab000-7f81de5ae000 ---p 00000000 00:00 0
7f81de5ae000-7f81de6b1000 rw-p 00000000 00:00 0
7f81de6c1000-7f81de6c9000 rw-s 00000000 08:07 5508422 /tmp/hsperfdata_lab1-10/8908
7f81de6c9000-7f81de6ca000 rw-p 00000000 00:00 0
7f81de6ca000-7f81de6cb000 r--p 00000000 00:00 0
7f81de6cb000-7f81de6cc000 r--p 00025000 08:07 1573037 /lib/x86_64-linux-gnu/ld-2.23.so
7f81de6cc000-7f81de6cd000 rw-p 00026000 08:07 1573037 /lib/x86_64-linux-gnu/ld-2.23.so
7f81de6cd000-7f81de6ce000 rw-p 00000000 00:00 0
7fffed6dc000-7fffed6fe000 rw-p 00000000 00:00 0 [stack]
7fffed7da000-7fffed7dd000 r--p 00000000 00:00 0 [vvar]
7fffed7dd000-7fffed7df000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
VM Arguments:
jvm_args: -Xms1024m -Xmx1024m -XX:ReservedCodeCacheSize=128m -XX:MaxMetaspaceSize=256m
java_command: /home/lab1-10/IdeaProjects/java-60-2/play-java-starter-example/sbt-dist/bin/sbt-launch.jar run
java_class_path (initial): /home/lab1-10/IdeaProjects/java-60-2/play-java-starter-example/sbt-dist/bin/sbt-launch.jar
Launcher Type: SUN_STANDARD
Environment Variables:
JAVA_HOME=/usr/lib/jvm/java-8-oracle
PATH=/home/lab1-10/anaconda3/bin:/home/lab1-10/bin:/home/lab1-10/.local/bin:/home/lab1-10/anaconda3/bin:/home/lab1-10/bin:/home/lab1-10/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin
SHELL=/bin/bash
DISPLAY=:0
Signal Handlers:
SIGSEGV: [libjvm.so+0xad01e0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGBUS: [libjvm.so+0xad01e0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGFPE: [libjvm.so+0x927fb0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGPIPE: [libjvm.so+0x927fb0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGXFSZ: [libjvm.so+0x927fb0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGILL: [libjvm.so+0x927fb0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGUSR1: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGUSR2: [libjvm.so+0x9297f0], sa_mask[0]=00100000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO
SIGHUP: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGINT: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGTERM: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGQUIT: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
--------------- S Y S T E M ---------------
OS:DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"
uname:Linux 4.13.0-37-generic #42~16.04.1-Ubuntu SMP Wed Mar 7 16:03:28 UTC 2018 x86_64
libc:glibc 2.23 NPTL 2.23
rlimit: STACK 8192k, CORE 0k, NPROC 15406, NOFILE 1048576, AS infinity
load average:0.35 1.59 3.09
/proc/meminfo:
MemTotal: 3996788 kB
MemFree: 104284 kB
MemAvailable: 311444 kB
Buffers: 61876 kB
Cached: 360732 kB
SwapCached: 39756 kB
Active: 2743016 kB
Inactive: 936448 kB
Active(anon): 2577636 kB
Inactive(anon): 715676 kB
Active(file): 165380 kB
Inactive(file): 220772 kB
Unevictable: 64 kB
Mlocked: 64 kB
SwapTotal: 999420 kB
SwapFree: 232716 kB
Dirty: 23548 kB
Writeback: 0 kB
AnonPages: 3217620 kB
Mapped: 202652 kB
Shmem: 36396 kB
Slab: 89224 kB
SReclaimable: 47816 kB
SUnreclaim: 41408 kB
KernelStack: 11248 kB
PageTables: 48140 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 2997812 kB
Committed_AS: 9277884 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 151324 kB
DirectMap2M: 3999744 kB
CPU:total 4 (initial active 4) (4 cores per cpu, 1 threads per core) family 6 model 58 stepping 9, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, clmul, erms, tsc, tscinvbit, tscinv
/proc/cpuinfo:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
stepping : 9
microcode : 0x17
cpu MHz : 3392.442
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c rdrand lahf_lm cpuid_fault epb pti retpoline tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 6784.88
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
stepping : 9
microcode : 0x17
cpu MHz : 3392.442
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 4
apicid : 2
initial apicid : 2
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c rdrand lahf_lm cpuid_fault epb pti retpoline tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 6784.88
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
stepping : 9
microcode : 0x17
cpu MHz : 3392.442
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 2
cpu cores : 4
apicid : 4
initial apicid : 4
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c rdrand lahf_lm cpuid_fault epb pti retpoline tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 6784.88
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
stepping : 9
microcode : 0x17
cpu MHz : 3392.442
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 3
cpu cores : 4
apicid : 6
initial apicid : 6
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c rdrand lahf_lm cpuid_fault epb pti retpoline tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 6784.88
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
Memory: 4k page, physical 3996788k(104284k free), swap 999420k(232716k free)
vm_info: Java HotSpot(TM) 64-Bit Server VM (25.161-b12) for linux-amd64 JRE (1.8.0_161-b12), built on Dec 19 2017 16:12:43 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8)
time: Tue Apr 3 14:15:09 2018
elapsed time: 0 seconds (0d 0h 0m 0s)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 716177408 bytes for committing reserved memory.
# Possible reasons:
# The system is out of physical RAM or swap space
# In 32 bit mode, the process size limit was hit
# Possible solutions:
# Reduce memory load on the system
# Increase physical memory or swap space
# Check if swap backing store is full
# Use 64 bit Java on a 64 bit OS
# Decrease Java heap size (-Xmx/-Xms)
# Decrease number of Java threads
# Decrease Java thread stack sizes (-Xss)
# Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.
#
# Out of Memory Error (os_linux.cpp:2640), pid=9077, tid=0x00007f0ffd1e5700
#
# JRE version: (8.0_161-b12) (build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.161-b12 mixed mode linux-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
--------------- T H R E A D ---------------
Current thread (0x00007f0ff400a800): JavaThread "Unknown thread" [_thread_in_vm, id=9078, stack(0x00007f0ffd0e5000,0x00007f0ffd1e6000)]
Stack: [0x00007f0ffd0e5000,0x00007f0ffd1e6000], sp=0x00007f0ffd1e43c0, free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xacf94a] VMError::report_and_die()+0x2ba
V [libjvm.so+0x50050b] report_vm_out_of_memory(char const*, int, unsigned long, VMErrorType, char const*)+0x8b
V [libjvm.so+0x92b133] os::Linux::commit_memory_impl(char*, unsigned long, bool)+0x103
V [libjvm.so+0x92b5c9] os::pd_commit_memory(char*, unsigned long, unsigned long, bool)+0x29
V [libjvm.so+0x924c0a] os::commit_memory(char*, unsigned long, unsigned long, bool)+0x2a
V [libjvm.so+0x99ab53] PSVirtualSpace::expand_by(unsigned long)+0x53
V [libjvm.so+0x98ac67] PSOldGen::initialize(ReservedSpace, unsigned long, char const*, int)+0xb7
V [libjvm.so+0x2db30a] AdjoiningGenerations::AdjoiningGenerations(ReservedSpace, GenerationSizer*, unsigned long)+0x39a
V [libjvm.so+0x94ec56] ParallelScavengeHeap::initialize()+0x1d6
V [libjvm.so+0xa979f3] Universe::initialize_heap()+0xf3
V [libjvm.so+0xa97f5e] universe_init()+0x3e
V [libjvm.so+0x641fb5] init_globals()+0x65
V [libjvm.so+0xa7c5ae] Threads::create_vm(JavaVMInitArgs*, bool*)+0x23e
V [libjvm.so+0x6d6c24] JNI_CreateJavaVM+0x74
C [libjli.so+0x797e] JavaMain+0x9e
C [libpthread.so.0+0x76ba] start_thread+0xca
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
Other Threads:
=>0x00007f0ff400a800 (exited) JavaThread "Unknown thread" [_thread_in_vm, id=9078, stack(0x00007f0ffd0e5000,0x00007f0ffd1e6000)]
VM state:not at safepoint (not fully initialized)
VM Mutex/Monitor currently owned by a thread: None
GC Heap History (0 events):
No events
Deoptimization events (0 events):
No events
Classes redefined (0 events):
No events
Internal exceptions (0 events):
No events
Events (0 events):
No events
Dynamic libraries:
00400000-00401000 r-xp 00000000 08:07 4855361 /usr/lib/jvm/java-8-oracle/jre/bin/java
00600000-00601000 rw-p 00000000 08:07 4855361 /usr/lib/jvm/java-8-oracle/jre/bin/java
011d2000-011f3000 rw-p 00000000 00:00 0 [heap]
eab00000-100000000 rw-p 00000000 00:00 0
7f0fec000000-7f0fec270000 rwxp 00000000 00:00 0
7f0fec270000-7f0ff4000000 ---p 00000000 00:00 0
7f0ff4000000-7f0ff4035000 rw-p 00000000 00:00 0
7f0ff4035000-7f0ff8000000 ---p 00000000 00:00 0
7f0ff9bb1000-7f0ff9e39000 rw-p 00000000 00:00 0
7f0ff9e39000-7f0ff9f8e000 ---p 00000000 00:00 0
7f0ff9f8e000-7f0ffa044000 rw-p 00000000 00:00 0
7f0ffa044000-7f0ffa23a000 ---p 00000000 00:00 0
7f0ffa23a000-7f0ffa255000 r-xp 00000000 08:07 4855683 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libzip.so
7f0ffa255000-7f0ffa455000 ---p 0001b000 08:07 4855683 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libzip.so
7f0ffa455000-7f0ffa456000 rw-p 0001b000 08:07 4855683 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libzip.so
7f0ffa456000-7f0ffa461000 r-xp 00000000 08:07 1573052 /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f0ffa461000-7f0ffa660000 ---p 0000b000 08:07 1573052 /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f0ffa660000-7f0ffa661000 r--p 0000a000 08:07 1573052 /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f0ffa661000-7f0ffa662000 rw-p 0000b000 08:07 1573052 /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f0ffa662000-7f0ffa668000 rw-p 00000000 00:00 0
7f0ffa668000-7f0ffa673000 r-xp 00000000 08:07 1573056 /lib/x86_64-linux-gnu/libnss_nis-2.23.so
7f0ffa673000-7f0ffa872000 ---p 0000b000 08:07 1573056 /lib/x86_64-linux-gnu/libnss_nis-2.23.so
7f0ffa872000-7f0ffa873000 r--p 0000a000 08:07 1573056 /lib/x86_64-linux-gnu/libnss_nis-2.23.so
7f0ffa873000-7f0ffa874000 rw-p 0000b000 08:07 1573056 /lib/x86_64-linux-gnu/libnss_nis-2.23.so
7f0ffa874000-7f0ffa88a000 r-xp 00000000 08:07 1573036 /lib/x86_64-linux-gnu/libnsl-2.23.so
7f0ffa88a000-7f0ffaa89000 ---p 00016000 08:07 1573036 /lib/x86_64-linux-gnu/libnsl-2.23.so
7f0ffaa89000-7f0ffaa8a000 r--p 00015000 08:07 1573036 /lib/x86_64-linux-gnu/libnsl-2.23.so
7f0ffaa8a000-7f0ffaa8b000 rw-p 00016000 08:07 1573036 /lib/x86_64-linux-gnu/libnsl-2.23.so
7f0ffaa8b000-7f0ffaa8d000 rw-p 00000000 00:00 0
7f0ffaa8d000-7f0ffaa95000 r-xp 00000000 08:07 1573047 /lib/x86_64-linux-gnu/libnss_compat-2.23.so
7f0ffaa95000-7f0ffac94000 ---p 00008000 08:07 1573047 /lib/x86_64-linux-gnu/libnss_compat-2.23.so
7f0ffac94000-7f0ffac95000 r--p 00007000 08:07 1573047 /lib/x86_64-linux-gnu/libnss_compat-2.23.so
7f0ffac95000-7f0ffac96000 rw-p 00008000 08:07 1573047 /lib/x86_64-linux-gnu/libnss_compat-2.23.so
7f0ffac96000-7f0ffacc1000 r-xp 00000000 08:07 4855677 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libjava.so
7f0ffacc1000-7f0ffaec0000 ---p 0002b000 08:07 4855677 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libjava.so
7f0ffaec0000-7f0ffaec2000 rw-p 0002a000 08:07 4855677 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libjava.so
7f0ffaec2000-7f0ffaecf000 r-xp 00000000 08:07 4855682 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libverify.so
7f0ffaecf000-7f0ffb0cf000 ---p 0000d000 08:07 4855682 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libverify.so
7f0ffb0cf000-7f0ffb0d1000 rw-p 0000d000 08:07 4855682 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libverify.so
7f0ffb0d1000-7f0ffb0d8000 r-xp 00000000 08:07 1573057 /lib/x86_64-linux-gnu/librt-2.23.so
7f0ffb0d8000-7f0ffb2d7000 ---p 00007000 08:07 1573057 /lib/x86_64-linux-gnu/librt-2.23.so
7f0ffb2d7000-7f0ffb2d8000 r--p 00006000 08:07 1573057 /lib/x86_64-linux-gnu/librt-2.23.so
7f0ffb2d8000-7f0ffb2d9000 rw-p 00007000 08:07 1573057 /lib/x86_64-linux-gnu/librt-2.23.so
7f0ffb2d9000-7f0ffb3e1000 r-xp 00000000 08:07 1573035 /lib/x86_64-linux-gnu/libm-2.23.so
7f0ffb3e1000-7f0ffb5e0000 ---p 00108000 08:07 1573035 /lib/x86_64-linux-gnu/libm-2.23.so
7f0ffb5e0000-7f0ffb5e1000 r--p 00107000 08:07 1573035 /lib/x86_64-linux-gnu/libm-2.23.so
7f0ffb5e1000-7f0ffb5e2000 rw-p 00108000 08:07 1573035 /lib/x86_64-linux-gnu/libm-2.23.so
7f0ffb5e2000-7f0ffc2bb000 r-xp 00000000 08:07 4855660 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so
7f0ffc2bb000-7f0ffc4ba000 ---p 00cd9000 08:07 4855660 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so
7f0ffc4ba000-7f0ffc593000 rw-p 00cd8000 08:07 4855660 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so
7f0ffc593000-7f0ffc5df000 rw-p 00000000 00:00 0
7f0ffc5df000-7f0ffc79f000 r-xp 00000000 08:07 1573039 /lib/x86_64-linux-gnu/libc-2.23.so
7f0ffc79f000-7f0ffc99f000 ---p 001c0000 08:07 1573039 /lib/x86_64-linux-gnu/libc-2.23.so
7f0ffc99f000-7f0ffc9a3000 r--p 001c0000 08:07 1573039 /lib/x86_64-linux-gnu/libc-2.23.so
7f0ffc9a3000-7f0ffc9a5000 rw-p 001c4000 08:07 1573039 /lib/x86_64-linux-gnu/libc-2.23.so
7f0ffc9a5000-7f0ffc9a9000 rw-p 00000000 00:00 0
7f0ffc9a9000-7f0ffc9ac000 r-xp 00000000 08:07 1573041 /lib/x86_64-linux-gnu/libdl-2.23.so
7f0ffc9ac000-7f0ffcbab000 ---p 00003000 08:07 1573041 /lib/x86_64-linux-gnu/libdl-2.23.so
7f0ffcbab000-7f0ffcbac000 r--p 00002000 08:07 1573041 /lib/x86_64-linux-gnu/libdl-2.23.so
7f0ffcbac000-7f0ffcbad000 rw-p 00003000 08:07 1573041 /lib/x86_64-linux-gnu/libdl-2.23.so
7f0ffcbad000-7f0ffcbc3000 r-xp 00000000 08:07 4855655 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/jli/libjli.so
7f0ffcbc3000-7f0ffcdc2000 ---p 00016000 08:07 4855655 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/jli/libjli.so
7f0ffcdc2000-7f0ffcdc3000 rw-p 00015000 08:07 4855655 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/jli/libjli.so
7f0ffcdc3000-7f0ffcddb000 r-xp 00000000 08:07 1573038 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f0ffcddb000-7f0ffcfda000 ---p 00018000 08:07 1573038 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f0ffcfda000-7f0ffcfdb000 r--p 00017000 08:07 1573038 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f0ffcfdb000-7f0ffcfdc000 rw-p 00018000 08:07 1573038 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f0ffcfdc000-7f0ffcfe0000 rw-p 00000000 00:00 0
7f0ffcfe0000-7f0ffd006000 r-xp 00000000 08:07 1573037 /lib/x86_64-linux-gnu/ld-2.23.so
7f0ffd0e5000-7f0ffd0e8000 ---p 00000000 00:00 0
7f0ffd0e8000-7f0ffd1eb000 rw-p 00000000 00:00 0
7f0ffd1fb000-7f0ffd203000 rw-s 00000000 08:07 5508422 /tmp/hsperfdata_lab1-10/9077
7f0ffd203000-7f0ffd204000 rw-p 00000000 00:00 0
7f0ffd204000-7f0ffd205000 r--p 00000000 00:00 0
7f0ffd205000-7f0ffd206000 r--p 00025000 08:07 1573037 /lib/x86_64-linux-gnu/ld-2.23.so
7f0ffd206000-7f0ffd207000 rw-p 00026000 08:07 1573037 /lib/x86_64-linux-gnu/ld-2.23.so
7f0ffd207000-7f0ffd208000 rw-p 00000000 00:00 0
7fffba9e4000-7fffbaa06000 rw-p 00000000 00:00 0 [stack]
7fffbaa35000-7fffbaa38000 r--p 00000000 00:00 0 [vvar]
7fffbaa38000-7fffbaa3a000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
VM Arguments:
jvm_args: -Xms1024m -Xmx1024m -XX:ReservedCodeCacheSize=128m -XX:MaxMetaspaceSize=256m
java_command: /home/lab1-10/IdeaProjects/java-60-2/play-java-starter-example/sbt-dist/bin/sbt-launch.jar run
java_class_path (initial): /home/lab1-10/IdeaProjects/java-60-2/play-java-starter-example/sbt-dist/bin/sbt-launch.jar
Launcher Type: SUN_STANDARD
Environment Variables:
JAVA_HOME=/usr/lib/jvm/java-8-oracle
PATH=/home/lab1-10/anaconda3/bin:/home/lab1-10/bin:/home/lab1-10/.local/bin:/home/lab1-10/anaconda3/bin:/home/lab1-10/bin:/home/lab1-10/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin
SHELL=/bin/bash
DISPLAY=:0
Signal Handlers:
SIGSEGV: [libjvm.so+0xad01e0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGBUS: [libjvm.so+0xad01e0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGFPE: [libjvm.so+0x927fb0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGPIPE: [libjvm.so+0x927fb0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGXFSZ: [libjvm.so+0x927fb0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGILL: [libjvm.so+0x927fb0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGUSR1: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGUSR2: [libjvm.so+0x9297f0], sa_mask[0]=00100000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO
SIGHUP: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGINT: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGTERM: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGQUIT: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
--------------- S Y S T E M ---------------
OS:DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"
uname:Linux 4.13.0-37-generic #42~16.04.1-Ubuntu SMP Wed Mar 7 16:03:28 UTC 2018 x86_64
libc:glibc 2.23 NPTL 2.23
rlimit: STACK 8192k, CORE 0k, NPROC 15406, NOFILE 1048576, AS infinity
load average:0.94 1.59 3.03
/proc/meminfo:
MemTotal: 3996788 kB
MemFree: 124924 kB
MemAvailable: 309104 kB
Buffers: 26184 kB
Cached: 372952 kB
SwapCached: 39460 kB
Active: 2773164 kB
Inactive: 882308 kB
Active(anon): 2579908 kB
Inactive(anon): 713108 kB
Active(file): 193256 kB
Inactive(file): 169200 kB
Unevictable: 64 kB
Mlocked: 64 kB
SwapTotal: 999420 kB
SwapFree: 238904 kB
Dirty: 14496 kB
Writeback: 72 kB
AnonPages: 3217232 kB
Mapped: 213008 kB
Shmem: 36660 kB
Slab: 90808 kB
SReclaimable: 49248 kB
SUnreclaim: 41560 kB
KernelStack: 11380 kB
PageTables: 47620 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 2997812 kB
Committed_AS: 9313528 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 155420 kB
DirectMap2M: 3995648 kB
CPU:total 4 (initial active 4) (4 cores per cpu, 1 threads per core) family 6 model 58 stepping 9, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, clmul, erms, tsc, tscinvbit, tscinv
/proc/cpuinfo:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
stepping : 9
microcode : 0x17
cpu MHz : 3392.442
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c rdrand lahf_lm cpuid_fault epb pti retpoline tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 6784.88
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
stepping : 9
microcode : 0x17
cpu MHz : 3392.442
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 4
apicid : 2
initial apicid : 2
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c rdrand lahf_lm cpuid_fault epb pti retpoline tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 6784.88
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
stepping : 9
microcode : 0x17
cpu MHz : 3392.442
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 2
cpu cores : 4
apicid : 4
initial apicid : 4
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c rdrand lahf_lm cpuid_fault epb pti retpoline tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 6784.88
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
stepping : 9
microcode : 0x17
cpu MHz : 3392.442
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 3
cpu cores : 4
apicid : 6
initial apicid : 6
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c rdrand lahf_lm cpuid_fault epb pti retpoline tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 6784.88
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
Memory: 4k page, physical 3996788k(124924k free), swap 999420k(238904k free)
vm_info: Java HotSpot(TM) 64-Bit Server VM (25.161-b12) for linux-amd64 JRE (1.8.0_161-b12), built on Dec 19 2017 16:12:43 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8)
time: Tue Apr 3 14:15:44 2018
elapsed time: 0 seconds (0d 0h 0m 0s)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 716177408 bytes for committing reserved memory.
# Possible reasons:
# The system is out of physical RAM or swap space
# In 32 bit mode, the process size limit was hit
# Possible solutions:
# Reduce memory load on the system
# Increase physical memory or swap space
# Check if swap backing store is full
# Use 64 bit Java on a 64 bit OS
# Decrease Java heap size (-Xmx/-Xms)
# Decrease number of Java threads
# Decrease Java thread stack sizes (-Xss)
# Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.
#
# Out of Memory Error (os_linux.cpp:2640), pid=9171, tid=0x00007f3a85b09700
#
# JRE version: (8.0_161-b12) (build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.161-b12 mixed mode linux-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
--------------- T H R E A D ---------------
Current thread (0x00007f3a7c00a800): JavaThread "Unknown thread" [_thread_in_vm, id=9172, stack(0x00007f3a85a09000,0x00007f3a85b0a000)]
Stack: [0x00007f3a85a09000,0x00007f3a85b0a000], sp=0x00007f3a85b083c0, free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xacf94a] VMError::report_and_die()+0x2ba
V [libjvm.so+0x50050b] report_vm_out_of_memory(char const*, int, unsigned long, VMErrorType, char const*)+0x8b
V [libjvm.so+0x92b133] os::Linux::commit_memory_impl(char*, unsigned long, bool)+0x103
V [libjvm.so+0x92b5c9] os::pd_commit_memory(char*, unsigned long, unsigned long, bool)+0x29
V [libjvm.so+0x924c0a] os::commit_memory(char*, unsigned long, unsigned long, bool)+0x2a
V [libjvm.so+0x99ab53] PSVirtualSpace::expand_by(unsigned long)+0x53
V [libjvm.so+0x98ac67] PSOldGen::initialize(ReservedSpace, unsigned long, char const*, int)+0xb7
V [libjvm.so+0x2db30a] AdjoiningGenerations::AdjoiningGenerations(ReservedSpace, GenerationSizer*, unsigned long)+0x39a
V [libjvm.so+0x94ec56] ParallelScavengeHeap::initialize()+0x1d6
V [libjvm.so+0xa979f3] Universe::initialize_heap()+0xf3
V [libjvm.so+0xa97f5e] universe_init()+0x3e
V [libjvm.so+0x641fb5] init_globals()+0x65
V [libjvm.so+0xa7c5ae] Threads::create_vm(JavaVMInitArgs*, bool*)+0x23e
V [libjvm.so+0x6d6c24] JNI_CreateJavaVM+0x74
C [libjli.so+0x797e] JavaMain+0x9e
C [libpthread.so.0+0x76ba] start_thread+0xca
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
Other Threads:
=>0x00007f3a7c00a800 (exited) JavaThread "Unknown thread" [_thread_in_vm, id=9172, stack(0x00007f3a85a09000,0x00007f3a85b0a000)]
VM state:not at safepoint (not fully initialized)
VM Mutex/Monitor currently owned by a thread: None
GC Heap History (0 events):
No events
Deoptimization events (0 events):
No events
Classes redefined (0 events):
No events
Internal exceptions (0 events):
No events
Events (0 events):
No events
Dynamic libraries:
00400000-00401000 r-xp 00000000 08:07 4855361 /usr/lib/jvm/java-8-oracle/jre/bin/java
00600000-00601000 rw-p 00000000 08:07 4855361 /usr/lib/jvm/java-8-oracle/jre/bin/java
015b7000-015d8000 rw-p 00000000 00:00 0 [heap]
eab00000-100000000 rw-p 00000000 00:00 0
7f3a74000000-7f3a74270000 rwxp 00000000 00:00 0
7f3a74270000-7f3a7c000000 ---p 00000000 00:00 0
7f3a7c000000-7f3a7c035000 rw-p 00000000 00:00 0
7f3a7c035000-7f3a80000000 ---p 00000000 00:00 0
7f3a824d5000-7f3a8275d000 rw-p 00000000 00:00 0
7f3a8275d000-7f3a828b2000 ---p 00000000 00:00 0
7f3a828b2000-7f3a82968000 rw-p 00000000 00:00 0
7f3a82968000-7f3a82b5e000 ---p 00000000 00:00 0
7f3a82b5e000-7f3a82b79000 r-xp 00000000 08:07 4855683 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libzip.so
7f3a82b79000-7f3a82d79000 ---p 0001b000 08:07 4855683 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libzip.so
7f3a82d79000-7f3a82d7a000 rw-p 0001b000 08:07 4855683 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libzip.so
7f3a82d7a000-7f3a82d85000 r-xp 00000000 08:07 1573052 /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f3a82d85000-7f3a82f84000 ---p 0000b000 08:07 1573052 /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f3a82f84000-7f3a82f85000 r--p 0000a000 08:07 1573052 /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f3a82f85000-7f3a82f86000 rw-p 0000b000 08:07 1573052 /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f3a82f86000-7f3a82f8c000 rw-p 00000000 00:00 0
7f3a82f8c000-7f3a82f97000 r-xp 00000000 08:07 1573056 /lib/x86_64-linux-gnu/libnss_nis-2.23.so
7f3a82f97000-7f3a83196000 ---p 0000b000 08:07 1573056 /lib/x86_64-linux-gnu/libnss_nis-2.23.so
7f3a83196000-7f3a83197000 r--p 0000a000 08:07 1573056 /lib/x86_64-linux-gnu/libnss_nis-2.23.so
7f3a83197000-7f3a83198000 rw-p 0000b000 08:07 1573056 /lib/x86_64-linux-gnu/libnss_nis-2.23.so
7f3a83198000-7f3a831ae000 r-xp 00000000 08:07 1573036 /lib/x86_64-linux-gnu/libnsl-2.23.so
7f3a831ae000-7f3a833ad000 ---p 00016000 08:07 1573036 /lib/x86_64-linux-gnu/libnsl-2.23.so
7f3a833ad000-7f3a833ae000 r--p 00015000 08:07 1573036 /lib/x86_64-linux-gnu/libnsl-2.23.so
7f3a833ae000-7f3a833af000 rw-p 00016000 08:07 1573036 /lib/x86_64-linux-gnu/libnsl-2.23.so
7f3a833af000-7f3a833b1000 rw-p 00000000 00:00 0
7f3a833b1000-7f3a833b9000 r-xp 00000000 08:07 1573047 /lib/x86_64-linux-gnu/libnss_compat-2.23.so
7f3a833b9000-7f3a835b8000 ---p 00008000 08:07 1573047 /lib/x86_64-linux-gnu/libnss_compat-2.23.so
7f3a835b8000-7f3a835b9000 r--p 00007000 08:07 1573047 /lib/x86_64-linux-gnu/libnss_compat-2.23.so
7f3a835b9000-7f3a835ba000 rw-p 00008000 08:07 1573047 /lib/x86_64-linux-gnu/libnss_compat-2.23.so
7f3a835ba000-7f3a835e5000 r-xp 00000000 08:07 4855677 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libjava.so
7f3a835e5000-7f3a837e4000 ---p 0002b000 08:07 4855677 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libjava.so
7f3a837e4000-7f3a837e6000 rw-p 0002a000 08:07 4855677 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libjava.so
7f3a837e6000-7f3a837f3000 r-xp 00000000 08:07 4855682 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libverify.so
7f3a837f3000-7f3a839f3000 ---p 0000d000 08:07 4855682 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libverify.so
7f3a839f3000-7f3a839f5000 rw-p 0000d000 08:07 4855682 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libverify.so
7f3a839f5000-7f3a839fc000 r-xp 00000000 08:07 1573057 /lib/x86_64-linux-gnu/librt-2.23.so
7f3a839fc000-7f3a83bfb000 ---p 00007000 08:07 1573057 /lib/x86_64-linux-gnu/librt-2.23.so
7f3a83bfb000-7f3a83bfc000 r--p 00006000 08:07 1573057 /lib/x86_64-linux-gnu/librt-2.23.so
7f3a83bfc000-7f3a83bfd000 rw-p 00007000 08:07 1573057 /lib/x86_64-linux-gnu/librt-2.23.so
7f3a83bfd000-7f3a83d05000 r-xp 00000000 08:07 1573035 /lib/x86_64-linux-gnu/libm-2.23.so
7f3a83d05000-7f3a83f04000 ---p 00108000 08:07 1573035 /lib/x86_64-linux-gnu/libm-2.23.so
7f3a83f04000-7f3a83f05000 r--p 00107000 08:07 1573035 /lib/x86_64-linux-gnu/libm-2.23.so
7f3a83f05000-7f3a83f06000 rw-p 00108000 08:07 1573035 /lib/x86_64-linux-gnu/libm-2.23.so
7f3a83f06000-7f3a84bdf000 r-xp 00000000 08:07 4855660 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so
7f3a84bdf000-7f3a84dde000 ---p 00cd9000 08:07 4855660 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so
7f3a84dde000-7f3a84eb7000 rw-p 00cd8000 08:07 4855660 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so
7f3a84eb7000-7f3a84f03000 rw-p 00000000 00:00 0
7f3a84f03000-7f3a850c3000 r-xp 00000000 08:07 1573039 /lib/x86_64-linux-gnu/libc-2.23.so
7f3a850c3000-7f3a852c3000 ---p 001c0000 08:07 1573039 /lib/x86_64-linux-gnu/libc-2.23.so
7f3a852c3000-7f3a852c7000 r--p 001c0000 08:07 1573039 /lib/x86_64-linux-gnu/libc-2.23.so
7f3a852c7000-7f3a852c9000 rw-p 001c4000 08:07 1573039 /lib/x86_64-linux-gnu/libc-2.23.so
7f3a852c9000-7f3a852cd000 rw-p 00000000 00:00 0
7f3a852cd000-7f3a852d0000 r-xp 00000000 08:07 1573041 /lib/x86_64-linux-gnu/libdl-2.23.so
7f3a852d0000-7f3a854cf000 ---p 00003000 08:07 1573041 /lib/x86_64-linux-gnu/libdl-2.23.so
7f3a854cf000-7f3a854d0000 r--p 00002000 08:07 1573041 /lib/x86_64-linux-gnu/libdl-2.23.so
7f3a854d0000-7f3a854d1000 rw-p 00003000 08:07 1573041 /lib/x86_64-linux-gnu/libdl-2.23.so
7f3a854d1000-7f3a854e7000 r-xp 00000000 08:07 4855655 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/jli/libjli.so
7f3a854e7000-7f3a856e6000 ---p 00016000 08:07 4855655 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/jli/libjli.so
7f3a856e6000-7f3a856e7000 rw-p 00015000 08:07 4855655 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/jli/libjli.so
7f3a856e7000-7f3a856ff000 r-xp 00000000 08:07 1573038 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f3a856ff000-7f3a858fe000 ---p 00018000 08:07 1573038 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f3a858fe000-7f3a858ff000 r--p 00017000 08:07 1573038 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f3a858ff000-7f3a85900000 rw-p 00018000 08:07 1573038 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f3a85900000-7f3a85904000 rw-p 00000000 00:00 0
7f3a85904000-7f3a8592a000 r-xp 00000000 08:07 1573037 /lib/x86_64-linux-gnu/ld-2.23.so
7f3a85a09000-7f3a85a0c000 ---p 00000000 00:00 0
7f3a85a0c000-7f3a85b0f000 rw-p 00000000 00:00 0
7f3a85b1f000-7f3a85b27000 rw-s 00000000 08:07 5508422 /tmp/hsperfdata_lab1-10/9171
7f3a85b27000-7f3a85b28000 rw-p 00000000 00:00 0
7f3a85b28000-7f3a85b29000 r--p 00000000 00:00 0
7f3a85b29000-7f3a85b2a000 r--p 00025000 08:07 1573037 /lib/x86_64-linux-gnu/ld-2.23.so
7f3a85b2a000-7f3a85b2b000 rw-p 00026000 08:07 1573037 /lib/x86_64-linux-gnu/ld-2.23.so
7f3a85b2b000-7f3a85b2c000 rw-p 00000000 00:00 0
7ffed7f6d000-7ffed7f8f000 rw-p 00000000 00:00 0 [stack]
7ffed7ff9000-7ffed7ffc000 r--p 00000000 00:00 0 [vvar]
7ffed7ffc000-7ffed7ffe000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
VM Arguments:
jvm_args: -Xms1024m -Xmx1024m -XX:ReservedCodeCacheSize=128m -XX:MaxMetaspaceSize=256m
java_command: /home/lab1-10/IdeaProjects/java-60-2/play-java-starter-example/sbt-dist/bin/sbt-launch.jar run
java_class_path (initial): /home/lab1-10/IdeaProjects/java-60-2/play-java-starter-example/sbt-dist/bin/sbt-launch.jar
Launcher Type: SUN_STANDARD
Environment Variables:
JAVA_HOME=/usr/lib/jvm/java-8-oracle
PATH=/home/lab1-10/anaconda3/bin:/home/lab1-10/bin:/home/lab1-10/.local/bin:/home/lab1-10/anaconda3/bin:/home/lab1-10/bin:/home/lab1-10/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin
SHELL=/bin/bash
DISPLAY=:0
Signal Handlers:
SIGSEGV: [libjvm.so+0xad01e0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGBUS: [libjvm.so+0xad01e0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGFPE: [libjvm.so+0x927fb0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGPIPE: [libjvm.so+0x927fb0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGXFSZ: [libjvm.so+0x927fb0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGILL: [libjvm.so+0x927fb0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGUSR1: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGUSR2: [libjvm.so+0x9297f0], sa_mask[0]=00100000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO
SIGHUP: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGINT: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGTERM: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGQUIT: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
--------------- S Y S T E M ---------------
OS:DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"
uname:Linux 4.13.0-37-generic #42~16.04.1-Ubuntu SMP Wed Mar 7 16:03:28 UTC 2018 x86_64
libc:glibc 2.23 NPTL 2.23
rlimit: STACK 8192k, CORE 0k, NPROC 15406, NOFILE 1048576, AS infinity
load average:1.49 1.66 3.01
/proc/meminfo:
MemTotal: 3996788 kB
MemFree: 117280 kB
MemAvailable: 254668 kB
Buffers: 16056 kB
Cached: 369668 kB
SwapCached: 46344 kB
Active: 2783880 kB
Inactive: 877404 kB
Active(anon): 2613476 kB
Inactive(anon): 731928 kB
Active(file): 170404 kB
Inactive(file): 145476 kB
Unevictable: 64 kB
Mlocked: 64 kB
SwapTotal: 999420 kB
SwapFree: 229716 kB
Dirty: 964 kB
Writeback: 32 kB
AnonPages: 3229524 kB
Mapped: 236524 kB
Shmem: 69924 kB
Slab: 90396 kB
SReclaimable: 48816 kB
SUnreclaim: 41580 kB
KernelStack: 11600 kB
PageTables: 48632 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 2997812 kB
Committed_AS: 9536856 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 157468 kB
DirectMap2M: 3993600 kB
CPU:total 4 (initial active 4) (4 cores per cpu, 1 threads per core) family 6 model 58 stepping 9, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, clmul, erms, tsc, tscinvbit, tscinv
/proc/cpuinfo:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
stepping : 9
microcode : 0x17
cpu MHz : 3392.442
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c rdrand lahf_lm cpuid_fault epb pti retpoline tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 6784.88
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
stepping : 9
microcode : 0x17
cpu MHz : 3392.442
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 4
apicid : 2
initial apicid : 2
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c rdrand lahf_lm cpuid_fault epb pti retpoline tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 6784.88
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
stepping : 9
microcode : 0x17
cpu MHz : 3392.442
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 2
cpu cores : 4
apicid : 4
initial apicid : 4
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c rdrand lahf_lm cpuid_fault epb pti retpoline tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 6784.88
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
stepping : 9
microcode : 0x17
cpu MHz : 3392.442
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 3
cpu cores : 4
apicid : 6
initial apicid : 6
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c rdrand lahf_lm cpuid_fault epb pti retpoline tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 6784.88
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
Memory: 4k page, physical 3996788k(117280k free), swap 999420k(229716k free)
vm_info: Java HotSpot(TM) 64-Bit Server VM (25.161-b12) for linux-amd64 JRE (1.8.0_161-b12), built on Dec 19 2017 16:12:43 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8)
time: Tue Apr 3 14:16:08 2018
elapsed time: 0 seconds (0d 0h 0m 0s)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 716177408 bytes for committing reserved memory.
# Possible reasons:
# The system is out of physical RAM or swap space
# In 32 bit mode, the process size limit was hit
# Possible solutions:
# Reduce memory load on the system
# Increase physical memory or swap space
# Check if swap backing store is full
# Use 64 bit Java on a 64 bit OS
# Decrease Java heap size (-Xmx/-Xms)
# Decrease number of Java threads
# Decrease Java thread stack sizes (-Xss)
# Set larger code cache with -XX:ReservedCodeCacheSize=
# This output file may be truncated or incomplete.
#
# Out of Memory Error (os_linux.cpp:2640), pid=9226, tid=0x00007f47a0d43700
#
# JRE version: (8.0_161-b12) (build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.161-b12 mixed mode linux-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
--------------- T H R E A D ---------------
Current thread (0x00007f479800a800): JavaThread "Unknown thread" [_thread_in_vm, id=9227, stack(0x00007f47a0c43000,0x00007f47a0d44000)]
Stack: [0x00007f47a0c43000,0x00007f47a0d44000], sp=0x00007f47a0d423c0, free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.so+0xacf94a] VMError::report_and_die()+0x2ba
V [libjvm.so+0x50050b] report_vm_out_of_memory(char const*, int, unsigned long, VMErrorType, char const*)+0x8b
V [libjvm.so+0x92b133] os::Linux::commit_memory_impl(char*, unsigned long, bool)+0x103
V [libjvm.so+0x92b5c9] os::pd_commit_memory(char*, unsigned long, unsigned long, bool)+0x29
V [libjvm.so+0x924c0a] os::commit_memory(char*, unsigned long, unsigned long, bool)+0x2a
V [libjvm.so+0x99ab53] PSVirtualSpace::expand_by(unsigned long)+0x53
V [libjvm.so+0x98ac67] PSOldGen::initialize(ReservedSpace, unsigned long, char const*, int)+0xb7
V [libjvm.so+0x2db30a] AdjoiningGenerations::AdjoiningGenerations(ReservedSpace, GenerationSizer*, unsigned long)+0x39a
V [libjvm.so+0x94ec56] ParallelScavengeHeap::initialize()+0x1d6
V [libjvm.so+0xa979f3] Universe::initialize_heap()+0xf3
V [libjvm.so+0xa97f5e] universe_init()+0x3e
V [libjvm.so+0x641fb5] init_globals()+0x65
V [libjvm.so+0xa7c5ae] Threads::create_vm(JavaVMInitArgs*, bool*)+0x23e
V [libjvm.so+0x6d6c24] JNI_CreateJavaVM+0x74
C [libjli.so+0x797e] JavaMain+0x9e
C [libpthread.so.0+0x76ba] start_thread+0xca
--------------- P R O C E S S ---------------
Java Threads: ( => current thread )
Other Threads:
=>0x00007f479800a800 (exited) JavaThread "Unknown thread" [_thread_in_vm, id=9227, stack(0x00007f47a0c43000,0x00007f47a0d44000)]
VM state:not at safepoint (not fully initialized)
VM Mutex/Monitor currently owned by a thread: None
GC Heap History (0 events):
No events
Deoptimization events (0 events):
No events
Classes redefined (0 events):
No events
Internal exceptions (0 events):
No events
Events (0 events):
No events
Dynamic libraries:
00400000-00401000 r-xp 00000000 08:07 4855361 /usr/lib/jvm/java-8-oracle/jre/bin/java
00600000-00601000 rw-p 00000000 08:07 4855361 /usr/lib/jvm/java-8-oracle/jre/bin/java
00f24000-00f45000 rw-p 00000000 00:00 0 [heap]
eab00000-100000000 rw-p 00000000 00:00 0
7f4790000000-7f4790270000 rwxp 00000000 00:00 0
7f4790270000-7f4798000000 ---p 00000000 00:00 0
7f4798000000-7f4798035000 rw-p 00000000 00:00 0
7f4798035000-7f479c000000 ---p 00000000 00:00 0
7f479d70f000-7f479d997000 rw-p 00000000 00:00 0
7f479d997000-7f479daec000 ---p 00000000 00:00 0
7f479daec000-7f479dba2000 rw-p 00000000 00:00 0
7f479dba2000-7f479dd98000 ---p 00000000 00:00 0
7f479dd98000-7f479ddb3000 r-xp 00000000 08:07 4855683 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libzip.so
7f479ddb3000-7f479dfb3000 ---p 0001b000 08:07 4855683 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libzip.so
7f479dfb3000-7f479dfb4000 rw-p 0001b000 08:07 4855683 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libzip.so
7f479dfb4000-7f479dfbf000 r-xp 00000000 08:07 1573052 /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f479dfbf000-7f479e1be000 ---p 0000b000 08:07 1573052 /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f479e1be000-7f479e1bf000 r--p 0000a000 08:07 1573052 /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f479e1bf000-7f479e1c0000 rw-p 0000b000 08:07 1573052 /lib/x86_64-linux-gnu/libnss_files-2.23.so
7f479e1c0000-7f479e1c6000 rw-p 00000000 00:00 0
7f479e1c6000-7f479e1d1000 r-xp 00000000 08:07 1573056 /lib/x86_64-linux-gnu/libnss_nis-2.23.so
7f479e1d1000-7f479e3d0000 ---p 0000b000 08:07 1573056 /lib/x86_64-linux-gnu/libnss_nis-2.23.so
7f479e3d0000-7f479e3d1000 r--p 0000a000 08:07 1573056 /lib/x86_64-linux-gnu/libnss_nis-2.23.so
7f479e3d1000-7f479e3d2000 rw-p 0000b000 08:07 1573056 /lib/x86_64-linux-gnu/libnss_nis-2.23.so
7f479e3d2000-7f479e3e8000 r-xp 00000000 08:07 1573036 /lib/x86_64-linux-gnu/libnsl-2.23.so
7f479e3e8000-7f479e5e7000 ---p 00016000 08:07 1573036 /lib/x86_64-linux-gnu/libnsl-2.23.so
7f479e5e7000-7f479e5e8000 r--p 00015000 08:07 1573036 /lib/x86_64-linux-gnu/libnsl-2.23.so
7f479e5e8000-7f479e5e9000 rw-p 00016000 08:07 1573036 /lib/x86_64-linux-gnu/libnsl-2.23.so
7f479e5e9000-7f479e5eb000 rw-p 00000000 00:00 0
7f479e5eb000-7f479e5f3000 r-xp 00000000 08:07 1573047 /lib/x86_64-linux-gnu/libnss_compat-2.23.so
7f479e5f3000-7f479e7f2000 ---p 00008000 08:07 1573047 /lib/x86_64-linux-gnu/libnss_compat-2.23.so
7f479e7f2000-7f479e7f3000 r--p 00007000 08:07 1573047 /lib/x86_64-linux-gnu/libnss_compat-2.23.so
7f479e7f3000-7f479e7f4000 rw-p 00008000 08:07 1573047 /lib/x86_64-linux-gnu/libnss_compat-2.23.so
7f479e7f4000-7f479e81f000 r-xp 00000000 08:07 4855677 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libjava.so
7f479e81f000-7f479ea1e000 ---p 0002b000 08:07 4855677 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libjava.so
7f479ea1e000-7f479ea20000 rw-p 0002a000 08:07 4855677 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libjava.so
7f479ea20000-7f479ea2d000 r-xp 00000000 08:07 4855682 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libverify.so
7f479ea2d000-7f479ec2d000 ---p 0000d000 08:07 4855682 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libverify.so
7f479ec2d000-7f479ec2f000 rw-p 0000d000 08:07 4855682 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/libverify.so
7f479ec2f000-7f479ec36000 r-xp 00000000 08:07 1573057 /lib/x86_64-linux-gnu/librt-2.23.so
7f479ec36000-7f479ee35000 ---p 00007000 08:07 1573057 /lib/x86_64-linux-gnu/librt-2.23.so
7f479ee35000-7f479ee36000 r--p 00006000 08:07 1573057 /lib/x86_64-linux-gnu/librt-2.23.so
7f479ee36000-7f479ee37000 rw-p 00007000 08:07 1573057 /lib/x86_64-linux-gnu/librt-2.23.so
7f479ee37000-7f479ef3f000 r-xp 00000000 08:07 1573035 /lib/x86_64-linux-gnu/libm-2.23.so
7f479ef3f000-7f479f13e000 ---p 00108000 08:07 1573035 /lib/x86_64-linux-gnu/libm-2.23.so
7f479f13e000-7f479f13f000 r--p 00107000 08:07 1573035 /lib/x86_64-linux-gnu/libm-2.23.so
7f479f13f000-7f479f140000 rw-p 00108000 08:07 1573035 /lib/x86_64-linux-gnu/libm-2.23.so
7f479f140000-7f479fe19000 r-xp 00000000 08:07 4855660 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so
7f479fe19000-7f47a0018000 ---p 00cd9000 08:07 4855660 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so
7f47a0018000-7f47a00f1000 rw-p 00cd8000 08:07 4855660 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/server/libjvm.so
7f47a00f1000-7f47a013d000 rw-p 00000000 00:00 0
7f47a013d000-7f47a02fd000 r-xp 00000000 08:07 1573039 /lib/x86_64-linux-gnu/libc-2.23.so
7f47a02fd000-7f47a04fd000 ---p 001c0000 08:07 1573039 /lib/x86_64-linux-gnu/libc-2.23.so
7f47a04fd000-7f47a0501000 r--p 001c0000 08:07 1573039 /lib/x86_64-linux-gnu/libc-2.23.so
7f47a0501000-7f47a0503000 rw-p 001c4000 08:07 1573039 /lib/x86_64-linux-gnu/libc-2.23.so
7f47a0503000-7f47a0507000 rw-p 00000000 00:00 0
7f47a0507000-7f47a050a000 r-xp 00000000 08:07 1573041 /lib/x86_64-linux-gnu/libdl-2.23.so
7f47a050a000-7f47a0709000 ---p 00003000 08:07 1573041 /lib/x86_64-linux-gnu/libdl-2.23.so
7f47a0709000-7f47a070a000 r--p 00002000 08:07 1573041 /lib/x86_64-linux-gnu/libdl-2.23.so
7f47a070a000-7f47a070b000 rw-p 00003000 08:07 1573041 /lib/x86_64-linux-gnu/libdl-2.23.so
7f47a070b000-7f47a0721000 r-xp 00000000 08:07 4855655 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/jli/libjli.so
7f47a0721000-7f47a0920000 ---p 00016000 08:07 4855655 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/jli/libjli.so
7f47a0920000-7f47a0921000 rw-p 00015000 08:07 4855655 /usr/lib/jvm/java-8-oracle/jre/lib/amd64/jli/libjli.so
7f47a0921000-7f47a0939000 r-xp 00000000 08:07 1573038 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f47a0939000-7f47a0b38000 ---p 00018000 08:07 1573038 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f47a0b38000-7f47a0b39000 r--p 00017000 08:07 1573038 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f47a0b39000-7f47a0b3a000 rw-p 00018000 08:07 1573038 /lib/x86_64-linux-gnu/libpthread-2.23.so
7f47a0b3a000-7f47a0b3e000 rw-p 00000000 00:00 0
7f47a0b3e000-7f47a0b64000 r-xp 00000000 08:07 1573037 /lib/x86_64-linux-gnu/ld-2.23.so
7f47a0c43000-7f47a0c46000 ---p 00000000 00:00 0
7f47a0c46000-7f47a0d49000 rw-p 00000000 00:00 0
7f47a0d59000-7f47a0d61000 rw-s 00000000 08:07 5508422 /tmp/hsperfdata_lab1-10/9226
7f47a0d61000-7f47a0d62000 rw-p 00000000 00:00 0
7f47a0d62000-7f47a0d63000 r--p 00000000 00:00 0
7f47a0d63000-7f47a0d64000 r--p 00025000 08:07 1573037 /lib/x86_64-linux-gnu/ld-2.23.so
7f47a0d64000-7f47a0d65000 rw-p 00026000 08:07 1573037 /lib/x86_64-linux-gnu/ld-2.23.so
7f47a0d65000-7f47a0d66000 rw-p 00000000 00:00 0
7fffdabfa000-7fffdac1c000 rw-p 00000000 00:00 0 [stack]
7fffdacd4000-7fffdacd7000 r--p 00000000 00:00 0 [vvar]
7fffdacd7000-7fffdacd9000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
VM Arguments:
jvm_args: -Xms1024m -Xmx1024m -XX:ReservedCodeCacheSize=128m -XX:MaxMetaspaceSize=256m
java_command: /home/lab1-10/IdeaProjects/java-60-2/play-java-starter-example/sbt-dist/bin/sbt-launch.jar run
java_class_path (initial): /home/lab1-10/IdeaProjects/java-60-2/play-java-starter-example/sbt-dist/bin/sbt-launch.jar
Launcher Type: SUN_STANDARD
Environment Variables:
JAVA_HOME=/usr/lib/jvm/java-8-oracle
PATH=/home/lab1-10/anaconda3/bin:/home/lab1-10/bin:/home/lab1-10/.local/bin:/home/lab1-10/anaconda3/bin:/home/lab1-10/bin:/home/lab1-10/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin
SHELL=/bin/bash
DISPLAY=:0
Signal Handlers:
SIGSEGV: [libjvm.so+0xad01e0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGBUS: [libjvm.so+0xad01e0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGFPE: [libjvm.so+0x927fb0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGPIPE: [libjvm.so+0x927fb0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGXFSZ: [libjvm.so+0x927fb0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGILL: [libjvm.so+0x927fb0], sa_mask[0]=11111111011111111101111111111110, sa_flags=SA_RESTART|SA_SIGINFO
SIGUSR1: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGUSR2: [libjvm.so+0x9297f0], sa_mask[0]=00100000000000000000000000000000, sa_flags=SA_RESTART|SA_SIGINFO
SIGHUP: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGINT: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGTERM: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
SIGQUIT: SIG_DFL, sa_mask[0]=00000000000000000000000000000000, sa_flags=none
--------------- S Y S T E M ---------------
OS:DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"
uname:Linux 4.13.0-37-generic #42~16.04.1-Ubuntu SMP Wed Mar 7 16:03:28 UTC 2018 x86_64
libc:glibc 2.23 NPTL 2.23
rlimit: STACK 8192k, CORE 0k, NPROC 15406, NOFILE 1048576, AS infinity
load average:1.49 1.66 3.01
/proc/meminfo:
MemTotal: 3996788 kB
MemFree: 116684 kB
MemAvailable: 254068 kB
Buffers: 16060 kB
Cached: 369740 kB
SwapCached: 46344 kB
Active: 2784692 kB
Inactive: 876968 kB
Active(anon): 2613852 kB
Inactive(anon): 731932 kB
Active(file): 170840 kB
Inactive(file): 145036 kB
Unevictable: 64 kB
Mlocked: 64 kB
SwapTotal: 999420 kB
SwapFree: 229716 kB
Dirty: 1004 kB
Writeback: 0 kB
AnonPages: 3229576 kB
Mapped: 236472 kB
Shmem: 69924 kB
Slab: 90396 kB
SReclaimable: 48816 kB
SUnreclaim: 41580 kB
KernelStack: 11632 kB
PageTables: 48688 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 2997812 kB
Committed_AS: 9541960 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 157468 kB
DirectMap2M: 3993600 kB
CPU:total 4 (initial active 4) (4 cores per cpu, 1 threads per core) family 6 model 58 stepping 9, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, avx, clmul, erms, tsc, tscinvbit, tscinv
/proc/cpuinfo:
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
stepping : 9
microcode : 0x17
cpu MHz : 3392.442
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c rdrand lahf_lm cpuid_fault epb pti retpoline tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 6784.88
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
stepping : 9
microcode : 0x17
cpu MHz : 3392.442
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 4
apicid : 2
initial apicid : 2
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c rdrand lahf_lm cpuid_fault epb pti retpoline tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 6784.88
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
stepping : 9
microcode : 0x17
cpu MHz : 3392.442
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 2
cpu cores : 4
apicid : 4
initial apicid : 4
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c rdrand lahf_lm cpuid_fault epb pti retpoline tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 6784.88
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 58
model name : Intel(R) Core(TM) i5-3570 CPU @ 3.40GHz
stepping : 9
microcode : 0x17
cpu MHz : 3392.442
cache size : 6144 KB
physical id : 0
siblings : 4
core id : 3
cpu cores : 4
apicid : 6
initial apicid : 6
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx f16c rdrand lahf_lm cpuid_fault epb pti retpoline tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms xsaveopt dtherm ida arat pln pts
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 6784.88
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
Memory: 4k page, physical 3996788k(116684k free), swap 999420k(229716k free)
vm_info: Java HotSpot(TM) 64-Bit Server VM (25.161-b12) for linux-amd64 JRE (1.8.0_161-b12), built on Dec 19 2017 16:12:43 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8)
time: Tue Apr 3 14:16:10 2018
elapsed time: 0 seconds (0d 0h 0m 0s)
<?xml version="1.0" encoding="UTF-8"?>
<module external.linked.project.id="play-java-starter-example" external.linked.project.path="$MODULE_DIR$" external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE" external.system.module.group="" external.system.module.version="unspecified" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.gradle" />
<excludeFolder url="file://$MODULE_DIR$/build" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
// The Play plugin
addSbtPlugin("com.typesafe.play" % "sbt-plugin" % "2.6.12")
// Play enhancer - this automatically generates getters/setters for public fields
// and rewrites accessors of these fields to use the getters/setters. Remove this
// plugin if you prefer not to have this feature, or disable on a per project
// basis using disablePlugins(PlayEnhancer) in your build.sbt
addSbtPlugin("com.typesafe.sbt" % "sbt-play-enhancer" % "1.2.2")
if (window.console) {
console.log("Welcome to your Play application's JavaScript!");
}
/*
* Copyright (C) 2009-2017 Lightbend Inc. <https://www.lightbend.com>
*/
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;}
table{border-collapse:collapse;border-spacing:0;}
caption,th,td{text-align:left;font-weight:normal;}
form legend{display:none;}
blockquote:before,blockquote:after,q:before,q:after{content:"";}
blockquote,q{quotes:"" "";}
ol,ul{list-style:none;}
hr{display:none;visibility:hidden;}
:focus{outline:0;}
article{}article h1,article h2,article h3,article h4,article h5,article h6{color:#333;font-weight:bold;line-height:1.25;margin-top:1.3em;}
article h1 a,article h2 a,article h3 a,article h4 a,article h5 a,article h6 a{font-weight:inherit;color:#333;}article h1 a:hover,article h2 a:hover,article h3 a:hover,article h4 a:hover,article h5 a:hover,article h6 a:hover{color:#333;}
article h1{font-size:36px;margin:0 0 18px;border-bottom:4px solid #eee;}
article h2{font-size:25px;margin-bottom:9px;border-bottom:2px solid #eee;}
article h3{font-size:18px;margin-bottom:9px;}
article h4{font-size:15px;margin-bottom:3px;}
article h5{font-size:12px;font-weight:normal;margin-bottom:3px;}
article .subheader{color:#777;font-weight:300;margin-bottom:24px;}
article p{line-height:1.3em;margin:1em 0;}
article p img{margin:0;}
article p.lead{font-size:18px;font-size:1.8rem;line-height:1.5;}
article li>p:first-child{margin-top:0;}
article li>p:last-child{margin-bottom:0;}
article ul li,article ol li{position:relative;padding:4px 0 4px 14px;}article ul li ol,article ol li ol,article ul li ul,article ol li ul{margin-left:20px;}
article ul li:before,article ol li:before{position:absolute;top:8px;left:0;content:"►";color:#ccc;font-size:10px;margin-right:5px;}
article>ol{counter-reset:section;}article>ol li:before{color:#ccc;font-size:13px;}
article>ol>li{padding:6px 0 4px 20px;counter-reset:chapter;}article>ol>li:before{content:counter(section) ".";counter-increment:section;}
article>ol>li>ol>li{padding:6px 0 4px 30px;counter-reset:item;}article>ol>li>ol>li:before{content:counter(section) "." counter(chapter);counter-increment:chapter;}
article>ol>li>ol>li>ol>li{padding:6px 0 4px 40px;}article>ol>li>ol>li>ol>li:before{content:counter(section) "." counter(chapter) "." counter(item);counter-increment:item;}
article em,article i{font-style:italic;line-height:inherit;}
article strong,article b{font-weight:bold;line-height:inherit;}
article small{font-size:60%;line-height:inherit;}
article h1 small,article h2 small,article h3 small,article h4 small,article h5 small{color:#777;}
article hr{border:solid #ddd;border-width:1px 0 0;clear:both;margin:12px 0 18px;height:0;}
article abbr,article acronym{text-transform:uppercase;font-size:90%;color:#222;border-bottom:1px solid #ddd;cursor:help;}
article abbr{text-transform:none;}
article img{max-width:100%;}
article pre{margin:10px 0;border:1px solid #ddd;padding:10px;background:#fafafa;color:#666;overflow:auto;border-radius:5px;}
article code{background:#fafafa;color:#666;font-family:inconsolata, monospace;border:1px solid #ddd;border-radius:3px;height:4px;padding:0;}
article a code{color:#80c846;}article a code:hover{color:#6dae38;}
article pre code{border:0;background:inherit;border-radius:0;line-height:inherit;font-size:14px;}
article pre.prettyprint{border:1px solid #ddd;padding:10px;}
article blockquote,article blockquote p,article p.note{line-height:20px;color:#4c4742;}
article blockquote,article .note{margin:0 0 18px;padding:1px 20px;background:#fff7d6;}article blockquote li:before,article .note li:before{color:#e0bc6f;}
article blockquote code,article .note code{background:#f5d899;border:none;color:inherit;}
article blockquote a,article .note a{color:#6dae38;}
article blockquote pre,article .note pre{background:#F5D899 !important;color:#48484C !important;border:none !important;}
article p.note{padding:15px 20px;}
article table{width:100%;}article table td{padding:8px;}
article table tr{background:#F4F4F7;border-bottom:1px solid #eee;}
article table tr:nth-of-type(odd){background:#fafafa;}
article dl dt{font-weight:bold;}
article dl.tabbed{position:relative;}
article dl.tabbed dt{float:left;margin:0 5px 0 0;border:1px solid #ddd;padding:0 20px;line-height:2;border-radius: 5px 5px 0 0;}
article dl.tabbed dt a{display:block;height:30px;color:#333;text-decoration:none;}
article dl.tabbed dt.current{background: #f7f7f7;}
article dl.tabbed dd{position:absolute;width:100%;left:0;top:30px;}
article dl.tabbed dd pre{margin-top:0;border-top-left-radius:0;}
a{color:#80c846;}a:hover{color:#6dae38;}
p{margin:1em 0;}
h1{-webkit-font-smoothing:antialiased;}
h2{font-weight:bold;font-size:28px;}
hr{clear:both;margin:20px 0 25px 0;border:none;border-top:1px solid #444;visibility:visible;display:block;}
section{padding:50px 0;}
body{background:#f5f5f5;background:#fff;color:#555;font:15px "Helvetica Nueue",sans-serif;padding:0px 0 0px;}
.wrapper{width:960px;margin:0 auto;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;padding:60px 0;}.wrapper:after{content:" ";display:block;clear:both;}
.wrapper article{min-height:310px;width:650px;float:left;}
.wrapper aside{width:270px;float:right;}.wrapper aside ul{margin:2px 0 30px;}.wrapper aside ul a{display:block;padding:3px 0 3px 10px;margin:2px 0;border-left:4px solid #eee;}.wrapper aside ul a:hover{border-color:#80c846;}
.wrapper aside h3{font-size:18px;color:#333;font-weight:bold;line-height:2em;margin:9px 0;border-bottom:1px solid #eee;}
.wrapper aside.stick{position:fixed;right:50%;margin-right:-480px;top:120px;bottom:0;overflow:hidden;}
.half{width:50%;float:left;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;}
header{position:fixed;top:0;z-index:1000;width:100%;height:50px;line-height:50px;padding:30px 0;background:#fff;background:rgba(255, 255, 255, 0.95);border-bottom:1px solid #ccc;box-shadow:0 4px 0 rgba(0, 0, 0, 0.1);}header #logo{position:absolute;left:50%;margin-left:-480px;}
header nav{position:absolute;right:50%;margin-right:-480px;}header nav a{padding:0 10px 4px;font-size:21px;font-weight:500;text-decoration:none;}
header nav a.selected{border-bottom:3px solid #E9E9E9;}
header nav a.download{position:relative;background:#80c846;color:white;margin-left:10px;padding:5px 10px 2px;font-weight:700;border-radius:5px;box-shadow:0 3px 0 #6dae38;text-shadow:-1px -1px 0 rgba(0, 0, 0, 0.2);-webkit-transition:all 70ms ease-out;border:0;}header nav a.download:hover{box-shadow:0 3px 0 #6dae38,0 3px 4px rgba(0, 0, 0, 0.3);}
header nav a.download:active{box-shadow:0 1px 0 #6dae38;top:2px;-webkit-transition:none;}
#download,#getLogo{display:none;position:absolute;padding:5px 20px;width:200px;background:#000;background:rgba(0, 0, 0, 0.8);border-radius:5px;color:#999;line-height:15px;}#download a,#getLogo a{color:#ccc;text-decoration:none;}#download a:hover,#getLogo a:hover{color:#fff;}
#getLogo{text-align:center;}#getLogo h3{font-size:16px;color:#80c846;margin:0 0 15px;}
#getLogo figure{border-radius:3px;margin:5px 0;padding:5px;background:#fff;line-height:25px;width:80px;display:inline-block;}#getLogo figure a{color:#999;text-decoration:none;}#getLogo figure a:hover{color:#666;}
#download{top:85px;right:50%;margin-right:-480px;}#download .button{font-size:16px;color:#80c846;}
#getLogo{top:85px;left:50%;padding:20px;margin-left:-480px;}#getLogo ul{margin:5px 0;}
#getLogo li{margin:1px 0;}
#news{background:#f5f5f5;color:#999;font-size:17px;box-shadow:0 1px 0 rgba(0, 0, 0, 0.1);position:relative;z-index:2;padding:3px 0;}#news ul{box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;background:url(/assets/images/news.png) 10px center no-repeat;padding:19px 0 19px 60px;}
#content{padding:30px 0;}
#top{background:#80c846 url(/assets/images/header-pattern.png) fixed;box-shadow:0 -4px 0 rgba(0, 0, 0, 0.1) inset;padding:0;position:relative;}#top .wrapper{padding:30px 0;}
#top h1{float:left;color:#fff;font-size:35px;line-height:48px;text-shadow:2px 2px 0 rgba(0, 0, 0, 0.1);}#top h1 a{text-decoration:none;color:#fff;}
#top nav{float:right;margin-top:10px;line-height:25px;}#top nav .versions,#top nav form{float:left;margin:0 5px;}
#top nav .versions{height:25px;display:inline-block;border:1px solid #6dae38;border-radius:3px;background:#80c846;background:-moz-linear-gradient(top, #80c846 0%, #6dae38 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #80c846), color-stop(100%, #6dae38));background:-webkit-linear-gradient(top, #80c846 0%, #6dae38 100%);background:-o-linear-gradient(top, #80c846 0%, #6dae38 100%);background:-ms-linear-gradient(top, #80c846 0%, #6dae38 100%);background:linear-gradient(top, #80c846 0%, #6dae38 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#80c846', endColorstr='#6dae38',GradientType=0 );box-shadow:inset 0 -1px 1px #80c846;text-align:center;color:#fff;text-shadow:-1px -1px 0 #6dae38;}#top nav .versions span{padding:0 4px;position:absolute;}#top nav .versions span:before{content:"⬍";color:rgba(0, 0, 0, 0.4);text-shadow:1px 1px 0 #80c846;margin-right:4px;}
#top nav .versions select{opacity:0;position:relative;z-index:9;}
#top .follow{display:inline-block;border:1px solid #6dae38;border-radius:3px;background:#80c846;background:-moz-linear-gradient(top, #80c846 0%, #6dae38 100%);background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #80c846), color-stop(100%, #6dae38));background:-webkit-linear-gradient(top, #80c846 0%, #6dae38 100%);background:-o-linear-gradient(top, #80c846 0%, #6dae38 100%);background:-ms-linear-gradient(top, #80c846 0%, #6dae38 100%);background:linear-gradient(top, #80c846 0%, #6dae38 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#80c846', endColorstr='#6dae38',GradientType=0 );box-shadow:inset 0 -1px 1px #80c846;text-align:center;vertical-align:middle;color:#fff;text-shadow:-1px -1px 0 #6dae38;padding:4px 8px;text-decoration:none;position:absolute;top:41px;left:50%;margin-left:210px;width:250px;}#top .follow:before{vertical-align:middle;content:url(/assets/images/twitter.png);margin-right:10px;}
#top input{width:80px;-webkit-transition:width 200ms ease-in-out;-moz-transition:width 200ms ease-in-out;}#top input:focus{width:200px;}
#title{width:500px;float:left;font-size:17px;color:#2d6201;}
#quicklinks{width:350px;margin:-15px 0 0 0;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;float:right;padding:30px;background:#fff;color:#888;box-shadow:0 3px 5px rgba(0, 0, 0, 0.2);}#quicklinks h2{color:#80c846;font-size:20px;margin-top:15px;padding:10px 0 5px 0;border-top:1px solid #eee;}#quicklinks h2:first-child{margin:0;padding:0 0 5px 0;border:0;}
#quicklinks p{margin:0;}
#quicklinks a{color:#444;}#quicklinks a:hover{color:#222;}
.tweet{border-bottom:1px solid #eee;padding:6px 0 20px 60px;position:relative;min-height:50px;margin-bottom:20px;}.tweet img{position:absolute;left:0;top:8px;}
.tweet strong{font-size:14px;font-weight:bold;}
.tweet span{font-size:12px;color:#888;}
.tweet p{padding:0;margin:5px 0 0 0;}
footer{padding:40px 0;background:#363736;background:#eee;border-top:1px solid #e5e5e5;color:#aaa;position:relative;}footer .logo{position:absolute;top:55px;left:50%;margin-left:-480px;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);}
footer:after{content:" ";display:block;clear:both;}
footer .links{width:960px;margin:0 auto;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;margin:0 auto;padding-left:200px;}footer .links:after{content:" ";display:block;clear:both;}
footer .links dl{width:33%;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;padding:0 10px;float:left;}
footer .links dt{color:#80c846;font-weight:bold;}
footer .links a{color:#aaa;text-decoration:none;}footer .links a:hover{color:#888;}
footer .licence{width:960px;margin:0 auto;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;margin:20px auto 0;padding-top:20px;border-top:2px solid #ddd;font-size:12px;}footer .licence:after{content:" ";display:block;clear:both;}
footer .licence .typesafe,footer .licence .zenexity{float:right;}
footer .licence .typesafe{position:relative;top:-3px;margin-left:10px;}
footer .licence a{color:#999;}
div.coreteam{position:relative;min-height:80px;border-bottom:1px solid #eee;}div.coreteam img{width:50px;position:absolute;left:0;top:0;padding:2px;border:1px solid #ddd;}
div.coreteam a{color:inherit;text-decoration:none;}
div.coreteam h2{padding-left:70px;border:none;font-size:20px;}
div.coreteam p{margin-top:5px;padding-left:70px;}
ul.contributors{padding:0;margin:0;list-style:none;}ul.contributors li{padding:6px 0 !important;margin:0;}ul.contributors li:before{content:' ';}
ul.contributors img{width:25px;padding:1px;border:1px solid #ddd;margin-right:5px;vertical-align:middle;}
ul.contributors a{color:inherit;text-decoration:none;}
ul.contributors span{font-weight:bold;color:#666;}
ul.contributors.others li{display:inline-block;width:32.3333%;}
div.list{float:left;width:33.3333%;margin-bottom:30px;}
h2{clear:both;}
span.by{font-size:14px;font-weight:normal;}
form dl{padding:10px 0;}
dd.info{color:#888;font-size:12px;}
dd.error{color:#c00;}
aside a[href^="http"]:after,.doc a[href^="http"]:after{content:url(/assets/images/external.png);vertical-align:middle;margin-left:5px;}
#!/usr/bin/env bash
./sbt-dist/bin/sbt "$@"
\ No newline at end of file
#!/usr/bin/env bash
### ------------------------------- ###
### Helper methods for BASH scripts ###
### ------------------------------- ###
realpath () {
(
TARGET_FILE="$1"
FIX_CYGPATH="$2"
cd "$(dirname "$TARGET_FILE")"
TARGET_FILE=$(basename "$TARGET_FILE")
COUNT=0
while [ -L "$TARGET_FILE" -a $COUNT -lt 100 ]
do
TARGET_FILE=$(readlink "$TARGET_FILE")
cd "$(dirname "$TARGET_FILE")"
TARGET_FILE=$(basename "$TARGET_FILE")
COUNT=$(($COUNT + 1))
done
# make sure we grab the actual windows path, instead of cygwin's path.
if [[ "x$FIX_CYGPATH" != "x" ]]; then
echo "$(cygwinpath "$(pwd -P)/$TARGET_FILE")"
else
echo "$(pwd -P)/$TARGET_FILE"
fi
)
}
# Uses uname to detect if we're in the odd cygwin environment.
is_cygwin() {
local os=$(uname -s)
case "$os" in
CYGWIN*) return 0 ;;
*) return 1 ;;
esac
}
# TODO - Use nicer bash-isms here.
CYGWIN_FLAG=$(if is_cygwin; then echo true; else echo false; fi)
# This can fix cygwin style /cygdrive paths so we get the
# windows style paths.
cygwinpath() {
local file="$1"
if [[ "$CYGWIN_FLAG" == "true" ]]; then
echo $(cygpath -w $file)
else
echo $file
fi
}
. "$(dirname "$(realpath "$0")")/sbt-launch-lib.bash"
declare -r noshare_opts="-Dsbt.global.base=project/.sbtboot -Dsbt.boot.directory=project/.boot -Dsbt.ivy.home=project/.ivy"
declare -r sbt_opts_file=".sbtopts"
declare -r etc_sbt_opts_file="${sbt_home}/conf/sbtopts"
declare -r win_sbt_opts_file="${sbt_home}/conf/sbtconfig.txt"
usage() {
cat <<EOM
Usage: $script_name [options]
-h | -help print this message
-v | -verbose this runner is chattier
-d | -debug set sbt log level to debug
-no-colors disable ANSI color codes
-sbt-create start sbt even if current directory contains no sbt project
-sbt-dir <path> path to global settings/plugins directory (default: ~/.sbt)
-sbt-boot <path> path to shared boot directory (default: ~/.sbt/boot in 0.11 series)
-ivy <path> path to local Ivy repository (default: ~/.ivy2)
-mem <integer> set memory options (default: $sbt_mem, which is $(get_mem_opts $sbt_mem))
-no-share use all local caches; no sharing
-no-global uses global caches, but does not use global ~/.sbt directory.
-jvm-debug <port> Turn on JVM debugging, open at the given port.
-batch Disable interactive mode
# sbt version (default: from project/build.properties if present, else latest release)
-sbt-version <version> use the specified version of sbt
-sbt-jar <path> use the specified jar as the sbt launcher
-sbt-rc use an RC version of sbt
-sbt-snapshot use a snapshot version of sbt
# java version (default: java from PATH, currently $(java -version 2>&1 | grep version))
-java-home <path> alternate JAVA_HOME
# jvm options and output control
JAVA_OPTS environment variable, if unset uses "$java_opts"
SBT_OPTS environment variable, if unset uses "$default_sbt_opts"
.sbtopts if this file exists in the current directory, it is
prepended to the runner args
/etc/sbt/sbtopts if this file exists, it is prepended to the runner args
-Dkey=val pass -Dkey=val directly to the java runtime
-J-X pass option -X directly to the java runtime
(-J is stripped)
-S-X add -X to sbt's scalacOptions (-S is stripped)
In the case of duplicated or conflicting options, the order above
shows precedence: JAVA_OPTS lowest, command line options highest.
EOM
}
process_my_args () {
while [[ $# -gt 0 ]]; do
case "$1" in
-no-colors) addJava "-Dsbt.log.noformat=true" && shift ;;
-no-share) addJava "$noshare_opts" && shift ;;
-no-global) addJava "-Dsbt.global.base=$(pwd)/project/.sbtboot" && shift ;;
-sbt-boot) require_arg path "$1" "$2" && addJava "-Dsbt.boot.directory=$2" && shift 2 ;;
-sbt-dir) require_arg path "$1" "$2" && addJava "-Dsbt.global.base=$2" && shift 2 ;;
-debug-inc) addJava "-Dxsbt.inc.debug=true" && shift ;;
-batch) exec </dev/null && shift ;;
-sbt-create) sbt_create=true && shift ;;
*) addResidual "$1" && shift ;;
esac
done
# Now, ensure sbt version is used.
[[ "${sbt_version}XXX" != "XXX" ]] && addJava "-Dsbt.version=$sbt_version"
}
loadConfigFile() {
cat "$1" | sed '/^\#/d' | while read line; do
eval echo $line
done
}
# TODO - Pull in config based on operating system... (MSYS + cygwin should pull in txt file).
# Here we pull in the global settings configuration.
[[ -f "$etc_sbt_opts_file" ]] && set -- $(loadConfigFile "$etc_sbt_opts_file") "$@"
# -- Windows behavior stub'd
# JAVA_OPTS=$(cat "$WDIR/sbtconfig.txt" | sed -e 's/\r//g' -e 's/^#.*$//g' | sed ':a;N;$!ba;s/\n/ /g')
# Pull in the project-level config file, if it exists.
[[ -f "$sbt_opts_file" ]] && set -- $(loadConfigFile "$sbt_opts_file") "$@"
run "$@"
#!/usr/bin/env bash
#
# A library to simplify using the SBT launcher from other packages.
# Note: This should be used by tools like giter8/conscript etc.
# TODO - Should we merge the main SBT script with this library?
declare -a residual_args
declare -a java_args
declare -a scalac_args
declare -a sbt_commands
declare java_cmd=java
declare java_version
declare -r sbt_bin_dir="$(dirname "$(realpath "$0")")"
declare -r sbt_home="$(dirname "$sbt_bin_dir")"
echoerr () {
echo 1>&2 "$@"
}
vlog () {
[[ $verbose || $debug ]] && echoerr "$@"
}
dlog () {
[[ $debug ]] && echoerr "$@"
}
jar_file () {
echo "$(cygwinpath "${sbt_home}/bin/sbt-launch.jar")"
}
acquire_sbt_jar () {
sbt_jar="$(jar_file)"
if [[ ! -f "$sbt_jar" ]]; then
echoerr "Could not find launcher jar: $sbt_jar"
exit 2
fi
}
execRunner () {
# print the arguments one to a line, quoting any containing spaces
[[ $verbose || $debug ]] && echo "# Executing command line:" && {
for arg; do
if printf "%s\n" "$arg" | grep -q ' '; then
printf "\"%s\"\n" "$arg"
else
printf "%s\n" "$arg"
fi
done
echo ""
}
# THis used to be exec, but we loose the ability to re-hook stty then
# for cygwin... Maybe we should flag the feature here...
"$@"
}
addJava () {
dlog "[addJava] arg = '$1'"
java_args=( "${java_args[@]}" "$1" )
}
addSbt () {
dlog "[addSbt] arg = '$1'"
sbt_commands=( "${sbt_commands[@]}" "$1" )
}
addResidual () {
dlog "[residual] arg = '$1'"
residual_args=( "${residual_args[@]}" "$1" )
}
addDebugger () {
addJava "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$1"
}
get_mem_opts () {
# if we detect any of these settings in ${JAVA_OPTS} or ${JAVA_TOOL_OPTIONS} we need to NOT output our settings.
# The reason is the Xms/Xmx, if they don't line up, cause errors.
if [[ "${JAVA_OPTS}" == *-Xmx* ]] || [[ "${JAVA_OPTS}" == *-Xms* ]] || [[ "${JAVA_OPTS}" == *-XX:MaxPermSize* ]] || [[ "${JAVA_OPTS}" == *-XX:MaxMetaspaceSize* ]] || [[ "${JAVA_OPTS}" == *-XX:ReservedCodeCacheSize* ]]; then
echo ""
elif [[ "${JAVA_TOOL_OPTIONS}" == *-Xmx* ]] || [[ "${JAVA_TOOL_OPTIONS}" == *-Xms* ]] || [[ "${JAVA_TOOL_OPTIONS}" == *-XX:MaxPermSize* ]] || [[ "${JAVA_TOOL_OPTIONS}" == *-XX:MaxMetaspaceSize* ]] || [[ "${JAVA_TOOL_OPTIONS}" == *-XX:ReservedCodeCacheSize* ]]; then
echo ""
elif [[ "${SBT_OPTS}" == *-Xmx* ]] || [[ "${SBT_OPTS}" == *-Xms* ]] || [[ "${SBT_OPTS}" == *-XX:MaxPermSize* ]] || [[ "${SBT_OPTS}" == *-XX:MaxMetaspaceSize* ]] || [[ "${SBT_OPTS}" == *-XX:ReservedCodeCacheSize* ]]; then
echo ""
else
# a ham-fisted attempt to move some memory settings in concert
# so they need not be messed around with individually.
local mem=${1:-1024}
local codecache=$(( $mem / 8 ))
(( $codecache > 128 )) || codecache=128
(( $codecache < 512 )) || codecache=512
local class_metadata_size=$(( $codecache * 2 ))
local class_metadata_opt=$([[ "$java_version" < "1.8" ]] && echo "MaxPermSize" || echo "MaxMetaspaceSize")
local arg_xms=$([[ "${java_args[@]}" == *-Xms* ]] && echo "" || echo "-Xms${mem}m")
local arg_xmx=$([[ "${java_args[@]}" == *-Xmx* ]] && echo "" || echo "-Xmx${mem}m")
local arg_rccs=$([[ "${java_args[@]}" == *-XX:ReservedCodeCacheSize* ]] && echo "" || echo "-XX:ReservedCodeCacheSize=${codecache}m")
local arg_meta=$([[ "${java_args[@]}" == *-XX:${class_metadata_opt}* ]] && echo "" || echo "-XX:${class_metadata_opt}=${class_metadata_size}m")
echo "${arg_xms} ${arg_xmx} ${arg_rccs} ${arg_meta}"
fi
}
require_arg () {
local type="$1"
local opt="$2"
local arg="$3"
if [[ -z "$arg" ]] || [[ "${arg:0:1}" == "-" ]]; then
echo "$opt requires <$type> argument"
exit 1
fi
}
is_function_defined() {
declare -f "$1" > /dev/null
}
process_args () {
while [[ $# -gt 0 ]]; do
case "$1" in
-h|-help) usage; exit 1 ;;
-v|-verbose) verbose=1 && shift ;;
-d|-debug) debug=1 && shift ;;
-ivy) require_arg path "$1" "$2" && addJava "-Dsbt.ivy.home=$2" && shift 2 ;;
-mem) require_arg integer "$1" "$2" && sbt_mem="$2" && shift 2 ;;
-jvm-debug) require_arg port "$1" "$2" && addDebugger $2 && shift 2 ;;
-batch) exec </dev/null && shift ;;
-sbt-jar) require_arg path "$1" "$2" && sbt_jar="$2" && shift 2 ;;
-sbt-version) require_arg version "$1" "$2" && sbt_version="$2" && shift 2 ;;
-java-home) require_arg path "$1" "$2" && java_cmd="$2/bin/java" && shift 2 ;;
-D*) addJava "$1" && shift ;;
-J*) addJava "${1:2}" && shift ;;
*) addResidual "$1" && shift ;;
esac
done
is_function_defined process_my_args && {
myargs=("${residual_args[@]}")
residual_args=()
process_my_args "${myargs[@]}"
}
java_version=$("$java_cmd" -Xmx512M -version 2>&1 | awk -F '"' '/version/ {print $2}')
vlog "[process_args] java_version = '$java_version'"
}
# Detect that we have java installed.
checkJava() {
local required_version="$1"
# Now check to see if it's a good enough version
if [[ "$java_version" == "" ]]; then
echo
echo No java installations was detected.
echo Please go to http://www.java.com/getjava/ and download
echo
exit 1
elif [[ ! "$java_version" > "$required_version" ]]; then
echo
echo The java installation you have is not up to date
echo $script_name requires at least version $required_version+, you have
echo version $java_version
echo
echo Please go to http://www.java.com/getjava/ and download
echo a valid Java Runtime and install before running $script_name.
echo
exit 1
fi
}
run() {
# no jar? download it.
[[ -f "$sbt_jar" ]] || acquire_sbt_jar "$sbt_version" || {
# still no jar? uh-oh.
echo "Download failed. Obtain the sbt-launch.jar manually and place it at $sbt_jar"
exit 1
}
# process the combined args, then reset "$@" to the residuals
process_args "$@"
set -- "${residual_args[@]}"
argumentCount=$#
# TODO - java check should be configurable...
checkJava "1.6"
#If we're in cygwin, we should use the windows config, and terminal hacks
if [[ "$CYGWIN_FLAG" == "true" ]]; then
stty -icanon min 1 -echo > /dev/null 2>&1
addJava "-Djline.terminal=jline.UnixTerminal"
addJava "-Dsbt.cygwin=true"
fi
# run sbt
execRunner "$java_cmd" \
$(get_mem_opts $sbt_mem) \
${JAVA_OPTS} \
${SBT_OPTS:-$default_sbt_opts} \
${java_args[@]} \
-jar "$sbt_jar" \
"${sbt_commands[@]}" \
"${residual_args[@]}"
exit_code=$?
# Clean up the terminal from cygwin hacks.
if [[ "$CYGWIN_FLAG" == "true" ]]; then
stty icanon echo > /dev/null 2>&1
fi
exit $exit_code
}
@REM SBT launcher script
@REM
@REM Envioronment:
@REM JAVA_HOME - location of a JDK home dir (mandatory)
@REM SBT_OPTS - JVM options (optional)
@REM Configuration:
@REM sbtconfig.txt found in the SBT_HOME.
@REM ZOMG! We need delayed expansion to build up CFG_OPTS later
@setlocal enabledelayedexpansion
@echo off
set SBT_HOME=%~dp0
rem FIRST we load the config file of extra options.
set FN=%SBT_HOME%\..\conf\sbtconfig.txt
set CFG_OPTS=
FOR /F "tokens=* eol=# usebackq delims=" %%i IN ("%FN%") DO (
set DO_NOT_REUSE_ME=%%i
rem ZOMG (Part #2) WE use !! here to delay the expansion of
rem CFG_OPTS, otherwise it remains "" for this loop.
set CFG_OPTS=!CFG_OPTS! !DO_NOT_REUSE_ME!
)
rem We use the value of the JAVACMD environment variable if defined
set _JAVACMD=%JAVACMD%
if "%_JAVACMD%"=="" (
if not "%JAVA_HOME%"=="" (
if exist "%JAVA_HOME%\bin\java.exe" set "_JAVACMD=%JAVA_HOME%\bin\java.exe"
)
)
if "%_JAVACMD%"=="" set _JAVACMD=java
rem We use the value of the JAVA_OPTS environment variable if defined, rather than the config.
set _JAVA_OPTS=%JAVA_OPTS%
if "%_JAVA_OPTS%"=="" set _JAVA_OPTS=%CFG_OPTS%
:run
"%_JAVACMD%" %_JAVA_OPTS% %SBT_OPTS% -cp "%SBT_HOME%sbt-launch.jar" xsbt.boot.Boot %*
if ERRORLEVEL 1 goto error
goto end
:error
@endlocal
exit /B 1
:end
@endlocal
exit /B 0
# Set the java args to high
-Xmx512M
-XX:MaxPermSize=256m
-XX:ReservedCodeCacheSize=128m
# Set the extra SBT options
-Dsbt.log.format=true
# ------------------------------------------------ #
# The SBT Configuration file. #
# ------------------------------------------------ #
# Disable ANSI color codes
#
#-no-colors
# Starts sbt even if the current directory contains no sbt project.
#
-sbt-create
# Path to global settings/plugins directory (default: ~/.sbt)
#
#-sbt-dir /etc/sbt
# Path to shared boot directory (default: ~/.sbt/boot in 0.11 series)
#
#-sbt-boot ~/.sbt/boot
# Path to local Ivy repository (default: ~/.ivy2)
#
#-ivy ~/.ivy2
# set memory options
#
#-mem <integer>
# Use local caches for projects, no sharing.
#
#-no-share
# Put SBT in offline mode.
#
#-offline
# Sets the SBT version to use.
#-sbt-version 0.11.3
# Scala version (default: latest release)
#
#-scala-home <path>
#-scala-version <version>
# java version (default: java from PATH, currently $(java -version |& grep version))
#
#-java-home <path>
@REM SBT launcher script
.\sbt-dist\bin\sbt.bat %*
#!/usr/bin/env bash
set -e
set -o pipefail
java_version=$(java -version 2>&1 | java -version 2>&1 | awk -F '"' '/version/ {print $2}')
if [[ $java_version = 9* ]] ; then
echo "The build is using Java 9 ($java_version). We need additional JVM parameters"
export _JAVA_OPTIONS="$_JAVA_OPTIONS --add-modules=java.xml.bind"
else
echo "The build is NOT using Java 9 ($java_version). No addional JVM params needed."
fi
#!/usr/bin/env bash
. "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/script-helper"
# Using cut because TRAVIS_SCALA_VERSION is the full Scala
# version (for example 2.12.4), but Gradle expects just the
# binary version (for example 2.12)
scala_binary_version=$(echo $TRAVIS_SCALA_VERSION | cut -c1-4)
echo "+------------------------------+"
echo "| Executing tests using Gradle |"
echo "+------------------------------+"
./gradlew -Dscala.binary.version=$scala_binary_version check -i --stacktrace
#!/usr/bin/env bash
. "$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/script-helper"
echo "+----------------------------+"
echo "| Executing tests using sbt |"
echo "+----------------------------+"
sbt ++$TRAVIS_SCALA_VERSION test
import org.junit.Test;
import play.Application;
import play.test.Helpers;
import play.test.TestBrowser;
import play.test.WithBrowser;
import static org.junit.Assert.assertTrue;
import static play.test.Helpers.*;
public class BrowserTest extends WithBrowser {
protected Application provideApplication() {
return fakeApplication(inMemoryDatabase());
}
protected TestBrowser provideBrowser(int port) {
return Helpers.testBrowser(port);
}
/**
* add your integration test here
* in this example we just check if the welcome page is being shown
*/
@Test
public void test() {
browser.goTo("http://localhost:" + play.api.test.Helpers.testServerPort());
assertTrue(browser.pageSource().contains("Your new application is ready."));
}
}
import org.junit.Test;
import play.test.WithApplication;
import play.twirl.api.Content;
import static org.assertj.core.api.Assertions.assertThat;
/**
* A functional test starts a Play application for every test.
*
* https://www.playframework.com/documentation/latest/JavaFunctionalTest
*/
public class FunctionalTest extends WithApplication {
@Test
public void renderTemplate() {
// If you are calling out to Assets, then you must instantiate an application
// because it makes use of assets metadata that is configured from
// the application.
Content html = views.html.index.render("Your new application is ready.");
assertThat("text/html").isEqualTo(html.contentType());
assertThat(html.body()).contains("Your new application is ready.");
}
}
import akka.actor.ActorSystem;
import controllers.AsyncController;
import controllers.CountController;
import org.junit.Test;
import play.mvc.Result;
import scala.concurrent.ExecutionContextExecutor;
import java.util.concurrent.CompletionStage;
import static org.assertj.core.api.Assertions.assertThat;
import static org.awaitility.Awaitility.await;
import static play.test.Helpers.contentAsString;
/**
* Unit testing does not require Play application start up.
*
* https://www.playframework.com/documentation/latest/JavaTest
*/
public class UnitTest {
@Test
public void simpleCheck() {
int a = 1 + 1;
assertThat(a).isEqualTo(2);
}
// Unit test a controller
@Test
public void testCount() {
final CountController controller = new CountController(() -> 49);
Result result = controller.count();
assertThat(contentAsString(result)).isEqualTo("49");
}
// Unit test a controller with async return
@Test
public void testAsync() {
final ActorSystem actorSystem = ActorSystem.create("test");
try {
final ExecutionContextExecutor ec = actorSystem.dispatcher();
final AsyncController controller = new AsyncController(actorSystem, ec);
final CompletionStage<Result> future = controller.message();
// Block until the result is completed
await().until(() -> {
assertThat(future.toCompletableFuture()).isCompletedWithValueMatching(result -> {
return contentAsString(result).equals("Hi!");
});
});
} finally {
actorSystem.terminate();
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment