Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Package

Notes of packages which should not  be there

Classes from illegal package

Decision

1

org.onap.cps.ncmp.rest

Code Block
org.onap.cps.spi,
Code Block
ConditionProperties
ModuleDefinition
ModuleReference
DataNode
CpsException
DataNodeNotFoundException
AlreadyDefinedException
CpsException
DataValidationException

CPS Utils can be used everywhere in the project

Apart from ConditionProperties the use of the classes is OK.
Just allow spi.model and spi.exceptions.

2
Code Block
org.onap.cps.ncmp.impl
Code Block
NetworkCmProxyFacade
LockReasonCategory.LOCKED_MISBEHAVING

The Facade class should be split into an interface in the api package and an actually implementation in the impl. package.

LockReason category should be moved under the api package in NCMP Service.
The resulting error should be examined by someone

3

org.onap.cps.ncmp.api

Code Block
org.onap.cps.ncmp.impl
Code Block
CmHandleQueryService
CmHandleRegistrationService
InventoryPersistence
ParameterizedCmHandleQueryService
CmHandleQueryConditions
InventoryQueryConditions
YangModelCmHandle
TrustLevelManager
AlternateIdMatcher
YangDataConverter

The Facade class should be split into an interface in the api package and an actually implementation in the impl. package.

4
Code Block
org.onap.cps.ncmp.config,
Code Block
CpsApplicationContext

Needs further investigation, but probably fine.
it is used in CmResourceAddress class.

5
Code Block
org.onap.cps.spi
Code Block
ModuleDefinition
ModuleReference

This should be fine. look at the comments above!

6

org.onap.cps.ncmp.impl

Code Block
org.onap.cps.cpspath
Code Block
CpsPathUtil
PathParsingException

org/onap/cps/impl/utils/CpsValidator.java should be moved to org/onap/cps/utilsCps Path module should be declared as a common module for all.

7
Code Block
org.onap.cps.events
Code Block
EventsPublisher

This should be kept in place to not duplicate code in the projects.

An exception should be made here.

8
Code Block
org.onap.cps.impl*
Code Block
CpsValidator

org/onap/cps/impl/utils/CpsValidator.java interface should be moved to org/onap/cps/utils

9
Code Block
org.onap.cps.spi
Code Block
DataNode
FetchDescendantsOption
DataValidationException
ModuleDefinition
ModuleReference
DataNode
CpsException
DataNodeNotFoundException
AlreadyDefinedException
CpsException

FetchDescendantsOption should be moved into ‘spi.api’
along with PaginationOption and CascadeDeleteAllowed.


The rest of the classes is OK here

CPS

Package

Notes of packages which should not  be there

Classes from illegal package

Decision

1

org.onap.cps.rest.

Code Block
org.onap.cps.spi
Code Block
Anchor
Dataspace
SchemaSet
CascadeDeleteAllowed
PaginationOption
DeltaReport
FetchDescendantsOption
AlreadyDefinedException
CpsAdminException
CpsException
CpsPathException
DataInUseException
DataNodeNotFoundException
DataValidationException
ModelValidationException
NotFoundInDataspaceException
ModelValidationException

These should be moved under spi.api and then allow their usage.

2

org.onap.cps.api.impl

All impl should be moved out odfthe api package, so in my opinion all of these are breaking the Arch rule

Code Block
org.onap.cps.api,
org.onap.cps.api.impl,
org.onap.cps.events,
org.onap.cps.impl.utils,
org.onap.cps.spi,
org.onap.cps.utils,
org.onap.cps.cpspath.parser,
org.onap.cps.yang

See the comment on the left. The possible list of classes would be numerous, so I’m not detailing them.

Move the impl package from api.