Skip to content

As technology, I should support Separate architecture concerns regarding specification and implementation over multiple library projects (e.g fwk specification, fwk impl) #157

@olivierlemee

Description

@olivierlemee

https://www.notion.so/cybnity/494-60d068e7a53e4e81a38e6e51cd3c2bcc

REQ_MAIN_10: The software architecture shall separate the framework capabilities in a specification project (e.g org.cybnity.framework.spec) and in an independent technology core project (e.g org.cybnity.framework.core) allowing to manage the dependency and coupling from the other sub-projects (e.g software business domains, security capabilities).

BRANCH: initial FWK version including only unit test of runtime, main common dependencies to techstack, and that is based only on java libraries instantiation (not modularized and packaged as systems)

SUB_TASKS:

  • create techstack official v0 parent pom.xml
  • implement dependencies management and deliver techstack first release (release repo, pom.xml defined in demonstrator-line) and check build from foundation projects (including implementation of branches strategy and reused CI/CD workflow, tags politics...)
  • create techstack workflow ensuring maven deploy of techstack parent pom to cybnity repository only for released version, with automatic execution on pull_request validated on main branch
    • include manual quality check of official version of pom.xml via sample project :
      • dependencies quality (use mvn goals of dependency plugin of https://maven.apache.org/plugins/maven-dependency-plugin/ like dependency:analyze-duplicate checking none duplicate, display-ancestors checking zero, resolve-plugins checking maven plugins versions accessibility, resolve checking configured dependencies are accessible)
    • sample project implementing (as test) a test project with techstack pom parent (e.g check of mvn --file sample-project-pom.xml dependency:tree) of sample-project-pom.xml (e.g dependency:resolve, analyze-duplicate) and automatic deploy on remote repo
  • create pom files regarding foundations projects of implementation-line
    • implement foundation parent pom and sub-projects dependencies regarding specific techstack libraries (default config, dependency tree check to reduce duplicata of depend links)
    • create implementation of added dependencies in foundation projects to only need tech libraries (required as common and configured in sub-project as only usable) and documentation for developers about "how to add techstack version's dependency into a domain project" respecting the approach of pom hierarchy (lib version managed by techstack pom version, configuration of dependency declared into the dependencyManagement of a project compatible with techstack)
  • create first components structure and deliverable jar version (maven release repo) of foundation core project
  • add the license and notice per project as standard implementation, including the processing of the "release note/notice" by the CI/CD during "releasing via GitHub feature"
  • Update the implementation documentation for realign of design diagrams and/or enhancing of developers docs (e.g Implementation view at https://github.com/cybnity/foundation/blob/main/docs/uml/README.md ) about "guidelines & principles"

Metadata

Metadata

Assignees

Labels

line:mvfAction or item managed via the MVF production line dedicated to prototypes deliverypriority:highHigh priority for treatmentstatus:confirmedThe will to process the item/request of work is confirmed and acceptedtype:demandFurther information is requested

Type

No type

Projects

Status

Ready for UAT stage

Relationships

None yet

Development

No branches or pull requests

Issue actions