Giter VIP home page Giter VIP logo

metastore's Introduction

metastore

This project contains a flexible metadata, data and configuration information store. Anyone can use it but it was designed for use within the Pentaho software stack.

The "meta-model" is simple and very generic. The top level entry is always a namespace. The namespace can be used by non-Pentaho companies to store their own information separate from anyone else.

The next level in the meta-model is an Element Type. A very generic name was chosen on purpose to reflect the fact that you can store just about anything. The element is at this point in time nothing more than a simple placeholder: an ID, a name and a description.

Finally, each element type can have a series of Elements.
Each element has an ID and a set of key/value pairs (called "id" and "value") as child attributes. All attributes can have children of their own. An element has security information: an owner and a set of owner-permissions describing who has which permission to use the element. (CRUD permissions)

The hierarchy:

  • Namespace
  • Element Type
  • Element
  • Attributes

How to build

metastore uses the maven framework.

Pre-requisites for building the project:

  • Maven, version 3+
  • Java JDK 1.8
  • This settings.xml in your /.m2 directory

Building it

This is a maven project, and to build it use the following command

$ mvn clean install

Optionally you can specify -Drelease to trigger obfuscation and/or uglification (as needed)

Optionally you can specify -Dmaven.test.skip=true to skip the tests (even though you shouldn't as you know)

The build result will be a Pentaho package located in target.

Running the tests

Unit tests

This will run all unit tests in the project (and sub-modules). To run integration tests as well, see Integration Tests below.

$ mvn test

If you want to remote debug a single java unit test (default port is 5005):

$ cd core
$ mvn test -Dtest=<<YourTest>> -Dmaven.surefire.debug

Integration tests

In addition to the unit tests, there are integration tests that test cross-module operation. This will run the integration tests.

$ mvn verify -DrunITs

To run a single integration test:

$ mvn verify -DrunITs -Dit.test=<<YourIT>>

To run a single integration test in debug mode (for remote debugging in an IDE) on the default port of 5005:

$ mvn verify -DrunITs -Dit.test=<<YourIT>> -Dmaven.failsafe.debug

To skip test

$ mvn clean install -DskipTests

To get log as text file

$ mvn clean install test >log.txt

IntelliJ

  • Don't use IntelliJ's built-in maven. Make it use the same one you use from the commandline.
    • Project Preferences -> Build, Execution, Deployment -> Build Tools -> Maven ==> Maven home directory

metastore's People

Contributors

andreyburikhin avatar angel-ramoscardona avatar bennychow avatar bkemper-pentaho avatar brendan-lynch avatar bytekast avatar dfieldfl avatar e-cuellar avatar jgminder avatar kolinus avatar lucboudreau avatar mdamour1976 avatar mkambol avatar pedrofvteixeira avatar pentaho-nbaker avatar peterrinehart avatar pminutillo avatar ssamora avatar viswesvarsekar avatar yuryby avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.