Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "VIATRA/Query/DeveloperDocumentation/FeatureSetAndTesting"

< VIATRA‎ | Query
(Query Explorer)
 
(38 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
{{VIATRA}}
 +
== Features (UI Components)==
  
== Features ==
 
  
=== EMF-IncQuery UI components (use-cases) ===
+
[[File:xmind_diagram.png|1000px|center]]
  
==== Query Editor ====
 
==== Query Explorer ====
 
  
* Context menu items for resources
+
----
 +
=== Tested components with RCP Testing Tool ===
 +
[https://docs.google.com/spreadsheets/d/1l1TzhPmfYx05WFVAqd2DtoMZHH5Ewqo6LxcpAEl_3Ho/edit?usp=sharing Link to Google Spreedsheet]
  
 +
=== Query Editor ===
 +
The Xtext-based editor can be used to create VIATRA Query queries. The editor provides many features to ease the development, such as automatic code completion, validation, etc.
  
 +
=== Query Explorer ===
 +
This view can be used to apply queries on various EMF instance models. The Query Explorer can interact with EMF-based editors such as the generated tree editor, and even with GMF and Graphiti editors. Advanced querying use cases, like pattern match set filtering and detail observation is also available with the Query Explorer.
 +
[[EMFIncQuery/DeveloperDocumentation/FeatureSetAndTesting/QueryExplorer|More]]
  
Here, you can add your .eiq file to the pattern registry.
+
=== Preferences ===
 +
In the VIATRA Query preferences you can change VIATRA specific settings. You can turn on Wildcard mode or Dynamic EMF mode, or you can just change the settings of the Query Editor.
 +
[[EMFIncQuery/DeveloperDocumentation/FeatureSetAndTesting/Preferences|More]]
  
* Magic Green Button (depends on context)
+
=== Validation framework ===
** Load ResourceSet
+
VIATRA Query provides facilities to create validation rules based on the pattern language of the framework. These rules can be evaluated on various EMF instance models and upon violations of constraints, markers are automatically created in the Eclipse Problems View.
 +
[[EMFIncQuery/DeveloperDocumentation/FeatureSetAndTesting/Validationframework|More]]
  
You can load the whole ResourceSet which is being edited by the editor (this is the default when pressing the green button)
+
=== Viewers ===
* Load Resource
+
The goal of the VIATRA Viewers component is to help developing model-driven user interfaces by filling and updating model viewer results with the results of model queries. The implementation relies on (and is modeled after) the JFace Data binding and JFace Viewers libraries.
You can load the Resource of the selected element within the editor which can be done with the appropriate element from the view menu of the green button.
+
[[EMFIncQuery/DeveloperDocumentation/FeatureSetAndTesting/Viewers|More]]
+
After you opened your instance model with „Sample Reflective Ecore Model Editor”, you can load it with the „Magic Green Button”
+
* Load pattern(s)
+
+
Opening a .eiq file, the magic green button functionality changes. Here we can register our .eiq file.
+
* Load as model
+
Or we can load our .eiq file as a model.
+
+
* Pattern registry
+
+
** Showing plugin and runtime patterndefinitions
+
** Unregister pattern
+
*** has effect on viewer
+
*** plugins can not unloaded
+
** Show location
+
*** jump to pattern
+
** Checkbox filtering
+
*** has effect on viewer (checked patterns are in the viewer)
+
  
* Result viewer
+
=== Rete Visualizer ===
** behaviour depends on state of the:
+
The Rete algorithm is a pattern matching algorithm for implementing production rule systems. It is used to determine which of the system's rules should fire based on its data store.
*** patternregistry
+
[[EMFIncQuery/DeveloperDocumentation/FeatureSetAndTesting/Rete|More]]
*** instance model
+
*** details/filters
+
  
** Data binding: EMF-IncQuery provides a simple data binding facility that can be used to bind pattern matches to UI elements.
+
=== Testing framework ===
*** @QueryExplorer: the message parameter of the Query explorer annotation defines the label feature of the selected match.
+
With Testing Framework, you can define EMF instance models from your query results. You can also modify these models.
*** @ObservableValue: allows the developer to customize the appearance of a match inside the Details panel.
+
[[EMFIncQuery/DeveloperDocumentation/FeatureSetAndTesting/Testingframework|More]]
  
 +
=== VIATRA Debugger View ===
 +
The VIATRA Query debugger tooling aims to provide useful functionalities for the users, so that they can easily observe the contents of the VIATRA Query related artifacts when the program execution has stopped at a breakpoint.
 +
[[EMFIncQuery/DeveloperDocumentation/Features/Debug|More]]
  
 
+
=== Xcore integration ===
** Use-cases:
+
VIATRA Query team have developed a deep integration between live graph search and Xcore, the Xtext-based textual syntax for Ecore metamodeling. With this feature, you can write live graph queries with VIATRA Query and integrate them transparently into your DSL in the form of derived features that support automatic notifications.
*** default appearance
+
[[EMFIncQuery/DeveloperDocumentation/Features/Xcore|More]]
*** following changes (modifying the contents of a .eiq file - that was loaded earlier to the Query Explorer - automatically triggers re-loading of the patterns)
+
*** navigate to source (Show location)
+
**** to instance model
+
**** to pattern definition
+
 
+
*Details/Filters
+
 
+
 
+
 
+
The view of this content is based on the selection inside the tree viewer. If you select a pattern then you can specify filters on the pattern parameters. However, if you select a single match, you can observe the values of the pattern parameters which are data bound to the appropriate model elements thus automatically refreshed upon match changing.
+
** choosing a concrete match or matcher
+
+
 
+
 
+
** input parameter binding (matcher filter) – popup window depends on the type of the parameter (object or not)
+
 
+
*** has effect on viewer
+
 
+
* View menu
+
 
+
 
+
+
** You can change the way of the pattern registry’s package presentation (flat or hierarchical) in the view menu of the Query Explorer.
+
** You can reset the UI
+
 
+
==== [[Preferences]] ====
+
==== [[Validation framework]] ====
+
==== [[Viewers]] ====
+
==== [[Rete Visualizer]] ====
+
==== [[Testing framework]] ====
+
==== [[IncQuery Debugger View]] ====
+
 
+
 
== Test suites ==
 
== Test suites ==
  
 
{| class="wikitable"
 
{| class="wikitable"
! colspan="7"| EMF-IncQuery Test Suites
+
! colspan="7"| VIATRA Query Test Suites
 
|-
 
|-
 
! Test project name
 
! Test project name
Line 97: Line 57:
 
! CI Site
 
! CI Site
 
|-
 
|-
| patternlanguage.emf.tests || no metamodel || unit test || Testing elements of the patternlanguage and parsing || patternlanguage (50%), patternlanguage.emf (50%) || [http://git.eclipse.org/c/incquery/org.eclipse.incquery.git/ incquery-core-repo] || [https://hudson.eclipse.org/incquery/job/incquery-master/lastCompletedBuild/testReport/ Hudson]
+
| patternlanguage.emf.tests || no metamodel || unit test || Testing elements of the patternlanguage and parsing || patternlanguage (18%), patternlanguage.emf (43%) || [http://git.eclipse.org/c/viatra/org.eclipse.viatra.git/tree/query/tests/org.eclipse.viatra.query.patternlanguage.emf.tests viatra-repo] || [https://hudson.eclipse.org/incquery/job/incquery-master/lastCompletedBuild/testReport/ Hudson]
 +
|-
 +
| runtime.base.itc.test || no metamodel || unit test || Testing graph implementation and graph traversal algorithms || runtime.base.itc (67%) || [http://git.eclipse.org/c/viatra/org.eclipse.viatra.git/tree/query/tests/org.eclipse.viatra.query.runtime.base.itc.tests viatra-repo] || [https://hudson.eclipse.org/incquery/job/incquery-master/lastCompletedBuild/testReport/ Hudson]
 +
|-
 +
| runtime.tests || dynamically created || component integration test || Testing matcher and functional dependency (minimal cover) || runtime.rete (38%), runtime (21%), patternlanguage (9%) || [http://git.eclipse.org/c/viatra/org.eclipse.viatra.git/tree/query/tests/org.eclipse.viatra.query.runtime.tests viatra-repo] || [https://hudson.eclipse.org/viatra/job/viatra-master/lastCompletedBuild/testReport/org.eclipse.incquery.runtime.tests/ Hudson]
 
|-
 
|-
| runtime.base.itc.test || no metamodel || unit test || Testing graph implementation and graph traversal algorithms || runtime.base.itc (67%) || [http://git.eclipse.org/c/incquery/org.eclipse.incquery.git/ incquery-core-repo] || [https://hudson.eclipse.org/incquery/job/incquery-master/lastCompletedBuild/testReport/ Hudson]
+
| network.tests || network.ecore || out of date || out of date || out of date || [https://github.com/ujhelyiz/EMF-IncQuery-Examples/tree/master/network examples-repo] || -
 
|-
 
|-
| runtime.tests || dynamically created || component integration test || Testing matcher and functional dependency (minimal cover) || runtime (30%), patternlanguage (30%), snapshot (30%) || [http://git.eclipse.org/c/incquery/org.eclipse.incquery.git/ incquery-core-repo] || [https://hudson.eclipse.org/incquery/job/incquery-master/lastCompletedBuild/testReport/ Hudson]
+
| school.tests || school.ecore || out of date || out of date || out of date || [https://github.com/ujhelyiz/EMF-IncQuery-Examples/tree/master/school examples-repo] || [https://build.incquerylabs.com/jenkins/view/Disabled%20jobs/job/EMF-IncQuery-Tests-School/ Jenkins]
 
|-
 
|-
| network.tests || network.ecore || component test (performance) || Testing different size of models and investigating performance || runtime (30%) || [https://github.com/ujhelyiz/EMF-IncQuery-Examples/tree/master/network eiq-examples-repo] || -
+
| ecorequery.tests || ecore.ecore || out of date || out of date || out of date || [https://github.com/ujhelyiz/EMF-IncQuery-Examples/tree/master/ecorequery examples-repo] || [https://build.incquerylabs.com/jenkins/view/Disabled%20jobs/job/EMF-IncQuery-Tests-Ecore/ Jenkins]
 
|-
 
|-
| school.tests || school.ecore || component integration test || Executing different queries on school model and framework testing|| runtime (50%), patternlanguage (50%), snapshot(50%) || [https://github.com/ujhelyiz/EMF-IncQuery-Examples/tree/master/school eiq-examples-repo] || [https://build.inf.mit.bme.hu/jenkins/job/EMF-IncQuery-Tests-School/org.eclipse.incquery$school.tests/1173/testReport/school.tests/ Jenkins]
+
| bpmn.tests || only instance model || out of date || out of date || out of date || [https://github.com/ujhelyiz/EMF-IncQuery-Examples/tree/master/bpmn examples-repo] || -
 
|-
 
|-
| ecorequery.tests || ecore.ecore || component integration test || Executing different queries on Ecore.ecore model || runtime (40%), patternlanguage (40%) || [https://github.com/ujhelyiz/EMF-IncQuery-Examples/tree/master/ecorequery eiq-examples-repo] || [https://build.inf.mit.bme.hu/jenkins/job/EMF-IncQuery-Tests-Ecore/lastBuild/testReport/ Jenkins]
+
| derivedTest || derivedModel.ecore || out of date || out of date || out of date || [https://github.com/ujhelyiz/EMF-IncQuery-Examples/tree/master/query-driven-soft-interconnections examples-repo] || -
 
|-
 
|-
| bpmn.tests || only instance model || out of date || out of date || out of date || [https://github.com/ujhelyiz/EMF-IncQuery-Examples/tree/master/bpmn eiq-examples-repo] || -
+
| runtime.base.test || school.ecore (school1.school and school2.school) || out of date || out of date || out of date || [https://github.com/ujhelyiz/EMF-IncQuery-Examples examples-repo] || -
 
|-
 
|-
| derivedTest || derivedModel.ecore || out of date || out of date || out of date || [https://github.com/ujhelyiz/EMF-IncQuery-Examples/tree/master/query-driven-soft-interconnections eiq-examples-repo] || -
+
| runtime.runonce.tests || eiqlibrary.ecore || component integration test || Test cases that run different kind of derived features in run-once engine || runtime.matchers (52%), runtime.rete (47%), runtime.base (43%), runtime (34%) || [http://git.eclipse.org/c/viatra/org.eclipse.viatra.git/tree/examples/minilibrary/org.eclipse.viatra.query.runtime.runonce.tests viatra-repo] || -
 
|-
 
|-
| runtime.base.test || school.ecore (school1.school and school2.school) || unit test || Testing getters for different EMF types (also dynamic EMF models) || runtime.base (70%), runtime.base.itc (50%) || [https://github.com/ujhelyiz/EMF-IncQuery-Examples eiq-examples-repo] || -
+
| bpm.tests|| derivedModel.ecore, integrated.ecore, operation.ecore, process.ecore, system.ecore || component integration test || Executing queries on BPMN model and testing query engine features || runtime.matchers (51%), runtime.rete(46%) || [http://git.eclipse.org/c/viatra/org.eclipse.viatra.git/tree/examples/bpm/org.eclipse.viatra.examples.bpm.tests examples-repo] || [https://build.incquerylabs.com/jenkins/view/Disabled%20jobs/job/EMF-IncQuery-Tests-BPM/ Jenkins]
 
|-
 
|-
| runtime.runonce.tests || eiqlibrary.ecore || component integration test || Test cases that run different kind of derived features in run-once engine || runtime.matchers (50%), runtime.base (45%), runtime.rete (45%) || [http://git.eclipse.org/c/incquery/org.eclipse.incquery.examples.git/ examples-repo] || -
+
| examples.cps.tests || examples.cps || component integration test || Executing different queries on cps model and framework testing|| runtime.matchers (72%), runtime.localsearch (56%), runtime.rete (55%), patternlanguage.emf (42%), runtime (35%) || [https://github.com/IncQueryLabs/incquery-examples-cps/tree/master/viatratests examples-repo] || [https://build.incquerylabs.com/jenkins/job/VIATRA-IntegrationTests-CPS/ Jenkins]
 
|-
 
|-
| bpm.tests|| derivedModel.ecore, integrated.ecore, operation.ecore, process.ecore, system.ecore || component integration test || Executing queries on BPMN model and testing IncQueryEngine features || runtime.matchers (50%), runtime.rete(45%) || [http://git.eclipse.org/c/incquery/org.eclipse.incquery.examples.git/ examples-repo] || [https://build.inf.mit.bme.hu/jenkins/job/EMF-IncQuery-Tests-BPM/lastBuild/testReport/ Jenkins]
+
| gui.tests || cps and uml || component integration test || Using vql editor, Query Explorer, Rete Visualizer, Viewers, Validation and Testing Framework, checking preferences || addon.validation.runtime.ui (90%), addon.viewers.tooling.ui (81%), query.testing.ui (75%), addon.validation.runtime (64%), addon.viewers.runtime.zest (62%), query.tooling.ui (60%), integration.uml (59%), query.tooling.core (57%), query.runtime (50%) || [https://github.com/IncQueryLabs/incquery-examples-cps/tree/master/viatratests examples-repo] || [https://build.incquerylabs.com/jenkins/job/VIATRA-IntegrationTests-CPS/ Jenkins]
 
|}
 
|}

Latest revision as of 09:14, 28 March 2024

Features (UI Components)

Xmind diagram.png



Tested components with RCP Testing Tool

Link to Google Spreedsheet

Query Editor

The Xtext-based editor can be used to create VIATRA Query queries. The editor provides many features to ease the development, such as automatic code completion, validation, etc.

Query Explorer

This view can be used to apply queries on various EMF instance models. The Query Explorer can interact with EMF-based editors such as the generated tree editor, and even with GMF and Graphiti editors. Advanced querying use cases, like pattern match set filtering and detail observation is also available with the Query Explorer. More

Preferences

In the VIATRA Query preferences you can change VIATRA specific settings. You can turn on Wildcard mode or Dynamic EMF mode, or you can just change the settings of the Query Editor. More

Validation framework

VIATRA Query provides facilities to create validation rules based on the pattern language of the framework. These rules can be evaluated on various EMF instance models and upon violations of constraints, markers are automatically created in the Eclipse Problems View. More

Viewers

The goal of the VIATRA Viewers component is to help developing model-driven user interfaces by filling and updating model viewer results with the results of model queries. The implementation relies on (and is modeled after) the JFace Data binding and JFace Viewers libraries. More

Rete Visualizer

The Rete algorithm is a pattern matching algorithm for implementing production rule systems. It is used to determine which of the system's rules should fire based on its data store. More

Testing framework

With Testing Framework, you can define EMF instance models from your query results. You can also modify these models. More

VIATRA Debugger View

The VIATRA Query debugger tooling aims to provide useful functionalities for the users, so that they can easily observe the contents of the VIATRA Query related artifacts when the program execution has stopped at a breakpoint. More

Xcore integration

VIATRA Query team have developed a deep integration between live graph search and Xcore, the Xtext-based textual syntax for Ecore metamodeling. With this feature, you can write live graph queries with VIATRA Query and integrate them transparently into your DSL in the form of derived features that support automatic notifications. More

Test suites

VIATRA Query Test Suites
Test project name Metamodel Test type Tested feature Coverage (the most covered components) Repository CI Site
patternlanguage.emf.tests no metamodel unit test Testing elements of the patternlanguage and parsing patternlanguage (18%), patternlanguage.emf (43%) viatra-repo Hudson
runtime.base.itc.test no metamodel unit test Testing graph implementation and graph traversal algorithms runtime.base.itc (67%) viatra-repo Hudson
runtime.tests dynamically created component integration test Testing matcher and functional dependency (minimal cover) runtime.rete (38%), runtime (21%), patternlanguage (9%) viatra-repo Hudson
network.tests network.ecore out of date out of date out of date examples-repo -
school.tests school.ecore out of date out of date out of date examples-repo Jenkins
ecorequery.tests ecore.ecore out of date out of date out of date examples-repo Jenkins
bpmn.tests only instance model out of date out of date out of date examples-repo -
derivedTest derivedModel.ecore out of date out of date out of date examples-repo -
runtime.base.test school.ecore (school1.school and school2.school) out of date out of date out of date examples-repo -
runtime.runonce.tests eiqlibrary.ecore component integration test Test cases that run different kind of derived features in run-once engine runtime.matchers (52%), runtime.rete (47%), runtime.base (43%), runtime (34%) viatra-repo -
bpm.tests derivedModel.ecore, integrated.ecore, operation.ecore, process.ecore, system.ecore component integration test Executing queries on BPMN model and testing query engine features runtime.matchers (51%), runtime.rete(46%) examples-repo Jenkins
examples.cps.tests examples.cps component integration test Executing different queries on cps model and framework testing runtime.matchers (72%), runtime.localsearch (56%), runtime.rete (55%), patternlanguage.emf (42%), runtime (35%) examples-repo Jenkins
gui.tests cps and uml component integration test Using vql editor, Query Explorer, Rete Visualizer, Viewers, Validation and Testing Framework, checking preferences addon.validation.runtime.ui (90%), addon.viewers.tooling.ui (81%), query.testing.ui (75%), addon.validation.runtime (64%), addon.viewers.runtime.zest (62%), query.tooling.ui (60%), integration.uml (59%), query.tooling.core (57%), query.runtime (50%) examples-repo Jenkins

Back to the top