ant generate fails with language not deployed error message

Hi everyone.

I have a simple project with a very simple language. This language uses plaintextgen to generate files. It also generates for the base language (Java) and XML. In this project I also have a sandbox with models that result in the generation of Java, XML and also text (with plaintextgen). When I build the solution from MPS everything works fine, and all the files are nicely generated. 

However, when I use a build solution and try to execute it via the command line, the ‘ant build’ works fine but the ‘ant generate’ fails with the following message:

[generate] 2025-02-20 20:06:00,499 WARNING - jetbrains.mps.smodel.runtime.illegal.IllegalConceptDescripto - IllegalConceptDescriptor created for concept 990507d3-3527-4c54-bfe9-0ca3c9c6247a/1145195647825954788.
[generate] 2025-02-20 20:06:00,662 WARNING - jetbrains.mps.smodel.SLanguageHierarchy - The language 'com.dslfoundry.plaintextgen' is not deployed when analyzing [j.m.lang.smodel,c.dslfoundry.plaintextgen,j.mps.baseLanguageInternal,j.mps.baseLanguage]
[generate] 2025-02-20 20:06:00,792 WARNING - jetbrains.mps.smodel.SLanguageHierarchy - The language 'com.dslfoundry.plaintextgen' is not deployed when analyzing [c.dslfoundry.plaintextgen,j.mps.baseLanguageInternal,j.mps.baseLanguage]
[generate] 2025-02-20 20:06:01,478 SEVERE  - jetbrains.mps.generator.impl.plan.GenerationPlan - One of generators engaged for model HelloWorld.sandbox needs ('GENERATES INTO') missing language com.dslfoundry.plaintextgen. Please check generator HelloWorld/main

It seems that ant cannot find the com.dslfoundry.plaintextgen language. 

For your information, I used the de.itemis.mps.extensions in the build (and the build solution has a dependency to de.itemis.mps.extensions.build. I am using MPS 2024.3. 

I was also able to build the MPS extensions (which include plaintextgen) from source code with MPS 2024.3. 

Could this issue be related to https://github.com/JetBrains/MPS-extensions/issues/235 ?

I would appreciate any help with this issue.

Thanks

- Alexandre 

0
2 comments

Hi Alexandre, it seems that your build cannot find and load the language com.dslfoundry.plaintextgen. There can be various reasons for that, starting from the path to the language being set incorrectly, through version mismatches (e.g. using older versions of libraries with MPS 2024.3), ending with some other misconfiguration in the build scripts. It is difficult to tell just from the excerpt you posted, please post the complete build log.

0

Hi Sergej.

Thanks for the reply.

Here is the build log:

alexandrebraganca@Alexandres-MacBook-Pro-2 HelloWorldProj % ant generate
Buildfile: /Users/alexandrebraganca/repositories/book-dsl-engineering-code/mps/chapter2/HelloWorldProj/build.xml
Trying to override old definition of datatype module

declare-mps-tasks:

fetchDependencies:

generate:
    [echo] generating
[generate] 2025-02-28 17:17:03,555 WARNING - jetbrains.mps.classloading.ModulesWatcher - 1 modules are marked as invalid roots for class loading out of 304 modules totally in the CL graph
[generate] 2025-02-28 17:17:03,556 WARNING - jetbrains.mps.classloading.ModulesWatcher - de.slisson.mps.reflection.runtime: not tracked for classloading (no respective module facet or absent in a repository)
[generate] 2025-02-28 17:17:08.075 java[16946:75881] [JRSAppKitAWT markAppIsDaemon] failed. SetApplicationIsDaemon returned -50
[generate] 2025-02-28 17:17:15,685 WARNING - jetbrains.mps.smodel.runtime.illegal.IllegalConceptDescripto - IllegalConceptDescriptor created for concept 990507d3-3527-4c54-bfe9-0ca3c9c6247a/1145195647825954788.
[generate] 2025-02-28 17:17:15,685 WARNING - jetbrains.mps.smodel.runtime.illegal.IllegalConceptDescripto - IllegalConceptDescriptor created for concept 990507d3-3527-4c54-bfe9-0ca3c9c6247a/1145195647825954793.
[generate] 2025-02-28 17:17:15,773 WARNING - jetbrains.mps.smodel.SLanguageHierarchy - The language 'com.dslfoundry.plaintextgen' is not deployed when analyzing [j.m.lang.smodel,c.dslfoundry.plaintextgen,j.mps.baseLanguageInternal,j.mps.baseLanguage]
[generate] 2025-02-28 17:17:15,860 WARNING - jetbrains.mps.smodel.SLanguageHierarchy - The language 'com.dslfoundry.plaintextgen' is not deployed when analyzing [c.dslfoundry.plaintextgen,j.mps.baseLanguageInternal,j.mps.baseLanguage]
[generate] 2025-02-28 17:17:16,102 SEVERE  - jetbrains.mps.generator.impl.plan.GenerationPlan - One of generators engaged for model HelloWorld.sandbox needs ('GENERATES INTO') missing language com.dslfoundry.plaintextgen. Please check generator HelloWorld/main
[generate] (jetbrains.mps.generator.impl.GenerationFailureException): unexpected exception when applying root rule
[generate] jetbrains.mps.generator.impl.GenerationFailureException: unexpected exception when applying root rule
[generate]     at jetbrains.mps.generator.template.DefaultQueryExecutionContext.applyRule(DefaultQueryExecutionContext.java:248)
[generate]     at jetbrains.mps.generator.impl.TemplateGenerator.createRootNodeByRule(TemplateGenerator.java:438)
[generate]     at jetbrains.mps.generator.impl.ParallelTemplateGenerator.access$101(ParallelTemplateGenerator.java:51)
[generate]     at jetbrains.mps.generator.impl.ParallelTemplateGenerator$2.run(ParallelTemplateGenerator.java:94)
[generate]     at jetbrains.mps.generator.impl.GenerationTaskAdapter.run(GenerationTaskAdapter.java:44)
[generate]     at jetbrains.mps.smodel.ModelAccessBase$SharedReadImpl$1.execute(ModelAccessBase.java:181)
[generate]     at jetbrains.mps.smodel.CancellableReadAction.run(CancellableReadAction.java:86)
[generate]     at jetbrains.mps.smodel.ReadAccessToken.runRead(ReadAccessToken.java:22)
[generate]     at jetbrains.mps.smodel.ModelAccessBase$SharedReadImpl.execute(ModelAccessBase.java:178)
[generate]     at jetbrains.mps.generator.impl.GenerationTaskPool$ModelReadAdapter.run(GenerationTaskPool.java:150)
[generate]     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[generate]     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[generate]     at java.base/java.lang.Thread.run(Thread.java:1583)
[generate] Caused by: java.lang.NullPointerException: Cannot invoke "jetbrains.mps.smodel.runtime.ConceptDescriptor.getStaticScope()" because the return value of "jetbrains.mps.smodel.adapter.structure.concept.SConceptAdapterById.getConceptDescriptor()" is null
[generate]     at jetbrains.mps.generator.impl.GeneratorMappings.lambda$couldNotBeReferenceTarget$1(GeneratorMappings.java:121)
[generate]     at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
[generate]     at jetbrains.mps.generator.impl.GeneratorMappings.couldNotBeReferenceTarget(GeneratorMappings.java:121)
[generate]     at jetbrains.mps.generator.impl.GeneratorMappings.addOutputNodeForContext(GeneratorMappings.java:127)
[generate]     at jetbrains.mps.generator.impl.AbstractTemplateGenerator.nodeCopied(AbstractTemplateGenerator.java:132)
[generate]     at jetbrains.mps.generator.impl.TemplateExecutionEnvironmentImpl.nodeCopied(TemplateExecutionEnvironmentImpl.java:374)
[generate]     at jetbrains.mps.generator.impl.TemplateProcessor.applyTemplate(TemplateProcessor.java:125)
[generate]     at jetbrains.mps.generator.impl.TemplateProcessor.apply(TemplateProcessor.java:103)
[generate]     at jetbrains.mps.generator.impl.interpreted.TemplateRootMappingRuleInterpreted.apply(TemplateRootMappingRuleInterpreted.java:73)
[generate]     at jetbrains.mps.generator.template.DefaultQueryExecutionContext.applyRule(DefaultQueryExecutionContext.java:244)
[generate]     ... 12 more
[generate] 
[generate] Generation failed for model 'HelloWorld.sandbox': unexpected exception when applying root rule. java.lang.NullPointerException: Cannot invoke "jetbrains.mps.smodel.runtime.ConceptDescriptor.getStaticScope()" because the return value of "jetbrains.mps.smodel.adapter.structure.concept.SConceptAdapterById.getConceptDescriptor()" is null
[generate] -- -- was input node: [root] HelloWorldApp "App3"[9117264346792514080] in HelloWorld.sandbox@0
[generate] generation completed with errors in 34 ms
[generate] Error executing target jetbrains.mps.make.facets.Generate.generate
[generate] ****************************************************************************************************
[generate] 6 errors during generation:
[generate] (jetbrains.mps.generator.impl.GenerationFailureException): unexpected exception when applying root rule
[generate] jetbrains.mps.generator.impl.GenerationFailureException: unexpected exception when applying root rule
[generate]     at jetbrains.mps.generator.template.DefaultQueryExecutionContext.applyRule(DefaultQueryExecutionContext.java:248)
[generate]     at jetbrains.mps.generator.impl.TemplateGenerator.createRootNodeByRule(TemplateGenerator.java:438)
[generate]     at jetbrains.mps.generator.impl.ParallelTemplateGenerator.access$101(ParallelTemplateGenerator.java:51)
[generate]     at jetbrains.mps.generator.impl.ParallelTemplateGenerator$2.run(ParallelTemplateGenerator.java:94)
[generate]     at jetbrains.mps.generator.impl.GenerationTaskAdapter.run(GenerationTaskAdapter.java:44)
[generate]     at jetbrains.mps.smodel.ModelAccessBase$SharedReadImpl$1.execute(ModelAccessBase.java:181)
[generate]     at jetbrains.mps.smodel.CancellableReadAction.run(CancellableReadAction.java:86)
[generate]     at jetbrains.mps.smodel.ReadAccessToken.runRead(ReadAccessToken.java:22)
[generate]     at jetbrains.mps.smodel.ModelAccessBase$SharedReadImpl.execute(ModelAccessBase.java:178)
[generate]     at jetbrains.mps.generator.impl.GenerationTaskPool$ModelReadAdapter.run(GenerationTaskPool.java:150)
[generate]     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
[generate]     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
[generate]     at java.base/java.lang.Thread.run(Thread.java:1583)
[generate] Caused by: java.lang.NullPointerException: Cannot invoke "jetbrains.mps.smodel.runtime.ConceptDescriptor.getStaticScope()" because the return value of "jetbrains.mps.smodel.adapter.structure.concept.SConceptAdapterById.getConceptDescriptor()" is null
[generate]     at jetbrains.mps.generator.impl.GeneratorMappings.lambda$couldNotBeReferenceTarget$1(GeneratorMappings.java:121)
[generate]     at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
[generate]     at jetbrains.mps.generator.impl.GeneratorMappings.couldNotBeReferenceTarget(GeneratorMappings.java:121)
[generate]     at jetbrains.mps.generator.impl.GeneratorMappings.addOutputNodeForContext(GeneratorMappings.java:127)
[generate]     at jetbrains.mps.generator.impl.AbstractTemplateGenerator.nodeCopied(AbstractTemplateGenerator.java:132)
[generate]     at jetbrains.mps.generator.impl.TemplateExecutionEnvironmentImpl.nodeCopied(TemplateExecutionEnvironmentImpl.java:374)
[generate]     at jetbrains.mps.generator.impl.TemplateProcessor.applyTemplate(TemplateProcessor.java:125)
[generate]     at jetbrains.mps.generator.impl.TemplateProcessor.apply(TemplateProcessor.java:103)
[generate]     at jetbrains.mps.generator.impl.interpreted.TemplateRootMappingRuleInterpreted.apply(TemplateRootMappingRuleInterpreted.java:73)
[generate]     at jetbrains.mps.generator.template.DefaultQueryExecutionContext.applyRule(DefaultQueryExecutionContext.java:244)
[generate]     ... 12 more
[generate] 
[generate] Generation failed for model 'HelloWorld.sandbox': unexpected exception when applying root rule. java.lang.NullPointerException: Cannot invoke "jetbrains.mps.smodel.runtime.ConceptDescriptor.getStaticScope()" because the return value of "jetbrains.mps.smodel.adapter.structure.concept.SConceptAdapterById.getConceptDescriptor()" is null
[generate] -- -- was input node: [root] HelloWorldApp "App3"[9117264346792514080] in HelloWorld.sandbox@0
[generate] generation completed with errors in 34 ms
[generate] Error executing target jetbrains.mps.make.facets.Generate.generate
[generate] Make was not successful
[generate] ****************************************************************************************************

BUILD FAILED
/Users/alexandrebraganca/repositories/book-dsl-engineering-code/mps/chapter2/HelloWorldProj/build.xml:320: Process exited with code 243.

Total time: 16 seconds
 

>>>

Here is also my BuildProject:

build HelloWorldProj generates build.xml

 

base directory: ../..//Users/alexandrebraganca/repositories/book-dsl-engineering-code/mps/chapter2/HelloWorldProj

 

use plugins:

java

mps

 

macros:

folder mps_home = ./../../../../../../../Applications/MPS 2024.3.app/Contents

 

dependencies:

mps (artifacts location $mps_home)

de.itemis.mps.extensions (artifacts location ./build/dependencies/de.itemis.mps.extensions)

 

project structure:

idea plugin HelloWorldProj from generated by default 'plugin.xml' descriptor file

name HelloWorldProj

short (folder) name HelloWorldProj4

description <no description>

version 1.0

<< no vendor >>

content:

HelloWorldProj

dependencies:

jetbrains.mps.core

com.dslfoundry.plaintextgen

de.itemis.mps.selection

de.itemis.mps.extensions.build

<depends>com.intellij.modules.platform</depends>

 

mps group HelloWorldProj

language HelloWorld (19248cea-d2ea-4aac-8a08-f685839c5aff)

load from ./languages/HelloWorld/HelloWorld.mpl

content:

resources files from ./languages/HelloWorld

includes icons/**, resources/**

model root

files from ./languages/HelloWorld/models

includes **/*.mps, **/*.mpsr, **/.model

dependencies:

(extracted) jetbrains.mps.execution.util

(extracted) com.dslfoundry.plaintextgen

(extracted) target jetbrains.mps.baseLanguage

(extracted) MPS.OpenAPI

(extracted) jetbrains.mps.lang.migration

runtime:

<no runtime>

 

solution HelloWorld.sandbox (0d569732-1dc2-4e3a-bf83-833a8f59e670)

load from ./languages/HelloWorld.sandbox/HelloWorld.sandbox.msd

content:

(with sources)

(code compile in MPS)

model root

files from ./languages/HelloWorld.sandbox/models

includes **/*.mps, **/*.mpsr, **/.model

dependencies:

(extracted) JDK

(extracted) HelloWorld

 

 

default layout:

zip HelloWorldProj.zip

plugin HelloWorldProj auto packaging

# Readonly part ... # end of readonly part

<empty>

 

<<additional aspects>>

>>>>

Note also that in ./build/dependencies/de.itemis.mps.extensions (artifacts location for de.itemis.mps.extensions) I have all the mps extensions, as downloaded from github. I have also the same result if I use set artifacts location for de.itemis.mps.extensions to the plugins folder of MPS where I have all the required plugins (i.e., com.dslfoundry.plaintextgen, de.itemis.mps.selection, de.itemis.mps.extensions.build).
 

Regards.


 

0

Please sign in to leave a comment.