This is the poms parent. This is the parent pom of the several projects in the poms ('Publieke Omroep Media Services') ecosystem, which are used by Dutch public broadcasters.
We use the pom.xml
of this project to synchronize versions of dependencies.
This README serves as a general description of the different systems that this envolves
We’re available at slack.
Documentation is maintained at wiki of VPRO (needs password, and your ip in proper range)
This describes schematically the dependencies between the several modules relevant to poms.
This does not intend to be exhaustive, but merely tries to sketch the big picture.
An important aspect is that dependencies may only be one way and non-circular. Often dependencies are both transitive and direct, of which only examples are indicated.
The artifacts in 'sharable utilities' are available on maven central and their source code is available on github. Thich makes them useable also by other parties then VPRO
The image is clickable and links to several version control repositories.
The azure blocks we consider part of the 'poms ecosystem'. The ones with blue links are open source, and point to public repositories. The green links point to private repositories.
This github project provides three pom.xml
s, which extends from each other. They are all the type 'pom', and are meant to be imported or serve as 'parent' for other pom.xml
s.
-
nl.vpro.poms:poms-bom
Can be imported in otherpom.xml
s that are not part of poms itself. It manages the version of all artifacts that are related to poms and relatative -
nl.vpro.poms:poms-parent
Is the parent pom of all poms projects. Extends frompoms-bom
, but manages all versions of used libraries. -
nl.vpro.poms:poms-parent-private
Is the parent pom of all private poms projects (that live in gitlab). Extends frompoms-parent
, but adds configuration for gitlab as a maven repository
For every deployable we indicate: The URL in test/acc and production The port and application context we suggest for development. Configure your application like this, and you would have minimal configuration to do to get things up and running on your development machine.
The configuration file that is automatically included, and we suggest for development. We suggest that you maintain configuration you need for development in this file.
We often support a setting like this: env=[prod|acc|test|localhost] to automatically switch between several setting which vary between environments predictably.
project | url | configuration file | recommended port and context during development |
---|---|---|---|
|
- |
||
|
|||
|
|||
|
|||
|
|||
- |
|
- |
|
|
8072 |
||
|
Currently, the POMS GUI and the POMS Backend API are maintained as one project with two artifacts. They can be run in one tomcat, but on openshift they are in separate tomcat deployments. The API is even deployed redundantly.
Most projects also depend on a collection of utilities maintained by VPRO but which are not specific for POMS or its subsystems. See https://github.com/vpro/vpro-shared
These modules are specific for POMS, and most noticeably contain the domain classes shared by most projects, like the 'domain' objects and services. See https://github.com/npo-poms/poms-shared
Classes from this may also end up outside the POMS projects themselves. Like e.g. CMS’s (probably via the api clients)
Sometimes different POMS project share 'backend' code, like repository implementations. These need never be exposed to the outside world.
The rights matrix of the POMs GUI can be found here