taurus227 / krail

Rapid web app framework using Vaadin 7 integrated with Guice and Shiro

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

krail

License Gitter Build Status Coverage Status

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)


Notice


Version 0.10.0.0 has just been released - this was a major refactoring. See Release Notes.md.

Development of Krail has been lacking for a good few months - but it has now reached the top of the TODO list again.

It is currently undergoing a major refactoring, to split out some of the major parts from the core (the core being Vaadin, Shiro and Guice). I18N, Option, Services are being factored out into their own projects, as they could actually be used outside of Krail.

Work will then continue on other aspects. This is the current plan:

  • Complete the refactoring - released 23rd Aug 2017 (0.10.0.0)
  • Update to latest Vaadin 7 - released 23rd Aug 2017 (0.10.0.0)
  • Upgrade to Vaadin 8 - It is hoped that this can be completed by around mid September 2017
  • Attempt a migration to Eclipse Vert.x - that may or may not work!

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:

The issues tracker, blog and Tutorial provide more information.

Download

Gradle

repositories {
	jcenter()
}
'uk.q3c.krail:krail:0.10.0.0'

Maven

<repository>
	<id>jcenter</id>
	<url>http://jcenter.bintray.com</url>
</repository>

<dependency>
	<groupId>uk.q3c.krail</groupId>
	<artifactId>krail</artifactId>
	<version>0.10.0.0</version>
</dependency>

Direct

Download

Limitations

Would not work in a clustered environment

Status

23rd Aug 2017:

  • Vaadin 7.7.10 is integrated with:
  • Guice 4.1.0
  • Shiro 1.4.0,
  • 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

testApp

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.

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

About

Rapid web app framework using Vaadin 7 integrated with Guice and Shiro


Languages

Language:Java 85.0%Language:Groovy 15.0%