#krail
Krail provides a framework for rapid Java web development by combining Vaadin, Guice, Apache Shiro, Apache Commons Configuration and others. For more information, see the comprehensive Tutorial, which also makes a reasonable demo. (You can clone directly from the Tutorial repo)
This core library provides:
- Site navigation, using a sitemap configured by annotation or Guice
- Authentication / Authorisation framework, including page access control
- Vaadin Server Push (with option to disable it)
- Event Bus
- Extensive I18N support
- User options
- Application configuration through ini files, database etc
- JSR 303 Validation (integrated with I18N)
- User notifications
Additional libraries, integrated and configured through Guice, provide:
- JPA persistence - krail-jpa, using Apache Onami persist and EclipseLink
- Quartz scheduler - krail-quartz, using, of course, Quartz Scheduler
The issues tracker, blog and Tutorial provide more information.
repositories {
jcenter()
}
'uk.q3c.krail:krail:0.9.8'
##Maven
<repository>
<id>jcenter</id>
<url>http://jcenter.bintray.com</url>
</repository>
<dependency>
<groupId>uk.q3c.krail</groupId>
<artifactId>krail</artifactId>
<version>0.9.8</version>
</dependency>
##Direct
#Limitations
Would not work in a clustered environment
11th February 2016:
- Vaadin 7.6.2 is integrated with:
- Guice 4.0
- Shiro 1.2.4,
- MBassador (Event Bus)
- Apache Commons Configuration
- Guava cache
Krail is usable, though there is still work to ensure thread safety. No major changes to the API expected. Vaadin push is supported. Tested on Tomcat 7 & 8
There is a functional test application which can also be used to explore functionality - though the Tutorial may be better for that
#Project Build
Gradle is used (made a lot easier thanks to the Gradle Vaadin plugin.
The build is a multi-project gradle build with a master
If you want to build from source run 'gradle eclipse' or 'gradle idea' to generate the IDE files
#Acknowledgements
Thanks to:
Dirk Lietz for his review and feedback for the Tutorial
Mike Pilone for his blog post on Vaadin Shiro integration
ej technologies for an open source licence of JProfiler
Vaadin
Guice
Apache Shiro
JUnit
Guava (cache and utilities)
MBassador Event Bus
Flag Icons
Apache Commons Configuration
Gradle
Gradle Vaadin plugin
Gradle Docker Plugin
Gradle Bintray Plugin
Bintray
Docker
Logback
slf4j
AssertJ
Mycila
Mockito
spock
FindBugs