AVSystem Commons Library for Scala

Build Status Maven Central

API reference

NOTE This library is available to the public but it's mostly used internally at AVSystem. Therefore, API may frequently change in an incompatible way.

Modules and features

  • commons-core - basic language utilities and generic features not associated with any particular library of framework:
  • commons-redis - Scala driver for Redis
  • commons-akka - Akka utilities, primarily AkkaRPCFramework which supports methods returning Monix Observables
  • commons-macros contains implementations of macros used in other modules and reusable macro utilities:
    • MacroCommons trait with several convenience functions for implementing macros
    • TypeClassDerivation - implements infrastructure for automatic type class derivation
  • commons-analyzer - static analyzer for Scala code, i.e. a compiler plugin that enforces various (mostly unrelated) rules and conventions on source code
  • commons-annotations - contains annotations used by macros and static analyzer
  • commons-jetty - Jetty server utilities
  • commons-mongo - MongoDB utilities for Scala & Java MongoDB drivers, integration with GenCodec
  • commons-kafka - Kafka utilities
  • commons-spring - Spring framework utilities:
    • HoconBeanDefinitionReader - an utility that allows you to define Spring application context using HOCON format

Development

  • Introduce your changes
  • Write some unit tests
  • Bump the version number in version.sbt file
  • Submit a pull request

Test on local environment

  • Publish the artifact locally
    • Use sbt publishLocal for projects managed by Ivy (e.g. SBT projects)
    • Or sbt publishM2 for projects managed by maven
  • Update avsystem-commons dependency version in your project and refresh your project dependencies