View on GitHub

eadlsync

Synchronization tool to synchronize embedded architectural decisions in Java with a SE-Repo

eadlsync

Build Status codecov

eadlsync can be used to synchronize embedded architectural decisions with architectural decisions stored in a SE-Repo. It was created in the context of the bachelor thesis of Tobias Boceck which can be viewed here.

Developing

Execute gradlew generateSource in the project root directory before writing source code

Testing

Execute gradlew generateTestSource in the project root directory before writing tests

Building and Installing

To build the project execute gradlew installDist in the project root directory. This will create a folder called eadlsync in build/install. Copy the eadlsync folder to a installation location of your choice. Now add the bin folder which is located inside of the eadlsync folder to your environment variables.

Using the tool

Go to the root directory of your project where you want to synchronize your embedded architectural decisions and open up a terminal. Call any supported Commands by typing eadlsync followed by optional programm arguments, followed by the command and optional command arguments.

$ eadlsync -h
Usage: <main class> [options] [command] [command options]
      Options:
        -c, --copyright, --license
            Show copyright information of this program
        -d, --debug
            Debug mode
            Default: false
        -a, --author, --authors, -dev, --developers
            List the authors of this program
        -h, --help
            Show the usage of this program
        -l, --log
            Set the log level
            Default: OFF
        -s, --stacktrace
            Print stacktrace
            Default: false
        -v, --version
            Show version information of this program

Commands

The following list contains all avalibale commands and their command parameters for the eadlsync tool.

Init

$ eadlsync init -h
use ’eadlsync init -u <base-url> -p <project>’ to initialize eadlsync in this directory
Usage: init [options]
      Options:
        -h, --help
            Show the usage of this command
      * -p, --project
            name of the project in the se-repo
        -s, --source
            specify the source directory of the project as relative or absolute path
            Default: <directory where program is started>
      * -u, --url
            url of the se-repo, has to end with ’/se-repo’ except if localhost is
            specified

Pull

$ eadlsync pull -h
use ’eadlsync pull’ to update the local decisions
Usage: pull [options]
      Options:
       -h, --help
            Show the usage of this command

Commit

$ eadlsync commit -h
Usage: commit [options]
      Options:
        -f, --force
            force a commit even if the se-repo has changes
            Default: false
        -h, --help
            Show the usage of this command
      * -m, --message
            the commit message that appears in the se-repo

Sync

$ eadlsync sync -h
use ’eadlsync sync’ to update the local decisions and afterwards update the decisions of
    the se-repo
Usage: sync [options]
      Options:
        -h, --help
            Show the usage of this command

Merge

$ eadlsync merge -h
use ’eadlsync merge <commit-id>’ to merge the local decisions with the decisions of the
    selected commit from the se-repo
Usage: merge [options] commit-id
      Options:
        -h, --help
            Show the usage of this command

Reset

$ eadlsync reset -h
use ’eadlsync reset <commit-id>’ to reset the local decisions to the decisions of the
    selected commit from the se-repo
Usage: reset [options] commit-id
      Options:
        -h, --help
            Show the usage of this command

Status

$ eadlsync status -h
use ’eadlsync status’ to show the status of the eadlsync
Usage: status [options]
      Options:
        -h, --help
            Show the usage of this command

Statistic

$ eadlsync statistic -h
use ’eadlsync statistic’ to display statistics about the decisions in this code repository
Usage: statistic [options]
      Options:
        -h, --help
            Show the usage of this command

Diff

$ eadlsync diff -h
use ’eadlsync diff <commit-id>’ to view the diff of the specified decisions compared to
    the local decisions
Usage: diff [options] commit-id
      Options:
        -g, --gui
            display the diff in a JavaFX window
            Default: false
        -h, --help
            Show the usage of this command

Config

$ eadlsync config -h
use ’eadlsync config --[user|core].<key>=<value>’ to update the decisions in the se-repo
Usage: config [options]
      Options:
        --core.project
            set the project to work with, this shall match a se-repo repository name
        --core.root
            set the root directory of the code base
        --core.url
            set the base url for the se-repo, the url shall be in a format of
                ’<host>/serepo’ or ’localhost’
        -h, --help
            Show the usage of this command
        --user.email
            change the commit email of this program
        --user.name
            change the commit name of this program

De-Init

$ eadlsync deinit -h
use ’eadlsync deinit’ de-initialize eadlsync in this directory
Usage: deinit [options]
      Options:
        -h, --help
            Show the usage of this command