aboutsummaryrefslogtreecommitdiffstats
path: root/cps-service
AgeCommit message (Collapse)AuthorFilesLines
2024-10-24Refactor: Improve code quality and compliance with SonarQube standardssourabh_sourabh1-13/+12
- Consolidated multiple `if` statements to enhance readability and maintainability. - Replaced traditional `instanceof` checks followed by casting with the new pattern matching syntax for improved type safety and clarity. - Removed unnecessary casts and streamlined code in `addYangLeafList` and `addDataNodeFromNormalizedNode` methods. Issue-ID: CPS-1957 Change-Id: I46696dc184b6b3c3d0fe3a6bd12267a4e0d76193 Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
2024-10-17Release Stage 7 for 3.5.4seanbeirne1-1/+1
Issue-ID: CPS-2457 Change-Id: Id9a267c587f16f3fb5edb558b33cd0003864ed93 Signed-off-by: seanbeirne <sean.beirne@est.tech>
2024-10-09Implementation of Data validation feature in Create a Node APIArpit Singh11-32/+236
Added support to validate JSON/XML data without the need of persisting it in the databse. - added "dryRunInQuery" flag as a new query parameter - added new method as part of CpsDataService layer to perform data validation - added new method in yang parser "validateData" to validate data without persisting it Issue-ID: CPS-2361 Change-Id: I43dd33cc6120576d0fac606d5c4b0168d107311d Signed-off-by: Arpit Singh <as00745003@techmahindra.com>
2024-10-08Merge "Policy Executor: handle errors, part 2 (fighting between IntelliJ and ↵Sourabh Sourabh2-0/+8
Checkstyle best practices)"
2024-10-04Bump CPS to 3.5.4-SNAPSHOTmpriyank1-1/+1
- bump cps to 3.5.4-SNAPSHOT - updated release notes Issue-ID: CPS-2434 Change-Id: I3d5e6f37711bb29b61b598cc5af57ecfdc35cbba Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
2024-10-03[BUG] Fix memory leak related to using arrays in Hibernatedanielhanrahan1-12/+10
The use of arrays like String[] instead of Collection<String> in JpaRepository methods is causing a memory leak, most likely due to a bug in the hypersistence-utils dependency which provides the feature. Note code using arrays in JDBC (via jdbcTemplate) is not affected. This patch removes most uses of arrays in Java, except one needed for FragmentPrefetchRepository using JDBC setArray(), which is safe. Issue-ID: CPS-2430 Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech> Change-Id: I94f8c3d4c8c32ebe0978c08d3226a196a95bf3b9
2024-10-03Policy Executor: handle errors, part 2ToineSiebelink2-0/+8
(fighting between IntelliJ and Checkstyle best practices) - non-2xx responses are processed using web client exceptions - handle unknown host exception - upgraded spotbugs (checkstyle and related mvn plugin) - fixed some small spotbugs due to upgrade - added commented instructions in docker compose to enable debugging - added some environment variables for policy executor configuration - extract out Sleeper in stub service to achieve 100% coverage - added cause to Policy Executor exceptions where applicable - ignored (new) spotbug rule about catch NPE because of issue in 3pp - ignored (new) spotbug rule about \n in string due to multiline string block Issue-ID: CPS-2412 Change-Id: I6835a73320c436cbeea12cc7a06f15899eec7bf1 Signed-off-by: ToineSiebelink <toine.siebelink@est.tech>
2024-10-03Update JIRA and Wiki links host name from wiki.onap.org to lf-onap.atlassian.netsourabh_sourabh5-7/+7
Issue-ID: CPS-2432 Change-Id: I53f380a4fe0968d1ec9f1393651c7c43f03d0d95 Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
2024-09-24Remove Hazelcast cache for prefix resolver (CPS-2417 #2)danielhanrahan10-524/+22
This patch removes the AnchorDataCache from CPS, which is used for prefix resolution in get/query operations. As such, Hazelcast is no longer a dependency of CPS, only NCMP. - Changed PrefixResolver to be more efficient. - Removed AnchorDataCache and associated classes. - Moved HazelcastCacheConfig to NCMP. - Removed Hazelcast dependency from cps-service/pom.xml This shows good performance improvements in some APIs such as v2 GET which is nearly 2x faster (also 5x faster including base patch). Issue-ID: CPS-2417 Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech> Change-Id: I24768469f24e90b70f7a6187faa4f5b3d75777d2
2024-09-24Reduce anchor lookups related to PrefixResolver (CPS-2417 #1)danielhanrahan3-21/+7
Instead of looking up same Anchor many times inside a for-loop, do it once outside the loop. This greatly improves performance in some cases, such as v2 GET API: - /cps/api/v2/dataspaces/{dataspace}/anchors/{anchor}/node Testing shows 3x faster response time. Issue-ID: CPS-2417 Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech> Change-Id: I80d97d8cc24372eed70626ed840cad985cbe0a4b
2024-09-17Refactored cps-ri package structureleventecsanyi15-26/+24
- fixed import order and moved package structure Issue-ID: CPS-2293 Change-Id: Ie2f9f057f261577054530feee7480850ba4b41e1 Signed-off-by: leventecsanyi <levente.csanyi@est.tech>
2024-09-11Merge "Renaming Delta Operations as per RFC 9144"Priyank Maheshwari5-20/+20
2024-09-10Renaming Delta Operations as per RFC 9144Arpit Singh5-20/+20
RFC 9144 recommends naming convention for operations that can be performed on any datastore. The recommended names are: - create - remove - replace Whereas in CPS Delta feature these operaitions were named: - add - remove - update So, "add" and "update" operations have been changed to "create" and "replace" respectively. Issue-ID: CPS-2393 Change-Id: Ie39f5f8ccc91e96cf484ca7fbc833a6be8758054 Signed-off-by: Arpit Singh <as00745003@techmahindra.com>
2024-09-02Remove unused and duplicate dependencies in pomsdanielhanrahan1-12/+0
- remove duplicate dependencies from cps-service pom - remove unused spring security dependency from cps-application pom Issue-ID: CPS-2390 Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech> Change-Id: Id49705e8790df7d7e98d80fa0ccb639eb4f1995f
2024-08-21Bump CPS to 3.5.3-SNAPSHOTdanielhanrahan1-1/+1
- bump CPS to 3.5.3-SNAPSHOT - updated the release notes and prepared for the next release Issue-ID: CPS-2374 Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech> Change-Id: I60ea5f5864f5818d1ed5078e375cf07b8d713dde
2024-08-13CPS-NCMP: Slow cmHandle registration when we use moduleSetTag, alternateId ↵sourabh_sourabh4-0/+77
and dataProducerIdentifier - Created a new repo. service for fragment table that executes a native sql query to find first ready cm handle id based on moduleset tag and then returns list of module references. - Exposed a new interface into module service that is used by module sync service to get list of midule refs by module set tag. Issue-ID: CPS-2353 Change-Id: I438dbd1ed37c1ff4e15f792e93a095aa604120bc Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
2024-08-01XML content support on add list elementRudrangi Anupriya3-14/+22
Issue-ID: CPS-2287 Change-Id: Ibb7ffb66ccbb03703266132c6d5c2eade0e7cb4a Signed-off-by: Rudrangi Anupriya <ra00745022@techmahindra.com>
2024-07-24Update response message for data validation failureArpit Singh2-9/+5
- Make the response message more informative and cleaner in case of data validation failure. - Updated message body will not contain the entire jsonData as part of response sent back to the user Issue-ID: CPS-2306 Change-Id: I28aab1450779af98ccdd11701e78bdfcdbc18cf0 Signed-off-by: Arpit Singh <as00745003@techmahindra.com>
2024-07-18Integration test to validate DMI service URLsourabh_sourabh1-1/+1
- New groovy test is written to validate if dmi service url is encoded correctly. Issue-ID: CPS-2317 Change-Id: I048bf37dd3ba4f37df7dace927f55bf8dd899922 Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
2024-07-16XML content support on replace a node with descendantsRudrangi Anupriya3-24/+60
Issue-ID: CPS-2282 Change-Id: Ibb7ffb65ccbb03703266712c6d5c2eade0e7ab4b Signed-off-by: Rudrangi Anupriya <ra00745022@techmahindra.com>
2024-07-15Bump CPS to 3.5.2 Snapshotmpriyank1-1/+1
- bump CPS to 3.5.2-SNAPSHOT - updated the release notes and prepared for the next release Issue-ID: CPS-2318 Change-Id: I584faf6218e60ad62e32ef8c3cb0deb4047149a2 Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
2024-06-25Fix incorrect use of getAnchors(dataspace, schemasets)danielhanrahan7-62/+112
There is an issue in a method deleteDataNodes(dataspace, anchors) where it doesn't send data update events. This is because it fetches anchors using a method getAnchors(dataspace, schemaSetNames), when it needs to fetch anchors by name: getAnchors(dataspace, anchorNames) Changes: - Rename getAnchors method using schemasets to getAnchorsBySchemaSetNames - Add a method getAnchors(dataspace, anchorNames) - Update test of deleteDataNodes method using getAnchors so it checks that data update events are sent Issue-ID: CPS-2254 Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech> Change-Id: I55fe853f0a9278a66a5724bf4cf2723b0e2fbc8b
2024-06-20Bump CPS version to 3.5.1-SNAPSHOTmpriyank1-1/+1
- bump cps version to 3.5.1-SNAPSHOT - updated release notes to make it ready for the next release Issue-ID: CPS-2283 Change-Id: I242cae7c95a87c1a9e225cce3eb7b36097f1e5ba Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
2024-06-19Addressed an adaptability issuesourabh_sourabh1-5/+5
- Defined a constant instead of duplicating literal "No data nodes 4 times. Issue-ID: CPS-478 Change-Id: I2b980a228217e85424342d4c2b9e97c5cfa618d1 Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
2024-06-06CPS Delta API 2: Delta between anchor and payloadArpit Singh7-20/+299
- Second API to get Delta between an anchor and JSON payload - added new API getDeltaByDataspaceAnchorAndPayload - added controller and service layer methods getDeltaByDataspaceAnchorAndPayload - Core Delta algorithm remains same as the first API. getDeltaByDataspaceAnchorAndPayload will call getDeltaBetweenDataNodes Issue-ID: CPS-1836 Signed-off-by: Arpit Singh <as00745003@techmahindra.com> Change-Id: Id74cd930ce48e5cb414aa62c5381b79675788a37
2024-06-05XML content support on update node leavesRudrangi Anupriya3-19/+22
Issue-ID: CPS-2071 Change-Id: Ibe7f59fbfcbb03703626132c6d5c2afde0e7ab4b Signed-off-by: Rudrangi Anupriya <ra00745022@techmahindra.com>
2024-05-15Bump CPS to 3.5.0-SNAPSHOTmpriyank1-1/+1
- bump cps to 3.5.0-SNAPSHOT Issue-ID: CPS-2228 Change-Id: I8a6d7e702b557d5b90dd384bbe429de4958ef77f Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
2024-05-14CPS Bump to 3.4.10-SNAPSHOTmpriyank1-1/+1
- bumping CPS to 3.4.10-SNAPSHOT version Issue-ID: CPS-2221 Change-Id: I8513582791078762bfb9d828966028c233e031db Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
2024-05-08Conditional cps change eventsmpriyank2-8/+24
- introduced a parameter to control the cps core change event notifications. we should be able to disable these notifications without affecting other notification flows. - fixed the LayeredArchitectureTest as we are accessing the Anchor model in the events package now. Issue-ID: CPS-2213 Change-Id: Id875925bc14de1cc6e8fa3193c0df470e09fe43f Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
2024-05-03[BUG] Correctly parse observedTimestampmpriyank3-9/+20
- Using the DateTimeUtility to parse the passed OffsetDateTime and using it for conversion to string - Moving to actual src/main/java from test side as it is to be used in the prod code as well and only keeping the methods in use. - Added test to fix the coverage issue Issue-ID: CPS-2211 Change-Id: I2b4325bb77a6da7fd470986b1da293f455650375 Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
2024-05-02Merge "Add Notification support in cps core"Priyank Maheshwari7-5/+360
2024-05-01Bump CPS versiondanielhanrahan1-1/+1
- bump cps to 3.4.9-SNAPSHOT - also updated the release notes Issue-ID: CPS-2205 Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech> Change-Id: Ifd7feb413baac30e3cbbdf2aeaac5fbb5ae2e463
2024-04-30Add Notification support in cps corerajesh.kumar7-5/+360
Add notification support using cloud events Issue-ID:CPS-2068 Change-Id: I56c34400dc73c71b936a51260efd240223babacd Signed-off-by: rajesh.kumar <rk00747546@techmahindra.com>
2024-04-26Faster module searches (CPS-2190 #3)danielhanrahan3-6/+4
This greatly improves performance of module searches by eliminating unneeded SQL queries via Hibernate lazy fetching. Issue-ID: CPS-2190 Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech> Change-Id: Ie9e65017d0027366456f1741cc37b10679317b25
2024-03-29Bump CPS versionmpriyank1-1/+1
- bump cps to 3.4.8-SNAPSHOT - also updated the release notes Issue-ID: CPS-2168 Change-Id: Iee7f1e2febbf28b0d5a2855d3128d9eb8bb3c490 Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
2024-03-29Uplift Spring boot 3.2.4emaclee1-11/+7
- uplifted spring boot from 3.1.2 to 3.2.4 - removed redundant dependencies - upgraded relevant dependencies - use of @Bean(some_name) is give a specific bean name - using @Bean(some_name) with @Qualifier so on the injection point to specify which bean to actually inject, this is used as we deal with multiple beans of the same type. Issue-ID: CPS-2101 Change-Id: I64d5bf567b9eb03fb39034a46528d0160b332715 Signed-off-by: emaclee <lee.anjella.macabuhay@est.tech>
2024-03-19Configure Hazelcast to have 1 backup to reduce memorydanielhanrahan2-8/+5
Currently Hazelcast is configured to have 3 synchronous backups and 3 asynchronous backups. These are separate, meaning there will be 7 copies in the cluster (1 original + 3 sync + 3 async backups). Even if only 1 instance of CPS/NCMP is running, it will have 7 copies in memory. Given that CPS/NCMP is typically only deployed using 1 or 2 instances, the settings are changed to 1 synchronous backup (same as Hazelcast's default configuration). This change has been tested and shown to reduce heap usage by around 100MB during 20K CM-handle registration. Issue-ID: CPS-2146 Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech> Change-Id: I4a5f6d83bc35e2c13cfb32002e38dc365da34c8e
2024-02-29Bump CPS to 3.4.7-SNAPSHOTmpriyank1-1/+1
- bump cps to 3.4.7-snapshot - updated the relese notes Issue-ID: CPS-2135 Change-Id: Ib166ebae2e3de9a727b3d0d4d21832c8858f4108 Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
2024-02-28Revert Spring Boot Upliftmpriyank1-0/+5
- reverting back to spring 3.1.2 - manual changes to revert as other apps not fully ready for the delivery Issue-ID: CPS-2133 Change-Id: I670b67916fa4a5d4e5bced6548b7fcd5ee12e855 Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
2024-02-27Bump CPS to 3.4.6-SNAPSHOTmpriyank1-1/+1
- bumping CPS to 3.4.6-SNAPSHOT - updated the release notes Issue-ID: CPS-2124 Change-Id: Id28af9340da9c1ce118b2122e97b8717860c7932 Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
2024-02-26Merge "Uplift Spring Boot to 3.2.2"Priyank Maheshwari1-5/+0
2024-02-23Bump CPS to 3.4.5-SNAPSHOTdanielhanrahan1-1/+1
- bump CPS to 3.4.5-SNAPSHOT and update the docs Issue-ID: CPS-2120 Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech> Change-Id: Ia2ea81b40ec19b87d3b25359fbb25ffdcc3285dd
2024-02-22Uplift Spring Boot to 3.2.2waqas.ikram1-5/+0
- Upgraded hypersistence-utils-hibernate-60 to hypersistence-utils-hibernate-63 - Introduced @Qualifier annotations where needed Issue-ID: CPS-2101 Change-Id: I8303592ed91584deb6ca5cd4e49800210b6ea989 Signed-off-by: waqas.ikram <waqas.ikram@est.tech>
2024-02-12Fix test failure by ordering leaf-listsdanielhanrahan1-4/+9
YANG specifies two ways that leaf-lists can be ordered: - ordered-by user: original order in JSON is preserved - ordered-by system (default): it is up to the system how to order For leaf-lists to preserve same order as the JSON, the Yang module must specify 'ordered-by user'. To ensure consistent behaviour even when system ordering is used, the leaf-list is sorted during parsing. - Add 'ordered-by user' to authors field in bookstore.yang - Sort leaf-list during parsing when using 'ordered-by system' - Add new tests to verify ordering Issue-ID: CPS-2057 Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech> Change-Id: I6ab688ec2fa4a22182e853d1a8b26642f278c40a
2024-02-07Merge "Orphaned modules are removed from the DB before cmhandle removal"Toine Siebelink1-1/+1
2024-02-07Bump CPS to 3.4.4-SNAPSHOTdanielhanrahan1-1/+1
- bump CPS to 3.4.4-SNAPSHOT and update the docs Issue-ID: CPS-2077 Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech> Change-Id: I1658c83642c8e64903f4bc03b74b6f5726d0227e
2024-02-07Orphaned modules are removed from the DB before cmhandle removalsourabh_sourabh1-1/+1
- changed sequence of delete schema set by cascade to remove unused yang resource modules at last. Issue-ID: CPS-2031 Change-Id: Icefc075165231cc4b9b170e04a2d12af645529e9 Signed-off-by: sourabh_sourabh <sourabh.sourabh@est.tech>
2024-02-01Add integration test for extending API: Get Module Definitionshalil.cakal1-1/+5
- Add new module: bookstore-types - Import the new module from stores module - Change integration testwares to comply with the new module - Add new integration test for retrieving module definition Issue-ID: CPS-1135 Change-Id: Ib51c998ceeab50d3fcea212ed55c8ab50ca09257 Signed-off-by: halil.cakal <halil.cakal@est.tech>
2024-02-01Extend API: Get Module Definitionshalil.cakal4-7/+50
- add query parameters: module-name and revision to OpenAPI - extend the controller method to hande the new parameters - add the new method stack to the service layer - extend the SQL query to support the new parameters - add unit and integration testwares Issue-ID: CPS-1135 Change-Id: I089ad2ad71effb58ac0ba809e9f441d6cdb59c4f Signed-off-by: halil.cakal <halil.cakal@est.tech>
2024-01-25CloudEvents support for cps-corempriyank3-0/+342
- Moving cloud events dependencies to the cps-service module instead of cps-ncmp-service - Testware has moved and new tests also introduced - EventsPublisher also moved Issue-ID: CPS-2040 Change-Id: Ibafb15e7e9efbdbe1e00e2b4f0da820bbcead004 Signed-off-by: mpriyank <priyank.maheshwari@est.tech>