New FAQs should be submitted as a new issue with the faq tag, once accepted it will be added to this document.

How is "Werval" pronounced?

Werval is pronouced /ˈwɛər vəl/, or [wair-vuh l, weer-, wur-].

What the heck is this name?

Werval is a contraction of Werewolf and Serval.

Werewolf and Serval

What was the question already?

Why choose Java as implementation language?

First, the Java programming language is widely used and well known by a lot of developpers. It emerged in the early 90s, that is more than 20 years ago. So it is old enough to be considered as mature. With an eventful history, it keeps moving.

Second, the main Java running platform, a.k.a the JVM, is quite ubiquitous on the x86 architecture, supported on almost every operating system and cloud provider. It is now open-source and already available to ARM architectures since Java 8.

Third, Java:

  • has excellent developer tooling (IDEs with automated complex refactorings, continuous integration, static code analysis etc…​) ;

  • comes with a large choice of 3rd party libraries ;

  • is hugely specified and documented.

And last but not least, the JVM is not tight to the Java programming language as it can run code written in over 50 languages.

Can I write my application code in {put.your.language.here}?

As long as it runs on the JVM, yes!

There are some guides for specific languages but the idea is pretty simple and applicable to any. The Global object allows you take control of controllers and filters instanciation and invocation. You just have to write some glue code. Ah, I see your Global object is already in Groovy, cool.

Development mode should work in most situations provided your build system is set up correctly.

Is it possible to embedd the Werval Runtime?

The framework provide a default main class/method for you to reuse but you can also write yours if you need it. This way of running a Werval Application can be seen as embedding Werval.

I found a bug! What to do?

Simply create a new issue. Please provide accurate and useful information when doing so.

If you don’t know how to properly report a bug, read How to Report Bugs Effectively by Simon Tatham first.

Can I use Werval in my commercial applications under a closed-source, proprietary license?

Yes. The Apache License is very business-friendly. Please observe the obligations on your part, especially regarding notices, trademarks and patent licensing terms.

What to do when I can see no logs and get a weird message from SLF4J?

Werval use the SLF4J API (Simple Logging Facade for Java) but you have to choose what SLF4J implementation to use. We strongly recommend Logback.

If you don’t have any SLF4J implementation in your application classpath, you’ll get the following warning:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

From there you simply add Logback (or any SLF4J implementation) to your dependencies and configure it the way you want. And voila!

Can I build Werval Application using {put.your.build.system.here}?

Sure, Werval is build system agnostic. Integration with Gradle and Maven are provided, if you happen to use another build system you’ll have to write some code but it’s definitely possible.

See the Getting Started page.

What are the main sources of inspiration of Werval?

Are WebSockets supported?

Not yet, see #30

Is SPDY/HTTP 2.0 supported?

Not yet.