Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres
to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## 1.24.1

- `execute-generators`: return generation failed status in case of any reported errors during the generation,
independent of the generation result, which might still be successful (consistent with the generator behavior in MPS
generated Ant scripts).

## 1.24.0

- `modelcheck`: Include the model stereotype when matching (`--model` and `--exclude-model` parameters) and in the JUnit
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,15 @@ val logger = logging.getLogger("de.itemis.mps.gradle.generate")

private class MsgHandler : IMessageHandler {
val logger = logging.getLogger("de.itemis.mps.gradle.generate.messages")
val errors = mutableListOf<IMessage>()
override fun handle(msg: IMessage) {
when (msg.kind) {
MessageKind.INFORMATION -> logger.info(msg.text, msg.exception)
MessageKind.WARNING -> logger.warn(msg.text, msg.exception)
MessageKind.ERROR -> logger.error(msg.text, msg.exception)
MessageKind.ERROR -> {
errors.add(msg)
logger.error(msg.text, msg.exception)
}
null -> logger.error(msg.text, msg.exception)
}
}
Expand Down Expand Up @@ -168,7 +172,8 @@ private fun getFacetsForLanguagesMps20213(facetRegistry: FacetRegistry, allUsedL
facetRegistry.javaClass.getMethod("getFacetsForLanguages", java.lang.Iterable::class.java).invoke(facetRegistry, allUsedLanguages) as Iterable<IFacet>

private fun makeModels(proj: Project, models: List<SModel>): GenerationResult {
val session = MakeSession(proj, MsgHandler(), true)
val msgHandler = MsgHandler()
val session = MakeSession(proj, msgHandler, true)
val res = ModelsToResources(models).resources().toList()
val makeService = BuildMakeService()

Expand All @@ -181,13 +186,20 @@ private fun makeModels(proj: Project, models: List<SModel>): GenerationResult {
try {
val result = future.get()
logger.info("generation finished")
return if (result.isSucessful) {
logger.info("generation result: successful")
GenerationResult.Success
} else {
logger.error("generation result: failed")
logger.error(result)
GenerationResult.Error
return when {
result.isSucessful && msgHandler.errors.isEmpty() -> {
logger.info("generation result: successful")
GenerationResult.Success
}
result.isSucessful && msgHandler.errors.isNotEmpty() -> {
logger.error("generation result: successful, but errors were reported")
GenerationResult.Error
}
else -> {
logger.error("generation result: failed")
logger.error(result)
GenerationResult.Error
}
}
} catch (ex: Exception) {
logger.error("failed to generate", ex)
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
org.gradle.parallel=true

version.backend=1.24.0
version.backend=1.24.1
version.project-loader=3.0.2

# A comma-separated list of MPS releases or prereleases to test against.
Expand Down
Loading