Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF Parsley » Transactional Editing Domain and Parsley Example, Soliciting Feedback
Transactional Editing Domain and Parsley Example, Soliciting Feedback [message #1766288] Mon, 19 June 2017 23:43 Go to next message
Jon Passki is currently offline Jon PasskiFriend
Messages: 31
Registered: November 2015
Member

Hello All,

I am new to both transactional editing domains and EMF Parsley. I pushed some proof of concept code with a couple test cases that seem to work locally :) Of note: it should be able to work with or without OSGi; usage of TransactionalEditingDomain.Registry.INSTANCE implies OSGi via Equinox Extension Registry.

I would appreciate feedback on the following questions:


  • Are there Parsley or transactional editing domain specific recommendations you would make?
  • Are there important components that are lacking tests / insufficiently tested?
  • Anything else important you think I should know about?


Feel free to comment here or on the project's GitHub page and thanks!
Re: Transactional Editing Domain and Parsley Example, Soliciting Feedback [message #1768064 is a reply to message #1766288] Thu, 13 July 2017 11:14 Go to previous messageGo to next message
Lorenzo Bettini is currently offline Lorenzo BettiniFriend
Messages: 1812
Registered: July 2009
Location: Firenze, Italy
Senior Member
Dear Jon

thank you for the proof of concept code! I'm new to transactional editing domain as well, so your code is really welcome! I'll try to have a look at it soon.

cheers
Lorenzo


Re: Transactional Editing Domain and Parsley Example, Soliciting Feedback [message #1768101 is a reply to message #1768064] Thu, 13 July 2017 15:01 Go to previous message
Jon Passki is currently offline Jon PasskiFriend
Messages: 31
Registered: November 2015
Member

Not shown in the sample code is the below binding:

import org.eclipse.emf.parsley.internal.databinding.DataBindingHelper
//...
// wrap strategies within a transaction
type DataBindingHelper -> TransactionalDataBindingHelper


A specialized DataBindingHelper needs to be injected because the EmfValidationTargetToModelUpdateValueStrategy.doSet method needs to be called within a transaction. Otherwise, attempts to update objects that are in a transactional editing domain are rolled back if they do not occur in a transaction. I noticed this on at least one component created by Parsley.

I might create a bug suggesting to move DataBindingHelper to a non-internal package namespace unless you have other suggestions to try out?

Unrelated to the above, transactional editing domains expose the ResourceSetListener API. This conceptually acts as an EContentAdapter that notifies on changes on resource sets under the transactional editing domain (post-transaction if desired). It uses NotificationFilters to limit notifications to arbitrary granularity. Overall, it makes a nice EMF notification "bus". So if you end up trying out transactional editing domains, I recommend playing there too!
Previous Topic:General Approach for Cross-Editing Domains and Parsley
Next Topic:Tutorial on how to build web applications with EMF Parsley
Goto Forum:
  


Current Time: Thu Apr 25 00:15:45 GMT 2024

Powered by FUDForum. Page generated in 0.03540 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top