Giter VIP home page Giter VIP logo

krail's Introduction

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

krail's People

Contributors

odhrean avatar

Watchers

James Cloos avatar

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.