Skip to content

Core

Module core

This module holds utilities used in other libraries of the toolkit. Check the packages' documentation for more details. You can find a quick recap of the main features in the sections below.

Install the Dependency

This module is not meant to be imported directly. It will be included by using any other part of the toolkit. However, if you only want to use the utilities, logging, etc. (i.e., for a desktop application), you can import it with the following code:

1
2
3
4
5
repositories {
    mavenCentral()
}

implementation("com.hexagonkt:core:$hexagonVersion")
1
2
3
4
5
<dependency>
  <groupId>com.hexagonkt</groupId>
  <artifactId>core</artifactId>
  <version>$hexagonVersion</version>
</dependency>

Package com.hexagonkt.core

JVM information and other useful utilities. Includes basic program settings support at the Jvm object (like loading and retrieving system settings).

Package com.hexagonkt.core.logging

Provides a logging management capabilities abstracting the application from logging libraries.

The following code block shows the most common use cases for the Logger class:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
val classLogger: Logger = Logger(Runtime::class) // Logger for the `Runtime` class
val instanceLogger: Logger = Logger(this::class) // Logger for this instance's class

logger.info {
    """
    You can add a quick log without declaring a Logger with
    'com.hexagonkt.core.logging.logger'. It is a default logger created with a custom name
    (same as `Logger(LoggingManager.defaultLoggerName)`).
    """
}

classLogger.trace { "Message only evaluated if trace enabled" }
classLogger.debug { "Message only evaluated if debug enabled" }
classLogger.warn { "Message only evaluated if warn enabled" }
classLogger.info { "Message only evaluated if info enabled" }

val exception = IllegalStateException("Exception")
classLogger.warn(exception) { "Warning with exception" }
classLogger.error(exception) { "Error message with exception" }
classLogger.warn(exception)
classLogger.error(exception)
classLogger.error { "Error without an exception" }

By default, Hexagon uses the System.Logger class.

Package com.hexagonkt.core.media

Media types definitions and constants for default media types.

Package com.hexagonkt.core.security

Cryptography and key stores utilities.

Package com.hexagonkt.core.text

Text utilities to allow the use of ANSI escape codes and case converting tools among other features.