Released on: Februry 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
- com.nomagic.uml2.ext.jmi.helpers.StereotypesHelper utility class was refactored
- Methods related to InstanceSpecifications, Slots, ValueSpecifications were removed
- Methods related to working with tagged value were moved to com.nomagic.uml2.ext.jmi.helpers.TagsHelper
- Various deprecated methods were moved to com.nomagic.uml2.ext.jmi.helpers.DeprecatedStereotypesHelper and com.nomagic.uml2.ext.jmi.helpers.DeprecatedTagsHelper
- com.nomagic.uml2.ext.jmi.smartlistener.SmartListenerConfig was refactored. New predefined configs are added, irrelevant ones are removed. New methods for merging configurations are added.
- Some methods are removed from com.nomagic.magicdraw.hyperlinks.HyperlinkUtils
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
- Implementations of profiles are changed
- com.nomagic.magicdraw.sysml.util.SysMLProfile, com.nomagic.uml2.MagicDrawProfile and other profiles implementations extends com.nomagic.profiles.ProfileImplementation instead of com.nomagic.uml2.ext.jmi.helpers.StereotypeByProfileCache anymore
- Various methods and constants are deprecated in newly generated profiles implementations.
- com.nomagic.magicdraw.sysml.util.SysMLProfile, com.nomagic.uml2.MagicDrawProfile and other profiles implementations extends com.nomagic.profiles.ProfileImplementation instead of com.nomagic.uml2.ext.jmi.helpers.StereotypeByProfileCache anymore
Profiles implementation code generator is extended with new options. See more Custom profile implementation
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
- Removed classes
- 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.