eadlsync
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