Run configuration templates missing in standalone MPS

Hi guys,

I successfully created and built standalone MPS with my languages and solutions

The build scripts were generated by wizard as described in tutorial

Everything seems to work as expected but I am missing some features that are available in MPS 2019.1

 

One of the results of generating code is a Main class (using INamed concept)

I want to be able to run in but I cannot create run configuration because I am oviously missing some plugin.

 

I tried to add plugin dependencies into build script but I guess I did not find the right dependency for my problem.

 

The plugins that I tried

- mpsExecutionPlugin

- mpsJavaPlatform

- mpsDebuggerPlugin

Plus all their dependencies which I resolved by iterating over manual process (Build, Compile, Settings|Plugins)

 

Which plugin/dependency do I need to add? Manually trying is just too tedious and MPS sources did not help me either.

 

Thanks

Jiri

 

What I want

 

What I have

 

My build script:

 

build AIDENORMMPS generates build.xml

base directory: ../../

use plugins:
java
mps

macros:
var date = date yyyyMMdd
var build.number = 191.SNAPSHOT
folder mps_home = <no defaultPath>
folder plugins = $mps_home/plugins

dependencies:
mpsStandalone (artifacts location $mps_home)
mpsMakePlugin (artifacts location $plugins)
mpsVcs (artifacts location $plugins)

project structure:
idea branding
company
name data2knowledge
url http://www.d2k.com
copyrightStart <empty>
Names
product (one word) AIDENORMMPS
full name AIDENORMMPS
script aidenormmps
Version
1.0.<no bugfixNr>, eap false
codename (optional) <no codename>
Build info
number ${build.number}
date ${date}
Startup Logo
backgound image ./icons/splash.png
text color FFFFFF
progressColor FFFFFF
progress X coordinate <no progressX>
progress Y coordinate <no progressY>
progressHeight <no progressHeight>
About Popup
background image ./icons/about.png
info text color FFFFFF
copyright text color FFFFFF
copyright link color <no linkColor>
change default position & size
logoX <no logoX>
logoY <no logoY>
logoW <no logoW>
logoH <no logoH>
Icons
16x16 ./icons/MPS16.png
32x32 ./icons/MPS32.png
128x128 <no icon128>
icon <no icon>
32x32 opaque <no icon32opaque>
icon for tool window <no iconToolWindow>

welcome screen ./icons/logo.png
editor background-url default background

plugins <no plugins>
<no updateWebsite>

<no help>
documentation <no documentation>
support <no support>
feedback url <no feedbackUrl>
whats new <no whatsnew>
<no keymap>
third-party <no thirdparty>
Custom elements
<< ... >>

<no stats>

idea plugin AIDENORMMPS from generated by default 'plugin.xml' descriptor file
name AIDENORMMPS
short (folder) name AIDENORMMPS
description <no description>
version 1.0
vendor data2knowledge
url http://www.d2k.com
content:
AIDENORMMPS
dependencies:
jetbrains.mps.core
<< ... >>

mps group AIDENORMMPS
solution AIDenorm
load from ./solutions/AIDenorm/AIDenorm.msd

language AIInterface
load from ./languages/AIInterface/AIInterface.mpl

solution DataGrid
load from ./solutions/DataGrid/DataGrid.msd

language SQL2003
load from ./languages/SQL2003/SQL2003.mpl

solution Workspace
load from ./solutions/Workspace/Workspace.msd


default layout:
import mpsStandalone::languages
import mpsStandalone::license
folder bin
import files from mpsStandalone::bin
include log.xml
include log4j.dtd
file $mps_home/bin/idea.properties
replace regex "\.MPS(\w+)" /g -> \.${build.number}

folder lib
import files from mpsStandalone::lib
exclude MPS-src.zip
exclude branding.jar
exclude mps-tips.jar
jar branding.jar
files of idea branding AIDENORMMPS 1.0

folder plugins
import mpsVcs::svn4idea
import mpsVcs::git4idea
import mpsStandalone::plugins/mps-core
import mpsMakePlugin::mps-make
plugin AIDENORMMPS auto packaging
folder lib
file ./ai-denorm-1.0-SNAPSHOT-all.jar

properties file build.number
build.number = ${build.number}
date = ${date}
version = 1.0


<<additional aspects>>

 

 

7 comments

Hello

Try to include the bundled plugins related to run configurations, namely: execution-configuraitons, execution-languages, execution-api

 

0

Hi Alex,

thak you for suggestion. I added those plugins previously but I misinterpreted the signals that MPS gave me. Previously I only added those plugins only into default layout into plugins folder import(s) section.

I added those plugins again and also added them as dependency to my plugin. This change resolved transitional dependencies automatically and now I can see that the problem is probably with MPSTesting plugin.

I can see that my plugin is not working (for the same reason that execution plugins)

MPS Testing: Incompatible with current AIDENORMMPS version

 

When I try to enable the plugin I see this in the output:

[ 162107] WARN - llij.ide.plugins.PluginManager - MPS Testing not loaded: until build 192.1 < 999.SNAPSHOT

 

Any ideas?

 

Jiri

 

 

 

 

0

What is 999.snapshot? I doubt that it comes with MPS distribution.

If it is yours then all you need is to make it comply with the plugin version requirements.

0

I don't know where the number 999 comes from. I use downloaded distribution.

 

I tried deleting everything that seems to be generated by MPS.

I downloaded fresh generic version of MPS and extracted to new directory.

I also deleted user directory in home, did git revert and reresolved the dependencies manually.

 

Now I can see that my statement "This change resolved transitional dependencies automatically" was false

It also did not resolve the problem and 999 version is still present.

In the output I found this:

[ 0] INFO - #com.intellij.idea.Main - ------------------------------------------------------ IDE STARTED ------------------------------------------------------
[ 28] INFO - #com.intellij.idea.Main - IDE: AIDENORMMPS (build #191.SNAPSHOT, 31 May 2019 02:00)
[ 28] INFO - #com.intellij.idea.Main - OS: Linux (4.15.0-48-generic, amd64)
[ 29] INFO - #com.intellij.idea.Main - JRE: 1.8.0_181-b13 (Oracle Corporation)
[ 29] INFO - #com.intellij.idea.Main - JVM: 25.181-b13 (Java HotSpot(TM) 64-Bit Server VM)
[ 30] INFO - #com.intellij.idea.Main - JVM Args: -Dawt.useSystemAAFontSettings=lcd -Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine -XX:ErrorFile=/home/jiri/java_error_in_MPS_%p.log -XX:HeapDumpPath=/home/jiri/java_error_in_IDEA.hprof -Didea.paths.selector=AIDENORMMPS1.0 -Djb.vmOptionsFile=/home/jiri/Devel/ARNDT/AIDENORMMPS/build/artifacts/AIDENORMMPSDistribution/AIDENORMMPS-191.SNAPSHOT/bin/aidenormmps64.vmoptions -Didea.jre.check=true
[ 30] INFO - #com.intellij.idea.Main - ext: /usr/lib/jvm/java-8-oracle/jre/lib/ext: [dnsns.jar, sunpkcs11.jar, localedata.jar, meta-index, zipfs.jar, sunjce_provider.jar, jfxrt.jar, cldrdata.jar, nashorn.jar, sunec.jar, jaccess.jar]
[ 30] INFO - #com.intellij.idea.Main - charsets: JNU=UTF-8 file=UTF-8
[ 43] INFO - #com.intellij.idea.Main - JNA library (64-bit) loaded in 13 ms

(java:12274): Gtk-WARNING **: 16:43:32.048: Unable to locate theme engine in module_path: "adwaita",

(java:12274): Gtk-WARNING **: 16:43:32.051: Unable to locate theme engine in module_path: "adwaita",
[ 234] INFO - #com.intellij.util.ui.JBUI - System scale factor: 1.0 (IDE-managed HiDPI)
[ 234] INFO - #com.intellij.util.ui.JBUI - User scale factor: 1.0
[ 352] INFO - .intellij.idea.IdeaApplication - CPU cores: 4; ForkJoinPool.commonPool: java.util.concurrent.ForkJoinPool@15bf6810[Running, parallelism = 3, size = 0, active = 0, running = 0, steals = 0, tasks = 0, submissions = 0]; factory: com.intellij.concurrency.IdeaForkJoinWorkerThreadFactory@2ca146cc
[ 382] INFO - .intellij.idea.IdeaApplication - WM detected: KWin
[ 763] INFO - llij.ide.plugins.PluginManager - load plugin descriptors took 166 ms
[ 782] WARN - llij.ide.plugins.PluginManager - MPS Testing not loaded: until build 192.1 < 999.SNAPSHOT
[ 787] INFO - llij.ide.plugins.PluginManager - Plugin 'MPS Testing' can't be loaded because: Plugin since-build(191.1) or until-build(192.1) don't match this product's build number(999.SNAPSHOT).
[ 827] INFO - llij.ide.plugins.PluginManager - 12 plugins initialized in 231 ms
[ 828] INFO - llij.ide.plugins.PluginManager - Loaded bundled plugins: Debugger API for MPS (999.SNAPSHOT), Execution Api and Utility Languages (999.SNAPSHOT), Git Integration (999.SNAPSHOT), IDEA CORE (999.SNAPSHOT), Java Debugger for MPS (999.SNAPSHOT), MPS Core (999.SNAPSHOT), Make (999.SNAPSHOT), Subversion (999.SNAPSHOT)
[ 828] INFO - llij.ide.plugins.PluginManager - Disabled plugins: AIDENORMMPS (1.0), Execution Configurations (999.SNAPSHOT), Execution Languages (999.SNAPSHOT), MPS Testing (2019.1.2)

 

 

0

Based on Intellij idea sources (PluginManagerCore.java)  found a workaround

by using this property in vmoptions:

-Didea.plugins.compatible.build=192.1

 

This solved the version mismatch but revealed that these plugins are not enough for Run Configuration templates to show up...

0

I looked into this and the solution is to add

import mpsBuild::mps-build

to the plugins directory of your RCP.

The problem is that the default run configurations are located in the jetbrains.mps.execution.configurations.implementation.plugin solution which has a dependency on the jetbrains.mps.build.mps language but this dependency is not reflected in the plugin dependencies (this is a bug).

Also, a better way to solve the versioning issue is by creating a build.txt file in the RCP home directory with just the version number.

0

Thank you Sergej! This worked.

I also added copying of build.txt file from project to RCP which helped too.

Now I have 3 similar files with version numbers :D

build.txt
build.number
build.properties

The issue with version numbers was very hard to resolve, one would expect the built.txt file to be created by default.

0

Please sign in to leave a comment.