When there's a request comes in, action extending Action will be run directly on the current Netty IO thread.
An actor will be created when there's request.
This is the interface for cache implementations of Xitrum.
Actions extending FutureAction will be run asynchronously in a future.
If you don't care about the class name where the log is made, without having to extend this trait, you can call like this directly: xitrum.
By default all non-GET requests are checked for anti-CSRF token.
An actor will be created when there's new SockJS session.
An actor will be created when there's request.
This represents things in xitrum.
To innclude xitrum.
See config/xitrum.
Dual config means the config can be in either one of the 2 forms:
This is a convenient helper to let you call like this directly: xitrum.
This is a convenient helper to let you call like this directly: xitrum.Log.debug("msg"), xitrum.Log.info("msg") etc.
If you do care about the class name where the log is made, use trait xitrum.Log.
Pong is automatically sent by Xitrum, don't send it yourself.
Path to the root directory of the current project.
Path to the root directory of the current project. If you're familiar with Rails, this is the same as Rails.root.
Things that are usually used by application developers are put in this package for convenience, because when they want to use XXX, they can simply write:
import xitrum.XXX
To avoid polluting this namespace, things that are utilities should be put in package xitrum.util, not here.
Annotations and validators are put to package xitrum.annation and xitrum.validator because there are many of them. It's better for application developers to write: