Collection of JVM library logic that the Sirloin software development team is currently using

Overview

sirloin-jvmlib

Overview

Collection of JVM library logic that the Sirloin software development team is currently using.

Requirements

  • Kotlin 1.5.31

  • OpenJDK 17 or compatible

Installation

Gradle

  1. Add jitpack.io maven repository

    allprojects {
      repositories {
        // ...
        maven { url 'https://jitpack.io' }
      }
    }
  2. Declare dependencies

    dependencies {
      implementation "com.github.sirloin-dev.sirloin-jvmlib:sirloin-jvmlib-annotation:1.0.0"
      implementation "com.github.sirloin-dev.sirloin-jvmlib:sirloin-jvmlib-crypto:1.0.0"
      implementation "com.github.sirloin-dev.sirloin-jvmlib:sirloin-jvmlib-net:1.0.0"
      implementation "com.github.sirloin-dev.sirloin-jvmlib:sirloin-jvmlib-text:1.0.0"
      implementation "com.github.sirloin-dev.sirloin-jvmlib:sirloin-jvmlib-time:1.0.0"
      implementation "com.github.sirloin-dev.sirloin-jvmlib:sirloin-jvmlib-util:1.0.0"
    
      // Test helpers: Better not to include this as main dependency
      testImplementation "com.github.sirloin-dev.sirloin-jvmlib:sirloin-jvmlib-test:1.0.0"
    }

Maven

  1. Add jitpack.io maven repository

    <repositories>
      <repository>
        <id>jitpack.ioid>
          <url>https://jitpack.iourl>
      repository>
    repositories>
  2. Declare dependencies

    <dependencies>
      <dependency>
        <groupId>com.github.sirloin-dev.sirloin-jvmlibgroupId>
        <artifactId>sirloin-jvmlib-annotationartifactId>
        <version>1.0.0version>
      dependency>
    
      <dependency>
        <groupId>com.github.sirloin-dev.sirloin-jvmlibgroupId>
        <artifactId>sirloin-jvmlib-cryptoartifactId>
        <version>1.0.0version>
      dependency>
    
      <dependency>
        <groupId>com.github.sirloin-dev.sirloin-jvmlibgroupId>
        <artifactId>sirloin-jvmlib-netartifactId>
        <version>1.0.0version>
      dependency>
    
      <dependency>
        <groupId>com.github.sirloin-dev.sirloin-jvmlibgroupId>
        <artifactId>sirloin-jvmlib-textartifactId>
        <version>1.0.0version>
      dependency>
    
      <dependency>
        <groupId>com.github.sirloin-dev.sirloin-jvmlibgroupId>
        <artifactId>sirloin-jvmlib-timeartifactId>
        <version>1.0.0version>
      dependency>
    
      <dependency>
        <groupId>com.github.sirloin-dev.sirloin-jvmlibgroupId>
        <artifactId>sirloin-jvmlib-utilartifactId>
        <version>1.0.0version>
      dependency>
    
      
      <dependency>
        <groupId>com.github.sirloin-dev.sirloin-jvmlibgroupId>
        <artifactId>artifactId>
        <version>1.0.0version>
        <scope>testscope>
      dependency>
    dependencies>
You might also like...
Copy of privat enterprice repo of project made by team 37 in course in2000 spring 2021, University of Oslo

Njord - leeway simulation app in2000-team37-njord Copy of private enterprise repo of project made by team 37 in course in2000 spring 2021, University

KoltinPulsar - A collection of experiments using Kotlin with Apache Pulsar

Some Experiments of using Kotlin and Apache Pulsar This is a collection of exper

An introductory dynamics to Test Driven Development (TDD)An introductory dynamics to Test Driven Development (TDD)

tdd-demo Nesse hands-on teremos uma dinâmica introdutória a Test Driven Development (TDD), ou desenvolvimento orientado por testes. instruções 1 - Clo

An implementation of MediatR on JVM for Spring using Kotlin coroutines

Kpring MediatR In this project, an attempt has been made to implement the mediator pattern on the JVM with simplicity using Kotlin with native corouti

A complete Kotlin application built to demonstrate the use of Modern development tools with best practices implementation using multi-module architecture developed using SOLID principles
A complete Kotlin application built to demonstrate the use of Modern development tools with best practices implementation using multi-module architecture developed using SOLID principles

This repository serves as template and demo for building android applications for scale. It is suited for large teams where individuals can work independently on feature wise and layer wise reducing the dependency on each other.

An extensive collection of Kotlin Android Utils
An extensive collection of Kotlin Android Utils

An extensive collection of Kotlin Android Utils This library contains small helper functions used throughout almost all of my other projects. The goal

A collection of code generators powered by ksp.

AutoKsp A collection of code generators powered by ksp. status: working in progress Projects AutoGradlePlugin - Generate gradle plugin properties file

A collection of katas either copied or ported from some amazing folks

Kotlin Refactoring Katas A collection of katas either copied or ported from some

A simple Kotlin class to use to connect to a MongoDB collection.
A simple Kotlin class to use to connect to a MongoDB collection.

mongodb-kotlin A simple Kotlin class to use to connect to a MongoDB collection. Once you have created a MongoDB project, choose Build a Database: Next

Comments
  • Fix ProtectedProperty to immutable for preserving immutablility on any execution context

    Fix ProtectedProperty to immutable for preserving immutablility on any execution context

    AS-IS

    class com.sirloin.jvmlib.util.ProtectedProperty<T>(
        var value: T,
        // ...
    )
    

    TO-BE

    class com.sirloin.jvmlib.util.ProtectedProperty<T>(
        val value: T,
        // ...
    )
    

    MOTIVATION

    Even if we declared value as val, immutablility will be broken if the target is mutable. Assigning final mutable collections or an arbitary object which holds some mutable fields, for example.

    The current ProtectedProperty#value declared as var is a meaningless attempt - even worse, it breaks the immutability of the client code.

    Therefore, change value to val so that mutability management can be left to the client code.

    IMPACT

    ProtectedProperty value changing codes will not compile after this fix.

    enhancement breaking 
    opened by FrancescoJo 0
  • Fix truncateToSeconds extension function signature to receive non-null only

    Fix truncateToSeconds extension function signature to receive non-null only

    AS-IS

    fun Instant?.truncateToSeconds(): Instant? =
        this?.truncatedTo(ChronoUnit.SECONDS)
    

    TO-BE

    fun Instant.truncateToSeconds(): Instant =
        this.truncatedTo(ChronoUnit.SECONDS)
    

    MOTIVATION

    Receiving a nullable Instant instance in this case is almost useless. Since Kotlin natively supports nullsafe operator(?.), invoking truncateToSeconds via null safe call still conserve nullity of receiving object. For non-null cases, however, this call converts receiving instance as 'maybe' type and it adds a mandatory, cumbersome non-null assertion operator(!!) which degrades code readibility.

    IMPACT

    truncateToSeconds calls on nullable instance will not compile after this fix.

    enhancement breaking 
    opened by FrancescoJo 0
Releases(1.0.0)
Reach plc. Apps Team Exercise (Junior)Reach plc. Apps Team Exercise (Junior)

Reach plc. Apps Team Exercise (Junior) Description One of our magazines is looking for new sources of revenues and starts a few partnerships with beau

null 0 Nov 9, 2021
Team management service is a production ready and fully tested service that can be used as a template for a microservices development.

team-mgmt-service Description Team management service is a production ready and fully tested service that can be used as a template for a microservice

Albert Llousas Ortiz 18 Oct 10, 2022
Simple Kotlin application that displays the currently available network interfaces on your machine

Network-Interface-Checker Simple Kotlin application that displays the currently available network interfaces on your machine. An executable jar can be

Joshua Soberg 3 Jun 10, 2022
A media player, currently only for Android, that allows you to play songs in background for free

Just Listen A music player currently only for android. It is using Audius public APIs to display and get the playlists/songs. Available on google play

null 68 Dec 27, 2022
FragmentContainerViewIdBugDemo - minimal repro project demonstrating a bug in FragmentContainerView's id check logic in the context of a dynamic feature module

FragmentContainerViewIdBugDemo minimal reproduce project demonstrating an apparent bug in FragmentContainerView's id check logic in the context of a d

null 0 Jan 5, 2022
Collection of Rewrite Recipes pertaining to the JHipster web application & microservice development platform

Apply JHipster best practices automatically What is this? This project implements a Rewrite module that applies best practices and migrations pertaini

OpenRewrite 5 Mar 7, 2022
This is an example of a simple application with layered software base on clean-architecture as application architecture and mvvm as presentation architecture

This is an example of a simple application with layered software base on clean-architecture as application architecture and mvvm as presentation archi

null 3 Jul 2, 2021
From 8-10 October 2021 there was VTB MORE tech 3.0, where the DUCK team presented their solution.

InvestmentGuideVTB Ссылка на репозиторий с бэкендом приложения: https://github.com/disarrik/vtbBackend Процесс сегментация происходит в отдельном окне

Denis 1 Nov 8, 2021
An application that the forensics team exposes to the detective squad to assist

Forensics API The forensics-api is an application that the forensics team exposes to the detective squad to assist with the case of the witch who is k

Jasper 0 Oct 10, 2021