This page contains accompanying files for our CommitMDE 2017 paper "Towards Efficient Evaluation of Rule-based Permissions for Fine-grained Access Control in Collaborative Modeling".
Due to the shared case study, this repository itself has been cloned from the repository of an earlier paper.
- Eclipse Modeling Framework (EMF)
- Xtend 2.12.0 | update-site
- Viatra Query 1.6.0 | update-site
- Import the
*.meta
and*.arbiter.vocabulary
plugin projects. - In both projects, open the
*.genmodel
file and generate the model code: in the tree-editor, right click on the root object and select theGenerate Model
. - Launch an Eclipse instance that has both of these metamodel plugins loaded, and continue with the following steps.
- Import the rest of relevant projects (
*.model
,*.query
,*.arbiter.stratifier
,*.arbiter
) into the workspace of the launched project.
- In the
*.model
plugin project, theModelGenerator.java
file has amain
method that can be run. - Modify the
generate()
method to select the output folder. - Modify the
MODEL_SIZES
variable to set the models to be generated.
- In the
*.arbiter.stratifier
plugin project, launch theGenStratified.xtend
file (has amain
method entry point) as Java Application. - Viatra Query code realizing the stratified form of the recursive queries will be generated to the standard output (as seen in the Eclipse Console View).
- Replace
arbiterMock.vql
in project*.arbiter
with the generated Viatra Query code.
- Open
small-sample-model-0010.xmi
from the*.model
project, or alternatively one of the smaller generated models, using the Sample Reflective Editor. - Open the Viatra Query Results View, and load the instance model from the active editor (use the green load button).
- Load the following query files using the Query Results View:
queries.vql
from project*.query
, thenmodelWrapper.vql
andpolicyInterpreter.vql
and finallyarbiterMock.vql
from project*.query
.