Skip to content

Gropius Export

Gropius is an open-source cross-component issue management system for component-based architectures. In order to enable managing cross-component dependencies, users can model component-based software architectures in a Gropius project, e.g. via the API. For more details on Gropius visit the GitHub Page.

For configuration options of the export please check out the configurations page.

Data Model

The data model of Gropius consists of components which can be specified with templates as well as relations between those components, also configurable via templates. A component must have a component and a repository-URL in order to be added to a project, which resembles an architecture.

CLARA components are mapped to Gropius-components like this:

CLARA Metamodel Gropius Metamodel
InternalComponent Component
    InternalComponent.Name     Component.Name
    InternalComponent.IpAddress     Component.Description
    InternalComponent.Version     Component.ComponentVersion
    InternalComponent.Namespace     MISSING
    InternalComponent.Endpoints     MISSING (Note, that Gropius is capable of modeling interfaces, yet due to a lack of time this is not performed in the current work.)
    MISSING     Component.RepositoryURL (Example URL)
    InternalComponent.Type     Component.ComponentTemplate
        Type.Database         Database Temp.
        Type.Microservice         Microservice Temp.
        Type.Messaging         Messaging Temp.
        null         Base Component Temp.
    InternalComponent.Libraries     Components
        Library.Version         Component.ComponentVersion
        Library.Name         Component.Name
        Library.Name         Component.Description
        MISSING         Component.ComponentTemplate (Library Temp.)
    InternalComponent.Library     Relation
        InternalComponent.Version         Relation.Start
        Library.Version         Relation.End
        MISSING         Relation.RelationTemplate (Includes Temp.)
ExternalComponent Component
    ExternalComponent.Name     Component.Name
    ExternalComponent.Domain     Component.Description
    ExternalComponent.Type     Component.ComponentTemplate (Misc Temp.)
    ExternalComponent.Version     Component.ComponentVersion
Communication Relation
    Communication.Source.Version     Relation.Start
    Communication.Target.Version     Relation.End
    MISSING     Relation.RelationTemplate (Calls Temp.)

The Gropius GraphQL API is utilized by CLARA in order to export the recovered architectures into a Gropius project.

Export Flow

The export works sketched like this based on the respective configuration:

  • for all components recovered by CLARA:
  • delete or update component
  • create or update component version
  • add component version to project
  • add relations for all components

For all CRUD operations there are predefined GraphQL queries which are transformed into Kotlin Models using this GraphQl gradle plugin and executed using this GraphQL Kotlin Spring client. The GraphQL queries are located in the clara-graphql directory.