[kepler-dev] Modifying MoML files

Hogan, D. (GE Energy) D.Hogan at ge.com
Tue Apr 10 10:02:11 PDT 2012


What's the best way to modify MoML inside of kar files?  Should I use
ptolemy.moml.MoMLParser, some other class in Kepler, standard tools
(XSLT/DOM) or something else?

I'm trying to do two types of operations with MoML.  After I update
source code for actors, I want to have a way to update all of the
affected kar files.  This could be adding, removing or renaming ports
and parameters or changing types and class names across all local kar
files.  All of these operations appear to be supported as filters in the
MoML parser.  The second task is doing a diff on MoML files without GUI
or documentation related elements.  The automated layout in the GUI is
great, but small changes in the workflow can result in big changes in
the layout.   If I give a kar to someone and they update it, I want to
be able to see what changes they made besides GUI placement or
documentation.  This also appears to be supported by MoMLParser since
there are filters to remove parts of the file.

When I tried ptolemy.moml.MoMLParser with
org.kepler.moml.filter.BackwardCompatibility.initialize(), I get a lot
of unnecessary changes.  It would cause problems if I checked in the
MoML files and ran 'svn blame'.  I noticed there is a file
ptolemy-kepler-2.3/src/adm/bin/updatemoml which calls
ptolemy-kepler-2.3/src/adm/bin/updateMoMLFile.tcl and runs diff to see
if there were any differences.  I don't think that would work properly
on a MoML from Kepler because there would be many changes.



More information about the Kepler-dev mailing list