Development

Current Status

Our open-source part currently consists of the following modules:

  1. org.unidata.mdm.system - Basic types and interfaces:
    • ModuleService - metadata and module discovery service;

    • PipelineService - service for managing execution pipelines;

    • ExecutionService - pipeline execution and processing service;

    • RuntimePropertiesService - runtime properties that can be read and modified across the cluster.

  2. org.unidata.mdm.core - Security services and utilities:
    • SecurityService - service supporting login, logout, and token (in)validation;

    • EventService - service for sending and subscribing to cluster-wide events;

    • AuditService - audit service;

    • UPathService - simple “UPath to DataRecord notation” interpreter.

  3. org.unidata.mdm.search - Search services and interfaces:
    • SearchService - search services interface with access to mapping, indexing, and searching.

  4. org.unidata.mdm.meta - Services for creating, modifying, querying and managing metamodel:
    • MetaModelService - service, responsible for saving and querying of entities of the metamodel;

    • MetaDraftService - service, allowing to save the metamodel draft and apply it to the current metamodel after a number of modifications.

  5. org.unidata.mdm.data - Services related to data and relations between data records:
    • DataRecordService - data management interface service;

    • DataStorageService - storage metadata management service;

    • RecordValidationService - checking the DataRecordService for validity.

Configuring Environment

  • Create a database manually from psql or PG Admin. DB name: unidata; Owner: postgres.

  • Install Elasticsearch (versions above 5.6.x will not work).

  • Install Russian/English morphology plugin, if you are going to index and search using this feature:

    $ bin/elasticsearch-plugin install http://dl.bintray.com/content/imotov/elasticsearch-plugins/org/elasticsearch/elasticsearch-analysis-morphology/5.6.7/elasticsearch-analysis-morphology-5.6.7.zip
    
  • Install Apache Tomcat 9.0.x using your preferred method.

  • Add the unidata-backend.xml to the application configuration, if you going to add custom modules:

    <Resources className="org.apache.catalina.webresources.StandardRoot">
       <JarResources className="org.apache.catalina.webresources.DirResourceSet"
                     base="/home/alex/Develop/Soft/apache-tomcat-9.0.10/modules"
                     webAppMount="/WEB-INF/lib"/>
    </Resources>
    
  • UniData uses gradle to build itself.

    • Go to org.unidata.mdm.war and build WAR (and its dependencies) with ./gradle clean war.

    • Deploy artifact on tomcat 9.0.x using your preferred method.