Project

General

Profile

TP-CM » History » Version 1

Elmar Dott, 2023-09-17 23:09

1 1 Elmar Dott
<img src="https://elmar-dott.com/wp-content/uploads/ElmarDott.com_.jpg" style="float:left; height:50%; width:50%;" />
2
3
# together Platform :: Configuration Management
4
5
This repository includes all necessary files to build and compile artifacts of the project together platform (TP).
6
7
## Getting Started
8
9
The directory build-workflow contains the parent-pom and all global dependencies groupt by libraries. To make the POMs available for your project, run the pom.xml in the root folder from the command line and type mvn. Thats all.
10
11
The initializations scripts for the DBMS you will find in the dbms/src/sql directory.
12
13
For additional services like database server and so on, are Docker containers the choice. in the folder docker you find a linux script to install docker on Ubuntu. Depending on your OS and Docker version, some adoptions to install docker could be needed. Please use check as first the official documentation to install and run docker on your maschine.
14
15
KISS: Keep it simple stupid. Because of this community images from DockerHub are completely sufficient to deal with. To make those images ready for production please check the documenation page of the images. The README files inside of the docker sevice folders gives detailed information how to run the image in the context of together platform.
16
17
### Prerequisites
18
19
* Java 11 SE adopt openJDK
20
* Maven 3.8.x
21
* Docker.io
22
* NetBeans IDE (recommended) / JetBrains IntelliJ / Eclipse
23
24
### Installation
25
26
All released Artifacts will be available on Maven Central for usage.
27
28
**Maven**
29
PARENT POM: build workflow
30
```XML
31
<parent>
32
    <groupId>io.github.together</groupId>
33
    <artifactId>build-workflow</artifactId>
34
    <version>1.4.0</version>
35
</parent>
36
```
37
For using the bundles in your project you can place the following configuration in your POM. If you already use the the build-workflow as your parent POM then you don't need to insert the <dependency> section.
38
```XML
39
<dependencyManagement>
40
    <dependencies>
41
        <dependency>
42
            <groupId>io.github.together.libraries</groupId>
43
            <artifactId>bundle-spring</artifactId>
44
            <version>${framework.spring.version}</version>
45
            <type>pom</type>
46
        </dependency>
47
        <dependency>
48
            <groupId>io.github.together.libraries</groupId>
49
            <artifactId>bundle-hibernate</artifactId>
50
            <version>${framework.hibernate.version}</version>
51
            <type>pom</type>`
52
        </dependency>`
53
        <dependency>`
54
            <groupId>io.github.together.libraries</groupId>
55
            <artifactId>bundle-jarkarta</artifactId>
56
            <version>${framework.jarkarta.version}</version>
57
            <type>pom</type>
58
        </dependency>
59
    </dependencies>
60
</dependencyManagement>
61
```
62
63
```XML
64
</dependencies>
65
    <dependency>
66
        <groupId>io.github.together.libraries</groupId>
67
        <artifactId>bundle-hibernate</artifactId>
68
        <type>pom</type>
69
    </dependency>
70
    <dependency>
71
        <groupId>io.github.together.libraries</groupId>
72
        <artifactId>bundle-spring</artifactId>
73
        <type>pom</type>
74
    </dependency>
75
    <dependency>
76
        <groupId>io.github.together.libraries</groupId>
77
        <artifactId>bundle-jarkarta</artifactId>
78
    </dependency>
79
</dependencies>
80
```
81
82
## Usage
83
84
The build workflow (parent-pom) contains some useful features like distributed 
85
dependency management and a well defined reporting. For report creation, it is only
86
neccesary to run the mvn site command. This will generate JavaDoc,
87
Cobertura test Coverrage, Checkytle, PMD, Findbugs, BDD JGiven documentation and
88
some other usful informations.
89
90
The release policy for all together Platform modules is based on this reports. The
91
rules for deployed (published) Releases are:
92
* fix all compiler warnings
93
* jacoco full project coverage more than 80%
94
* all test have to pass (no skip)
95
* no SNAPSHOT artifacts as dependencies
96
* minimize all possible PMD, Findbugs & Checkstyle warnings. (sometimes they can't fixed)
97
98
The library POM is a reactor POM, to simplyfiy the deploy process. Library get only
99
in the case released, when bundles new added. Changes of existing bundels, like
100
udate a version of an dependency implies a new release of the bundle and the build-workflow.
101
102
## Authors
103
104
* **Elmar Dott** - [*Concept, Architecture, Development*](https://elmar-dott.com)
105
106
## License
107
108
This project is licensed under the Apache 2.0 license.
109
110
## Contributors
111
112
Feel free open a pull request or to send a feature request by e-mail in the case you want to contribute the project. Everyone is welcome, even beginners in programming. I also appreciate help by optimizing the documentation and creating tutorials.
113
114
Mistakes happen. But we only able to fix them, when we you inform us you found a bug. Do not hesitate to send a report in the way you feel common. I try to give as much as possible fast & direct support.
115
116
In the case you like this project, let me know it and rate it with a star.