NONRTRIC - Implement DMaaP mediator producer service in Java
[nonrtric.git] / dmaap-adaptor-java / README.md
1 # O-RAN-SC Non-RealTime RIC DMaaP Information Producer
2 This product is a generic information producer (as defined by the Information Coordinator Service (ICS)). It can produce any information that can be retrieved from DMaaP. Its main tasks is to register information types and itself as a producer using the ICS Data Producer API.
3
4 A data consumer may create information jobs through the ICS Data Producer API.
5
6 This service will retrieve data from the DMaaP Message Router (MR) and distribute it further to the data consumers (information job owners).
7
8 The component is a springboot service and is configured as any springboot service through the file `config/application.yaml`. The component log can be retrieved and logging can be controled by means of REST call. See the API documentation (api/api.yaml).
9
10 The file `config/application_configuration.json` contains the configuration of job types that the producer will support. Here follows an example with one type:
11
12 ```sh
13     {
14        "types":
15         [
16           {
17              "id":  "STD_Fault_Messages",
18              "dmaapTopicUrl":  events/unauthenticated.SEC_FAULT_OUTPUT/dmaapmediatorproducer/STD-Fault-Messages_1.0.0",
19              "useHttpProxy": false
20           }
21         ]
22     }
23 ```
24
25 Each information has the following properties:
26  - id the information type identity as exposed in the Information Coordination Service data consumer API
27  - dmaapTopicUrl the URL to for fetching information from  DMaaP
28  - useHttpProxy if true, the received information will be delivered using a HTTP proxy (provided that one is setup in the application.yaml file). This might for instance be needed if the data consumer is in the RAN or outside the cluster.
29
30 The service producer will constantly poll MR for all configured job types. When receiving messages for a type, it will distribute these messages to all jobs registered for the type. If no jobs for that type are registered, the messages will be discarded. If a consumer is unavailable for distribution, the messages will be discarded for that consumer.
31
32 ## License
33
34 Copyright (C) 2021 Nordix Foundation. Licensed under the Apache License, Version 2.0 (the "License") you may not use this file except in compliance with the License. You may obtain a copy of the License at
35
36 http://www.apache.org/licenses/LICENSE-2.0
37
38 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
39 For more information about license please see the [LICENSE](LICENSE.txt) file for details.