Stefan et al:
I am making some changes to JpaProject and JpaProjectManager in an
effort to
improve Dali's synchronization. In particular, I am adding API
that can be used by
"long-running" processes that typically run on a background thread
and make
significant changes to the Dali context model. This type of
process can result in
race conditions where resource and Java change events triggered by
the process
end up conflicting with the changes being made by the process
itself.
While making these changes, I have removed and/or renamed various
bits of API.
Some of these methods are used by the JPA Diagram Editor in ways I
do not
understand. Maybe you can help me.
Can you please explain to me why you are calling
JpaProject.updateAndWait()
in these methods:
JpaArtifactFactory
deleteEntityClass(...)
getJPT(...)
RefactorEntityFeature
remapEntity(...)
Maybe we can figure out a better way to accomplish what you are
trying to do.
Also, you make numerous calls to JpaProject.update(...) in
CreateRelationsTest,
apparently waiting for some side-effect of the update to occur. I
have removed
these loops and added a hook to your test plug-in
(JPAEditorTestsActivator) that
causes all Dali event-handling and project updates to occur synchronously.
This is how the other Dali test plug-ins work around the
difficulties of testing the
model when cascading changes happen asynchronously. With the loops
removed
and the hook in place, the tests pass without a problem.
Regards,
Brian
|