play-slick-configuration


License

License

Categories

Categories

Configuration Application Layer Libs config
GroupId

GroupId

org.virtuslab
ArtifactId

ArtifactId

play-slick-configuration_2.12
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.12

How to add to project

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

Dependencies

compile (3)

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

test (4)

Group / Artifact Type Version
org.scalatest : scalatest_2.12 jar 3.0.1
com.typesafe.play : play-test_2.12 jar 2.6.20
com.h2database : h2 jar 1.4.187
org.scalatestplus.play : scalatestplus-play_2.12 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