diff options
7 files changed, 87 insertions, 14 deletions
diff --git a/gradle/xtext-common.gradle b/gradle/xtext-common.gradle index 4993ed7e..e95bdb46 100644 --- a/gradle/xtext-common.gradle +++ b/gradle/xtext-common.gradle | |||
@@ -1,9 +1,5 @@ | |||
1 | apply from: "${rootDir}/gradle/java-common.gradle" | 1 | apply from: "${rootDir}/gradle/java-common.gradle" |
2 | 2 | ||
3 | dependencies { | ||
4 | implementation platform("org.eclipse.xtext:xtext-dev-bom:${xtextVersion}") | ||
5 | } | ||
6 | |||
7 | configurations.all { | 3 | configurations.all { |
8 | exclude group: 'asm' | 4 | exclude group: 'asm' |
9 | } | 5 | } |
@@ -13,20 +9,14 @@ sourceSets { | |||
13 | java.srcDirs += ['src/main/xtext-gen'] | 9 | java.srcDirs += ['src/main/xtext-gen'] |
14 | resources.srcDirs += ['src/main/xtext-gen'] | 10 | resources.srcDirs += ['src/main/xtext-gen'] |
15 | } | 11 | } |
16 | test { | ||
17 | java.srcDirs += ['src/test/xtext-gen'] | ||
18 | resources.srcDirs += ['src/test/xtext-gen'] | ||
19 | } | ||
20 | } | 12 | } |
21 | 13 | ||
22 | tasks.named('clean') { | 14 | tasks.named('clean') { |
23 | delete 'src/main/xtext-gen' | 15 | delete 'src/main/xtext-gen' |
24 | delete 'src/test/xtext-gen' | ||
25 | } | 16 | } |
26 | 17 | ||
27 | sonarqube.properties { | 18 | sonarqube.properties { |
28 | properties['sonar.exclusions'] += [ | 19 | properties['sonar.exclusions'] += [ |
29 | 'src/main/xtext-gen/**', | 20 | 'src/main/xtext-gen/**', |
30 | 'src/test/xtext-gen/**', | ||
31 | ] | 21 | ] |
32 | } | 22 | } |
diff --git a/language-to-store/build.gradle b/language-to-store/build.gradle new file mode 100644 index 00000000..e0fd8212 --- /dev/null +++ b/language-to-store/build.gradle | |||
@@ -0,0 +1,10 @@ | |||
1 | apply plugin: 'java-library' | ||
2 | apply from: "${rootDir}/gradle/java-common.gradle" | ||
3 | apply from: "${rootDir}/gradle/junit.gradle" | ||
4 | apply from: "${rootDir}/gradle/xtend.gradle" | ||
5 | |||
6 | dependencies { | ||
7 | api project(':refinery-language-model') | ||
8 | api project(':refinery-store') | ||
9 | testImplementation testFixtures(project(':refinery-language')) | ||
10 | } | ||
diff --git a/language-to-store/src/main/java/org/eclipse/viatra/solver/language/mapping/PartialModelMapper.java b/language-to-store/src/main/java/org/eclipse/viatra/solver/language/mapping/PartialModelMapper.java new file mode 100644 index 00000000..7eae4361 --- /dev/null +++ b/language-to-store/src/main/java/org/eclipse/viatra/solver/language/mapping/PartialModelMapper.java | |||
@@ -0,0 +1,11 @@ | |||
1 | package org.eclipse.viatra.solver.language.mapping; | ||
2 | |||
3 | import org.eclipse.viatra.solver.data.model.Model; | ||
4 | import org.eclipse.viatra.solver.language.model.problem.Problem; | ||
5 | |||
6 | public class PartialModelMapper { | ||
7 | public Model transformProblem(Problem problem) { | ||
8 | // TODO @Marci Implement this | ||
9 | throw new UnsupportedOperationException(); | ||
10 | } | ||
11 | } | ||
diff --git a/language-to-store/src/test/java/org/eclipse/viatra/solver/language/mapping/tests/PartialModelMapperTest.xtend b/language-to-store/src/test/java/org/eclipse/viatra/solver/language/mapping/tests/PartialModelMapperTest.xtend new file mode 100644 index 00000000..a769ae20 --- /dev/null +++ b/language-to-store/src/test/java/org/eclipse/viatra/solver/language/mapping/tests/PartialModelMapperTest.xtend | |||
@@ -0,0 +1,44 @@ | |||
1 | package org.eclipse.viatra.solver.language.mapping.tests | ||
2 | |||
3 | import com.google.inject.Inject | ||
4 | import org.eclipse.viatra.solver.language.mapping.PartialModelMapper | ||
5 | import org.eclipse.viatra.solver.language.model.problem.Problem | ||
6 | import org.eclipse.viatra.solver.language.tests.ProblemInjectorProvider | ||
7 | import org.eclipse.xtext.testing.InjectWith | ||
8 | import org.eclipse.xtext.testing.extensions.InjectionExtension | ||
9 | import org.eclipse.xtext.testing.util.ParseHelper | ||
10 | import org.junit.jupiter.api.BeforeEach | ||
11 | import org.junit.jupiter.api.Disabled | ||
12 | import org.junit.jupiter.api.Test | ||
13 | import org.junit.jupiter.api.^extension.ExtendWith | ||
14 | |||
15 | import static org.hamcrest.MatcherAssert.assertThat | ||
16 | import static org.hamcrest.Matchers.* | ||
17 | |||
18 | @ExtendWith(InjectionExtension) | ||
19 | @InjectWith(ProblemInjectorProvider) | ||
20 | class PartialModelMapperTest { | ||
21 | @Inject | ||
22 | ParseHelper<Problem> parseHelper | ||
23 | |||
24 | PartialModelMapper mapper | ||
25 | |||
26 | @BeforeEach | ||
27 | def void beforeEach() { | ||
28 | mapper = new PartialModelMapper | ||
29 | } | ||
30 | |||
31 | @Test | ||
32 | @Disabled("Method not yet implemented") | ||
33 | def void exampleTest() { | ||
34 | val problem = parseHelper.parse(''' | ||
35 | class Person { | ||
36 | Person[0..*] friend | ||
37 | } | ||
38 | |||
39 | friend(a, b). | ||
40 | ''') | ||
41 | val model = mapper.transformProblem(problem) | ||
42 | assertThat(model, notNullValue()) | ||
43 | } | ||
44 | } | ||
diff --git a/language/build.gradle b/language/build.gradle index 494d9d08..e9db351f 100644 --- a/language/build.gradle +++ b/language/build.gradle | |||
@@ -1,22 +1,30 @@ | |||
1 | apply plugin: 'java-library' | 1 | apply plugin: 'java-library' |
2 | apply plugin: 'java-test-fixtures' | ||
2 | apply from: "${rootDir}/gradle/xtext-common.gradle" | 3 | apply from: "${rootDir}/gradle/xtext-common.gradle" |
3 | apply from: "${rootDir}/gradle/junit.gradle" | 4 | apply from: "${rootDir}/gradle/junit.gradle" |
4 | apply from: "${rootDir}/gradle/mwe2.gradle" | 5 | apply from: "${rootDir}/gradle/mwe2.gradle" |
5 | apply from: "${rootDir}/gradle/xtend.gradle" | 6 | apply from: "${rootDir}/gradle/xtend.gradle" |
6 | 7 | ||
7 | dependencies { | 8 | dependencies { |
9 | api platform("org.eclipse.xtext:xtext-dev-bom:${xtextVersion}") | ||
8 | api "org.eclipse.xtext:org.eclipse.xtext:${xtextVersion}" | 10 | api "org.eclipse.xtext:org.eclipse.xtext:${xtextVersion}" |
9 | api "org.eclipse.xtext:org.eclipse.xtext.xbase:${xtextVersion}" | 11 | api "org.eclipse.xtext:org.eclipse.xtext.xbase:${xtextVersion}" |
10 | api "org.eclipse.emf:org.eclipse.emf.ecore:${ecoreVersion}" | 12 | api "org.eclipse.emf:org.eclipse.emf.ecore:${ecoreVersion}" |
11 | api project(':refinery-language-model') | 13 | api project(':refinery-language-model') |
12 | testImplementation "org.eclipse.xtext:org.eclipse.xtext.testing:${xtextVersion}" | 14 | testFixturesApi "org.eclipse.xtext:org.eclipse.xtext.testing:${xtextVersion}" |
13 | testImplementation "org.eclipse.xtext:org.eclipse.xtext.xbase.testing:${xtextVersion}" | ||
14 | mwe2 "org.eclipse.xtext:org.eclipse.xtext.common.types:${xtextVersion}" | 15 | mwe2 "org.eclipse.xtext:org.eclipse.xtext.common.types:${xtextVersion}" |
15 | mwe2 "org.eclipse.xtext:org.eclipse.xtext.xtext.generator:${xtextVersion}" | 16 | mwe2 "org.eclipse.xtext:org.eclipse.xtext.xtext.generator:${xtextVersion}" |
16 | mwe2 "org.eclipse.xtext:xtext-antlr-generator:${xtextAntlrGeneratorVersion}" | 17 | mwe2 "org.eclipse.xtext:xtext-antlr-generator:${xtextAntlrGeneratorVersion}" |
17 | mwe2 project(':refinery-language-mwe2') | 18 | mwe2 project(':refinery-language-mwe2') |
18 | } | 19 | } |
19 | 20 | ||
21 | sourceSets { | ||
22 | testFixtures { | ||
23 | java.srcDirs += ['src/testFixtures/xtext-gen'] | ||
24 | resources.srcDirs += ['src/testFixtures/xtext-gen'] | ||
25 | } | ||
26 | } | ||
27 | |||
20 | tasks.named('jar') { | 28 | tasks.named('jar') { |
21 | from(sourceSets.main.allSource) { | 29 | from(sourceSets.main.allSource) { |
22 | include '**/*.xtext' | 30 | include '**/*.xtext' |
@@ -29,7 +37,7 @@ def generateXtextLanguage = tasks.register('generateXtextLanguage', JavaExec) { | |||
29 | inputs.file 'src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2' | 37 | inputs.file 'src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2' |
30 | inputs.file 'src/main/java/org/eclipse/viatra/solver/language/Problem.xtext' | 38 | inputs.file 'src/main/java/org/eclipse/viatra/solver/language/Problem.xtext' |
31 | outputs.dir 'src/main/xtext-gen' | 39 | outputs.dir 'src/main/xtext-gen' |
32 | outputs.dir 'src/test/xtext-gen' | 40 | outputs.dir 'src/testFixtures/xtext-gen' |
33 | outputs.dir '../language-ide/src/main/xtext-gen' | 41 | outputs.dir '../language-ide/src/main/xtext-gen' |
34 | outputs.dir '../language-web/src/main/xtext-gen' | 42 | outputs.dir '../language-web/src/main/xtext-gen' |
35 | outputs.dir '../language-web/build/generated/sources/xtext' | 43 | outputs.dir '../language-web/build/generated/sources/xtext' |
@@ -53,8 +61,14 @@ tasks.named('processResources') { | |||
53 | 61 | ||
54 | tasks.named('clean') { | 62 | tasks.named('clean') { |
55 | delete 'src/main/xtext-gen' | 63 | delete 'src/main/xtext-gen' |
56 | delete 'src/test/xtext-gen' | 64 | delete 'src/testFixtures/xtext-gen' |
57 | delete '../language-ide/src/main/xtext-gen' | 65 | delete '../language-ide/src/main/xtext-gen' |
58 | delete '../language-web/src/main/xtext-gen' | 66 | delete '../language-web/src/main/xtext-gen' |
59 | delete '../language-web/build/generated/sources/xtext' | 67 | delete '../language-web/build/generated/sources/xtext' |
60 | } | 68 | } |
69 | |||
70 | sonarqube.properties { | ||
71 | properties['sonar.exclusions'] += [ | ||
72 | 'src/testFixtures/xtext-gen/**', | ||
73 | ] | ||
74 | } | ||
diff --git a/language/src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2 b/language/src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2 index b8bc5a44..4dfbb242 100644 --- a/language/src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2 +++ b/language/src/main/java/org/eclipse/viatra/solver/language/GenerateProblem.mwe2 | |||
@@ -15,6 +15,7 @@ Workflow { | |||
15 | rootPath = rootPath | 15 | rootPath = rootPath |
16 | runtimeTest = { | 16 | runtimeTest = { |
17 | enabled = true | 17 | enabled = true |
18 | srcGen = 'src/testFixtures/xtext-gen' | ||
18 | } | 19 | } |
19 | genericIde = { | 20 | genericIde = { |
20 | name = "language-ide" | 21 | name = "language-ide" |
@@ -48,6 +49,8 @@ Workflow { | |||
48 | generateStub = false | 49 | generateStub = false |
49 | } | 50 | } |
50 | junitSupport = { | 51 | junitSupport = { |
52 | generateStub = false | ||
53 | skipXbaseTestingPackage = true | ||
51 | junitVersion = "5" | 54 | junitVersion = "5" |
52 | } | 55 | } |
53 | webSupport = ProblemWebIntegrationFragment { | 56 | webSupport = ProblemWebIntegrationFragment { |
diff --git a/settings.gradle b/settings.gradle index 00d4a82b..9edf237f 100644 --- a/settings.gradle +++ b/settings.gradle | |||
@@ -4,6 +4,7 @@ include 'language' | |||
4 | include 'language-ide' | 4 | include 'language-ide' |
5 | include 'language-model' | 5 | include 'language-model' |
6 | include 'language-mwe2' | 6 | include 'language-mwe2' |
7 | include 'language-to-store' | ||
7 | include 'language-web' | 8 | include 'language-web' |
8 | include 'store' | 9 | include 'store' |
9 | 10 | ||