play-slick-configuration


License

License

Categories

Categories

Configuration Application Layer Libs config
GroupId

GroupId

org.virtuslab
ArtifactId

ArtifactId

play-slick-configuration_2.11
Last Version

Last Version

2.3.0
Release Date

Release Date

Type

Type

jar
Description

Description

play-slick-configuration
play-slick-configuration
Project URL

Project URL

https://github.com/VirtusLab/play-slick-configuration
Project Organization

Project Organization

org.virtuslab
Source Code Management

Source Code Management

https://github.com/VirtusLab/play-slick-configuration.git

Download play-slick-configuration_2.11

How to add to project

<!-- https://jarcasting.com/artifacts/org.virtuslab/play-slick-configuration_2.11/ -->
<dependency>
    <groupId>org.virtuslab</groupId>
    <artifactId>play-slick-configuration_2.11</artifactId>
    <version>2.3.0</version>
</dependency>
// https://jarcasting.com/artifacts/org.virtuslab/play-slick-configuration_2.11/
implementation 'org.virtuslab:play-slick-configuration_2.11:2.3.0'
// https://jarcasting.com/artifacts/org.virtuslab/play-slick-configuration_2.11/
implementation ("org.virtuslab:play-slick-configuration_2.11:2.3.0")
'org.virtuslab:play-slick-configuration_2.11:jar:2.3.0'
<dependency org="org.virtuslab" name="play-slick-configuration_2.11" rev="2.3.0">
  <artifact name="play-slick-configuration_2.11" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.virtuslab', module='play-slick-configuration_2.11', version='2.3.0')
)
libraryDependencies += "org.virtuslab" % "play-slick-configuration_2.11" % "2.3.0"
[org.virtuslab/play-slick-configuration_2.11 "2.3.0"]

Dependencies

compile (3)

Group / Artifact Type Version
org.scala-lang : scala-library jar 2.11.12
com.typesafe.slick : slick_2.11 jar 3.2.3
com.typesafe.play : play-slick_2.11 jar 3.0.3

test (4)

Group / Artifact Type Version
org.scalatest : scalatest_2.11 jar 3.0.1
com.typesafe.play : play-test_2.11 jar 2.6.20
com.h2database : h2 jar 1.4.187
org.scalatestplus.play : scalatestplus-play_2.11 jar 3.0.0

Project Modules

There are no modules declared in this project.

Configuration table for Slick and Play

Build Status

It's a small helper library based on Slick and play-slick plugin from Play! framework. It provides nice type-safe way to serialize properties of custom types to database and then read them back.

Contributors

Authors:

Feel free to use it, test it and to contribute!

Getting play-slick-configuration

Library is available in sonatype and Maven central since version 1.1.0.

libraryDependencies += "org.virtuslab" %% "play-slick-configuration" % "2.1.0"
slick play play-slick-configuration
3.0.x 2.4.x 2.0.x
3.1.x 2.4.x 2.1.x

This branch is built against Slick 3.1.x, for Slick 1.x use slick-1.0 branch.

Examples

Setup

To use this library you need to create a configuration table in database with a key and value text fields.

Easiest way to do this is just by running:

import org.virtuslab.config.ConfigurationEntries
import play.api.db.slick.Config.driver.simple._

ConfigurationEntries.ddl.create

Or adding following SQL (it's from PostgreSQL, syntax may vary) to your setup or evolution scripts:

CREATE TABLE configuration
(
  key character varying(254) NOT NULL,
  value character varying(254) NOT NULL,
  CONSTRAINT configuration_pkey PRIMARY KEY (key)
);

Usage

TODO

Extensions

Serialization and de-serialization of properties are based on a type-class called ConfigurationSerializer:

trait ConfigurationSerializer[A] {
  def write(a: A): String

  def read(s: String): A
}

This library comes with instances of this type-class for several types, but you can easily create your own instances of it by placing an implicit val (or def or object) in scope.

org.virtuslab

VirtusLab

Versions

Version
2.3.0
2.2.0
2.1.0
2.0.0
1.1.1