Giter VIP home page Giter VIP logo

criminals's Introduction

criminals

This is an example of a RePlay project.

It may be used to understand the differences between a project based on Play1 and a project based on RePlay.

travis-ci

Test and build

After cloning this repository, you may run the following commands from the project's repository root:

  • ./gradlew test — runs unit tests
  • ./gradlew uitest — runs integration (UI) tests
  • ./gradlew build — runs unit tests and builds the JAR file (build/libs/criminals.jar)
  • ./gradlew jar — just builds the JAR file

Development flow and deployment

These topics are covered in the README of the RePlay project.

Troubleshooting

You may find some WARNING blocks in the logs when running the application. These are safe to ignore, below some further explanation on what causes then and how to possibly fix them.

Add this flag --add-opens java.base/java.lang=ALL-UNNAMED to reduce "illegal reflective access" warnings from guice (this will be fixed in a future version of guice).

The "illegal reflective access" warnings from netty are harder to fix: RePlay should upgrade it's netty dependency from 3.10.6.Final to io.netty:netty-all:4.1.43.Final or greater.

License and contributing

The code in this repository is MIT licensed.

In case you want to improve upon the project: fork it, commit changes to your branch, open a pull request. Thanks in advance.

You can see build status of your pull requests at https://travis-ci.org/github/asolntsev/criminals

criminals's People

Contributors

asolntsev avatar cies avatar dependabot-preview[bot] avatar dependabot-support avatar dependabot[bot] avatar vladimirglinskikh avatar xabolcs avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

criminals's Issues

Add an annotated `conf/application.conf` to RePlay's demo project

Since this project is the example for how to setup a new RePlay app, it might be good to ship it with an annotated config file detailing some of the options. It seems that most options are similar to Play1, but not all... Maybe this file can also mention what's different compared to Play1, like:

  • Like the dev mode in RePlay no longer serves "to enable instant reloading" (as said below).
  • Also the ${play.path} thingy no longer works (and is probably no longer needed, as RePlay has Gralde). Maybe this can even be explained

The ${...} syntax for env vars is reintroduced now, can be explained that available.

Questions:

  1. Is criminals the best place to put this "options explaining application.conf"?
  2. Is there anything else you think should change in the file below, besides what's mentioned above? (e.g.: any features that got removed, but are still mentioned below as configurable)
  3. Would you be interested to have a PR for this?

This combines some annotated play1/replay files i found in the framework repositories, I yet have to shape it up for this purpose.

# This is the main configuration file for the application.
# ~~~~~
application.name=dependency-injection

# Application mode
# ~~~~~
# Set to dev to enable instant reloading and other development help.
# Otherwise set to prod.
application.mode=dev
%prod.application.mode=prod

# Secret key
# ~~~~~
# The secret key is used to secure cryptographics functions
# If you deploy your application to several instances be sure to use the same key !
application.secret=LGhGcdAqQYyEG5GX7sauvQxeZXQBoQNpFflbeHT0mGM9u7oRxzShTrRYZNIc4tvR

# i18n
# ~~~~~
# Define locales used by your application.
# You can then place localized messages in conf/messages.{locale} files
# application.langs=fr,en,ja

# Date format
# ~~~~~
date.format=yyyy-MM-dd
# date.format.fr=dd/MM/yyyy

# Server configuration
# ~~~~~
# If you need to change the HTTP port, uncomment this (default is set to 9000)
# http.port=9000
#
# By default the server listen for HTTP on the wildcard address.
# You can restrict this.
# http.address=127.0.0.1
#
# Use this if you don't host your Play application at the root of the domain
# you're serving it from. This parameter has no effect when deployed as a
# war, because the path will be handled by the application server.
# http.path=/

# Session configuration
# ~~~~~~~~~~~~~~~~~~~~~~
# By default, session will be written to the transient PLAY_SESSION cookie.
# The cookies are not secured by default, only set it to true
# if you're serving your pages through https.
# application.session.cookie=PLAY
# application.session.maxAge=1h
# application.session.secure=false

# Session/Cookie sharing between subdomain
# ~~~~~~~~~~~~~~~~~~~~~~
# By default a cookie is only valid for a specific domain. By setting
# application.defaultCookieDomain to '.example.com', the cookies
# will be valid for all domains ending with '.example.com', ie:
# foo.example.com and bar.example.com
# application.defaultCookieDomain=.example.com

# JVM configuration
# ~~~~~
# Define which port is used by JPDA when application is in debug mode (default is set to 8000)
# jpda.port=8000
#
# Java source level => 1.8
java.source=1.8

# Log level
# ~~~~~
# Specify log level for your application.
# If you want a very customized log, create a log4j.properties file in the conf directory
# application.log=INFO
#
# More logging configuration
# application.log.path=/log4j.properties
# application.log.system.out=off

# Database configuration
# ~~~~~ 
# Enable a database engine if needed.
#
# To quickly set up a development database, use either:
#   - mem : for a transient in memory database (H2 in memory)
#   - fs  : for a simple file written database (H2 file stored)
# db.default=mem
#
# To connect to a local MySQL5 database, use:
# db.default=mysql://user:pwd@host/database
#
# To connect to a local PostgreSQL9 database, use:
# db=postgres://user:pwd@host/database
#
# If you need a full JDBC configuration use the following :
# db.default.url=jdbc:postgresql:database_name
# db.default.driver=org.postgresql.Driver
# db.default.user=root
# db.default.pass=secret
#
# Connections pool configuration :
# db.default.pool.timeout=1000
# db.default.pool.maxSize=30
# db.default.pool.minSize=10
#
# If you want to reuse an existing Datasource from your application server, use:
# db.default=java:/comp/env/jdbc/myDatasource
#
# When using an existing Datasource, it's sometimes needed to destroy it when
# the application is stopped. Depending on the datasource, you can define a
# generic "destroy" method :
# db.default.destroyMethod=close

# JPA Configuration (Hibernate)
# ~~~~~
#
# Specify the custom JPA dialect to use here (default to guess):
# jpa.default.dialect=org.hibernate.dialect.PostgreSQLDialect
#
# Specify the ddl generation pattern to use. Set to none to disable it 
# (default to update in DEV mode, and none in PROD mode):
# jpa.default.ddl=update
#
# Debug SQL statements (logged using DEBUG level):
# jpa.default.debugSQL=true
#
# You can even specify additional hibernate properties here:
# default.hibernate.use_sql_comments=true
# ...
#
# Store path for Blob content
attachments.path=data/attachments

# Memcached configuration
# ~~~~~ 
# Enable memcached if needed. Otherwise a local cache is used.
# memcached=enabled
#
# Specify memcached host (default to 127.0.0.1:11211)
# memcached.host=127.0.0.1:11211
#
# Or you can specify multiple host to build a distributed cache
# memcached.1.host=127.0.0.1:11211
# memcached.2.host=127.0.0.1:11212
#
# Use plain SASL to authenticate for memcached
# memcached.user=
# memcached.password=

# HTTP Response headers control for static files
# ~~~~~
# Set the default max-age, telling the user's browser how long it should cache the page.
# Default is 3600 (one hour). Set it to 0 to send no-cache.
# This is only read in prod mode, in dev mode the cache is disabled.
# http.cacheControl=3600

# If enabled, Play will generate entity tags automatically and send a 304 when needed.
# Default is true, set it to false to deactivate use of entity tags.
# http.useETag=true

# Custom mime types
# mimetype.xpi=application/x-xpinstall

# WS configuration
# ~~~~~
# Default engine is Async Http Client, uncomment to use
# the JDK's internal implementation
# webservice = urlfetch
# If you need to set proxy params for WS requests
# http.proxyHost = localhost
# http.proxyPort = 3128
# http.proxyUser = jojo
# http.proxyPassword = jojo

# Mail configuration
# ~~~~~ 
# Default is to use a mock Mailer
mail.smtp=mock

# Or, specify mail host configuration
# mail.smtp.host=127.0.0.1
# mail.smtp.user=admin
# mail.smtp.pass=
# mail.smtp.channel=ssl

# Url-resolving in Jobs
# ~~~~~~
# When rendering templates with reverse-url-resoling (@@{..}) in Jobs (which do not have an inbound Http.Request),
# ie if sending a HtmlMail, Play need to know which url your users use when accessing your app.
# %test.application.baseUrl=http://localhost:9000/
# %prod.application.baseUrl=http://www.yourdomain.com/

# Templates additional precompilation
# ~~~~~~
# yaml files can use template expressions and are located in the conf folder.
# The default precompile task will not pickup those files.
# You can manually add some files with the following property
# (default: system property play.templates.compile, fallback system environment PLAY_TEMPLATES_COMPILE)
# play.templates.compile=conf/initialdata.yml;{module:reporting}test/reporting/unittests/export.yml
#
# Override the path separator if you want to use the Play!-module notation like {module:modname} on unix.
# (default: system property path.separator)
# play.templates.compile.path.separator=;

# Jobs executor
# ~~~~~~
# Size of the Jobs pool
# play.jobs.pool=10

# Execution pool
# ~~~~~
# Default to 1 thread in DEV mode or (nb processors + 1) threads in PROD mode.
# Try to keep a low as possible. 1 thread will serialize all requests (very useful for debugging purpose)
# play.pool=3

# Netty pipeline configuration (advanced settings)
# You can default netty settings by overriding the following line. Each handler must be comma separated.
# The last value must be the PlayHandler class (or your own that extends PlayHandler)
# Default values are
# play.netty.pipeline = play.server.FlashPolicyHandler,org.jboss.netty.handler.codec.http.HttpRequestDecoder,play.server.StreamChunkAggregator,org.jboss.netty.handler.codec.http.HttpResponseEncoder,org.jboss.netty.handler.stream.ChunkedWriteHandler,play.server.PlayHandler
# For example, to enable Netty response compression
# play.netty.pipeline = play.server.FlashPolicyHandler,org.jboss.netty.handler.codec.http.HttpRequestDecoder,play.server.StreamChunkAggregator,org.jboss.netty.handler.codec.http.HttpResponseEncoder,org.jboss.netty.handler.codec.http.HttpContentCompressor,org.jboss.netty.handler.stream.ChunkedWriteHandler,play.server.PlayHandler
# For SSL, use the play.ssl.netty.pipeline property
# play.ssl.netty.pipeline = play.server.FlashPolicyHandler,org.jboss.netty.handler.codec.http.HttpRequestDecoder,play.server.StreamChunkAggregator,org.jboss.netty.handler.codec.http.HttpResponseEncoder,org.jboss.netty.handler.codec.http.HttpContentCompressor,org.jboss.netty.handler.stream.ChunkedWriteHandler,play.server.ssl.SslPlayHandler


# Open file from errors pages
# ~~~~~
# If your text editor supports opening files by URL, Play! will
# dynamically link error pages to files 
#
# Example, for textmate:
# play.editor=txmt://open?url=file://%s&line=%s

# Testing. Set up a custom configuration for test mode
# ~~~~~
#%test.module.cobertura=${play.path}/modules/cobertura
%test.application.mode=dev
%test.db.url=jdbc:h2:mem:play;MODE=MYSQL;LOCK_MODE=0
%test.jpa.ddl=create
%test.mail.smtp=mock

cron.counterUpdater=*/2 * * * * ?

ehcache.heapSizeInEntries=100

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.