Released on: February 12, 2021


In this release, new APIs have been added, some existing were changed or removed. Additionally, the UML metamodel and the profiles have been updated.

Runtime environment is changed to Java 11.

Runtime environment

Runtime environment is changed to Java 11; Java 8 is not supported anymore.

UML metamodel changes

We changed a way how stereotype applications and tagged values are represented in the UML model. InstanceSpecifications, Slots, ValueSpecifications are not used for that anymore. New meta-classes are introduced for storing tagged values. This new approach reduces number of elements in the projects up to 50%.

  • Element.appliedStereotypeInstance, InstanceSpecification.stereotypedElement meta-properties are removed
  • TaggedValue, ElementTaggedValue, StringTaggedValue, RealTaggedValue, BooleanTaggedValue, IntegerTaggedValue meta-classes are added
  • Element.appliedStereotypes meta-property is added

More details in Developer Guide Working with stereotypes and tagged values

Open API changes related to modifications of UML metamodel
StereotypesHelper extends DeprecatedStereotypesHelper, DeprecatedTagsHelper, TagsHelper. It should be enough to recompile your java plugins. You will need to adjust StereotypesHelper usages in your scripts if you have such embedded into the models.
Profiles changes
  • The SysML profile is updated due to changes in SysML 1.6:
    • The profile has some minor changes, to comply with Standard changes of SysML 1.6
  • The UAF profile is updated due to changes in UAF 1.1:
    • The Profile has some minor changes, to comply with Standard changes of UAF 1.1
Profiles implementation changes
Removed Open APIs because of dropped features
  • com.nomagic.magicdraw.patterns.** classes are removed as Patterns functionality is removed
  • Some constants are removed from com.nomagic.magicdraw.actions.ActionsID,  com.nomagic.magicdraw.properties.PropertyID due to removed features
  • Teamwork Server is not supported anymore, related APIs are removed
    • Removed classes 
      • com.nomagic.magicdraw.teamwork.application.TeamworkUtils
      • com.nomagic.magicdraw.teamwork.application.BranchData
      • com.nomagic.magicdraw.teamwork.application.VersionData
      • com.nomagic.magicdraw.core.project.RemoteProjectDescriptor
    • Removed methods from other classes
      • com.nomagic.magicdraw.core.Project, com.nomagic.magicdraw.core.ProjectUtilities
      • com.nomagic.magicdraw.core.project.ProjectDescriptorsFactory
      • com.nomagic.magicdraw.core.project.ProjectEventListener
      • com.nomagic.magicdraw.core.modules.ModulesService
    • Classes moved to other packages
      • com.nomagic.teamwork.common.projects.CategoryInfo moved to com.nomagic.magicdraw.teamwork2.esi.CategoryInfo

      • AddModuleInfo, LeaveModuleInfo, ResolveLocalModuleInfo, UseModuleInfo classes are moved to com.nomagic.magicdraw.teamwork2.local2remote.** package

  • Class com.nomagic.magicdraw.visualization.projectsmap.ProjectMapHelper removed as Project Usage Map functionality is dropped
Changes in Simulation Open API
  • Removed from OpenAPI
    • com.nomagic.magicdraw.simulation.engine.ExecutionEngineDescriptor#getEngineIcon
    • com.nomagic.magicdraw.simulation.engine.ExecutionEngineDescriptor#canAnimate
    • com.nomagic.magicdraw.simulation.engine.ExecutionEngineDescriptor#isAutoDiagramOpened
    • com.nomagic.magicdraw.simulation.engine.ExecutionEngineDescriptor#canDebug
    • com.nomagic.magicdraw.simulation.engine.ExecutionEngineDescriptor#isDiagramPerSession
    • com.nomagic.magicdraw.simulation.engine.ExecutionEngineDescriptor#canUserTriggerEvents
  • Simplified API - use SimulationManager#execute(Element element, boolean start) : SimulationResult instead of

    • SimulationManager#execute(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element element) : SimulationSession

    • SimulationManager#execute(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element element, java.lang.Boolean isMainSession, java.lang.Boolean start, java.lang.Boolean isSilent) : SimulationSession

    • SimulationManager#execute(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element element, java.lang.Boolean isMainSession, java.lang.Boolean start) : SimulationSession

  • Removed Project parameter from various methods in com.nomagic.magicdraw.simulation.SimulationManager. BaseElement should be passed instead of Project into these methods:
    • SimulationManager#logConsoleDebug(Project project, String message)
    • SimulationManager#logConsoleError(Project project, String message)
    • SimulationManager#logConsoleInfo(Project project, String message)
    • SimulationManager#logConsoleWarn(Project project, String message)
    • SimulationManager#logConsoleDebug(BaseElement element, String message)
    • SimulationManager#logConsoleError(BaseElement element, String message)
    • SimulationManager#logConsoleInfo(BaseElement element, String message)
    • SimulationManager#logConsoleWarn(BaseElement element, String message)
Other Open API changes
  • com.nomagic.magicdraw.annotation.AnnotationManager was refactored from singleton to project service. 
    • AnnotationManager#getInstance(com.nomagic.magicdraw.core.Project) should be used to get an instance for a given project now.
  • com.nomagic.magicdraw.ui.dialogs.SelectElementDlg one of constructors was removed.
  • com.nomagic.magicdraw.core.options.HttpProxyOptionsGroup was removed. com.nomagic.magicdraw.core.options.NetworkOptionsGroup should be used instead.
  • Previously deprecated constants and methods were removed from 
    • com.nomagic.requirements.util.RequirementsConstants
    • com.nomagic.magicdraw.sysml.util.SysMLConstants
    • com.nomagic.uml2.ext.jmi.helpers.ClassifierHelper
    • com.nomagic.uml2.ext.jmi.helpers.ModelHelper
  • com.nomagic.magicdraw.commandline.CommandLine method CommandLine#run replaced with CommandLine#execute
  • com.nomagic.magicdraw.uml.symbols.layout.UMLGrap was changed. Only constructors and some necessary getters and setters are left open api. All other methods and fields are no longer OpenAPI. 

  • com.nomagic.magicdraw.uml.Finder.ByQualifiedNameFinder uses generics on passed "Class" arguments

  • com.nomagic.magicdraw.ui.RefreshManager exposed to Open API

File Format changes

There are no changes.

Upcoming changes in 2021x Refresh1

We are considering to remove OSGi support. This change will not affect how your plugins are launched and used, but you might need to adjust your code if you are starting MagicDraw application from your application.