Kotlin

OfficeFloor plug-in for using Kotlin

License

License

Categories

Categories

Kotlin Languages Net
GroupId

GroupId

net.officefloor.polyglot
ArtifactId

ArtifactId

officepolyglot_kotlin
Last Version

Last Version

3.17.0
Release Date

Release Date

Type

Type

jar
Description

Description

Kotlin
OfficeFloor plug-in for using Kotlin

Download officepolyglot_kotlin

How to add to project

<!-- https://jarcasting.com/artifacts/net.officefloor.polyglot/officepolyglot_kotlin/ -->
<dependency>
    <groupId>net.officefloor.polyglot</groupId>
    <artifactId>officepolyglot_kotlin</artifactId>
    <version>3.17.0</version>
</dependency>
// https://jarcasting.com/artifacts/net.officefloor.polyglot/officepolyglot_kotlin/
implementation 'net.officefloor.polyglot:officepolyglot_kotlin:3.17.0'
// https://jarcasting.com/artifacts/net.officefloor.polyglot/officepolyglot_kotlin/
implementation ("net.officefloor.polyglot:officepolyglot_kotlin:3.17.0")
'net.officefloor.polyglot:officepolyglot_kotlin:jar:3.17.0'
<dependency org="net.officefloor.polyglot" name="officepolyglot_kotlin" rev="3.17.0">
  <artifact name="officepolyglot_kotlin" type="jar" />
</dependency>
@Grapes(
@Grab(group='net.officefloor.polyglot', module='officepolyglot_kotlin', version='3.17.0')
)
libraryDependencies += "net.officefloor.polyglot" % "officepolyglot_kotlin" % "3.17.0"
[net.officefloor.polyglot/officepolyglot_kotlin "3.17.0"]

Dependencies

compile (4)

Group / Artifact Type Version
net.officefloor.activity : officeprocedure jar 3.17.0
org.jetbrains.kotlin : kotlin-stdlib jar 1.3.41
net.officefloor.web : officejson_default jar 3.17.0
com.fasterxml.jackson.module : jackson-module-kotlin jar 2.9.9

provided (1)

Group / Artifact Type Version
junit : junit jar 4.12

Project Modules

There are no modules declared in this project.

Website

Continuous Integration Codacy Badge codecov

Maven Central GitHub License

OfficeFloor

OfficeFloor - inversion of coupling control

Inversion of Control = Dependency Injection + Continuation Injection + Thread Injection

More information available at http://officefloor.net

Inversion of Coupling Control

OfficeFloor completes inversion of control by adding two new paradigms:

  • Continuation Injection: to inject functions to orchestrate application behaviour
  • Thread Injection: to inject/select thread (pools) to execute particular functions
  • Dependency (State) Injection: to inject objects for state into functions (currently only paradigm implemented by "inversion of control" frameworks)

In doing this, OfficeFloor is capable of running different threading models (e.g. both asynchronous single threaded and synchronous multi-threaded). In actual fact, OfficeFloor opens up mixing the threading models within the application and even introduces ability for taking advantage of thread affinity to CPUs.

This follows OfficeFloor modeling people in an office environment. As per the paper OfficeFloor: using office patterns to improve software design ( free download here ), OfficeFloor follows:

  • Office being an application that makes decisions on information
  • Tasks within the Office as functions/methods (weaved together with Continuation Injection)
  • Office employees/workers as threads that undertake the functions/methods (assigned via Thread Injection)
  • Forms being the objects (manage state via Dependency Injection)

This allows OfficeFloor to better align to how business processes actually work:

  • Workers synchronously working through tasks/functions of the processes
  • Workers working asynchronously with each other

In other words, people think/behave synchronously but organise asynchronously. Hence, both thread models are in play in modelling business processes. Furthermore, OfficeFloor makes development of asynchronous applications easier. This is achieved by allowing the developer to avoid asynchronous coding by having synchronous functions co-ordinated asynchronously (just like workers above).

Further to this, graphical configuration is used. An example configuration is as follows:

Graphical Configuration

net.officefloor.polyglot

OfficeFloor

Inversion of Coupling Control

Versions

Version
3.17.0
3.16.0
3.15.0
3.14.0
3.13.0
3.12.0
3.11.0
3.10.3
3.10.2
3.10.1
3.10.0
3.9.2
3.9.1
3.9.0