GithubHelp home page GithubHelp logo

open-mbee / exec-cameo-mdk Goto Github PK

View Code? Open in Web Editor NEW
50.0 36.0 29.0 215.27 MB

Cameo plugin for MMS sync and DocGen

Home Page: https://www.openmbee.org/

License: Apache License 2.0

Java 99.52% CSS 0.05% PowerShell 0.30% Shell 0.10% Python 0.03%
mbse sysml magicdraw ocl docbook mms mdk mbee java openmbee

exec-cameo-mdk's Introduction

Cameo Model Development Kit (MDK)

GitHub release (latest SemVer) Maven Central CircleCI

Cameo MDK is a plugin for Cameo Systems Modeler and other No Magic environment bundles that’s primary purposes are to sync models with the MMS and implement the DocGen language, which allows modelers to dynamically generate documents in a model-based approach using the view and viewpoint concept.

Quickstart

User Guide

The latest user documentation can be accessed online: https://mdk.readthedocs.io/en/latest

Prerequisites

Installation

  1. Download the Cameo MDK plugin, e.g. mdk-*-plugin.zip.

  2. Run CSM. From the main menu, select "Help" > "Resource/Plugin Manager". Resource/Plugin Manager

  3. Click "Import", navigate to the downloaded Cameo MDK plugin, and click "Open".

  4. CSM should confirm installation with the following prompt.

    MDK Installation Confirmation

  5. Restart CSM. To check installation, select from the main menu "Help" > "Resource/Plugin Manager" > "Plugins (no cost)" and ensure a row exists for "Model Development Kit" and its status is "Installed" with the correct version. MDK Installed

Cameo MDK can also be installed headlessly by simply unzipping the plugin archive into the directory that CSM is installed in.

Contributing

To learn how you can get involved in a variety of ways, please see Contibuting to OpenMBEE.

Local Development

Cameo MDK is a Java project that uses the Gradle build tool. It can be imported as a Gradle project in IDEs like IntelliJ and Eclipse.

Custom Build Profiles

Starting with version 4.5.1+ you will be able to define custom build profiles (in ./buildProfiles) which will house the classpath and other variables previously managed by setting -buildAccess=internal. These profiles will allow customization based on your build process and for your particular version of Cameo.

NOTE: By default build profiles are excluded from being committed to git by a buildProfiles/.gitignore

Create a new profile

Create a new java properties file in buildProfiles/<yourProfileName>.properties. In order to use a custom profile to run any of the below commands. Use the command with -PbuildProfile=<yourProfileName>

For more examples of what properties are available in profiles see the example file in buildProfiles/example.properties

For users of non-standard cameo bundles

To retrieve the classpath:

  1. Copy the CLASSPATH entry from your ${md.install.dir}/bin/(magicraw/csm/cea).properties file.
  2. Paste the entire line into a new file and find replace the \: with , and set it equal to classpath
  3. Save this file to buildProfiles/<yourProfileName>.properties

This is only necessary for custom build repositories or non-SP3 builds, most users will not need to modify the classpath and modification of the classpath is not necessary to use profiles!

Build

In order to use a custom profile to run any of the below commands. Use the command with -PbuildProfile=<yourProfileName> otherwise it will default to using opensource.

  • ./gradlew dependencies will download all necessary dependencies.
  • ./gradlew assemble will compile Cameo MDK from source.
  • ./gradlew distZip will package the installable plugin.
  • ./gradlew installDist will install the plugin in a staging environment.
  • ./gradlew runJava will interactively run CSM with Cameo MDK from the staging environment.

Task dependencies are declared such that all necessary prerequisites are executed/cached, e.g. runJava will first dependencies, assemble, distZip, etc.

exec-cameo-mdk's People

Contributors

ablack-jpl avatar ba-mbse avatar beninada avatar borozcod avatar bradnasa avatar cgaley-lmco avatar davidwillard avatar dlamoris avatar enquier avatar ivan-gomes avatar jjsalcedo avatar miyakowilson avatar openmbeeorg avatar paulgaspardo avatar sebastianvranovsky avatar w3e avatar wobrschalek avatar zepedar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

exec-cameo-mdk's Issues

ownedRuleId and view gen issues

Seems that during view generation, the view pushes ownedRuleId, with the view constraint, to mms.

During validation, this shows up as a diff - because the view constraint is not persisted in the model.

If the empty ownedRuleId is pushed to mms, the subsequent view generation for that view results in loss of any ve added pe, updating the view to have only md generated data. I think this may be because during view generation, it's trying to recreate the constraint but without the mms only view constraint (or maybe the empty ownedRuleId overrode it to be empty??), any existing pe connections from mms are lost, but not entirely sure

Connect MagicDraw to EMS Problem

Hi all,

i am trying to hookup my MagicDraw Model with the rn-ems.jpl.nasa.gov.

I applied the MMS Stereotype and set the
URL to https://rn-ems.jpl.nasa.gov
Site to sysmltest (I created this site in my ems beforehand).

The error i get is the:
[2014.12.16::10:30:43]
url=https://rn-ems.jpl.nasa.gov/alfresco/service/checklogin
[2014.12.16::10:30:43]
javax.net.ssl.SSLProtocolException: handshake alert: unrecognized_name at sun.security.ssl.ClientHandshaker.handshakeAlert(Unknown Source) at sun.security.ssl.SSLSocketImpl.recvAlert(Unknown Source) at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) at sun.security.ssl.SSLSocketImpl.writeRecord(Unknown Source) at sun.security.ssl.AppOutputStream.write(Unknown Source) at java.io.BufferedOutputStream.flushBuffer(Unknown Source) at java.io.BufferedOutputStream.flush(Unknown Source) at org.apache.commons.httpclient.HttpConnection.flushRequestOutputStream(HttpConnection.java:828) ...

When i go to https://rn-ems.jpl.nasa.gov/alfresco/service/checklogin in my browser i get a {"status": 200}.
Any leads?

Thanks,
Johannes
(running java 1.7 and MD 17.05)

MDK fails to add org/project in Cameo 19.

I am using:
MMS Release 4.0.18
View Editor (VE) Release 4.0.2
MDK Release 5.1.3
Cameo 19 SP4

Test Results
* Plugin installs and loads
* MMS Menus and options visible
* Logs in to MMS
* Model Validation Runs
* Attempt to add project to MMS generates internal Cameo Error

Log text below and test model attached:

test.zip

Thu Jun 15 13:25:29 EDT 2023
Error count: 2
org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed. (Caused by org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed.) (Caused by org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed. (Caused by org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed.))
	at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:543)
	at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:235)
	at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:209)
	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)
	at org.apache.http.conn.ssl.DefaultHostnameVerifier.<init>(DefaultHostnameVerifier.java:72)
	at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:955)
	at org.apache.http.impl.client.HttpClients.createDefault(HttpClients.java:58)
	at gov.nasa.jpl.mbee.mdk.mms.MMSUtils.sendMMSRequest(MMSUtils.java:235)
	at gov.nasa.jpl.mbee.mdk.mms.MMSUtils.sendMMSRequest(MMSUtils.java:314)
	at gov.nasa.jpl.mbee.mdk.mms.MMSUtils.getMmsOrg(MMSUtils.java:372)
	at gov.nasa.jpl.mbee.mdk.mms.actions.CommitProjectAction.commitAction(CommitProjectAction.java:77)
	at gov.nasa.jpl.mbee.mdk.mms.actions.CommitProjectAction.actionPerformed(CommitProjectAction.java:68)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:882)
	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:926)
	at java.awt.Component.processMouseEvent(Component.java:6539)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
	at java.awt.Component.processEvent(Component.java:6304)
	at java.awt.Container.processEvent(Container.java:2239)
	at java.awt.Component.dispatchEventImpl(Component.java:4889)
	at java.awt.Container.dispatchEventImpl(Container.java:2297)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
	at java.awt.Container.dispatchEventImpl(Container.java:2283)
	at java.awt.Window.dispatchEventImpl(Window.java:2746)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
	at java.awt.EventQueue$4.run(EventQueue.java:733)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
	at com.nomagic.utils.EventTracker.dispatchEvent(EventTracker.java:31)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Caused by: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed. (Caused by org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed.)
	at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:397)
	at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:529)
	... 50 more
Caused by: org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy.  You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed.
	at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:385)
	... 51 more

User information:
    Registered to: ADVENTIUM LABS
    Profile: 688697
    Key ID: LKO2022406_55582
System information:
    JVM:
        Name: OpenJDK 64-Bit Server VM;
        Version: 1.8.0_362;
        Vendor: Private Build;
    OS:
        Name: Linux;
        Architecture: amd64;
        Version: 5.15.0-73-generic;
        Locale: English;
MagicDraw Version:
Cameo Enterprise Architecture 19.0 SP4
Version: Commercial with expiration
Edition: Enterprise
License: Floating
Build: 20200314_0955-ae099fab
Registered to: ADVENTIUM LABS
Expires at: May 10, 2024

Cameo Business Modeler 19.0 SP4 Plugin
Version: Evaluation
Build: 20200314_0748-ae099fab
Expires at: May 10, 2024

Cameo Concept Modeler 19.0 SP4 Plugin
Version: Evaluation
Build: 20200303_1229-f28c8930
Expires at: May 10, 2024

Cameo Data Modeler 19.0 SP4 Plugin
Version: Evaluation
Build: 20200314_0711-ae099fab
Expires at: May 10, 2024

Cameo Requirements Modeler 19.0 SP4 Plugin
Version: Evaluation
Build: 20200314_0715-ae099fab
Expires at: May 10, 2024

Merge 19.0 SP4 Plugin
Version: Commercial with expiration
Build: 20200314_0955-ae099fab
Expires at: May 10, 2024

SysML 19.0 SP4 Plugin
Version: Evaluation
Build: 20200314_0744-ae099fab
Expires at: May 10, 2024

UAF 19.0 SP4 Plugin
Version: Evaluation
Build: 20200314_0814-ae099fab
Expires at: May 10, 2024

AutoStyler 19.0 SP4
Enterprise Architect Import 19.0 SP4
Strict UML XMI Exporter 17.0 SP2
TOGAF 19.0 SP4
Zachman Framework 19.0 SP1

Third Party Plugins:
Model Development Kit 5.1.3 (OpenMBEE)

MagicDraw Environment
Installed at: /home/esandberg/19-cameo/
Configuration files: /home/esandberg/.cameoea/19.0/

Create Presentation Element for the results of an OCL run

We should add a presentationByExpression which allows an ocl 'run()' command output its presentation results to the view

For example if I "collection.run(Image Viewpoint)" the presentationByExpression block would append the results of the "Image Viewpoint" based on the "collection" to the view

MDK > Run OCL Query Documentation?

Question 1:
Is there any documentation on the MDK > Run OCL Query feature?

I'm going off of what is in the Manual in "3.7. Create and Evaluate OCL Constraints" but I'm really having a hard time getting started. It's like I ALMOST have enough info to start and use it based on what's in there but it's just not quite filled out enough with enough examples. And when I try to get started with reproducing examples in the tool, I'm still not able to get any results that look normal or what I might expect.

Question 2:
On Blocks I can do 'r()' and get a list of relations and it returns:
[com.nomagic.uml2.ext.magicdraw.classes.mdkernel.impl.AssociationImpl@726a866e, com.nomagic.uml2.ext.magicdraw.classes.mdkernel.impl.AssociationImpl@702f3f49]

What is that? A unique ID?

These are my two associations and they are named:
r('controls') --- [com.nomagic.uml2.ext.magicdraw.classes.mdkernel.impl.AssociationImpl@726a866e]
r('worksin') --- [com.nomagic.uml2.ext.magicdraw.classes.mdkernel.impl.AssociationImpl@702f3f49]

Question 3:
self.get('budget').v().v()
returns: 3 Which is my default value of my value property called 'budget'. But I'm so confused why I have to say v().v() twice

And when I do:
self.get('budget')
This returns: com.nomagic.uml2.ext.magicdraw.classes.mdkernel.impl.PropertyImpl@35cec187

What does this really mean? That it found an attribute that matches the name 'budget'? So how would I report on default value? Why does .v().v() work?

Question 4:
Another question, is OCL only meant for Block evaluations? I cannot run this on Instance Specifications? Because those instance specifications can be populated with real values (their slots) and I can do OCL evaluations on the data populated?

Question 5:
I guess I'm just getting started with OCL and trying to figure out the MDK > Run OCL Query feature, and more importantly, really try to figure out how this can be leveraged, do you have a few examples of when it would be good / useful to use the MDK > Run OCL Query feature?

Required additional libraries missing?

Hello dear developers,
I am trying to set up this plugin for MagicDraw (v17.0.5), but it seems that it is missing some libraries.
Here is what I do:
I've grabbed the latest version from the github in Zip form, extracted it,
and then installed the zip/docgen-17.0.5.zip into the MagicDraw 17.0.5 using MagicDraws Help>Resource/Plugin Manager, [Import] button.

Now, after starting MD, I see new menu items in main menu - MDK, MMS,
BUT looking at the plugin status in Options>Environment>Plugins I see that the DocGen plugin is not starting properly.
Also looking into MD's log file I see this exception during plugin init:

2014-10-08 14:23:22,203 [main] ERROR PLUGINS - Can not start plugin DocGen
java.lang.NoClassDefFoundError: gov/nasa/jpl/magicdraw/qvto/QVTOUtils
at gov.nasa.jpl.mbee.DocGenPlugin.init(DocGenPlugin.java:107)
at com.nomagic.magicdraw.plugins.q.b(q.java:690)
at com.nomagic.magicdraw.plugins.q.a(q.java:537)
at com.nomagic.magicdraw.plugins.q.b(q.java:455)
at com.nomagic.magicdraw.core.r.s(r.java:48)
at com.nomagic.rcpf.product.r.a(r.java:273)
at com.nomagic.rcpf.product.f.b(f.java:90)
at com.nomagic.rcpf.product.f.a(f.java:75)
at com.nomagic.magicdraw.core.Application.internalStart(Application.java:678)
at com.nomagic.magicdraw.core.Application.start(Application.java:494)
at com.nomagic.magicdraw.core.Application.start(Application.java:473)
at com.nomagic.magicdraw.Main.main(Main.java:13)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.nomagic.launcher.Launcher.startMainClass(Launcher.java:693)
at com.nomagic.launcher.Launcher.start(Launcher.java:270)
at com.nomagic.launcher.Launcher.main(Launcher.java:191)
Caused by: java.lang.ClassNotFoundException: gov.nasa.jpl.magicdraw.qvto.QVTOUtils
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 19 more

Sniffing around, I see that this missing QVTOUtils class is nowhere to be found.
It looks like this plugin depends on another plugin from NASA JPL: gov.nasa.jpl.magicdraw.qvto.library
But I do not know where to get this plugin? is it even open sourced?

Trying to rebuild from the distributed sources, using ant -f build-nojenkins.xml, also fails with the message that ${md}/plugins/gov.nasa.jpl.magicdraw.qvto.library does not resolve (note - I've properly modified the build file, setting the ${md} property to point to my MD install )

Any help would be greatly appreciated.

Sincerely,
Tomas Juknevicius
System Analyst
MagicDraw team

Questions about Undefined Cover Page of Project and <html> prefix

Hello! I followed the user mannual and tried to make a cover page of a document. It worked on some extent but there seems to be some bugs.

The first one is that when I define the cover page of a document using PARAGRAPH stereotype, it appears like this:
test message of cover page
You can see that there is a prefix of in front of the paragraph. I found that if the text is defined in the DOCUMENTATION attribute of the exposed element, there won't be this prefix. But if the text is directly defined in the BODY attribute of the PARAGRAPH and html option is checked, it comes with this prefix very often.

The second one is that the cover page will show up normally if I select a specific document in the left pane, as is shown in the above image. But if I renenter the project or switch to another project, i.e. no document is selected, the VE will show up as Undefined Cover Page, as is shown in this image:
undefined cover page
It seems to me that this Undefined Cover Page belongs to the project instead of the document, which means that although I defined the cover page of the document, there is still no definition of the project's cover page. But how should I define the cover page for the project? There seems not a place to do so in the view diagram.

Could anyone please help fix out these two problems?

MDK Viewpoint TablePropertyColumn cannot find basic UML Profile Properties

When I'm creating my view point and using TablePropertyColumns I'm having a tough time being able to point to the most basic UML Profile stuff such as "Owner" for blocks, or "Source" and "Target" for Dependencies, and I think it's because when I'm searching under DesiredProperty, I'm looking all over but I just cannot find the base UML Profile to say, "hey, I want to select the owner".

Do you have any hints like we don't have the UML Profile loaded to our project or it's not viewable?? Or why I cannot point to such properties to display when I generate my document?

Magic Draw Table Content Not Showing in MMS?

In Magic we are creating a bunch of tables (Right Click > Create Diagram > Other Diagrams > Generic Tables).

We are populating tables of say Dependencies and displaying some other properties.
When we commit them to MMS, I guess our Admin person can see the table object but not the contents of the table? Does this sound correct?

Do you have any tips on how to push all those Magic Draw generated tables into MMS? Or do we have to recreate them via MDK Document Table Queries and Push to MMS that way?

documentation changes will not import to md

i think this is related to the ownedCommentId issue, 5.1.0 seems to be pushing the empty array for it (i think it's just not pushed at all for instance specs?). this causes documentation changes to not import to md (via csync or validation)

csync is missing commits

to reproduce
open a project
create a cf with a new block on ve
make another change
commit project to twc

csync seems to only get the last change and not the new block

How does one connect the MagicDraw plugin to self-hosted OpenMBEE

I am in the process of setting up my own installation of OpenMBEE. I installed Alfresco (v4.2.f) and the OpenMBEE AMPs. As a first smoke test of the server, I went to the Alfresco login page and I now see the Europa EMS login prompt.

I then installed the MagicDraw plugin in MagicDraw 17.0.5. After restarting MagicDraw, I can see the MDK and MMS menus. When I open a project and attempt to connect to my installation of OpenMBEE the MagicDraw plugin only prompts me for my username and password. I do not see where I need to enter the ip address/hostname of my local installation of OpenMBEE.

Is there a configuration file or setting dialog I can access to update the MMS server ip address/hostname?

Thanks!

MDK fails to generate view contents in Cameo 21x

I am aware that Cameo 21x is not tested but my comment that it at least loads seemed interesting to the devs at the tagup so here is the status.

I am using:
MMS Release 4.0.18
View Editor (VE) Release 4.0.2
MDK Release 5.1.3
Cameo 21x

Test Results

  • Plugin installs and loads
    • MMS Menus and options visible
    • Logs in to MMS
    • Model Validation runs
    • Org and Repo commit to MMS and are visible in VE
    • Internal Cameo error when recursively generating view contents.
    • Silently fails to manually commit model elements/views to MMS

Test model attached and error text below:

test_21.zip

Thu Jun 15 12:47:17 EDT 2023
Error count: 6
java.lang.NoSuchMethodError: 'java.util.List com.nomagic.uml2.ext.jmi.helpers.StereotypesHelper.getAllProfiles(com.nomagic.magicdraw.core.Project)'
	at gov.nasa.jpl.mbee.mdk.util.GeneratorUtils.getViewpointStereotype(GeneratorUtils.java:315)
	at gov.nasa.jpl.mbee.mdk.util.GeneratorUtils.getViewpointMethod(GeneratorUtils.java:327)
	at gov.nasa.jpl.mbee.mdk.docgen.ViewViewpointValidator.validateView(ViewViewpointValidator.java:129)
	at gov.nasa.jpl.mbee.mdk.docgen.ViewViewpointValidator.validateView(ViewViewpointValidator.java:156)
	at gov.nasa.jpl.mbee.mdk.docgen.ViewViewpointValidator.run(ViewViewpointValidator.java:100)
	at gov.nasa.jpl.mbee.mdk.generator.ViewPresentationGenerator.run(ViewPresentationGenerator.java:127)
	at com.nomagic.task.ProgressTask.execute(ProgressTask.java:25)
	at com.nomagic.task.Task.construct(Task.java:193)
	at com.nomagic.task.SwingWorker$2.call(SwingWorker.java:214)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at com.nomagic.task.SwingWorker$SwingWorkerFuture.run(SwingWorker.java:601)
	at com.nomagic.task.BackportedThreadPoolExecutor$Worker.a(BackportedThreadPoolExecutor.java:1593)
	at com.nomagic.task.BackportedThreadPoolExecutor$Worker.run(BackportedThreadPoolExecutor.java:1624)
	at com.nomagic.task.PooledThread.run(PooledThread.java:67)

User information:
    Registered to: ADVENTIUM LABS
    Profile: 688697
    Key ID: LKO2022406_55582
System information:
    JVM:
        Name: OpenJDK 64-Bit Server VM;
        Version: 11.0.19;
        Vendor: Ubuntu;
    OS:
        Name: Linux;
        Architecture: amd64;
        Version: 5.15.0-73-generic;
        Locale: English (United States);
MagicDraw Version:
Cameo Enterprise Architecture 2021x Refresh2
Version: Commercial with expiration
Edition: Enterprise
License: Floating
Build: 20211218_0029-81fa0fd0
Registered to: ADVENTIUM LABS
Expires at: May 10, 2024

Cameo Business Modeler 2021x Refresh2 Plugin
Version: Evaluation
Build: 20211217_2348-81fa0fd0
Expires at: May 10, 2024

Cameo Concept Modeler 2021x Refresh2 Plugin
Version: Evaluation
Build: 20211218_0006-be583cc0
Expires at: May 10, 2024

Cameo Data Modeler 2021x Refresh2 Plugin
Version: Evaluation
Build: 20211217_2351-81fa0fd0
Expires at: May 10, 2024

Cameo Requirements Modeler 2021x Refresh2 Plugin
Version: Evaluation
Build: 20211217_2351-81fa0fd0
Expires at: May 10, 2024

SysML 2021x Refresh2 Plugin
Version: Evaluation
Build: 20211218_0004-81fa0fd0
Expires at: May 10, 2024

UAF 2021x Refresh2 Plugin
Version: Evaluation
Build: 20211218_0025-81fa0fd0
Expires at: May 10, 2024

AutoStyler 2021x Refresh2
Strict UML XMI Exporter 2021x Refresh2
TOGAF 2021x Refresh2
Zachman Framework 19.0 SP1

Third Party Plugins:
AADL Bridge 1.12 (Galois)
Model Development Kit 5.1.3 (OpenMBEE)

MagicDraw Environment
Installed at: /home/esandberg/cameo/
Configuration files: /home/esandberg/.cameoea/2021x/

Trying to Create Custom Jython

Hello,

I'm trying to utilize the UserScript component of DocGen, so I've created a stereotype that extends UserScript, and a .py file by the same name as my stereotype to compile when the document is generated. I've been able to run scripts, so I know my python script is set up appropriately. However, it seems like in order to write to the DocGen report, the script requires the function DBParagraph, which is located in gov.nasa.jpl.mgss.docgen.docbook. Is this package available so we can run UserScripts?

Thanks.

Is there any way to sort prefixed and multi-leveled IDs?

Hello! I am using the SortByProperty Function and the chosen property is the ID of a requirement, as is shown in sceenshot 1.
screenshot 1
But the ID is prefixed and chaptered into multiple levels, as is shown in screenshot 2.
screenshot 2
Then as a result, the tool could not sort the IDs correctly. For example, it comes to 1.1.2 after 1.1.19, then 1.1.20, 1.1.21, etc, as is shown in screenshot 3.
screenshot 3
If I change the numbering schema to consecutive, it will work. But due to application requirement, a multi-level numbering schema is more friendly to user, which is highly suggested.
So is there any way that the CDK could sort the multi-level numbering schema correctly?

statistics after commit are wrong

The statistics logged after a commit (csync) are always 0 no matter if elements get added or deleted in 5.1.0
[2022.11.23::18:11:51] | [INFO] 0 elements are missing in client.
[2022.11.23::18:11:51] | [INFO] 0 elements are missing on MMS.
[2022.11.23::18:11:51] | [INFO] 0 elements are not equivalent between client and MMS.

Update/Commit doesn't work for compositions

The update/commit doesn't seem to work for compositions. So you have to validate your model the resolve the issues in order to commit a composition. The update/commit worked fine for committing blocks though. I'm not sure if this is a configuration issue with my set up or if this is a true bug. Below are the steps to reproduce this:

Step 1. Right click on data and validate make sure there aren’t any errors:
Step 2. Create a new bdd and create a composition link between two block
Step 3. Select data then select MMS --> Update/commit
Step 4. Just for good measure, select the package where the blocks & bbd are and do mms -->update/commit
Step. 5 select data and mms --> validate model and you receive this message:

composition1

Step 6. Go from top to bottom and commit each element. Note the composition in magic draw has turned yellow

Step 7. Select MMS-->validate model and you now receive these messages:
composition2

Commit the top item again and for the second item (error message) accept the association

composition3

Step 8. Go MMS --> Validate model and you get the below error message. This time select the commit association

Step 9. MMS --> Validate model and model web difference validation window is blanks

However the composition is now red in magic draw..so select the commit association

The composition remains red. So, now try accept association and the composition turns black now.

However as soon you select data MMS --> Validate model the composition returns to being red and you have to select the composition and select “accept association” for the composition to turn black again….If you log out of MMS and close magic draw then get back in the objects remain black.

In step 5, if you did a multi-select and commit all the items at once. The blocks and association will turn yellow.

If you select the object on the diagram and right click, you can commit the objects

The commit doesn’t seem to do anything…and the objects remain yellow. Moreover, when you select data MMS --> validate model the model validation window is blank. However, if I close magic draw and get back in the objects remain black.

MMS menu not showing up

I've been trying to install the MDK plugin, and I've only been successful in doing that for CSM 18.2. I repackaged the zip to remove the redundant packaging, and I've tried installing the MDK plugin branch 2.1 on CSM 17.05, 18.0, 18.1, and 18.2 and branch 2.2 on 18.0 and 18.2. The 17.05 to 18.1 versions give me error regarding configurator file not being readable or that it's not the right version. For the plugin installation that did work on 18.2, I don't see the MMS menu option in MagicDraw.

MDK Doc Gen - Report Value of Tagged Value on a Dependency

We are having trouble reporting out a property on a dependency.

We have a type of Dependency, that we added a stereotype of "Flight Phase Link" to dependency the dependency. With that Stereotype come some tagged value properties as options. One of which is called "Severity". For all of our "Flight Phase Link" Dependencies, we've populated this property (tagged value) with values of "No Effect" or "Catastrophic", etc. Our problem is that we cannot figure out how to report the value of this tagged value on this relationship.

For our report, We used our viewpoint to collect by stereotype "Flight Phase Link"

We then used OCL to create the following columns:

source name: self.oclAsType(Dependency).source
source ID: self.oclAsType(Dependency).source.ID
target name: self.oclAsType(Dependency).target
targetID: self.oclAsType(Dependency).target.ID
ITERATE ONLY ON IDs

The problem that we are having is, we just cannot figure out how to report the value of the property called "Severity" that we placed onto our Dependency. Any help with an expression to report this would be great!

The closest I can come is:
self.oclAsType(Dependency).get('Severity').v().v() ---- which only returns "Severity", not the value of the tag...

MDK doesn't report offending elements on commit

When there are certain types of hidden elements at package level (e.g. value specifications, literal strings), a commit of the whole model
is aborted but not reported back to CSM.
The only way to debug the model is to inspect the backend to find the offending IDs since they cannot be found through the CSM UI.
MMS reports back in the response the offending elements but they are not logged.

possible solutions

  • log response from MMS in .log file - could be an option to be turned on in project options
  • the validate function flags those hidden elements

Can’t commit multiple types of actions at the same time

Issue Summary:
A user can not commit multiple different types of actions at the same time. This seems to be a very non-user friendly way of handling commits. It would be ideal if the user could just choose to commit everything and all the actions would be committed regardless if there menu picks were different.

Steps to Reproduce:

Create a new block and delete the test block

Select MMS Validate Model

2 1

Do a multi-select and notice that the only option is to “delete alfresco element” there is nothing about committing the new block.

2 2

Select delete alfresco element and rerun the MMS Validate Model and the option to commit the test block 2 object is still there and you will have to commit the new object separately.

2 3

ownedRuleId issue

seems #234 's original issue is still an issue - view generation pushes ownedRuleIds with a non empty array and causes updates to the view in the model to fail afterwards (since it can't find the ephemeral view constraint)

MDK not building in debug environment

I can't seem to get MDK to build using the DEBUG option in eclipse. It builds fine using ANT. Do I need to have it installed in MD before I try to develop new capability?

"Descriptor.xml file not found"

I have version 17.0.5 of Magicdraw installed on my computer and I was trying to import the MDK plugin. I received the following error:

"The following resources are not suitable for current version or edition: C:\Users\cordme\Desktop\MDK-open-source.zip" descriptor.xml file not found"

I tried to import various ways and from different locations, and still received the same error. Any ideas?

upload all videos to youtube that are hosted by jpl in the user guide and fix the user guide

it would be dope if all the urls pointed to a youtube equivalent, and that you all had a tool to scrub internal jpl urls and convert them to the public versions before pushing to public github. e.g.: https://jpltube.jpl.nasa.gov/NetworkFileStore/8706/media_720.mp4

It is kind of bad form to expect public adoption of a clearly private development without first scrubbing the internal version of internal urls as it makes its exodus to the os community.

Won't open under windows

I am attempting to install this plugin and it is failing. The error it gives me is:
the following resources are not suitable for current version or edition:
C:\path\docgen-17.0.5.zip
error in opening zip file

Windows also cannot open the zip file.
I'm using MagicDraw 17.0.5 with SysML, Camio Business Modeler booth installed and up. Is there something I'm doing wrong?

configuration.py fails on #import traceback

Hi,
I am not sure how serious this problem is, but after installing the plugin into MagicDraw 17.0.5, I get python errors in MagicDdarw log during startup.
SystemsReasoner/configuration.py fails at line 20 ( #import traceback)
stating that traceback can not be found.

I am not sure how serious this problem is. Can it be ignored safely?
For now I've just modified my configuration.py replacing traceback usages with simple print statements

Sincerely,
Tomas Juknevicius,
System Analyst
MagicDraw team

OCL Library Clash Error

I am using version 2.1 and I am getting the following error when I try to validate views that use custom "TableExpressionColumn"s in my viewpoint diagram.

For example when I try to recreate this diagram from the user guide, i receive the error message below:
capture1

Here is the error message:

java.lang.NoSuchMethodError: org.eclipse.ocl.ecore.EcoreEvaluationEnvironment.(Lorg/eclipse/ocl/ecore/EcoreEnvironmentFactory;)V
at gov.nasa.jpl.ocl.DgEvaluationEnvironment.(DgEvaluationEnvironment.java:65)
at gov.nasa.jpl.ocl.DgEnvironmentFactory.createEvaluationEnvironment(DgEnvironmentFactory.java:101)
at gov.nasa.jpl.ocl.DgEnvironmentFactory.getDgEvaluationEnvironment(DgEnvironmentFactory.java:123)
at gov.nasa.jpl.ocl.OclEvaluator.addRegexMatchOperation(OclEvaluator.java:489)
at gov.nasa.jpl.ocl.OclEvaluator.setupEnvironment(OclEvaluator.java:957)
at gov.nasa.jpl.ocl.OclEvaluator.evaluateQuery(OclEvaluator.java:354)
at gov.nasa.jpl.ocl.OclEvaluator.evaluateQuery(OclEvaluator.java:284)
at gov.nasa.jpl.ocl.OclEvaluator.evaluateQuery(OclEvaluator.java:267)
at gov.nasa.jpl.mbee.generator.DocumentValidator.evaluate(DocumentValidator.java:767)
at gov.nasa.jpl.mbee.generator.DocumentValidator.evaluate(DocumentValidator.java:747)
at gov.nasa.jpl.mbee.model.TableStructure.buildTableReferences(TableStructure.java:293)
at gov.nasa.jpl.mbee.model.TableStructure.visit(TableStructure.java:326)
at gov.nasa.jpl.mbee.model.DocBookOutputVisitor.visit(DocBookOutputVisitor.java:65)
at gov.nasa.jpl.mbee.model.Query.accept(Query.java:129)
at gov.nasa.jpl.mbee.model.AbstractModelVisitor.visitChildren(AbstractModelVisitor.java:51)
at gov.nasa.jpl.mbee.model.DocBookOutputVisitor.visit(DocBookOutputVisitor.java:126)
at gov.nasa.jpl.mbee.model.Section.accept(Section.java:99)
at gov.nasa.jpl.mbee.model.AbstractModelVisitor.visitChildren(AbstractModelVisitor.java:51)
at gov.nasa.jpl.mbee.model.DocBookOutputVisitor.visit(DocBookOutputVisitor.java:99)
at gov.nasa.jpl.mbee.model.Document.accept(Document.java:379)
at gov.nasa.jpl.mbee.ems.validation.ViewValidator.validate(ViewValidator.java:168)
at gov.nasa.jpl.mbee.ems.ValidateViewRunner.run(ValidateViewRunner.java:53)
at com.nomagic.ui.BaseProgressMonitor$ProgressTask.execute(BaseProgressMonitor.java:1143)
at com.nomagic.task.Task.construct(Task.java:196)
at com.nomagic.task.SwingWorker$3.call(SwingWorker.java:219)
at java.util.concurrent.FutureTask.run(Unknown Source)
at com.nomagic.task.SwingWorker$SwingWorkerFuture.run(SwingWorker.java:608)
at com.nomagic.task.BackportedThreadPoolExecutor$Worker.runTask(BackportedThreadPoolExecutor.java:1581)
at com.nomagic.task.BackportedThreadPoolExecutor$Worker.run(BackportedThreadPoolExecutor.java:1612)
at com.nomagic.task.PooledThread.run(PooledThread.java:64)

Docgen user manual generation fails for OCL examples

This 2 chapters fail to generate:

[2022.11.23::16:23:06] ERR: illegal operation signature: (cref_name()) for OCL query "cref_name()" on How Do I Create Transclusions with OCL Queries?[_18_0_2_bec02f9_1444944942233_724594_73192]
[2022.11.23::16:23:06] ERR: illegal operation signature: (cref_doc()) for OCL query "cref_doc()" on How Do I Create Transclusions with OCL Queries?[_18_0_2_bec02f9_1444944942233_724594_73192]

Value properties and tagged values are not being sent/saved on the server

I installed OpenMBEE on a server using Alfresco 4.2f. I tested the server using MagicDraw 17.0.5 with MDK installed. My test project initialized, and I managed to get most of my elements sent and saved on the server. I could even get the Document Views to show up. I did run into a particular problem : None of the Default Values of my value properties or my tagged values are being saved on the server. The value property itself is saved (i.e. I can see the value property in DocWeb), but I can't get it's default value to the server. Commiting the value (right click on the error in the Validation window) results in a message that it is "Sending ..." then "Successful." However, when I validate the model, the same error "[VALUE] model: not null, web: null" . The same thing is true for tagged values.

Any ideas why this is happening? Perhaps point me to a log file either on the server or on the MagicDraw side that will shed some light or clues as to what's happening?

Andy Ko

Branch/Merge in Magic Draw

I have followed the instructions in the MagicDraw MDK Manual section 3.5 and I cannot get branching/merging to work within magic draw. The instructions mention how to create a branch using magic draw's teamwork server but don't mention anything about how to do it within alfresco and how to align the two if you don't have teamwork server. Do you need to have teamwork server or can you create branches/merge with using magic draw, alfresco and the open mbee plug ins?

Commit Order

Issue Summary:
I am able to commit individual changes to the server regardless of necessary order precedents. If you commit an item that requires other commits to happen first, you will get an error. The user must either attempt to commit everything or go through all the changes to figure out which additional commit (s) are needed. This seems to be a very non-user friendly way of handling commits. It would be ideal if the user selected a commit that required additional commits the tool would prompt the user to commit all related items or cancel the action.

Steps to Reproduce:

Create a package, block and a stereotype. Apply the stereotype to the block.

1 1

Select the Test package and MMS  Validate Model

Select the test block and commit the element

1 2

You receive an error in the log because you are attempting to commit "test block" before you have committed the package "test block" is in.:

1 3

If you select all, the commits go through.
1 4

The system should either prompt you to commit the related objects as well or allow you to cancel the commit.

Help on OCL Expression to pull Tag Value and ID on end of a dependency?

Hi. In my document I'm making a table listing all of the Dependencies and I'm listing Source and Target information such as Name, Stereotype, and ID.

Example:
self.oclAsType(Dependency).target
self.oclAsType(Dependency).target.oclAsType(Class).appliedStereotypeInstance.classifier
self.oclAsType(Dependency).target.ID

Need Help:
I'm now wanting to report on the Target end, there is a tag value that I want to report, I want to find the tag called "Total Event Probability" and report its value of "2.0E-5", I also want to report the ID of the slot

Here is what it looks like in the Specification Window on the Class:
Total Event Probability 2.0E-5

In the Tag Section it is listed as:
TotalEventProbability = 2.0E-5

None of these seem to be working
self.oclAsType(Dependency).target.oclAsType(Class).m('Total Event Probability').oclAsType(Property).defaultValue
self.oclAsType(Dependency).target.oclAsType(Class).get('Total Event Probability').v().v()
self.oclAsType(Dependency).target.oclAsType(Class).m('Total Event Probability').oclAsType(Property).ID
self.oclAsType(Dependency).target.oclAsType(Class).m()
self.oclAsType(Dependency).target.oclAsType(Class).m().ID
self.oclAsType(Dependency).target.oclAsType(InstanceSpecification).m('Total Event Probability').oclAsType(Property).defaultValue

I'm doing this because we want to interface with Simulink and it can only talk with Alfresco, so we have to look up the tag value slot ID to reference the object and then push the numbered value into it.

Thanks if you can help with reporting on tagged values and IDs of classes that'd be great!

How to install MDK?

I'm trying to install the MDK to look at the TMT example. The README provides almost no information, and I don't see any information in the Open-MBEE wiki. Do I have to build something, or can I just install the plugin without building it? Are there libraries to replace in the lib directory in MagicDraw? I have MagicDraw 18.0 LTR installed with CST 18.4 SP1.

Should I be using master or release 3.0.0?
I tried to build the master branch using Eclipse and the build-nojenkins.xml file with Ant and I got about 100 errors.

What are the prerequisites to setup the build environment if it has to be built?

EMS Document Generation

How do you generate a document (pdf or word) from EMS? Also we don't know how to get our site to appear on EMS..do you have to set a site property for that to work?

Documentation .pdf , Code and example project are wildly out of sync

Howdy,

Manual.pdf has a section on editable views (10. Getting Document on ViewEditor).
Unfortunately the plugin does not provide the relevant menu actions (the entire "Editable View" submenu is missing).
I've rummaged in the code and found out the relevant menu section in the DocGenConfigurator.java - commented out.
I've uncommented it and successfully built a new version. The menu action names are slightly changed vs the documentation - instead of "Export View", the new name is "Commit View (Overwrite)" ).

Also I think the exporting code uses too old(or too new?) tag names - the ViewEditUtils.java (lines 109, 110) tries to use the tags ModelManagementSystem::url and ModelManagementSystem::site, but the SysML extensions profile, used by example project has tags ModelManagementSystem::MMS Site, ModelManagementSystem::MMS URL

Sincerely,
Tomas Juknevicius

Need help on How to alternately display paragraphs and images through Viewpoint Method

Assumptions:

  1. There are 10 Blocks, each with a text paragraph recorded in the block‘s documentation property
  2. There are 10 BDD diagrams
    So, how should the Viewpoint method be created so that it can generate a Web document in the order of Block1-text, BDD1, Block2-text, BDD2...?
    I already know that a similar effect can be achieved by recording the text in the Specification attribute of the BDD, and then collecting these BDDs and using the <> stereotype. But I don't want to do it like this due to practical application requirements. The main reason is that in the Web documents generated in this way, the images always appear in front of the description, but I need the description to be in front of the images.
    If I want the right sequence, it costs a lot of editing work. I have to edit different <> 1, 2, 3, 4.....
    I want to use only one <>, within which the Block's Documentation property and the BDD's image is processed alternately.
    I am trying to collect the Blocks and BDD diagrams at one time in the Viewpoint Method, and then display them alternately through a certain structure. I tried using the provided <> stereotype, but it didn't work. I believe the CDK is capable of doing this, but I don't know how to do it, and I didn't find a similar example in the Openmbee Cookbook.
    Could anyone please tell me how to do it?
    This is very meaningful to me, because I would no longer need to edit the structure for each Block or BDD of interest, but store these elements in a list, and then let the program automatically generate Web documents with the elements in the list in a recursive way. This would save a lot of work editing Viewpoint Method.

MDK will not build

The build.xml file contains these reference's that don't exist on a vanilla Magic Draw installation:
1 import file="md.install.dir/data/eclipse/zip.xml"
2 property name="md.build.tools.dir" location="md.install.dir/data/eclipse/resource/SMDP-PackageB"
3 import file="md.build.tools.dir/build.md.plugin.xml"

Define titles for Dynamic sections using OCL

Add the ability to define dynamic section titles within StructuredQuery (has titlestuff tag group) using ocl. Essentially integration of the Paragraph capability into this single tag (likely with an "evaluate OCL" boolean added

screen shot 2015-09-30 at 12 57 00 pm

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.