Child pages
  • Migration to MPS 2.5

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0


In MPS 2.0 there was a special module called MPS.Classpath. This module was used to expose all available Java API of the platform and MPS to the models. In MPS 2.5 this module was substituted by the following four modules:

  • MPS.Core
  • MPS.Editor
  • MPS.Platform
  • MPS.Workbench

Usually if some class was available through the MPS.Classpath module in the past, it is available through one of these four modules in MPS 2.5. In case the migration process could not update all existing references and some project modules/models still reference MPS.Classpath after the automatic migration, such places should be modified manually to eliminate usages of MPS.Classpath and replace them with one of the new MPS.* modules.


By setting this property you can control the process of loading a solution into the currently running instance of MPS and you also reduce the set of classes visible to this solution. This property has four possible values:

  • NONE means the solution will be ignored by the class loading process so you will not be able to use classes of this solution from any other plugin modules
  • PLUGIN_CORE means the solution will be loaded into the current instance of MPS, only classes from the MPS.Core module and nodes from other solutions marked as PLUGIN_CORE can be used there
  • PLUGIN_EDITOR: the solution will be loaded, classes from MPS.Core, MPS.Editor, other PLUGIN_CORE and PLUGIN_EDITOR solutions can be used
  • PLUGIN_OTHER: the solution will be loaded, you have no restrictions on referencing MPS APIs or other solutions in the project.

By default, any newly created solution has the Solution Kind property set to NONE.

You need to manually specify the Solution Kind property to a value other then NONE for all solutions used in language models implementing IDE features for the language:

  • constraints
  • behavior
  • editor
  • actions
  • type system
  • generator macros/queries

You don't have to set the Solution Kind property for those solutions used in:

  • generator templates (language runtimes)

In other words, all languages from the project will be loaded to the current instance of MPS as "plugins", so if the solution code is used from the language code running in the current MPS instance, the solution should be marked with PLUGIN_... kind.