contact ME

Use this form to reach out to me.

Ask me about the software development consulting and vocal services that I can provide for your project.

Westboro
Ottawa, ON
Canada

I am an independent software development consultant, specializing in model-driven development with Eclipse technology, which has been a passion for the last ten years.  I am widely recognized for my high-quality output, timely delivery, and friendly and engaging manner.

I also happen to be a capable singer, performing sacred and secular works for choir and tenor solo from the renaissance to today.  If you are presenting vocal music in Ottawa, eastern Ontario, or west Québec, I can be your tenor.

IMG_1359.JPG

Blog

An ad hoc record of Christian W. Damus's professional and personal activity.

Reusing Packages in Papyrus Model Repositories

Christian W. Damus

In last week's instalment of the Papyrus Model Repository tech preview series, I showed how to create new models in a CDO repository.  This week we look at reusing model content by importing packages and applying profiles from models stored in a repository.

The latest development on the cdo_kepler branch in Papyrus SVN refactors the "Import Package From Workspace" and "Apply Profile(s)" dialogs to support pluggable model import sources, including CDO repositories in addition to the Eclipse Workspace.  Also, the workflow in these dialogs is stream-lined a bit and some of the code that handles profile migration is generalized to work with non-XMI resources.  See the video after the break to take a tour.

The guts of the package import action are factored out into a new reusable dialog with an extension point that plugs in "package import sources".  These provide the dialog with:

  • a content provider to present a tree in which to browse for models
  • a label provider for the tree content
  • validation of user selections
  • extraction of packages from the user selection

Workspace content is provided by default and the CDO integration plug-ins provide the contents of currently connected model repositories.

In the Juno release, for every model file that was selected by the user in the first package-import or apply-profile dialog, another dialog would pop up asking the user which packages(s) to import or profile(s) to apply from each file.  This repetition of the dialog is now replaced by a single dialog that presents all of the packages/profiles found in all models selected by the user.  In the case of importing packages, the dialog's selection tree has a second column in which the user elects whether to import or copy each package.

The package import dialog is sensitive to the context of the package into which the user is importing content.  Each import source is queried whether it is supports importing into the user's selected package.  This allows the CDO provider to be excluded for packages in workspace models, because dependencies from the workspace to a model repository are discouraged.  However, the workspace import source is enabled on packages in the repository.

Check out the latest cdo_kepler branch in Papyrus SVN to take this for a spin, yourself!

  

Papyrus Model Repositories: Creating New Models

Christian W. Damus

Last week, I introduced the in-progress integration of CDO model repositories into Papyrus for the Kepler release.  The starting point was migration of existing models from the Eclipse workspace into a repository.  But, what if you don't have models, yet?  Do you have to create them in the workspace first, then suck them into a repository?

Not any more!

The latest development on the cdo_kepler branch in Papyrus SVN has refactored the New Papyrus Model wizard to allow creation of models in either a repository or the workspace.  See the video after the break to take a tour.

The New Model Wizard implements all of the following scenarios for model repositories:

  • Create a new UML model, UML profile, or SysML model
  • Initialize a new Papyrus model (especially the diagrams) from an existing domain model (UML resource)
  • Choose a folder to contain the new model, which is pre-filled from the current workbench selection if possible

In the case where there isn't a workbench selection, or it doesn't provide the context of a workspace or repository in which to create the new model, a new initial page lets the user indicate in which persistent store (workspace or an available repository) to create the new model.

The same wizard implements the New Papyrus Project function, too.  But, as this is naturally workspace-centric, there is no equivalent for model repositories.

See bug 401197 for more code-level details.

  

Papyrus Model Repositories

Christian W. Damus

The M5 milestone of the Kepler release brought support for UML models in CDO repositories to Eclipse.  I wrote then that this provides a foundation for collaborative model editing in Papyrus using CDO.  Well, that work has progressed far enough that I can offer a preview of Papyrus on CDO in action.

Here is a short video introducing, in less than 15 minutes, an early stage of CDO integration in the Papyrus workbench, including:

  • Adding repositories to the Model Repositories view
  • Importing models from the workspace into a repository
  • Editing models and seeing changes committed by other users
  • Managing locks on objects for exclusive access
  • Conflicting edits and resolving conflicts
  • and possibly more

You can check out the latest SVN trunk and overlay the cdo_kepler branch from Papyrus SVN, on the Kepler M5 milestone of UML2 and CDO, to play with this yourself. Development is being tracked in bug 290952 and its dependencies.  Offer your comments in these bugs.