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. |