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)
Deployments
Dependencies
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.
source code repositories
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.
Operations and development
Configuration files and context root
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 |
||
|
Projects
Functional Tests
GUI and Backend RestServices
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.
Frontend API
Page publisher API
Publisher API
NPO API Clients
This project provides java clients for the above projects.
VPRO shared
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
POMS 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)
Backend utilities
Sometimes different POMS project share 'backend' code, like repository implementations. These need never be exposed to the outside world.
User backend
This contains the code to talk to keycloak to acquire user roles/groups
Rights
The rights matrix of the POMs GUI can be found here